pb怎样获取数据窗口一个列值,在文本框显示?

2024-11-02 15:17:17
推荐回答(3个)
回答1:

1、得到当前鼠标所指对象所在的带区
string str_band
str_band=GetBandAtPointer() //得到当前鼠标所指对象所在的带区
str_band=left(str_band,(pos(str_band,'~t') - 1))//得到"header"、"detail"等
if str_band<>'header' then return //单击非头区,退出
2、得到鼠标指向的列对象名
str_object=GetObjectAtPointer() //得到当前鼠标所指对象名
str_object=left(str_object,(pos(str_object,'~t') - 1))
//得到列对象名(默认为列名_t为列标题)
str_column=left(str_object,(len(str_title) - 2))
//判断该名称是否为列名字
if this.describe(str_column+".band")='!' then return //非是列名,即列标题不是按正常规律起名的。
3、得到当前行、列,总行、列 //this 针对数据窗口而言
li_col = this.GetColumn()
li_ColCount = long(describe(this,"datawindow.column.count"))
ll_row = this.GetRow()
ll_RowCount = this.RowCount()
//设置当前行、列
scrolltorow(this,ll_Row)
setrow(this,ll_Row)
setcolumn(this,li_col)
this.SetFocus()
4、得到所有列标题
ll_colnum = Long(dw_1.object.datawindow.column.count)
for i = 1 to ll_colnum
//得到标题头的名字
ls_colname = dw_1.describe('#' + string(i) + ".name") + "_t"
ls_value = dw_1.describe(ls_colname + ".text")
next
5、如何用代码取得数据窗口汇总带计算列的值?
String ls_value
ls_value = dw_1.Describe("Evaluate("'compute_1',1)")
//如果是数值型,要转换。

回答2:

想实现这逐一个功能:通过查询1个数据窗口获得的值,把这个数据值赋值给另外1个文本框,由于该文本框大小有限,所以当行数超过1定以后就会没法显示,就再加了1个文本框,现在需要把未显示完的数据显示在该文本框,该如何实现?DataStore Lds_QdmxLds_Qdmx = CREATE DataStoreLds_Qdmx.DataObject = d_mz_fpdy_fymx1Lds_Qdmx.SetTransObject(sqlca)Lds_Qdmx.Retrieve(as_mzxx )FOR i = 1 TO Lds_Qdmx.RowCount()Ls_Fymc = Lds_Qdmx.Object.Fymc + / + Lds_Qdmx.Object.Fydw //费用名称ldc_fysl = Lds_Qdmx.Object.Fysl //费用数量ldc_fyje = Lds_Qdmx.Object.Fyje //费用金额ls_fymx = ls_fymx+~r~n+Mid(Ls_Fymc+ ,1,20)+ +String(ldc_fysl)+ +String(ldc_fyje)NEXTldw_fpdy.Object.t_medlist.Text = ls_fymx

回答3:

dw_name.object.col_name[row]
dw_name是数据窗口名
col_name是列名
row是行数