![]() |
#52
VFPRafer2025-04-09 12:42
PROCEDURE prdCombobox_Inpt_Atcyen
PARAMETERS m.cWdgtLtr,m.nCyen,m.lLine .ColumnCount=5 .ColumnLines=0 .ColumnWidths=[60,80,60,60,30] .DisabledItemForeColor=255 .AddListItem('\]'+fncTran([English desc])) .AddListItem('\]'+fncTran([Chinese desc]),.NewItemID,2) .AddListItem('\]'+fncTran([Currency sort]),.NewItemID,3) .AddListItem('\]'+fncTran([Currency no.]),.NewItemID,4) .AddListItem('\]'+fncTran([No.]),.NewItemID,5) .AddListItem([\-]) .AddListItem(SPACE(0)) IF SqlExec(_Screen.RmtHdl,[select cAtcy_no,cAtcy_en,cAtcy_cn,cSort_cy from x_Atcy order by cAtcy_en],[x_Tdx])=1 DO prdES WITH [Pub_setCodeword],ALIAS() SCAN FOR fncTran([This currency])$x_Tdx.cSort_cy=.T. DO prdCombobox_Inpt_Atcyen_Act WITH ALLTRIM(x_Tdx.cSort_cy) ENDSCAN IF m.lLine=.T. .AddListItem([\-]) ENDIF m.lLine=.F. SCAN FOR fncTran([Often])$x_Tdx.cSort_cy=.T. AND fncTran([This currency])$x_Tdx.cSort_cy=.F. DO prdCombobox_Inpt_Atcyen_Act WITH ALLTRIM(x_Tdx.cSort_cy) ENDSCAN IF m.lLine=.T. .AddListItem([\-]) ENDIF DELETE FOR fncTran([This currency])$x_Tdx.cSort_cy=.T. OR fncTran([Often])$x_Tdx.cSort_cy=.T. SELECT DISTINCT LEFT(x_Tdx.cAtcy_en,1) AS cLr FROM x_Tdx INTO CURSOR x_Tdy SCAN SELECT x_Tdx m.nLr=1 SCAN FOR LEFT(x_Tdx.cAtcy_en,1)==x_Tdy.cLr DO prdCombobox_Inpt_Atcyen_Act WITH IIF(EMPTY(x_Tdx.cSort_cy)=.F.,ALLTRIM(x_Tdx.cSort_cy),LOWER(x_Tdy.cLr)+LTRIM(STR(m.nLr))) m.nLr=m.nLr+1 ENDSCAN IF RECNO([x_Tdy])!=RECCOUNT([x_Tdy]) .AddListItem([\-]) ENDIF ENDSCAN USE IN x_Tdx ENDIF .AddListItem(SPACE(0)) .AddListItem([\-]) .AddListItem('\]'+.List[1,1]) .AddListItem('\]'+.List[1,2],.NewItemID,2) .AddListItem('\]'+.List[1,3],.NewItemID,3) .AddListItem('\]'+.List[1,4],.NewItemID,4) .AddListItem('\]'+.List[1,5],.NewItemID,5) .DefaultValue=.List[3] ENDPROC |
复现BUG例子:
只有本站会员才能查看附件,请 登录
BUG演示:
只有本站会员才能查看附件,请 登录
这个例子是简单的把dbf挂接到combox上
测试过程:点击小三角展开
滚动条拉到底,选择点击最后一个
滚动条拉到头,再选择点击第一个
反反复复,多试几次,有时候第一次第二次就会出现BUG
当点击list项目后,combox的值没有发生改变,BUG就呈现出来了,此时点击窗口,combox的值又更新了。
看看谁有简单有效绕过这个BUG的方法?