Ibm midrange 简单的RPG我生锈了
我想做一个小的RPG程序,但我很生疏。它类似于最近的SQL 我想读取一个逻辑文件,只选择那些日期为今天的记录。该字段定义为数字8 0。YYYYMMDD 是这样做的吗?我只想读那些记录=今天的日期。(工作日期确定) 这是一个你可能更喜欢的版本:Ibm midrange 简单的RPG我生锈了,ibm-midrange,rpgle,Ibm Midrange,Rpgle,我想做一个小的RPG程序,但我很生疏。它类似于最近的SQL 我想读取一个逻辑文件,只选择那些日期为今天的记录。该字段定义为数字8 0。YYYYMMDD 是这样做的吗?我只想读那些记录=今天的日期。(工作日期确定) 这是一个你可能更喜欢的版本: FMYLF IF E K DISK DYYYYMMDD S 8 0 D DS D TIME 1
FMYLF IF E K DISK
DYYYYMMDD S 8 0
D DS
D TIME 1 6 0
D DATE 7 12 0
D MM 7 8 0
D DD 9 10 0
D YYYY 11 14 0
D TIMEDATE 1 14 0
C TIME TIMEDATE
C EVAL YYYYMMDD = (YYYY*10000) + (MM*100) + DD
C YYYYMMDD SETLL MYLF
C YYYYMMDD READE MYLF 99
C DOW *IN99 = *OFF
C* Do your processing here
C YYYYMMDD READE MYLF 99
C ENDDO
C EVAL *INLR = *ON
这是一个你可能更喜欢的版本:
FMYLF IF E K DISK
DYYYYMMDD S 8 0
D DS
D TIME 1 6 0
D DATE 7 12 0
D MM 7 8 0
D DD 9 10 0
D YYYY 11 14 0
D TIMEDATE 1 14 0
C TIME TIMEDATE
C EVAL YYYYMMDD = (YYYY*10000) + (MM*100) + DD
C YYYYMMDD SETLL MYLF
C YYYYMMDD READE MYLF 99
C DOW *IN99 = *OFF
C* Do your processing here
C YYYYMMDD READE MYLF 99
C ENDDO
C EVAL *INLR = *ON
您可以使用HLL(SQLRPGLE)或以下命令对SQL执行相同的逻辑:
您可以使用HLL(SQLRPGLE)或以下命令对SQL执行相同的逻辑:
本尼,我没想过免费的。我们有绿色屏幕,我要看看他们有什么。就时间而言,现在做绿屏会更快。/free在绿屏上工作得很好,但Benny的答案很容易被降级为固定格式。正如Buck所说,这在绿屏上工作得很好。我还包括了一个固定格式的版本,不过如果你觉得更舒服的话。谢谢Benny,我不确定这家商店是否有能力创建这样的表格。使用Iseries Navigator,我看不到任何关于数据库的信息。仅安装基本操作。我需要让他们安装其他的。所以现在,我仍然坚持用老方法做事——没有数据库就没有iSeries(现在的IBMi)。(虽然曾经有一个带有黄色镶边的盒子专门为没有DB2的Domino而建。)大黄蜂从来没有真正获得过多的吸引力。Benny,我没有想过免费。我们有绿色屏幕,我要看看他们有什么。就时间而言,现在做绿屏会更快。/free在绿屏上工作得很好,但Benny的答案很容易被降级为固定格式。正如Buck所说,这在绿屏上工作得很好。我还包括了一个固定格式的版本,不过如果你觉得更舒服的话。谢谢Benny,我不确定这家商店是否有能力创建这样的表格。使用Iseries Navigator,我看不到任何关于数据库的信息。仅安装基本操作。我需要让他们安装其他的。所以现在,我仍然坚持用老方法做事——没有数据库就没有iSeries(现在的IBMi)。(尽管曾经有一个带有黄色镶边的盒子专门为没有DB2的Domino构建。)大黄蜂从未真正获得过多的吸引力。如果可能的话,您应该考虑在RPG中使用实际的
date
类型。除此之外,请定义一个“全局”日期数据结构(以及相关方法,否则您将以2月30日结束),然后导入您的RPG代码并添加likeds()
以获得必要的输入。如果可能,您应该研究在RPG中使用实际的date
类型。除此之外,请定义一个“全局”日期数据结构(以及相关方法,否则您将以2月30日结束),然后导入RPG代码并添加likeds()
,以获得必要的输入。
FMYLF IF E K DISK
DYYYYMMDD S 8 0
D DS
D TIME 1 6 0
D DATE 7 12 0
D MM 7 8 0
D DD 9 10 0
D YYYY 11 14 0
D TIMEDATE 1 14 0
C TIME TIMEDATE
C EVAL YYYYMMDD = (YYYY*10000) + (MM*100) + DD
C YYYYMMDD SETLL MYLF
C YYYYMMDD READE MYLF 99
C DOW *IN99 = *OFF
C* Do your processing here
C YYYYMMDD READE MYLF 99
C ENDDO
C EVAL *INLR = *ON
CREATE TABLE WORKFILE AS (
SELECT *
FROM Filename
WHERE ORDHDT = YEAR(NOW()) * 10000 + MONTH(NOW()) * 100 + DAY(NOW())
) WITH DATA