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
&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-PROCEDUREERSISTENT 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-PROCEDUREERSISTENT 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
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.