#############################################################
$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
$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