转自:http://www.lsrxc.com/archives/599.html 异萝松的技术博客
获取下拉数据窗口显示列、其他列的值
[code lang=”JS”]
/*
Function:getdddwitemany 获取下拉数据窗口显示列、其他列的值
Argu1:datawindow adw_source 数据窗口
Argu2:long al_row 数据窗口中的行
Argu3:string as_column 数据窗口中的列,必需已设置为下拉数据窗口
Argu4:string as_dddwcolumn 需要获取的下拉数据窗口数据列,在下拉数据窗口中必需存在该列
Return:any
Powered By www.lsrxc.com
*/
long ll_find
any la_return
string ls_datacolumn, ls_coltype, ls_temp
datawindowchild ldwc_temp
//默认是空值
setnull(la_return)
//获取数据窗口数据列
ls_datacolumn = adw_source.describe(as_column + ".dddw.datacolumn")
//不是下拉数据窗口列
if isnull(ls_datacolumn) or ls_datacolumn = "" or ls_datacolumn = "?" or ls_datacolumn = "!" then
return la_return
end if
//列类型
ls_coltype = lower(left(adw_source.describe(as_column + ".coltype"), 5))
//获取列的值
choose case ls_coltype
case "char", "char(", "strin"
ls_temp = adw_source.getitemstring(al_row, as_column)
case "int", "integ", "long", "ulong", "dec", "decim", "doubl", "num", "numbe", "real"
ls_temp = string(adw_source.getitemnumber(al_row, as_column))
case "datet", "times"
ls_temp = string(adw_source.getitemdatetime(al_row, as_column), "YYYY-MM-DD HH:MM:SS")
case "date"
ls_temp = string(adw_source.getitemdate(al_row, as_column), "YYYY-MM-DD")
case "time"
ls_temp = string(adw_source.getitemdate(al_row, as_column), "HH:MM:SS")
case else
ls_temp = ""
end choose
ls_temp = trim(ls_temp)
//空值
if isnull(ls_temp) or ls_temp = "" then
return la_return
end if
//无法获取下拉数据窗口信息
if adw_source.getchild(as_column, ldwc_temp) <> 1 then
return la_return
end if
//下拉数据窗口数据列类型
ls_coltype = lower(left(ldwc_temp.describe(ls_datacolumn + ".coltype"), 5))
//获取下拉数据所在的行
choose case ls_coltype
case "char", "char(", "strin"
ll_find = ldwc_temp.find(ls_datacolumn + " = ‘" + ls_temp + "’", 1, ldwc_temp.rowcount())
case "int", "integ", "long", "ulong", "dec", "decim", "doubl", "num", "numbe", "real"
ll_find = ldwc_temp.find(ls_datacolumn + " = " + ls_temp, 1, ldwc_temp.rowcount())
case "datet", "times"
ll_find = ldwc_temp.find("string(" + ls_datacolumn + ", ‘YYYY-MM-DD HH:MM:SS’) = ‘" + ls_temp + "’", 1, ldwc_temp.rowcount())
case "date"
ll_find = ldwc_temp.find("string(" + ls_datacolumn + ", ‘YYYY-MM-DD’) = ‘" + ls_temp + "’", 1, ldwc_temp.rowcount())
case "time"
ll_find = ldwc_temp.find("string(" + ls_datacolumn + ", ‘HH:MM:SS’) = ‘" + ls_temp + "’", 1, ldwc_temp.rowcount())
case else
ll_find = -1
end choose
//没有找到数据
if ll_find < 1 then
return la_return
end if
//需要获取的下拉数据窗口数据列类型
ls_coltype = lower(left(ldwc_temp.describe(as_dddwcolumn + ".coltype"), 5))
//获取下拉数据
choose case ls_coltype
case "char", "char(", "strin"
la_return = ldwc_temp.getitemstring(ll_find, as_dddwcolumn)
case "int", "integ", "long", "ulong", "dec", "decim", "doubl", "num", "numbe", "real"
la_return = ldwc_temp.getitemnumber(ll_find, as_dddwcolumn)
case "datet", "times"
la_return = ldwc_temp.getitemdatetime(ll_find, as_dddwcolumn)
case "date"
la_return = ldwc_temp.getitemdate(ll_find, as_dddwcolumn)
case "time"
la_return = ldwc_temp.getitemtime(ll_find, as_dddwcolumn)
end choose
return la_return
[/code]