在很多的情况下,我们需要将书局窗口中的数据保存为其他应用程序的格式(比如: 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时他会提示您,您数据中使用何种分割符。
为了导入到
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
下例显示SaveAsAscii保存数据窗口的完整的 groupings, headers, and footers.并且还有累计行:
Employee ID" Last Name Department 100 1090 Smith 582
Samuels 529 Sullivan 479 Siperstein 266 Gowda 604 Wang 453
Rabkin 445 Lull 316 Pastor 1250 Diaz 102 Whitney 1157 Soo
247 Driscoll 160 Breault 501 Scott 958 Sisson 243 Shishov
862 Sheffield 105 Cobb 249 Guevara 839 Marshall 278
Melkisetian 22 Employees in Department 100 Department 500 191
Bertrand 1013 Barker 921 Crowley 868 Kuo 1658 Lynch 1615
Romero 750 Braun 1570 Rebeiro 703 Martinez 9 Employees in
Department 500 Total Employees
>> 75
另外:如果要在excel中空出某些格,只需在设计dw时在字段间增加空的文本即可。
使用SaveAsAscii()函数不仅用于
Excel,因为它将数据保存为文本格式,所以它和任何其他的程序交换数据都变得非常容易。
没有相关教程
|