Abrir a visualização do pedido de venda em uma customização

No artigo de hoje, vamos demonstrar em como abrir a tela de pedido de vendas direto visualizando ou alterando um pedido, via código fonte.

Recentemente, um aluno nos perguntou, se haveria a possibilidade de abrir a tela do pedido de vendas, direto na opção de Visualizar ou Alterar num pedido posicionado.

Para fazer isso então, montamos o trecho de exemplo abaixo, onde o que precisa ser feito é:

  1. Posicionar no Pedido de Venda (através do MsSeek ou DbGoTo)
  2. Alterar as variáveis INCLUI e ALTERA do Protheus conforme sua necessidade
  3. Acionar a função MATA410, informando o quarto parâmetro sendo qual função você desejaria executar, como por exemplo: A410Visual, A410Inclui, A410Altera e A410Deleta
  4. Com isso, a tela do pedido de venda, será aberta para digitação das informações

Abaixo um exemplo, acionando a visualização:

//Define o pedido e a filial
cFilPed := FWxFilial("SC5")
cPedido := "AAAAAA"
 
//Posiciona no pedido
DbSelectArea("SC5")
SC5->(DbSetOrder(1)) // C5_FILIAL + C5_NUM
If SC5->(MsSeek( cFilPed + cPedido))
 
    //Visualiza o pedido
    INCLUI := .F.
    ALTERA := .F.
    MATA410(Nil, Nil, Nil, Nil, "A410Visual")
 
EndIf

E abaixo um exemplo de alteração de pedido:

//Define o pedido e a filial
cFilPed := FWxFilial("SC5")
cPedido := "AAAAAA"
 
//Posiciona no pedido
DbSelectArea("SC5")
SC5->(DbSetOrder(1)) // C5_FILIAL + C5_NUM
If SC5->(MsSeek( cFilPed + cPedido))
 
    //Se já tiver nota
    If ! Empty(SC5->C5_NOTA)
        FWAlertError("Pedido " + SC5->C5_NUM + " já faturado, não pode ser alterado!", "Atenção")
 
    //Abre o pedido em modo de alteração
    Else
        INCLUI := .F.
        ALTERA := .T.
        MATA410(Nil, Nil, Nil, Nil, "a410Altera")
    EndIf
 
EndIf

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

2 Responses

  1. William Campana disse:

    Bom dia Atilio, td bom??

    Tava precisando bem isso mesmo.
    Fiz um teste aqui e a tela abriu normal, o cabeçalho do pedido trouxe normal mas não aparecem os itens.
    O que poderia ser ?

    Grato,

    William

  2. Ah, fiz uns ajutes aki e normalizou.

    flwwww

Deixe uma resposta

Terminal de Informação