hur.cn - 华软网

 热门搜索

如何将使用pb 开发程序时作的数据窗口过程嵌套在开发的程序应用上让用户自己做数据窗口查询数据

  作者:未知    来源:网络    更新时间:2017/12/5
如何将使用pb 开发程序时作的数据窗口过程嵌套在开发的程序应用上让用户自己做数据窗口查询数据
其主要作用是要完成用户可视化的子定义报表。
------华软网友回答------
这在论坛里有不少这样的文章,你可以找找,我也有这样的例子,发消息给我,告诉我你的邮箱,我给你个很不错的例子。嘿嘿
------华软网友回复------
你的问题其实就是“动态生成数据窗口对象”。我先给你贴个动态生成数据窗口对象的脚本,你看一下。
integer li_itemcount
integer li_i
integer li_Index
string  ls_syntax, ls_sqlselect
string  ls_Errors, ls_errmsg

//重置数据窗口
dw_1.Reset()

//如果没有列或没有列选中,则返回
li_itemcount = lb_column.TotalItems ( )
If li_itemcount <= 0 then return
IF lb_column.totalselected( ) <= 0 then return

For li_Index = 1 to li_itemcount
li_i = lb_column.State ( li_Index )
If li_i = 1 then //选中
ls_sqlselect = ls_sqlselect + "," + is_column[li_Index]//列
End if
Next

//去除最前一个“,”号
ls_sqlselect =  Right(ls_sqlselect, len(ls_sqlselect) - 1)

//动态创建数据窗口对象DataWindow
ls_sqlselect = "select " + ls_sqlselect + " from " + is_cur_table
ls_syntax = sqlca.syntaxfromsql(ls_sqlselect, "style(type=grid)", ls_errmsg)
IF Len (ls_errmsg) > 0 THEN
   MessageBox("创建失败",   "错误: " + ls_errmsg)
   RETURN
END IF

dw_1.create (ls_syntax, ls_Errors)
IF Len(ls_Errors) > 0 THEN
   MessageBox("创建失败",   "错误: " + ls_Errors)
   RETURN
END IF

//汉化标题区(Header Band)文本
For li_Index = 1 to li_itemcount
dw_1.modify(is_column[li_Index] + "_t.text = '" + is_colmnt[li_Index] + "'")
Next

//检索数据
dw_1.settransobject(sqlca);
dw_1.retrieve()
------华软网友回复------
陶清网站上有个动态报表设计器,还不错,只是要钱。不知道谁有免费类似的东东。
------华软网友回复------
你的这个例子只适合已经选好数据源并且做好关联的数据窗口,只是显示列不同而已,我要的是动态选择多表,动态建立表之间的关系,并且按照一定条件检索数据就像是我们自己做数据窗口那样
------华软网友回复------
值得探讨的问题,但是技术难度好象不低。关注
------华软网友回复------
PB自带例程有相关例子,利用PB系统表
------华软网友回复------
网上有一个免费的,好像是PB的一本书里带的,不太全,但改改应该可以用了
陶清上的是要收费,如果经济许可,也可以买啊!      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。