pb数据窗口的疑问

pb数据窗口的疑问,第1张

li_ColumnCount = dw_1ObjectDataWindowColumnCount

这个得到的不是行数数据窗口的行数是rowcount()函数得到的。

这个得到的是数据窗口的总列数,就是你的数据窗口一共有多少个字段。

一般是先得到这个列数,然后使用一个for循环,逐个使用describe函数得到每个列的名字,类型等等的来用。

dw_1是控件,就是你在窗口上增加的数据窗口控件

dw_1object:Used for the direct manipulation of objects within a DataWindow object from a script These objects could be, for example, columns or text objects

这个是PB里面对于这个的定义,表示数据窗口里面的对象。

dw_1objectdatawindow,指的是对象是数据窗口

dw_1objectdatawindowcolumn指数据窗口中的字段

dw_1objectdatawindowcolumncount指数据窗口字段的数目

这么逐层看下去就好了。

dw_1accepttext()

long ll_count

ll_count = dw_1rowCount()//rowCount()函数返回dw_1行数,返回参数为数值型

sle_1text = string(ll_count)//数值型转换为字符串型,此时sle_1的文本显示的就是行数

第二个问题没有看懂?

1、打开需要 *** 作的EXCEL表格,点击工具栏的“视图”。

2、选择“分页预览”。

3、发现分页间有一条虚线,点击虚线即可自由控制调整设定分页固定打印行数。行数是指“横向”行列数目的意思。

首先确定,代码肯定是要写在数据窗口的单击事件中。即clicked事件中,这样才会单击数据窗口时触发。

得到这一行的相应的数据,需要逐个的获取,先根据要得到的数据定义变量,变量的类型要与数据一致。

比如这一行有emp_id, emp_name, salary, dept_id四个字段,分别对应的类型是:字符型,字符型,带两位小数的数字,字符型。

那么在单击事件中:

if row <= 0 then return //如果点击的时候,没有得到行,返回,不执行。

string ls_empid, ls_empname, ls_deptid

dec ld_salary

ls_empid = thisGetItemString(row, 'emp_id')

ls_empname = thisGetItemString(row, 'emp_name')

ld_salary = thisGetItemDecimal(row, 'salary')

ls_deptid = thisGetItemString(row, 'dept_id')

//其中的this表示当前数据窗口,因为代码写在数据窗口的事件中,所以代词this就可以代表了。

GetItemString是获取字符型字段的值的函数,GetItemDecimal是获取decimal类型数字的函数。

同样也可以这么写ls_empid = thisobjectemp_id[row]

可以尝试把 timer interval 间隔时间设长一点

或者 datawindow 的 retrievestart 事件 return 设成 2 ,这个要配合你的 retrieve 参数

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 thisdescribe(str_column+"band")='!' then return //非是列名,即列标题不是按正常规律起名的。

3、得到当前行、列,总行、列 //this 针对数据窗口而言

li_col = thisGetColumn()

li_ColCount = long(describe(this,"datawindowcolumncount"))

ll_row = thisGetRow()

ll_RowCount = thisRowCount()

//设置当前行、列

scrolltorow(this,ll_Row)

setrow(this,ll_Row)

setcolumn(this,li_col)

thisSetFocus()

4、得到所有列标题

ll_colnum = Long(dw_1objectdatawindowcolumncount)

for i = 1 to ll_colnum

//得到标题头的名字

ls_colname = dw_1describe('#' + string(i) + "name") + "_t"

ls_value = dw_1describe(ls_colname + "text")

next

5、如何用代码取得数据窗口汇总带计算列的值

String ls_value

ls_value = dw_1Describe("Evaluate("'compute_1',1)")

//如果是数值型,要转换。

以上就是关于pb数据窗口的疑问全部的内容,包括:pb数据窗口的疑问、pb中如何在singlelineedit中显示数据窗体dw_1中的行数,如何使数据窗口的数据可复制至剪贴板。、pb中dw中怎么控制打印行数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9497208.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存