搜档网
当前位置:搜档网 › API实现水晶报表自定义纸张打印

API实现水晶报表自定义纸张打印

API实现水晶报表自定义纸张打印
API实现水晶报表自定义纸张打印

0.前言:

程序开发中一个重要的环节是打印,为了方便的实现各种打印功能,程序员通常使用第三方打印工具软件以减轻工作量。报表作为一种信息组织和分析的有利手段,是企业信息系统的重要组成部分,如何开发出既满足用户需求又能减少开发人员工作量的报表是开发人员普遍面临的问题。在众多报表工具中,水晶报表(CrystalReport)是历史最悠久的产品,也是业内全球用户量最多、最专业、功能最强的报表系统,它的简单、易用使得程序开发中报表的制作变得很方便。关于在水晶报表中制作报表模板的方法,并非本文的探讨范围,读者可以参考CrystalReport的帮助文件和官方网站的技术资料。

1.水晶报表的打印纸张选择

水晶报表打印纸张的选择可以在设计阶段选择,也可以在程序运

行中选择,但这两种方式对自定义大小纸张都存在问题。

1.1程序运行阶段

在设计阶段按名称选择指定打印机支持的打印纸张,如果需要自定义纸张,需要预先在系统中定义。存在问题的问题是:在客户端我们需要事先建立相同的打印页面,这样对软件的推广及使用造成了障碍;尤其严重的是在运行过程中,水晶报表不是按名称而是按页面在

系统中按ID选择打印纸张,

而此ID除系统内建页面外,为在系统中安装此页面时的顺序号,即在不同的系统环境、不同的打印驱动安装

顺序下,相同的页面名称具有的ID号是不相同的,

即使我们事先建立好打印页面,在不同的环境下,水晶报表选择的并不是在设计阶段我们指定的打印页面,我们不可能在客户端指定的环境下重新编译我们的软件。

1.2程序执行阶段

在程序运行过程中,我们可以通过设定报表的PaperSize属性选

择纸张。前文提到,报表不认名称而只认页面ID,

虽然我们可以通过名称获得自定义纸张的ID,但因为水晶报表的PaperSize是Enum类型(均为系统内建纸张类型),客户定义的纸张不在其范围内,因此也不能通过此法解决自定义纸张问题,报表将自动选择纸张进行预览且会失真。

因系统内建纸张类型ID是固定的,是否可以在设计阶段指定报表使用系统内建纸张类型,在程序运行中修改此类型的大小而达到我

们的目的呢?查阅MSDN可知,

打印页面(Form)分为三种类型,用户定义、系统内建和打印机自带,在数据类型FORM_INFO_1中分别对应标志FORM_USE、FORM_BUILTNG、FORM_PRINTER,除FORM_BUILTNG类型外,用户可以更改已定义的页面大小,也就是说,我们不可能修改系统内建页面的大小。

2.解决思路

仔细分析水晶报表PaperSize使用的Enum数据类型CRPaperSize,发现其中的crDefaultPaperSize使用打印机的打印首选项打印。问题至此迎刃而解,我们可以首先指定报表打印使用的打印机(SelectPrinter),然后增加我们需要的页面,将此页面设置为已选打印

机的默认纸张并将报表的PaperSize属性置为crDefaultPaperSize,

待报表打印完成后再恢复成打印前的状态即可,而不用管设计阶段的纸张和打印机设置。

图1程序流程示意图

3.API实现

下面列出用到的API函数,函数使用方法请读者查阅MSDN(提请大家注意的是:如果使用VB编程,APIViewer中提供的PRINTER_INFO_2类型有误,其中的pDevMode和pSecurityDescriptor应为指针而非DEVMODE、SECURITY_DESCRIPTOR):

OpenPrinter、ClosePrinter、GetPrinter、SetPrinter、EnumForms、GetForm、SetForm、AddForm、DeleteForm、DeviceCapabilities、DocumentProperties

因篇幅所限,仅列出部分源代码,如下函数完成设置打印机默认纸张。

FunctionSetDefaultForm(ByValPrinterNameAsString,FormNameAsString)AsString

DimnSizeAsLong

DimoldFormNameAsStringDimPrinterHandleAsLong

DimpdAsPRINTER_DEFAULTSDimpDevModeAsDEVMODEDimPI2AsPRINTER_INFO_2DimaPI2()AsByte

oldFormName=vbNullString

pd.DesiredAccess=PRINTER_ALL_ACCESS

IfOpenPrinter(PrinterName,PrinterHandle,pd)=0ThenExitFunction

GetPrinterPrinterHandle,2&,0&,0&,nSizeReDimaPI2(nSize-1)AsByte

GetPrinterPrinterHandle,2&,aPI2(0),nSize,nSizeCallCopyMemory(PI2,aPI2(0),Len(PI2))IfPI2.pDevModeThen

CallCopyMemory(pDevMode,ByValPI2.pDevMode,Len

(pDevMode))

Else

ClosePrinterPrinterHandleExitFunctionEndIf

WithpDevMode

oldFormName=Left(.dmFormName,InStr(1,.dmFormName,Chr

(0))-1)

.dmFormName=FormName&Chr(0).dmFields=DM_FORMNAME

.dmPaperSize=GetFormID(PrinterHandle,FormName).dmFields=.dmFieldsOrDM_PAPERSIZE

GetFormSizePrinterHandle,FormName,.dmPaperWidth,.

dmPaperLength

.dmFields=.dmFieldsOrDM_PAPERLENGTHOr

DM_PAPERWIDTH

EndWith

CopyMemoryByValPI2.pDevMode,pDevMode,Len(pDevMode)CopyMemoryaPI2(0),PI2,Len(PI2)

SetPrinterPrinterHandle,2&,aPI2(0),0&ClosePrinterPrinterHandle

SetDefaultForm=oldFormName

EndFunction(下转第63页)API实现水晶报表自定义纸张打印

赵清晨刘克

(河北软件职业技术学院河北保定071000)

【摘要】在水晶报表使用过程中,自定义纸张的打印一直困扰着程序员,甚至有人怀疑能否完成水晶报表自定义纸张的打印,有人因此而

抛弃了使用水晶报表而转而使用其他第三方打印软件。针对这个问题,本文详细阐述了在水晶报表自定义纸张打印过程中程序员遇到的问题,分析了解决思路并分步骤介绍应用API完成自定义纸张的过程和编程方法。

【关键词】程序开发;水晶报表;页面;打印首选项;API

59

BASEADDR=记录内容的第13-17位

/*从记录内容中分解出数据基地址*/

FIELDNUM=(数据基地址-1-24)/12/*MARC记录的字段数*/

FORI=1TO字段数

BEGIN

FIELD(I)=从记录内容的第(24+(I-1)*12)个字符开始取12个字符

/*从记录内容中分解出第I个字段的目次项内容*/

FIELD1(I)=目次项的第1-3个字符/*分解出第I个字段的字段名*/

FIELD2{I}=目次项的第4-7个字符

/*分解出第I个字段的字段长度*/

FIELD3(I)=目次项的第8-12个字符

/*分解出第I个字段在记录中的相对地址*/

FADDR(I)=数据基地址+起始地址+1(字段分隔符)/*求出第I个字段在记录中的实际地址*/

FCONTENT(I)=从字段的实际地址开始取(字段长度-1)个字符

/*分解出第I个字段的内容*/

分解下一个字段

END

END

UNTILL文件尾

关闭MARC文件

END

MARC数据中一个字段又包含很多子字段,我们真正要取的是子字段的内容,将子字段的内容如图书名称、作者、出版社、出版日期、价格等添加至SQLSERVER数据库中去。由于子字段标识符的ASCII值为031,因此我们可以利用这一特征从字段内容中分解出各个子字段的内容。

例如,SQLSERVER数据库中设置有“图书名称”这一字段,我们就需要从MARC数据中将图书名称提取出来。图书名称在MARC记录中是200字段(题名与责任说明项)中的一个子字段,即200a。

我们以分解200a为例,列出算法如下:

BEGIN

FORI=1TO字段数

BEGIN

IF字段名(I)=“200”

BEGIN

求字段(I)的长度

FORJ=1TO字段(I)的长度

BEGIN

读取字段中的每一个字符

IF字符为“a”

DO

读取子字段“a”的内容

UNTILL字符为子字段结束符chr(31)

END

END

分解下一个字段

END

END

我们根据SQLSERVER数据库的字段内容,将相应的子字段内容从MARC数据中提取出来存放到相应的变量中以后,则可以使用标准SQL语句将其插入SQLSERVER数据库中:

BEGIN

打开数据库

insertinto数据库values(书名,作者,出版社,出版日期,价格……)

关闭数据库

END

整个数据转换的流程图如图1所示:

图1

3.结束语

熟练掌握MARC数据的转换技术,可方便地完成MARC数据与其他格式数据之间的转换工作,除本文提到的SQLSERVER数据库以外,其他如EXCEL、文本文件以及其他类型的数据库和MARC数据的转换工作均可参照上述方法顺利完成。MARC数据转换技术的研究

有利于图书馆信息的再利用,对图书馆的资源建设工作具有重要的意义。

【参考文献】

[1]朱兰芳.用VB6分解MARC产生的问题及解决办法[J].现代图书情技术,2005(1):82~84.

[2]景民昌,任巧贤.MARC数据转换为XML格式文档的实现方法及应用[J].计算机应用,2003(12):180~181.

作者简介:任燕舞,女,1976年2月生,湖南长沙人,硕士,研究方向:数据库技术及应用。

[责任编辑:张艳芳]科

(上接第59页)

【参考文献】

[1](美)GeorgePeck著.CrystalReports9水晶报表设计与开发大全[M].北京:清华大学出版社.2004.5.

[2]张曜,郭立山等著.WindowsAPI函数实用手册[M].北京:冶金工业出版社,2006.2

[3]张立科著,WindowsAPI程序设计参考大全[M].北京:人民邮电出版社,2006.1.

[责任编辑:韩铭]

63

Crystal Report 2010水晶报表在 WINDOWS SERVER 2008使用

Crystal Report 2010水晶报表在WINDOWS SERVER 2008使用 前提條件:網站一定要調試成功,沒有任何錯誤,然後發布到Server之後,打開報表時,頁面沒有反應或是總是提示無法加載問題等問題,或顯示crystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumen tIsOpene等錯誤信息.可從以下方法來解決問題. 1.在Server安裝Crystal Report Runtime 組件,分為32位和64位,請注意 2.在windows\temp文件夾,要完全控制權限,切記,最好要重新啟動電腦 3.再建立web 應用程序

3.在第一次打開報表時,速度有點慢,然後提示安裝SAP Crystal Report Print Control 進行安裝,便可以正常預覽和打印. 在客户端使用一段时间后,没有任何反映或也没有报错的错误,就是不能预览及打印报表时,这时需要修注册表的键值:PrintJobLimit的数量,,默认值为75,须要修改为0,如下图所示 注册表路径:[HKEY_LOCAL_MACHINE\SOFTWARE\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Report Application Server\Server] ActvieX控件安装问题,错误提示信息[或是无法验证发行者等错误]如下下图所示

解决方法如下 1.客户端电脑安装.NET 3.5 或以上版本,最好也安装.NET 3.5 SP1 2.将本网站加入到受信任的站点,并将安全级别设为最低或是ActiveX控件所 有选项都启用 名无效,设定如下所示

CrystalReport操作,水晶报表操作

Crystal Report(RDC8)水晶报表在VC6环境中的调用方法(转) .NET/vcrdc8/vcrdc8.htm">https://www.sodocs.net/doc/6a7716443.html,/vcrdc8/vcrdc8.htm//源文出处 Crystal Report(RDC8)水晶报表在VC6环境中的调用方法 作者:jaesy. E Mail:jaesyinfo@https://www.sodocs.net/doc/6a7716443.html, Seagate Crystal Repo rt(水晶报表)一直是报表工具中佼佼者,其功能强大,设计灵活。在Cry stal Report 的8.0版本中,较多地融入COM思想,更加强调了RDC的概念。RDC为Repo rt Designer Component的缩写。 本文主要说明如何是VC6环境中使用RDC8,关于报表模板文件*.rpt设计及运行时属性的控制请参阅https://www.sodocs.net/doc/6a7716443.html,的其它介绍。 在Crystal Report以前的版本,主要采用CRPE api的方法,有兴趣的朋友可以参阅联机帮助。本文主要采用RDC的方法,也是现在推荐的方法。 以下以建立一个基于对话框的VC工程为例,说明实现方法,希望对大家有所帮助。 下载示例工程文件demoRDC.zip,46K(win2000 vc6) 第一步: 建立一个Crystal repo rt模板文件DemoRDC.rpt 本例为了简单起见,此报表没有关联任何数据库。 第二步: 建立一个基于对话框的VC工程,接受缺省选择,工程名DemoRDC。

第三步: 在工程中增加ActiveX Control :Crystal Repo rt Viewer Co ntrol.(如图1) 此时VC为工程增加了两个类, CCRVTrackCurso rInfo CCrystalReportViewer3 (图1) 根据需要设计程序主对话框的大小,并增加Crystal Report Viewer Control控件。ID为IDC_CRVIEWER1 并根据要求设置其属性。 然后用class wizard , 对其关联一个变量m_crv1。 第四步: 增加关于Crystal Report的COM接口对象,有两种方法,第一种方法,通过#import导入,稍微复杂。采用第二种方法,通过类型库导入。 具体方法如下:

富士通针式打印机纸张自定义方法

1:WIN-XP系统 自定义非标准纸型 1: 依次点击开始->设置->控制面板->打印机和传真 2 :在打印机界面对话框的任意空白区域点击鼠标右键,选择“服务器 属性” 3: 在“格式”页表中选择创建新格式 4: 在格式描述处输入自定义的纸张名,并输入纸张大小,建议使用英制定义(1in=2.54cm),打印连续纸时带孔侧根据孔的数目来定义,2个孔=1英寸。 5: 点击保存格式 添加纸型至打印机驱动程序 1: 依次点击开始->设置->控制面板->打印机和传真 2: 选择相应打印机驱动程序,点击鼠标右键,选择“属性” 3: 在"常规"表单里,依次选择"打印首选项"- >"高级",然后通过"纸张输出大小"下拉菜单里选择您自定义的纸型。 4: 如果您无法选择到您自定义的纸型,请重新下载更新驱动或安装相对应的其他富士通宽行打印机驱动。 2: WIN-7系统 自定义非标准纸型 1: 依次点击开始->设置->控制面板->设备和打印机 2: 选中驱动程序图标,在上方横排选择选择“打印服务器属性”,左键

点击 3: 在“表单”页中选择“创建新表单” 4: 在格式描述处输入自定义的纸张名,并输入纸张大小,建议使用英制定义(1in=2.54cm),打印连续纸时带孔侧根据孔的数目来定义,2个孔=1英寸。 5: 点击保存格式 添加纸型至打印机驱动程序 1: 依次点击开始->设置->控制面板->设备和打印机 2: 选择相应打印机驱动程序,点击鼠标右键,选择“打印机属性” 3: 在"常规"表单里,依次选择"打印首选项"- >"高级",然后通过"纸张输出大小"下拉菜单里选择您自定义的纸型。 4: 如果您无法选择到您自定义的纸型,请重新下载更新驱动或安装相对应的其他富士通宽行打印机驱动。 3:WIN-8系统 自定义非标准纸型 1:鼠标移至左下角,出现“开始”后,鼠标右击选择“控制面板”,然后在出现的界面上点击“硬件和声音”,然后再点击“设备和打印机” 2:选中驱动程序图标,在上方横排选择选择“打印服务器属性”,左键点击 3:在“格式”页表中选择“创建新纸张规格”

SAPB基本操作

SAP B1基本操作整理 【前注】 【财务】 ERP的第一个作用:收集并整理数据。 上下文帮助— (帮助——文档——上下文帮助) 基础操作3 页码: 注:缺省,即没有任何说明。 注:未清,即指后一步手续没有做。 注:如果(网络版)客户端登录速度特别慢的话,可能是服务器网卡太多,license读取数据时需要找到确定的网卡。【基础操作】 锁定屏幕:文件→锁定屏幕 导出Excel表格格式:第一行小工具(Microsoft Excel) 新建公司:选择公司(新建)——同时新建一个库。 注:本地设置:PR.china。 科目表:股份公司:自动创建科目表。 新建“过账期间”。

许可证分配:许可证管理-用P用户换用来设置其他用户信息。 注:一个许可证只能保证一个用户使用。 新建用户:【设置-常规-用户】(同一个公司,即数据库相同。) 注:从权限设置中可以看到新建的用户。 权限设置:【系统初始化-权限】 注:附加权限设置??? 复制:右键复制,第一个复制为复制到字段,第二个复制为复制整个单据。调整表头顺序:表格设置,双击表格设置的表头。(也可以任意拖放) 凭证草稿:【报表-凭证草稿报表】 关闭——可以使被引用的单据(未清变已清——不能再被引用) 取消——仅指未被引用的单据(已取消) 操作附注: 基本凭证:Ctrl+N 添加:Ctrl+Add 目标凭证:Ctrl+T 查找:Ctrl+Find 复制单据:Ctrl+D 主菜单:Ctrl+O 付款总计:Ctrl+B 过滤/排序 打印/预览 导出Excel表格。 更改标题:Ctrl+双击

【管理】 修改公司名称:【系统初始化-公司详细信息】 将新的公司名输入;在【管理-选择公司】登陆界面中刷新。 新建用户:【管理-设置-常规-用户】添加用户,输入新密码,也可以在此修改密码。(同一个库,添加用户) 即可在权限设置界面查看到。 用户在查看“单据草稿报表”时,首先要选中明确的用户,或者选择“全部”,看到相关的草稿信息。 过账期间:【系统初始化】→【过账期间】 注:期间代码和名称最好为本年份,子期间最好为“月”。 注:如果“过账期间”建成了年,若没有财务记录,可以右键删除;若有财务记录,则可以修改过账期间的日期,然后手动添加各个月份的期间。比如:代码201502,既建立了2月份的过账期间。 注:过账期间不能做上一年的期间,因此实施时应当逆推几个年份。 更改密码:【管理-设置-常规-安全性-更改密码】 系统消息设置:(主页面最下层的错误警告状态栏):【窗口-系统消息日志】。 地区设置:管理-设置-常规-地区 行业设置:业务伙伴主数据-常规页签-行业 快捷键定制:【工具-我的快捷键-定制】(注:要点击确定分配) 本币设置:【系统初始化】→【公司详细信息】(基本初始化) 货币维护:【管理】→【设置】→【财务】→【货币】 (货币舍入/ 不舍入) 注:货币一般设置为本币(公司本币)。 假期设置:【管理】→【系统初始化】→【公司详细信息】(会计数据)

HP M410d A5R纸张打印设置步骤(最新)

HP LaserJet Pro 400 M401d A5-R纸张横向进纸打印设置步骤1.打印机与样张尺寸效果展示图: HP LaserJet M401d样机展示用A5-R和A4纸张打印样张尺寸对比2.A5-R纸张放置图: A5-R纸张在纸盒1中放置图A5-R纸张在纸盒2中放置图3.设置步骤: 1)在打印界面中点击属性(本驱动程序为随机光盘标配驱动) 2)在“纸张/质量”选项中点击自定义

3)将名称设置为A5-R,把宽度设置为210.00毫米,长度设置为148.50毫米,点击保存后,点击确定并关闭当前对话框,返回到最初界面再次点击属性 4)在纸张/质量选项中,把纸张尺寸设置为A5-R,纸张来源选择纸盒1,纸张类型选择普通纸,点击确定并关闭当前对话框,返回到最初界面再次点击属性

5)再次在打印界面中点击属性,在“效果”选项中,点击下拉菜单选择文档打印在A5-R 尺寸上,把缩放以适合勾选上并点击确定 6)检查一下设置结果,选择份数点击确定后便可以进行打印 4.通用驱动测试环节:(UPD驱动程序) 版本号为:HP_upd-pcl6-x32-5.4.0.11744 (如图所示)只需在打印界面中选择通用驱动程序,点击属性后搜索要使用的打印机型号后便可进行打印,A5-R纸张的设置步骤与用随机光盘标配驱动的设置步骤相同。

注:在打印机的控制面板中不需要进行任何设置。用纸盒2打印A5-R 纸张的设置步骤与纸盒1一样,只是在纸张来源中选择纸盒2,经测试用纸盒2打印A5-R 纸张的速度略比纸盒1慢。 本文提到的A5-R 代表纸张尺寸的名字,可以任意设置。 注意:1、页面布局-纸张大小-纸张大小设置为A5横向 , 2、一定注意每步修改要点应用确定关系对话框后再改下一个设置。 3、 打印机恢复原厂设置就可以了,不用更改。

水晶报表打印模板修改

打印模板修改 1.1水晶报表软件安装 1.执行安装包下CR10_Autorun_CHSENT.exe,安装水晶报表软件 2.或者,在Crystal Reports安装目录中,双击,进入Crystal Reports 10 安装向导。

3.按照提示,点击“下一步”,并接受《许可协议》后,进入用户信息设置。输入产品密 钥号码,点击“下一步”,选择目标文件夹路径,开始安装。

4.按照提示安装完成水晶报表 5.安装完毕后,安JA V A组件,如下图。(修改BS文稿打印模版时,需进行以下操作,否 则,直接跳过此步。)

1.2 修改打印模版 在文稿软件的安装路径下,例如:C:\dayangNews\bin\rpt,找到后缀为rpt的打印模板,,双击打开,进行数据源的更新。这里以NewsClueItemPrint.rpt为例。 1.2.1 SQl数据库模板修改 1.打开模版后,见下图,在界面右侧“字段资源管理器”—“字段”页面内,右键点击“数 据库字段”,选择弹出菜单中的“设置数据源位置”。 此时,弹出如下界面。但是红框内显示的当前数据源位置信息与实际环境不同,我们要对它进行更改。

2. 见上图,双击界面下方的“创建新连接”选项,弹出如下图所示窗口,双击“OLE DB (ADO)”, 选择“OLE DB (ADO)”后,弹出如下对话框,从列表中选择“Microsoft OLE DB Provider for SQL Server”点击“下一步”;

3. 在弹出的对话框中输入服务器名。例如,服务器:192.168.10 4.3,用户名:sa,密码为空。此时,如果输入信息正确,则在数据库的下拉列表中会看到所有可用数据库信息,选择其中的dynews30,点击“下一步”至“完成”。

java与水晶报表结合

使用eclipse在jsp上显示水晶报表(转) 2008-09-10 20:23:32| 分类:Java | 标签:|举报|字号大中小订阅 我使用的开发IDE是eclipse3.2,服务器是tomcat5.5 新建一个Crystal reports web项目 在Target runtime选择apache tomcat v5.5 下一步中crystal reports java reporting component、dynamic web module、java是默认选中的,这三个是必需的,你也可添加struts,后面的设置会要求你添加struts的类库。在最后面默认加入示例的数据库和报表。 这样一个Crystal Reports web项目就建立了(上面的步骤应该是地球人都可以完成吧) 在里面有个CrystalReport1.rpt和CrystalReport_viewer.jsp 右键CrystalReport_viewer.jsp->运行方式->Run on Server,点击完成。 你应该就可以看到一个空的水晶报表了吧(为什么空的,当然啦,CrystalReport1.rpt本身是空的) 在看看sample reports文件夹里面,有4个示例的.rpt报表文件,右击其中任何一个,选中Crystal Reports-》创建查看器JSP,就会创建一个*-viewer.jsp文件。运行这个文件,你应该可以看到一个水晶报表了吧。 我想这对大部分人应该都是没有问题的,剩下的事情就是好好分析这个项目里面所有的东东了 ------------------------------------------------------------------------------------------------------------------------------------------------------- 上面什么东西是在任何项目中实现都必须的呢?为此我特意建立一个新的tomcat项目,最好建一个简单的jsp页面测试下你的tomcat项目是否可以正常运行. 通过本人的实验,在其他项目中JSP运行水晶报表的话,需要的类文件跟配置. 1. 添加一个用户库如CrystalReports Libraries,把下面的*.jar添加进去 commons-collections-3.1.jar,commons-configuration-1.2.jar, commons-lang-2.1.jar, commons-logging.jar, Concurrent.jar, CrystalCharting.jar CrystalCommon.jar CrystalContentModels.jar CrystalDatabaseConnectors.jar CrystalExporters.jar

动态生成水晶报表

这两天学习如何生成动态水晶报表,看了网上的一些资料,觉得讲得都不是很详细。今天晚上做一个小的实例,算是对这两天学习的总结吧。 先让我们来看一下现实现的步骤: 一、新建一个项目: 二、向项目中添加Crystal 报表和DataSet 数据集,报表使用专家向导,在DataSet 数据集中添加一个表,为表添加八列,都使用默认名。

三、为CrystalReport1 设置数据库字段与参数字段。 四:实现代码: using System; using System.Collections.Generic; using https://www.sodocs.net/doc/6a7716443.html,ponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.ReportSource; using CrystalDecisions.Shared; using CrystalDecisions.Windows.Forms; /**//**//**////

/// 动态生成水晶报表 ///

/// 王稳嵩 /// /// 2007-10-23 ///

namespace WindowsApplication4 ......{ public partial class Form1 : Form ......{ CrystalReport1 CrystalReport11; ParameterFields paramFields;//定义一个参数字段集对象 ParameterField paramField; //定义一个参数字段列表对象 ParameterDiscreteValue paramDiscreteValue; //定义离散值参数对象 DataSet1 ds1; SqlConnection conn = new SqlConnection("server=(local);Integrated Security = SSPI; database = Northwind"); public Form1() ......{ InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) ......{ this.cmbSqlstring.Items.Add("select orderid,customerid from orders"); this.cmbSqlstring.Items.Add("select * from Orders"); this.cmbSqlstring.Items.Add("select * from Products"); this.cmbSqlstring.Items.Add("等等"); } private void butQuery_Click(object sender, EventArgs e) ......{ if (this.cmbSqlstring.Text != "") ......{ if (this.cmbSqlstring.Text == "等等") ......{ MessageBox.Show("兄弟您可真幽默,没有这样的sql语句吧"); return; } this.dataGridView1.Columns.Clear(); try ......{

打印机设置方法

打印机的设置方法: 1、检查您的打印机。 打开桌面上“我的电脑”,打开“控制面板”,打开“打印机”,查看默认打印机是否为Epson LQ-300,注意,必须是LQ-300,而不能是LQ-300+,即使您的打印机型号为Epson LQ-300+,也应该删除后替换成LQ-300的驱动程序。对于其他型号如LQ-1500或者LQ-570等打印机,由于条件限制,开发时未做测试,请各分公司协管员自行测试。 如果在安装打印机时发生问题或者找不到驱动程序,可以联系信息技术部。 2、设置纸张。 还是在“打印机”窗口中,点菜单“文件-服务器属性”,出现如下窗口: 2 1 3 4 3、设置新格式。 点击“创建新格式”,上面的“格式描述”、下面的“度量单位”输入栏和“保存格式”按钮都变得可用。然后按下图输入信息。格式名称可以任选,纸张的宽度为24.10CM,高度为12CM。对于一张撕成三份的连续纸,高度设置为9.3CM。

2 3 4、保存格式。 通常情况下,“保存格式”按钮是可用的,只要按下它,就会生成一个新的纸张格式了。但是有时它会一直为灰色,这时也不要紧,只需按下“确定”按钮,也会创建一个新格式,只不过会退出当前窗口,只要通过菜单“文件-服务器属性”重新打开就可以了。 5、设置打印机的默认纸张。 按照下图,在打印机上点右键,出来它的个性菜单,选择最下面的“属性”。 出现打印机属性对话框,

按“打印首选项...”按钮,就出来相应对话框,由于不同打印机的这个对话框各不相同,因此这里就不抓图了。在这个对话框里面找到纸张设置的下拉列表框,选择刚才你创建的那个纸张格式即可。 6、通过以上几个步骤,我们就设置好了打印机的纸张。以后就可以通过打印机 后方的自动进纸器加入多联压感纸,连续打印了。 7、使用中还需要注意几点: ●上述纸张设置只适用于分公司交货单的打印,如果需要用打印机打印其 他内容,如Word或Excel文档时,还需要重新用步骤5把纸张设置回A4或其他合适的类型。 ●由于纸张本身误差、打印机走纸误差等外部因素的作用,在连续打印多 张之后,纸张的定位可能会出现偏差,需要手工再卷回所需位置。为了保证打印文字不压住易撕线,请不要一次打印过多交货单,建议最多每次打印10~20页,以便有机会调整纸张。 ●实际使用中不排除卡纸、色带卷动失灵、打印数据错误等情况,再次建 议每次打印的交货单数不要过多,减少因意外情况而产生浪费。

C#水晶报表的使用

C#水晶报表的使用 1)在使用自带的水晶报表时,请注册,否则只能使用30次 2)使用CrystalReportViewer进行预览 CrystalReportViewer控件允许在应用程序中查看Crystal Report。ReportSource 属性用于设置要查看哪个报表。该属性设置之后,报表显示在查看器中。报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。 (1)打开“工具箱”,并将一个CrystalReportViewer 拖到窗体上,我们命名为rptVew。 (2)通过拖放操作将Windows 窗体查看器调整到希望的大小并将其移动到所需位置。 (3)当运行应用程序时,报表将显示在查看器中。 3)创建新报表 (1)指向“添加”,单击“添加新项”。 (2)在“添加新项”对话框中,从“模板”区域选择Crystal Report,将报表命名为rptClient,单击“打开”。 (3)在Crystal Report 库中,选择下列选项之一: A.使用报表专家-> 指导您完成报表的创建过程,并将您的选择添加到Crystal Report Designer。 B.作为空白报表-> 打开Crystal Report Designer。 C.来自于现有的报表-> 创建新报表,它与指定的另一报表设计相同。 注意Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。(4)单击“确定”按钮。 如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每

VB程序打印水晶报表的方法

VB程序打印水晶报表的方法. 环境: MS SQL SERVER 2000 / VB6 / CRYSTAL REPORT8.5 步骤 1: 建立ODBC连接 2: 创建一个为Crystal Report报表文件 3: 加载Microsoft ActiveX Data Objects Library 至项目的References 中 4. 创建VB 设计(Designer) , 通过open existing file的方式把Crystal Report报表文件加载进来. 如果报表条件从画面输入需要写一些简单程序, 举例 Dim adoRs As ADODB.Recordset Private Sub Report_Initialize() SQL$ = "select * from view_XXXX where XXXX " ‘根据画面,重新获得where条件’ Set adoRs = CreateObject("adodb.recordset") adoRs.Open SQL$, "Provider=MSDASQL.1;Persist Security Info=False;Data Source=odbc_sales", adOpenKeyset, adLockBatchOptimistic

Database.SetDataSource adoRs End Sub Private Sub Report_Terminate() Set adoRs = Nothing End Sub 5: 创建VB画面(Form) ,加入Crystal Report Viewer控件 一些简单程序, 举例 Dim RptReportName As Rpt_ReportName ‘RptReportName is name of designer Private Sub Form_Load() CRViewer1.ReportSource = RptReportName CRViewer1.ViewReport End Sub

打印机纸张设置

适用范围 本文以Windows 2000和Windows 98系统为背景,举例说明了HP LaserJet 6L打印机打印自定义纸型的设置方法。惠普其他激光打印机在Windows 98、Me、2000、Xp、2003 中打印自定义纸型的设置方法也可参考本文。 注意事项 确保打印机和电脑已经开机并正常连接,能够顺利打印Windows测试页或其他A4页面文档。 建议并口线缆长度不要超过3米,不要使用延长线、共享器、加密狗或者其他的中间设备。Windows 98设置步骤如下:(请安装随机自带光盘或者从HP网站下载相应驱动) 从"开始-设置-打印机",进入LaserJet 6L打印机的驱动属性,选择"纸张"项目中的"任意大小纸张设置": 如果需要从软件中打印该纸型,例如Microsoft Office Word, 只需在"文件-页面设置"中正确设定的自定义纸型即可。 注: 如果您安装的驱动是打印机随机自带光盘或者从HP网站下载相应驱动,设置方法请参考上面Windows 98系统中的介绍。 如果您安装的驱动是Windows 2000、XP、2003 操作系统自带的HP LaserJet 6L打印机驱动。请参考下面的具体介绍。 Windows 2000设置步骤如下:(以258mm*130mm 大小的自定义纸型为例) 从系统"控制面板"进入"打印机"项目,点击左上角"文件",并选择"服务器属性": 或者直接在页面空白处用鼠标右键点击,也可弹出如图菜单; 打开"服务器属性":

选择"创建新格式",并在下图中标注的栏目中填写需要设置的纸张尺寸和名称; 保存格式,即可创建了自己定义的纸型,选择"关闭",退出"服务器属性"; 然后,请打开打印机驱动属性,即"开始-设置-打印机",右键点击打印机图标,选择"属性":选择"打印首选项-纸张/质量-高级",在纸张大小项目中,选择我们前面设置的user纸型; 如果您需要从软件中打印该纸型,例如Microsoft Office Word, 在"文件-页面设置"中正确设定的User纸型。根据您需要的打印设置,选择"横向"或"纵向",这里,我们尝试打印一个横向表格。于是选择"横向",并将纸张放置在打印机进纸盒。 对于自定义大小的纸张,我们建议"短边先进"放置。 注意:纸张放置方法:无论是横向打印还是纵向打印,在放置纸张时,都建议"短边先进",即装入介质时,应使其窄边在前且需要打印的页面朝上。调整介质导板的侧面和后面,使其与介质相符。 所有设置完成后,回到文件-打印窗口中,选择"确定",您所需要的文件就可以顺利打印了。Windows XP中如何自定义纸型 作者:啡啡【转载】个人电脑 05年09月30日 [评论7条] 在Windows 98操作系统中,打印机属性里的纸张选择里有“自定义”一项,比较直观,可以很方便的自定义打印机纸张大小;而Windows XP中“自定义”的位置是不同于Windows 98的,不熟悉的用户很难找到。下面就是在Windows XP中自定义纸型的方法。

图书管理系统的设计与实现毕业论文

学校代码: 学号: 11517 200809203252

毕业设计(论文) 题目图书馆管理系统的设计 与实现 河南工程学院毕业设计(论文)原创性声明 本人郑重声明:所呈交的论文,是本人在指导教师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。

论文作者签名: 年月

开题报告表

打印图书信息的功能主要是通过水晶报表来实现的。水晶报表是 Visual Studio 一部分, 使用Crystal Reports 水晶报表可以创建简单的报表,也可以创建复杂的、专业的报表,它 可以从任何数据 源生成所需要的报表。 四、工作的主要阶段、进度与时间安排 : :确定系统开发模式、开发工具及构建开发环境。 完成系统需求分析。 :完成总体设计,建立系统框架。 :完成系统设计详细设计。 完成论文初稿和测试系统基本功能,进行中期检查。 2011-5-16至2011-5-29 ::完成系统修改和调试。 2011-5-30至2011-6-5 ::完成论文终稿并提交完整系统软件。 2011-6-6 至2011-6-12 :准备答辩资料。 2011-6-13 至 2011-6-15 :进行预答辩。 五、 完成设计所具备的条件因素及解决的办法 (1) 硬件条件: CPU: 2.0GHz 以上。 RAM: 1GB 以上。 硬盘剩余空间:5GB 以上。 以上硬件条件用现在普通的 PC 就能实现。 (2) 软件条件: 操作系统: Windows XP Professional 或 Windows 2000 或 Windows 2003 Sevice 系统平 台。数据库: Microsft SQL server 2000 数据库系统. 服务器配置:IIS 5.1 第三方软件:VS2005 以上软件均可以从光盘安装或官方网站下载安装 六、 指导教师意见和建议 李彦同学经过认真的调研工作,通过阅读网站建设领域的相关文献,将网络技术应用于图书 管理领域,课题工作量适量,选题具有较强的实用性,同意开题。 指导教师签名: 课题类型:(1) A —工程设计;B —技术开发;C —软件工程;D —理论研究; (2)X ――真实课题;Y ――模拟课题;Z —虚拟课题 要求 (1 )、(2)均要填,如 AY BX 等。 2011-2-21 至 2011-2-27 2011-2-28 至 2011-3-6 2011-3-7 至 2011-3-13 2011-3-14 至 2011-4-3 2011-4-4 至 2011-5-15 日期:

SAP BO集成方案简介

BO/SAP集成方案简介 在BO被SAP并购以后,越来越多的SAP用户开始使用BO的报表技术。本文从技术层面介绍了BusinessObjects(BO)不同产品如何从SAP系统中获得数据。 BusinessObjects 产品线 BusinessObjects本文试图在BO产品如何连接到SAP系统上给你一个大体上的介绍。 BO产品和SAP集成,有以下方式帮助建立数据连接: 水晶报表 你需要安装SAP集成套件来激活水晶报表到SAP的数据连接。有如下不同的数据连接组件,可以从不同的SAP 数据源取得数据: ?SAP BW query数据连接/SAP BW MDX数据连接,可以连接到SAP BW。BW query数据连接只能从B W query中取得数据,而BW MDX数据连接既可以连接到BW query, 也可以连接到BW信息提供者。 ?OpenSQL数据连接可以通过OpenSQL接口连接到SAP。 ?ODS数据连接可以连接到ODS数据源。 ?InfoSet数据连接可以连接到SAP R3 InfoSet数据源。 Web Intelligence 在安装了SAP集成套件后,在Universe“创建连接”的对话框中就会多出一个“连接到SAP BW”的选项。如果选择BW为数据源,这个新建的Universe就会是一个OLAP Universe。OLAP Universe会把BW query的定义带到u niverse中,并把bw中的特性映射为universe中的维度对象,把bw中的关键值映射为universe中的度量对象。在OLAP Universe中,结构区域是空的(没有表和连接),并且在Universe中可以修改的地方并不多。更多的细节信息请参考BO官方文档Using SAP NetWeaver Business Intelligence in Universe Designer。 水晶易表 总的来说,有两种方式可以从水晶易表连接到SAP数据源:原先的间接方式和最新的直接方式。 ?间接方式:使用Live Office将水晶易表的数据源桥接至水晶报表或者webi。基本的流程为:首先使用如上提到的方法基于SAP数据源创建一个水晶报表/webi,然后将这个报表插入Live Office中,最后将这个L ive Office文档导入水晶易表,并在水晶易表中配置Live Office连接。或者你可以使用Query as a Web Service (QaaWS)。要使用QaaWS,首先基于一个基于SAP的Universe创建一个QaaWS,然后再水晶易表中配置这个QaaWS的数据连接。 ?直接方式:水晶易表2008 SP2发布了一系列的新功能,用于支持对BW数据源的直接访问。你可以在水晶易表中的“创建连接”界面中,直接连接到一个BW query数据源。除此之外,你还可以将生成的可视化文件直接发布到BW和门户上。 Business Objects Enterprise(商务智能平台) SAP集成套件支持使用SAP用户的用户名/密码直接登录BOE,并且实现BOE和SAP系统之间的单点登录。管理员将SAP的角色导入到BOE中并分配相应的权限后,SAP用户就可以直接使用他们的SAP用户名/密码登录B OE,并且不需要再次输入用户名/密码就可以查看基于SAP数据源的报表。

水晶报表完整教程:对比FineReport之用户入门

水晶报表完整教程:对比FineReport之用户入门 水晶报表(crystal report)和FineReport都是很常用的报表工具,这里对比一下它们的用户入门功能。 水晶报表用户入门如下: 新用户快速入门 下面的教程帮助您在创建第一张报表时即树立信心。请使用本联机帮助的“目录”选项卡在教程中进行浏览。 在本教程中,当创建“客户列表”报表时,会获得有关该程序的介绍。“客户列表”是最基本的商务报表,一般含有诸如客户名称、城市、地区和联系人姓名之类的信息。 现在开始学习基本概念:选择数据库,在报表中放置一些字段,然后选择要包含的特定记录。接下来学习如何: 插入和移动数据库字段。 添加标题并设置格式。 在“预览”选项卡中显示报表,以便可以精细调整报表。 使用“选择专家”以确保在报表中只包含所需的数据。 移动对象。 数据分组及排序。 插入图片。 打印报表。 开始之前 本教程假设您已经熟悉了Microsoft Windows,并使用Windows环境中常见的惯用术语和过程。如果您还不熟悉Windows,请参考Microsoft Windows文档,以获得进一步的解释。程序中所有报表节的默认字体都设置为宋体、10磅。如果更改了默认字体,或者打印机不支持这种字体,那么字段大小、字段间距和屏幕显示看上去将和教程中的不一样。 本教程是在Microsoft Windows2000平台上设计的。如果使用不同的平台,则屏幕显示可能略有不同。 如果您还不熟悉Crystal Reports环境,请查看格式化,其中介绍了如何使用网格、自由格式位置、使用准线及格式设置活动。 创建报表

1.单击“标准”工具栏上的“新建”。 Crystal Reports库出现。 2. 3. 库中包含了许多向导,用于指导您创建特定类型的报表。因为在此处是学习报表的概念,所以可以跳过向导,从头开始创建报表。在完成本教程的学习之后,可以使用向导创建一些报表,以比较哪种报表创建方法最适合您。 4.选择“Crystal Reports库”对话框上的“作为空白报表”,然后单击“确定”。 出现“数据库专家”对话框。 5. 注意:可以根据数据库文件、SQL/ODBC数据源、字典文件、查询文件和各种其他数据源创建报表。 打印“产品注册”表格,然后通过传真将该表格发送到离您最近的注册传真号码。 Crystal Decisions将通过传真向您发回一个注册号,下一次使用产品时,您就可以将此注册号输入产品。 注册传真号码

用友T打印设置方法

用友T3打印设置 第一凭证打印 用友常用的有激光打印机用的A4金额式记帐凭证KPJ101和A4金额式记凭证发票版KPJ103 针式打印机用的金额式记账凭证、金额式记账凭证发票版、帐薄通针打凭证TR101。 首先确定用的纸,然后在总账—设置—选项—帐薄一栏进行设置, 凭证、帐薄套打前面打上勾就是用套打纸打印,不打勾就可以用白纸打印,用套打纸打印纸打印表体内容,表格边框纸上自带,用白纸打印时就会打印边框和表体所有内容。 勾上套打后对应的纸型为:

1、用友专版--非连续:对应的是激光打印机的A4激光金额式记帐凭证KPJ101和A4数量外币式记帐凭证KPJ102纸型纸型 2、发票版--非连续:对应的是A4激光发票版记账凭证KPJ103和A4激光数外凭证KPJ104纸型 3、发票版—连续:对应的是针打金额记帐凭证发票版KPL103和数外式针打发票版KPL104纸型 4、用友版—连续:对应的是针打金额记账凭证L010106和针打数外凭证L010206纸型 5、TR101版—连续:对应的是针打帐薄通TR101纸型。 注:用友T3-10。8以前的版本不可以直接选择打印发票版的纸型需要安装纸型补丁。 选择好了正确的纸型后,下一步就是设置边距来调整打印位置,软件中会影响到位置参数的地方有三个,1、总账—设置—总账套打工具,

2、总账—凭证—打印凭证—设置, 3、总账—凭证—打印凭证—预览—设置。 这三处都可以看到上下左右边距四个参数,我们的原则是调整好位置后,这三个地方保持一致,首先我们打印一张凭证,然后根据打印效果看需要往哪个方向调整,如果需要字往左、左边距减小;字往右、左边距增

SAPB1基本操作整理

SAP B1 基本操作整理 前注】 【财务】 ERP的第一个作用:收集并整理数据。 上下文帮助— (帮助——文档——上下文帮助)基础操作3 页码:注:缺省, 即没有任何说明。注:未清,即指后一步手续没有做。注:如果(网 络版)客户端登录速度特别慢的话,可能是服务器网卡太多, 【基础操作】 license读取数据时需要找到确定的网卡锁定屏幕:文件→锁定屏幕 导出Excel 表格格式:第一行小工具(Microsoft Excel )新 建公司:选择公司(新建)——同时新建一个库。 注:本地设置:PR.china 。科目表:股份公司: 自动 创建科目表。新建“过账期间”。

许可证分配:许可证管理-用P用户换用来设置其他用户信息。注:一个许可证只能保证一个用户使用。 新建用户:【设置-常规-用户】(同一个公司,即数据库相同。) 注:从权限设置中可以看到新建的用户。 权限设置:【系统初始化- 权限】注:附加权限设置??? 复制:右键复制,第一个复制为复制到字段,第二个复制为复制整个单据调整表头顺序:表格设置,双击表格设置的表头。(也可以任意拖放)凭证草稿:【报表-凭证草稿报表】关闭——可以使被引用的单据(未清变已清——不能再被引用)取消——仅指未被引用的单据(已取消) 操作附注: 基本凭证:Ctrl+N 添加:Ctrl+Add 目标凭证:Ctrl+T 查找:Ctrl+Find 复制单据:Ctrl+D 主菜单:Ctrl+O 付款总计:Ctrl+B 过滤/ 排序 打印/ 预览 导出Excel 表格。 更改标题:Ctrl+ 双击

管理】 修改公司名称:【系统初始化-公司详细信息】 将新的公司名输入;在【管理-选择公司】登陆界面中刷新。 新建用户:【管理-设置-常规-用户】添加用户,输入新密码,也可以在此修改密码。(同一个库,添加用户)即可在权限设置界面查看到。 用户在查看“单据草稿报表”时,首先要选中明确的用户,或者选择“全部” ,看到相关的草稿信息。过账期间:【系统初始化】→ 【过账期间】 注:期间代码和名称最好为本年份,子期间最好为“月” 。注:如果“过账期间”建成了年,若没有财务记录,可以右键删除;若有财务记录,则可以修改过账期间的日期,然后手动添加各个月份的期间。比如:代码201502,既建立了2 月份的过账期间。 注:过账期间不能做上一年的期间,因此实施时应当逆推几个年份。 更改密码:【管理-设置-常规-安全性-更改密码】系统消息设置:(主页面最下层的错误警告状态栏):【窗口-系统消息日志】。 地区设置:管理-设置-常规-地区 行业设置:业务伙伴主数据-常规页签-行业 快捷键定制:【工具-我的快捷键-定制】(注:要点击确定分配) 本币设置:【系统初始化】→【公司详细信息】(基本初始化) 货币维护:【管理】→【设置】→【财务】→【货币】(货币舍入/ 不舍入) 注:货币一般设置为本币(公司本币)。 假期设置:【管理】→【系统初始化】→【公司详细信息】(会计数据)

C# 开发excel addin插件的小积累

C# 开发excel addin插件的小积累 好吧,进园子这么长时间了,第一次写博文,欢迎拍砖!关于excel的一些基本操作: 1、引用 开发excel插件,这两个引用是必不可少的。 using Microsoft.Office.Interop.Excel; using Microsoft.Office.Tools.Ribbon; 2、工作簿、工作表、单元格的操作 ApplicationClass application = new ApplicationClass(); //创建一个excel进程 Workbook wbook = Globals.ThisAddIn.Application.ActiveWorkbook; //当前活动workbook Worksheet worksheet = (Worksheet)wbook.ActiveSheet; //当前活动sheet Range range = (Range)worksheet.Application.Selection;//当前选中的cells

根据条件选择指定的sheet: Worksheet worksheet = wbook.Worksheets["sheet1"];//获取名为sheet1的工作表 Worksheet worksheet = wbook.Worksheets[1];//获取第一个工作表 其他的操作: workSheet.Range[workSheet.Cells[range.Row,1],workShe et.Cells[https://www.sodocs.net/doc/6a7716443.html,edRange.Rows.Count,workSheet.U sedRange.Columns.Count]].Clear();//清除当前选定行以下的所有数据 https://www.sodocs.net/doc/6a7716443.html,edRange.Rows.Count//已使用的行数https://www.sodocs.net/doc/6a7716443.html,edRange.Columns.Count//已使用的列数worksheet.Range["A1"].Font.ColorIndex = 3;//将“A1”单元格字体设为红色 worksheet.Range["A1","B2"].Interior.ColorIndex = 3; //将“A1”到“B2”范围背景设为红色 int num = wss1.Range[wss1.Cells[1, Y1]].Find("").Row; //第一次出现空单元格的行数

相关主题