Boa tarde!
Gostaria de saber se alguem pode me dar duas dicas:
1. Em um form tenho uma aba "Materiais" e outra aba "financeiro".
O usuário informa, entre varias informações o campo "Kg" da aba "Materiais". É possível, quando o usuário acessar a aba "financeiro" (que também terá o campo " Kg" vir preenchido com o valor do campo "materiais"?
2. No formulário "Financeiro", há o campo "Kg" e o campo "Preço". Gostaria que após o preço ser informado (supondo que o campo "Kg" ja esteja preenchido) ao tirar o cursos desse campo, o campo "Total" ja seja automaticamente calculado (Kg X Preço). É possivel no formDin?
Se alguem tiver algumas dicas....
Obrigado.
Autor: Fabricio Malvezzi
55 comentários
// criar o formulário
$frm = new TForm('Cadastro de Materiais',200,400); // criar o controle de abas
$pc = $frm->addPageControl('pc',null,null,'antesMudarAba','depoisMudarAba'); // cria a aba Materiais
$pc->addPage('Materiais',true,null,'abaMateriais');
$frm->addNumberField('val_kg','Kg:',3,true,0); // criar a aba Financeiro
$pc->addPage('Financeiro',false,null,'abaFinanceiro');
$frm->addTextField('calc_kg','Kg:',10)->setReadOnly(true)->setCss(array('text-align'=>'center','color'=>'blue','font-weight'=>'bold'));
$frm->addNumberField('val_preco','Preço:',10,true,2)->addEvent('keyup','atualizarTotal()')->setExampleText('R$');
$frm->addNumberField('calc_total','Total:',10,true,2)->setReadOnly(true)->setCss(array('color'=>'blue','font-weight'=>'bold') ); $frm->setAction('Gravar');
$frm->show();
?>
<script>
function antesMudarAba(aba,pc,id)
{
if( id == 'abafinanceiro' ) // id da aba é passado sempre em caixa baixa
{
if( jQuery("#val_kg").val() == '')
{
fwAlert('Informe o KG');
return false;
}
}
return true;
}
function depoisMudarAba(aba,pc,id)
{
if( id == 'abafinanceiro' )
{
jQuery("#calc_kg").val(jQuery("#val_kg").val())
atualizarTotal();
jQuery("#val_preco").focus(); }
}
function atualizarTotal()
{
var kg = removerVirgula( jQuery("#val_kg").val() );
var preco = removerVirgula( jQuery("#val_preco").val() );
var campo = jQuery("#calc_total");
var total = kg*preco;
campo.val('0');
if( ! isNaN( total ) )
{
total = fwRoundNumber(total,2);
total = String(total).replace(/\./,',')
if( total.indexOf(',') > -1 )
{
total = total.pad(4,'0',1);
}
campo.val( total );
fwFormatarDecimal(campo.get(0),2); }
}
function removerVirgula(v)
{
v = parseFloat( v.replace(/\./,'').replace(/\,/,'.') );
return v;
}
</script>
{
var kg = removerVirgula( jQuery("#val_kg").val() );
var preco = removerVirgula( jQuery("#val_preco").val() );
var campo = jQuery("#calc_total");
var total = kg*preco;
var posVirgula;
campo.val('0');
if( ! isNaN( total ) )
{
total = fwRoundNumber(total,2);
total = String(total).replace(/\./,',')
posVirgula = total.indexOf(',');
if( posVirgula > -1 )
{
if( total.length-posVirgula == 2 )
{
total+='0';
}
}
campo.val( total );
fwFormatarDecimal(campo.get(0),2);
}
} Abraço.