1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
  2. Anuncie Aqui
    Anuncie aqui você Também: fdantas@4each.com.br

Problema com zoom de Módulos no TOTVS

Discussão em 'Progress 4GL' iniciado por ds201, Agosto 16, 2015.

  1. ds201

    ds201 Membro Participativo

    Boa tarde

    Estou tentando usar o zoom da tabela "modul_dtsul" (Tabela de módulos) e não estou conseguindo.
    Minha primeira suspeita é que o nome da variável global que retorna o recid (v_rec_modul_dtsul) esteja errado.
    Quando executo o programa, o zoom é exibido e eu escolho um registro. Porem a variável global v_rec_modul_dtsul está retornando ? e não o recid do registro.

    Abaixo um fragmento do código usado:

    Código:
    def new global shared var v_rec_modul_dtsul as recid no-undo.
    
    /*--- Inicio ---*/
    run fnd/fnzoom/z02fn116.p.
    
    if v_rec_modul_dtsul <> ? then do:
       MESSAGE "*** FALHOU ***"
          VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
       find modul_dtsul
          where recid(modul_dtsul) = v_rec_modul_dtsul
          no-lock
          no-error.
    
       if avail modul_dtsul then do:
          MESSAGE
             modul_dtsul.cod_modul_dtsul
             VIEW-AS ALERT-BOX INFO BUTTONS OK.
       end.
    end.
    else do:
       MESSAGE "*** FALHOU ***"
          VIEW-AS ALERT-BOX INFO BUTTONS OK.
    end.
    /*--- Fim ---*/
    
    Sds
  2. bootstrapmaster

    bootstrapmaster Moderator Moderador Equipe de Suporte

    Boa noite, pelo codigo esse zoom é no padrão do ddkgui/ems2 e não o padrão do ems5 como vc está querendo usar.
    tenta usar a include zoomvar.i que vai dar certo.
    Código:
    &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
    &ANALYZE-RESUME
    /* Connected Databases
    */
    &Scoped-define WINDOW-NAME w-pesquisa
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS w-pesquisa
    {include/i-prgvrs.i Z02FN116 1.00.00.000}
    
    /* Create an unnamed pool to store all the widgets created
         by this procedure. This is a good default which assures
         that this procedure's triggers and internal procedures
         will execute in this procedure's storage, and that proper
         cleanup will occur on deletion of the procedure. */
    
    CREATE WIDGET-POOL.
    
    /* ***************************  Definitions  ************************** */
    
    /* Parameters Definitions ---                                           */
    
    /* Local Variable Definitions ---                                       */
    def var v-row-table     as rowid no-undo.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK
    
    /* ********************  Preprocessor Definitions  ******************** */
    
    &Scoped-define PROCEDURE-TYPE SmartWindow
    &Scoped-define DB-AWARE no
    
    &Scoped-define ADM-CONTAINER WINDOW
    
    /* Name of designated FRAME-NAME and/or first browse and/or first query */
    &Scoped-define FRAME-NAME f-zoom
    
    /* Standard List Definitions                                            */
    &Scoped-Define ENABLED-OBJECTS rt-button bt-implantar bt-ok bt-cancela ~
    bt-ajuda
    
    /* Custom List Definitions                                              */
    /* List-1,List-2,List-3,List-4,List-5,List-6                            */
    
    /* _UIB-PREPROCESSOR-BLOCK-END */
    &ANALYZE-RESUME
    
    
    
    /* ***********************  Control Definitions  ********************** */
    
    /* Define the widget handle for the window                              */
    DEFINE VAR w-pesquisa AS WIDGET-HANDLE NO-UNDO.
    
    /* Menu Definitions                                                     */
    DEFINE MENU POPUP-MENU-bt-ajuda
           MENU-ITEM mi-sobre       LABEL "Sobre..."      .
    
    
    /* Definitions of handles for SmartObjects                              */
    DEFINE VARIABLE h_b01fn116 AS HANDLE NO-UNDO.
    DEFINE VARIABLE h_b02fn116 AS HANDLE NO-UNDO.
    DEFINE VARIABLE h_folder AS HANDLE NO-UNDO.
    
    /* Definitions of the field level widgets                               */
    DEFINE BUTTON bt-ajuda
         LABEL "&Ajuda"
         SIZE 10 BY 1
         BGCOLOR 8 .
    
    DEFINE BUTTON bt-cancela AUTO-END-KEY
         LABEL "&Cancelar"
         SIZE 10 BY 1
         BGCOLOR 8 .
    
    DEFINE BUTTON bt-implantar
         LABEL "Implantar"
         SIZE 15 BY 1
         BGCOLOR 8 .
    
    DEFINE BUTTON bt-ok AUTO-GO
         LABEL "&OK"
         SIZE 10 BY 1
         BGCOLOR 8 .
    
    DEFINE RECTANGLE rt-button
         EDGE-PIXELS 2 GRAPHIC-EDGE   
         SIZE 88 BY 1.42
         BGCOLOR 7 .
    
    
    /* ************************  Frame Definitions  *********************** */
    
    DEFINE FRAME f-zoom
         bt-implantar AT ROW 14.83 COL 1.57
         bt-ok AT ROW 16.54 COL 3
         bt-cancela AT ROW 16.54 COL 14
         bt-ajuda AT ROW 16.54 COL 79
         rt-button AT ROW 16.29 COL 2
        WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
             SIDE-LABELS NO-UNDERLINE THREE-D
             AT COL 1 ROW 1
             SIZE 90 BY 17
             DEFAULT-BUTTON bt-ok CANCEL-BUTTON bt-cancela WIDGET-ID 100.
    
    
    /* *********************** Procedure Settings ************************ */
    
    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
       Type: SmartWindow
       Allow: Basic,Browse,DB-Fields,Query,Smart,Window
       Design Page: 1
       Other Settings: COMPILE
    */
    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS
    
    /* *************************  Create Window  ************************** */
    
    &ANALYZE-SUSPEND _CREATE-WINDOW
    IF SESSION:DISPLAY-TYPE = "GUI":U THEN
      CREATE WINDOW w-pesquisa ASSIGN
             HIDDEN             = YES
             TITLE              = "Pesquisa de M¢dulo"
             HEIGHT             = 17
             WIDTH              = 90
             MAX-HEIGHT         = 17
             MAX-WIDTH          = 90
             VIRTUAL-HEIGHT     = 17
             VIRTUAL-WIDTH      = 90
             RESIZE             = no
             SCROLL-BARS        = no
             STATUS-AREA        = yes
             BGCOLOR            = ?
             FGCOLOR            = ?
             THREE-D            = yes
             MESSAGE-AREA       = no
             SENSITIVE          = yes.
    ELSE {&WINDOW-NAME} = CURRENT-WINDOW.
    /* END WINDOW DEFINITION                                                */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB w-pesquisa
    /* ************************* Included-Libraries *********************** */
    
    {src/adm/method/containr.i}
    {include/w-pesqui.i}
    {utp/ut-glob.i}
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    
    
    /* ***********  Runtime Attributes and AppBuilder Settings  *********** */
    
    &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
    /* SETTINGS FOR WINDOW w-pesquisa
      VISIBLE,,RUN-PERSISTENT                                               */
    /* SETTINGS FOR FRAME f-zoom
       FRAME-NAME L-To-R                                                    */
    ASSIGN
           bt-ajuda:POPUP-MENU IN FRAME f-zoom       = MENU POPUP-MENU-bt-ajuda:HANDLE.
    
    IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-pesquisa)
    THEN w-pesquisa:HIDDEN = yes.
    
    /* _RUN-TIME-ATTRIBUTES-END */
    &ANALYZE-RESUME
    
    
    
    
    /* ************************  Control Triggers  ************************ */
    
    &Scoped-define SELF-NAME w-pesquisa
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-pesquisa w-pesquisa
    ON END-ERROR OF w-pesquisa /* Pesquisa de M¢dulo */
    OR ENDKEY OF {&WINDOW-NAME} ANYWHERE DO:
      /* This case occurs when the user presses the "Esc" key.
         In a persistently run window, just ignore this.  If we did not, the
         application would exit. */
      RETURN NO-APPLY.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL w-pesquisa w-pesquisa
    ON WINDOW-CLOSE OF w-pesquisa /* Pesquisa de M¢dulo */
    DO:
      /* This ADM code must be left here in order for the SmartWindow
         and its descendents to terminate properly on exit. */
      APPLY "CLOSE":U TO THIS-PROCEDURE.
      RETURN NO-APPLY.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME f-zoom
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL f-zoom w-pesquisa
    ON GO OF FRAME f-zoom
    DO:
      run pi-go.
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME bt-ajuda
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-ajuda w-pesquisa
    ON CHOOSE OF bt-ajuda IN FRAME f-zoom /* Ajuda */
    OR HELP OF FRAME {&FRAME-NAME}
    DO:
      {include/ajuda.i}
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME bt-cancela
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-cancela w-pesquisa
    ON CHOOSE OF bt-cancela IN FRAME f-zoom /* Cancelar */
    DO:
        RUN dispatch IN THIS-PROCEDURE ('exit':U).
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME bt-implantar
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bt-implantar w-pesquisa
    ON CHOOSE OF bt-implantar IN FRAME f-zoom /* Implantar */
    DO:
    /*  {include/i-implan.i <programa de implanta‡Æo>
                          <handle do browse1 de  zoom>
                          <handle do browse2 de zoom>}
       Devem ser passados os handles de todos os browsers do programa  */
    
    
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &Scoped-define SELF-NAME mi-sobre
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL mi-sobre w-pesquisa
    ON CHOOSE OF MENU-ITEM mi-sobre /* Sobre... */
    DO:
      {include/sobre.i}
    END.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    &UNDEFINE SELF-NAME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK w-pesquisa
    assign {&window-name}:title = {&window-name}:title + " - Z02FN116 - 1.00.00.001":U.
    
    
    /* ***************************  Main Block  *************************** */
    
    /* Include custom  Main Block code for SmartWindows. */
    {src/adm/template/windowmn.i}
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    
    /* **********************  Internal Procedures  *********************** */
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-create-objects w-pesquisa  _ADM-CREATE-OBJECTS
    PROCEDURE adm-create-objects :
    /*------------------------------------------------------------------------------
      Purpose:     Create handles for all SmartObjects used in this procedure.
                   After SmartObjects are initialized, then SmartLinks are added.
      Parameters:  <none>
    ------------------------------------------------------------------------------*/
      DEFINE VARIABLE adm-current-page  AS INTEGER NO-UNDO.
    
      RUN get-attribute IN THIS-PROCEDURE ('Current-Page':U).
      ASSIGN adm-current-page = INTEGER(RETURN-VALUE).
    
      CASE adm-current-page:
    
        WHEN 0 THEN DO:
           RUN init-object IN THIS-PROCEDURE (
                 INPUT  'adm/objects/folder.w':U ,
                 INPUT  FRAME f-zoom:HANDLE ,
                 INPUT  'FOLDER-LABELS = ':U + 'M¢dulo|Descri‡Æo' + ',
                         FOLDER-TAB-TYPE = 1':U ,
                 OUTPUT h_folder ).
           RUN set-position IN h_folder ( 1.17 , 1.57 ) NO-ERROR.
           RUN set-size IN h_folder ( 13.67 , 88.57 ) NO-ERROR.
    
           /* Links to SmartFolder h_folder. */
           RUN add-link IN adm-broker-hdl ( h_folder , 'Page':U , THIS-PROCEDURE ).
    
           /* Adjust the tab order of the smart objects. */
           RUN adjust-tab-order IN adm-broker-hdl ( h_folder ,
                 bt-implantar:HANDLE IN FRAME f-zoom , 'BEFORE':U ).
        END. /* Page 0 */
        WHEN 1 THEN DO:
           RUN init-object IN THIS-PROCEDURE (
                 INPUT  'fnbrw/b01fn116.w':U ,
                 INPUT  FRAME f-zoom:HANDLE ,
                 INPUT  'Layout = ':U ,
                 OUTPUT h_b01fn116 ).
           RUN set-position IN h_b01fn116 ( 3.50 , 6.00 ) NO-ERROR.
           /* Size in UIB:  ( 10.17 , 80.14 ) */
    
           /* Links to SmartBrowser h_b01fn116. */
           RUN add-link IN adm-broker-hdl ( h_b01fn116 , 'State':U , THIS-PROCEDURE ).
    
           /* Adjust the tab order of the smart objects. */
           RUN adjust-tab-order IN adm-broker-hdl ( h_b01fn116 ,
                 h_folder , 'AFTER':U ).
        END. /* Page 1 */
        WHEN 2 THEN DO:
           RUN init-object IN THIS-PROCEDURE (
                 INPUT  'fnbrw/b02fn116.w':U ,
                 INPUT  FRAME f-zoom:HANDLE ,
                 INPUT  'Layout = ':U ,
                 OUTPUT h_b02fn116 ).
           RUN set-position IN h_b02fn116 ( 3.50 , 6.00 ) NO-ERROR.
           /* Size in UIB:  ( 10.17 , 80.14 ) */
    
           /* Links to SmartBrowser h_b02fn116. */
           RUN add-link IN adm-broker-hdl ( h_b02fn116 , 'State':U , THIS-PROCEDURE ).
    
           /* Adjust the tab order of the smart objects. */
           RUN adjust-tab-order IN adm-broker-hdl ( h_b02fn116 ,
                 h_folder , 'AFTER':U ).
        END. /* Page 2 */
    
      END CASE.
      /* Select a Startup page. */
      IF adm-current-page eq 0
      THEN RUN select-page IN THIS-PROCEDURE ( 1 ).
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available w-pesquisa  _ADM-ROW-AVAILABLE
    PROCEDURE adm-row-available :
    /*------------------------------------------------------------------------------
      Purpose:     Dispatched to this procedure when the Record-
                   Source has a new row available.  This procedure
                   tries to get the new row (or foriegn keys) from
                   the Record-Source and process it.
      Parameters:  <none>
    ------------------------------------------------------------------------------*/
    
      /* Define variables needed by this internal procedure.             */
      {src/adm/template/row-head.i}
    
      /* Process the newly available records (i.e. display fields,
         open queries, and/or pass records on to any RECORD-TARGETS).    */
      {src/adm/template/row-end.i}
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE disable_UI w-pesquisa  _DEFAULT-DISABLE
    PROCEDURE disable_UI :
    /*------------------------------------------------------------------------------
      Purpose:     DISABLE the User Interface
      Parameters:  <none>
      Notes:       Here we clean-up the user-interface by deleting
                   dynamic widgets we have created and/or hide
                   frames.  This procedure is usually called when
                   we are ready to "clean-up" after running.
    ------------------------------------------------------------------------------*/
      /* Delete the WINDOW we created */
      IF SESSION:DISPLAY-TYPE = "GUI":U AND VALID-HANDLE(w-pesquisa)
      THEN DELETE WIDGET w-pesquisa.
      IF THIS-PROCEDURE:PERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE enable_UI w-pesquisa  _DEFAULT-ENABLE
    PROCEDURE enable_UI :
    /*------------------------------------------------------------------------------
      Purpose:     ENABLE the User Interface
      Parameters:  <none>
      Notes:       Here we display/view/enable the widgets in the
                   user-interface.  In addition, OPEN all queries
                   associated with each FRAME and BROWSE.
                   These statements here are based on the "Other
                   Settings" section of the widget Property Sheets.
    ------------------------------------------------------------------------------*/
      ENABLE rt-button bt-implantar bt-ok bt-cancela bt-ajuda
          WITH FRAME f-zoom IN WINDOW w-pesquisa.
      {&OPEN-BROWSERS-IN-QUERY-f-zoom}
      VIEW w-pesquisa.
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-destroy w-pesquisa
    PROCEDURE local-destroy :
    /*------------------------------------------------------------------------------
      Purpose:     Override standard ADM method
      Notes:      
    ------------------------------------------------------------------------------*/
    
      /* Code placed here will execute PRIOR to standard behavior. */
    
      /* Dispatch standard ADM method.                             */
      RUN dispatch IN THIS-PROCEDURE ( INPUT 'destroy':U ) .
      {include/i-logfin.i}
    
      /* Code placed here will execute AFTER standard behavior.    */
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-exit w-pesquisa
    PROCEDURE local-exit :
    /* -----------------------------------------------------------
      Purpose:  Starts an "exit" by APPLYing CLOSE event, which starts "destroy".
      Parameters:  <none>
      Notes:    If activated, should APPLY CLOSE, *not* dispatch adm-exit.  
    -------------------------------------------------------------*/
       APPLY "CLOSE":U TO THIS-PROCEDURE.
      
       RETURN.
          
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-initialize w-pesquisa
    PROCEDURE local-initialize :
    /*------------------------------------------------------------------------------
      Purpose:     Override standard ADM method
      Notes:      
    ------------------------------------------------------------------------------*/
    
      /* Code placed here will execute PRIOR to standard behavior. */
      {include/win-size.i}
    
      {utp/ut9000.i "Z02FN116" "1.00.00.000"}
    
      /* Dispatch standard ADM method.                             */
      RUN dispatch IN THIS-PROCEDURE ( INPUT 'initialize':U ) .
    
      /* Code placed here will execute AFTER standard behavior.    */
      assign bt-implantar:sensitive in frame {&frame-name} = l-implanta
             l-implanta = no.
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records w-pesquisa  _ADM-SEND-RECORDS
    PROCEDURE send-records :
    /*------------------------------------------------------------------------------
      Purpose:     Send record ROWID's for all tables used by
                   this file.
      Parameters:  see template/snd-head.i
    ------------------------------------------------------------------------------*/
    
      /* SEND-RECORDS does nothing because there are no External
         Tables specified for this SmartWindow, and there are no
         tables specified in any contained Browse, Query, or Frame. */
    
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed w-pesquisa
    PROCEDURE state-changed :
    /* -----------------------------------------------------------
      Purpose:    
      Parameters:  <none>
      Notes:      
    -------------------------------------------------------------*/
      DEFINE INPUT PARAMETER p-issuer-hdl AS HANDLE NO-UNDO.
      DEFINE INPUT PARAMETER p-state AS CHARACTER NO-UNDO.
      case entry(1, p-state, "|"):
          when 'New-Line':U then do:
              if  num-entries(p-state, "|":U) > 1 then
                  assign v-row-table = to-rowid(entry(2, p-state, "|":U)).
              else
                  assign v-row-table = ?.
          end.
      end.
      run pi-trata-state (p-issuer-hdl, p-state).
    END PROCEDURE.
    
    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
    
  3. ds201

    ds201 Membro Participativo

    Bom dia Richard

    Muito obrigado pelo apoio.
    Funcionou perfeitamente.

    Eu me iludi com o fato do zoom estar ligado ao banco "foundation" que eu associo ao TOTVS11. Dai achei que ele seguia o modelo do EMS5, que e mais recente.

    Sds

Compartilhe esta Página