× Linguagem de Programação ADVPL

Perguntas Gerar arquivo TXT

Mais
12 anos 11 meses atrás #115 por lalberto
Gerar arquivo TXT foi criado por lalberto
Bom dia Srs. Programadores,
Por acaso algum de vocês tem um modelo pronto de programa para gerar um arquivo TXT usando fwrite, buffer,etc...etc...?

Agradeço antecipadamente a ajuda.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
12 anos 11 meses atrás #116 por lalberto
Respondido por lalberto no tópico Re: Gerar arquivo TXT
Utilizando o Assistente de código do Ide voce terá uma função padrão que utiliza estes comandos pronta pra uso, somente inserindo os campos que desejar.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
11 anos 6 meses atrás #14065 por deividramos
Respondido por deividramos no tópico Gerar arquivo TXT
Bom dia Luiz
Não entendo muito de Programação, mais da uma verificada se isso o ajudaria
Foi montado por mim quando é feito pedido envia um email e gera um txt

Private nTotPedido := 0
Private oOrcamento := ''
Private cCNPJ :=''
Private emailcli := ''
Private nTamLin := 240
Private cLin
Private cArqTxt
Private cAnexo
Private nHdl
Private emailDestino
Private TEXT := ''
Private cTipo := ''
Private cTime :=''
//Private Treport :=''
//Private oReport:=''


//Treport (oReport:= TReport():New() ...)

//oreport:nfontbody:=7
//oreport:cfontbody:="Arial"




//Pega o email do cliente no SA1
emailcli := SA1->A1_EMAILNF

//verificar se é pedido ou orçamento
IF M->C5_ORCAM = 'N'
oOrcamento:= "PEDIDO "
ELSE
oOrcamento:= "ORCAMENTO "
ENDIF


cHtml := '<html>'
cHtml += '<head><title>' + M->C5_NUM + '</title></head>'

If INCLUI
cSubject := "Seu " + oOrcamento + M->C5_NUM + " foi INCLUIDO em nosso sistema "// + foi incluido em DATA E HORA em nosso sistema
Else
cSubject := "Seu " + oOrcamento + M->C5_NUM + " foi ALTERADO em nosso sistema "// + foi incluido em DATA E HORA em nosso sistema
endif
cHtml += '<body bgcolor=white text=black ><br><font size="2" face="Courier New">'
cHtml += "Nome do Cliente : " + SA1->A1_NOME + '<br>'
cHtml += "Codigo do Cliente : " + SA1->A1_COD + '<br>'
cHtml += "Codigo loja : " + SA1->A1_LOJA + '<br>'
cHtml += "Nome vendedor : " + SA3->A3_NOME + '<br>'


cHtml += '<br>'
cHtml += '</body>'
//Msg lista de produtos
cHtml += '<body bgcolor=white text=black ><br><font size="3" face="Courier New">'
cHtml += "Segue em anexo lista de produtos" + '<br>'
cHtml += '</body>'
cHtml += '</html>'



For I := 1 to Len(Acols) // Lendo itens do pedido

If I == 1
//Fazer if se for alteração.
CriaArqTxt() //Cria arquivo texto

// DEFINE FONT oFont NAME "Courier New" SIZE 0,-16

cLin := ''
cLin := Space(nTamLin) // Variavel para criacao da linha do registros para gravacao
cTipo := cSubject
cLin := oreport'asdfasdfas'
cLin := Stuff(cLin,01,100,''+ cTipo)//Mensagem no inicio do arquivo
cLin += CRLF
If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif


cLin := ''
cData := DATE() // Resultado: Data
cData := DTOC(DATE())
cData := DTOC(DATE()) // Resultado: Today is 09/01/90
cTime := TIME() // Resultado: Horario 10:37:17


cLin := Stuff(cLin,01,100,'Emissão na data : ' + cData + ' horário : ' + cTime)
cLin += CRLF

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif


cLin := ''
cLin := Stuff(cLin,01,60,'Nome do Cliente : ' + SA1->A1_NOME)
cLin += CRLF

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif


cLin := ''
cCNPJ := Transform(SA1->A1_CGC,'@R 99.999.999/9999-99')
cLin := Stuff(cLin,01,30,'CNPJ: ' + cCNPJ)
cLin += CRLF

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif


cLin := ''
// cLin := Stuff(cLin,01,60,'Nome do Cliente : ' + SA1->A1_NOME)
// cLin += CRLF
cLin := Stuff(cLin,01,06,'Codigo do Cliente : ' + SA1->A1_COD)
cLin += CRLF
cLin := Stuff(cLin,60,02,'Número da Loja : ' + SA1->A1_LOJA)
cLin += CRLF

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif


Dbselectarea("SA4")
Dbsetorder(1)
Dbseek(xFilial("SA4") + M->C5_TRANSP, .T.)
cLin := ''
cLin := Stuff(cLin,01,60,'Nome da Transportadora : ' + SA4->A4_NOME)
cLin += CRLF
Dbclosearea("SA4")

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif

cLin := ''
cLin += CRLF


If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif




cLin := ''
cLin := Space(nTamLin) // Variavel para criacao da linha do registros para gravacao
cLin := Stuff(cLin,01,03,'SEQ')
cLin := Stuff(cLin,05,06,'CODIGO')
cLin := Stuff(cLin,13,40,'DESCRIÇÃO')
cLin := Stuff(cLin,60,02,'UN')
cLin := Stuff(cLin,66,10,'QUANT')
cLin := Stuff(cLin,77,10,'VAL.UNIT')
cLin := Stuff(cLin,89,10,'VAL.TOT')
cLin := Stuff(cLin,100,8,'NCM')
cLin := Stuff(cLin,110,8,'IPI')
cLin += CRLF

If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif



Endif

If aCols[I,Len(aHeader)+1] == .F.//testo se esta deletado .t. eh deletado

dbSelectArea('SB1')
dbSetOrder(1)
Dbseek(xFilial("SB1") + substr(aCols[I,2],1,6), .T.)

cLin := ''
cLin := Space(nTamLin)
cSeq := aCols[I,1]
cLin := Stuff(cLin,01,03,substr(cSeq,1,03)) //cLin,01,03,'SEQ'
cCod := aCols[I,2]
cLin := Stuff(cLin,05,06,substr(cCod,1,06)) //cLin,05,06,'CODIGO'
cDesc:= (aCols[I,3])
cLin := Stuff(cLin,13,40,substr(cDesc,1,40)) //cLin,13,60,'DESCRIÇÃO'
cUn := (aCols[I,4])
cLin := Stuff(cLin,60,02,substr(cUn,1,02)) //cLin,65,02,'UN'
cQtdven := Transform(aCols[I,5], "@E 999,999.999")
cLin := Stuff(cLin,62,10,cQtdven,1,10)
cValUnit := Transform(aCols[I,6], "@E 999,999.99")//STR(aCols[I,6])
cLin := Stuff(cLin,74,10,cValUnit)
cValTot := Transform(aCols[I,7], "@E 999,999.99")
cLin := Stuff(cLin,87,10,cValTot)
cLin := Stuff(cLin,100,08,SB1->B1_POSIPI)
cIPI := Transform(SB1->B1_IPI, "@E 99")
cLin := Stuff(cLin,110,02,cIPI)


// cLin := Stuff(cLin,114,02,'17')
// cLin += CRLF
nTotPedido := nTotPedido + (aCols[I,7])
// nTotPedido += (aCols[I,7] * (1 +(SB1->B1_IPI / 100)))
cLin += CRLF

//nTotPedido += (aCols[I,7] * (1 +(SB1->B1_IPI / 100)))


If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif
Endif
next

cLin := ''
cLin := Space(nTamLin)
cLin += CRLF
cLin += CRLF
cLin := Stuff(cLin,01,20,'Total do Pedido: ' + Transform(nTotPedido, "@E 999,999.99"))
If fWrite(nHdl,cLin,Len(cLin)) != Len(cLin)
If !MsgAlert("Ocorreu um erro na gravacao do arquivo. Continua?","Atencao!")
Return .f.
Endif
Endif

cDestino := emailcli // + ';'

cAnexo := GetSrvProfString("Startpath","") + "pedido\" + ALLTRIM( M->C5_NUM) + ".TXT"

fClose(nHdl)

U_JACFMail(cDestino, cSubject, cHtml, cAnexo) //cArqTxt

fErase(cAnexo)

Return


******************************************************************

Static Function CriaArqTxt()

cArqTxt := GetSrvProfString("Startpath","") + "pedido\" + ALLTRIM(M->C5_NUM) + ".TXT"
nHdl := fCreate(cArqTxt)


If nHdl == -1
MsgAlert("O arquivo de nome "+cArqTxt+" nao pode ser criado! ","Atencao!")
Return
Endif

Return

*****************************************************************

Abraço

Por favor Acessar ou Registrar para participar da conversa.

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