Amiguinhos,
Um cliente me disse que as notas fiscais de serviços devem ser emitidas eletrônicamente (NFS-E). Sendo assim, entrei em contato com o setor responsável pelo processo de integração na Prejeitura e eles me passaram para a empresa ISSIntel que é responsável pelo sistema.
Após entrar em contato, recebi os manuais e estou estudando atentamente os detalhes de desenvolvimento.
No manual de integração pude perceber que o arquivo a ser enviado é em formato XML e confesso que não domino muito sobre este assunto. Atualmente estou emitindo NF-e usando o ACBRNfeMonitor, usando xHarbour 1.2.1 (simplex) + BCC. Existe um conselho (ABRASF) que é responsável pelo modelo de processo de integração.
http://suporte.issintel.com.br/attachme ... gracao.pdf
Existe alguém que já tenha desenvolvido NFS-e e pode me ajudar com os detalhes de integração? O projeto ACBr ou HbNFe tem algo já pronto para fim?
Saudações,
Júlio.
NFS-e
Moderador: Moderadores
NFS-e
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
NFS-e
Amiguinho,
Este manual parece muito antigo. Nem encontrei o layout nele.
Olhando no site da prefeitura aqui de São Paulo percebi que ainda se usa gerar o layout em formato de registros numerados em arquivo .TXT.
Em todo caso sugiro averiguar se no seu caso voce utilizaria o mesmo esquema e dê uma olhada em alguns de meus posts com código elucidativo.
NFS-SP
Nota Fiscal Paulista/Sergipana
A codificação nelas pode te ajudar a desenvolver mais rápido a sua nota.
Levando-se em consideração que o site da prefeitura qeu voce quer integrar pode possuir ambiente próprio para isto. A de Santana do Parnaíba tem um ambiente onde o usuário digita a nota ou envia um arquivo previamente formatado para o seu portal.
Em São Paulo pode se gerar o arquivo em .TXT, validar e enviar através de seu ambiente.
Este manual parece muito antigo. Nem encontrei o layout nele.
Olhando no site da prefeitura aqui de São Paulo percebi que ainda se usa gerar o layout em formato de registros numerados em arquivo .TXT.
Em todo caso sugiro averiguar se no seu caso voce utilizaria o mesmo esquema e dê uma olhada em alguns de meus posts com código elucidativo.
NFS-SP
Nota Fiscal Paulista/Sergipana
A codificação nelas pode te ajudar a desenvolver mais rápido a sua nota.
Levando-se em consideração que o site da prefeitura qeu voce quer integrar pode possuir ambiente próprio para isto. A de Santana do Parnaíba tem um ambiente onde o usuário digita a nota ou envia um arquivo previamente formatado para o seu portal.
Em São Paulo pode se gerar o arquivo em .TXT, validar e enviar através de seu ambiente.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
NFS-e
Amigo Rochinha,
Obrigado pela resposta.
Entrei em contato com o pessoal do suporte que me disseram que a integração via arquivo TXT ocorre da seguinte maneira. Gero o arquivo no formato TXT e depois o usuário tem que entrar na página da prefeitura, logar e enviar o arquivo TXT para validação. Após o envio o WEBSERVICE irá retornar via e-mail com o resultado da solicitação, neste caso homologado ou não. Se homologado o usuário pode imprimir a NFS-e no sistema deles, ou até mesmo gerar um PDF.
Uma coisa que não ficou clara foi como baixar o arquivo XML homologado, mais já enviei um e-mail para o suporte e estou aguardando um retorno.
Quanto a integração via XML ainda não entendi como fazê-la, mais estou estudando os manuais para entender melhor o processo que parecer ser parecido com a NF-e.
Confesso que não estou evoluindo muito neste projeto.
Manual http://suporte.issintel.com.br/attachme ... auto,0,842
Sds,
Júlio.
Obrigado pela resposta.
Entrei em contato com o pessoal do suporte que me disseram que a integração via arquivo TXT ocorre da seguinte maneira. Gero o arquivo no formato TXT e depois o usuário tem que entrar na página da prefeitura, logar e enviar o arquivo TXT para validação. Após o envio o WEBSERVICE irá retornar via e-mail com o resultado da solicitação, neste caso homologado ou não. Se homologado o usuário pode imprimir a NFS-e no sistema deles, ou até mesmo gerar um PDF.
Uma coisa que não ficou clara foi como baixar o arquivo XML homologado, mais já enviei um e-mail para o suporte e estou aguardando um retorno.
Quanto a integração via XML ainda não entendi como fazê-la, mais estou estudando os manuais para entender melhor o processo que parecer ser parecido com a NF-e.
Confesso que não estou evoluindo muito neste projeto.
Manual http://suporte.issintel.com.br/attachme ... auto,0,842
Sds,
Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
NFS-e
Amiguinho,
Também estou trabalhando nisto e o que vejo em relação aos ambientes existentes, cada prefeitura adota um método, ora usando transferências em formato .TXT, ora usando transferênciasem formato .XML, ora os dois. Eu criei o código nos dois formatos.
Outra coisa que confunde ou dificulta é o fato das prefeituras usarem padrões distintos, ABRASF ou outros. Veja qual o padrão do RPS em texto de seu estado.
Link atualizado do Layout de São Paulo
Se o formato for idêntico ao do manual acima voce precisará somente dos registro 1, 2 e 9. Os registros 3 e 5 são especificos.
Logo mais apresento a codificação de meus registros conforme o manual acima.
Também estou trabalhando nisto e o que vejo em relação aos ambientes existentes, cada prefeitura adota um método, ora usando transferências em formato .TXT, ora usando transferênciasem formato .XML, ora os dois. Eu criei o código nos dois formatos.
Outra coisa que confunde ou dificulta é o fato das prefeituras usarem padrões distintos, ABRASF ou outros. Veja qual o padrão do RPS em texto de seu estado.
Link atualizado do Layout de São Paulo
Se o formato for idêntico ao do manual acima voce precisará somente dos registro 1, 2 e 9. Os registros 3 e 5 são especificos.
Logo mais apresento a codificação de meus registros conforme o manual acima.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
NFS-e
Mestre Rochinha e amigos,
Confesso que não tive como dar continuidade na implantação da NFS-e devido ao volume de trabalho e viagens nesta semana, entretanto como dia 01/07/2013 tenho que colocar para funcionar terei um grande desafio para este final de semana.
Eu não estou entendendo o manual para fazer em XML, mais consegui pegar arquivos exemplos. http://suporte.issintel.com.br/entries/ ... e-retornos
Quanto a montar o arquivo XML até que consigo fazer imitando o formato do exemplo, pois pra mim o manual da ABRASF não explica de maneira clara como fazê-lo. Na verdade me sinto incapaz de entendê-lo, gerando até um pouco de frustação. Mais como não há tempo para isso, bola pra frente.
- Eu não sei como pegar e salvar no arquivo dados do certificado digital.
- Também não entendo muito sobre schemas.
Em resumo, é fácil reconhecer os dados no XML relacionados a NFS-e, mais os dados de certificados e demais dados não sei quanto irão mudar ou não.
O formato utilizado por eles para o arquivo TXT é diferente do arquivos de São Paulo, que pra mim é muito bom e o manual é claro e transparente para um iniciante como eu.
http://suporte.issintel.com.br/attachme ... ao_RPS.pdf
Hoje a noite irei fazer o arquivo TXT para que possam importar e evitar erros no momento da emissão da NFS-e. Todavia, tenho que fazer a integração do arquivo XML o cliente logo irá querer tudo integrado e sem ter que entrar no site da prefeitura para fazer a emissão.
Sds,
Júlio.
Confesso que não tive como dar continuidade na implantação da NFS-e devido ao volume de trabalho e viagens nesta semana, entretanto como dia 01/07/2013 tenho que colocar para funcionar terei um grande desafio para este final de semana.
Eu não estou entendendo o manual para fazer em XML, mais consegui pegar arquivos exemplos. http://suporte.issintel.com.br/entries/ ... e-retornos
Quanto a montar o arquivo XML até que consigo fazer imitando o formato do exemplo, pois pra mim o manual da ABRASF não explica de maneira clara como fazê-lo. Na verdade me sinto incapaz de entendê-lo, gerando até um pouco de frustação. Mais como não há tempo para isso, bola pra frente.
- Eu não sei como pegar e salvar no arquivo dados do certificado digital.
- Também não entendo muito sobre schemas.
Em resumo, é fácil reconhecer os dados no XML relacionados a NFS-e, mais os dados de certificados e demais dados não sei quanto irão mudar ou não.
O formato utilizado por eles para o arquivo TXT é diferente do arquivos de São Paulo, que pra mim é muito bom e o manual é claro e transparente para um iniciante como eu.
http://suporte.issintel.com.br/attachme ... ao_RPS.pdf
Hoje a noite irei fazer o arquivo TXT para que possam importar e evitar erros no momento da emissão da NFS-e. Todavia, tenho que fazer a integração do arquivo XML o cliente logo irá querer tudo integrado e sem ter que entrar no site da prefeitura para fazer a emissão.
Sds,
Júlio.
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
NFS-e
Amiguinho,
Também esbarrei em problemas ao trabalhar no formato .XML.
Decidi gerar no formato lote, assinar e validar usando o aplicativo demo da FlexDocs. Gerei o .XML na cutícula e usei o aplicativo somente para validar e assinar.
No caso de lote, mesmo que só envie uma RPS é necessário assiná-la e assinar o lote, ou seja, duas assinaturas. Como o aplicativo me fez isso facilitou corrigir os problemas e chegar ao .XML limpo. Mas se for fazer na mão terá um belo trabalho.
A assinatura do RPS necessita de uma string montada com dados do mesmo, gerar conversão para byte, Hash e assinar o Hash. Fiquei boiando.
Então dei preferência por fazer baseado no layout .TXT e deixar o usuário importar direto no site da prefeitura.
Caso queira usar a FlexDocs para testar coloco abaixo o trecho que usei para acessar a .DLL/.OCX. É necessário registrá-la usando o .BAT que a acompanha.
Download
Código exemplo:
Também esbarrei em problemas ao trabalhar no formato .XML.
Decidi gerar no formato lote, assinar e validar usando o aplicativo demo da FlexDocs. Gerei o .XML na cutícula e usei o aplicativo somente para validar e assinar.
No caso de lote, mesmo que só envie uma RPS é necessário assiná-la e assinar o lote, ou seja, duas assinaturas. Como o aplicativo me fez isso facilitou corrigir os problemas e chegar ao .XML limpo. Mas se for fazer na mão terá um belo trabalho.
A assinatura do RPS necessita de uma string montada com dados do mesmo, gerar conversão para byte, Hash e assinar o Hash. Fiquei boiando.
Então dei preferência por fazer baseado no layout .TXT e deixar o usuário importar direto no site da prefeitura.
Caso queira usar a FlexDocs para testar coloco abaixo o trecho que usei para acessar a .DLL/.OCX. É necessário registrá-la usando o .BAT que a acompanha.
Download
Código exemplo:
Código: Selecionar todos
#include "FiveWin.ch"
function Main()
LOCAL oAcx, iNFeUtil := 0, msgResultado := "",qtdeErros := 0, erroXML := "", resultado := 0
PUBLIC oNFeUtil
Registrado := "00.000.000/0000-00 - EMPRESA DEMO LTDA ME"
ChaveLicenca := "b06ccea9f950a4e62c2be9540efc61c3943736496e217adfff0ad7e925d84ec5bb9c21671ea91562dcc3419e99532c5725a23e3b3cfcc4c18c03e57c368e173a" // LICENCA DEMO
nomeCert := "ARQUIVO|C:\NFeUtil\CertificadoReal.pfx|senha123"
xmlString := "C:\NFeUtil\50110903139066000155550010000500191000500199-nfe.XML"
xmlFile := MemoRead(xmlString)
if empty(xmlFile)
MsgStop( "XML nao foi encontrado." )
return .f.
endif
? objNFSeUtil := TOleAuto():New( "NFSe_Util.Util" )
if MsgYesNo( "Enviar xml agora?" )
//
// informar licenca de uso para ambiente de produção
//
cMunicipio := "3550830"
certificado := "CN=5V DevelopMent"
ambiente := "2"
versao := ""
msgDados := ""
cResultado := ""
msgResultado := ""
CNPJPrestador := "18066611000106" // CNPJ do cliente cadastrado no CCM
numeroLote := "1"
dataRecebimento := dtos( date() )
protocolo := ""
ListaMensagemRetorno := ""
proxy := ""
usuario := ""
senha := ""
ChaveLicenca := "b06ccea9f950a4e62c2be9540efc61c3943736496e217adfff0ad7e925d84ec5bb9c21671ea91562dcc3419e99532c5725a23e3b3cfcc4c18c03e57c368e173a"
//
// invoca Web Service
//
iNFeUtil := objNFSeUtil:EnviaLoteRPS( cMunicipio, ;
certificado, ;
ambiente, ;
versao, ;
msgDados, ;
cResultado, ;
msgResultado, ;
CNPJPrestador, ;
numeroLote, ;
dataRecebimento, ;
protocolo, ;
ListaMensagemRetorno, ;
proxy, ;
usuario, ;
senha, ;
ChaveLicenca )
if iNFeUtil <> 0
endif
endif
return nil
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
NFS-e
Amiguinhos,
Não consegui desenvolver o processo de integração da NFS-e via XML. A solução que encontrei foi gerar um arquivo TXT e importar no site da prefeitura. Após a importação, é gerado um lote e a nota fiscal pode ser impressa direto do site e o arquivo XML é salvo na pasta determinada, onde faço a conferência e libero a NFS-e como emitida.
Irei deixar o código abaixo, pois como tive muitos problemas com o manual que não está completo, na esperança que possa ajudar!
Sds,
Júlio
Não consegui desenvolver o processo de integração da NFS-e via XML. A solução que encontrei foi gerar um arquivo TXT e importar no site da prefeitura. Após a importação, é gerado um lote e a nota fiscal pode ser impressa direto do site e o arquivo XML é salvo na pasta determinada, onde faço a conferência e libero a NFS-e como emitida.
Irei deixar o código abaixo, pois como tive muitos problemas com o manual que não está completo, na esperança que possa ajudar!
Código: Selecionar todos
///////////////////////////////////////////////////////////////////////////////
//
// Rotina para montagem do arquivo da NFS-e
//
// Autor: Julio Cezar Costa Elias
// Lingagem: xBase
// Plataformas: DOS, Windows
// Observacoes: O arquivo tem que ter campos sepadarados por virgulas (,)
// : Os dados dos campos tem que estar entre aspas ("")
// : As colunas obrigatorias nao podem ficar em branco
//////////////////////////////////////////////////////////////////////////////
STATIC FUNCTION CRIANFSE()
LOCAL nData:=RIGHT(DTOC(AL_SAIDA->datemi),4)+"-"+SUBS(DTOC(AL_SAIDA->datemi),4,2)+"-"+LEFT(DTOC(AL_SAIDA->datemi),2)
LOCAL nMeses:={"Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"}
LOCAL nAno:=RIGHT(DTOC(AL_SAIDA->datemi),4)
LOCAL nPath:=AW_NFSE+"\TXT\"+nMeses[MONTH(AL_SAIDA->datemi)]+nAno
LOCAL rPath:=AW_NFSE+"\XML\"+nMeses[MONTH(AL_SAIDA->datemi)]+nAno
LOCAL nDescricao:=ALLTRIM(AL_SAIDA->descm1)+ALLTRIM(AL_SAIDA->descm2)+ALLTRIM(AL_SAIDA->descm3)
LOCAL nServico:=IIF(aw_simples="S","14.01","14.01")
LOCAL nAliquota:=IIF(aw_simples="S","0.02","0.05")
//Verifica se existe a pasta para salvar o arquivo
if !ISDIRECTORY(nPath+"\")
nRet:=MAKEDIR(nPath+"\")
end
if !ISDIRECTORY(rPath+"\")
nRet:=MAKEDIR(rPath+"\")
end
sele AL_CIDAD
DBSETORDER(1)
DBSEEK(AL_CLIEN->codmun)
sele AL_CLIEN
DBSETORDER(1)
DBSEEK(AL_SAIDA->codcli)
SELE AL_SAIDA
if AL_CLIEN->indent="01" .or. AL_CLIEN->indent="04"
nCGC=ALLTRIM(AL_CLIEN->CPFCGC)
nINS=ALLTRIM(AL_CLIEN->INSEST)
else
nCGC=ALLTRIM(AL_CLIEN->CPFCGC)
nINS="ISENTO"
end
do whil AT(".",nCGC)#0
nCGC=STUFF(nCGC,AT(".",nCGC),1,"")
end
do whil AT("-",nCGC)#0
nCGC=STUFF(nCGC,AT("-",nCGC),1,"")
end
do whil AT("/",nCGC)#0
nCGC=STUFF(nCGC,AT("/",nCGC),1,"")
end
do whil AT(".",nINS)#0
nINS=STUFF(nINS,AT(".",nINS),1,"")
end
do whil AT("-",nINS)#0
nINS=STUFF(nINS,AT("-",nINS),1,"")
end
do whil AT("/",nINS)#0
nINS=STUFF(nINS,AT("/",nINS),1,"")
end
do whil AT("P",nINS)#0
nINS=STUFF(nINS,AT("P",nINS),1,"")
end
do whil AT("R",nINS)#0
nINS=STUFF(nINS,AT("R",nINS),1,"")
end
do whil AT(":",nINS)#0
nINS=STUFF(nINS,AT(":",nINS),1,"")
end
if LEN(ALLTRIM(nINS))<14
nINS=nINS+SPAC(14-LEN(ALLTRIM(nINS)))
end
nTEL=ALLTRIM(AL_CLIEN->TELEF1)
do whil AT("(",nTEL)#0
nTEL=STUFF(nTEL,AT("(",nTEL),1,"")
end
do whil AT(")",nTEL)#0
nTEL=STUFF(nTEL,AT(")",nTEL),1,"")
end
do whil AT("-",nTEL)#0
nTEL=STUFF(nTEL,AT("-",nTEL),1,"")
end
nTEL=ALLTRIM(nTEL)
if LEFT(nTEL,1)="0"
nTEL=SUBS(nTEL,2,LEN(nTEL))
end
xTxt := ["]+AL_SAIDA->codigo+[",] // Numero do RPS
xTxt += ["]+ALLTRIM(AL_SAIDA->serien)+[",] // Numero de Serie do RPS
xTxt += ["1",] // Tipo do RPS 1-RPS, 2-Nota Fiscal Conjugada, 3-Cupom
xTxt += ["]+nData+[",] // Data Emissao formato AAAA-MM-DD
xTxt += ["1",] // Natureza de operacao: 1 - Tributacao no municipio
xTxt += ["",] // Codigo do Regime Especial
xTxt += ["]+IIF(aw_simples="S","1","N")+[",] // Optante de simples Nacional: 1-Sim, 2-Nao
xTxt += ["2",] // Incentivo Cultural: 1-Sim, 2-Nao
xTxt += ["1",] // Status do RPS: 1-Normal, 2-Cancelado
xTxt += ["",] // Numero do RPS substituida
xTxt += ["",] // Numero Serie RPS substituida
xTxt += ["",] // Tipo RPS substituida
xTxt += ["]+ALLTRIM(STR(AL_SAIDA->vlrmao,15,2))+[",] // Valor do Servico
xTxt += ["0",] // Deducoes
xTxt += ["0",] // Valor do PIS
xTxt += ["0",] // Valor do COFINS
xTxt += ["0",] // Valor do INSS
xTxt += ["0",] // Valor do IR
xTxt += ["0",] // Valor do CSLL
xTxt += ["2",] // Indicador de retencao de ISS 1-SIM, 2-NAO
xTxt += ["]+ALLTRIM(STR(0,15))+[",] // Valor do ISS
xTxt += ["0",] // Outras Retencoes
xTxt += ["]+ALLTRIM(STR(AL_SAIDA->vlrmao,15,2))+[",] // Base de Calculo
xTxt += ["]+nAliquota+[",] // Aliquota
xTxt += ["0",] // Valor Liquido
xTxt += ["0",] // Valor do ISS Retido
xTxt += ["0",] // Desconto Condicionado
xTxt += ["0",] // Desconto Incondicionado
xTxt += ["]+nServico+[",] // Item da Lista de Servico
xTxt += ["",] // Codigo CNAE
xTxt += ["",] // CodigoTributacao do Municipio
xTxt += ["]+nDescricao+[",] // Descriminacao do servico
xTxt += ["3149903",] // Codigo Municipio IBGE
xTxt += ["]+STRZERO(VAL(RETNUM(AL_EMPRE->CGCEMP)),14)+[",] // CNPJ do Prestador
xTxt += ["]+ALLTRIM(AL_EMPRE->insmun)+[",] // Inscricao Municipal do Prestador
xTxt += ["]+nCGC+[",] // CNPJ/CPF Cliente
xTxt += ["",] // Inscricao Municipal do Tomador
xTxt += ["]+ALLTRIM(AL_CLIEN->nomecl)+[",] // Razao Social do cliente
xTxt += ["]+ALLTRIM(AL_CLIEN->endere)+[",] // Endereco do Cliente
xTxt += ["]+ALLTRIM(AL_CLIEN->numero)+[",] // Numero do Endereco
xTxt += ["",] // Complemento
xTxt += ["]+ALLTRIM(AL_CLIEN->bairro)+[",] // Bairro do Cliente
xTxt += ["]+AL_CLIEN->codmun+[",] // Codigo Municipio-IBGE do cliente
xTxt += ["]+AL_CLIEN->estado+[",] // UF do Cliente
xTxt += ["]+LEFT(AL_CLIEN->cepcli,2)+SUBS(AL_CLIEN->cepcli,4,3)+RIGHT(AL_CLIEN->cepcli,3)+[",] // Cep do Cliente
xTxt += ["]+RETNUM(AL_CLIEN->telef1)+[",] // Telefone do cliente
xTxt += ["]+ALLTRIM(AL_CLIEN->emaild)+[",] // E-mail do Cliente
xTxt += ["",] // Racao social intermediario
xTxt += ["",] // CNPJ Intermediario
xTxt += ["",] // Inscricao Municipal intermediario
xTxt += ["",] // Codigo Obra
xTxt += [""] // Art
varq=nPath+"\SE"+AL_SAIDA->codigo+".TXT"
SETPRC(0,0)
set print on
set conso off
set print to &vArq
?? xTxt
? ""
set cons on
set print off
set print to
MENSAGEM("Nota fiscal de servico criada com SUCESSO!",4)
retuJúlio
xHarbour 1.2.1 (simplex) + BCC 5.8.2 + Hwgui + SQLRDD
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
Clipper 5.2e / Blinker 7
Júlio Cézar Elias
e-mail: jelias@tpnet.psi.br
