免费注册 查看新帖 |

Chinaunix

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

模糊查询另例 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-21 16:06 |只看该作者 |倒序浏览
H DATEDIT(*YMD) OPTION(*NODEBUGIO)
     FHGEXSML9  IF   E           K DISK
     FHGEXMALF  IF   E           K DISK
     FHG217ILF9 IF   E           K DISK
     FHGEXSMD91 CF   E             WORKSTN INDDS(INDICATOR)
     F                                     SFILE(DTARCD:RRN)
     D A               S              1A
     D#NOFR            S              9A
     D#NOTO            S                   LIKE(#NOFR)
     DNOFR##           S              9  0
     DNOTO##           S                   LIKE(NOFR##)
     DHCKNO##          S                   LIKE(NOFR##)
     DHCKNO@@          S             15A
     DRRN              S              4  0
     DINDICATOR        DS
     DEXIT                     3      3N
     DSFLDSP                  95     95N
     DSFLCTL                  85     85N
     DSFLCLR                  75     75N
     DHELPSR                   1      1N
     IRHGEXMA
     I              BAKSTR1                     BAKSTR1@
     I              BAKSTR2                     BAKSTR2@
     ****
      /FREE
         DOU EXIT;
           EXSR SFL@;
           IF RRN>0;
             SFLDSP='1';
           ELSE;
             SFLDSP='0';
           ENDIF;
           SFLCTL='1';
             EXFMT CTLRCD;
             IF HELPSR='1';
               EXSR HELPSR@;
             ENDIF;
           SFLCTL='0';
           READC(E) DTARCD;
           DOU %EOF;
             SELECT;
               WHEN ACTIO#='I' OR ACTIO#='i';
                 EXSR DETAIL@;
               OTHER;
                 LEAVE;
             ENDSL;
           READC DTARCD;
           ENDDO;
           ACTIO#=' ';
         ENDDO;
      /END-FREE
     C                   SETON                                        LR
     *******
     **SFL@*
     *******
      /FREE
         BEGSR SFL@;
           SFLCLR='1';
           WRITE CTLRCD;
           SFLCLR='0';
           RESET RRN;
           SETLL *LOVAL RHGEXSM;
             DOU %EOF(HGEXSML9);
               READ HGEXSML9;
               IF NOT %EOF AND HCKNO@=' ' OR (HCKNO>=HCKNO@))
                   AND(HOPDT@1=0 OR (HOPDT>=HOPDT@1 AND
                   HOPDT@ 1<HOPDT@2)) AND(HOPDT@2=0 OR
                   (HOPDT<=HOPDT@2 AND HOPDT@2>HOPDT@1));

                 CLEAR DTARCD;
                 RRN=RRN+1;
                 IF HDATE1>0 AND HDATE2<=0;
                   PHASE#='已交单';
                   HCKNO#=HCKNO;
                   HRTNO#=HRTNO;
                   HUSAM1#=HUSAM1;
                   HUSAM2#=HUSAM2;
                   HOPDT#=HOPDT;
                   WRITE DTARCD;
                 ELSEIF HDATE1>0 AND HDATE2>0 AND HDATE4<=0;
                   PHASE#='已审核';
                   HCKNO#=HCKNO;
                   HRTNO#=HRTNO;
                   HUSAM1#=HUSAM1;
                   HUSAM2#=HUSAM2;
                   HOPDT#=HOPDT;
                   WRITE DTARCD;
                 ELSEIF HDATE1>0 AND HDATE2>0 AND HDATE4>0 AND
                        HDATE5<=0;
                   PHASE#='已核销';
                   HCKNO#=HCKNO;
                   HRTNO#=HRTNO;
                   HUSAM1#=HUSAM1;
                   HUSAM2#=HUSAM2;
                   HOPDT#=HOPDT;
                   WRITE DTARCD;
                 ELSEIF HDATE1>0 AND HDATE2>0 AND HDATE4>0 AND
                        HDATE5>0;
                   PHASE#='已结案';
                   HCKNO#=HCKNO;
                   HRTNO#=HRTNO;
                   HUSAM1#=HUSAM1;
                   HUSAM2#=HUSAM2;
                   HOPDT#=HOPDT;
                   WRITE DTARCD;
                 ENDIF;
               ELSE;
                 SETLL *LOVAL HG217ILF9;
                 DOU %EOF(HG217ILF9);
                   READ HG217ILF9;
                   IF NOT %EOF AND (HCKNO@=' ' OR (HCKNO>=HCKNO@)) AND
                     (HOPDT@1=0 OR (HOPDT>=HOPDT@1 AND HOPDT@1<HOPDT@2)) AND
                     (HOPDT@2=0 OR (HOPDT<=HOPDT@2 AND HOPDT@2>HOPDT@1));
                       CHAIN CHKLISTNO HGEXSML9;
                       IF NOT %FOUND;
                         CLEAR DTARCD;
                         RRN=RRN+1;
                         HCKNO#=CHKLISTNO;
                         HOPDT#=OPDT;
                         PHASE#='已使用';
                        WRITE DTARCD;
                       ENDIF;
                   ELSE;
                     EXSR DO@;
                     IF RRN>1;
                       EVAL A='1';
                     ENDIF;
                     LEAVE;
                   ENDIF;
                 ENDDO;
               ENDIF;
               IF A='1';
                 LEAVE;
               ENDIF;
             ENDDO;
           RESET A;
           RESET HCKNO@;
           RESET HRTNO@;
           RESET HDLOH@;
           RESET HOPDT@1;
           RESET HOPDT@2;
         ENDSR;
      /END-FREE
     *************
     **DETAIL@**
     *************
     C     DETAIL@       BEGSR
     C                   CALL      'HGEXSMRI'
     C                   PARM                    HRTNO#
     C                   PARM                    HCKNO#
     C                   UPDATE    DTARCD
     C                   ENDSR
     ************
     **HELPSR@**
     ************
     C     HELPSR@       BEGSR
     C                   CALL      'ACTCHLP'
     C                   PARM                    MEMBER           10
     C                   ENDSR
     ****************
     **DO@**
     ****************
     C     DO@           BEGSR
     C     *LOVAL        SETLL     HGEXMALF
     C                   DOU       %EOF(HGEXMALF)
     C                   READ      HGEXMALF
     C                   IF        NOT %EOF AND (HCKNO@=' ' OR
     C                             (HCKNO>=HCKNO@)) AND
     C                             (HOPDT@1=0 OR (HOPDT>=HOPDT@1
     C                             AND HOPDT@1<HOPDT@2)) AND
     C                             (HOPDT@2=0 OR (HOPDT<=HOPDT@2
     C                             AND HOPDT@2>HOPDT@1))
     C                   EVAL      #NOFR=%TRIM(NOFR)
     C                   EVAL      #NOTO=%TRIM(NOTO)
     C                   MOVE      #NOFR         NOFR##
     C                   MOVE      #NOTO         NOTO##
     C     NOFR##        DO        NOTO##        HCKNO##
     C                   MOVEL     HCKNO##       HCKNO@@
     C     HCKNO@@       CHAIN     HG217ILF9
     C                   IF        NOT %FOUND
     C                   CLEAR                   DTARCD
     C                   EVAL      RRN=RRN+1
     C                   EVAL      HCKNO#=HCKNO@@
     C                   EVAL      HOPDT#=RVDAT
     C                   EVAL      PHASE#='已领用'
     C                   WRITE     DTARCD
     C                   ENDIF
     C                   ENDDO
     C                   ENDIF
     C                   ENDDO
     C                   ENDSR

评分

参与人数 1可用积分 +3 收起 理由
居士 + 3

查看全部评分

论坛徽章:
0
2 [报告]
发表于 2006-02-21 16:14 |只看该作者
请注意兰色部分的写法,配合代码可实现模糊查询。
DSPF代码:
     A*%%TS  SD  20060113  093327  LIUJ        REL-V5R1M0  5722-WDS
     A*%%EC
     A                                      DSPSIZ(24 80 *DS3)
     A                                      INDARA
     A          R DTARCD                    SFL
     A*%%TS  SD  20060113  093327  LIUJ        REL-V5R1M0  5722-WDS
     A            ACTIO#         1A  I  9  2
     A            HCKNO#        15A  O  9  4
     A            HRTNO#        15A  O  9 20
     A            HUSAM1#       13Y 0O  9 40EDTWRD('           .  ')
     A            HUSAM2#       13Y 0O  9 58EDTWRD('           .  ')
     A            HOPDT#         8S 0O 10  8COLOR(BLU)
     A            PHASE#        10A  O 10 23COLOR(BLU)
     A          R CTLRCD                    SFLCTL(DTARCD)
     A*%%TS  SD  20060113  093327  LIUJ        REL-V5R1M0  5722-WDS
     A                                      SFLSIZ(9999)
     A                                      SFLPAG(0007)
     A                                      CA01(01 '说明')
     A                                      CA03(03 '离开')
     A                                      CA05(05 'SELECT ALL')
     A                                      CA06(06 'SELECT SOME')
     A  95                                  SFLDSP
     A  85                                  SFLDSPCTL
     A  75                                  SFLCLR
     A                                  2 29'核销单查询'
     A                                  1 26'出口核销管理作业'
     A                                      COLOR(BLU)
     A            DATE@          8Y 0O  1 12COLOR(PNK)
     A                                      EDTWRD('    /  /  ')
     A                                  2 50TIME
     A                                      COLOR(PNK)
     A                                  2 12USER
     A                                  1 50'F01:说明'
     A                                      COLOR(PNK)
     A                                  1 65'F03:离开'
     A                                  3  2'核销单号:'
     A            HCKNO@        15A  B  3 14
     A                                  4 31'报关单号:'
     A                                      DSPATR(ND)
     A            HRTNO@        15A  B  4 43DSPATR(ND)
     A                                      DSPATR(PR)
     A            HDLOH@        10A  B  4 14DSPATR(ND)
     A                                      DSPATR(PR)
     A                                  3 31'出口日期:'
     A                                  3 52'至'
     A                                  5  2'截止日期:'
     A                                      DSPATR(ND)
     A            RVDAT@         8Y 0B  5 14EDTWRD('    /  /  ')
     A                                      DSPATR(ND)
     A                                      DSPATR(PR)
     A                                  5 25'(默认查询日)'
     A                                      DSPATR(ND)
     A                                  8  2'-----------------------------------
     A                                      ------------------------------------
     A                                      ---------'
     A                                  6  2'AC'
     A                                  6  7'核销单号'
     A                                  6 23'报关单号'
     A                                  6 40'报关单金额'
     A                                  6 58'工缴费金额'
     A                                  7  7'出口日期'
     A                                      COLOR(BLU)
     A                                  7 25'进度'
     A                                      COLOR(BLU)
     A                                  4  4'发票号:'
     A                                      DSPATR(ND)
     A            HOPDT@1        8Y 0B  3 43EDTCDE(4)
     A            HOPDT@2        8Y 0B  3 57EDTCDE(4)

[ 本帖最后由 liu__jiang 于 2006-2-21 16:18 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP