請教pb 9高手問題,本人對pb不是很熟識,有些問題想請教一下,也望各位不要見笑。
今天在修改ERP應用程式時,其中一個視窗在itemchenged 事件中,如果某一列值選擇一個指定的值,就會彈出選擇視窗。
部分代碼如下:
Double ll_mess
String ls_bz,ls_cod,ls_kh,ls_data
Dec ldc_hl,ldc_num
Long ll_i
IF row<1 THEN Return
IF dwo.name='apply_class' AND (data='https://bbs.csdn.net/topics/100' OR data='https://bbs.csdn.net/topics/101' ) THEN
ls_data=https://bbs.csdn.net/topics/data
SELECT CVALUE INTO :ls_data FROM SYS_SETUP WHERE CSYSNAME='YFYKSQ' AND CKEY='FOOT'||:ls_data;
SELECT COUNT(*) INTO :ll_i FROM LKDJ WHERE SFZC=0 AND CLASS=:ls_data;
IF ll_i<1 THEN
SetText('')
Return 2
END IF
OpenWithParm(w_yfgl_lr_pjretrieve,ls_data+'0')
。。。。。。。。。。。
END IF
可是IF dwo.name='apply_class' AND (data='https://bbs.csdn.net/topics/100' OR data='https://bbs.csdn.net/topics/101' ) THEN 里面的代碼沒有執行,注‘apply_class’列名是正確的,請問是什么原因呢?我加上了資訊提示,也沒有彈出資訊視窗。請高手指點一下
另個還有個問題,我創建了一個freeform 報表視窗,請問如何是否可以動態修改明細中的行高?我是想根據行數的多少,調整明細的行高,如果行數少,行高就高點,反之。請問如何實作,謝謝!
uj5u.com熱心網友回復:
data是這個itemchanged的引數,表示當前欄位的值在if...then...中,如果if的條件有null值的話,以我遇上的經驗而言,是直接不執行的
所以,一定是data值是null了.你可以增加一個變數來觀察一下是不是這樣.那么,你加點代碼處理一下就可以執行if...then...了
此外,最好在處理之前,將浮動在欄位上的值識訓到資料視窗
string ls_data
this.accepttext()
ls_data = data
if isnull(ls_data) then ls_data=''
......
uj5u.com熱心網友回復:
斷點除錯下 你的IF 后面的條件看看是哪部分不滿足uj5u.com熱心網友回復:
itemchanged要想觸發,需要切換到其他可編輯的列,觸發事件以后,再除錯if的條件是否正常,如果其他列都不可以編輯,無法觸發itemchanged事件uj5u.com熱心網友回復:
19樓說的對,還有可能是有列名有大小寫,dwo.name='apply_class' 改為:upper(dwo.name)='APPLY_CLASS'uj5u.com熱心網友回復:
編輯框的itemchanged需要顯示呼叫accepttext()或item的focus改變后才會觸發,可以在editchanged中寫相應代碼uj5u.com熱心網友回復:
enter keyuj5u.com熱心網友回復:
itemchanged才是正道轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/10075.html
標籤:DataWindow
上一篇:pb報C0031錯誤
下一篇:pb軟體中中pos函式怎么使用?
