Página 1 de 1
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 26 Mar 2014 11:38
por billy1943
Antes de transferir o meu sistema operacional, de
XP para
Windows 7, minhas rotinas na forma do pequeno fonte abaixo funcionavam legal.
Nessa transferência, o meu drive D, onde estavam as aplicações eram acessadas na forma
"D:\empresa01\" e assim por diante.
Quanto houve a formatação para Windows 7 o técnico deixou o drive onde estão as aplicações na forma:
"c:\disco d\empresa01\" ...
O problema está no seguinte:
No
DOS a forma "c:\
discod~1\empresa01\" funciona.
Mas quando envolvem programas em Windows, tais como o
UNIDANFE (uso-o somente para imprimir/visualizar o DANFE), ele acessa o mesmo mas não considera o arquivo .XML informado, exigindo que eu acesse o arquivo usando o Windows Explorer, perdendo a finalidade, que seria o acesso automático de dentro do meu sistema.
Nas instruções do UNIDANFE para Clipper é informado que os espaços devem ser deixados, desde que o caminho (path) esteja entre aspas.
Já testei com espaços, sem espaços, toda forma.
Onde está o erro, ou ainda, como poderia fazer o mesmo com outro software ou função ?
Código: Selecionar todos
cls
xnome_xml := "35140300255889000158550040000377821047692460-procNfe.xml"
xarquivo := "c:\discod~1\empresa01\nfe_xml\" + alltrim(xnome_xml)
xparam1 := " edicao=free"
xcomando := 'c:\unimake\unidanfe.exe arquivo = '+ ;
xarquivo + xparam1
run(xcomando)
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 27 Mar 2014 08:58
por Eolo
xarquivo := "c:\discod~1\empresa01\nfe_xml\" + alltrim(xnome_xml)
Billy, eu acho que é o seguinte:
- sem as aspas, é preciso usar o nome 8/3 correspondente, DISCOD~1.
- com as aspas, use o nome real, DISCO D.
Do jeito que vc fez, está sendo procurada uma pasta de nome (não 8/3) DISCOD~1, e essa pasta não existe.
xarquivo := "c:\disco d\empresa01\nfe_xml\" + alltrim(xnome_xml)
deve resolver...
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 27 Mar 2014 18:52
por billy1943
Olá Eolo,
Tentei das formas indicadas mas ainda não está acessando o arquivo.
Chega até a abrir o software Unidanfe mas não traz o arquivo informado já aberto.
Ocorreu-me que poderia ser pelo nome longo do arquivo .XML que tem mais de 40 caracteres.
Não seria o caso ?
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 27 Mar 2014 22:25
por Eolo
Outra tentativa.
Tentou colocar TUDO entre aspas? Ou seja, aspas (") dentro das aspas (') ?
Algo como...
x='"'+alltrim(xnome_xml)+'"'
x='"'c:\disco d\empresa01\nfe_xml\'"'+x
?x -> "c:\disco d\empresa01\nfe_xml\arquivodenomecompridodemaisquenemcabenajanelablablablablablablaetcetals123deoliveira4blablablablabla"
Num lembro onde nem quando, mas já me deparei com algo parecido.
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 28 Mar 2014 08:42
por bencz
Nossa, trabalhei na UniMake, a empresa que desenvolveu o UniDanfe, Unico, UniNFE e etc....
Mas enfim, se não estou enganado, você tem que fazer isso que o Eolo falou, o output final tem que ser com aspas...
Vamos supor que você vai executar um programa por linha de comando onde você tem que passar como argumento um diretorio, e nesse diretorio o nome dele contenha espaços... logo, você tem que colocar entre aspas ( " ), correto ?
Então, o mesmo se tem que fazer nos parâmetros do UniDanfe. (:
Em caso de problemas maiores, você pode forçar as aspas:
Código: Selecionar todos
function main()
Qout( chr(34) + "Ola mundo!!!" + chr(34))
return nil
Sendo o chr 34 as aspas...
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 28 Mar 2014 09:58
por Kapiaba
Código: Selecionar todos
xParam1 := " edição=Free imprimir=1 visualizar=1 logotipo=" + ;
cLogoEmpresa + " copias=" + ALLTRIM( STR( nCopias ) )
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 29 Mar 2014 11:31
por billy1943
RESOLVIDO.
No âmbito de uma rotina bem maior, que envolve a colocação no arquivo de Notas Fiscais emitidas, o nome do arquivo .XML bem como o protocolo existente dentro do mesmo, agreguei a exibição
ou impressão do DANFE utilizando o UNIDANFE e deu certo.
Esclareço porém que a rotina acessa os arquivos em .XML faz uso das LIB para nomes longos (LFN,LL), fora do formato DOS (8.3).
Assim, agradeço a ajuda e pesquisa que os colegas me prestaram e fico ao dispor em poder retribuir.
UNIDANFE - Não consigo transmitir nome do arquivo .XML
Enviado: 01 Abr 2014 10:16
por billy1943
Apesar de informar que já havia resolvido a questão objeto deste tópico, coloco abaixo a rotina que exibe o DANFE da NFE, desde que no campo
nome_xml da mesma,
já tenha sido inserido o nome do arquivo fornecido pelo SEFAZ, na forma:
35................. procNfe.xml
Os campos que contém os path necessários estão do arquivo PNFE com o caminho completo para o sistema localizar não só os .XML, e também onde está o UNIDANFE.EXE
necessário à rotina.
Ela facilita bastante a exibição ou re-impressão de NFE.
Código: Selecionar todos
PROCEDURE veimprdanfe
local xtelin := savescreen()
local xpath_xml
local xpath_unida
local xarquivo
local xnome_xml
ABREPNFE(0)
select pnfe
xpath_xml := alltrim(pnfe->path_xml)
xpath_unida := alltrim(pnfe->path_unida)
close
select nota
if nota->nome_xml <> space(40)
xcomando := xpath_unida + "\unidanfe.exe arquivo=" + ;
xpath_xml + "\" + alltrim(nome_xml) + ;
" edicao=free"
run &xcomando.
else
msg_tecla("A Nota Fiscal ainda não tem .XML gravado.")
endif
restscreen(,,,,xtelin)