以静态温度 table 作为输入的构造函数(Progress ABL)
Constructor that takes a static temp table as input (Progress ABL)
我有一个 class,他的主要目的是临时 table。我想制作一个采用相同温度 table 作为输入的构造函数。
到目前为止,编译器会阻止任何将临时 table 作为输入参数传递的尝试。如果我改用 table 句柄,它就可以工作。但我不想从动态 table 复制到静态
Progress 希望 table 在编译时匹配,但我知道它们是相同的 - 它们在 .i 文件中定义。
是否有一种简单的方法来排列 tables,或者我一次只能解析一个字段?
对我来说就像一个魅力。
CLASS Test.TTOO.TempTableWrapper:
{Test/TTOO/ttCustomer.i}
CONSTRUCTOR PUBLIC TempTableWrapper (TABLE ttCustomer):
FOR EACH ttCustomer:
DISPLAY ttCustomer.CustNum ttCustomer.Name .
END.
END CONSTRUCTOR.
END CLASS.
和来电者:
ROUTINE-LEVEL ON ERROR UNDO, THROW.
USING Test.TTOO.* FROM PROPATH.
DEFINE VARIABLE oWrapper AS TempTableWrapper NO-UNDO .
{Test/TTOO/ttCustomer.i}
/* *************************** Main Block *************************** */
CREATE ttCustomer.
ASSIGN ttCustomer.CustNum = 42
ttCustomer.Name = "It works" .
oWrapper = NEW TempTableWrapper(TABLE ttCustomer ) .
您还可以通过参考传递临时table:
oWrapper = NEW TempTableWrapper(TABLE ttCustomer BY-REFERENCE) .
但是,temp-table 数据仅在构造函数期间可用,因为 BY-REFERENCE 调用 "overlap" 被调用方中的 temp-table 仅在该期间有效打电话。
对于永久 "BY-REFERENCE",在调用和参数上使用 BIND 关键字 - 在这种情况下,被调用者必须将临时 table 定义为 REFERENCE-ONLY。
注意,在包含文件中定义 temp-tables 不是必需的(尽管至少我推荐)。在运行时和编译时,模式只需要匹配。
当编译器不喜欢你的调用时,删除 类 r 代码并重新编译。
我有一个 class,他的主要目的是临时 table。我想制作一个采用相同温度 table 作为输入的构造函数。
到目前为止,编译器会阻止任何将临时 table 作为输入参数传递的尝试。如果我改用 table 句柄,它就可以工作。但我不想从动态 table 复制到静态
Progress 希望 table 在编译时匹配,但我知道它们是相同的 - 它们在 .i 文件中定义。
是否有一种简单的方法来排列 tables,或者我一次只能解析一个字段?
对我来说就像一个魅力。
CLASS Test.TTOO.TempTableWrapper:
{Test/TTOO/ttCustomer.i}
CONSTRUCTOR PUBLIC TempTableWrapper (TABLE ttCustomer):
FOR EACH ttCustomer:
DISPLAY ttCustomer.CustNum ttCustomer.Name .
END.
END CONSTRUCTOR.
END CLASS.
和来电者:
ROUTINE-LEVEL ON ERROR UNDO, THROW.
USING Test.TTOO.* FROM PROPATH.
DEFINE VARIABLE oWrapper AS TempTableWrapper NO-UNDO .
{Test/TTOO/ttCustomer.i}
/* *************************** Main Block *************************** */
CREATE ttCustomer.
ASSIGN ttCustomer.CustNum = 42
ttCustomer.Name = "It works" .
oWrapper = NEW TempTableWrapper(TABLE ttCustomer ) .
您还可以通过参考传递临时table:
oWrapper = NEW TempTableWrapper(TABLE ttCustomer BY-REFERENCE) .
但是,temp-table 数据仅在构造函数期间可用,因为 BY-REFERENCE 调用 "overlap" 被调用方中的 temp-table 仅在该期间有效打电话。
对于永久 "BY-REFERENCE",在调用和参数上使用 BIND 关键字 - 在这种情况下,被调用者必须将临时 table 定义为 REFERENCE-ONLY。
注意,在包含文件中定义 temp-tables 不是必需的(尽管至少我推荐)。在运行时和编译时,模式只需要匹配。
当编译器不喜欢你的调用时,删除 类 r 代码并重新编译。