Upc - reposicionar query

56 views
Skip to first unread message

Patrick Marques

unread,
May 29, 2025, 3:55:41 PMMay 29
to Progress - 4GL
Boa Tarde pessoal,estou com uma duvida..

Preciso reposicionar uma query com o valor vindo de outra tela via upc,o valor eu ja estou conseguindo passar pra essa tela.Mas nao sei como reposicionar a query.

Obrigado desde já.

Marcelo Torres

unread,
May 29, 2025, 4:22:42 PMMay 29
to progre...@googlegroups.com
Patrick,

Este reposicionamento é para um browse?
Qual tela vc está customizando?

Att,
Marcelo Torres



--
Recebeu esta mensagem porque subscreveu ao grupo "Progress - 4GL" do Grupos do Google.
Para anular a subscrição deste grupo e parar de receber emails do mesmo, envie um email para progress_4gl...@googlegroups.com.
Para ver esta discussão, visite https://groups.google.com/d/msgid/progress_4gl/930dab38-4c1d-4996-a5cd-983a6d39a8b7n%40googlegroups.com.

Patrick Marques

unread,
May 29, 2025, 4:49:54 PMMay 29
to Progress - 4GL
é a tela do cq0609,eu preciso fazer um pi-reposiciona-query logo quando entro na tela

Marcelo Torres

unread,
May 30, 2025, 7:39:50 AMMay 30
to progre...@googlegroups.com
Bom dia Patrick.

É bem simples de fazer, pelo menos no meu teste foi... rs

Na sua UPC:
  • Defina uma variável global para armazenar a query do browser
  • No evento "BEFORE-INITIALIZE" do objeto "CONTAINER", busque o browser e dele a query (colocando na variável global)
  • A "mágica" toda acontece no evento "AFTER-OPEN-QUERY" do objeto "BROWSER". Você já tem a query. Aí é brincar com ela. Aqui eu reposicionei na segunda linha do browser quando for um determinado item num determinado lote. Mas eu poderia fazer por outros critérios. Posso, inclusive, fazer um loop em todos os registros do browser e ler os campos, deixando posicionado naquele que eu quiser.
Se quiser eu te mando o meu exemplo, mas eu uso uma include que me auxilia no tratamento de UPCs. Então o meu exemplo vai estar com o uso dela. Mas não é difícil de entender.

Basicamente eu busco o objeto "br-table" (que é o browse) e dele eu faço:
ASSIGN wh-qry-cq0609 = wh-brw:QUERY.

As duas variáveis ali são do tipo WIDGET-HANDLE, sendo que a "wh-qry-cq0609" é global.


No "AFTER-OPEN-QUERY" eu fiz:
IF wh-qry-cq0609:NUM-RESULTS > 2 THEN DO:
    wh-qry-cq0609:REPOSITION-TO-ROW(2).
END.

Mas foi só para testar mesmo.

Pede um HELP no objeto "QUERY" para ver o que pode ser usado.

Lembrando que o browse é em cima da tabela "saldo-estoq" então se for reposicionar num ROWID específico, tem de certificar que o registro está sendo mostrado no browse.

Talvez (só talvez mesmo, rs) se você fizer um loop dentro dos registros mostrados no browse seja mais a prova de falhas. Um loop de 1 até o "NUM-RESULTS" da query. E aí sai reposicionando linha a linha.

Enfim, tem muitas possibilidades aí.


Se precisar de algo estou a disposição.


Abraço,
Marcelo Torres




Patrick Marques

unread,
Jun 5, 2025, 3:26:35 PMJun 5
to Progress - 4GL
Muito obrigado pela explicação marcelo vou tentar replicar aqui.

Abraço

Reply all
Reply to author
Forward
0 new messages