Não sei se é bem isso o que vc quer, mas segue abaixo um exemplo de criação de uma nova aba no pd1001, sendo que, no meu caso eu criei um Browser... mas poderia ser uma viewer ou outtro tipo de smartobject também.
Abraço,
Wanderley.
"...aos loucos a sua impressão de bem-estar os leva à perdição." Pv 1.32b.
Veja:
www.ipbjc.org.br
/*------------------*/
/*********************************************************************************
** Programa...: pd1001-upc.p *
** Descricao..: Upc para criacao de viewer na tela de pedidos. *
** Data.......: 24/06/2009 *
** *
*********************************************************************************/
/* Parameter Definitions ********************************************************/
define input parameter p-ind-event as character.
define input parameter p-ind-object as character.
define input parameter p-wgh-object as handle.
define input parameter p-wgh-frame as widget-handle.
define input parameter p-cod-table as character.
define input parameter p-row-table as rowid.
def var c-objeto as char no-undo.
/* Global Variable Definitions **********************************************/
define new global shared var h-folder-pd1001 as handle no-undo.
define new global shared var h-sel-pd1001 as handle no-undo.
DEFINE NEW GLOBAL SHARED VAR h-browse-pd1001 as widget-handle no-undo.
define new global shared var adm-broker-hdl as handle no-undo.
DEF NEW GLOBAL SHARED VAR vg-nr-pedido AS INTEGER.
def new global shared var wh-nome-pd1001 as widget-handle no-undo.
def new global shared var tx-label-nome AS widget-handle no-undo.
/* Variable Definitions *****************************************************/
define var c-folder as character no-undo.
define var c-objects as character no-undo.
define var i-objects as integer no-undo.
define var h-object as handle no-undo.
define var l-record as logical no-undo initial no.
define var l-group-assign as logical no-undo initial no.
define var h_frame as widget-handle no-undo.
DEF VAR h-frame AS HANDLE NO-UNDO.
DEF NEW GLOBAL SHARED VAR h-estab-pd1001 AS HANDLE NO-UNDO.
/*****************************************************************************************************/
DEF NEW GLOBAL SHARED VAR h-fpage2-pd1001 AS WIDGET-HANDLE NO-UNDO.
DEF VAR h-objeto AS HANDLE NO-UNDO.
DEF NEW GLOBAL SHARED VAR h-estab-pd1001 AS HANDLE NO-UNDO.
IF p-ind-event = "DISPLAY" AND
p-ind-object = "VIEWER" AND
p-cod-table = "ped-venda" AND
STRING(p-row-table) <> ? THEN
DO:
FIND FIRST ped-venda WHERE ROWID(ped-venda) = p-row-table NO-LOCK NO-ERROR.
IF AVAIL ped-venda THEN
DO:
ASSIGN vg-nr-pedido = ped-venda.nr-pedido.
IF VALID-HANDLE(h-browse-pd1001) THEN
RUN pi-open-query IN h-browse-pd1001.
END.
END.
if p-ind-event = "INITIALIZE" and
p-ind-object = "CONTAINER" then
do:
RUN get-link-handle IN adm-broker-hdl (INPUT p-wgh-object,
INPUT "PAGE-SOURCE":U,
OUTPUT c-folder).
assign h-folder-pd1001 = widget-handle(c-folder) no-error.
assign h-sel-pd1001 = p-wgh-object.
if valid-handle(h-folder-pd1001) then do:
RUN create-folder-page IN h-folder-pd1001 (INPUT 10, INPUT "Outros":U).
RUN create-folder-label IN h-folder-pd1001 (INPUT 10, INPUT "Outros":U).
RUN select-page IN p-wgh-object (INPUT 10).
RUN init-object IN p-wgh-object (INPUT "esbrw/bespd1001.w":U, /* Nome do Objeto */ /* para saber quais sao os parametros de inicializacao de uma viewer, é só abrir um programa criado pelo DDK e encontrar a opcao init-object da viewer */
INPUT p-wgh-frame,
/* INPUT "Layout = ":U, */
INPUT 'Initial-Lock = NO-LOCK,
Hide-on-Init = no,
Disable-on-Init = no,
Layout = ,
Create-On-Add = ?,
ProgAtributo = ,
ProgIncMod = ,
MessageNum = 0,
MessageParam = ':U ,
OUTPUT h-browse-pd1001).
RUN set-position IN h-browse-pd1001 ( 6.5, 2.8) /* ( 3.5, 6.0) */.
RUN get-link-handle IN adm-broker-hdl (INPUT p-wgh-object,
INPUT "CONTAINER-TARGET":U,
OUTPUT c-objects).
do i-objects = 1 to num-entries(c-objects):
assign h-object = widget-handle(entry(i-objects, c-objects)).
if index(h-object:FILE-NAME, "qry") <> 0 and /* Voce deve verificar se e a query principal */
not l-record then do:
assign l-record = yes.
RUN add-link IN adm-broker-hdl (INPUT h-object,
INPUT "Record":U,
INPUT h-browse-pd1001).
end.
end.
RUN dispatch IN h-browse-pd1001 ("initialize":U).
RUN pi-open-query IN h-browse-pd1001.
RUN select-page IN p-wgh-object (INPUT 10).
RUN select-page IN p-wgh-object (INPUT 1).
end. "".
end.
/*------------------*/