- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MSExecAuto CTBA102 com Excel
×
Linguagem de Programação ADVPL
Perguntas MSExecAuto CTBA102 com Excel
- sarraipa
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 232
- Obrigados Recebidos: 1
9 anos 5 meses atrás - 9 anos 5 meses atrás #28301
por sarraipa
MSExecAuto CTBA102 com Excel foi criado 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
Grato
Ultima edição: 9 anos 5 meses atrás por sarraipa.
Por favor Acessar ou Registrar para participar da conversa.
- sarraipa
- Autor do Tópico
- Desconectado
- Membro Dourado
Menos
Mais
- Postagens: 232
- Obrigados Recebidos: 1
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
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.
- kaiosux
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 1
- Obrigados Recebidos: 0
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- MSExecAuto CTBA102 com Excel
Tempo para a criação da página:0.102 segundos