二次开发查询翻页的问题

#############################################################
$ACTION
Case ACTION
  When "OUVRE"      : Gosub OUVRE
  When "LECTURE"    : Gosub LECTURE
  When default
Endcase
Return
############################################################
$OUVRE
Local Char    WFIL(250)
Return
############################################################
$LECTURE
# ------------------------------------------------------------- #
# ENTRY                                                         #
#    CHGPAG = 1    :    Search  查找                                #
#    ------------- = 2    :    Next    下一个                                #
#                      = 3    :    F5 刷新              #
#    CHGPAG = -1   :    Last    最后一个                               #
#    ------------- = -2   :    Back 返回                    #
#    NBLU   = 1                                                 #
#    MAXLIG        :    number of lines defined in the table
             屏幕表格最大行(屏幕中定义)    #
#    NOL           :    current index to load the table 
            当前行 #
#                        = -1     if CHGPAG > 0                 #
#                        = MAXLIG if CHGPAG < 0                 #
# ------------------------------------------------------------- #
# SORTIE                                                        #
#    SUITE  = 1    :    button NEXT and LAST inactive
             置灰按钮“下一个”“最后一个”           #
#    RETOUR = 1    :    button RETOUR inactive 
             置灰按钮“返回”                 #
#    NBLU   = 0    :    Stop the inquiry                        #
#    NOL           :    current index to load the table         #
# ------------------------------------------------------------- #


#-- Change parametrized inquiry screen
Gosub CHANGE_MSK From GCONSULT 


#-- Load filter
Gosub LOAD_FILTER


#-- Apply filters and enable/disable buttons
If CHGPAG > 0
    SUITE=1
    # -- 1st page : button back disabled
    # -- page<> page 1 : button back enabled
    If    CHGPAG = 1 : RETOUR = 1 : Elsif CHGPAG = 2 : RETOUR = 2 : Endif
    Filter [YHX] Where evalue(WFIL) Order By Key YHX0 
Else
    RETOUR=1
    # -- on last page : button next disabled
    # -- page<>last page : button next enabled
    If    CHGPAG = -1 : SUITE = 1 : Else  SUITE = 2 : Endif
    Filter [YHX] Where evalue(WFIL) Order By Key YHX0 Desc
Endif
#-- raz screen if 1st page, last page or refresh
If CHGPAG<>2 & CHGPAG<>-2 : Raz [M:YCO2] : Endif


#-- lecture 
$BOUCLE
For [YHX]
  #-- raz screen if next or back and at least one record
  If NBLU = 1
     If CHGPAG=2 | CHGPAG=-2 : Raz [M:YCO2] : Endif
     NBLU = 2
  Endif


  #-- set NEXT, BACK and range screen
  If CHGPAG > 0
     If NOL >= MAXLIG-1 : SUITE=2 : Break : Endif
     NOL    += 1 
     If NOL=0 
         DEBNUM = [F:YHX]YORDNUM         
     Endif
     FINNUM = [F:YHX]YORDNUM
  Else
     If NOL <= 0 : RETOUR=2 : Break : Endif
     NOL    -= 1 
     If NOL=MAXLIG-1 
         FINNUM = [F:YHX]YORDNUM
     Endif
     DEBNUM = [F:YHX]YORDNUM
  Endif


  nolign = NOL+1
  [M:YCO2]     = [F:YHX]
Next
Filter [YHX]
Return
############################################################
#    Prepare filter                                        #
############################################################
$LOAD_FILTER
WFIL  = "1=1"
If [M:YCO1]YBPCNUM <> ""
   WFIL += "&[F:YHX]YBPCNUM =[M:YCO1]YBPCNUM"
Endif
Case CHGPAG
   When 3  : # refresh 刷新
               WFIL += "&[F:YHX]YORDNUM>=DEBNUM"
   When 2  : # suite 下一个
               WFIL += "&[F:YHX]YORDNUM>FINNUM"
   When -2 : # retour 返回
               WFIL += "&[F:YHX]YORDNUM<DEBNUM"
Endcase
Return
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值