วันพฤหัสบดีที่ 10 สิงหาคม พ.ศ. 2560

การใช้ PrintDocument และ PrintPreviewDialog

คุยกันก่อนครับ  ก่อนอื่นสวัสดีครับ วันนี้เราจะมาลองใช้เครื่องมือ PrintDocument และ PrintPreviewDialog ทำการดึงข้อมูลจาก Datagridview ออกมาแสดงพูดง่ายๆคือเอาออกมาเป็นรายงานแบบง่ายๆครับ ถ้าจะพูดถึงรายงานที่ทำได้จากตัว Visual basic เลยก็มีวิธีนี้อีกวิธีนึงครับที่สามารถทำได้ซึ่งหลังจากที่ได้ผมได้ทดลองทำดูก็พบว่ามันก็ไม่ยากมากครับเพียงแต่อาจจะมีบางอย่างที่เป็นข้อจำกัดอยู่บ้าง แต่ถ้าบอกว่าออกมาเป็นรายงานได้ก็เอาล่ะ งั้นก็ลองมาดูกันเลยครับ


เราทำการสร้างฟอร์มและใช้ Datagridview กับ Button ดังภาพครับ ส่วนสำคัญเราใช้เครื่องมือ PrintPreviewDialog1 และ PrintDocument มาเป็นตัวเอกในที่นี้ครับ

หลังจากได้เครื่องมือครบถ้วนแล้ว อันดับแรกก็ทำให้ Datagridview แสดงข้อมูลออกมาก่อนครับโดยใช้โค้ดจากบทความก่อนหน้านี้ก็ได้ครับ


อยากให้สังเกตุนิดนึงนะครับว่าตรงกรอบสีแดงที่ผมได้วงไว้ให้นั้นเป็นสิ่งที่ต้องเขียนตอนโหลดฟอร์มขึ้นมาครับ หลังจากนั้นเขียนฟังก์ชันเพื่อทำการเรียกใช้โดยส่วนนี้จะเป็นส่วนกำหนดจุดแสดงข้อมูลครับ

อธิบายนะครับ
               Dim row As Integer = 50  กำหนดพิกัดแถว
               Dim col As Integer = 350 กำหนดพิกัดคอลัมน์
               Dim PrintFont As New Font("Angsana NEW", 16) กำหนดรูปแบบฟอร์นเก็บ Angsana New มีขนาดตัวอักษร 16 ครับ
                Dim PrintPosition As New PointF  เป็นการสร้างตัวแปรพิกัดครับเพื่อใช้กับ row,col ครับ
                Dim PrintColor As New SolidBrush(Color.Black)  อันนี้ก็เป็นสีตัวอักษรครับผม

  For x = 0 To DataGridView1.Rows.Count - 2  ส่วนนี้คือการวนเอาค่าที่อยู่ใน Datagridview ออกมา
            PrintPosition = New PointF(col, row)  นำตัวแปร Printposition ที่เราประกาศไว้รับค่าพิกัด
            e.Graphics.DrawString(DataGridView1.Rows(x).Cells(0).Value.ToString, PrintFont, PrintColor, PrintPosition)   ทำการวาดหรือเขียนค่าที่อยู่ใน Datagridview โดยที่ให้เป็นรูปแบบฟอร์น  สีฟอร์น และตำแหน่งการแสดงข้อความตาม ที่กำหนด
            row = row + 50   กำหนดให้แถวที่จะแสดงเป็นบรรทัดใหม่คือการเพิ่มค่าจากบรรทัดเดิมครับ
        Next

จากนั้นก็เขียนโค้ดเรียกใช้ที่ปุ่ม หรือ Button ของเราครับ เมื่อเสร็จแล้วก็ทำการดูผลการทำงานครับ



บทสรุป  เป็นไงครับหวังว่าบทความนี้จะเป็นอะไรที่มีประโยชน์กับท่านที่ผ่านเข้ามาอ่านบ้างนะครับ โดยส่วนตัวเคยใช้ครับเลยนำมาเผยแพร่ให้ดูกัน

วันพุธที่ 9 สิงหาคม พ.ศ. 2560

Color Datagridview กำหนดค่าสี Datagridview ตามใจชอบ

คุยกันก่อนนะครับ  หลายๆคนเคยนึกไหมครับว่าตาราง Datagridview ของเรานี่ถ้ามันไม่ได้มีสีเดียวหรือสลับสีแบบธรรมดาได้มันก็คงดี  ทำได้ครับ ทำได้ ผมทำมาล่ะไม่ยากด้วยครับผมลองไปหาข้อมูลมาแล้วเขียนโค้ดบรรทัดเดียวก็เปลี่ยนสีได้แล้วครับ

เริ่มทำกันเลยครับ  เริ่มแรกก็ให้สร้างฟอร์มขึ้นมาครับจากนั้นก็สร้าง Datagridview ขึ้นมาครับแล้วก็สร้างแถวขึ้นมากแบบ บทความที่แล้วก็ได้ครับง่ายดี


หลังจากทดสอบสร้าง Datagridview ขึ้นมาแล้วก็เพิ่มแถวเข้าไปสัก 5-6 แถว แล้วก็เริ่มเขียนโค้ดเพื่อให้แสดงสีกันได้แล้วครับเอาแบบสีเจ็บๆกันเลยที่เดียว เขียนโค้ดได้แบบด้านล่างนี้เลยครับ ผมเขียนต่อจากบทความที่แล้วนะครับในกรอบสีแดงที่เพิ่มขึ้นมา ในที่นี้ผมใส่ไป 5 แถวนะครับ สลับสีไปครับ



 Datagridview.Row(0) ตรงนี้คือกำหนดว่า แถวแรกของ Datagridview 
.DefaultCellStyle.BackColor=Color.DarkRed ตรงนี้คือกำหนดคุณสมบัติสีพื้นหลังแถวครับจากตัวอย่างก็เป็นสี DarkRed แดงเข้มครับ แล้วที่เหลือก็ใส่ตามใจชอบครับ


ผลที่ได้ออกมาก็ประมาณนี้ครับ แจ่มครับ ในตัวอย่างนี้ผมกำหนดตรงตามบรรทัดของ Datagridview เลยครับ อย่างนึงที่ผมอยากจะให้คำนึงถึงกันด้วยนะครับ คือเรื่องของสีพื้นบรรทัดกับสีของตัวอักษรที่เราจะใส่ไปนั้น มันก็ควรจะตัดๆกันหน่อยนะครับมันจะได้มองเห็น ถ้ามันกลืนกันเป็นเนื้อเดียวกันมันจะมองไม่เห็นเอานะครับ

วันจันทร์ที่ 7 สิงหาคม พ.ศ. 2560

การสร้างแถวเปล่าๆใน Datagridview / How to create blank row in Datagridveiw

คุยกันก่อนครับ ผมจะมาลองสร้าง Datagridview ขี้นมาแล้วให้แสดงแถวเปล่าขึ้นมาครับ ถามว่าทำทำไมก็เพราะโดยปกติแถวใน Datagridview จะดึงมาจากฐานข้อมูลครับ คอลัมน์กับแถวจะเกิดขึ้นตามจำนวนข้อมูลในฐานข้อมูลครับ แต่เราจะลองมาเพิ่มคอลัมน์เอง แถวแบบกำหนดเองจะทำอย่างไร เผื่อเอาไว้ใช้ในกรณีจำเป็น

เริ่มจากสร้าง ฟอร์มเปล่าๆครับ จากนั้นก็เอาDatagridview มาสร้างบนฟอร์มครับ / Create Form and Datagridveiw


จากนั้นผมทำการรันโปรแกรมดูครับ


มันก็ไม่มีอะไรมากครับก็แสดงฟอร์มออกมาโดยไม่ได้มีอะไรใน Datagridview ครับเพราะเราไม่ได้ดึงมาจากฐานข้อมูลครับ  เพราะเราจะมากำหนดจำนวคอลัมน์เองและแถวเองครับผมจะลองสร้างคอลัมน์ 3 คอลัมน์และแถว 5 แถว ครับ เขียนได้แบบนี้ครับ  / Add Code program



การกำหนด จำนวนคอลัมน์จะกำหนดตรง Datagridview1.ColumnCount = 3 คือ 3 คอลัมน์
ส่วนตรง Dim Addcolumn as String()={"","",""} อันนี้ผมใส่ไว้เพื่อเอาค่าว่างๆใส่ไปในแต่ละคอลัมน์ครับ

การกำหนดจำนวนแถวนั้น ผมกำหนดโดยใช้ For เข้ามาช่วย คือให้เริ่มจากแถวที่ 0 ถึง 4 มันก็จะวน 5 รอบครับ ได้ออกมา 5 แถวครับ แต่บางคนนับว่ามันได้ 6 แถวก็เพราะมันจะสร้างแถวสุดท้ายมาให้ตลอดครับ เป็นสาเหตุที่เราต้องใช้  DataGridView1.RowCount - 1 บ่อยๆ


บทสรุป แค่นี้เราก็จะได้ Datagridview เปล่าๆมาไว้เผื่อใส่ข้อมูลอะไรเข้าไปนะครับ

วันเสาร์ที่ 5 สิงหาคม พ.ศ. 2560

MDI Form การสร้างฟอร์ม เมนูใน Visual basic

คุยกันก่อนนะครับ  หลายคนคงจะเคยใช้โปรแกรมที่มีเมนูสวยงามให้ใช้กันและเคยสงสัยไหมครับว่ามันสร้างมาได้อย่างไร โดยส่วนตัวผมชอบมองเวลาเจอโปรแกรมสวยๆที่ผู้สร้างโปรแกรมหลายๆทำ แล้วก็ลองมานั่งหัดทำเองบ้าง ก็พอได้ครับ ถึงจะไม่ได้เริดมากแต่ก็พอใช้ได้ล่ะครับ วันนี้จะมาแนะนำครับว่าเค้าสร้างโปรแกรมให้มีเมนูใช้กันแบบง่ายๆนั้นทำอย่างไรครับ


สำหรับเครื่องมือสำคัญที่ต้องใช้ก็มี MenuStrip ครับงานนี้เป็นพระเอกเพราะเราจะใช้ในการสร้างเมนูกัน นอกจาก MenuStrip แล้วก็ทำการสร้าง Form ขึ้นมา 3 ตัวครับเป็น Window Form ธรรมดาครับผมจะไม่เปลี่ยนอะไรนะครับ จากนั้นผมกำหนดให้ Form1 เป็น Form เมนูนะครับโดยไปที่คุณสมบัติ  IsMdiContainer กำหนดให้เป็น True ตามรูปเลยครับ จากนั้นเราจะสังเกตุได้ว่า Form1 นั้นเปลี่ยนไปนิดนึงครับคือ ตัวพื้นฟอร์มจะยุบลงไป



ขั้นต่อมาครับเราก็เอาคอนโทรล MenuStrip มาลากบน Form1 ครับลากตรงไหนก็ได้ครับมันจะไปอยู่ด้านบนให้อัตโนมัต แล้วก็สร้างชื่อเมนูตามแบบเลยครับ ตรงนี้ก็ประยุกต์งานของเราได้เลยนะครับผมเอาง่ายๆครับเป็นชื่อ Form2 และ 3  ถ้าเข้าใจง่ายๆก็คือ เราจะคลิกชื่อแล้วเปิดฟอร์มนั้นๆขึ้นมาครับ


สำหรับการใส่รูปภาพตรงเมนูก็ทำได้ง่ายๆครับแค่คลิกขวาเลือกที่ set image... ครับแล้วก็เลือก ไอคอนหรือภาพมาใส่ได้แล้วครับ


จากนั้นเราก็ทำการเขียนโค้ดครับโดยการดับเบิ้ลคลิกที่ชื่อเมนูครับ แล้วก็เขียนโค้ดเข้าไปครับ



่จากโค้ดอธิบายคร่าวๆมีการตรวจสอบว่ามีการเปิดฟอร์มไหนๆอยู่บ้างถ้ามีก็ให้ปิดครับแล้วก็เปิดฟอร์มที่เราจะเปิด
ในที่นี้ผมทำทั้ง Form1 และ Form2 เลยนะครับหลังจากเขียนโค้ดเสร็จก็ทดสอบโปรแกรมกันเลยครับ


หลังจากทดสอบโปรแกรมจะเห็นได้ว่า ถ้ากดที่ Form2 ก็จะเปิดฟอร์ม 2 และถ้ากด Form3 โปรแกรมจะปิดฟอร์ม Form2 ก่อนแล้วก็เปิด Form3  ครับ เป็นอันเสร็จครับ

บทสรุป ลองเอาไปประยุกต์ใช้กันนะครับ เผื่อมีประโยชน์บ้างครับ

วันศุกร์ที่ 4 สิงหาคม พ.ศ. 2560

fomat number in datagridview กำหนดรูปแบบตัวเลข datagridview

คุยกันก่อนครับ หลายๆคนใช้ Datagridview กันมาบ้างแล้วซึ่งข้อมูลที่เราใส่ให้กับ Datagridview ก็มีหลายรูปแบบครับ เช่นตัวอักษร วันที่ ตัวเลข ซึ่งบทความนี้ผมจะมาลองทำให้ข้อมูลที่เป็นตัวเลขของ Datagridview นั้นสามารถใส่รูปแบบที่เราเรียกว่า หลักพัน หลักหมื่น หลักแสน ล้าน ได้ครับ เช่น  เรามีตัวเลขในฐานข้อมูลเป็น 15000 ซึ่งถ้าดึงข้อมูลมาแสดงใน Datagridview เลยมันก็จะแสดงออกมาเป็น 15000 เหมือนในฐานครับแต่ถ้าเราจะทำให้มันเป็น 15,000 ก็ทำได้ครับแบบง่ายๆเลย

ขั้นแรกผมจะลองสร้างโปรแกรมเพื่อดึงข้อมูลจากฐานข้อมูล Access นะครับ หน้าตาประมาณนี้
Create Form in vb2010 and Select data in Access

 

ทำการใส่ข้อมูลในฐานข้อมูล Access และเรียกข้อมูลมาใส่ใน Datagridview

Select data in Access Database


สังเกตุดูนะครับว่ามันจะออกมาเหมือนกับที่ข้อมูลในฐานข้อมูลเลยครับ วิธีการแก้ไขได้ง่ายให้ตรงกับความต้องการของเราก็คือ ให้ใส่โค้ดนี้เข้าไปครับ

Input Code this

                             Datagridview1.Columns(0).DefaultCellstyle.format="N2"

ตรง Columns(0) คือคอลัมน์แรกครับถ้าเรามีหลายคอลัมน์ก็ Columns(1) ไปเรื่อยๆตามจำนวนคอลัมน์เราครับ หรือเขียนจริงก็เป็นแบบนี้ครับ

ผลที่ได้ก็จะเปลี่ยนเป็นแบบนี้ครับใส่หลักให้และทศนิยมด้วยครับ  2 ตำแหน่ง ถ้าสังเกตุง่ายๆครับ N2 คือทศนิยม 2 ตำแหน่ง ถ้าจะเอา 3 ก็ N3 ล่ะครับ

DefaultCellstyle.format="N2"  is 2 Decimal


บทสรุป  ก็เป็นแนวทางนะครับลองเอาไปปรับๆใช้ดูน่าจะมีประโยชน์บ้างนะครับ

วันพฤหัสบดีที่ 3 สิงหาคม พ.ศ. 2560

How to create Chart in visual basic สร้างกราฟใน vb2010

คุยกันก่อน วันนี้จะมาลองทำกราฟแบบง่ายๆใน visual basic นะครับ จริงถ้ามานั่งนึกดูนะครับว่าอะไรที่ต้องเขียนโปรแกรมแล้วเป็นกราฟนะครับ ตัวอย่างเช่น โปรแกรมบัญชี  โปรแกรมการขาย โปรแกรมสต๊อกต่าง หรือแม้กระทั้งโปรแกรมสถิติอื่นๆครับ คราวนี้มาดูกันครับว่าโปรแกรมสร้างกันยังไง

เริ่มจากสร้างหน้าฟอร์มง่ายๆออกมาครับ แบบนี้ครับ

Create Form and Select Control  Label  Textbox button and Chart.


ผมสร้างง่ายๆครับเอา Textbox มารับค่า 3 ตัวครับ คือนึกง่ายๆครับให้มีกราฟ 3 แท่งครับ แล้วเอาคอนโทรลพระเอกในหัวข้อนี้ครับ Chart ครับมาวาดเฉยๆครับ จากนั้นกำหนดนิดนึงครับ ตรงคุณสมบัติ Series -> Collection ลบตัว Series ที่มีมาให้ออกครับเรามาสร้างเองเลยครับ ต่อมาผมสร้างปุ่มกด 1 อันครับ แล้วมโนตามดังนี้นะครับ  เราจะใส่ค่า ไปในช่อง 1 2 และ 3 แล้วกดปุ่มครับให้มันเอาค่าที่เราใส่ไปทำการพอตกราฟออกมาครับ เขียนโค้ดแบบด้านล่างเลยครับ

Delete Series in Collection properties and input code this.

หลังจากเขียนโค้ดแล้วทำการรันโปรแกรทดสอบดูครับ ใส่ค่าไป 3 ค่าตามช่องรับค่าแล้วกดปุ่มครับ มันจะแสดงกราฟออกมาครับ

Run program and input value 1 2 3 Textbox  and press button create.


บทสรุปนะครับ  อันนี้พอเป็นแนวคิดนะครับ เผื่อนำไปประยุกต์ใช้ในงานต่างๆได้ครับ

วันพุธที่ 2 สิงหาคม พ.ศ. 2560

Fix Hidden file แก้ไขไฟล์ซ่อนด้วยตัวเอง


how to mark  file .bat  fix hidden file
step 1  :  create file  notepad
step 2  :  input code this 

               @echo
                g:
                attrib -s -h -r /s /d
                pause
step 3 :  Save file and input  .bat  after file
step 4 :  run file


คุยกันก่อนครับ  หลายๆคนที่ใช้คอมพิวเตอร์ผมว่าเกือบทุกคนคงเคยเจอนะครับว่า เวลาใช้ เครื่องบันทึกข้อมูลภายนอก เช่น แฟลชไดว์  หรือ Extranal harddisk ว่าอยู่ไฟล์หายไปไหนทั้งๆที่หากดูพื้นที่ของอุปกรณ์ก็ถูกใช้ไปบางส่วนแล้วแต่มองไม่เห็นไฟล์ คือจริงๆแล้วมันไม่ได้หายครับมันแค่ถูกซ่อนเอาไว้ จากไวรัสที่เราเรียกกันติดปากว่า ไวรัสซ่อนไฟล์ครับ  หลายๆครั้งที่ผมถูกถามและต้องไปแก้ไขให้เอามาแสดงให้หลายๆคน ผมก็ไม่ได้ใช้โปรแกรมอะไรนะครับเพียงแค่ใช้ command line กับคำสั่ง 4-5 ตัว ครับแล้วก็บอกหลายๆคนที่มาถามว่าต้องเขียนยังไง แต่ก็เป็นเพียงบางท่านที่สามารถทำเองได้บ้าง แต่บางคนที่ไม่ค่อยสันทัดก็จะทำไม่ค่อยได้  ผมก็เลยคิดว่าทำไงดีเอาเป็นวิธีง่ายๆให้เค้าใช้ล่ะกันครับ คือเขียน bat file ให้เค้าใช้ ถ้ามีการแก้ไขก็ง่ายๆครับเค้าจะได้ทำเองได้ เราก็จะสบายขึ้น

หน้าตางมันก็จะทำนองนี้ครับ เห็นแต่ Shortcus ตัวนึงแต่ไฟล์หายไปไหนหมด

ผมแก้ง่ายๆด้วยการเขียน bat ไฟล์ ด้วย notepad ด้วยโค้ดด้านล่างนี้ครับ

@echo
d:  (ตรงนี้ให้เราดูว่าแฟลชไดว์เราเป็นชื่อ ไดว์อะไรก็เปลี่ยนตามนั้นเช่น g:  f:  หรือ g:)
attrib -s -h -r /s /d  (ตรงนี้เป็นคำสั่งให้ไฟล์ของเราที่ซ่อนไว้แสดงออกมาก)
pause (ตรงนี้ถ้าเขียนไว้มันจะค้างหน้า command ดำไว้ให้เราดูครับถ้าเอาออกมันจะไม่แสดงครับ)
เขียนจริงก็แบบนี้ครับ จากนั้นก็บันทึกในที่นี้ผมต้องเป็น fix_hidden.bat ให้ใส่นามสกุล .bat ด้วยนะครับ



จากนั้นก็ถ้าเจออุปกรณ์ที่มีอาการ ก็ทำการเปลี่ยนไดว์ให้เรียบร้อยแล้วก็ดับเบิ้ลคลิกได้เลยครับ คราวนี้
ไฟล์เราก็จะกลับมาแล้วครับ


โปรแกรมตั้งเวลา เข้าแถว เปิดเสียงหมดเวลา หมดคาบเรียน หรือชั่วโมงเรียน

สวัสดีครับในรอบ 2 ปี ผมหายไปตั้งแต่ปี 2560 ไม่ได้มาเขียน Blog เลย วันนี้กลับมา พร้อมกับโปรแกรมตัวนึงที่เขียนขึ้นเพื่อใช้งาน เล่านิดนึงครับ ผ...