× Linguagem de Programação ADVPL

Perguntas Copiar titulos do contas à receber para o à pagar.

Mais
10 anos 3 meses atrás #24496 por RENAN
Boa tarde, Galera.

Sou novo no advpl. Estou precisando de ajuda.

Eu estou criando uma função para que o usuário na hora que incluir um titulo no contas a receber. Tenha a opção de incluir o mesmo no apagar tbm. Pois aqui na empresa a caso de ter q incluir o mesmo titulo mas especifico tipo CH no a pagar tbm. Com isso fui solicitado para agilizar o processo. Criei um pergunta para definir a inclusão ou não. Caso sim, uma tela para escolher o fornecedor com um F3. Blz agora chegou na hora de pegar o cadastro do a receber e replicar no a pagar. Estou na duvida de como proceder. Se alguem de um ajuda ae agradeço.. se vou partir pra tratar em array ou alguma outra função especifica. Segue o codigo ate o momento...

Quem poder ajudar agradeço..

#Include ‘Protheus.ch‘

User Function Incluir()


Local oDlg
Local cTexto := "Deseja incluir este titulo no contas à pagar?"
Local cTitulo := "Atenção!"
Local cTitle := "Busca por fornecedor"
Local cTexto2 := "Informe o codigo"
Local cCodforn := Space(6)
Local cTabforn := "SA2"
Local lRet := .T.


If MsgYesNo (cTexto,cTitulo)


DEFINE MSDIALOG oDlg Title cTitle From 000,000 To 080,300 Pixel

@ 001,001 To 040,150 of oDlg Pixel
@ 010,005 Say cTexto2 SIZE 25,07 of oDlg Pixel
@ 020,050 MSGET cCodforn SIZE 55,6 of oDlg Pixel PICTURE "@!" F3"SA2";


DEFINE SBUTTON FROM 010,120 TYPE 1 ACTION (nOpca := 1, oDlg:End()) ENABLE OF oDlg
DEFINE SBUTTON FROM 020,120 TYPE 2 ACTION (nOpca := 2, oDlg:End()) ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED




Endif


Return (lRet)

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24503 por kanaamlrr
Fábio, você pode simplesmente pegar as informações e jogar dentro de um array e executar o execauto da rotina do contas a pagar conforme exemplo abaixo.

Abraço!!
USER FUNCTION FIN050INC()
LOCAL aArray := {}
 
PRIVATE lMsErroAuto := .F.
 
aArray := { { "E2_PREFIXO"  , "PAG"             , NIL },;
            { "E2_NUM"      , "0001"            , NIL },;
            { "E2_TIPO"     , "NF"              , NIL },;
            { "E2_NATUREZ"  , "001"             , NIL },;
            { "E2_FORNECE"  , "0001"            , NIL },;
            { "E2_EMISSAO"  , CtoD("17/02/2012"), NIL },;
            { "E2_VENCTO"   , CtoD("17/02/2012"), NIL },;
            { "E2_VENCREA"  , CtoD("17/02/2012"), NIL },;
            { "E2_VALOR"    , 5000              , NIL } }
 
MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3)  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão
 
 
If lMsErroAuto
    MostraErro()
Else
    Alert("Título incluído com sucesso!")
Endif
 
Return

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24509 por RENAN
Muito obrigado Kanaãm Luz.

Realmente tinha esquecido do execauto. Ja consegui o resultado que eu queria agora e so fazer alguns ajustes e colocar pra rodar.

Mas uma vez obg.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás - 10 anos 3 meses atrás #24580 por RENAN
Bom dia.

Agora estou quebrando a cabeça neste erro.. Ele aparece quando saio da rotina do contas a receber. O estranho q o ponto de entrada funciona normalmente. so quando vou trocar de rotina apresenta. Agora o que observei e que se eu tira o F3"SA2" da msget ele funciona normal. não apresenta erro hora nenhum. Segue o fonte e o erro em anexo..

Por favor me ajudem. So falta isso pra finalizar.
#Include 'Protheus.ch'

User Function FA040INC()


	Private oDlg
	Private cTexto  := "Deseja incluir este título no contas à pagar?"
	Private cTitulo := "Atenção!"
	Private cTitle	 := "Busca por fornecedor"
	Private cTexto2 := "Informe o codigo"
	Private cCodforn  := Space(6)
	Private lRet := .T.
	Private aArray := {}
	Private lMsErroAuto := .F.
	Private nOpca
	
dbselectarea("SA2")
dbSetorder(1)
	
	If MsgYesNo (cTexto,cTitulo)
							
		
		DEFINE MSDIALOG oDlg Title cTitle From 000,000 To 080,300 Pixel
		
		@ 001,001 To 040,150 of oDlg Pixel
		@ 010,005 Say cTexto2 SIZE 50,07 of oDlg Pixel
		@ 020,050 MSGET cCodforn SIZE 55,6 of oDlg Pixel PICTURE "@R 999999" f3"SA2";
		VALID ExistCpo("SA2",cCodforn)
		
		
		DEFINE SBUTTON FROM 010,120 TYPE 1 ACTION (nOpca := 1, oDlg:End()) ENABLE OF oDlg
		DEFINE SBUTTON FROM 020,120 TYPE 2 ACTION (nOpca := 2, oDlg:End()) ENABLE OF oDlg
		ACTIVATE MSDIALOG oDlg CENTERED
		
		If nOpca == 1
		
			aArray := { { "E2_PREFIXO"  , M->E1_PREFIXO             , NIL },;
				{ "E2_TIPO"     , M->E1_TIPO        , NIL },;
				{ "E2_NATUREZ"  , M->E1_NATUREZ     , NIL },;
				{ "E2_FORNECE"  , cCodforn          , NIL },;
				{ "E2_EMISSAO"  , M->E1_EMISSAO     , NIL },;
				{ "E2_VENCTO"   , M->E1_VENCTO      , NIL },;
				{ "E2_VENCREA"  , M->E1_VENCREA     , NIL },;
				{ "E2_VALOR"    , M->E1_VALOR       , NIL } }
 
			MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3)  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão
 
 
			If lMsErroAuto
				MostraErro()
			Else
				MsgAlert("Título incluído com sucesso!",cTitulo)
				Return (lRet)
			Endif			
		Endif
	Endif
	
	
	
Return (lRet)
Anexos:
Ultima edição: 10 anos 3 meses atrás por RENAN.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24584 por Eduardo TI
MSGET cTm F3 "SF5" Picture PesqPict("SD3","D3_TM") Valid CheckSX3("D3_TM") .And. VldUser('D3_TM')

Veja a posição onde se coloca o F3 no exemplo acima se da certo.

Por favor Acessar ou Registrar para participar da conversa.

Mais
10 anos 3 meses atrás #24586 por admin
Declare suas Variaveis Como Locais e Guarde a Area.

#Include 'Protheus.ch'

User Function FA040INC()
Local aArea := GetArea()
Local oDlg
Local cTexto := "Deseja incluir este título no contas à pagar?"
Local cTitulo := "Atenção!"
Local cTitle := "Busca por fornecedor"
Local cTexto2 := "Informe o codigo"
Local cCodforn := Space(6)
Local lRet := .T.
Local aArray := {}

Private lMsErroAuto := .F.
Private nOpca

dbselectarea("SA2")
dbSetorder(1)

If MsgYesNo (cTexto,cTitulo)


DEFINE MSDIALOG oDlg Title cTitle From 000,000 To 080,300 Pixel

@ 001,001 To 040,150 of oDlg Pixel
@ 010,005 Say cTexto2 SIZE 50,07 of oDlg Pixel
@ 020,050 MSGET cCodforn SIZE 55,6 of oDlg Pixel PICTURE "@R 999999" f3 "SA2";
VALID ExistCpo("SA2",cCodforn)


DEFINE SBUTTON FROM 010,120 TYPE 1 ACTION (nOpca := 1, oDlg:End()) ENABLE OF oDlg
DEFINE SBUTTON FROM 020,120 TYPE 2 ACTION (nOpca := 2, oDlg:End()) ENABLE OF oDlg
ACTIVATE MSDIALOG oDlg CENTERED

If nOpca == 1

aArray := { { "E2_PREFIXO" , M->E1_PREFIXO , NIL },;
{ "E2_TIPO" , M->E1_TIPO , NIL },;
{ "E2_NATUREZ" , M->E1_NATUREZ , NIL },;
{ "E2_FORNECE" , cCodforn , NIL },;
{ "E2_EMISSAO" , M->E1_EMISSAO , NIL },;
{ "E2_VENCTO" , M->E1_VENCTO , NIL },;
{ "E2_VENCREA" , M->E1_VENCREA , NIL },;
{ "E2_VALOR" , M->E1_VALOR , NIL } }

MsExecAuto( { |x,y,z| FINA050(x,y,z)}, aArray,, 3) // 3 - Inclusao, 4 - Alteração, 5 - Exclusão


If lMsErroAuto
MostraErro()
Else
MsgAlert("Título incluído com sucesso!",cTitulo)
RestArea(aArea)
Return (lRet)
Endif
Endif
Endif


RestArea(aArea)
Return (lRet)

Por favor Acessar ou Registrar para participar da conversa.

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