Conheça as melhorias da versão 8.0, 8.1, 8.2!
Clique aqui para saber mais
Bloqueio de campos Numericos Ao usar um setNumericMask em um campo, após bloquear e desbloquear esse campo,a mascara não funciona mais, e não consigo digitar nada!...
T
Bloqueio de campos Numericos  
Ao usar um setNumericMask em um campo, após bloquear e desbloquear esse campo,a mascara não funciona mais, e não consigo digitar nada!

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (12)


MG

Acompanhando
IF

Vc está usando TEntry::disableField e TEntry::enableField ?
T

Sim Ivan.
IF

Estranho Tiago, no meu sistema , tanto no setExitAction quanto num TButton , eu bloqueio e depois desbloqueio sem que haja nenhum problema relativo a máscara, poste a parte do código que está dando o problema.
T

Seto a mascara no campo:
 
  1. <?php
  2. $baseIcms->setNumericMask(2,',','.', true);
  3. ?>


Bloqueio ou libero os campos dependendo do valor de $cst:
 
  1. <?php
  2. static function bloquearCampos($cst)
  3. {
  4. if($cst == '000')
  5. {
  6. TEntry::disableField('imposto', 'baseIcms');
  7. }
  8. else
  9. {
  10. TEntry::enableField('imposto', 'baseIcms');
  11. }
  12. }
  13. }
  14. ?>
IF

Até aí , tudo bem, mas em qual momento vc dá o Start dessa function? Num onExit, num TButton..
T

 
  1. <?php
  2. $change_cst = new TAction(array($this, 'onChangeCst'));
  3. $cod_csosn->setExitAction($change_cst);
  4. ?>


Chamo a função onChangeCst, que chama a função bloquear campos.

 
  1. <?php
  2. static function onChangeCst($param)
  3. {
  4. $regime = TSession::getValue('regime');
  5. $itens = TSession::getValue('itens_nota');
  6. $numeroItem = $param['numeroItem'];
  7. $cod_prod = $param['cod_prod'];
  8. if($regime == 3)
  9. {
  10. $itens[$numeroItem]['codcst_produto'] = $param['cod_csticms'];
  11. $itens[$numeroItem]['cad_cstIcms_id'] = $param['cad_cstIcms_id'];
  12. $itens[$numeroItem]['codipi_produto'] = $param['cod_cstipi'];
  13. $itens[$numeroItem]['cad_cstIpi_id'] = $param['cad_cstIpi_id'];
  14. $itens[$numeroItem]['codpis_produto'] = $param['cod_cstpis'];
  15. $itens[$numeroItem]['cad_cstPis_id'] = $param['cad_cstPis_id'];
  16. $itens[$numeroItem]['codcofins_produto']= $param['cod_cstcofins'];
  17. $itens[$numeroItem]['cad_cstCofins_id'] = $param['cad_cstCofins_id'];
  18. $cst = $param['cod_csticms'];
  19. }
  20. else
  21. {
  22. $itens[$numeroItem]['codcsosn_produto'] = $param['cod_csosn'];
  23. $itens[$numeroItem]['cad_csosn_id'] = $param['cad_csosn_id'];
  24. $cst = $param['cod_csosn'];
  25. }
  26. TSession::setValue('itens_nota', $itens);
  27. NotaFiscalForm::infoProduto($numeroItem,$cod_prod);
  28. NotaFiscalForm::tributosProduto($numeroItem);
  29. self::bloquearCampos($cst);
  30. self::onLoad($param);
  31. }
  32. <?
T

Mas acho que o problema não é neste metodo em especifico, pois tenhos outras telas no sistema que bloqueiam e desbloqueiam campos, funciona tudo normalmente, menos quando há mascara numerica.
IF

Bom meu caro Thiago, fiz testes aqui nos moldes do seus códigos e em nenhum momento foi perdido a máscara e nem houve alteração na digitação do campo. Talvez o problema seja nesse seu método self::onLoad. Realmente não sei oq está havendo rsrs
NR

Qual a versão do Adianti? Aparece algum erro javascript no console?
T

5.0, mas na 4.0 já não funcionava! Acredito que o problema não está nesta tela em especifico, pois tentei em outras tela do sistema e continua o problema.

E não aparece nenhum erro no console.
T

Nataniel, por algum motivo agora está funcionando! Não sei explicar o que eu fiz diferente, mas obrigado pela ajuda.