- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- Ponto de Entrada FT400VLC - Levar inform. Compl. para Item do Pedido Venda.
Perguntas Ponto de Entrada FT400VLC - Levar inform. Compl. para Item do Pedido Venda.
- vinaop
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
3 anos 11 meses atrás #32959
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 um campo MEMO na SC6->C6_INFAD e para atender nossa necessidade precisei criar um campo com essa estrutura na tabela ADB (ADB_X_INFP).
No momento da Aprovação e ou Remessa do contrato de parceria, esse campo já previamente preenchidos no item do contrato (ADB) deve ser levado para o item do 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 ele atribuído não é levado para o item pedido de vendas.
Debugando o ponto de entrada, posso ver o valor sendo atribuídos certinho para a variável de tela, mas na execução do programa, não consigo ter os dados desses conteúdos na tela do item 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 um campo MEMO na SC6->C6_INFAD e para atender nossa necessidade precisei criar um campo com essa estrutura na tabela ADB (ADB_X_INFP).
No momento da Aprovação e ou Remessa do contrato de parceria, esse campo já previamente preenchidos no item do contrato (ADB) deve ser levado para o item do 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 ele atribuído não é levado para o item pedido de vendas.
Debugando o ponto de entrada, posso ver o valor sendo atribuídos certinho para a variável de tela, mas na execução do programa, não consigo ter os dados desses conteúdos na tela do item do pedido de vendas.
O código abaixo, simples para entendimento;
#INCLUDE "PROTHEUS.CH"
#INCLUDE "RWMAKE.CH"
USER FUNCTION FT400VLC()
Local n_I := 0
Local a_Area := GetArea()
Local a_AreADB := ADB->(GetArea())
Local aHeader := ParamIxb[1]
Local aCols := ParamIxb[2]
Local nLinha :=Len(aCols)
Local lRet := .T.
// Manutenção do Código para buscar o Campo Memo do Contrato de Parceria para o Item Pedido de Vendas.
For n_I := 1 to nLinha
DbSelectArea("ADB")
DbSetOrder(1)
//If DbSeek(xFilial("ADB") + ADA->ADA_NUMCTR + aCols[n_I,GdFieldPos("C6_ITEM",aHeader)])
If DbSeek(xFilial("ADB") + ADA->ADA_NUMCTR + ADB->ADB_ITEM)
M->C6_INFAD := ADB->ADB_X_INFP
EndIf
Next
RestArea(a_AreADB)
RestArea(a_Area)
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 11 meses atrás #32962
por admin
Respondido por admin no tópico Ponto de Entrada FT400VLC - Levar inform. Compl. para Item do Pedido Venda.
Segue Resposta Identica ao topico anterior, creio que o ponto de entrada irá atender os seus dois problemas ok.
#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
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Pontos de Entrada
- Ponto de Entrada FT400VLC - Levar inform. Compl. para Item do Pedido Venda.
Tempo para a criação da página:0.083 segundos