LM
Problemas com Numeric Mask e disableField
Tenho um campo (TEntry) com um NumericMask adicionado.
Tenho também um método que realiza um TField::disableField para desabilitar esse campo, de acordo com uma ação que o usuário executa é chamado outro método que executa um TField::enableField nesse campo, porém no momento do enableField, ele aparece pra mim como habilitado porém não consigo digitar nada nesse campo.
Será que estou fazendo algo de errado ?
Estou executando o disable e o enable em dois metodos distintos na mesma classe.
Tenho também um método que realiza um TField::disableField para desabilitar esse campo, de acordo com uma ação que o usuário executa é chamado outro método que executa um TField::enableField nesse campo, porém no momento do enableField, ele aparece pra mim como habilitado porém não consigo digitar nada nesse campo.
Será que estou fazendo algo de errado ?
Estou executando o disable e o enable em dois metodos distintos na mesma classe.
Bom dia Luy,
favor posta o código para dar uma analisada, bem provavel que possa existir algum erro.
no aguardo.
Estas são as minhas duas funções que bloqueiam e desbloqueiam os campos.
E este é a parte do meu construct, onde eu crio os campos e adiciono a máscara, depois que eu crio eu só adiciono a table que vai dentro do form.
E passo esse "form_fields" no setFields do meu form no final.
E por fim o pedaço do meu método reload que avalia se deve chamar a função que bloqueia ou que desbloqueia.
Luy boa noite
a principio estive verificando o código e você esta usando API Reference , alterei o teu codigo para você testar segue abaixo:
na segunda parte experimenta colocar $form_fields[] antes da variavel, senão tira todos os $form_fields que funciona corretamente :
$form_fields[] = $tx_juros ->setNumericMask(2, ',', '.', TRUE);
este é meu exemplo :
class Cadastro extends TPage
{
protected $form; // form
use AdiantiBaseAdiantiStandardFormTrait; // metodos
function __construct()
{
parent::__construct();
$this->setDatabase('sample'); // define o banco
$this->setActiveRecord('TblDuplicata'); // define tabela
// creates the form
$this->form = new TQuickForm('form_TblDuplicata');
$this->form->class = 'tform';
$this->form = new BootstrapFormWrapper($this->form);
$this->form->style = 'display: table;width:100%';
// define the form title
$this->form->setFormTitle('TblDuplicata');
// create the form fields
$idtbl_duplicata = new TEntry('idtbl_duplicata');
$tbl_duplicata_data = new TDate('tbl_duplicata_data');
$tbl_duplicata_nome = new TEntry('tbl_duplicata_nome');
$tbl_duplicata_valor = new TEntry('tbl_duplicata_valor');
// add the fields
$this->form->addQuickField('Idtbl Duplicata', $idtbl_duplicata, 100 );
$this->form->addQuickField('Tbl Duplicata Data', $tbl_duplicata_data, 100 );
$this->form->addQuickField('Tbl Duplicata Nome', $tbl_duplicata_nome, 200 );
$this->form->addQuickField('Tbl Duplicata Valor', $tbl_duplicata_valor, 100 );
if (!empty($idtbl_duplicata))
{
$idtbl_duplicata->setEditable(False);
}
// Ação
$this->form->addQuickAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:floppy-o');
$this->form->addQuickAction(_t('New'), new TAction(array($this, 'onEdit')), 'bs:plus-sign green');
// vertical container
$container = new TVBox;
$container->style = 'width: 90%';
$container->add(TPanelGroup::pack('Title', $this->form));
parent::add($container);
}
}
na Segunda parte experimenta Colocar $ form_fields [] Antes da variavel, senão tira todos OS $ form_fields Que Funciona corretamente: $ form_fields [] = $ tx_juros -> setNumericMask ( '.' 2 ',', TRUE);
este E meu Exemplo:
Olá boa noite.
Não entendi muito bem. Como posso usar $tx_juros->setEditable, se a minha variavel $tx_juros não existe no meu metodo lockFields? Ela pertence somente ao meu metodo construtor.
Bom dia Luy ,
pelo que eu entendi na tua programação é para bloquear no formulario ? Então partindo que esta tua chamada ocorreria no final, montei aquele script .
<?Php
$count = count($duplicatas);
if($count > 0){
$this->lockFields();
}else{
$this->unlockFields();
}
?>
Olá Luy Motta! Como vai?
Conseguiu resolver este problema? Estou tendo o mesmo aqui.
Obrigado!