工具条控件和自定义报表
2006-04-08 23:07:15 来源:WEB开发网(1) 可以在工具条上实现按钮(button),下拉框(dropdownlistbox),文本框(textbox),复选框(checkbox)等.
(2) 工具条在普通窗口,MDI框架窗口,popup窗口等都能使用.
(3) 可以重新安排工具条上按钮,文本框等的显示顺序和是否显示等.
(4) 可以设定按钮,文本框等的状态,如 enabled,visible等.
(5) 在按钮disable后可以切换图片.
(6) 可以设置或得到下拉框(dropdownlistbox),文本框(textbox),复选框(checkbox)的内容恶化状态.
(7) 使用方法非常简单,包括两个方面:
a) 创建工具条上的元素方法简单.
只需声明一个工具条的元素结构数组并赋值,再调用一个方法即可,如:
stru_toolbar tools[] //工具条的元素结构数组
tools[1].name = 'MyButton' // 元素的名称
tools[1].bitmap = 'new.bmp' // 图标,对应的disable的图标为new-disabled.bmp
tools[1].tooltip = 'This is a button' // 鼠标移动到按钮上时的提示文字
// 不是按钮时为元素的前置文字
tools[1].enabled = true // enable the button
tools[1].check = false // uncheck the button
tools[1].spacebefore = 1 // 按钮前有分割条, 值大于1时,将在按钮前留出若干空位
tools[1].tooltype = 0 // 0:button,1:dropdownlistbox,2:textbox,3:checkbox
// default is 0
tools[1].width = 10 // 为按钮和checkbox时没有影响
// 设定dropdownlistbox 和textbox 的宽度.
....
//uo_1.of_tb_addtools(tools) // 装载元素,响应当前活动窗口的事件
uo_1.of_tb_addtools(tools,true) // 装载元素,响应当前MDI框架窗口的事件
ue_1.of_tb_draw() // show
b) 处理工具条的的元素的事件(点击,输入,选择等)简单.
对于事件的定义规则如下:
按钮:对应的click事件激活窗体的自定义事件,事件名为 'ue_' + 按钮名 + '_clicked', 对于 上面的按钮为 ue_mybutton_clicked
checkbox : 和按钮相同
dropdownlistbox,textbox: 对应的事件名为 'ue_'+元素名+'_changed'
工具条功能功能实现:
(1) 创建自定义用户对象 uo_toolbuttonspliter 为个元素前的分割条
(2) 创建按钮图片的自定义对象 uo_transpaerntpicture, 使用treeview 实现图片的显示.
所有图片请放置在当前路径下的 Images 子目录中.
(3) 创建自定义对象nvo_tooltip提供提示功能主要使用API函数
(4) 创建按钮对象uo_toolbutton,并封装有关的函数和事件
创建dropdownlistbox对象uo_dropdownlistbox,并封装有关的函数和事件
创建checkbox对象uo_checkbox,并封装有关的函数和事件
创建editbox对象uo_editbox,并封装有关的函数和事件
(5) 创建工具条对象uo_toolbar进一步对各种元素提供封装,并管理各种元素
具体的使用方法和演示参见示例程序.
自定义报表功能简介
(1) 任意增加、修改、删除报表,而无须改动源程序。
(2) 自动生成功能,选择项目后快速生成表格式或自由式等常用报表。
(3) 手动设计功能,可以设计出复杂的中国式报表及套打单据。
(4) 直线、文本、表达式等对象的位置、大小、字体、颜色、内容可以任意改变。
(5) 采用动态数据窗口处理,没有调用PB之外的资源。
(6) 报表可以方便的保存,修改.
(7) 调用简便,在开发状态,只需将数据窗口作为参数调用 w_dynareport 窗口即可。
(8) 可以作为最终产品直接提供给用户, 可以挂接到其他的系统中用以生成这些系统所没有提供的报表.
(9) 配合工具条的使用,界面非常直观友好.
自定义报表设计思路
中国的报表格式太多,同一行业的每个单位的报表也各不相同,如果要使自己的软件通用化,报表可以 让用户自己修改,这样程序员的后续维护量就可大大减少,更可以提高应用软件的生命力.对于用户,自定义 报表一直是他们非常迫切的要求.
所有的功能仿照数据窗口设计器开发,制作了一个汉化的动态数据窗口的设计器。而这个设计器本身就 是用一个动态数据窗口来实现的。其中最大的难点在于制作动态的对象(直线、文本、表达式),表达式的 汉化、数据源的选取等。动态对象可以create和modify解决。表达式的汉化则需要提取字段的汉字和分解表 达式,汉字的提取可以从后台的汉字标识中获得,或者从输入和查询的数据窗口中去查找,分解表达式就需 要有很强的语法分析能力。至于数据源就有可能是前台已下载的或正输入的数据,对这种数据我们采用了共 享方式,减少对后台的操作。
具体的使用方法和演示请参见示例程序.
更多精彩
赞助商链接