pb分页打印

合集下载

pb打印

pb打印

问:请问在pb中如何设置打印分组数据窗口的每一页的行数
答:使Datawindow每页打印固定行
---- 第一步:增加一个计算列,此计算列必须放在Detail段,Expression中输入: ceiling(getrow()/20) <--这里20还可以用全局函数取代,这样可以允许用户任意设置每页打印多少行。

---- 第二步:定义分组,选择菜单Rows->Create Group...
---- 按计算列字段分组,并一定将check box-->New Page On Group Break选中。

---- 第三步:将此计算列设为不可视。

---- 另外,如果需要最后一页不足补空行。

也很简单,如下:
long ll_pagerow = 6 //每页打印行数
long ll_count, ll_row
ll_count = dw_report.retrieve(...)
//取得现有报表的总行数
ll_count = ll_pagerow - mod(ll_count, ll_pagerow)
If ll_count < ll_pagerow Then
for ll_row = 1 to ll_count
dw_print.insertrow(0) //补足空行
next
end If。

PB 中 定 制 打 印 页 长

PB 中 定 制 打 印 页 长

PB 中定制打印页长(深圳:独孤求败 2003-05-19)----在使用连续纸打印数据窗口的情况下,需要定制打印的页长,以保证打印机走纸正确,不用人工干预,实现连续打印。

在PB中须调用外部函数来自定义纸张长度,比较繁琐。

本文介绍一种直接对打印机的控制方法,简单实现对页长的设定。

一、预备知识计算机与打印机的通讯使用ASCII码进行,其中标准ASCII码包括可打印字符及非打印字符(控制码),打印机使用控制码来定制打印机。

大多数打印机指令使用控制码escape作为其指令序列的第一个序列码。

下面介绍本文用到的几个指令码序列:设置换行量(行距)1/8 英寸ASCII码 ESC 0十进制码 27 48设置以行为单位的页长ASCII码 ESC C n十进制码 27 67 n其中n 为每页行数范围(1-127)二、PB中控制码的传送及定制页长的实现----在PB中通过函数Printsend(printjobnumber,string,{zerochar})来实现向打印机发送控制码。

各参数定义如下:printjobnumber: 由printjob()函数返回的打印作业号;string: 控制字符串,使用ASCII码;zerochar: 用来替代string中的数字0;--- 由于字符串中,0终止字符串,如果string 中包含0,则需利用其他字符来表示0,参数zerochar即为此用途而设,当PB发送控制字符串给打印机时,把替代的字符zerochar转化为0。

--- 下面是具体的完成定制页长打印数据窗口的程序(定制页长为2.75英寸):long ll_jobdw_print.reset()ll_job = printopen()if ll_job = -1 thenmessagebox(gs_title,"打印机未准备好")returnend if//定制行距1/8英寸PrintSend(ll_job, CHAR(27)+CHAR(48))//设定页长22行PrintSend(ll_job, CHAR(27)+CHAR(67)+CHAR(22)) printdatawindow(ll_job,dw_print)printclose(ll_job)。

超级实用(PB中数据窗口的精确页面打印技术)

超级实用(PB中数据窗口的精确页面打印技术)

PB中数据窗口的精确页面打印技术1.引言自PowerBuild4.0问世以来,以其简洁高效的集成开发环境、强大的数据窗口技术、(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐。

据Sybase 自己的统计,目前全球有60万程序员和系统分析人员在使用他们的Powerbuilder 和S-designer,进行各种类型的应用程序开发。

最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术、ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式文件,等等。

所以,PowerBuilder 已成为C/S模式应用和基于InterNet 模式应用的主要开发工具之一。

数据窗口(DataWindow)是PowerBuilder的专利,也是PowerBuilder应用程序的核心和精华所在.PowerBuilder通过丰富的属性和函数来控制数据窗口的显示和数据操纵,但对数据窗口的打印支持似乎过于简单,只有一个Print() 窗口函数和一个PrintDataWindowPowerScript函数,并且这两个函数的功能几乎都是一样,都只简单地将选定数据窗口原样送入打印队列,本身不具备页面控制功能。

为此很多程序员抱怨这是PowerBuilder的一个缺陷,其实,PowerBuilder对打印功能的支持一样十分周到全面,只不过应用场合不同,需要用户自行加以选择。

以下是对PowerBuilder打印控制功能的详尽分析,并介绍一个实用的数据窗口页面控制程序。

2.Powerbuilder实现动态页面控制的途径PowerBuilder数据窗口有一对函数Describe 和Modify,用于动态描述和修改数据窗口结构,与其它相关函数结合可以完成动态生成数据窗口、任意改变数据窗口显示方式、修改打印属性等。

这两个函数是控制与修改数据窗口的核心函数,其使用方法如下:1)Describe获取数据窗口特定属性值语法:dwcontrol.Describe(propertylist)参数:dwcontrol数据窗口(或datastore)控件名。

PB中打印设置

PB中打印设置

PB中一个类Word打印对话框的实现发送到手机 | 收藏全屏阅读模式字体:小 | 大Powerbuilder数据窗口可用于生成各种复杂的报表,但如何让用户在使用时控制打印份数、打印范围等信息呢?我们在开发我局MIS系统时,经过对我局报表打印需求的分析,提出了如下的功能要求:1.必须能够控制象打印份数、打印(页码)范围等信息,这是基本的要求。

2.我们系统中装有多台打印机,必须能让用户根据自己需要选择使用哪台打印机,必要时能对所选打印机进行配置。

3.在设计时,对每一个报表需要什么样的纸张,要多大的边距合适,都已确定,所以使用时不需要页面的设置。

但由于不同的报表使用不同的纸张,必须在使用时给出提示,以便用有机会换上合适的纸张(或换用合适的打印机)。

根据以上要求,我们设计了如下图所示的对话框。

下面把设计过程以及用到的技术介绍一下。

首先使用窗口画板画出窗口,名字为w_printdlg,窗口类型为respons。

“打印机”组框中的“名称”文本控制的名字为st_printname,“设置”按钮的名字为cb_printsetup。

“页面范围”组框中的无线按钮组名字分别为rb_pagearrangeall,、rb_pagearrangecurrent、rb_pagearrange,单行编辑框名字为sle_pagearrange,其enable属性为false。

“副本”组框中的编辑域名字为em_copies。

“打印”旁边的下拉列表框名字为ddlb_printwhat,列表有三项,分别为所选页面、偶数页、奇数页。

“纸张”组框中的下拉列表框名字为ddlb_paper,列表内容为Poerbuiler 定义的43种纸张类型,分别用0-42的数字来表示。

“纵向”无线按钮的名字为rb_portrait,“ 横向”无线按钮的名字为rb_landscape。

表示纵向和横向的图片框分别为p_portrait和p_landscape。

PB中数据窗口打印功能的多种实现方式共5页word资料

PB中数据窗口打印功能的多种实现方式共5页word资料

PB中数据窗口打印功能的多种实现方式共5页word资料PB中数据窗口打印功能的多种实现方式随着计算机技术得到迅猛的发展,计算机管理已经在各个领域普及,社会也越来越离不开信息网络。

各种信息的管理离不开数据库的使用,powerbuilder是一款非常强大的数据库开发管理软件。

很多信息在使用时需要打印出来使用,为此Powerbuilder提供了数据窗口打印功能。

该文将对在powerbuilder中如何实现数据窗口打印功能的几种方式进行说明。

1 单一数据窗口的打印功能实现可以在程序中调用数据窗口的控件的print函数打印数据窗口中的内容,打印内容与数据窗口控件中在屏幕中显示的一致(所见即所得功能),print函数有两种语法使用格式。

1)将数据窗口控件的内容作为一个单独的打印作业把数据窗口控件的内容作为单独的打印作业发送的打印机上的语法格式:dwcontrol.print({canceldialog})其中,dwcontrol为数据窗口控件名称,canceldianlog是可选参数,是打印时是否为用户提供能够取消打印操作的对话框。

如果值是true,则提供对话框,如果值是false,则不提供对话窗口。

使用print函数打印数据窗口时,powerbuilder自动打开打印作业,然后将数据发送至打印机进行打印,打印结束后自动关闭打印作业,这个过程不需要编写然后程序代码。

2)将数据窗口控件的内容作为图形进行打印将数据窗口控件作为图形发送的打印机进行打印的语法格式:dwcontrol.print(jobname,x,y{,width,height})其中,dwcontrol是数据窗口控件名称;jobname是函数printopen 函数返回的作业号;x是数据窗口左上角在打印页上x坐标位置;y同x 作用一致,表示数据窗口左上角在打印页上y坐标位置;width指定数据窗口打印宽度;height为指定数据窗口打印高度。

Width和height参数可以省略,如果省略,打印按照数据窗口实际数据打印。

PB中打印预览的实现

PB中打印预览的实现

PB中打印预览的实现(深圳:独孤求败 2003-05-20)---- 作为目前比较流行的数据库前端开发工具,PowerBuilder显著的一个特点就是其数据窗口(DataWind ow)技术,利用此技术可生成各种复杂的报表,但在打印输出时为了打印出中国式特殊格式要求的报表时,需要编程实现,打印效果需要反复调整并打印输出,既效率低下,又浪费资源,如何让用户在打印报表前能预览报表打印效果呢?一、在原窗口内实现预览最简单并且最常用的方法是在窗口内添加命令按钮“预览”,在其clicked事件中写入如下脚本:if this.text="预览" thendw_1.object.datawindow.print.preview = "yes"this.text="取消"elsethis.text="预览"dw_1.object.datawindow.print.preview = "no"end if--- 该方法适用于打印报表的格式与数据窗口的显示格式相同。

二、在预览窗口w_preview中实现预览----在PB带的例子Code Examples中有一窗口w_preview,用它可完成数据窗口的预览,它的技术要点是:将数据窗口的语法作为参数传递给w_preview,再在w_preview窗口中用dw.create()函数生成此数据窗口,其中数据用describe()函数取得,再用imporstring()函数转入。

依据中国人的习惯,将w_preview内英文提示全部改为中文。

采用此窗口进行预览的好处是:预览的比例可随意调整,便于观察整体效果。

在Co de Examples中调用w_preview的过程非常复杂,它先调用一个自定义函数,然后在函数中调用w_previe w,下面介绍一种比较简单的调用方法并采用另一种获取预览数据的方法。

PB分组数据窗口内容选择打印

PB分组数据窗口内容选择打印

POWERBUILDER分组数据窗口内容的选择打印叶枫工作室HBSHIJIANGUO2012-9-8 前言我所在的单位是一家县级医院,我主要的工作就是维护与开发单位正在使用的一套HIS。

众所周知,现在医院HIS涉及的面相当广,几乎医院业务处理的各个环节都能管到,快相当于一个ERP了。

今天,我要探讨的问题是一个相当具体的应用-护理站患者输液单打印。

正文2011年医院护理部为提高护理工作的透明度,加强护理的管理与监督,要求开发打印患者输液单功能。

程序开发完成交付使用一段时间后,病区护士长提出一个问题:患者输液单能不能选择打印,即每次选择打印一个患者。

这个问题的提出,是有原因的。

正常情况下,长期医嘱执行成功后,一次性将所有患者输液单打印出来是没有问题的。

但由于护士对打印机不太了解,或者说根本不想去了解,导致打印机出现这样那样的小问题。

例,装纸不到位,导致卡纸,前面就白打印了,重新再打。

为了解决科室抱怨打印机性能不好,提高打印效率,节约纸张浪费,我对这一问题进行了深入的研究与分析。

首先,轮流单是分组数据窗口,内容根据数据量动态变化,打印页数可多可少;最为重要的是PB的这种数据窗口能不能从中取得分组数据。

其次,怎样取出数据?一般的数据复制技术如:rowscopy()不能满足这一要求。

要想打印单人的输液单,必须把其所有相关数据全部取出,并且保证格式不变。

针对上述要求,我采取了各种方法,也查阅了很多资料,但没有一个相当有效的手段。

经过一段时间的探索,我偶尔发现了一个函数:GetObjectAtPointer(),这个函数不简单,它能取得HEADER区的对象及行号,这就为我获取数据窗口内容打下了基础。

下面,详细介绍分组数据窗口内容的提取。

下图1-1是原始的输液单,我要做的就是从数据窗口取得单个人的输液单。

图1-1从图1-1可以看到,患者关键信息都在header区中,一但得到了病案号,我就可以取得所有数据。

因为病案号是患者的唯一标识。

PB中实现数据窗口打印预览通用方法

PB中实现数据窗口打印预览通用方法

PB中实现数据窗口打印预览通用方法我们在文字处理过程中,常常在打印前要预览,以便控制打印效果,特别在数据打印中要有选择地打印页面,更需要预览。

PB提供了程序开发过程中的数据打印预览,下面介绍在程序应用中实现打印预览通用方法。

主窗口示意图如下:打印预览窗口预览尺寸自定义30% 50% 100% 200% 标尺一、上述W_preview窗口中各控件说明:1. 命令按钮控件(CommandButton)Cb_1: 用于数据窗口翻至首页。

Cb_2: 用于数据窗口向上翻页。

Cb_3: 用于数据窗口向下翻页。

Cb_4: 用于数据窗口翻至尾页。

Cb_5: 用于关闭打印预览数据窗口。

2.复选框控件(CheckBox)Cbx_1:用于为预览数据窗口添加显示标尺。

3.掩码编辑器控件(EditMask)Em_1:用于显示和改变打印预览的相对比例。

4.成组框控件(GroupBox)Gb_1:用于显示一组控件的共同属性信息。

5.收音机按钮控件(RadioButton)Rb_1:用于用户自定义打印预览显示比例。

Rb_2:用于用户设置打印预览显示比例为30%。

Rb_3:用于用户设置打印预览显示比例为50%。

Rb_4:用于用户设置打印预览显示比例为100%。

Rb_5:用于用户设置打印预览显示比例为200%。

6.数据窗口控件(DataWindow)dw_1:用于显示打印预览结果。

二、下面讲述创建上述窗口的实现过程:1.创建一个新窗口W_preview,设置该窗口的类型(WindowType)为Response,设置窗口的标题(Title)为“打印预览窗口"。

2.在主窗口中按示意图放置各个控件,为掩码编辑器(Em_1)定义属性,在General页中定义Text为“100”,在Mask页中为Mask定义为“###”,选中Spin Control, 设置Spin Increment 为“1”,设置Spin Range的Min为“1”、Max为“200”。

PB中数据窗口打印功能的多种实现方式共5页word资料

PB中数据窗口打印功能的多种实现方式共5页word资料

PB中数据窗口打印功能的多种实现方式随着计算机技术得到迅猛的发展,计算机管理已经在各个领域普及,社会也越来越离不开信息网络。

各种信息的管理离不开数据库的使用,powerbuilder是一款非常强大的数据库开发管理软件。

很多信息在使用时需要打印出来使用,为此Powerbuilder提供了数据窗口打印功能。

该文将对在powerbuilder中如何实现数据窗口打印功能的几种方式进行说明。

1 单一数据窗口的打印功能实现可以在程序中调用数据窗口的控件的print函数打印数据窗口中的内容,打印内容与数据窗口控件中在屏幕中显示的一致(所见即所得功能),print函数有两种语法使用格式。

1)将数据窗口控件的内容作为一个单独的打印作业把数据窗口控件的内容作为单独的打印作业发送的打印机上的语法格式:dwcontrol.print({canceldialog})其中,dwcontrol为数据窗口控件名称,canceldianlog是可选参数,是打印时是否为用户提供能够取消打印操作的对话框。

如果值是true,则提供对话框,如果值是false,则不提供对话窗口。

使用print函数打印数据窗口时,powerbuilder自动打开打印作业,然后将数据发送至打印机进行打印,打印结束后自动关闭打印作业,这个过程不需要编写然后程序代码。

2)将数据窗口控件的内容作为图形进行打印将数据窗口控件作为图形发送的打印机进行打印的语法格式:dwcontrol.print(jobname,x,y{,width,height})其中,dwcontrol是数据窗口控件名称;jobname是函数printopen 函数返回的作业号;x是数据窗口左上角在打印页上x坐标位置;y同x 作用一致,表示数据窗口左上角在打印页上y坐标位置;width指定数据窗口打印宽度;height为指定数据窗口打印高度。

Width和height参数可以省略,如果省略,打印按照数据窗口实际数据打印。

PB中打印设置

PB中打印设置

PB中一个类Word打印对话框的实现发送到手机 | 收藏全屏阅读模式字体:小 | 大Powerbuilder数据窗口可用于生成各种复杂的报表,但如何让用户在使用时控制打印份数、打印范围等信息呢?我们在开发我局MIS系统时,经过对我局报表打印需求的分析,提出了如下的功能要求:1.必须能够控制象打印份数、打印(页码)范围等信息,这是基本的要求。

2.我们系统中装有多台打印机,必须能让用户根据自己需要选择使用哪台打印机,必要时能对所选打印机进行配置。

3.在设计时,对每一个报表需要什么样的纸张,要多大的边距合适,都已确定,所以使用时不需要页面的设置。

但由于不同的报表使用不同的纸张,必须在使用时给出提示,以便用有机会换上合适的纸张(或换用合适的打印机)。

根据以上要求,我们设计了如下图所示的对话框。

下面把设计过程以及用到的技术介绍一下。

首先使用窗口画板画出窗口,名字为w_printdlg,窗口类型为respons。

“打印机”组框中的“名称”文本控制的名字为st_printname,“设置”按钮的名字为cb_printsetup。

“页面范围”组框中的无线按钮组名字分别为rb_pagearrangeall,、rb_pagearrangecurrent、rb_pagearrange,单行编辑框名字为sle_pagearrange,其enable属性为false。

“副本”组框中的编辑域名字为em_copies。

“打印”旁边的下拉列表框名字为ddlb_printwhat,列表有三项,分别为所选页面、偶数页、奇数页。

“纸张”组框中的下拉列表框名字为ddlb_paper,列表内容为Poerbuiler 定义的43种纸张类型,分别用0-42的数字来表示。

“纵向”无线按钮的名字为rb_portrait,“ 横向”无线按钮的名字为rb_landscape。

表示纵向和横向的图片框分别为p_portrait和p_landscape。

基于PB的自定义纸张打印的设计与实现

基于PB的自定义纸张打印的设计与实现

在信 息技 术 应用 越 来 越 广 泛 的今 天 , 随着 企 业规 模 的不 断扩 大 , 代企 业 管理 信 息 系 统 正从 现
传统 的两 层 C S应 用 向 三 层 乃 至 Ⅳ层 的 分 布 式 /
般很 大 , 而且 打印往 往是 软件 的最 终服 务 , 以软 所
件 打 印功能 的好 坏 , 直 接影 响用 户 对 软 件 性 能 将
主要 是 使 用 数 据 窗 口 的 P n () 法 或 P n— i rt 方 i rt D t n o ( 函数 将 数 据 窗 口 的 内容 直 接 送 打 a Wid w ) a 印机 打印 , 这两 个 函数 的功能 基本相 同 , 都不具 备
提 高 , 算机 应用 范 围不断 扩大 , 印功能 的需 求 计 打
PB ,t e pa e o i e n a p o c o c so a e rn i h p rprv d sa p r a h t u tm p p rp tng,whih m e t h r cia e d f rc so a e i c e st e p a tc ln e o u tm p p r p nt nd pr vd shih p n i g q lt i ng r i a o i e g r tn uai i y. K e r : we Bu l r Da a W i d w ;c so pa e y wo ds Po r i de ; t n o u tm p r
窗 口属性 , 以充 分 利 用 这些 数 据 窗 口属性 对 数 可 据 窗 口进行 控制 , 从而 达到 满意 的打 印效果 。
1 1 数 据 窗 口属 性修 改方 法 .
( 户 自己设定 ) 自定义 纸 张 , 就 给程 序 的设 用 的 这

第十二章 PB有关打印

第十二章 PB有关打印

第十二章 PB有关打印(图)12.2 在程序中打印在程序中如何提供打印功能呢?这里有三种调用打印函数的格式可供选择。

1. 对数据窗口控制或者数据窗口可以使用这种打印格式。

DATAWINDOWNAME.Print(cancel_window)这里cancel_window 是一个布尔值,它指出是否要显示一个用户可以用来中止打印动作的窗口。

这种格式只适用于打印单个数据窗口的内容,如果要在同一个作业当中打印多个数据窗口的内容,就要使用PRINTDATAWINDOW函数。

2. 对任何对象均可使用第二种语法。

OBJECTNAME.Print(job#,x,y,{width,height})这种打印格式是直截了当的。

JOB#指出作业,X和Y指出打印作业指出的打印区。

WIDTH 和HEIGHT指出打印的长度和宽度。

如果不特别的说明长宽的值,那么就使用对象原来的大小。

3. 打印函数的第三种格式可以用来打印串值:Print(job#,{tab1,}string_value{,tab2})其中,TAB1说明打印开始之前打印光标应该移动到哪里(千分之一英寸为单位)。

什么是打印光标呢?POWER BUILDER使用打印光标来保持打印区域内依次打印最后结束处的坐标轨迹。

若没有给出TAB1,或者TAB1的值小于当前光标的X坐标,则从所在的位置开始打印。

TAB2指定的是打印之后光标应该处在的位置,如上所述,或者TAB1的值小于当前光标的X 坐标,那么光标保留在它原来的位置。

如果字符串中包括换行字符,那么最初的TAB位置只适合第一行。

12.3 打印函数POWER BUILDER提供了几十个打印函数。

下面我们介绍几个常用的函数的用法。

PrintOpenPrintOpen函数打开一个打印作业,并且分配给它一个打印作业号,在以后的程序当中我们可以使用这个打印作业号。

它可以接受一个字符串作为参数,这个字符串说明打印作业的名称。

例如:int pjobpjob = PrintOpen(one print job)PrintCancelPrintCancel函数用来删除打印的作业和假脱机文件。

PB中打印相关

PB中打印相关
String ls_driver,ls_our_driver, ls_port, ls_PBPrinter,ls_inifile
Integer li_i, li_count, li_size, li_width, li_length, li_row
//设置窗口中各控件的初始值
st_printername.text = idw_toprint.object.
datawindow.printer //当前打印机名字
em_copies.text = "1" //默认打印份数为1
if upperbound(is_list) = 1 then return false
for li_i = 1 to upperbound(is_list)
if li_i <> ii_num then
return true
end if
end if
next
end if
return true
//设置打印方向
ls_para = 1
lnv_printer.of_Printer( is_list[ii_num],103,ls_para, li_size, li_width, li_length )
return true
end if
next
return false
end if
//恢复缺省打印机,即切换会来
if as_oper = 'qs' then
lnv_printer.of_setdefault(is_list[li_i])
if isnull(ii_num) or ii_num = 0 then

pb打印问题

pb打印问题

PB中数据窗口的精确页面打印技术1.引言自PowerBuild4.0问世以来,以其简洁高效的集成开发环境、强大的数据窗口技术、(几乎)无所不能的数据库访问能力,越来越受到编程人员的青睐。

据Sybase自己的统计,目前全球有60万程序员和系统分析人员在使用他们的Powerbuilder和S-designer,进行各种类型的应用程序开发。

最新发布的PowerBuilder6.0族系列开发工具,直接支持ActiveX技术、ServerPush技术,对分布式计算模型的定义更加明确,实现更为简便,并可以利用数据窗口直接生成HTML格式文件,等等。

所以,PowerBuilder 已成为C/S模式应用和基于InterNet 模式应用的主要开发工具之一。

数据窗口(DataWindow)是PowerBuilder的专利,也是PowerBuilder应用程序的核心和精华所在.PowerBuilder 通过丰富的属性和函数来控制数据窗口的显示和数据操纵,但对数据窗口的打印支持似乎过于简单,只有一个Print() 窗口函数和一个PrintDataWindowPowerScript函数,并且这两个函数的功能几乎都是一样,都只简单地将选定数据窗口原样送入打印队列,本身不具备页面控制功能。

为此很多程序员抱怨这是PowerBuilder的一个缺陷,其实,PowerBuilder对打印功能的支持一样十分周到全面,只不过应用场合不同,需要用户自行加以选择。

以下是对PowerBuilder打印控制功能的详尽分析,并介绍一个实用的数据窗口页面控制程序。

2.Powerbuilder实现动态页面控制的途径PowerBuilder数据窗口有一对函数Describe 和Modify,用于动态描述和修改数据窗口结构,与其它相关函数结合可以完成动态生成数据窗口、任意改变数据窗口显示方式、修改打印属性等。

这两个函数是控制与修改数据窗口的核心函数,其使用方法如下:1)Describe获取数据窗口特定属性值语法:dwcontrol.Describe(propertylist)参数:dwcontrol数据窗口(或datastore)控件名。

彻底解决PB打印金融业务单据方法

彻底解决PB打印金融业务单据方法

彻底解决PB打印金融业务单据方法(深圳:独孤求败 2003-05-19)----打印业务单据、报表,历来是金融业务类应用软件开发的重点,一般可占整个工作量的三分之一左右。

目前国内的不少软件开发工具在这方面做了大量的工作,不过基本上是基于xbase数据库的产品,Client /Server方面的开发工具几乎无一例外的是国外的产品,例如PowerBuilder、Delphi、VisualBasic等等。

但是国外的产品在打印中国式报表,特别是金融类单据、报表功能十分微弱。

这是国外、国内的国情不同所致;看来这样的问题只有中国人自己来想办法解决。

本文就自己在使用PowerBuilder开发金融类业务软件过程中积累的打印金融单据、报表一些方法作些介绍,就打印中国式报表的问题做点探索。

一、使用数据窗口打印的优点及其局限----数据窗口是powerbuilder优于其他可视化开发工具的最主要的特色。

它可以使用五种数据源:Quick Select,SQLSelect,Query,External,StoredProceduce,并提供了一系列预定义的表现风格:自由格式、统计图、网格、标签、分组报告、表格、N-UP、大文本、OLE2.0、交叉表。

对于每一种风格,PowerBuild er都提供了标准的报表列(标题列,细节列,总计列,分组标题列,分组脚注列),显示格式、排序、分组和复合显示形式(如一个带有相关图表的电子表格用户界面)。

----一般来说,应用软件主要分为数据录入、数据查询、数据修改、数据打印等功能模块。

根据笔者的开发经验,数据窗口技术对于数据查询、修改类的窗口,有明显的优越性。

对于数据录入,一般的应用都要求按凭证的式样建立数据的录入窗口(或屏幕),使用PowerBuilder提供的用户自定义对象,建立仿凭证样子的数据录入窗口,并不是一件困难的事。

对于数据的打印,如果是仅仅是打印参数表或者普通的统计报表,数据窗口也能胜任。

PB中数据窗口打印功能的多种实现方式

PB中数据窗口打印功能的多种实现方式

PB中数据窗口打印功能的多种实现方式作者:袁希群来源:《电脑知识与技术》2013年第36期摘要:powerbuilder是sybase公司推出的高效而快捷的数据库集成开发环境,为设计人员提供了可视化、面向对象的、基于客户和服务器的开发环境,是一款强大的、理想的数据库开发工具。

开发出来的系统在使用过程中,无论是各种报表还是商业图形,很多时候要根据客户要求打印出来审批、阅读或用于其他用途。

该文就数据窗口的打印处理的多种实现方式进行阐述。

关键词:powerbuilder;数据窗口;打印;实现方式中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)36-8215-02随着计算机技术得到迅猛的发展,计算机管理已经在各个领域普及,社会也越来越离不开信息网络。

各种信息的管理离不开数据库的使用,powerbuilder是一款非常强大的数据库开发管理软件。

很多信息在使用时需要打印出来使用,为此Powerbuilder提供了数据窗口打印功能。

该文将对在powerbuilder中如何实现数据窗口打印功能的几种方式进行说明。

1 单一数据窗口的打印功能实现可以在程序中调用数据窗口的控件的print函数打印数据窗口中的内容,打印内容与数据窗口控件中在屏幕中显示的一致(所见即所得功能),print函数有两种语法使用格式。

1)将数据窗口控件的内容作为一个单独的打印作业把数据窗口控件的内容作为单独的打印作业发送的打印机上的语法格式:dwcontrol.print({canceldialog})其中,dwcontrol为数据窗口控件名称,canceldianlog是可选参数,是打印时是否为用户提供能够取消打印操作的对话框。

如果值是true,则提供对话框,如果值是false,则不提供对话窗口。

使用print函数打印数据窗口时,powerbuilder自动打开打印作业,然后将数据发送至打印机进行打印,打印结束后自动关闭打印作业,这个过程不需要编写然后程序代码。

pb打印pdf文件_怎样打印pdf格式文件

pb打印pdf文件_怎样打印pdf格式文件

pb打印pdf⽂件_怎样打印pdf格式⽂件
在office软件 中可以很⽅便地打印⽂件,但是其是不⽀持pdf⽂件的,所以必须要⽤⽀持打开pdf⽂件的软件来打开并且打印。

⼩编来分享⼀下怎样打印pdf格式⽂件。

怎样打印pdf格式⽂件
步骤1:⽤⼀些软件来打开pdf⽂件,可以⽤pdf官⽅软件来打开并打印。

打开reader软件,然后点击打开按钮打开⼀个你所要打印的⽂件。

步骤2:在资源管理器中找到你想打印的pdf⽂件,然后点击打开按钮加载到软件当中并且打开。

步骤3:现在我们可以看到此篇pdf⽂档已经显⽰在软件中了,直接点击软件⼯具栏上的打印按钮来直接打印,但是如果你⽤的是别的阅读软件,可能不会在⼯具栏上直接显⽰打印机,那么你就点击左上⾓的⽂件,然后⾥⾯会有⼀个打印的选项。

基本上所有的阅读类软件的打印位置都是在⽂件中。

步骤4:点击打印后可以打开打印界⾯了,有⼀个打印机的选择选项,选择⼀个打印机,然后在其下⾯选择打印的份数,还有⼀些其他的打印设置,你可以⾃定义设置,设置完成,点击打印按钮。

步骤5:这时候就可以开始打印这个pdf⽂档了,当然你也可以把这个打印⽂件保存起来,⽇后需要的时候再打印。

以上是⼩编跟⼤家分享的打印pdf格式⽂件的⼩技巧,希望以上的分享能够解决您的问题。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在PB中实现分段打印功能
张瑜
在使用Powerbuilder进行应用程序的开发过程中,可使用Powerbuilder提供的函数Print()对数据窗口进行打印,但是在实际应用中,Print()函数提供的功能远不能满足用户的需要。

本文将介绍如何在Powerbuilder中实现分段打印的技巧,从而满足应用程序特定功能的要求。

有时,我们需要把数据窗口显示的数据按照一定的格式进行分页打印,而每页显示的数据是随机的,每页又需要分别汇总,所以每页的总和也不相等,我们可以用RowsDiscard()和RowsCopy()函数与Print()函数联合使用。

例如对于某一数据窗口,我们需要按照每页打印5行,不足5行补空行,每页合计为当页总数。

这时我们首先把显示的数据窗口命名为dw_1,接着另建一个隐含的数据窗口,格式和dw_1完全相同,并命名为dw_2,最后计算需要打印几页,具体程序如下:
int n,mm
//每页打印mm行
mm = long(em_1.text)
n = int(dw_1.rowcount()/mm) + 1
//如果不足mm行,直接打印
if dw_1.rowcount() < mm then
dw_1.print()
return
end if
//用FOR 循环语句,循环n-1次:
int m = 0
for m = 0 to n - 1
dw_2.reset()
dw_2.rowsdiscard(1,dw_2.rowcount(),Primary!)
//删除dw_2中的数据
//从数据窗口的主缓冲区拷贝mm行到dw_2
dw_1.RowsCopy(m mm+1, (m+1) mm, Primary!, dw_2, 1, Primary!)
//不足mm行补空行
if dw_2.rowcount() > 0 and dw_2.rowcount() < mm then
int ii,jj
jj = dw_2.rowcount()
for ii = 1 to mm - jj
dw_2.InsertRow(0)
dw_2.ScrollToRow(dw_2.RowCount())
next
end if
//循环打印dw_2窗口
dw_2.print()
next
利用以上代码,我们就可以实现按特定的格式进行分段打印的功能了。

相关文档
最新文档