winform下制作第一张水晶报表

初学水晶报表,一头雾水,都是希望先找个简单的示例型的文章看看,本篇就非常的适合(仅适合接触水晶报表但是一个都没有写过的同仁)。

本示例环境:windows2003、vs.net2003、Sql Server2000、水晶报表为vs.net2003自带的。
示例程序为winform下读取sql server2000数据库中一表,使用水晶报表显示列表,非常简单的一个,下面就开始了。

首先建立数据库,生成表的sql语句如下:

CREATE   TABLE   [ dbo ] . [ test ]  (
 
[ id ]   [ decimal ] ( 18 0 IDENTITY  ( 1 1 NOT   NULL  ,
 
[ name ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ card ]   [ varchar ]  ( 50 ) COLLATE Chinese_PRC_CI_AS  NULL  ,
 
[ createdate ]   [ datetime ]   NULL  
ON   [ PRIMARY ]
GO

ALTER   TABLE   [ dbo ] . [ test ]   ADD  
 
CONSTRAINT   [ PK_test_1 ]   PRIMARY   KEY    CLUSTERED  
 (
  
[ id ]
 )  
ON   [ PRIMARY ]  
GO

打开vs.net2003,新建立一个C#的winform项目。
程序分3个文件,分别为:Form1.cs、DataSetTest.xsd、CrystalReportTest.rpt

Form1.cs:建立项目时已经生成;
DataSetTest.xsd:该文件为数据集文件,建立完成后在文件中点击“服务器资源管理器”,这样在左边出现了带有“数据连接”的菜单,然后试图展开下面的结点时提示需要一些连接数据库的参数,包括选择数据名称,sa用户和密码等,连接成功后展开“表”的结点,选择你建立的表,将表拖到“DataSetTest.xsd”文件中,这样会自动建立了一个表结构的数据集,然后就建立完成了,生成一下项目,如果不生成直接往下做的话在下一步的建立报表文件时就会遇到问题(可以不生成来试一下就明白了)。
CrystalReportTest.rpt:报表文件,在项目中添加CrystalReport文件,添加时会出现建立向导,首先选择“使用报表专家”,“确定”后展开“项目数据”,展开“ADO.NET数据集”,展开“datasettest”,看到了刚才建立的表“test”,双击就添加到了右边的“报表中的表”中,点“下一步”,再点“全部添加”,点“下一步”,然后点“完成”,这样文件已经建立;下面是设计报表的表样,设计的表样如下图:



这样需要建立的文件已经建立完成,下面是编写代码了。
在Form1.cs文件中添加crystalReportViewer控件,用来显示水晶报表的;再添加“生成报表”按钮,代码全部如下:

using  System;
using  System.Drawing;
using  System.Collections;
using  System.ComponentModel;
using  System.Windows.Forms;
using  System.Data;
using  System.Data.SqlClient;

namespace  WinApp
{
    
/// <summary>
    
/// Form1 的摘要说明。
    
/// </summary>

    public class Form1 : System.Windows.Forms.Form
    
{
        
private CrystalDecisions.Windows.Forms.CrystalReportViewer crystalReportViewer1;
        
private System.Windows.Forms.Button button1;
        
/// <summary>
        
/// 必需的设计器变量。
        
/// </summary>

        private System.ComponentModel.Container components = null;

        
public Form1()
        
{
            
//
            
// Windows 窗体设计器支持所必需的
            
//
            InitializeComponent();

            
//
            
// TODO: 在 InitializeComponent 调用后添加任何构造函数代码
            
//
        }


        
/// <summary>
        
/// 清理所有正在使用的资源。
        
/// </summary>

        protected override void Dispose( bool disposing )
        
{
            
if( disposing )
            
{
                
if (components != null
                
{
                    components.Dispose();
                }

            }

            
base.Dispose( disposing );
        }


        
Windows 窗体设计器生成的代码

        
/// <summary>
        
/// 应用程序的主入口点。
        
/// </summary>

        [STAThread]
        
static void Main() 
        
{
            Application.Run(
new Form1());
        }


        
private void button1_Click(object sender, System.EventArgs e)
        
{
            CrystalReportTest cr1 
= new CrystalReportTest();
        
            cr1.SetDataSource(GetDs());

            
this.crystalReportViewer1.ReportSource=cr1;
        }


        
//该函数返回DataSetTest数据集中表的数据格式的数据集合
        public DataSetTest.testDataTable GetDs()
        
{
            
//创建DataSetTest数据集中的表的对象
            DataSetTest.testDataTable ds = new WinApp.DataSetTest.testDataTable();    
            
            
string strSql = "select * from test";
            
string strConnString = "server=.;database=test;user id=sa;pwd=sa;";

            SqlConnection conn 
= new SqlConnection(strConnString);
            conn.Open();
            SqlDataAdapter da 
= new SqlDataAdapter(strSql,conn);

            da.Fill(ds);    
//填充数据集
            conn.Close();
            
return ds;
        }

    }

}


网上还有一篇李洪根写的,地址如下:
http://www.microsoft.com/china/community/Column/26.mspx
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值