|
Bem Vindo, Visitante
|
Todos os Fórums
ADVPL
|
Imprimir
Enviar Para um Amigo Precisa estar Logado
|
|
|
Assunto: |
MSExecAuto CTBA102 com Excel |
|
Versão: |
12.1.25 |
|
Plataforma: |
Microsoft |
Complemento: |
|
|
DB: |
SQL Server |
Complemento: |
|
|
LeArqTXT.prw (anexo) | |
|
|
|
Mensagem do
KAIOSUX
em 30/07/2020, 19:37 h
Local: BA Registro: 05/05/2019 Postagens: 6 |
U 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 |
|
|
Mensagem do
EMERSON.EN
em 31/07/2020, 08:23 h
Local: SP Registro: 20/08/2010 Postagens: 670 |
. pergunta: qual o erro apresentado?
|
|
|
Mensagem do
CJ_CAMPOS
em 31/07/2020, 09:44 h
Local: SP Registro: 22/04/2020 Postagens: 61 |
Creio que falta a linha do documento ...
|
|
|
Mensagem do
KAIOSUX
em 31/07/2020, 09:58 h
Local: BA Registro: 05/05/2019 Postagens: 6 |
Só processa uma linha.
Não da erro.
Alguem tem esse fonte funcionando ? |
|
|
Mensagem do
EMERSON.EN
em 31/07/2020, 10:57 h
Local: SP Registro: 20/08/2010 Postagens: 670 |
você pode anexar o arquivo neste tópico ?
5 ou 6 linhas bastam.
|
|
|
Mensagem do
CJ_CAMPOS
em 31/07/2020, 12:18 h
Local: SP Registro: 22/04/2020 Postagens: 61 |
Tente desta maneira..
#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 := {}
Local nX := 1 /// Insira esta linha.
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)
// Escolha um dos dois abaixo , ou respeita o arquivo origem, ou respeita a valor do xFilial("CT2")
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
If !dbSeek(aDados[nx,1]+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
If nX == 1 // Fazer somente para a primeira 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} )
Endif
aAdd(aItens,{ {'CT2_FILIAL' ,aDados[nx,1] /* ou XFILIAL("CT2" )*/ , 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 |
|
|
Mensagem do
INFOBRENO
em 31/07/2020, 12:41 h
Local: MT Registro: 02/03/2011 Postagens: 117 |
Anexei um que utilizo aqui na empresa e está importando certinho, veja se te ajuda.
Breno Nogueira |
|
|
Mensagem do
KAIOSUX
em 31/07/2020, 14:29 h
Local: BA Registro: 05/05/2019 Postagens: 6 |
Ajustamos aqui pessoal.
Problema no array apenas.
Para quem precisar segue em anexo. |
|
Para postar no Fórum você precisa efetuar o seu login ou se registrar
|
|