Row Color in Crystal Report #1


 

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

  • Microsoft Visual Studio 2008 (C#)
  • SQL Server (2005,2008) Express

 

Download source:
http://cid-7d608959d854cb28.skydrive.live.com/embedrowdetail.aspx/SourcesCode/WinCrystalReportRowColor|_18-11-2008.zip

หากว่าเราได้รับโจทย์จากผู้ใช้งานฝ่ายคลังสินค้าว่า ต้องการรายงานสินค้าทั้งหมดในคลัง โดยตรวสอบว่าถ้าจำนวนในสต็อก (UnitInStock) ไม่มี (=0) ให้ลงสีเร็คคอร์ตดังกล่าวให้เป็นสีแดง เพื่อให้ง่ายในการตรวจสอบรายงาน และเราจำเป็นต้องใช้งาน Crystal Report เนื่องจากว่าเราต้องผูกเข้ากับระบบเดิม(เรื่องสมมุติ) โดยเป้าประสงค์ของผู้ใช้งานต้องการรายงานดังรูป  

14

 

เริ่มสร้างโปรเจ็กต์(Windows Application) กันเลย จากนั้นเพิ่มไอเทม DataSet เข้าไป

1

 

คลิกเมาส์บน Server Explorer

2 3

 

และสร้างคอนเนคชันชี้ไปที่ฐานข้อมูลที่เราต้องการ ในที่นี้ใช้ฐานข้อมูล Nortwind จากนั้นลากตาราง Products ไปวางบนพื้นที่ออกแบ Dataset การออกแบบ DataSet ของเราเป็นอันเรียบร้อยครับ ทำการบันทึกและปิดมัน

4 5

 

ทำการเพิ่มไอเทม Crystal Report เข้าไปในโปรเจ็กต์

6 

 

เลือก Report Wizard

7

 

เลือกแหล่งข้อมูล (DataSource) เลือก Project Data ADO.NET DataSet…. และเลือกฟิลด์ที่ต้องการ

8 9

 

กด Next,Next,Next และ  Finish ขั้นตอนการผูกข้อมูลใส่ Crstal Report เป็นอันเสร็จเรียบร้อย

10 

ไปทำการใส่สีในเร็กคอร์ตที่ไม่มีสต็อก (สต็อกเป็น 0) ให้เป็นสีแดงโดยการคลิกขวา บน Section Detail แล้วเลือก Section Expert…

11

 

เมื่อเราเข้ามาที่หน้าต่าง Section Expert ไปที่แท็บ Color ติ๊ก Backgroung Color เพื่อเป็นการใส่สีพื้นให้รายงาน แต่เราจะไม่ใส่ทุกเร็กคอร์ต
เราจะใส่เฉพาะเร็กคอร์ตที่จำนวนสต็อกเป็นศูนย์เท่านั้น เราต้องเข้าไปใส่เงื่อนไขใน Formula ครับโดยคลิกเมาส์บนปุ่ม X*2 Crystal Report จะนำเราเข้าสู่หน้าจอ Formula Workshop ให้เราใส่ Scrip นี้ลงไปครับ

if {Products.UnitsInStock}=0 then crRed else crNoColor

 

แค่นี้ก็เป็นอันเรียบร้อย ให้เรากดปุ่ม Save and close เพื่อบันทึก script และออกจากหน้า Formula Workshop 

12 13

 

จากนั้นเราไปใส่โค้ตใน Form1 เพื่อดึงรายงานไปแสดงกันเลยครับ

Code:

        private void Form1_Load(object sender, EventArgs e)
        {
            string sql = "Select * from Products";
            string strConn = System.Configuration.ConfigurationManager.ConnectionStrings["WinCry.Properties.Settings.NorthwindConnectionString"].ConnectionString;
            System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(strConn);
            conn.Open();
            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(sql, conn);
            System.Data.SqlClient.SqlDataReader dr = cmd.ExecuteReader();
            DataTable dt = new DataTable();
            
            if (dr.HasRows)
            {
                dt.Load(dr);
            }
            dr.Close();

            CrystalReport1 crp = new CrystalReport1();
            crp.SetDataSource(dt);
            crystalReportViewer1.ReportSource = crp;

        }

เกี่ยวกับ

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

ใส่ความเห็น

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: