### PB中的Edit Source 文件解说 #### 一、概述 在PowerBuilder(PB)开发环境中,`Edit Source`功能是开发者非常重要的工具之一,主要用于编辑数据窗口对象的数据源代码。通过这个功能,用户可以直接修改与数据窗口相关的源码,实现对数据窗口属性、布局和行为的定制化调整。 #### 二、知识点详解 ##### 1. 数据窗口source介绍 - **源文件格式**:在PB中,数据窗口的源文件通常以`.srd`为扩展名。例如,在给定的部分内容中提到的`d_dbit_example.srd`即为一个数据窗口源文件。 - **版本兼容性**:数据窗口源文件的版本兼容性非常重要。如“release12”指的是该文件适用于PB的某个特定版本(即Release 12)。 ##### 2. 编辑数据窗口源文件 - **编辑方式**:可以通过编辑源文件来快速修改数据窗口的行为和外观。这包括但不限于数据检索方式、显示样式等。 - **DataWindow对象**:在PB中,数据窗口是通过DataWindow对象进行管理和操作的。 - **Processing选项**:数据窗口的Processing选项允许开发者控制数据窗口如何处理数据。常见的Processing类型包括`grid`和`freeform`。 ##### 3. Header部分 - **Header配置**:数据窗口可以包含多个Header部分,通常用于显示列标题或其它静态信息。如header[1]、header[2]等表示不同的Header部分。 - **自定义Header**:开发者可以根据需求自定义Header的数量和内容。 ##### 4. Table部分 - **Table配置**:Table部分是数据窗口的核心,负责显示数据。开发者可以通过设置Table属性来控制数据的显示方式。 - **setItem方法**:通过调用`setItem`方法,可以更新Table中特定单元格的值。 - **Object.data属性**:该属性用于获取或设置Table中的数据。 - **Table(column)**:此方法用于指定特定列的操作,如获取或设置列的数据。 - **Column属性**:Column属性用于指定Table中的列,可以设置列的标题、宽度等属性。 - **Retrieve方法**:`retrieve`方法用于从数据库检索数据并填充到Table中。 ##### 5. Column属性 - **ID属性**:Column的ID属性用于唯一标识Table中的每一列。 - **Update操作**:在某些情况下,可能需要更新Column中的数据,此时会涉及到Update操作。 ##### 6. SQL语句设置 - **SetSQLSelectModify方法**:通过调用`setsqlselectmodify`方法,可以直接修改数据窗口使用的SQL查询语句。 - **SQL查询**:数据窗口通常依赖于SQL查询来获取数据。开发者可以根据需要自定义SQL查询语句。 ##### 7. Compute属性 - **Compute表达式**:Compute属性允许开发者使用表达式来计算数据窗口中的值。 - **示例**:例如,可以通过设置Compute属性来显示某些计算结果。 ##### 8. Text属性 - **Text显示**:Text属性用于显示文本信息。可以用来显示静态文本或动态计算出的结果。 - **String(columncompute)**:使用`string(columncompute)`方法可以将计算结果转换为字符串形式显示。 ##### 9. HTMLTable方法 - **HTML输出**:通过调用`htmltable`方法,可以将数据窗口导出为HTML格式。 - **CSS样式**:可以使用CSS样式来美化导出的HTML表单。 - **Border属性**:通过设置`Border`属性可以控制导出HTML表单是否有边框。 - **CellSpacing属性**:通过设置`CellSpacing`属性可以控制表格单元格之间的间距。 - **HTMLTable标签**:使用`Grid<Table>`和`Freeform<DIV>+<SPAN>`标签可以控制导出HTML表单的布局。 - **Excel兼容性**:需要注意的是,导出的HTML表单在Excel中的显示可能会有所不同。 ##### 10. Export.XML方法 - **XML导出**:通过调用`export.xml`方法,可以将数据窗口对象导出为XML格式。 - **模板使用**:导出时需要指定模板(`usetemplate`),以便保持一致性和可读性。 ##### 11. Import.XML方法 - **XML导入**:通过调用`import.xml`方法,可以从XML文件中导入数据窗口对象。 - **模板使用**:同样地,导入时也需要指定模板(`usetemplate`)。 ##### 12. 样式设置 - **Band样式**:Band部分可以设置前景色和背景色,以实现更丰富的视觉效果。 - **样式属性**:可以通过设置各种样式属性来改变数据窗口的外观。 ##### 13. Title样式设置 - **Title颜色**:可以通过修改Title的`color`属性来改变其颜色。 - **Title文本**:可以使用`titletext`属性来修改Title文本。 - **Title样式**:通过设置`text(band=headeralignment="2"text=""border="6"color="33554432"x="146"y="8"height="72"width="933"html.valueishtml="0"name=title_tvisible="1"font.face="Tahoma"font.height="-9"font.weight="700"font.family="2"font.pitch="2"font.charset="0"background.mode="2"background.color="32501743")`这样的属性值来定制Title的样式。 ##### 14. 编辑顺序 - **编辑顺序**:在编辑数据窗口时,需要按照一定的顺序来进行操作。确定需要修改的数据窗口对象;然后,通过`edit source`进入源代码编辑模式;根据需求修改相应的属性和方法。 PB中的`Edit Source`功能提供了强大的灵活性和定制化能力,使开发者能够根据项目需求灵活调整数据窗口的表现形式和数据处理逻辑。通过对上述知识点的学习和掌握,开发者可以更加高效地利用这一工具,提升PB应用程序的开发效率和用户体验。
数据窗口源码介绍
(举例见d_dbit_example.srd,测试数据库为PB自带的EAS Demo DB V120)
1.第一行:release 12;
数据窗口所属PB的版本号,如果想把高版本的datawindow导入低版本的PB中要修改此数字;
2.datawindow()行
通常用修改processing属性,可以把你的数据窗口由grid变成freeform或其它类型
例:freeform:0 grid:1
3.header()行
可以整行复制粘贴,并命名为header[1],header[2],这样可以让数据窗口有多个header
4.table()行
这里全是定义的数据属性,是setitem,update,object.data等方法访问的根源
如果存在table()里的column,数据窗口里可以不存在任何对象,仍然可以访问数据窗口的数据
如果想创建一个空的数据窗口,可以只定义: release 12; table()
5.table(column行)
是第几个column,它的ID就是多少,其中也定义了是否可以update时和更新到数据表的字段名
6.table(retrieve行)
检索数据时使用的SQL语句,可以通过setsqlselect或modify("table.sqlselect")方法去动态修改
修改后要重新定义数据窗口的更新属性
7.column()行
id即是对应table(column行)里的行次,名称(name)可以随便命名,也可以没有,则默认为table(column行)里的name
- wjh_hero2015-10-25又学习了,pb永远学不完啊
- 吴思洋2015-09-24东西没错,但不是我想要的
- h2mnyxietjujyon2016-03-16瞬间开阔了我的思路
- debuk2016-04-04可以参考一下
- boysober2016-09-30东西不错,就是再详细些就好了
- 粉丝: 2
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于 AT89C51 的电梯控制系统嵌入式系统实验详细文档+全部资料+高分项目+源码.zip
- 本科毕设-基于嵌入式arm的人脸识别智能门禁,包括代码、电路图,具体流程详细文档+全部资料+高分项目+源码.zip
- 毕设-基于WIFI车间设备监测与控制系统的研究)的主程序,采用Qt框架编写,以嵌入式ARM Linux系统作为软件运行平台详细文档+全部资料+高分项目+源码.zip
- 基于 react + koa, 开箱即用的 Material Design 风格博客系统..详细文档+全部资料+高分项目+源码.zip
- Project2.zip
- 用c++语言实现的各种算法源代码.zip
- 基于 u8g2 的单色 OLED 菜单 UI 框架。MiaoUI使用 C 语言实现,,适用于具有小型OLED屏幕的嵌入式设备。详细文档+全部资料+高分项目+源码
- 基于ARM的嵌入式小系统,在系统挂掉之后,提取现场的dump信息详细文档+全部资料+高分项目+源码.zip
- 基于Android基于WebView的嵌入式Youtube视频播放器,可识别多种Youtube分享视频的url详细文档+全部资料+高分项目+源码.zip
- 基于ARM-Linux的嵌入式视觉移动追踪系统,并通过Android APP进行无线控制详细文档+全部资料+高分项目+源码.zip
- 基于C++11,协作式调度物联网嵌入式操作系统详细文档+全部资料+高分项目+源码.zip
- 基于ARM架构Cortex-A8的IC卡嵌入式刷卡考勤系统详细文档+全部资料+高分项目+源码.zip
- 基于cc2530的嵌入式详细文档+全部资料+高分项目+源码.zip
- 基于ChatGPT的智能音箱嵌入式课程设计详细文档+全部资料+高分项目+源码.zip
- 基于Cortex-M内核的嵌入式操作系统,针对新手设计,简单易懂详细文档+全部资料+高分项目+源码.zip
- 基于contiki与ucGUI的嵌入式微操作系统例程详细文档+全部资料+高分项目+源码.zip