Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
dr_gori
Moderador
Mensagens: 5024 Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Seg, 24 Mai 2004 9:34 pm
É possível simular o pressionamento de algumas teclas no Forms. Para isso, usa-se uma procedure da WIN_API_SHELL chamada SENDKEYS:
Selecionar tudo
Sintaxe:
PROCEDURE Win_Api_Shell.SendKeys
(hWnd IN PLS_INTEGER,
Keys IN VARCHAR2,
RaiseExceptions IN BOOLEAN DEFAULT FALSE);
Veja um pequeno exemplo, que simula o pressionamento da tecla DOWN:
Selecionar tudo
Win_Api_Shell.SendKeys (Win_Api_Utility.Get_Active_Window(TRUE) ,'{Down}',FALSE);
Abaixo, outras teclas que podem ser usadas:
Selecionar tudo
{Backspace}
{Break}
{CapsLock}
{Clear}
{Delete}
{End}
{Enter}
{Esc}
{Help}
{Home}
{Insert}
{NumLock}
{PgDown}
{PgUp}
{PrtSc}
{ScrollLock}
{Tab}
{F1} - {F12}
{Up}
{Down}
{Left}
{Right}
Pode ser feito combinações também! Elas devem estar dentro de parenteses.
LC_JK
Rank: Programador Sênior
Mensagens: 46 Registrado em: Ter, 24 Ago 2004 2:02 pm
Localização: São Paulo
Contato:
Sex, 27 Ago 2004 10:37 am
mas onde eu posso colocar essa procedure?! no PROGRAM_UNIT?! ou coloco direto em uma trigger?!
como q faço pra simular?!
por exemplo
if ....
else..?!
dr_gori
Moderador
Mensagens: 5024 Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Sex, 27 Ago 2004 11:20 am
Sim, pode ser numa trigger, num botão, etc. Lembrando que o pressionamento de tecla acontecerá onde o cursor estiver.
Qual é a utilidade de "simular" o pressionamento de alguma tecla?
* Digamos que você quer sempre posicionar o cursor num item no quinto caractere. (sei lá porque, mas quer.. heheh). Daí, basta você simular o pressionamento do RIGHT 5 vezes no campo desejado...
Eu não pensei em tudo que pode ser feito... Sinceramente, eu nunca usei iso numa aplicação. Mas existe, e pode ser usado com criatividade em algum caso específico...
[]'s
jbruning
Rank: Estagiário Júnior
Mensagens: 1 Registrado em: Qua, 03 Nov 2004 11:25 am
Localização: São Ludgero - SC
Qua, 03 Nov 2004 11:31 am
Fiz o seguinte comando no WHEN-NEW-ITEM-INSTANCE:
Selecionar tudo
declare
hMDIWin PLS_INTEGER;
begin
MDIWin := get_window_property
(FORMS_MDI_WINDOW,WINDOW_HANDLE);
Win_API_Shell.SendKeys(hMDIWin,'{End}',TRUE);
end;
Mas quando entro no campo aparece a mensagem: "Erro Interno do Oracle, ocorreu um erro de PL/SQL."
dr_gori
Moderador
Mensagens: 5024 Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Qua, 03 Nov 2004 11:47 am
você conseguiu fazer essa rotina funcionar?
Já tentou colocar ela em algum botão pra testar?
Eu acabei de testar aqui e funcionou perfeitamente!
Lembrando que é necessario atachar a pll d2kwutil.pll no forms.
http://www.oracle.com/technology/softwa ... index.html
Ah... e também tem um errinho no código que você postou:
a variável é hMDIWin e não MDIWin !!!
Selecionar tudo
declare
hMDIWin PLS_INTEGER;
begin
--arrumei abaixo
hMDIWin := get_window_property
(FORMS_MDI_WINDOW,WINDOW_HANDLE);
Win_API_Shell.SendKeys(hMDIWin,'{End}',TRUE);
end;
tfg
Rank: Analista Júnior
Mensagens: 83 Registrado em: Seg, 03 Mai 2004 3:38 pm
Localização: Novo Hamburgo - RS
Qua, 15 Dez 2004 2:01 pm
Sobre a d2kwutil.pll :
Pra fazer ela funcionar, é necessário criar uma chave no registro apontando pro diretório onde ela está.
(penei pra descobrir isso!!!
)
[]´s
Toad
Rank: DBA Pleno
Mensagens: 253 Registrado em: Sex, 18 Nov 2005 2:14 pm
Localização: Seattle, WA
Contato:
Qui, 24 Nov 2005 1:33 pm
Poxa tfg, você penou, mas por ter postado aqui, me ajudou e muito. Obrigado.
elkabong
Rank: Programador Pleno
Mensagens: 41 Registrado em: Seg, 31 Jul 2006 2:00 pm
Localização: Blumenau - SC
Qua, 16 Ago 2006 3:49 pm
aí,
JBRUNING, o seu problema de erro interno foi resolvido com a dica do TFG ???
Pra mim continua apresentando "Erro Interno do Oracle, ocorreu um erro de PL/SQL."
Será que tem alguma coisa a ver com o fato de estar conectado remotamente ??? Sei lá....
Alguém teria alguma outra idéia ???
[]´s
Fábio Vitorino
Toad
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
Qua, 16 Ago 2006 3:58 pm
Quais versões você está utilizando?
elkabong
Rank: Programador Pleno
Mensagens: 41 Registrado em: Seg, 31 Jul 2006 2:00 pm
Localização: Blumenau - SC
Qua, 16 Ago 2006 4:04 pm
Forms [32 Bit] Version 6.0.8.23.2 (Production)
Windows 2000
[]´s
jramiro
Rank: Programador Júnior
Mensagens: 15 Registrado em: Seg, 21 Ago 2006 12:13 pm
Localização: rio de janeiro - RJ
Sex, 06 Out 2006 5:01 pm
ola pessoal, eu tb estou com esse erro.
já criei o registro apontando para onde esta dll, mas não corrigiu o erro?
estou usando a versao: Forms [32 Bit] Version 6.0.8.15.0 (Production)
desde já grato
Renan Orati
Rank: Analista Júnior
Mensagens: 90 Registrado em: Qui, 23 Ago 2007 3:40 pm
Localização: São José do Rio Preto - SP
Qui, 10 Abr 2008 3:09 pm
aí... será que com a D2KWUTIL tem como eu capturar a tecla que foi digitada também???? Ou ela apenas simula o pressionamento da tecla???
Porque eu estou querendo identificar quado o usuário pressiona a tecla ALT !!!
alguém tem uma dica?
dr_gori
Moderador
Mensagens: 5024 Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Qui, 10 Abr 2008 6:01 pm
Renan Orati escreveu: aí... será que com a D2KWUTIL tem como eu capturar a tecla que foi digitada também???? Ou ela apenas simula o pressionamento da tecla???
Porque eu estou querendo identificar quado o usuário pressiona a tecla ALT !!!
alguém tem uma dica?
Acho que você não vai conseguir isso com a D2KWUTIL... Na verdade acho pouco provável você conseguir isso
Toad
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
Qui, 10 Abr 2008 6:36 pm
Isso porque o Forms não gera evento de pressionamento de tecla.
Ele não tem uma trigger "on_key_press" por exemplo.
Concordo com o dr_gori , acho difícil conseguir algo assim.
davidmeloboy
Rank: Programador Sênior
Mensagens: 54 Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.
Ter, 16 Set 2008 5:18 pm
Ta certo já estou conseguindo dar o print, mas agora tem um porém, tem como eu jogar este printe para algum lugar automaticamente?
por exemplo: anexado em um email.
ou jogar para algum diretório?
davidmeloboy
Rank: Programador Sênior
Mensagens: 54 Registrado em: Sex, 05 Set 2008 1:53 pm
Localização: Parobé - RS
Contato:
David.
Qua, 22 Out 2008 12:30 pm
Galera estou aguardando uma resposta! É muito importante!
Usuários navegando neste fórum: Nenhum usuário registrado e 14 visitantes