Wednesday, September 23, 2009

บันทึกการใช้งาน SasqChart (asp.net 2.0 component chart)

SasqChart เป็น free charting component สามารถดาวน์โหลดมาใช้ได้ฟรีค่ะ (non commercial or small commercial) ซึ่งจะ support กับ Framework 2.0

sasqChart น่าจะไม่มีใครพัฒนาต่อแล้วนะ เท่าที่เห็นในเว็บเจ้าของเค้าพัฒนาเอาไว้ตั้งปี 2005 ก็ตั้งสี่ปีมาแล้ว atest Release 1.11 (2005-11-05) โอ้โหเก่าได้ใจจริงๆ แต่พอเอามาลองใช้ ก็ใช้ได้ดี เข้าท่าดีเหมือนกัน

สามารถดาวน์โหลดได้ที่เว็บ http://www.sasq.co.uk
มีอยู่ 3 ลิงค์
- ดาวน์โหลด SasqChart_1.11_Binaries.zip
- ดาวน์โหลด SasqChart_1.11_SourceCode.zip
- ดาวน์โหลด SasqChart_Examples.zip

เมื่อโหลดมาหมดแล้วแตกซิปไฟล์ SasqChart_1.11_Binaries.zip ออกมา
แล้วเปิดโปรแกรม Microsoft Visual Studio ของเราขึ้นมา
ไปที่ File > New Website > เลือก ASP.NET WEBSIT ธรรมดา ตั้งชื่อเป็น Chart2.0


เสร็จแล้วต้อง Add Reference.. ตามภาพด้านล่าง



แล้วคลิกแทบ Browse แล้วไปเลือกไฟล์ SasqChart.dll




คลิก OK จากนั้นโปรแกรมจะสร้าง folder Bin มาให้เรา และจะเห็นว่ามี component ที่ชือ SasqChart.dll ถูก add เข้ามาแล้ว



เสร็จแล้ว copy โฟล์เดอร์ SasqChart_Examples ที่แตกซิปออกมาจาก SasqChart_Examples.zip เอาไปวางไว้ใน Website chart2.0

แล้วก็ลองรันทดสอบดู บางอันก็รันผ่าน บางอันก็ไม่ผ่านนะ

ก็ลองเอามาเขียนเอง ได้กราฟดังนี้



ซึ่งจะเป็นการดึงข้อมูลมาจากฐานข้อมูล ที่ชื่อตาราง a_testchart
ฐานก็จะเก็บดังนี้
1. ข้อมูลเดือน/ปี
2. จำนวนคนเข้างาน
3. จำนวนคนลาออก



ส่วนโค๊ดในหน้า ดีไซน์มีดังนี้ (ไฟล์ชื่อ linechart1.aspx)

ก่อนอื่นต้องใส่บรรทัดนี้ก่อน

<%@ Register tagPrefix="SasqChart" Namespace="SasqChart" Assembly="SasqChart" %>


แล้วก็เพิ่ม WebChartControl เข้ามา เพิ่มปุ่มอีกสองปุ่มเพื่อเปิดปิดการแสดงข้อมูลตัวเลขบนกราฟ








โค๊ดในหน้า linechart1.aspx.vb มีดังนี้



Imports System.Drawing
Imports System.Drawing.Drawing2D
Imports SasqChart

Imports System.Data
Imports System.Data.SqlClient

Partial Class chart_linechart1
Inherits System.Web.UI.Page
Dim conn As New SqlConnection(ConfigurationManager.ConnectionStrings("testConnectionString").ConnectionString)

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

chart.Header.Text = "เปรียบเทียบจำนวนคนเข้าทำงานและลาออกในช่วงปี 2552"
chart.Series(0).Type = ChartType.Line
chart.Series(1).Type = ChartType.Line

chart.Series(0).Name = "จำนวนคนเข้าทำงาน"
chart.Series(1).Name = "จำนวนคนลาออก"
chart.Series(1).Group = Series.AxisGroup.FirstGroup


Dim da As New SqlDataAdapter("select * from a_testchart", conn)
Dim dt As New DataTable
da.Fill(dt)

If dt.Rows.Count <> 0 Then
For i As Integer = 0 To dt.Rows.Count - 1
chart.Series(0).Data.Add(New DataPoint(dt.Rows(i).Item("inemployee"), dt.Rows(i).Item("monthandyear").ToString()))
chart.Series(1).Data.Add(New DataPoint(dt.Rows(i).Item("outemployee"), dt.Rows(i).Item("monthandyear").ToString()))
Next
End If
End Sub

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
chart.ShowDataLabel = True
End Sub

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
chart.ShowDataLabel = False
End Sub
End Class




--------------------------------------------------------------------

กราฟตัวอื่นๆ ก็มีนะ แต่มักจะไม่ฟรี ต้องเสียตังค์

ที่บอกว่าฟรี demo อ่ะ มักจะมีโลโก้ หรือ ตัวหนังสือคาดเอาไว้ แบบนี้



แล้วใครจะหน้าด้านเอาไปให้ผู้บริหารดูล่ะ

รูปข้างบนเป็น ExpertChart v2.1 for ASP.NET
(.NET 2.0 and .NET 3.5 - VS 2005 and VS 2008)
มีหลายแบบ ทั้ง 2D, 3D สวยเลยแหละ แต่ราคา $250 สองร้อยห้าสิบดอลล์ ค่ะ

ใครจะลองโหลดไปใช้ก็ได้นะที่ http://www.chartingcontrol.net/Download.aspx

3 comments:

  1. ถ้าใครเจอคำว่า Demo, Shar ware, Free ware, Trial แล้วงง เข้าไปอ่านในบอร์ดนี้ได้ค่ะ

    http://th.answers.yahoo.com/question/index?qid=20090724092140AAhsL2k

    ReplyDelete
  2. สวัสดีครับ...น่ารักจังเลย...ผมชื่อณภัทร...ครับ...อยากรู้จักจังเลย....urlของผมคือ..http://napat-downlode-program.blogspot.com....เข้ามาคุยกันบ้างนะ...ส่วยemailก็
    ้ืNapat1978@gmail.com นะ

    ReplyDelete
  3. email-ของณภัทร... Napat1978@gmail.com
    อยากรู้จักนะครับ

    ReplyDelete

แวะเข้ามา ทักทายกันบ้างก็ได้ค่ะ