Можно ли вызвать оконную процедуру из другого раздела триггера окна? - PullRequest
0 голосов
/ 09 апреля 2019

Я хочу написать программу для оконной процедуры вызова из другого раздела триггера окна. Позвольте мне поделиться моей программой с тем, что я пробовал.

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 Ответ

1 голос
/ 09 апреля 2019

Если процедура в той же программе, то просто

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).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...