mensagem de erro

Discussão em 'Progress 4GL' iniciado por Alexandre, Junho 8, 2010.

  1. Alexandre

    Alexandre Membro Participativo

    Invalid or inappropriate handle value to Run...IN statement.Procedure "USER-INTERFACE-TRIGGER ntvwr/v01nt008":6459.(2128)

    alguem pode me ajudar com esse erro??

    abraço
  2. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Voce poderia passar o trecho do codigo
  3. Alexandre

    Alexandre Membro Participativo

    &ANALYZE-SUSPEND _VERSION-NUMBER UIB_v8r12 GUI ADM1
    &ANALYZE-RESUME
    /* Connected Databases
    mgnet PROGRESS
    */
    &Scoped-define WINDOW-NAME CURRENT-WINDOW
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _DEFINITIONS V-table-Win
    /*------------------------------------------------------------------------

    File:

    Description: from VIEWER.W - Template for SmartViewer Objects

    Input Parameters:
    <none>

    Output Parameters:
    <none>

    ------------------------------------------------------------------------*/
    /* This .W file was created with the Progress UIB. */
    /*----------------------------------------------------------------------*/

    /* 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 ************************** */
    &Scop adm-attribute-dlg support/viewerd.w

    def buffer b-bomba for bomba.

    /* global variable definitions */
    def new global shared var gh-v04nt008 as handle no-undo.


    /*def new global shared var l-param as logical no-undo.
    * def new global shared var c-cod-cp like bomba.cp no-undo.*/
    /* Parameters Definitions --- */

    /* Local Variable Definitions --- */
    def var v-row-parent as rowid no-undo.
    def var i-nr-bomba as integer no-undo.
    DEF VAR p-seq-bomba LIKE bomba.bomba NO-UNDO.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-PREPROCESSOR-BLOCK

    /* ******************** Preprocessor Definitions ******************** */

    &Scoped-define PROCEDURE-TYPE SmartViewer
    &Scoped-define DB-AWARE no

    &Scoped-define ADM-SUPPORTED-LINKS Record-Source,Record-Target,TableIO-Target

    /* Name of designated FRAME-NAME and/or first browse and/or first query */
    &Scoped-define FRAME-NAME f-main

    /* External Tables */
    &Scoped-define EXTERNAL-TABLES bomba
    &Scoped-define FIRST-EXTERNAL-TABLE bomba


    /* Need to scope the external tables to this procedure */
    DEFINE QUERY external_tables FOR bomba.
    /* Standard List Definitions */
    &Scoped-Define ENABLED-FIELDS bomba.cp
    &Scoped-define ENABLED-TABLES bomba
    &Scoped-define FIRST-ENABLED-TABLE bomba
    &Scoped-Define ENABLED-OBJECTS rt-key rt-mold
    &Scoped-Define DISPLAYED-FIELDS bomba.cp bomba.bomba
    &Scoped-define DISPLAYED-TABLES bomba
    &Scoped-define FIRST-DISPLAYED-TABLE bomba
    &Scoped-Define DISPLAYED-OBJECTS i-bomba

    /* Custom List Definitions */
    /* ADM-CREATE-FIELDS,ADM-ASSIGN-FIELDS,ADM-MODIFY-FIELDS,List-4,List-5,List-6 */
    &Scoped-define ADM-ASSIGN-FIELDS bomba.cp bomba.bomba
    &Scoped-define ADM-MODIFY-FIELDS bomba.bomba

    /* _UIB-PREPROCESSOR-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _XFTR "Foreign Keys" V-table-Win _INLINE
    /* Actions: ? adm/support/keyedit.w ? ? ? */
    /* STRUCTURED-DATA
    <KEY-OBJECT>
    THIS-PROCEDURE
    </KEY-OBJECT>
    <FOREIGN-KEYS>
    </FOREIGN-KEYS>
    <EXECUTING-CODE>
    **************************
    * Set attributes related to FOREIGN KEYS
    */
    RUN set-attribute-list (
    'Keys-Accepted = "",
    Keys-Supplied = ""':U).
    /**************************
    </EXECUTING-CODE> */

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    /* *********************** Control Definitions ********************** */


    /* Definitions of the field level widgets */
    DEFINE VARIABLE i-bomba AS INTEGER FORMAT ">>>>>9":U INITIAL 0
    LABEL "Bombas"
    VIEW-AS FILL-IN
    SIZE 14 BY .88 NO-UNDO.

    DEFINE RECTANGLE rt-key
    EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
    SIZE 97.86 BY 2.25.

    DEFINE RECTANGLE rt-mold
    EDGE-PIXELS 2 GRAPHIC-EDGE NO-FILL
    SIZE 98 BY 1.29.


    /* ************************ Frame Definitions *********************** */

    DEFINE FRAME f-main
    bomba.cp AT ROW 1.21 COL 29.29 COLON-ALIGNED
    VIEW-AS FILL-IN
    SIZE 16.14 BY .88
    i-bomba AT ROW 2.21 COL 29.29 COLON-ALIGNED
    bomba.bomba AT ROW 3.5 COL 29.29 COLON-ALIGNED
    LABEL "Bomba Inicial"
    VIEW-AS FILL-IN
    SIZE 16.14 BY .88
    rt-key AT ROW 1.04 COL 1
    rt-mold AT ROW 3.29 COL 1
    WITH 1 DOWN NO-BOX KEEP-TAB-ORDER OVERLAY
    SIDE-LABELS NO-UNDERLINE THREE-D
    AT COL 1 ROW 1 SCROLLABLE .


    /* *********************** Procedure Settings ************************ */

    &ANALYZE-SUSPEND _PROCEDURE-SETTINGS
    /* Settings for THIS-PROCEDURE
    Type: SmartViewer
    External Tables: mgnet.bomba
    Allow: Basic,DB-Fields
    Frames: 1
    Add Fields to: EXTERNAL-TABLES
    Other Settings: PERSISTENT-ONLY COMPILE
    */

    /* This procedure should always be RUN PERSISTENT. Report the error, */
    /* then cleanup and return. */
    IF NOT THIS-PROCEDURE:pERSISTENT THEN DO:
    MESSAGE "{&FILE-NAME} should only be RUN PERSISTENT.":U
    VIEW-AS ALERT-BOX ERROR BUTTONS OK.
    RETURN.
    END.

    &ANALYZE-RESUME _END-PROCEDURE-SETTINGS

    /* ************************* Create Window ************************** */

    &ANALYZE-SUSPEND _CREATE-WINDOW
    /* DESIGN Window definition (used by the UIB)
    CREATE WINDOW V-table-Win ASSIGN
    HEIGHT = 3.71
    WIDTH = 98.14.
    /* END WINDOW DEFINITION */
    */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _INCLUDED-LIB V-table-Win
    /* ************************* Included-Libraries *********************** */

    {src/adm/method/viewer.i}
    {include/c-viewer.i}
    {utp/ut-glob.i}

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME




    /* *********** Runtime Attributes and AppBuilder Settings *********** */

    &ANALYZE-SUSPEND _RUN-TIME-ATTRIBUTES
    /* SETTINGS FOR WINDOW V-table-Win
    VISIBLE,,RUN-PERSISTENT */
    /* SETTINGS FOR FRAME f-main
    NOT-VISIBLE FRAME-NAME Size-to-Fit */
    ASSIGN
    FRAME f-main:SCROLLABLE = FALSE
    FRAME f-main:HIDDEN = TRUE.

    /* SETTINGS FOR FILL-IN bomba.bomba IN FRAME f-main
    NO-ENABLE 2 3 EXP-LABEL */
    /* SETTINGS FOR FILL-IN bomba.cp IN FRAME f-main
    2 */
    /* SETTINGS FOR FILL-IN i-bomba IN FRAME f-main
    NO-ENABLE */
    /* _RUN-TIME-ATTRIBUTES-END */
    &ANALYZE-RESUME


    /* Setting information for Queries and Browse Widgets fields */

    &ANALYZE-SUSPEND _QUERY-BLOCK FRAME f-main
    /* Query rebuild information for FRAME f-main
    _Options = "NO-LOCK"
    _Query is NOT OPENED
    */ /* FRAME f-main */
    &ANALYZE-RESUME





    /* ************************ Control Triggers ************************ */

    &Scoped-define SELF-NAME bomba.cp
    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bomba.cp V-table-Win
    ON F5 OF bomba.cp IN FRAME f-main /* Número da C.P. */
    DO:

    {include/zoomvar.i &prog-zoom="dizoom/z01di159.w"
    &campo=bomba.cp
    &campozoom=nr-pedcli}


    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bomba.cp V-table-Win
    ON LEAVE OF bomba.cp IN FRAME f-main /* Número da C.P. */
    DO:
    if adm-new-record = yes then do:
    find pedido-inftec where pedido-inftec.cp = input frame {&frame-name} bomba.cp no-lock no-error.
    if avail pedido-inftec then do:
    find ped-venda
    where ped-venda.nome-abrev = pedido-inftec.nome-abrev
    and ped-venda.nr-pedcli = input frame {&frame-name} bomba.cp
    no-lock no-error.
    if avail ped-venda then do:
    find net-pedido where
    net-pedido.nr-pedido = ped-venda.nr-pedido no-lock no-error.
    if avail net-pedido then
    run pi-habilita in gh-v04nt008(input net-pedido.insp-hidr, input net-pedido.insp-perf).
    end.
    end.
    else run pi-habilita in gh-v04nt008(input NO, input NO).
    end.
    else run pi-habilita in gh-v04nt008(input NO, input NO).
    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CONTROL bomba.cp V-table-Win
    ON MOUSE-SELECT-DBLCLICK OF bomba.cp IN FRAME f-main /* Número da C.P. */
    DO:
    APPLY "F5" TO SELF.

    END.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    &UNDEFINE SELF-NAME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _CUSTOM _MAIN-BLOCK V-table-Win


    /* *************************** Main Block *************************** */

    &IF DEFINED(UIB_IS_RUNNING) <> 0 &THEN
    RUN dispatch IN THIS-PROCEDURE ('initialize':U).
    &ENDIF

    /************************ INTERNAL PROCEDURES ********************/

    bomba.cp:load-mouse-pointer("image/lupa.cur") in frame {&FRAME-NAME}.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME


    /* ********************** Internal Procedures *********************** */

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE adm-row-available V-table-Win _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}

    /* Create a list of all the tables that we need to get. */
    {src/adm/template/row-list.i "bomba"}

    /* Get the record ROWID's from the RECORD-SOURCE. */
    {src/adm/template/row-get.i}

    /* FIND each record specified by the RECORD-SOURCE. */
    {src/adm/template/row-find.i "bomba"}

    /* 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 V-table-Win _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.
    ------------------------------------------------------------------------------*/
    /* Hide all frames. */
    HIDE FRAME f-main.
    IF THIS-PROCEDURE:pERSISTENT THEN DELETE PROCEDURE THIS-PROCEDURE.
    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-add-record V-table-Win
    PROCEDURE local-add-record :
    /*------------------------------------------------------------------------------
    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 'add-record':U ) .

    RUN pi-seq-bomba (INPUT YES,
    OUTPUT p-seq-bomba).

    /* Code placed here will execute AFTER standard behavior. */

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-assign-record V-table-Win
    PROCEDURE local-assign-record :
    /*------------------------------------------------------------------------------
    Purpose: Override standard ADM method
    Notes:
    ------------------------------------------------------------------------------*/


    if adm-new-record = yes then do:
    find b-bomba no-lock where
    b-bomba.bomba = input frame {&FRAME-NAME} bomba.bomba no-error.
    if avail b-bomba then do:
    RUN pi-seq-bomba (INPUT NO,
    OUTPUT p-seq-bomba).

    run message2.p (input "Bomba já cadastrada !",
    input "Já existe ocorrência em Bombas para o código informado." + CHR(13) +
    "A próxima ocorrência para o número da bomba disponível é " + p-seq-bomba + "." + CHR(13) +
    "Incluir bomba com a nova numeração ?").

    IF RETURN-VALUE = "no"
    THEN DO:
    apply 'entry' to bomba.bomba in frame {&FRAME-NAME}.
    return error.
    END.
    ELSE DO:
    RUN pi-seq-bomba (INPUT yes,
    OUTPUT p-seq-bomba).
    END.

    end.
    end.

    FIND FIRST pedido-inftec no-lock
    WHERE pedido-inftec.cp = input frame {&FRAME-NAME} bomba.cp no-error.
    IF NOT AVAIL pedido-inftec THEN DO:
    run message.p (input "CP não cadastrada!",
    input "Não existe ocorrência em Bombas para a CP informada. Informe outra CP.").
    apply 'entry' to bomba.cp in frame {&FRAME-NAME}.
    return error.
    end.

    RUN dispatch IN THIS-PROCEDURE ( INPUT 'assign-record':U ) .

    ASSIGN bomba.cp = input frame {&FRAME-NAME} bomba.cp.
    bomba.bomba = input frame {&FRAME-NAME} bomba.bomba.

    find pedido-inftec where
    pedido-inftec.cp = bomba.cp no-lock no-error.
    if avail pedido-inftec then
    assign bomba.modelo-bomba = pedido-inftec.modelo-bomba
    bomba.tipo-bomba = pedido-inftec.tipo-bomba.





    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-copy-record V-table-Win
    PROCEDURE local-copy-record :
    /*------------------------------------------------------------------------------
    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 'copy-record':U ) .

    RUN pi-seq-bomba (INPUT YES,
    OUTPUT p-seq-bomba).

    /* Code placed here will execute AFTER standard behavior. */

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-delete-record V-table-Win
    PROCEDURE local-delete-record :
    /*------------------------------------------------------------------------------
    Purpose: Override standard ADM method
    Notes:
    ------------------------------------------------------------------------------*/

    /* Code placed here will execute PRIOR to standard behavior. */

    DEF VAR l-valida AS LOGICAL.

    ASSIGN l-valida = NO.

    FOR EACH usuar_grp_usuar WHERE
    usuar_grp_usuar.cod_usuario = c-seg-usuario NO-LOCK
    BREAK BY usuar_grp_usuar.cod_usuario:

    FIND FIRST prog_dtsul_segur
    WHERE prog_dtsul_segur.cod_grp_usuar = usuar_grp_usuar.cod_grp_usuar
    AND prog_dtsul_segur.cod_prog_dtsul = "ntit008seg" NO-LOCK NO-ERROR.
    IF AVAIL prog_dtsul_segur THEN DO:
    ASSIGN l-valida = YES.
    END.
    END.

    IF l-valida = NO
    THEN DO:
    RUN MESSAGE.p (INPUT "Usuário sem permissão para excluir registro",
    INPUT "").

    RETURN NO-APPLY.

    END.

    /* Dispatch standard ADM method. */
    RUN dispatch IN THIS-PROCEDURE ( INPUT 'delete-record':U ) .

    /* Code placed here will execute AFTER standard behavior. */

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-disable-fields V-table-Win
    PROCEDURE local-disable-fields :
    /*------------------------------------------------------------------------------
    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 'disable-fields':U ) .

    /* Code placed here will execute AFTER standard behavior. */
    &if defined(ADM-MODIFY-FIELDS) &then
    disable {&ADM-MODIFY-FIELDS} with frame {&frame-name}.
    &endif
    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-display-fields V-table-Win
    PROCEDURE local-display-fields :
    /*------------------------------------------------------------------------------
    Purpose: Override standard ADM method
    Notes:
    ------------------------------------------------------------------------------*/

    /* Dispatch standard ADM method. */
    assign i-nr-bomba = 0.
    if avail bomba then do:
    for each b-bomba use-index u-chasec-cp no-lock
    where b-bomba.cp = bomba.cp :
    i-nr-bomba = i-nr-bomba + 1.
    end.
    end.
    assign i-bomba = i-nr-bomba.

    RUN dispatch IN THIS-PROCEDURE ( INPUT 'display-fields':U ) .

    /* Code placed here will execute AFTER standard behavior. */

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE local-enable-fields V-table-Win
    PROCEDURE local-enable-fields :
    /*------------------------------------------------------------------------------
    Purpose: Override standard ADM method
    Notes:
    ------------------------------------------------------------------------------*/

    IF adm-new-record = NO
    THEN DO:
    FIND FIRST pedido-inftec NO-LOCK
    WHERE pedido-inftec.cp = INPUT FRAME {&FRAME-NAME} bomba.cp NO-ERROR.

    IF AVAIL pedido-inftec
    THEN DO:
    FIND FIRST ped-venda NO-LOCK
    WHERE ped-venda.nr-pedcli = pedido-inftec.cp
    AND ped-venda.nome-abrev = pedido-inftec.nome-abrev NO-ERROR.
    IF AVAIL ped-venda
    THEN DO:
    IF /*ped-venda.cod-sit-ped = 3 /* Atentido Total*/ OR*/
    ped-venda.cod-sit-ped = 6 /* Cancelado */
    THEN DO:
    RUN message.p("Situação do Pedido não Permite Alteração.","Pedido: " + {diinc/i03di149.i 04 ped-venda.cod-sit-ped}).
    RETURN ERROR.
    END.

    /*Chamado 14053 - bloquear pedidos atendido total*/
    /*
    IF ped-venda.cod-sit-ped = 3 /* Atentido Total*/
    THEN do:
    RUN message3.p ("Situação do Pedido " + {diinc/i03di149.i 04 ped-venda.cod-sit-ped} ,
    "Será permitida a alteração no período de 60 dias após a implantação das rotinas automáticas do configurador do produto" + CHR(10) +
    "Após esse prazo não será permitido alterar as informações do cartão de especificação para pedidos faturados.").

    END.
    */
    END.
    END.
    END.

    /* Code placed here will execute PRIOR to standard behavior. */
    /* Dispatch standard ADM method. */

    RUN dispatch IN THIS-PROCEDURE ( INPUT 'enable-fields':U ) .

    /* Code placed here will execute AFTER standard behavior. */

    if adm-new-record = yes then
    &if defined(ADM-MODIFY-FIELDS) &then
    enable {&ADM-MODIFY-FIELDS} with frame {&frame-name}.
    &endif



    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-atualiza-parent V-table-Win
    PROCEDURE pi-atualiza-parent :
    /*------------------------------------------------------------------------------
    Purpose:
    Parameters: <none>
    Notes:
    ------------------------------------------------------------------------------*/
    define input parameter v-row-parent-externo as rowid no-undo.

    assign v-row-parent = v-row-parent-externo.

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE pi-seq-bomba V-table-Win
    PROCEDURE pi-seq-bomba :
    /*------------------------------------------------------------------------------
    Purpose:
    Parameters: <none>
    Notes:
    ------------------------------------------------------------------------------*/
    DEF INPUT PARAMETER p-mostra AS LOGICAL.
    DEF OUTPUT PARAMETER p-bomba LIKE bomba.bomba.

    DEF VAR c-bomba AS CHAR FORMAT "x(12)".
    DEF VAR i-cont AS INTEGER.
    DEF var i-pos AS INT.

    FOR LAST bomba WHERE
    INDEX(bomba.bomba,"B",1) > 0
    BY bomba.bomba :

    DO i-pos = 1 TO LENGTH(bomba.bomba):
    DO i-cont = 0 TO 9:
    IF SUBSTRING(bomba.bomba,i-pos,1) = string(i-cont) THEN
    ASSIGN c-bomba = c-bomba + SUBSTRING(bomba.bomba,i-pos,1).
    END.
    END.
    END.

    ASSIGN c-bomba = "B" + STRING(INT(c-bomba) + 1).

    IF p-mostra THEN
    ASSIGN i-bomba:SCREEN-VALUE IN FRAME {&FRAME-NAME} = ""
    bomba.bomba:SCREEN-VALUE IN FRAME {&FRAME-NAME} = c-bomba.

    ASSIGN p-bomba = c-bomba.

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE Pi-validate V-table-Win
    PROCEDURE Pi-validate :
    /*------------------------------------------------------------------------------
    Purpose:Validar a viewer
    Parameters: <none>
    Notes: Não fazer assign aqui. Nesta procedure
    devem ser colocadas apenas validações, pois neste ponto do programa o registro
    ainda não foi criado.
    ------------------------------------------------------------------------------*/
    {include/i-vldfrm.i} /* Validação de dicionário */

    /*Segue um exemplo de validação de programa
    * find tabela where tabela.campo1 = c-variavel and
    * tabela.campo2 > i-variavel no-lock no-error.
    * {include/i-vldprg.i} /* Este include deve ser colocado sempre antes do ut-msgs.p */
    * run utp/ut-msgs.p (input "show":U, input 7, input return-value).
    * return 'ADM-ERROR':U.*/

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE send-records V-table-Win _ADM-SEND-RECORDS
    PROCEDURE send-records :
    /*------------------------------------------------------------------------------
    Purpose: Send record ROWID's for all tables used by
    this file.
    Parameters: see template/snd-head.i
    ------------------------------------------------------------------------------*/

    /* Define variables needed by this internal procedure. */
    {src/adm/template/snd-head.i}

    /* For each requested table, put it's ROWID in the output list. */
    {src/adm/template/snd-list.i "bomba"}

    /* Deal with any unexpected table requests before closing. */
    {src/adm/template/snd-end.i}

    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME

    &ANALYZE-SUSPEND _UIB-CODE-BLOCK _PROCEDURE state-changed V-table-Win
    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 p-state:
    /* Object instance CASEs can go here to replace standard behavior
    or add new cases. */
    {src/adm/template/vstates.i}
    END CASE.
    run pi-trata-state (p-issuer-hdl, p-state).
    END PROCEDURE.

    /* _UIB-CODE-BLOCK-END */
    &ANALYZE-RESUME
  4. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Pelo o que eu dei uma olhada a sua variavel gh-v04nt008 chega como parametro, tenta logo abaixo da definição dela esse comando:

    MESSAGE VALID-HANDLE(gh-v04nt008)
    VIEW-AS ALERT-BOX INFO BUTTONS OK.

    e veja o que ele retorna, se for 'no', então vc precisa verificar no programa que chama esse fonte que me passou
    de o retorno for 'yes' me avisa que vejo seu codigo com mais calma.

Compartilhe esta Página