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

Sunday, September 20, 2009

หมาหลงทาง / ความเซ็งที่ยาวนาน

วันศุกร์ที่ผ่านมา

มีหมาหลงทางอยู่แถวๆ หน้าบริษัท มีคนบอกว่าเห็นมันเดิมตามพระมา

พอดีไปเจอมันตอนกำลังแหย่หมาอีกตัวที่อยู่ข้างบริษัท ท่าทางคงอยากเล่นกับเค้า

แต่กลัวๆ กล้าๆ พอเห็นเราก็วิ่งเข้ามาหา แล้วก็วิ่งเข้าไปแหย่ วิ่งไปวิ่งมาอยู่อย่างนั้น

ซักพักก็เดินตาม ซวยละ หมาใครหว่า มานอนอยู่หน้าบริษัทเฉยเลย

จน 5 โมง เลิกงาน คนก็พากันออกไป มันก็ตามเค้าไปอีก

ตอนนี้หลงไปใหนอีกก็ไม่รู้

เฮ้ออินดู ยังเด็กอยู่เลย














กะว่าจะถ่ายรูปไว้เผื่อมีคนมาตามหา

โทษทีนะ ช่วยอะไรแกไม่ได้เลย

เกิดมาเป็นหมาทั้งที ใช้ชีวิตให้มัน freedom

ขอให้เจอแต่สิ่งดีๆนะไอ้หนู



....................................................................................................

ช่วงนี้เป็นอะไรที่แย่สุดๆ

เสียความรู้สึกกับอะไรหลายๆอย่าง

จนทำให้เบื่อๆ เซ็งๆ

มันก็เซ็งบ่อย จนจะเป็นนิสัยอยู่แล้ว

(นี่ถ้าไอ้ปุ้ยมาอ่านเจอ มันคงจะบอกให้ไปบวชชีอีก)


แต่เซ็งคราวนี้มันนานจริงๆ

เหมือนเกือบจะหายเซ็งได้แล้ว แต่.. ก็เกิดความเซ็งขึ้นมาอีกระรอก

คราวนี้ถึงขั้นเสียความรู้สึก กับคนบางคน

เวลาที่เรารู้สึกไม่ดีกับใครซักคนแล้ว มันเอาความรู้สึกดีๆ ที่เคยมีกลับมายากมากๆ

อย่างดีก็แค่ ทำแบบที่เคยทำ คุยแบบที่เคยคุย แต่ในใจจริงๆ แล้ว

มันมี memmory เก็บไว้ว่า คนๆ นี้เคยทำแย่ๆ กับเรานะ ..

.
.
.
.
.

ช่วงนี้ชอบฟังเพลงของ Jack Johnson โดยเฉพาะเพลง Brackdown

และอีกเพลง Bitter Heart ของ Zee Avi เพลงนี้ตัดเอามาทำเป็นเสียงเรียกเข้าแล้ว หลังจากใช้เพลงของ I'm Your ของ Jason Marz มาหลายเดือน


สองเพลงนี้มีคนแนะนำไว้ในบอร์ด (บอร์ดใหนหว่า) ฟังแล้วชิวๆ ดีนะ ฟังตอนเขียนโปรแกรมได้สบายเลย



.
.
.
.

Saturday, September 5, 2009

ตื่นขึ้นมาร้องไห้เพราะความฝัน

วันนี้ เป็นวันเสาร์ที่เฉื่อยๆ วันหนึ่ง ออกจะเศร้าซะด้วยซ้ำ

เมื่อคืน ตอนตีห้าครึ่ง ตื่นขึ้นมาร้องไห้ เพราะความฝัน

ฝันเป็นเรื่องราว แสดงออกมาเป็นฉากๆ เหมือนกับกำลังดูหนังอยู่

ไม่ได้เป็นเรื่องจริง แต่ซ่อนความคิด ความกังวลใจไว้ในเรื่องราวนั้น

ถึงแม้ตื่นขึ้นมา รับรู้ว่ามันเป็นแค่ความฝัน

แต่ก็ยังเลิกเศร้าไม่ได้





เรื่องมีอยู่ว่า


เราเองอยู่บ้านหลังเก่า กับพ่อแม่ น้องสาวและน้องชาย

อยู่ๆ ก็มีผู้ชายสองคนคล้ายกับว่าเค้าเป็นโจร

เข้ามาในบ้านเพื่อหลบหนีใคร หรืออะไรสักอย่าง

(ภาพก็เบลอๆ ไม่มีรายละเอียด เหมือนกับเรารู้สึกว่ากำลังวุ่นวาย)

สักพักผู้ชายคนหนึ่งก็ยิงพ่อ แล้วพวกเราก็กอดพ่อร้องไห้

แล้วรู้สึกเหมือนกับว่าโจรคนหนึ่งจะช่วยพวกเราเอาไว้

...

แล้วภาพในฝันก็เปลี่ยนมาเป็นฉากในห้องนอนของเรา

ตัวเราเองค่อยๆ เดินเข้ามาในห้องนอน

หยุดนิ่งอยู่ที่หน้าต่าง มองออกไปข้างนอก

น้องสาวก็เข้ามายืนอยู่ข้างๆ พูดอะไรเกี่ยวกับ พี่เอก (เอกใหนก็ไม่รู้)

ก็ถามว่าน้องสบายดีมั้ย?

เค้าก็ตอบว่าสบายดี เรียนสนุก แล้วก็พูดถึงคนชื่อเอก(อีกแล้ว)

แล้วน้องชายกับแม่และผู้ชายคนนั้น(โจรที่ช่วยตอนพ่อถูกยิง)

ก็เดินเข้ามาในห้องพร้อมกัน

เราก็นั่งที่เตียงแล้วใช้ผ้าเช็ดที่นอน ที่เต็มไปด้วยฝุ่น

ถึงตอนนี้ความรู้สึกมันเศร้ามากๆ

แล้วโจรคนนั้นก็พูดขึ้นมาว่า "ผมติดค้างพวกคุณอยู่เรื่องหนึ่ง"

เค้าหมายความถึงเรื่องพ่อ


ต่อจากนั้นพวกเราก็ต่างร้องไห้

ตัวเราเริ่มรู้ว่า นี่ต้องเป็นฝันแน่ๆ

ก็ตื่นขึ้นมา น้ำตาไหลตอนใหนก็ไม่รู้

รู้แต่ว่าหลังจากตื่นก็ยังร้องไห้ต่อ






.. ฝันร้ายนี้คงบอกให้เรากลับไปดูแลพ่อแม่ก่อนที่มันจะสายเกินไป ..


เชียงใหม่
5 กันยายน 2552