Boa tarde, Estou precisando alterar de browser em runtime, tem como fazer isso? Por exemplo, tenho 3 botões que abrem browsers diferentes e, com querys diferentes, mas utilizando o mesmo frame. Existe a possibilidade de fazer isso? E como posso fazer? Att.
Bom dia, Consegui resolver o problema. A solução foi: 1- Ter um handle para o frame 2- Ter um handle para cada browser 3- Ter um handle para a query 4- Dizer que estes handles são frames, browsers e query; 5- Ter um buffer para receber as informações das leituras das tabelas 6- A query receber o buffer e o select que deve ser executado. E esta feito ... /* Variable definitions */ DEFINE TEMP-TABLE tt-procedures NO-UNDO FIELD h-handle AS INTEGER LABEL "Handle" FIELD c-file-name AS CHARACTER FORMAT "X(30)" LABEL "Arquivos" FIELD c-procedure-name AS CHARACTER FORMAT "X(40)" LABEL "Procedure" FIELD c-transaction AS LOGICAL FORMAT "Sim/Nao" LABEL "Transação em Aberto?" FIELD c-instantiating AS CHARACTER FORMAT "X(40)" LABEL "Executor" FIELD h-handle-called AS INTEGER LABEL "Handle executor". DEFINE VARIABLE hBrowse AS HANDLE NO-UNDO. DEFINE VARIABLE hQuery AS HANDLE NO-UNDO. DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO. DEFINE VARIABLE hBatualizar AS HANDLE NO-UNDO. DEFINE VARIABLE hProcedure AS HANDLE NO-UNDO. FORM WITH FRAME DEFAULT-FRAME WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY NO-UNDERLINE THREE-D AT COL 1 ROW 1 SIZE 126 BY 17 WIDGET-ID 100. CREATE QUERY hQuery. CREATE BROWSE hBrowse ASSIGN WIDTH = 126 DOWN = 15 QUERY = hQuery FRAME = FRAME DEFAULT-FRAME:HANDLE READ-ONLY = TRUE SENSITIVE = FALSE MULTIPLE = TRUE COLUMN-RESIZABLE = TRUE FONT = 2 SEPARATORS = TRUE. CREATE BUTTON hBatualizar ASSIGN FRAME = FRAME DEFAULT-FRAME:handle SENSITIVE = TRUE LABEL = "Atualizar" X = 20 Y = 340 WIDTH = 15 TRIGGERS: ON CHOOSE DO: RUN create-query. SELF:SENSITIVE = TRUE. END. END TRIGGERS. PROCEDURE create-query: hProcedure = SESSION:FIRST-PROCEDURE. DO WHILE VALID-HANDLE(hProcedure): CREATE tt-procedures. ASSIGN tt-procedures.h-handle = hProcedure:HANDLE AS INTEGER tt-procedures.c-file-name = hProcedure:FILE-NAME tt-procedures.c-procedure-name = hProcedure:NAME tt-procedures.c-transaction = hProcedure:TRANSACTION:IS-OPEN tt-procedures.h-handle-called = hProcedure:INSTANTIATING-PROCEDURE AS INTEGER tt-procedures.c-instantiating = IF hProcedure:INSTANTIATING-PROCEDURE <> ? THEN hProcedure:INSTANTIATING-PROCEDURE:NAME ELSE "". hProcedure = hProcedure:NEXT-SIBLING. END. RUN enable-query("tt-procedures","FOR EACH tt-procedures NO-LOCK"). hBrowse:ADD-LIKE-COLUMN("tt-procedures.h-handle-called"). hBrowse:ADD-LIKE-COLUMN("tt-procedures.c-instantiating"). hBrowse:ADD-LIKE-COLUMN("tt-procedures.h-handle"). hBrowse:ADD-LIKE-COLUMN("tt-procedures.c-procedure-name"). hBrowse:ADD-LIKE-COLUMN("tt-procedures.c-transaction"). END PROCEDURE. PROCEDURE enable-query: DEFINE INPUT PARAMETER hBufferName AS CHARACTER NO-UNDO. DEFINE INPUT PARAMETER cBaseQuery AS CHARACTER NO-UNDO. CREATE BUFFER hBuffer FOR TABLE hBufferName. hQuery:QUERY-CLOSE(). hQuery:SET-BUFFERS(hBuffer). hQuery:QUERY-PREPARE(cBaseQuery). hQuery:QUERY-OPEN. END PROCEDURE.