Árvore de páginas

Rotina Automatica OMSA010 

Produto:

PROTHEUS ADVPL

Versões:

Todas

Ocorrência:

A situação que ocorre é que quando vou inserir um item pela rotina automática, o item é inserido, mas o item da primeira linha é apagado.

Ambiente:

Todos

Passo a passo:

  • Para Alteração e exclusão de um item da rotina automática deve-se utilizar LINPOS e AUTODELETA
  • Quando existir a necessidade de alterar um item especifico da Getdados, existem dois campos que podem ser utilizados, os campos são: LINPOS e AUTDELETA. O primeiro deve ser utilizado para localizar o item do aCols que sofrerá alteração, o segundo instruí a rotina automática para deletar a linha. Caso não seja utilizado o LINPOS esta função irá reconstruir todo o aCols.

Segue exemplo de customização

#include 'protheus.ch'
#include 'parmtype.ch'
#INCLUDE "TBICONN.CH"

user function EOSA010()

local aCab := {}
local aItem := {}
local nOpc := 4
local i
local cCodTab := "007"
local cNomeTab := "TESTE2 "
local cHoraDe := "00:00"
local cHoraAte := "23:59"
local cTpHorario := "1"
local cTabAtiv := "1"
local cItem := "0003"
local cProduto := "TB0000000000001"
local nPrcVen := 22
local nPrcVen2 := 20
local cAtivo := "1"
local aItens :={}
PRIVATE lMsErroAuto := .F.

 

PREPARE ENVIRONMENT EMPRESA '99' FILIAL '01'

aAdd(aCab, {"DA0_CODTAB" , cCodTab , NIL})
aAdd(aCab, {"DA0_DESCRI" , cNomeTab , NIL})
aAdd(aCab, {"DA0_DATDE" , dDatabase , NIL})
aAdd(aCab, {"DA0_HORADE" , cHoraDe , NIL})
aAdd(aCab, {"DA0_TPHORA" , cTpHorario, NIL})
aAdd(aCab, {"DA0_ATIVO" , cTabAtiv , NIL})

//aItem:={}

aAdd(aItem,{ {"DA1_ITEM" , cItem , NIL},;
{"DA1_CODPRO" , cProduto , NIL},;
{"DA1_PRCVEN" , nPrcVen , NIL}})

// Para incluir um unico item não é necessario os itens LINPOS e AUTODELETA usa-se somente na Alteração ou exclusão

{"LINPOS","DA1_ITEM" ,'0001'},;
{"AUTDELETA","N" ,Nil}})

//aadd(aItens, aItem)
//aItem:={}
/* aAdd(aItem,{ {"DA1_ITEM" , "0004" , NIL},;
{"DA1_CODPRO" , "TB0000000000002" , NIL},;
{"DA1_PRCVEN" ,nPrcVen2 , NIL}})

// Para excluir um unico item é os itens LINPOS e AUTODELETA sendo que o Autodeleta receberá o valor "N"

//{"LINPOS","DA1_ITEM" ,'0002'},;
//{"AUTDELETA","S" ,Nil}})*/

//aadd(aItens, aItem)

Omsa010(aCab,aItem,nOpc)

If lMsErroAuto

DisarmTransaction()
Mostraerro()
Else
conout("ALterado com sucesso.")
EndIf
RESET ENVIRONMENT
Return(.T.)

Obs Verifique nOpc := 4 - Alteração / 3 - Inclusão


Observações: