none
Modo de Exibição no Form RRS feed

  • Pergunta

  • Oi pessoal,

     

    Lá vem eu com mais uma dúvida!!

     

    Seguinte:

    Eu preciso permitir que um usuário qualquer possa preencher os formulários criados pelo InfoPath Form Servvices, mas deve apresentar o mesmo formulário preenchido numa forma somente leitura para outros usuários imersos no workflow. Para um exemplo ilustrativo, teria-se:

     Suponha que eu preciso comprar um computador novo. Então eu vou até a seção de solicitação de compra e preencho um formulário de compra. Esse formulário ao ser salvo na biblioteca, ativa um workflow que irá enviar email para o financeiro avisando da solicitação, com um link para ver a solicitação e aprovar ou rejeitar minha solicitação, e um email para mim, confirmando o envio e um link para o formulário caso eu queira editar.

     

    Basicamente o problema está em definir um modo de exibição do formulário como somente leitura para o financeiro e um de edição para mim.

     

    Eu consegui fazer os dois modos de exibição, contudo não sei como pegaria um link com o parâmetro dizendo: Modo_Somente_Leitura e outro com Modo_Geral.

     

    No formulário aberto e com a barra superior de ferramentas ativa, ele permite que eu escolha, mas gostaria de não mostrar isso ao usuário, apenas definir o link, ou uma permissão diferenciada para os formulários a depender de quem acessa.

     

    Se houver alguém que possa me dar um help! Por favor!

     

    Desde já agradeço!

    quarta-feira, 4 de fevereiro de 2009 12:48

Respostas

  • Eduardo,

    Para esses casos você deve colocar algumas regras diretamente no formulário. Dá um pouco de trabalho,porque tem que ser aplicado em todos os fields que você quer "bloquear".

    1) Utilizar um webservice para capturar o usuário logado.  No exemplo abaixo, ele mostra como pegar o "FirstName", ao invés disso escolha "UserName" (é case sensitive)
    Aqui tem um step-by-step bem fácil.  


    2) Utilizar um textbox para gravar o usuário que preencheu o formulário.
    Textbox > Value > username();

    3) Faça a comparação, utilizando "Conditional Formatting".
    "Se o campo "criador" for diferente de UserName, deixar o campo como Read-only"

    É uma solução, espero que ajude.

    Fernanda
    • Marcado como Resposta Eduardo Trzan quarta-feira, 11 de fevereiro de 2009 12:54
    sexta-feira, 6 de fevereiro de 2009 13:26
  • Oi Fernanda,

    Encontrei uma solução.

    Basicamente, utilizei-me de sua ideia "gravar o usuário que preencheu o formulário" para gravar o usuário a primeira vez.

    Assim, qualquer um que seja diferente do usuário salvo, não poderá editar e ainda é ocultado o botão de salvar.

    Assim foi resolvido o problema.

    Obrigado.

    Eduardo Trzan
    • Marcado como Resposta Eduardo Trzan quarta-feira, 11 de fevereiro de 2009 12:54
    terça-feira, 10 de fevereiro de 2009 14:52

Todas as Respostas

  • Ola
    Se voce utilizasse as permissões do MOSS pra essa questao, definindo controle total pra voce e leitura exibição para o financeiro.

    Douglas Filipe http://douglasfilipe.wordpress.com www.baboo.com.br www.babooforum.com.br
    quarta-feira, 4 de fevereiro de 2009 13:01
  • Oi Douglas,

    Isso seria possível se só eu fosse solicitar compra, mas imagina que todo mundo pode solicitar compras e o pessoal do financeiro também e eles ainda devem ver somente leitura todas as solicitações feitas.

    Basicamente eu precisaria de algo como é permitido ao criador editar e aos não criadores só visualização.

    Att,
    quarta-feira, 4 de fevereiro de 2009 13:09
  • Eduardo,

    Para esses casos você deve colocar algumas regras diretamente no formulário. Dá um pouco de trabalho,porque tem que ser aplicado em todos os fields que você quer "bloquear".

    1) Utilizar um webservice para capturar o usuário logado.  No exemplo abaixo, ele mostra como pegar o "FirstName", ao invés disso escolha "UserName" (é case sensitive)
    Aqui tem um step-by-step bem fácil.  


    2) Utilizar um textbox para gravar o usuário que preencheu o formulário.
    Textbox > Value > username();

    3) Faça a comparação, utilizando "Conditional Formatting".
    "Se o campo "criador" for diferente de UserName, deixar o campo como Read-only"

    É uma solução, espero que ajude.

    Fernanda
    • Marcado como Resposta Eduardo Trzan quarta-feira, 11 de fevereiro de 2009 12:54
    sexta-feira, 6 de fevereiro de 2009 13:26
  • Oi Fernanda,

    Eu já estava querendo responder, mas como não tive tempo para testar, até hoje, preferia esperar um pouco para testar.

    Bom, sua idéia foi ótima! Porém, não acredito que eu esteja fazendo certo, ou o MOSS tá sendo um pé-no-saco! =P

    Basicamente, levei um tempo para fazer a conexão dar certo. Não foi problema do tutorial, mas uma configuração do sistema aki. Devido a isso não tinha FirstName, mas tinha AccountName, a qual serve tbm, se não ocorresse o seguinte:

    Ao configurar um campo como username que estava salvando corretamente e de setado a regra "Se 'usuarii_logado' contem 'userName', deixar o campo como read-only", eu consigo salvar o formulário, mas ao editar e tentar salvar novamente ou fechar o formulário, ele gera o erro "There has been an error while processing the form."

    Quando eu desabilito o Conditional Formatting, o formulário permite salvar ou fechar o formulário em edição.

    Se tiver alguma idéia do problema, por favor.

    E Obrigado pelo post!

    Eduardo Trzan
    segunda-feira, 9 de fevereiro de 2009 18:10
  • Oi Fernanda,

    Encontrei uma solução.

    Basicamente, utilizei-me de sua ideia "gravar o usuário que preencheu o formulário" para gravar o usuário a primeira vez.

    Assim, qualquer um que seja diferente do usuário salvo, não poderá editar e ainda é ocultado o botão de salvar.

    Assim foi resolvido o problema.

    Obrigado.

    Eduardo Trzan
    • Marcado como Resposta Eduardo Trzan quarta-feira, 11 de fevereiro de 2009 12:54
    terça-feira, 10 de fevereiro de 2009 14:52