1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

dúvida customização

Discussão em 'Progress 4GL' iniciado por thiagobhte, Outubro 31, 2014.

  1. thiagobhte

    thiagobhte Membro Participativo

    Pessoal boa tarde,
    estou fazendo uma customização no cd0204 criei uma pagina nova que irá chamar complemento. mas fiquei travado na parte de criar um novo campo. alguém tem alguma dica para poder me passar?

    resumo do código.

    Código:
    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 = widget-handle(c-folder) no-error.
      
        if valid-handle(h-folder) then do:
           RUN create-folder-page IN h-folder  (INPUT 5, INPUT "Complemento":U).
           RUN create-folder-label IN h-folder (INPUT 5, INPUT "Complemento":U). /**/
           RUN select-page IN p-wgh-object (INPUT 5).
    
  2. elmo

    elmo Membro Ativo

    Bom dia,
    Segue um pedaço de código que pode te ajudar.
    Código:
    /*** Nome do Objeto em Tela ***************************************************/
    ASSIGN c-objeto = ENTRY(NUM-ENTRIES(p-wgh-object:FILE-NAME, "~/"),
                      p-wgh-object:FILE-NAME, "~/").
    
    IF p-ind-event  = "INITIALIZE" AND
       p-ind-object = "viewer"     AND
       c-objeto     = "v34in172.w" THEN
    DO:
       ASSIGN h-frame = p-wgh-frame:FIRST-CHILD.
       ASSIGN h-frame = h-frame:FIRST-CHILD.
       DO WHILE h-frame <> ?:
          IF h-frame:TYPE <> "field-group" THEN
          DO:
             IF h-frame:NAME = "it-codigo" THEN
             DO:
                ASSIGN wh-it-codigo-cd0204 = h-frame:HANDLE.
                LEAVE.
             END.
            
             ASSIGN h-frame = h-frame:NEXT-SIBLING.
          END.
          ELSE
             ASSIGN h-frame = h-frame:FIRST-CHILD.
       END.
    END.
    
    IF p-ind-event  = "INITIALIZE" AND
       p-ind-object = "viewer"     AND
       c-objeto     = "v35in172.w" THEN
    DO:
       ASSIGN h-frame = p-wgh-frame:FIRST-CHILD.
       ASSIGN h-frame = h-frame:FIRST-CHILD.
       DO WHILE h-frame <> ?:
          IF h-frame:TYPE <> "field-group" THEN
          DO:
             IF h-frame:NAME = "un" THEN
             DO:
                ASSIGN wh-un-cd0204 = h-frame:HANDLE.
                LEAVE.
             END.
            
             ASSIGN h-frame = h-frame:NEXT-SIBLING.
          END.
          ELSE
             ASSIGN h-frame = h-frame:FIRST-CHILD.
       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 = WIDGET-HANDLE(c-folder) NO-ERROR.
    
        IF VALID-HANDLE(h-folder) THEN
        DO:
    
          /*** Cria a Pagina do Folder *******************************************/
    
          RUN create-folder-page IN h-folder (INPUT 5,
                                              INPUT "Especifico":U).
    
          RUN create-folder-label IN h-folder (INPUT 5,
                                               INPUT "Especifico":U).
    
          RUN select-page IN p-wgh-object (INPUT 5).
          ASSIGN wh-folder = p-wgh-object:HANDLE.
    
          RUN init-object IN p-wgh-object (INPUT "upc\upcd0204v01.w":U,
                                           INPUT p-wgh-frame,
                                           INPUT "LAYOUT = ":U,
                                           OUTPUT h-viewer-cd0204).
         
          RUN set-position IN h-viewer-cd0204 ( 7.2, 3.20 ).
    
          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:PRIVATE-DATA, "invwr\v34in172.w") <> 0 AND
                NOT l-group-assign                                    THEN
             DO:
               
                ASSIGN l-group-assign = YES .
               
                RUN add-link IN adm-broker-hdl (INPUT h-object,
                                                INPUT "Record":U,
                                                INPUT h-viewer-cd0204).
               
                RUN add-link IN adm-broker-hdl (INPUT h-object,
                                                INPUT "Group-Assign":U,
                                                INPUT h-viewer-cd0204).
    
             END .           
    
          END .
    
          RUN dispatch      IN h-viewer-cd0204 ("Initialize":U).
          RUN pi-desabilita IN h-viewer-cd0204.
          RUN select-page   IN p-wgh-object (INPUT 1).
    
        END.
    
    END.
  3. thiagobhte

    thiagobhte Membro Participativo

    Muito obrigado Elmo.

    Deu certinho
    criei a tabela, ja adicionei os dados nela manualmente.
    agora, como faço para esta viewer puxar os dados da tabela?


    Obrigado
  4. elmo

    elmo Membro Ativo

    Bom dia,
    No meu caso, eu criei uma procedure na minha viwer chamada mostra-dados que recebe como parametro o codigo do item, então é só fazer a busca pelo código.
    Para encontrar o código do item eu uso o Handle wh-it-codigo-cd0204, uma variável global shared definida na upc e na viewer.

Compartilhe esta Página