如何将当前日期从一个 UniQuery 段落传递到另一个段落
How to pass current date from one UniQuery paragraph to another
如何在 UniQuery 中将当前日期从一个 PA 传递到另一个?一位同事教我将日期由 cron 写入文件并使用内联提示以 <<F(HOLD,X.DATE.TODAY,1)>>
读取它的技巧,但这增加了可能失败的额外部分,我宁愿保持简单(又名一次文件没有更新,糟糕)。
我基本上需要这样的东西。
AE VOC MY.PROCESS.TODAY
001: PA
002: MY.PROCESS ?????
到 运行 我的第二个 PA 的当前日期。
AE VOC MY.PROCESS
001: PA
002: SELECT PERSON WITH PER.CHANGE.DATE EQ <<I2,Enter Date:>>
这确实有效,MY.PROCESS <<F(HOLD,X.DATE.TODAY,1)>>
,但是我是否可以使用更可靠的东西(例如 DATE()
作为第二段的参数来传递结果?
您可能会得到 "don't do that in a paragraph" 的答案,并且在某种程度上是正确的 - 除了简单的命令列表之外的任何内容都可能变得复杂。
就是说,以下对我有用:
AE VOC MY.PROCESS
001: PA
002: CLEARPROMPTS
003: SELECT PERSON WITH PER.CHANGE.DATE EQ <<I2,Enter Date:>>
发件人:https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/unidata/v8.2.1/unidata_userguide_v821.pdf
我在测试时使用 I
选项:"The I and S options are similar to the C option. The In option prompts for text if n is not specified, and the Sn option passes the value of n to called paragraphs."
另请阅读 "Always prompting with an inline prompt" 上面的部分,以解释为什么需要 CLEARPROMPTS。否则,如果您不传递参数,它会很乐意使用提供的最后一个参数。
[编辑:提供 BASIC 选项] 段落非常适合真正简单的事情,并且可能有一种方法可以欺骗事情。但它是一个 one-line 使某些东西正常工作的基本程序:
EXECUTE "MY.PROCESS ":OCONV(DATE(),"D4/")
MY.PROCESS.TODAY 是一个段落是否有硬性要求?如果您将此 one-line 程序编译并编目为 BP MY.PROCESS.TODAY,那么它将完全按照需要工作。
您还可以创建一个虚拟词典项目,他今天的日期
ED DICT 人今天
I
@DATE
D2/
TODAY'S DATE
10L
S
然后你的select声明变成:
SELECT 人今天 PER.CHANGE.DATE 情商
无可否认,这会 运行 比查看存储日期慢,因为它是根据查询的每条记录计算的,而不是存储的。如果 PERSONS 是一个大文件,这可能不是一个好主意。
如何在 UniQuery 中将当前日期从一个 PA 传递到另一个?一位同事教我将日期由 cron 写入文件并使用内联提示以 <<F(HOLD,X.DATE.TODAY,1)>>
读取它的技巧,但这增加了可能失败的额外部分,我宁愿保持简单(又名一次文件没有更新,糟糕)。
我基本上需要这样的东西。
AE VOC MY.PROCESS.TODAY
001: PA
002: MY.PROCESS ?????
到 运行 我的第二个 PA 的当前日期。
AE VOC MY.PROCESS
001: PA
002: SELECT PERSON WITH PER.CHANGE.DATE EQ <<I2,Enter Date:>>
这确实有效,MY.PROCESS <<F(HOLD,X.DATE.TODAY,1)>>
,但是我是否可以使用更可靠的东西(例如 DATE()
作为第二段的参数来传递结果?
您可能会得到 "don't do that in a paragraph" 的答案,并且在某种程度上是正确的 - 除了简单的命令列表之外的任何内容都可能变得复杂。
就是说,以下对我有用:
AE VOC MY.PROCESS
001: PA
002: CLEARPROMPTS
003: SELECT PERSON WITH PER.CHANGE.DATE EQ <<I2,Enter Date:>>
发件人:https://docs.rocketsoftware.com/nxt/gateway.dll/RKBnew20/unidata/v8.2.1/unidata_userguide_v821.pdf
我在测试时使用 I
选项:"The I and S options are similar to the C option. The In option prompts for text if n is not specified, and the Sn option passes the value of n to called paragraphs."
另请阅读 "Always prompting with an inline prompt" 上面的部分,以解释为什么需要 CLEARPROMPTS。否则,如果您不传递参数,它会很乐意使用提供的最后一个参数。
[编辑:提供 BASIC 选项] 段落非常适合真正简单的事情,并且可能有一种方法可以欺骗事情。但它是一个 one-line 使某些东西正常工作的基本程序:
EXECUTE "MY.PROCESS ":OCONV(DATE(),"D4/")
MY.PROCESS.TODAY 是一个段落是否有硬性要求?如果您将此 one-line 程序编译并编目为 BP MY.PROCESS.TODAY,那么它将完全按照需要工作。
您还可以创建一个虚拟词典项目,他今天的日期
ED DICT 人今天
I
@DATE
D2/
TODAY'S DATE
10L
S
然后你的select声明变成:
SELECT 人今天 PER.CHANGE.DATE 情商
无可否认,这会 运行 比查看存储日期慢,因为它是根据查询的每条记录计算的,而不是存储的。如果 PERSONS 是一个大文件,这可能不是一个好主意。