Perguntas Ponto de Entrada FT400VAL - Levar inform. Compl. para Pedido Venda.

Mais
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;
#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.

Mais
3 anos 10 meses atrás - 3 anos 10 meses atrás #32961 por admin
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.

Tempo para a criação da página:0.134 segundos
Joomla templates by a4joomla