Imprimi Página | Fechar janela

Alterar valor de um campo

Impresso de: Helpfacil - Portal do conhecimento
Nome do Forum: ADVPL
Descrição do Forum: Dúvidas sobre a programação em ADVPL
URL:http://www.helpfacil.com.br/display_topic_threads.asp?ForumID=1&TopicID=44346
Data da Impressão: sexta-feira, 21 de junho de 2024 at 17:22


Topico: Alterar valor de um campo

Postado por: BEHRSP
Assunto: Alterar valor de um campo
Data Postagem: quarta-feira, 13 de setembro de 2023 at 08:07

Bom dia pessoal.
Estou com este fonte, no ponto de entrada MATA250. Não sei se é este o PE correto.
MAS, o que eu preciso e não estou conseguindo.


NA rotina de produção simples, se for uma determinada filial, o tipo de movimento D3_TM, precisa ser '020' por padrao ele é '010'.

User Function MT250TOK()

    Local aArea := GetArea()
    Local lRet := .F.
    Local cFilAnt := cFilAnt


    //Alert(cFilAnt)

    if cFilAnt == "01MEGA01"
       
        M->D3_TM := '020'
        lRet := .T.
       
    else

        Alert("Voce nao esta na filial MEGA")
    
    endif


    RestArea(aArea)
return(lRet)

Mas desta forma, ele reconhece a filial, e o valor do campo, mas nao altera quando eu gravo!
Ou tem outro ponto, que eu devo assim que entrar na filial MEGA por exemplo, o campo alterar ja de inicio?

Como eu faria?

Obrigado pela ajuda.


Respostas:

Postado Por: ROBERTOMEN
Data Postagem: quarta-feira, 13 de setembro de 2023 at 09:39

Bom dia.

No cadastro de Tipo de Movimentações o movimento 020 é um movimento de produção,
F5_TIPO = "P" ?



Postado Por: ROBERTOMEN
Data Postagem: quarta-feira, 13 de setembro de 2023 at 09:46


Acho que vc resolve isto mais fácil e sem ponto de entrada colocando no inicializador do campo D3_TM:

IIF(INCLUI .AND. FUNNAME() $ ‘MATA250‘ .AND. cFilAnt == "01MEGA01",‘020‘,IIF(INCLUI .AND. FUNNAME() $ ‘MATA250‘ .AND. cFilAnt <> "01MEGA01",‘010‘,SPACE(LEN(SD3->D3_TM))))     






Postado Por: BEHRSP
Data Postagem: quarta-feira, 13 de setembro de 2023 at 10:08

Bom dia @ROBERTOMEN

Sim, 020 é um movimento de produção para ativo.


Pensei no inicializador padrão, também mas não acertei acho que a sintaxe.
Vou tentar.

Muito obrigado.



Postado Por: BEHRSP
Data Postagem: quarta-feira, 13 de setembro de 2023 at 12:57

Deu certo.
Quando eu fui entrar no Conf. Já tinha uma função ali, no inicializador padrão, fui na função ja tinha uma outra validação, eu só acrescentei mais uma.

     if FunName() == ‘MATA241‘ .OR. FunName() == ‘MATA185‘
          
          cRet := ‘501‘
     
     ElseIf FunName() == ‘MATA250‘ .AND. ‘01MEGA‘ $ cFilAnt

          cRet := ‘020‘     
     
     else

          cRet := ‘010‘
     
     endif

Muito Obrigado pela ajuda.





Imprimir Página | Fechar Janela