dw_1.reset()
ls_oldselect=dw_1.describe("datawindow.table.sqlselect")
is_selectwhere =''
uf_createtable()
if is_selectwhere = '' then
dw_1.settransobject(sqllis)
dw_1.retrieve(ld_ksrq,ld_jsrq,ls_patientid,ls_patientname)
else
ls_newsetselect = ls_oldselect + is_selectwhere
dw_1.object.datawindow.table.select = ls_newsetselect
dw_1.settransobject(sqllis)
ll_i = dw_1.retrieve(ld_ksrq,ld_jsrq,ls_patientid,ls_patientname)
end if
dw_1.object.datawindow.table.select = ls_oldselect
這段代碼運行第一次時可以正確獲取到資料,但是第二次運行時,無法獲取資料,依然是第一次的資料,后來通過getsqlselect()發現資料視窗的select陳述句還是第一次賦值上去的,而通過dw_1.describe()獲取的select陳述句卻與第二次的賦值一樣
uj5u.com熱心網友回復:
dw_1.object.datawindow.table.select = ls_newsetselect改為
dw_1.setsqlselect(ls_newsetselect)
再試試,如果不行,看一下setsqlselect的回傳值,是不是你的sql有錯誤
uj5u.com熱心網友回復:
如果是Oracle,可能是SQL陳述句末尾缺少一個分號uj5u.com熱心網友回復:
這段代碼非常混亂,對資料視窗的操作需要加以輸入研究。uj5u.com熱心網友回復:
首先代碼順序應該如下:w_1.reset() //只是把資料清空
ls_oldselect=dw_1.describe("datawindow.table.sqlselect") //應該取出的是沒有where條件裸sql語法
is_selectwhere ='' //沒有where子句
uf_createtable() //不清楚用途,這個函式后is_selectwhere的值是不會改變的,那后面的if陳述句永遠只執行else前面的半段。
//這就是問題所在,區域變數的值不會因為呼叫uf_createtable() 而改變
if is_selectwhere = '' then
dw_1.settransobject(sqllis)
dw_1.retrieve(ld_ksrq,ld_jsrq,ls_patientid,ls_patientname)
else
ls_newsetselect = ls_oldselect + is_selectwhere
dw_1.object.datawindow.table.select = ls_newsetselect
dw_1.settransobject(sqllis)
ll_i = dw_1.retrieve(ld_ksrq,ld_jsrq,ls_patientid,ls_patientname)
end if
dw_1.object.datawindow.table.select = ls_oldselect
uj5u.com熱心網友回復:
uf_createtable()不知道做了些啥uj5u.com熱心網友回復:
個人建議,要養成良好的編碼習慣,以便于快速定位和處理問題。uj5u.com熱心網友回復:
這么老的帖子也被翻出來,貌似樓主發完帖子以后就沒有回來過uj5u.com熱心網友回復:
都過去一年啦,老帖子都被翻出來了…………uj5u.com熱心網友回復:
這個題主要在于if pos( ls_oldselect ,'where')>0 then
ls_selectwhere='and'+ 欄位匹配和
ELSE
ls_selectwhere='where'+ 欄位匹配和
end if
ls_newsetselect = ls_oldselect + is_selectwhere
uj5u.com熱心網友回復:
ls_oldselect=dw_1.describe("datawindow.table.sqlselect")這句改為
if ls_oldselect<>'' or not isnull(ls_oldselect) then ls_oldselect=dw_1.describe("datawindow.table.sqlselect")
注意 ls_oldselect 宣告從區域變數改為實體變數即可
uj5u.com熱心網友回復:
上面的再修改一下 將if 中的 or 改成 and轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18134.html
標籤:DataWindow
上一篇:請教一下關于VSS的問題
下一篇:多專案的專案集人力資源考核怎么辦
