How to use AttachDbFilename binding data in CrystalReport


 

สิ่งที่จำเป็น (Prerequisites)

  • Microsoft SQL Server 2005 Express
  • Crystal Report Bsic for Visaul Studio 2008
  • Microsoft Visual Studio 2008 Professionan Edition

 

Download source:
http://cid-7d608959d854cb28.skydrive.live.com/embedrowdetail.aspx/SourcesCode/WinAppl|_SQLExpress|_CrystalReport|_27092008.zip

หลายท่านคงเกิดคำถามเล็กๆ ขึ้นในใจว่า หากเราทำพัฒนาแอพพลิเคชันที่ใช้งานข้อมูลบน SQL Express แล้วจะมีวิธีการ Deploy อย่างไร?…

[Setup and Deployment SQL EXPRESS] และถ้ามีการใช้งาน Crystal Report ด้วยละจะผูกข้อมูลอย่างไร ?…จะผูกข้อมูลผ่าน odbc ใหม ทำได้ครับ แต่คงยังไม่ดีพอ…

เนื่องจากว่าเราแนบไฟล์ฐานข้อมูลไปกับแอพของเรา หากว่พาธเปลี่ยนเราต้องไปแก้ไข odbc ใหม่ ดูแล้วไม่โปร. เราจะไปใช้วิธีที่ดูแล้วรู้สึกมีความภูมิใจเล็กๆ ว่าน่าจะโปรกว่าวิธีแรก…

เราจะไปผูกข้อมูลให้ Crystal Report ผ่าน DataSet กันครับ ไปดูกันเลย …

เป้าประสงค์ของเราเป็นดังรูปครับ ใส่เงื่อนไขรายงานให้มันนิดหน่อย ผ่าน Query string

0

 

สร้างโปรเจ็กต์

1

ในตังอย่างนี้จะใช้ตัวอย่างฐานข้อมูล Northwind ให้ทำการ Detach ไปก่อน เนื่องจากเคย Regis ไป เพพื่อให้เราสามารถ Copy ไปวาง(AttachDbFilename) ในโปรเจ็ดของเราได้ ตามขั้นตอนรูปที่ 1 – 7

2 

3 4

เลือกไฟล์ฐานข้อมูล

5

Data Source config ให้เลือกทุก Table ขั้นตอนนี้ระบบจะ gen DataSet ให้ครับ เราจะเอาไปใช้ในการออกแบบรายงาน

6

 

Attach Database เข้ามาในโปรเจ็กต์เรียบร้อย พร้อม Auto gen DataSet ให้เราเรียบร้อย

7

 

สร้างรายงาน ด้วย Crystal Report

8 9

 

เลือก Obeject ตารางที่ต้องการออกรายงาน ตัวอย่างนี้ขอใช้ Object ตารางสินค้า

10

 

เลือกฟิลด์ที่ต้องการ

11 12

 

การผูกข้อมูลผ่าน dataSet เป็นอันเรียบร้อย

13

 

ทดสอบข้อมูล

14 15

 

ออกแบบหน้าจอการดึงรายงานไปใช้งาน

16

 

Connection String ที่ระบบสร้างให้ในขั้นตอนที่เราแนบไฟล์ Database เข้าไปในโปรเจ็กต์ของเรา {มิได้สร้างด้วยมือเราเอง}

17

 

โค้ดดิ้ง:


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Data.SqlClient;
using System.Configuration;

namespace WinAppl_SQLExpress_CrystalReport
{
   
public partial class Form1 : Form
   
{
       
string strConn = ConfigurationManager.ConnectionStrings["WinAppl_SQLExpress_CrystalReport.Properties.Settings.NORTHWNDConnectionString"].ConnectionString;
       
public Form1()
       
{
           
InitializeComponent();
       
}

        private void brSearch_Click(object sender, EventArgs e)
       
{
           
SqlConnection Conn = new SqlConnection(strConn);
           
if (Conn.State == ConnectionState.Closed)
               
Conn.Open();

            DataTable tmpTable = new DataTable();

            string sql = "SELECT * FROM Products where ProductID between " + textBox1.Text.Trim() + " and " + textBox2.Text.Trim() + "";
           
SqlCommand com = new SqlCommand(sql, Conn);
           
SqlDataReader dr = com.ExecuteReader();
           
if (dr.HasRows)
           
{
               
tmpTable.Load(dr);
           
}
           
dr.Close();

            CrystalReport1 rpt = new CrystalReport1();
           
rpt.SetDataSource(tmpTable);
           
crystalReportViewer1.ReportSource = rpt;

        }
   
}
}

 

ทดสอบ

18

 

เมื่อเราต้องการนำโปรแกรมไปใช้งาน เพียงเข้าไป Copy ไฟล์ในโฟล์เดอร์ BinDebug ไปวางบนเครื่องที่มีทรัพยากรครบถ้วน กล่าวคือมี .Net frmawork, Crystal Report Bsic for Visaul Studio 2008 c]t,uMicrosoft SQL Server 2005 Express  โปรแกรมของเราก็สามารถทำงานได้ทันที แต่ถ้ายังเป็นเครื่องที่ยังไม่พร้อม สามารถทำการ Build package เพื่อทำไฟล์ Setup ไปติดตั้งพร้อมทรัพยากรที่จำเป็นที่โปรแกรมของเรามีการเรียกใช้งานอยู่

19

 

Setup and Deployment:

สร้างโปรเจ็กต์ใหม่เพิ่มเข้ามา

20  21

22

 

เพิ่มทรัพยากรที่จำเป็น

23

เพิ่มโปรแกรมของเราเข้าไป

26 27

 

ปรับพรอเพอร์ตี้ ไฟล์ Setup

23_1

 

สร้าง Shortcut

28 

ลากไปวางไว้บน Desktop

29 30

 

แนบไฟล์ ฐานข้อมูลเข้าไปใน package setup แล้วทำการ Build โปรเจ็กต์ Setup เป็นอันเสร็จสิ้นขั้นตอน

31 32

จะเห็นว่าเราไม่มีการแนบไฟล์ Crystal Report เข้าไปใน package setup เนื่องจากไฟล์ Report ดังกล่าวถูก build เป็น Obj เรียบร้อยแล้ว และการเรียบรายงานเราได้เรียกผ่านการ new object นั่นเอง CrystalReport1 rpt = new CrystalReport1();
        

การติดตั้ง

และpackage setup ที่เราจะนำไปใช้งานอยู่ในพาธ Setup1Debug ดังรูป การติดตั้งเพียง ดับเบิ้ลคลิกไฟล์ Setup.exe

33

ขอให้ประสบสุข และโชคดีกันทุกๆ ท่าน

 

 

เกี่ยวกับ

Nuchit Atjanawat is a Microsoft MVP, GreatFriends Community Leader, WindowsITPro Columnist(Mr.Nano), Silverlight Business Application Instructor, Speaker in various Microsoft events, Author, passionate Blogger and a Software Engineer by profession. He has a very good skill over Silverlight, LightSwitch, C#, XAML & Blend. He shares his technical findings, tutorials in his technical blog. Follow his Blog and Facebook page to be updated on latest articles. - Technical Blog: https://janawat.wordpress.com - WindowsITPro Columnist(Mr.Nano): http://windowsitpro.net - The GreatFriends.Biz Community Discussion Board (nano): http://greatfriends.biz - witter: https://twitter.com/janawat - Facebook Page: https://www.facebook.com/nuchit - Instructor: http://bit.ly/GF250-01, http://bit.ly/GF150-02

เขียนใน Crystal Reports
One comment on “How to use AttachDbFilename binding data in CrystalReport
  1. jae พูดว่า:

    ผมใช้ vs2010 , cr for vs 2010 13.0.4 พอติดตั้งลงเครื่องอื่นมันเปิด cr ไม่ได้อ่ะ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

In Archive
%d bloggers like this: