Processamento em campos de outros formulários



  • Boa Noite !
    Companheiros sou novo aqui no forum e acabei de adquirir a ferramenta, antes utilizava (por 10 anos ) a ferramenta GAS-PRO.
    Estou com muitas dificuldades numa coisa muito simples :

    Tenho um formulário de CADASTRO DE PRODUTOS e outro de ENTRADA DE NF.
    Preciso ATUALIZAR o campo DT.DA ULTIMA NF quando estiver dando entrada na NOTA.
    Simplesmente uma atualização, no GAS eu usaria o PTAB para posicionar o registro e fazer a atualização , mas no MAKER não estou conseguindo.

    Pelo Treinamento realizado , ficou claro que deveria fazer isso via FLUXO, então criei um fluxo e
    Utilizei a função ALTERAR COMPONENTE EM OUTRO FORMULÁRIO, porem não deu certo.
    Entrei em contato com o suporte que me indicou o uso da função EXECUTAR ATUALIZAÇÃO.
    Mas não estou sabendo como utiliza-la.

    Eu so preciso ATUALIZAR o campo de outro formúlario, me utilizando o campo do formulario corrente e respeitando o indíce.
    CAD.PRODUTOS ENTRADA NF
    id produto (campo Chave ) Numero da NF ( campo chave )
    ... ....
    id produto (campo de ligação )
    Data ult.NF (campo a atualizar) Dt.entrada da NF ( campo origem )

    Não sei se deu para entender, mas a medida que digito a NF, vou dando entrada e colocando o nome dos produtos ao sair do campo (evento ao sair )
    o sistema deve atualizar o campo Data.ult.NF no form CAD.PRODUTOS.

    Estou atualizando meus sistemas para MAKER e até que tenho obtido sucesso, mas estou parado esbarrado nesta simples questão, mas
    que na verdade não estou sabendo resolver, então peço desculpas pela ignorância e ajuda aos colegas.

    de ante-mão , muito obrigado.
    Ronan.


  • 1 - A função "Alterar valor do componente em outro formulário" so irá funcionar se o formulário que sofrerá alteração no campo estiver aberto.

    2 - Executar atualização é para rodar insert, update e delete no banco. Serve pra vc?
    Você pode executar um update em um determinado campo e atualizar registro corrente no formulário.
    Segue informações de como usar a função executar atualização:
    http://suporte.softwell.com.br/maker/manual2_7/pt/dicas_e_truques/funcoes/funcao_executar_atualizacao.htm

    3 - Se sentir dificuldades com a função executar atualização, vc pode usar outra chamada "Executar comando SQL"


  • Não sei se entendi direito..
    Mas um valor padrão com a Data Atual quando você abrir o registro para inserir não resolveria não?


  • Bom dia !

    Tarso o [b]valor Padrão com a Data atual[/b] não resolve , porque eu preciso atualizar o campo a cada registro inserido na ENTRADA DE NF de acordo com o produto inserido, claro que a Data de entrada da NF não se modifica mas [b] nem sempre a Data de Entrada vai ser a Data atual do Sistema [/b], ocorre de eu dar entrada numa Nota Fiscal com Data Anterior e ai neste caso a atualização ficaria incorreta.

    Alex a função Executar atualização serve para mim , porém esse é o problema, não estou conseguindo utiliza-la CORRETAMENTE, segui a sua solução mas consegui
    uma atualização que atualiza a tabela TODA e não somente o PRODUTO que estou digitando, veja o que fiz :

    1) Selecionei SQL Atualização ;
    2) Marquei " Atualização " na caixa " Tipo do SQL " ;
    3) Selecionei a tabela " PRODUTOS " no montador de expressões ; ( que é a tabela a ser atualizada )
    4) Marquei o campo " Ult.Data NF " ( que é o campo a ser atualizado )
    4) Neste ponto eu preciso informar ao Maker o campo origem para atualizar , que seria o campo DT.ENTRADA DE NF na tabela ( Formulario ) ENTRADA DE NF.
    Então criei uma VARIAVEL com nome de DATARECEBIDA no PARAMETRO DE ENTRADA DO MONTADOR DE EXPRESSÕES para receber a DT.ENTRADA DE NF,para
    associar o Fluxo no evento AO SAIR do campo DT.DA NF no formulario ENTRADA DE NF.

    [b]]Até este ponto deu tudo certo.[/b

    GRAVEI , RECARREGUEI no Browser e TESTEI mas o que está acontecendo é que ele não pega o indice o ID_PRODUTO , então atualiza a TABELA INTEIRA.
    Vou dando entrada nas NFs de acordo com os produtos exemplo: LAPIS DT.DE ENTRADA=10/10/2011 CANETA=DT.DE ENTRADA 11/10/2011 MOUSE=DT.DE ENTRADA
    12/10/2012 e ao inves de ele atualizar NO CAD.DE PRODUTOS cada produto com a data que digitei , LAPIS=10/10/2011 CANETA=11/10/2011 MOUSE=12/10/2011 ele
    coloca uma data em todos registros : Assim : LAPIS=10/10/2011 CANETA=10/10/2011 MOUSE=10/10/2011 tudo 10/10/2011.

    Ao meu ver ele não acha o indice o ID_PRODUTO , existe no MONTADOR DE EXPRESSÕES um campo ADICIONAR CRITÉRIO e creio que seja esse que devo informar,
    mas não consigo utiliza-lo , acho o ID_PRODUTO na 1 primeira coluna atraves da simples seleção da setinha mas depois do = aonde deveria colocar o ID_PRODUTO da
    tabela ( Formulário) ENTRADA DE NF não consigo, pois não apararece, aparece sim, o botão EDITAR aonde se obtem novamente o MONTADOR DE EXPRESSÕES VAZIO !!!


    Obrigado Tarso e ALex pelas sugestões, mas ainda continuo com este problema.
    Ronan.


  • Basta configurar um critério.

    Veja na imagem.
    [62_criterio.jpg](/assets/uploads/files/62_criterio.jpg)


  • Alex

    Entendi isso, configurar o critério é o meu problema ,no caso = 1 tudo bem simples de entender.

    Mas como configurar quando eu quero que usar o campo de outra tabela (formulário) ?

    Depois daquele sinal de = (igual) eu quero anexar o campo (PRO_ID_ de outra tabela , no caso NOTA FISCAL.
    [352_untitled.jpg](/assets/uploads/files/352_untitled.jpg)


  • Você pode abrir consulta, obter um campo e guardar numa varável, que poderá ser passada como critério.

Log in to reply