### 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币余额
我的收藏
我的下载
下载帮助


最新资源
- DeepSeek1小时快速入门.pdf
- 小白7天精通 DeepSeek 实操手册.pdf
- 动态加载DLL控制软件框架:C#与Halcon开发,支持运动控制及相机采图,可灵活扩展适配多种控制器与相机品牌,动态加载DLL控制软件框架:C#与Halcon开发,支持运动控制及相机采图,可灵活扩展适
- Matlab实现机器人的开环与闭环控制-机器人移动任务及数据分析(实现控制机器人需求含详细代码及解释)
- 10天精通 DeepSeek 含40案例.pdf
- AI工具下载方式最终.docx
- 清华大学:普通人如何抓住DeepSeek红利(63页)
- 使用 Cocos2d iPhone 的基于像素的可破坏地面 基于 iOS 游戏 Micro Miners 中使用的引擎.zip
- 模拟电子领域乘法DAC的R-2R架构及在波形发生应用中的优化设计与参数选择
- 4-虎牙-低代码测试引擎与造数平台的实践与探索-王玺.pdf
- tdms插件安装包-可直接安装
- 基于 canvas 的 Scratchcard 库.zip
- 表贴式永磁同步电机非线性磁链观测器的无感仿真技术:高精度启动与运转,零感控制算法展现卓越性能,表贴式永磁同步电机非线性磁链观测器的无感仿真技术:高精度启动与角度收敛,仿真参数适用于真实电机控制器,表贴
- 汽车自适应前照明系统(AFS)参考设计方案及其应用
- FactoryIO工厂流水线仿真程序:基于TIA Portal V15与FactoryIO 2.4.0的入门教程,FactoryIO工厂流水线仿真程序:入门指南与源码解析(使用TIA Portal V
- 激光雷达YDLIDAR X2 SDK安装与使用指南:构建高性能环境感知解决方案


