在我当前的项目中,我将一些Progress代码转换为C#。要转换的声明之一是:
RUN GetNewJobAsmblMultiple IN hIssueReturn(tranType,"?",callProcess,{&input_dataset_SelectedJobAsmblDataSet}, OUTPUT pcMessage, {&output_dataset_IssueReturnDataSet}) NO-ERROR.
我的问题是:
我的代码到目前为止有一个错误“?”,这被认为是一个GUID:
Erp.Tablesets.IssueReturnTableset output_dataset_IssueReturnDataSet = hIssueReturn.GetNewJobAsmblMultiple(tranType, "?", callProcess, ref output_dataset_SelectedJobAsmblDataSet, out pcMessage);
SJ
答案 0 :(得分:1)
“?”是一个字符串文字,文本值为?
与众不同? (没有引号),它等于空值。
{& input_dataset_SelectedPartDataSet}指的是Include文件参数或其他地方的& SCOPED-DEFINE或& GLOBAL-DEFINE定义。它是一个预处理器变量。
答案 1 :(得分:0)
您是否正在转换过去针对E9运行的代码,因此它现在针对E10运行?
在E10.1.400中,GetNewJobAsmblMultiple定义为:
public IssueReturnTableset GetNewJobAsmblMultiple(string pcTranType, Guid pcMtlQueueRowID, string pCallProcess, ref SelectedJobAsmblTableset ds, out string pcMessage)
复制与Guid.Empty中的E9传递相同的行为而不是"?"。如果您获得了AMM许可,并且传入了MtlQueue行的有效GUID,则将使用ttIssueReturn行处理MtlQueue行。
答案 2 :(得分:0)
对于这个问题: 1.论证是什么"?"意味着在方法调用?
OpenEdge ABL使用文字问号(?)表示UNKNOWN。它在某种程度上等同于其他数据库或其他语言中的NULL值。与大多数语言一样,字符串可以为空("")或NULL(?),但这些字符串不同。与许多语言不同,所有类型都可以分配UNKNOWN值(?),甚至是逻辑 - 因此逻辑布尔值可以是?,True或False(即3个值中的一个)
def var str as char init ?.
message "string is Unknown" (str EQ ?). // TRUE
message "string is empty" (str EQ ""). // FALSE (NULL and EMPTY are different)
def var log as logical init ?.
message "logical is unknown" (log EQ ?). // TRUE
message "logical is false" (log EQ FALSE). // Logical is neither FALSE
message "logical is true" (log EQ TRUE). // nor TRUE