- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- Ponto de Entrada FT400VAL - Levar inform. Compl. para Pedido Venda.
Perguntas Ponto de Entrada FT400VAL - Levar inform. Compl. para Pedido Venda.
- vinaop
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
3 anos 10 meses atrás #32958
por vinaop
E ai pessoal do fórum do Master ADVPL. Tudo certo com vocês,
Estou com uma dúvida e tenho certeza que vocês tem ideia de como me ajudar.
No momento da aprovação do Contrato de Parceria (para vendas com entrega futura) temos vários campos customizados na SC5 e para atender nossa necessidade precisei replicar esses campos na tabela ADA.
No momento da Aprovação e ou Remessa do contrato de parceria, esses campos já previamente preenchidos no contrato (ADA) deve ser levados para o pedido de vendas, e isso acontece em tempo de execução porém quando tento fazer a atribuição direto para os Registros de memória, em tela, o valor a eles atribuídos não são levados para o pedido de vendas.
Debugando o ponto de entrada, posso ver todos os valores sendo atribuídos certinho para cada variável de tela, mas na execução do programa, não consigo ter os dados desses conteúdos na tela do pedido de vendas.
O código abaixo, simples para entendimento;
Alguém tem ideia de como posso resolver esse impasse com esse código?
Muito obrigado pela atenção de vocês.
Estou com uma dúvida e tenho certeza que vocês tem ideia de como me ajudar.
No momento da aprovação do Contrato de Parceria (para vendas com entrega futura) temos vários campos customizados na SC5 e para atender nossa necessidade precisei replicar esses campos na tabela ADA.
No momento da Aprovação e ou Remessa do contrato de parceria, esses campos já previamente preenchidos no contrato (ADA) deve ser levados para o pedido de vendas, e isso acontece em tempo de execução porém quando tento fazer a atribuição direto para os Registros de memória, em tela, o valor a eles atribuídos não são levados para o pedido de vendas.
Debugando o ponto de entrada, posso ver todos os valores sendo atribuídos certinho para cada variável de tela, mas na execução do programa, não consigo ter os dados desses conteúdos na tela do pedido de vendas.
O código abaixo, simples para entendimento;
#INCLUDE "PROTHEUS.CH"
#INCLUDE "RWMAKE.CH"
USER FUNCTION FT400VAL()
Local aHeader := ParamIxb[1]
Local aCols := ParamIxb[2]
Local lRet := .T.
// Inclusão dos Campos de Cabeçalho (Campos adicional do Contrato de Parceria para o Pedido de Vendas)
M->C5_X_CUSTO := ADA->ADA_X_CUST
M->C5_X_DESP := ADA->ADA_X_DESO
M->C5_X_NUM := alltrim(ADA->ADA_X_NUM)
M->C5_VEND1 := ADA->ADA_VEND1
M->C5_VEND2 := ADA->ADA_VEND2
M->C5_X_NOMCL := alltrim(Posicione("SA1",1,xFilial("SA1")+ADA->ADA_CODCLI+ADA->ADA_LOJCLI,"A1_NOME"))
M->C5_NATUREZ := alltrim(ADA->ADA_X_NAT)
RETURN (lRet)
Alguém tem ideia de como posso resolver esse impasse com esse código?
Muito obrigado pela atenção de vocês.
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 297
- Obrigados Recebidos: 21
3 anos 10 meses atrás - 3 anos 10 meses atrás #32961
por admin
Respondido por admin no tópico Ponto de Entrada FT400VAL - Levar inform. Compl. para Pedido Venda.
Segue exemplo de ponto de entrada que utilizo para esta finalidade.
#INCLUDE "rwmake.ch"
USER FUNCTION M410INIC()
local RotInc := ''
LOCAL ITCLI := GDFIELDPOS("C6_ITEMCLI") //
LOCAL XCODAP := GDFIELDPOS("C6_XAPLC") //
LOCAL XAPLIC := GDFIELDPOS("C6_XAPLICA") //
LOCAL XEMBAL := GDFIELDPOS("C6_XEMBALA") //
LOCAL XLACRE := GDFIELDPOS("C6_XLACRE") //
LOCAL XPBITE := GDFIELDPOS("C6_XPBITEM") //
LOCAL XPLITE := GDFIELDPOS("C6_XPLITEM") //
LOCAL XVOLIT := GDFIELDPOS("C6_XVOLITE") //
LOCAL ITEM := GDFIELDPOS("C6_ITEMCON")
LOCAL XOPC := GDFIELDPOS("C6_OPC")
LOCAL XPRUNIT := GDFIELDPOS("C6_PRUNIT")
LOCAL XPRCVEN := GDFIELDPOS("C6_PRCVEN")
LOCAL XULTACAO := GDFIELDPOS("C6_ULTACAO")
LOCAL XPRODUTO := GDFIELDPOS("C6_PRODUTO")
LOCAL XDESCRICAO:= GDFIELDPOS("C6_DESCRI")
LOCAL XENTREGA := GDFIELDPOS("C6_ENTREG")
LOCAL XPEDCLI := GDFIELDPOS("C6_PEDCLI")
// SE VIER DA ROTINA DE APROVAÇÃO, TEM QUE TRAZER OS CAMPOS PERSONALIZADOS.
IF ALLTRIM(UPPER(FUNNAME())) == 'FATA400'
// CAMPOS SC5 VEM DA ADA
SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+ADA->ADA_CODCLI+ADA->ADA_LOJCLI))
M->C5_CLIMTS := ADA->ADA_CLIMTS
M->C5_CONDPAG := ADA->ADA_CONDPG
M->C5_FORMPAG := ADA->ADA_FORMPA
M->C5_LOJMTS := ADA->ADA_LOJMTS
M->C5_OBSCLI := ALLTRIM(SA1->A1_OBSERV)
If SA1->(FieldPos("A1_OBSOP")) > 0
M->C5_OBSOP := ALLTRIM(SA1->A1_OBSOP)
Endif
M->C5_OBSOP := ADA->ADA_OBSOP
M->C5_REGIAO := ADA->ADA_REGIAO
If SC5->(FieldPos("C5_XOBSCPL")) > 0
M->C5_XOBSCPL := ADA->ADA_XOBSCP
Endif
M->C5_XOBSFA := ADA->ADA_XOBSFA
M->C5_XOPCCOM := ADA->ADA_XOPCCO
M->C5_NOMECLI := SA1->A1_NOME
M->C5_TPFRETE := ADA->ADA_TPFRET
If SC5->(FieldPos("C5_XCONTRA")) > 0
M->C5_XCONTRA := ADA->ADA_NUMCTR
Endif
If !Empty(ADA->ADA_CLIMTS) // Pega Informacao do Cliente MTS
SA1->(dbSetOrder(1), dbSeek(xFilial("SA1")+ADA->ADA_CLIMTS+ADA->ADA_LOJMTS))
M->C5_OBSCLI := ALLTRIM(SA1->A1_OBSERV)
If SA1->(FieldPos("A1_OBSOP")) > 0
M->C5_OBSOP := ALLTRIM(SA1->A1_OBSOP)
Endif
Endif
DBSELECTAREA("ADB")
DBSETORDER(1)
FOR II := 1 TO LEN(ACOLS)
IF DBSEEK(XFILIAL("ADB") + ADA->ADA_NUMCTR + ACOLS[II,ITEM])
ACOLS[II,ITCLI] := ADB->ADB_ITEMCL
ACOLS[II,XCODAP] := ADB->ADB_XAPL
ACOLS[II,XAPLIC] := ADB->ADB_XAPLIC
ACOLS[II,XEMBAL] := ADB->ADB_XEMBAL
ACOLS[II,XLACRE] := ADB->ADB_XLACRE
ACOLS[II,XPBITE] := ADB->ADB_XPBITE
ACOLS[II,XPLITE] := ADB->ADB_XPLITE
ACOLS[II,XVOLIT] := ADB->ADB_XVOLIT
ACOLS[II,XENTREGA] := ADB->ADB_DATA
ACOLS[II,XPRUNIT] := ACOLS[II,XPRCVEN]
ACOLS[II,XOPC] := ADB->ADB_OPC
ACOLS[II,XPEDCLI] := ADB->ADB_NPCL
ACOLS[II,XULTACAO] := 'Incluido Em ' + DtoC(Date()) + ' as ' + Left(Time(),5)
SB1->(dbSetOrder(1), dbSeek(xFilial("SB1")+aCols[II,xPRODUTO]))
aCols[II,xDescricao] := SB1->B1_DESC
ENDIF
NEXT II
// CAMPOS DO SC6 VEM DO ADB
ENDIF
return
Ultima edição: 3 anos 10 meses atrás por admin.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- Ponto de Entrada FT400VAL - Levar inform. Compl. para Pedido Venda.
Tempo para a criação da página:0.134 segundos