Ibm midrange 简单的RPG我生锈了

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

我想做一个小的RPG程序,但我很生疏。它类似于最近的SQL

我想读取一个逻辑文件,只选择那些日期为今天的记录。该字段定义为数字8 0。YYYYMMDD 是这样做的吗?我只想读那些记录=今天的日期。(工作日期确定)

这是一个你可能更喜欢的版本:

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