× Linguagem de Programação ADVPL

Perguntas Gravação de campo criado pelo ponto de entrada MT110TEL

Mais
9 anos 3 meses atrás #28887 por gustavo
Cara não da mais o erro mas também não grava! :( é correto passar uma váriável por parâmetro por um P.E?

User Function MTA110OK(cTpComp)

Local cNumSc := PARAMIXB[1],;
cUser := PARAMIXB[2],;
dDtaSol:= PARAMIXB[3]

Local lRet := .T.

Local aAreaSC1:= GetArea()

DbSelectArea('SC1')
DbSetOrder(1)
If DbSeek(xFilial('SC1')+cNumSc)
While SC1->(!EOF()) .And. SC1->C1_FILIAL == xFilial('SC1') .And. SC1->C1_NUM == cNumSc
RecLock('SC1',.F.)
SC1->C1_XTPCOMP := cTpComp
SC1->(MsUnlock())
EndDo
EndIf
RestArea(aAreaSC1)

Return lRet

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 3 meses atrás #28888 por will3698
Quando voce debuga, o seu dbseek retorna .T. ?

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 3 meses atrás #28930 por gustavo
Willian, obrigado cara!!!

Percebi que em P.E não se passa variáveis por parâmetros. Segue o fonte compilado e funcionando.

//////////////////////////////////////////////////////////////////////////////////////////////
//+
+//
//| PROGRAMA | MT110TEL | AUTOR | GUSTAVO.RODRIGUES | DATA | 13/08/2015 |//
//+
+//
//| DESCRICAO | Ponto de entrada que permite incluir formas visuais na tela de S.C. |//
//| | Foram inclusos dois novos: "Tipo de Compra"(define se o tipo de compra será|//
//| | DIRETA ou feita pelo PROCESSO DE COMPRA normal) e "Comprador" para que |//
//| | fique registrado o nome do comprador responsável pela S.C. |//
//|+
+//
//| MANUTENCAO DESDE SUA CRIACAO |//
//+
+//
//| DATA | AUTOR | DESCRICAO |//
//+
+//
//| | | |//
//| | |//
//+
+//
//| DATA | AUTOR | DESCRICAO |//
//+
+//
//| | | |//
//+
+//
//////////////////////////////////////////////////////////////////////////////////////////////

#Include "Protheus.Ch"
#Include "RWMake.Ch"

User function MT110TEL()

Local oNewDialog := PARAMIXB[1],;
aPosGet := PARAMIXB[2],;
nOpcx := PARAMIXB[3],;
nReg := PARAMIXB[4]

If nOpcx == 3

Public cTpComp := CriaVar('C1_XTPCOMP'),;
cNomeComp := Space(30)

Else

Public cTpComp := SC1->C1_XTPCOMP,;
cNomeComp := SC1->C1_XCOMPRA

Endif

If nOpcx == 2
AADD(aPosGet[1],0)
AADD(aPosGet[1],0)

@ 32,22 Say 'Tipo de compra' Pixel Size 45,11 Of oNewDialog
@ 32,78 MSCOMBOBOX cTpComp ITEMS{'','P=Processo de compras','D=Direta'} SIZE 075,010 Of oNewDialog Pixel Valid !Vazio() When .F.

@ 32,260 Say 'Comprador' Pixel Size 50,11 Of oNewDialog
@ 32,305 MsGet cNomeComp Size 080,9 Picture '@!' Of oNewDialog Pixel When .F.
Else
AADD(aPosGet[1],0)
AADD(aPosGet[1],0)

@ 32,22 SAY 'Tipo de compra' PIXEL SIZE 45,11 Of oNewDialog
@ 32,78 MSCOMBOBOX cTpComp ITEMS{'','P=Processo de compras','D=Direta'} SIZE 075, 010 Of oNewDialog Pixel Valid !Vazio()

@ 32,260 Say 'Comprador' Pixel Size 70,11 Of oNewDialog
@ 32,305 MsGet cNomeComp Size 080,09 Picture '@!' Of oNewDialog Pixel When .F.
EndIf

Return

//////////////////////////////////////////////////////////////////////////////////////////////
//+
+//
//| PROGRAMA | MT110GET | AUTOR | GUSTAVO.RODRIGUES | DATA | 13/08/2015 |//
//+
+//
//| DESCRICAO | Ponto de entrada que ajusta as dimensões da grid da tela. |//
//+
+//
//////////////////////////////////////////////////////////////////////////////////////////////

User Function MT110GET()

Local aRet:= PARAMIXB[1]

aRet[2,1] := 47 // Abaixando o começo da linha da getdados
aRet[1,3] := 46 // Abaixando a linha de contorno dos campos do cabeçalho

Return(aRet)

//////////////////////////////////////////////////////////////////////////////////////////////
//+
+//
//| PROGRAMA | MT110GRV | AUTOR | GUSTAVO.RODRIGUES | DATA | 13/08/2015 |//
//+
+//
//| DESCRICAO | Ponto de entrada que grava as informações passadas na S.C |//
//+
+//
//////////////////////////////////////////////////////////////////////////////////////////////

User Function MT110GRV()

Local cCopia := PARAMIXB[1]
Local cSc := ''

cSc:= SC1->C1_NUM

DbSelectArea('SC1')
DbSetOrder(1)
SC1->(DbGoTop())
If SC1->(DbSeek(xFilial("SC1")+cSc))
While !SC1->(Eof()) .and. SC1->C1_FILIAL == xFilial("SC1") .and. SC1->C1_NUM == cSc
RecLock('SC1',.F.)
DbSelectArea('SC1')
DbSetOrder(1)
RecLock('SC1',.F.)
SC1->C1_XTPCOMP := cTpComp
MsUnlock()
SC1->(DbSkip())
EndDo
EndIf

Return

Por favor Acessar ou Registrar para participar da conversa.

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