× Linguagem de Programação ADVPL

Perguntas MSExecAuto CTBA102 com Excel

Mais
9 anos 5 meses atrás - 9 anos 5 meses atrás #28301 por sarraipa
Eu já fiz alguns execauto de uma tabela temporária para outra , mas agora tenho que tentar fazer um extraindo os dados do excel, gostaria de saber se alguém tem algum exemplo para fornecer tenho em importar para a CT2.


Grato
Ultima edição: 9 anos 5 meses atrás por sarraipa.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 5 meses atrás #28323 por sarraipa
Respondido por sarraipa no tópico MSExecAuto CTBA102 com Excel
EU fiz o execauto mas to com outro problema quando eu importo um arquivo com uma linha vai que é uma beleza, agora quando tem outra linha da PAU.

CT2_DATA CT2_LOTE CT2_SBLOTE CT2_DOC CT2_LINHA
20150401 389651 001 000001 001
20150401 389651 001 000001 002

#include "totvs.ch"
#include "protheus.ch"

User Function CARGACT2()

Local cArq := "CT2.csv"
Local cDir := "C:\01\"
Local cLinha := ""
Local lPrim := .T.
Local aCampos := {}
Local aDados := {}
LOCAL nCont := 0
Local aCab := {}
Local aItens := {}

Private lMsErroAuto := .F.
Private lMsHelpAuto := .T.
Private CTF_LOCK := 0
Private lSubLote := .T.

If !File(cDir+cArq)
MsgStop("O arquivo " +cDir+cArq + " não foi encontrado. A importação será abortada!","[AEST901] - ATENCAO")
Return
EndIf

FT_FUSE(cDir+cArq)
ProcRegua(FT_FLASTREC())
FT_FGOTOP()
While !FT_FEOF()

IncProc("Lendo arquivo texto...")

cLinha := FT_FREADLN()

If lPrim
aCampos := Separa(cLinha,";",.T.)
lPrim := .F.
Else
AADD(aDados,Separa(cLinha,";",.T.))


nCont++


EndIf

FT_FSKIP()
EndDo

//******************INCIO
For nX:=1 To nCont

dbSelectArea("CT2")
dbSetOrder(1)

If !dbSeek(xFilial("CT2")+aDados[nx,2]+aDados[nx,3]+aDados[nx,4]+aDados[nx,5]+aDados[nx,6]) //inicio valida se o doc ja foi lançado valida até a linha

aAdd(aCab, {'DDATALANC' ,STOD(aDados[nx,2]) ,NIL} )
aAdd(aCab, {'CLOTE' ,aDados[nx,3] ,NIL} )
aAdd(aCab, {'CSUBLOTE' ,aDados[nx,4] ,NIL} )
aAdd(aCab, {'CDOC' ,aDados[nx,5] ,NIL} )
aAdd(aCab, {'CPADRAO' ,'' ,NIL} )
aAdd(aCab, {'NTOTINF' ,0 ,NIL} )
aAdd(aCab, {'NTOTINFLOT' ,0 ,NIL} )

aAdd(aItens,{ {'CT2_FILIAL' ,aDados[nx,1] , NIL},;
{'CT2_LINHA' , aDados[nx,6] , NIL},;
{'CT2_MOEDLC' ,'01' , NIL},;
{'CT2_DC' ,aDados[nx,7] , NIL},;
{'CT2_DEBITO' ,aDados[nx,8] , NIL},;
{'CT2_CREDIT' ,aDados[nx,9] , NIL},;
{'CT2_VALOR' , VAL(aDados[nx,10]) , NIL},;
{'CT2_ORIGEM' ,'CTBA102' , NIL},;
{'CT2_HP' ,'' , NIL},;
{'CT2_HIST' ,aDados[nx,11] , NIL},;
{'CT2_CCD' ,aDados[nx,12] , NIL},;
{'CT2_CCC' ,aDados[nx,13] , NIL}})

MSExecAuto({|x, y,z| CTBA102(x,y,z)}, aCab ,aItens, 3)

If lMsErroAuto
lMsErroAuto := .F.
MostraErro()
MsgAlert("ERRO Lançamento" , "Teste Carga CT2")
lRet := .F.
Exit
Endif

else //se o doc ja existir mostra mensagem
MsgAlert("ERRO Lançamento Duplicado, verifique a data, lote, numero do doc, e linha" , "Teste Carga CT2")
EXIT
Endif //fim da valida se o doc ja foi lançado

Next nX

FT_FUSE()

ApMsgInfo("Importação concluída!")

Return
Os seguintes usuário(s) disseram Obrigado: kaiosux

Por favor Acessar ou Registrar para participar da conversa.

Mais
4 anos 3 meses atrás #32908 por kaiosux
Respondido por kaiosux no tópico MSExecAuto CTBA102 com Excel
Preciso dessa rotina para importação de dados na CT2. Consegue me disponibilizar algo ?

Por favor Acessar ou Registrar para participar da conversa.

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