Bom dia
Amigos,
Em meu sistema possuo uma rotina de exportação de lançamentos em arquivo texto conforme layout definido pelo meu sistema. Uso a seguinte rotina:
Esta rotina funciona perfeitamente, conforme imagem:
Ocorre que, o sistema de terceiros usados por meu cliente mudou a forma de integração, exigindo que eu mude meu layout da seguinte forma:
Por exemplo:
Tenho um campo chamado Histórico, trata-se de um campo texto, onde tenho até 500 caracteres a serem usados..... pelo layout especificado, tenho que gerar este campo de forma delimitada, onde, inicio na coluna 29 o histórico e após 29 caracteres, quebre a linha e numere a mesma e informe o valor apenas na última linha do lançamento.
Alguém tem alguma dica de como possa fazê-lo conforme imagem: (layout terceiros)
Att. Vinicius
Amigos,
Em meu sistema possuo uma rotina de exportação de lançamentos em arquivo texto conforme layout definido pelo meu sistema. Uso a seguinte rotina:
- Código:
'Créditos: http://www.macoratti.net/txt_arqs.htmExporta
Public Function fncExpLanMax7()
On Error GoTo trataerro
Dim db As DAO.Database
Dim RSP, RSP1 As DAO.Recordset
Dim strSql As String
Dim Sai As String
Dim TamValor As Integer
Set RSP = CurrentDb.OpenRecordset("SELECT Max(Len(ValorLanc)) FROM tb_Lancamentos;")
TamValor = RSP(0)
Set db = CurrentDb
strSql = "SELECT tb_Lancamentos.DataLan, tb_Lancamentos.Agrupamento, tb_Lancamentos.Devedora7, tb_Lancamentos.Credora7, tb_Lancamentos.ValorLanc, tb_Lancamentos.Histórico FROM tb_Lancamentos ORDER BY tb_Lancamentos.DataLan, tb_Lancamentos.Agrupamento;"
Set RSP = db.OpenRecordset(strSql)
strSql = Application.CurrentProject.Path
Open strSql & "\Lancamentos7.txt" For Output As #1
'Print #1, Sai
With RSP
.MoveFirst
Do While Not .EOF
Sai = JustStr(RSP!Devedora7, "000000000", 16) & JustStr(RSP!Credora7, "000000000", 16) & Space(1) & (RSP!DataLan) & Space(1) & (RSP!Agrupamento) & Space(10 + TamValor - Len(RSP!ValorLanc)) & (RSP!ValorLanc) & Space(1) & (RSP!Histórico)
'Sai = JustStr(RSP!DataLan, " ", 10) & Space(1) & (RSP!Agrupamento) & Space(1) & (RSP!Devedora7) & Space(3) & (RSP!Credora7) & Space(3) & Space(10 + TamValor - Len(RSP!ValorLanc)) & (RSP!ValorLanc) & Space(2) & Space(2) & (RSP!Histórico)
CtaItens = CtaItens + 1
Print #1, Sai
.MoveNext
Loop
End With
MsgBox "Lançamentos Contábeis Exportados!!!", vbExclamation, "Processo Completado OK."
Set db = Nothing
Set RSP = Nothing
Close #1
Exit_TrataErro:
Exit Function
trataerro:
MsgBox "Falha de Processamento. Função fncLimpa." _
& vbCrLf & "Erro n°: " & Err.Number _
& vbCrLf & "Descrição: " _
& Err.Description, vbInformation, "Erro..."
Exit Function
End Function
Esta rotina funciona perfeitamente, conforme imagem:
Ocorre que, o sistema de terceiros usados por meu cliente mudou a forma de integração, exigindo que eu mude meu layout da seguinte forma:
Por exemplo:
Tenho um campo chamado Histórico, trata-se de um campo texto, onde tenho até 500 caracteres a serem usados..... pelo layout especificado, tenho que gerar este campo de forma delimitada, onde, inicio na coluna 29 o histórico e após 29 caracteres, quebre a linha e numere a mesma e informe o valor apenas na última linha do lançamento.
Alguém tem alguma dica de como possa fazê-lo conforme imagem: (layout terceiros)
Att. Vinicius