今天使用了tab控件,发现把其它控件放到tab里面的页,窗体是不能直接通过控件的名字读写到数据的。
比如说:我放了一个mle_1到tab的第一页。
那么在window中读取mle_1.text就如这样:
tabpage_1 t
t=tab_1.control[1]
messagebox("",t.mle_1.text)
如果我的tab中还有tab,就相当不方便了。觉得PB在这里处理很怪异,不象DELPHI可以直接存取,大家有没有更简单一些的方法来读写这些tab里面的控件呢?
------解决方案--------------------
tab_1.tabpage_1.mle_1.text
------解决方案--------------------
------解决方案--------------------
在实例变量中,定义控件型的数组,接收各个tabpage中的相关控件。
------解决方案--------------------
顶楼上,用实例变量是个好办法,如tab中的几个数据窗口:
实例变量:datawindow idw_dw
在tab的selectionchanged事件:
choose case newindex
case 1
idw_dw = tab_1.tabpage_1.dw_1
case 2
idw_dw = tab_1.tabpage_2.dw_2
end choose
idw_dw.retrieve()
...
------解决方案--------------------
习惯就好,你不要想要PB适应你,你要去适应它!
------解决方案--------------------
对于经常需要使用的控件,定义实例变量,如:
datawindow idw_1
idw_1=tab_1.tabpage_1.dw_1
这样就可以直接 idw_1.setitem(row,'file','aa')
------解决方案--------------------
ist_report_message = message.powerObjectParm
this.title = ist_report_message.title
tab_report.tabpage_report.dw_1.setTransObject(sqlca)
tab_report.tabpage_report.dw_1.retrieve(gl_operatorID,ist_report_message.reportType,ist_report_message.datetimeFrom,ist_report_message.datetimeTo)
tab_report.tabpage_item.dw_2.setTransObject(sqlca)
tab_report.tabpage_item.dw_2.retrieve(gl_operatorID,ist_report_message.reportType,ist_report_message.datetimeFrom,ist_report_message.datetimeTo)
//messagebox('',tab_report.tabpage_report.dw_1.getItemString(1,'compute_12'))
long r_areaid
select id into :r_areaid from lt_area where isLocal = 1 and areaName like '%黔西南%';
if r_areaid > 0 then
tab_report.tabpage_vehiclemanagement.dw_vehiclemanagement.dataObject = 'r_t_charge_vehiclemanagementbilllist_qxn'
tab_report.tabpage_extra.dw_extra.dataObject = 'r_t_charge_extrabilllist_qxn'
end if
------解决方案--------------------
tab_1.tabpage_1.mle_1.text
------解决方案--------------------
因为tab是一个容器,里面的控件是属于tab的,而不是窗口的,所以前面要加限定符访问符啊。pb就是这样来管理的,如果要方便,在写代码的时候可以用pb开发环境提供的功能让pb把控件的全名给你放到代码里。
------解决方案--------------------
用实例变量是个好办法