获取下拉数据窗口显示列、其他列的值

转自: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]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值