ProDataObject как ВХОДНОЙ ПАРАМЕТР Java - PullRequest
0 голосов
/ 09 января 2019

У меня есть таблица в Progress с именем Car. Мне нужно, чтобы мой код прогресса принял входной параметр одного Car экземпляра.

Я пробовал это

DEFINE INPUT PARAMETER i_tuPDO AS Car.

Но это приводит к ошибке компилятора.

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Я не совсем уверен, что вы пытаетесь сделать. В случае, если вы хотите передать конкретную запись таблицы Car, вы можете передать загрузку буфера и передать его или передать rowid буфера. Пример:

PROCEDURE test1 :

  define parameter buffer pbCar for Car.

END procedure.


PROCEDURE test2 :

  define input parameter rCar as rowid no-undo.
  define buffer bCar for Car.

  find bCar
    where rowid(bCar) = rCar
    no-lock.

END procedure.


find first Car no-lock.

run test1 ( buffer Car ).

run test2 ( rowid(Car) ).
0 голосов
/ 10 января 2019

Вы не можете использовать одну запись в качестве ввода. Вы можете определить объект, относящийся к записи «car», и ввести этот объект. Другой вариант - вместо этого ввести соответствующую РУЧКУ БУФЕРА.

DEFINE TEMP-TABLE tt NO-UNDO 
    FIELD a AS CHARACTER.

CREATE tt.
ASSIGN tt.a = "HELLO".


RUN proc (INPUT BUFFER tt:HANDLE).

PROCEDURE proc:
    DEFINE INPUT  PARAMETER phBuffer AS HANDLE NO-UNDO.

    MESSAGE phBuffer:BUFFER-FIELD(1):BUFFER-VALUE VIEW-AS ALERT-BOX.

END.    

Если вы действительно хотите ввести DATASET в процедуру (или программу), которая может быть выполнена следующим образом:

DEFINE TEMP-TABLE tt NO-UNDO 
    FIELD a AS CHARACTER.

DEFINE DATASET ds FOR tt.

CREATE tt.
ASSIGN tt.a = "HELLO".

RELEASE tt.

RUN proc (INPUT DATASET ds).

PROCEDURE proc:
    DEFINE INPUT PARAMETER DATASET FOR ds.

    FIND FIRST tt NO-ERROR.

    IF AVAILABLE tt THEN 
        DISPLAY tt.

END.    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...