免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1391 | 回复: 1
打印 上一主题 下一主题

一年的日期怎么取 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-13 12:38 |只看该作者 |倒序浏览
总表里包括机构号,和机构名 表A
明细里包括机构号,和日期,及发生额,日初余额,日末余额。表B,包括一年的数据,日期为整形数据,如20030101
比如 2002.01.12 此日期可能有部分机构的数据。 2002.01.15此日期可能所有机构都没有数据。即此日期的数据为0

要生成一个包括机构号,日期,及发生额,日初余额,及日末余额的表C
日初余额=前一天的日末余额

表C里包括每个机构,每一天的信息,若B里当天没有发生,
则该机构号发生额为0,余额为上一天的余额。

比如说机构号001
C表里要包括001的从年初到年末每一天的记录。

我的设想是建立一个以日期为主键的表C的逻辑文件D
读D
CHAIN A
然后保存一个日期变量DATE1,为前一天的变量
读出的日期为DATE
DATE - DATE1 若>;1则中间有没有发生的天数
把DATE1加一,直到DATE-DATE1=1
若到每月的最后一天,直接把DATE1变为下月初

中间的临时表TC,保存前一天的数据
再一个临时表T1,保存今天发生的数据记录
用总表A CHAIN T1,
没有的话取前一天的TC里的数据,有的话直接MOVE到表C里


这样做很麻烦的,不知各位高人有没有更好的办法

论坛徽章:
0
2 [报告]
发表于 2004-05-13 17:19 |只看该作者

一年的日期怎么取

总账A,明细逻辑文件B,生成表C,临时表T,

临时表T里有所有机构的初始值


                PREDATE=0
        READB        TAG
                read  明细B
读完                                有记录
|-----------------|--------------------------|
|                                            |
|                                            |
call rpg1                   CHAIN  A
end program                                   |
                             RPG             TAG   
                          (D.DATE<>REDATE)AND (PREDATE< >;0) //日期相同
                              CALL RPG1
                                           PARM PREDATE
                                              |
                                      (D.DATE-PREDATE>;1 )
//找出所有机构都没有发生的日期         
                                    |
                                          
                                        IF RPEDATE=0131 THEN PREDATE=0201
                                       F RPEDATE=0228 THEN PREDATE=0301
//判断闰年
                                              .
                                              .
                                              .
                                              ELSE
                                              PREDATE=PREDATE+1//取下一天的日期
                              END IF  
                                              GOTO RPG
                       
                                              END IF
                                              END IF
                                              MOVE A.DATE PREDATE
                                              |
                                          CHAIN T
                                              |
                                          Z-ADD A.发生额   T.发生额
                                          Z-ADD A.余额     T.日末余额
                                          UPDAT T   
                                          GOTO READB 读表B
                                             


                                             
RPG1程序流程
                *ENTRY    PLIST                    
                         PARM           PREDATE    8
                         READT     TAG
                 READ T
                MOVE T表  C表
                MOVE PREDATE C.DATE
                WRTIE C
                MOVE T.期末  T.期初
                Z-ADD 0      T.发生额
                UPDAT T
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP