Lançado Adianti Framework 7.6!
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!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 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. }
  15. ?>
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.         
  27.         TSession::setValue('itens_nota'$itens);
  28.         NotaFiscalForm::infoProduto($numeroItem,$cod_prod);
  29.         NotaFiscalForm::tributosProduto($numeroItem);
  30.         self::bloquearCampos($cst);
  31.         self::onLoad($param);
  32.     }
  33. <?
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.