Tutoriais:Particularidades do Formulário

De Tek-System Wiki
Ir para navegação Ir para pesquisar

Toda vez que um formulário é aberto, executa-se o método de particularidade do mesmo. Essas particularidades ficam gravadas no banco de dados e são carregadas assim que o usuário logar no site. Simples assim, porém, precisa-se de um pequeno conhecimento na área de programação. Vou explicar o funcionamento com um exemplo prático:


Imagine um cliente ligando para o suporte técnico com seguinte questionamento ...

" - Eu trabalho com o tipo de frete vinculado no cliente, ou seja, todo cliente tem um tipo de frete padrão definido em seu cadastro, mas estou tendo muitos transtornos, pois alguns consultores insistem em alterar esta informação, eu estou tendo que conferir pedido a pedido para saber se esta informação veio correta ou se o consultor alterou. Existe a possibilidade de bloquear este campo no pedido de venda, para que venha só o padrão?".


Repare, na imagem abaixo, que o campo tipo de frete está liberado para ser modificado.


Pedido com tipo frete liberado.png


Dizer a ele que será criada uma configuração para isso e que, na próxima versão, daqui a uns seis meses, vai ficar pronto, não seria uma boa resposta nem uma solução para o problema do cliente (na humilde opinião do autor), pois a necessidade é imediata!

Pensando nisso, foi criada, no banco de dados, uma tabela chamada SITE_PARTICULARIDADE_FORMULARIO, onde é possível definir este tipo de particularidade. Para resolver este problema do tipo de frete, foi feito o seguinte:

Registros site particularidade formulario.png

A primeira coluna é de autoincremento. Infelizmente, não é possível usar o autoincremento do banco de dados pois a Tek-System tem intensão de colocar o Sistema Multicamadas como multi-banco e, alguns SGDBs (Sistema Gerenciador de Banco de Dados) não contemplam esta funcionalidade, portanto deve ser feito manualmente.

A segunda coluna é o nome do formulário. No caso do pedido, no código fonte, o nome do formulário é CadPedidoVenda.

A terceira coluna é o atributo a ser alterado no formulário. No caso do tipo de frete, será alterado o atributo habilitado/desabilitado, então basta colocar lkpTipoFrete.enabled.

A quarta coluna é o valor que o atributo receberá. Neste caso, será false, ou seja, desabilitado.

Após gravar esta informação no banco, será necessário logar novamente no site para que esta particularidade seja carregada.


Pronto!, o campo agora ficará desabilitado ...


Pedido com tipo frete bloqueado.png


O mais complicado, até agora, é descobrir o nome do formulário e do atributo, pois estas informações ficam apenas no código fonte do aplicativo, diferente do HTML que disponibiliza o fonte para o usuário final. Esta dificuldade foi extinta a partir da versão 27 - R1, basta clicar num elemento do formulário com as teclas CTRL e ALT pressionadas, para mostrar estas informações.


Mensagem nome componente e formulario.png

Aí já facilita. Só precisa conhecer alguns atributos como enabled, visible, etc.


A medida que foram me pedindo estas particularidades, fui salvando as SQLs de insert num txt. Veja como ficou esta particularidade do tipo de frete:

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'lkpTipoFrete.enabled', 'false');

Basta executar esta SQL no banco que a particularidade será definida.

Obs.: Lembre-se que o autoincremento deverá ser lançado manualmente. Basta substituir AUTOINCREMENTO pelo próximo código.


Para ajudar, vou disponibilizar as SQLs que tenho. À medida que forem surgindo mais, disponibilizo aqui.


SQLs Particularidade Formulário

/** Bloquear a opção Gera Duplicata de Frete no Pedido de Venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'cbxGeraDuplicata.enabled', 'false');


/** Bloquear a opção Gera Duplicata de Frete na Assistência Técnica **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoAssistencia', 'cbxGeraDuplicata.enabled', 'false');


/** Bloquear a edição do campo tipo de frete no pedido de venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'lkpTipoFrete.enabled', 'false');


/** Bloquear desconto em valor no pedido de venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'edValorDescontoParcial.enabled', 'false');


/** Bloquear desconto em valor no pedido de assistência**/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoAssistencia', 'edValorDescontoParcial.enabled', 'false');


/** Bloquear a edição do campo percentual de frete no pedido de venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'edPercentualFrete.enabled', 'false');


/** Bloquear a edição do campo percentual de frete no pedido de assistência **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoAssistencia', 'edPercentualFrete.enabled', 'false');


/** Bloqueia desconto na tela de inclusão de itens **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'AdicionarItensWizard', 'edDesconto.enabled', 'false');


/** Bloqueia valor unitário na tela de inclusão de itens **/ INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'AdicionarItensWizard', 'edValorUnitario.enabled', 'false');


/** Bloqueia desconto dos itens na aba conferência do pedido de venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'frameItens.grdItemDesconto.enabled', 'false');


/** Bloqueia desconto dos itens na aba conferência do pedido de assistência técnica **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoAssistencia', 'frameItens.grdItemDesconto.enabled', 'false');


/** Desabilita o campo de prazos **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'edPrazos.enabled', 'false');


/** Desabilita o campo Data Base no pedido de venda **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'edDataBaseCobranca.enabled', 'false');


/** Desabilita o campo Data Base no pedido de assistência **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoAssistencia', 'edDataBaseCobranca.enabled', 'false');


/** Bloqueia família na tela de inclusão de itens **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'AdicionarItensWizard', 'edFamilia.enabled', 'false');


/** Bloqueia família na tela de inclusão de itens na conferência **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadDocumentoItem', 'edFamilia.enabled', 'false');


/** Bloqueia grade desconto na tela de conferência **/

INSERT INTO SITE_PARTICULARIDADE_FORMULARIO (AUTOINC_SPF, FORMULARIO_SPF, ATRIBUTO_SPF, VALOR_SPF) VALUES (AUTOINCREMENTO, 'CadPedidoVenda', 'frameItens.grdItemDesconto.enabled', 'false');