Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

01. VISÃO GERAL

Linha de Produto:Microsiga Protheus®
Segmento:Serviços
Módulo:SIGAGPE
Função:GPEA550 - Lançamentos Fixos
Abrangências:Microsiga Protheus 12
Versões:Microsiga Protheus 12
Sistemas Operacionais:Todos
Compatível com as Bases de Dados:Todos
Nível de Acesso:Nível 1 (Acesso Clientes)
Idiomas:Todos

02. DESCRIÇÃO

Função utilizada para manutenção de lançamentos fixos por funcionários via rotina automática (ExecAuto). Mais informações sobre a rotina em Lançamentos Fixos V12 - (GPEA550 - SIGAGPE - V12).

03. INFORMAÇÕES TÉCNICAS

nOpcAuto

Operação

4 - Inclusão/Alteração
5 - Exclusão

aCabAuto

Array com informações do funcionário a ser feita a manutenção dos lançamentos fixos

aCabAuto[1] Filial
aCabAuto[2] Matricula

aItemAuto

Array com os campos da tabela RG1 - Lançamentos Fixos a serem informados 

O array deve seguir o padrão exigido pela MsGetDAuto
Sendo um array multi dimensional onde cada posição do array aItemAuto correspondente a uma linha da grid.

As informações devem ser passadas seguindo a estrutura:
[nX][1] Nome do campo
[nX][2] Conteúdo do campo
[nX][3] Nil

04. EXEMPLOS

Ao efetuar as manutenções, é necessário posicionar no funcionário a ser feito o lançamento conforme exemplos abaixo:

Bloco de código
languagejava
firstline1
titleExemplo de Inclusão
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function fExecInc()
	Local cFilialog	:= "D MG 01 "
	Local cMatric	:= "000002"
	Local aCabAuto	:= {}
 	Local aItemAuto := {}
	Local aLinha	:= {}
	Local lAutom	:= .T. //execucao sem interface
	Local nOpc		:= 4

	Private lMsErroAuto := .F.

	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog
		ConOut("Inicio: " + Time())

		dbSelectArea("SRA")
		dbSetOrder(1)
		If SRA->(MsSeek(xFilial() + cMatric))
			aadd(aCabAuto, { "RG1_FILIAL",	cFilialog,	Nil })		// Código da Filial
			aadd(aCabAuto, { "RG1_MAT",		cMatric,	Nil })		// Matrícula do funcionário

			//Campos RG1 a serem informados
			aadd(aLinha, { "RG1_ORDEM",		"001",				Nil	})	// Ordem do lançamento do funcionário
			aadd(aLinha, { "RG1_TPCALC",	"1",				Nil	})
			aadd(aLinha, { "RG1_PD",		"001",				Nil	})
			aadd(aLinha, { "RG1_VALOR",		1000.00,			Nil	})
			aadd(aLinha, { "RG1_DINIPG",	Ctod("02/02/2024"),	Nil	})
			aadd(aLinha, { "RG1_ROT",		"FOL",				Nil	})

			aadd(aItemAuto,aLinha)

			//Chama a rotina
			MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpc, lAutom, aCabAuto, aItemAuto)

			//Faz a validacao
			If !lMsErroAuto
				ConOut("Inclusao efetuada!")
			Else
				MostraErro()
			EndIf
		EndIf
		ConOut("Fim : " + Time())

	RESET ENVIRONMENT

Return Nil


Para realizar uma edição em um registro específico da RG1, é necessário identificar o item pelo recurso LINPOS da MsGetDAuto

Bloco de código
languagejava
firstline1
titleExemplo de Alteração
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function fExecAlt()
 	Local cFilialog	:= "D MG 01 "
	Local cMatric	:= "000002" 
    Local aCabAuto	:= {}
    Local aItemAuto := {}
	Local aLinha	:= {}
 	Local lAutom	:= .T. //execucao sem interface
    Local nOpcAuto	:= 4

    Private lMsErroAuto := .F.

    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog MODULO "GPE"

    	ConOut("Inicio: " + Time())

		dbSelectArea("SRA")
    	dbSetOrder(1)
	    If SRA->(MsSeek(xFilial() + cMatric))
			aAdd(aCabAuto, { "RG1_FILIAL",	cFilialog,	Nil })    // Código da Filial
			aAdd(aCabAuto, { "RG1_MAT",		cMatric,	Nil })    // Matrícula do funcionário

			aadd(aLinha, { "LINPOS", "RG1_ORDEM", "002" })	// Identificando a linha da grid pela Ordem do lançamento
 		  	//aadd(aLinha, { "AUTDELETA", "S", Nil })	// Uso em caso de exclusão de linha específica
	
			//Informações a serem alteradas
			aAdd(aLinha, { "RG1_VALOR", 500.00, Nil })

			aadd(aItemAuto,aLinha)

			//Chamada do ExecAuto
			MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpcAuto, lAutom, aCabAuto, aItemAuto)

			If !lMsErroAuto
				ConOut("Manutencao concluida!")
			Else
				MostraErro()
			EndIf
		EndIf

    	ConOut("Fim : " + Time())

    RESET ENVIRONMENT
Return NIL

*Para exclusão de um registro específico da RG1, utilizar a opção de alteração acima com os recursos LINPOS e AUTDELETA.


Utilizando a operação 5 - Exclusão é possível excluir todos os lançamentos de um mesmo funcionário, sem especificar a linha do grid.

Bloco de código
languagejava
firstline1
titleExemplo de Exclusão
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "TBICONN.CH"

User Function fExecExcl()
 	Local cFilialog	:= "D MG 01 "
	Local cMatric	:= "000002" 
    Local aCabAuto	:= {}
    Local aItemAuto := {}	// Enviar vazio
  	Local lAutom	:= .T.	// Execucao sem interface
    Local nOpcAuto	:= 5	// Identifica Exclusão

    Private lMsErroAuto := .F.

    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFilialog MODULO "GPE"

 	   ConOut("Inicio: " + Time())

		dbSelectArea("SRA")
	    dbSetOrder(1)
	    If SRA->(MsSeek(xFilial() + cMatric))
			aAdd(aCabAuto, {"RG1_FILIAL",	cFilialog,	Nil})    // Código da Filial
			aAdd(aCabAuto, {"RG1_MAT",		cMatric,	Nil})    // Matrícula do funcionário

			//Chamada do ExecAuto
			MsExecAuto({|a, b, c, d| GPEA550(a,b,c,d)}, nOpcAuto, lAutom, aCabAuto, aItemAuto)

		If !lMsErroAuto
			ConOut("Exclusao realizada!")
		Else
			MostraErro()
		EndIf
	EndIf

    ConOut("Fim : " + Time())

    RESET ENVIRONMENT

Return NIL
 


Templatedocumentos