365bet亚洲真人Vb中使用报表控件(二)

 在VB中接纳报表控件(一)中大家曾经理解了哪些采用报表控件,前提是大家需求有一个报表存在。上边大家介绍怎样创立报表。
      
安装完报表控件之后运转报表设计器,展开文件–新建向导,选取创立数据库连接串,从数据连接属性中选拔Microsoft
OLE DB Provider for SQL Server点击下一步。
365bet亚洲真人 1
      
填写服务器名称,客户名和密码,选用服务器上的数据库,点击测量检验连接。
365bet亚洲真人 2
                               
弹出测量检验连接成功对话框。
                                             
在概念首要消息对话框中,数据库连接串会自动出现大家刚刚设置的新闻的代码;大家须求在询问SQL中输入大家建表须要的数码库表,举个例子:Select
* from DaySettle。点击测验,是还是不是连接成功。
              
点击下一步,弹出定义字段对话框,如图
             365bet亚洲真人 3
点击下一步,弹出自定义列对话框,遵照字段命名展现的标题。如图365bet亚洲真人 4
              
            
持续点击下一步,大家的表大约完成。如图365bet亚洲真人 5
             
好玩的事代码,将表保存在钦命的职位,我们就足以将大家设定的数据库表中的音信以报表的不二秘籍呈现了,如图:
                

  7) 钦点连接的新闻

此类达成一而再System.Web.Services.Protocols.SoapHttpClientProtocol
类,该类用于接纳SOAP左券访谈Web服务的代办。增多这一个RemoteWebServiceRef的构造函数,带参数url,用于今后在外边通过点名web服务的url地址让那么些类来落实代理。在这些类中达成4个艺术,分别是ApplyChanges、GetChanges、GetSchema、GetServerInfo。这多个格局是对应web服务中要调用的几个方法,也正是sync同步落成的提供程序。

var joinData=function(){   
var datas=[];   
 for(var i=0;i<FR.checkBoxes.length;i++){   
var checkBox=FR.checkBoxes[i];   
if(checkBox.getValue()===true){   
var colRow=FR.cellStr2ColumnRow(checkBox.options.location);   
colRow.col++;   
var location=FR.columnRow2CellStr(colRow);   
var value=_g().getCellValue(location,null);   
datas[datas.length]=value;   
}   
}   
return datas.join(",");   

}   
var data=joinData();   
var url="http://localhost:8075/WebReport/ReportServer?reportlet=doc/Advanced/PrintReport/SelectPrint_son.cpt"+"&ids="+data;   
window.onbeforeunload=null;   
FR.doURLPDFPrint(url);  

安装完报…

  创建 .rpt 文件:

本条,未有它的话,是不可能使用DbServerSyncProvider那么些类的。这里丰富它。

案例五:动态打字与印刷

  15) 调出Crystal Report
Viewer控件的性质窗口,选拔“DataBindings”区点击[…]

365bet亚洲真人 6

2、定义实施模板工作簿

 

 

开荒父模板,点击填报预览,选中供给打字与印刷的数量,点击工具栏上的打字与印刷开关,就能够将入选消息打字与印刷出来了,如下图:

  9) 那时你就能够在”数据库专家“窗口中来看我们选拔的数据库。

点击达成。OK同步安插已经成功,况且在windowsClient里面增多了几个援用。如图:

// java中调用报表打印方法     
             boolean a = PrintUtils.printWorkBook("GettingStarted.cpt", paraMap, true);     
             if (a == false) {     
                 System.out.println("失败啦!返回" + a);     
             } else {     
                 System.out.println("成功!返回" + a);     
             }  
// java中调用报表打印方法  
             boolean a = PrintUtils.printWorkBook("GettingStarted.cpt", paraMap, true);  
             if (a == false) {  
                 System.out.println("失败啦!返回" + a);  
             } else {  
                 System.out.println("成功!返回" + a);  
             }

 

365bet亚洲真人 7

url : ‘

  17) 此时您可知从Crystal Report Viewer
控件中看到使用部分设想数据整合的表格文件的预览。

365bet亚洲真人 8

案例三:将当前页数据入库数据入库

  实施你的顺序

365bet亚洲真人 9

3、  预览和打字与印刷

 

在WindowsClient项目中加多新项,采纳类并取名字为RemoteWebServiceRef.cs。

5、  完整代码

  13) 保存,那样大家就有了三个水晶报表文件。

分界面基本上就做的几近了。

1、  子模板

  18) 在Page_Load方法中调用DataBind方法。

修改每种方法方面的性状标志。删除原本的[System.Diagnostics.DebuggerNonUserCodeAttribute()]

var a =$(“#r-2-0″,”div.reportPane”).children().eq(9)[0].innerHTML;

  您今后就能够向来在Web页面中央银行使水晶报表内置的一对功力,如页面导航,缩放等。

365bet亚洲真人 10

案例四:将打字与印刷音信提交入库

  8) 单击”Next“,最终单击”Finish“按键。

3.在建设方案中增加新的windows
类库项目,取名叫”SyncServerProvider”。该品种作为服务器端的一块儿提供程序,以便以后的web
Service能够将数据传递到数据库中张开同步。

3、通过Ajax把值传到jsp页面

 

其后,在类公事中丰硕引用。OK没有发生错误了。

开垦设计器,展开其tomcat报表共组目录,在菜单中式点心击报表>报表WEB属性>分页预览设置,在右侧栏中,如点击增添Flash打字与印刷后事件。

  4) 右击报表中的”详细资料区”,选拔“数据库”->“添加/删除数据库…”

这里会给大家的代码创设同步的零件。由于该案例要演示N层的一同,所以这边是关键点。

365bet亚洲真人 11保存

  19) 成立并运转你的前后相继!  

365bet亚洲真人 12

案例一:java直接调用报表打字与印刷

  4) 右击报表中的”详细资料区”,选取“数据库”->“增添/删除数据库…”

在分界面包车型地铁工具栏中增加三个新的开关。给它取名字叫tsbSyncServer。如图所示:

TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), "GettingStarted.cpt");  
TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), "GettingStarted.cpt");

  Code Behind 程序设计

在该对话框中左下角点击”增加按键”,弹出”配置供脱机使用的表”对话框。

其间printWorkBook()重回值为boolean型,可经过重返值true(打字与印刷成功)和false(打字与印刷战败)来推断打字与印刷是还是不是中标。

Asp.Net中接纳水晶报表(中)

当然么做它会活动给本身生成好顾客端到Compact数据库添删改查的具备代码。

<html>   
<head>   
<script type="text/javascript" src="/WebReport/ReportServer?op=emb&resource=finereport.js"></script>   
<link rel="stylesheet" type="text/css" href="/WebReport/ReportServer?op=emb&resource=finereport.css"/>   
<script type="text/javascript">   
    function doFRPrint(){  //点击打印时触发   
        var reportURL="/WebReport/ReportServer?reportlet=report_print.cpt"; //打印模板路径,与BS查看的效果不同   
        FR.doURLFlashPrint(reportURL);   //调用FR打印方法   
    }   
</script>   
</head>   
<body>   
<div id="toolbar">   
    <button type="button" onclick=doFRPrint()>打印</button>   
</div>   
<iframe id="reportFrame" src="/WebReport/ReportServer?reportlet=report.cpt&__showtoolbar__=false" width=100% height=80%></iframe>   
</body>   
</html>  

 

365bet亚洲真人 13

2、  增添打字与印刷后事件

  5) 在弹出的”数据库专家“中,扩张”OLE
DB(ADO)“选项,此时会弹出别的贰个”OLE DB(ADO)“窗口。

7.点击上个”生成SQL脚本”对话框中的鲜明开关,稍等片刻之后,会弹出三个”数据源配置向导”.

$.ajax({

  2.拖放一个CrystalReportViewer控件至aspx页面,设置它的习性钦定我们上一步创设的.rpt文件。

例如说能够将这里的WIndows应用程序退换为WinCE的。Sync部分的代码是尚未任何退换。

package com.fr.io;       

import java.io.File;       
import java.util.HashMap;    
import com.fr.base.FRContext;         
import com.fr.base.Parameter;       
import com.fr.dav.LocalEnv;   
import com.fr.main.TemplateWorkBook;    
import com.fr.print.PrintUtils;     


public class JavaPrint {       
     public static void main(String[] args) {       
         // 定义报表运行环境,才能执行报表       
         String envPath = "D:\\FineReport\\develop\\code\\build\\package\\WebReport\\WEB-INF";       
         FRContext.setCurrentEnv(new LocalEnv(envPath));       
         try {       
             TemplateWorkBook workbook = TemplateWorkBookIO.readTemplateWorkBook(FRContext.getCurrentEnv(), "GettingStarted.cpt");       
             // 参数传值       
             Parameter[] parameters = workbook.getParameters();       
             HashMap<String, String> paraMap = new HashMap<String, String>();     
             paraMap.put(parameters[0].getName(), "华北");     

             // java中调用报表打印方法       
             boolean a = PrintUtils.printWorkBook("GettingStarted.cpt", paraMap, true);       
             if (a == false) {       
                 System.out.println("失败啦!返回" + a);       
             } else {       
                 System.out.println("成功!返回" + a);       
             }       
         } catch (Exception e) {       
             e.printStackTrace();       
         }       
     }       
 }  

  6) 在 “OLE DB (ADO)” 弹出窗口中,采用 “Microsoft OLE DB Provider for
SQL Server” 然后 “Next”

365bet亚洲真人 14

点击模板>模板web属性>填报页面设置,选取为该模板单独设置,加多三个自定义打印开关至工具栏中,并把自定义打字与印刷按键清空

  16) ”Crystal Report Viewer
数据绑定窗口”中,在右侧的“可绑定属性”中选用”ReportSource“,并精选右下角的“自定义绑定表达式”中钦赐.rpt文件路线。
 

365bet亚洲真人 15

在拓宽报表查看时,有的时候会发掘一两条主要照旧错误新闻,必要将其开展打字与印刷出来备份一下,那时就需求动态达成打字与印刷效果,勾选需打字与印刷的消息,将其打字与印刷出来。

  注意:在上边的事例中,CrystalReportViewer能够在铺排时直接调用真实的多寡,因为此时多少已经保存。在这种状态下,设计时当未有保存数据时,他是无法显得数据的。取而代那的是显得一些虚拟的数额,独有在实施时才会采纳真实的多寡。

365bet亚洲真人 16

// 参数传值     
             Parameter[] parameters = workbook.getParameters();     
             HashMap<String, String> paraMap = new HashMap<String, String>();   
             paraMap.put(parameters[0].getName(), "华北");  
// 参数传值  
             Parameter[] parameters = workbook.getParameters();  
             HashMap<String, String> paraMap = new HashMap<String, String>();
             paraMap.put(parameters[0].getName(), "华北");

  14) 回到后边的WebForm中,拖放三个Crystal Report
Viewer控件到页面中去。

这里逐项解释一下:

1、定义报表运营情况

 

365bet亚洲真人 17

新建一张记录音信表,如:在access数据库中新建一张表,命名称叫表1。其中输入多少个字段:date和tableName,类型分别为日期和文书类型。

365bet亚洲真人,  11)
以往在”字段能源浏览器“中就能够在左侧”数据库字段“区中彰显你选拔的表,以及表中的字段。

365bet亚洲真人 18

  • 数据准备

  12)
拖放供给的字段步向报表的”详细资料“区。字段老将会自行出现在”页眉“区。借使你想修改底部文字,则足以右击”页眉“区中的文字,选拔”编辑文本对象“选项并拓宽编辑。

6.在上一步点击显著后会弹出”配置数据同步对话框”

在其JavaScript中,输入js代码,目标是调用其WedReport工程下写的一个jsp的实行入库操作。

  1.先是创造rpt文件,并使用水晶报表设计接口设置某个必得的数目连接。

该对话框展现的都以数据库服务器中诺思wind数据库的全数表。这里选用你要扩充同步的多寡库表就能够了,作者那边不做全选,只做三个表的协同示例,所以这里选择Employees表。当选中标之后,左边会有打点的选拔项出现。如图所示:

2.、获取所在页单元格的值

 

365bet亚洲真人 19

打字与印刷时,临时想掌握的接头,哪些报表在哪些日子被打印的音信,并将其记录到数据库的一张记录表中,以利于查六柱预测关新闻。一般地,点击打字与印刷后就能一向触及打字与印刷事件,即点击打字与印刷正是试行打字与印刷的气象。以整个工程,在浏览器中对当中的报表预览时,点击FLASH打字与印刷后将其打字与印刷消息记录到库表中为例。

  12)
拖放须求的字段步入报表的”详细资料“区。字段宿将会自动出现在”页眉“区。借使您想修改底部文字,则能够右击”页眉“区中的文字,采纳”编辑文本对象“选项并扩充编写制定。

在此类中落到实处Microsoft.Synchronization.Data.ServerSyncProvider中的ApplyChanges、GetChanges、GetSchema、GetServerInfo
那4个措施的重写。並且在其重写的代码中调用字段remoteService的附和的那4个方法,那样就将本地的服务器同步提供程序代理与远程web服务相呼应起来了。

若需打印选项对话框,则选拔PrintUtils.printWorkBook(cptPath,
true),在那之中参数true为突显打字与印刷选项对话框,代码如下所示:

  大家将透过下边包车型地铁那些手续来经过Pull方式来施行水晶报表

在该对话框中”数据库连接”选项组中的”服务器连接”选拔”新建”。弹出”加多连接”对话框这里开创好到数据库的连日。本案例中的数据是
SQL Server Express 版本,服务器名略有例外。

3、  获取报表参数并设置值

  2) 在”Crystal Report
库”中挑选”作为空白报表“单选按键,最终单击“分明“。  

365bet亚洲真人 20

if(!FR.checkBoxes){   
FR.checkBoxes=new Array();   
}   
var len=FR.checkBoxes.length;   
FR.checkBoxes[len]=this;

  创建 .rpt 文件:

365bet亚洲真人 21

365bet亚洲真人 22

  大家将经过上面包车型客车这几个步骤来因此Pull格局来奉行水晶报表

纵然本案例是采取windows的应用程序,不过抛开分界面不谈,那么那一个案例是能够选择于任何的UI地方的。

模板多张页面,如一些了的账簿模板,每便纸打印部分页面,每一次打字与印刷后愿意触发事件,在数据库中对于地方记录本页面临应的账簿已经打字与印刷过了。每张页面在固定地方有本张账簿的号子,对于到数据库中有一个记下是或不是早已打字与印刷的笔录字段。

 

365bet亚洲真人 23

上述所示的进度的能够由此一体化代码来编排实行打字与印刷,如下所示:

发表评论

电子邮件地址不会被公开。 必填项已用*标注