将pb数据窗口保存为完整的Excel表格

在很多的情况下,我们需要将书局窗口中的数据保存为其他应用程序的格式(比如: MS Excel, Word, email 等).为此Powerbuilder提供了SaveAs函数,然而使SaveAs保存数据窗口为Execl格式时有一些缺点,就是它无法保存我们所见到的格式,一些图形、交叉报表、计算域等等都被丢弃,它仅仅保存了数据窗口buffer中的数据。为了输出交叉报表、组、和计算域等等可视的数据, PowerBuilder 6.5 (after build 444) 提供了新的函数解决这些缺陷,它是:SaveAsAscii()函数。它允许输出数据窗口的可视部分为文本格式,组、交叉报表、计算域等被保存为输出数据的一部分。下面讨论该函数:

描述:将数据窗口或数据存储中的内容保存为ASCII文本文件

适用于:数据窗口和 DataStore对象

符号:

dwcontrol.SaveAsAscii ( filename {, separatorcharacter {, quotecharacter {, lineending } } } )

其中:

dwcontrol 位数据窗口或DataStore的名字

filename :要保存的文件名;

separatorcharacter (optional) :分割各个数据的字符串,缺省为tab

quotecharacter (optional) :包围值的字符串,缺省为空;

lineending (optional) :放在每行末尾的字符串,缺省为回车 character (~r~n)

下面的例子显示将数据窗口中的数据保存到文件monthly.txt,每个数据以'|' 分割

dw_4.saveasascii("monthly.txt","|")

在数据之间使用分割符是比较好的注意,因为缺省的tab字符可能会在导入excel时出问题。在导入Excel时他会提示您,您数据中使用何种分割符。本文来自http://bianceng.cn(编程入门)

为了导入到 Excel, 只需在中Excel打开文件,您可能会看到一个wizard窗口 定义正确的分割符即可。下例显示一个用saveasascii()函数导出的文件,使用SaveAs函数时是不可能有如此结果的。

Dept Id

Manager Id 100 200 300 400 500

501 1090

703 868

902 1039 1576

1293 902 1390

1576 1191

时间: 2024-08-30 16:42:38

将pb数据窗口保存为完整的Excel表格的相关文章

pb数据窗口编程技巧十则

Pb(PowerBuilder)取得巨大成就的原因就是有Datawindow对象,DataWindow是具有功能强大和灵活多变的特点,本人用PowerBuilder开发过一段时间后,总结出一些技巧,以供广大的PB开发者借鉴使用. 一.如何创建一个报表,如下形式 Quantity Running Total 5,000 5,000 2,500 7,500 3,000 10,500 12,000 22,500 对于Running Total列,我们可使用计算列:CumulativeSum(Quant

深入了解PB数据窗口数据录入的处理机制

作者:达通兴电脑科技公司(www.study01job.com) 郭宝利 和数据窗口控件打交道都是通过编辑控件进行的.在数据窗口中录入数据.修改数据,实际上是在修改单元上的编辑控件中的内容.当编辑控件移动到另外单元上之前,要对编辑控件中的数据进行校验,如果能通过字段的校验规则,就保存到字段中.编辑控件是可以移动的,需要编辑哪个单元,编辑控件就移动到哪个单元上,接受输入或者修改. 对于熟悉Microsoft Excel的人来说,编辑控件可以看成是Excel网格中的单元格.当用户在一个单元格中输入一

PB数据窗口多表更新的实现

PowerBuilder的数据窗口对象是其特有的智能对象,其封装性好.功能强大.表现形式丰富多样,为此,许多MIS开发人员对PowerBuilder推崇备至,将其视为首选开发工具. 一般情况下,一个数据窗口只能更新一个数据库表,但在MIS开发过程中,我们经常遇到这种情况:一个数据窗口中由两个或更多个数据库表作为数据源,并需要对其进行录入或修改,如何给出多表更新的通用解决方案就成为MIS开发人员不容回避的问题.笔者在某管理信息系统的开发过程中,尝试了几种双表更新的解决方法,选出一种比较好的方案,以

pb-PB的数据窗口中怎样选中一列?

问题描述 PB的数据窗口中怎样选中一列? 我做的是一个图书馆信息管理系统,我想在数据窗口中把读者信息中的"在校"的一列都变成"毕业" 的字样,这怎么实现啊! 解决方案 用sql语句,直接指定列名就可以了. 解决方案二: [PB]-数据窗口其他PB数据窗口中多行选中程序PB 数据窗口对象

写入sql2005-vs2005中读取EXCEL表格数据

问题描述 vs2005中读取EXCEL表格数据 环境如下,vs2005,sql2005,EXCEL表格一个, 我需要通过VS2005编写一段C#代码,来从EXCEL表格中读取数据,再存入到sql2005表格中,哪位大神知道麻烦告诉下,代码写出来给我看,分数不吝啬,谢谢! 解决方案 这是以前做过的一个例子,你只看你需要的就可以了,这种方法首先要把数据库的格式设计成excel的格式 private void insertSQL_Click(object sender, EventArgs e) {

把excel表格里的数据导入sql数据库的两种方法_MsSql

本来最近在研究微信公众平台的,老大临时交我个任务,把excel表格里的数据导入sql数据库,我想这so easy嘛. 没想都在上面消磨了两天... 把情况介绍下:在数据库中有如下这样结构的表(A表) 我只取关键的及列里面还有很多数据. 有一张id和name对照的excel文件(B表)和N张结构类似的excel表(C表)(没有id那一列)              我的任务在B表中找到C表中数据对应的id后,然后将id加到C表中,最后根据id是唯一的,用C表的数据去更新A表的数据.这里主要涉及了e

把excel表格里的数据导入sql数据库的两种方法

本来最近在研究微信公众平台的,老大临时交我个任务,把excel表格里的数据导入sql数据库,我想这so easy嘛. 没想都在上面消磨了两天... 把情况介绍下:在数据库中有如下这样结构的表(A表) 我只取关键的及列里面还有很多数据. 有一张id和name对照的excel文件(B表)和N张结构类似的excel表(C表)(没有id那一列) 我的任务在B表中找到C表中数据对应的id后,然后将id加到C表中,最后根据id是唯一的,用C表的数据去更新A表的数据.这里主要涉及了excel表格和数据库表间的

深入了解Pb的数据窗口

PowerBuilder(以下简称PB)是Powersoft公司(已被Sybase收购)推出的基于客户机/服务器体系结构的强有力的开发工具,自问世以来深受开发人员的好评.Datawindow是PB中获取专利技术的控件,它对数据的处理方法相当简洁,数据窗口能处理各种显示格式.进行报表打印,对复杂的嵌套报表同样处理自如. 数据窗口的处理机制首先是根据所需的显示方式将数据源表中的域设计好,在运行时将所要的数据从数据库服务器上下载到客户机上处理,然后将更改后的数据进行提交(Commit)或回滚(Roll

为PB的freeform数据窗口列穿上彩色外套

pb中数据窗口列的边框风格只有简单几种,如果想要边框颜色是彩色的就没有办法了. 其实可以利用动态创建rectangle,更改数据窗口列的边框颜色,适用free格式(不需要穿外套的列tag值设为0). global type gf_setbordercolor from function_objectendtypeforward prototypesglobal subroutine gf_setbordercolor(datawindow adw, long al_bodercolor)end