Boa Tarde à todos.... Alguém sabe me dizer em comando que abra um arquivo em pdf pelo webspeed... Por exemplo, quando alguém clicar no botão visualizar impressão em um site, irá abrir um documento em pdf. Estou tentando fazer assim: <script language="SpeedScript"> IF request_method = ("post") THEN do: find <tabela> where <tabela.campo> = "XXXXXXX" no-error. IF GET-VALUE("Submit") = "Visualizar Impressão" THEN do: IF avail <tabela> THEN do: {pdf/pdf_inc.i "NOT SUPER"} run procedureinterna1. run winexec (input "explorer \\CaminhoServidor" + <tabela.campo> + ".pdf", input 1). END. END. end. </script> Script para abrir procedure interna: <script language="SpeedScript"> procedure procedureinternaa1: find <tabela> where <tabela.campo> = "XXXXXXX" no-error. RUN pdf_new IN h_PDFinc ("spdf", "\\CaminhodoServidor" + <tabela.campo> + ".pdf"). /*Criando nome de arquivo*/ RUN pdf_new_page IN h_PDFinc ("spdf"). RUN pdf_text IN h_PDFinc ("spdf", <tabela.campo>). RUN pdf_close IN h_PDFinc ("Spdf"). end procedure. </script> Script para abrir procedure WinExec //exemplo que peguei num dos fóruns do for each: <script language="SpeedScript"> procedure WinExec external "kernel32.dll":u: def input parameter pProgName as char. def input parameter pStyle as long. end procedure. </script> Fazendo isso no procedure editor dá certo, porém em webspeed não acontece nada, só gera o arquivo.... Essa é minha dúvida... Abraços Cláudio Silva Iniciante em Progress
Gere teu PDF para disco, igual já esta fazendo na procedureinternaa1. Mas gere ele na pasta do servidor web, provavelmente em \inetpub\wwwroot. Naquele bloco de Speedscript, não chame aquela DLL. Não vai funcionar. Ao invés, devolva pro usuário uma página com o link para o arquivo PDF que voce acabou de criar. Ps.: Se as palavras em negrito não são comuns para o teu dia a dia, veja se algum colega aí da empresa conhece algo de páginas da web.
Desta vez acho que consegui, a solução ficou o assim: <script language="SpeedScript"> IF request_method = ("post") THEN do: find <tabela> where <tabela.campo> = "XXXXXXX" no-error. IF GET-VALUE("Submit") = "Visualizar Impressão" THEN do: IF avail <tabela> THEN do: {pdf/pdf_inc.i "NOT SUPER"} run procedureinterna1. </script> <script language="javascript"> window.open("teste.html" , "Impressão"); </script> <script language="SpeedScript"> END. END. end. </script> Daí a página de teste tem um link para abrir o arquivo para gerar a impressão, porém na procedure não mudei o caminho do arquivo para disco, ou seja, não teve alteração... É isso.... Valeu pela ajuda!