是否可以从另一个窗口触发器部分调用窗口过程?

时间:2019-04-09 12:27:51

标签: openedge progress-4gl

我想从另一个窗口触发器部分编写一个用于调用窗口过程的程序。让我分享我尝试过的程序。

DO:
  DEFINE VARIABLE cPartType     AS CHARACTER NO-UNDO.
  DEFINE VARIABLE cSubPartType  AS CHARACTER NO-UNDO.
  DEFINE VARIABLE cAttributeExp AS CHARACTER NO-UNDO.
  DEFINE VARIABLE cOutputQty    AS CHARACTER NO-UNDO.
  DEFINE VARIABLE cOutputExp    AS CHARACTER NO-UNDO.
  DEFINE VARIABLE  cResult      AS CHARACTER NO-UNDO.
  DEFINE VARIABLE  cCheckCase   AS CHARACTER NO-UNDO.

  ASSIGN
  cPartType     = coCombo  :SCREEN-VALUE IN FRAME {&FRAME-NAME}  
  cSubPartType  = fiChar-2 :SCREEN-VALUE IN FRAME {&FRAME-NAME} 
  cAttributeExp = fiChar-3 :SCREEN-VALUE IN FRAME {&FRAME-NAME}
  cOutputQty    = fiChar-4 :SCREEN-VALUE IN FRAME {&FRAME-NAME} 
  cOutputExp    = fiChar-5 :SCREEN-VALUE IN FRAME {&FRAME-NAME}.

  { launch.i   &PLIP        = "'ford/prc/Parts.p'"  
                     &IProc       = "'AddPart'"
                     &PList       = "(INPUT cPartType,
                                      INPUT cSubPartType,
                                      INPUT cAttributeExp,
                                      INPUT cOutputQty,
                                      INPUT cOutputExp,
                                      OUTPUT cResult,
                                      OUTPUT cCheckCase)"
                     &AutoKill    =  YES
                     &OnApp       = 'YES'
                     &PARTITION   = 'ASS'                                                                                                   
   }

END.

在这里,我可以从plipp文件中调用该过程,但是我想从此触发器中调用另一个窗口过程。你能帮忙这个案子吗?

1 个答案:

答案 0 :(得分:0)

如果过程在同一程序中,则只需

RUN addPart  (INPUT cPartType,
                           INPUT cSubPartType,
                           INPUT cAttributeExp,
                           INPUT cOutputQty,
                           INPUT cOutputExp,
                           OUTPUT cResult,
                           OUTPUT cCheckCase).

现在,如果该过程在另一个程序中,则需要它的句柄才能运行。在这种情况下,请在定义中定义这样的处理变量

DEFINE VARIABLE myHandle AS HANDLE NO-UNDO.

然后在主块中添加此代码

RUN ford/prc/Parts.p PERSISTENT SET myHandle.

最后,在触发器中,执行

RUN addPart IN myHandle (INPUT cPartType,
                           INPUT cSubPartType,
                           INPUT cAttributeExp,
                           INPUT cOutputQty,
                           INPUT cOutputExp,
                           OUTPUT cResult,
                           OUTPUT cCheckCase).