LISTAR TODAS IMPRESSORAS INSTALADAS EM UM LIST_ITEM

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

Pessoal, alguém já criou um LIST_ITEM no Forms com as impressoras que estão disponíveis na máquina ??? Estou tentando fazer utilizando essa API:

Selecionar tudo

win_api_dialog.select_printer
mas está dando o seguinte erro

Selecionar tudo

ERROR: Failed to open file: ifrun60_dump_3348
Alguém já passou por isso ??? :wink:
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

Cara, você está seguindo um exemplo como esse??:

Selecionar tudo

DECLARE
   Print_Name    Varchar2(100);
   Port_name     Varchar2(100);
   PL_ID          PARAMLIST;
BEGIN
   
  -- cria lista de parâmetros vazia
  PL_ID := Get_Parameter_List('tmpdata');
  If Not Id_Null(Pl_Id) Then
     Destroy_Parameter_List( Pl_Id );
  End If;
  Pl_Id := Create_Parameter_List('tmpdata');
   
  -- adiciona os parametros
   Add_Parameter(Pl_Id, 'PARAMFORM'  ,   Text_Parameter, 'NO');
   Add_Parameter(Pl_Id, 'DESTYPE'    ,   Text_Parameter, 'PREVIEW'); 
   Add_Parameter(Pl_Id, 'ORIENTATION',   Text_Parameter, 'PORTRAIT');
   Add_Parameter(Pl_Id, 'SEU_PARAMETRO', Text_Parameter, sysdate);
  -- Destino pode ser FILE, PREVIEW  ou PRINTER
  -- Orientacao pode ser PORTRAIT LANDSCAPE
   

   Win_Api_Dialog.Select_Printer( Print_Name, Port_Name );
   
   Add_Parameter(Pl_Id, 'DESNAME', Text_Parameter, PRINT_NAME||','||PORT_NAME);
 
   Run_Product(Reports, 'c:\seu_report', aSynchronous, Runtime, Filesystem, Pl_Id, Null);


End; 
Se tiver, dá uma olhada a sua biblioteca D2k, nas permissões, nas permissões dos arquivos temporários...

Sempre dá erro no dump_3348 ????
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

Exato, estou seguindo o mesmo código, exatamente como esse:

Selecionar tudo

declare
   impressora varchar2(100);
   porta          varchar2(100); 
begin
   win_api_dialog.select_printer(impressora,porta,false);
   :impressora := impressora;
end ;
Está sempre dando o mesmo erro, sabe se eu preciso atachar as PLL's D2KWUT60 e a D2KWUT32 ?

Não entendi a parte que você diz sobre permissão de arquivos temporários...
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

The FORMS60_TRACE_PATH environment variable specifies the location of dump files produced as the result of a crash of any of the Forms runtime executables. The dump files contain diagnostic information about events at the time the process crashed.

To set in NT:
set FORMS60_TRACE_PATH=c:\temp

If FORMS60_TRACE_PATH is not set and a crash occurs, Forms will attempt to place the dump file in the directory from which the executable was called.


Pode ser que você não tenha permissões para leitura/gravação na pasta onde o Forms grava os Dumps, no caso, onde está o executável.

http://www.oracle.com/technology/docume ... _p11_s.pdf
Páginas 25 e 26.
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

valeu Matheus, era isso mesmo, ta funcionando agora, show !

Um abraço e muito obrigado ! :)
Avatar do usuário
Toad
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 253
Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Matheus Gonçalves
matheus.dev
twitter.com/developer__c

SPECIALIZED disse:

Pessoal, estou tentando trazer as impressoras instaladas em um campo List_item, a principio tive um problema que o membro do fórum, Toad, me ajudou, porém agora está dando o erro "ORA-06508: could not find program unit being called"

O Forms é simples, atachei a biblioteca D2KWUTIL.PLL, criei um campo char de 100 e um botão com uma trigger com o seguinte comando:

Selecionar tudo

declare
impressora varchar2(100);
porta varchar2(100);
begin
win_api_dialog.select_printer(impressora,porta,false);
:impressora := impressora;
EXCEPTION
WHEN OTHERS THEN
MESSAGE('ERRO: '||SQLERRM) ;PAUSE;
end ;
Caso alguém queira seguir os passos para debugar, terá que setar a chave do forms. É só entrar no DOS e digitar:

Selecionar tudo

set FORMS60_TRACE_PATH=c:\temp
Grato
Você sabe se existe o arquivo d2kwut60.dll na mesma pasta do d2kwut60.pll?

porque tem que estar!

E, seguindo as recomendações do Dr. Gori e para manter o Fórum mais organizado, continua postando sobre esse problema aqui!
SPECIALIZED
Rank: Programador Pleno
Rank: Programador Pleno
Mensagens: 40
Registrado em: Ter, 02 Out 2007 4:09 pm
Localização: São Paulo - SP

Então, eu tenho essa dll sim, até consegui rodar agora a pouco, mas essa API não atende o que eu quero, ela simplesmente traz a caixa de impressora, eu queria que listasse em campo do tipo List_Item todas impressoras que estão na rede, mas conversei com o usuário e ele aceitou que fosse com a caixa...

Obrigado pela ajuda pessoal
Avatar do usuário
NightSpy
Rank: Programador Sênior
Rank: Programador Sênior
Mensagens: 49
Registrado em: Ter, 09 Set 2008 4:18 pm
Localização: SP

Sei q o tópico é antigo, mas vou aproveitá-lo. Creio q não tenha a biblioteca D2KWUTIL.PLL. Onde posso consegui-lá?
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Google Adsense [Bot] e 4 visitantes