การใช้งาน touchpad ใน windows 10

การใช้งาน touchpad ใน windows 10 มีดังนี้ ใช้ 1 นิ้วกดที่ touchpad  การทำงานจะเหมือนกด mouse ด้านซ้าย ถ้ากด 1 ครั้ง จะเป็นการเลือกไฟล์หรือกดปุ่มคำสั่งที่ cursor ชี้อยู่เวลานั้น ถ้ากด 2 ครั้ง จะเป็นการเปิดไฟล์หรือเปิดโปรแกรม 2. ใช้ 1 นิ้วกดที่ touchpad  2 ครั้งค้างไว้แล้วลาก  การทำงานจะเหมือนกด mouse ด้านซ้ายค้างไว้แล้วเลื่อน mouse เป็นการเลื่อนไฟล์ที่เลือกไปตำแหน่งอื่น หรือ เป็นการเลือกไฟล์แบบคลุม หรือใช้เลื่อน scroll bar 3. ใช้ 2 นิ้วกดที่ touchpad  1 ครั้ง การทำงานจะเหมือนกด mouse ด้านขวา เป็นการแสดงคำสั่งอื่นๆ 4. ใช้ 2 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วกางออกหรือหุบเข้า เป็นการทำ Zoom in , Zoom out 5. ใช้ 2 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วเลื่อนขึ้นลง เป็นการเลื่อนหน้าจอขึ้นลง 6. ใช้ 3 นิ้วกดที่ touchpad  1 ครั้ง เป็นการเปิดปุ่ม search 7. ใช้ 3 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วลากขึ้น เป็นการเปิด task view 8. ใช้ 3 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วลากลง เป็นการแสดงหน้า desktop 9. ใช้ 3 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วลากไปทางซ้ายหรือขวา เป็นการสลับโปรแกรมที่เปิดใช้งานอยู่ 10. ใช้ 4 นิ้วกดที่ touchpad  1 ครั้ง เป็นการเปิด Action Center 11. ใช้ 4 นิ้วกดที่ touchpad  1 ครั้งค้างแล้วลากไปทางซ้ายหรือขวา เป็นการเลือกหน้า Desktop ที่เปิดอยู่ ถ้าต้องการปิดการใช้งาน touchpad ขณะเสียบ mouse ให้ทำดังนี้ เปิด windows setting แล้วเลือก Devices 2. เลือก Touchpad แล้วเอาเครื่องหมายถูกหน้าข้อความ “Leave touchpad on when a mouse is connected” ออก

Read More »

การจัดหมวดหมู่แถวของข้อมูลบน GridView ด้วย C#

          ในการดึงข้อมูลมาแสดงผลในรูปแบบตาราง GridView อาจเป็นหนึ่งในทางเลือกของนักพัฒนาที่จะหยิบไปใช้เป็นเครื่องมือในการแสดงผล แต่ในกรณีที่ข้อมูลมีจำนวนมากอาจทำให้ผู้ใช้รู้สึกตาลายและอ่านยากไปสักหน่อย ผู้พัฒนาจึงต้องพยายามหาวิธีจัดการข้อมูลในการแสดงผลให้สามารถอ่านง่ายและสบายตามากยิ่งขึ้น ดังนั้น ในกรณีที่ข้อมูลมีจำนวนมาก การจำแนกประเภท หรือแยกออกเป็นกลุ่มย่อยๆก็เป็นอีกหนึ่งในทางเลือกที่จะช่วยแก้ปัญหาดังกล่าวได้ ดังนั้น ในบทความนี้ผู้เขียนจะขอแนะนำวิธีการแสดงผลของข้อมูลบน GridView แบบจำแนกออกตามกลุ่ม เพื่ออำนวยความสะดวกให้กับผู้ใช้ในการดูข้อมูลแยกส่วนกัน เพื่อเพิ่มความสามารถให้กับ GridView ซึ่งเราเองใช้งานอยู่และน่าจะคุ้นเคยกันดีอยู่แล้ว ซึ่งจะมีขั้นตอนดังนี้ค่ะ ขั้นตอนในการพัฒนา เตรียมข้อมูลในการแสดงผล โดยจากตัวอย่างนี้ จะทำการสมมุติข้อมูลของดอกไม้ ผลไม้ และต้นไม้ และมีข้อมูลเพื่อใช้ในการแยกประเภทไว้ด้วย เพื่อให้เห็นภาพมากขึ้นค่ะ หมายเหตุ : การประกาศตัวแปร และการดึงข้อมูลเป็นเพียงการยกตัวอย่างง่ายๆ เพื่อให้ผู้ใช้เข้าใจเท่านั้น ในการทำงานจริงผู้อ่านสามารถใช้วิธีการประกาศตัวแปรและเรียกใช้แบบอื่น หรือดึงข้อมูลจากส่วนอื่นได้ ขึ้นอยู่กับความเหมาะสมและความถนัดค่ะ 2. เตรียม GridView ที่จะใช้ในการแสดงผล โดยจะขอยกตัวอย่างให้ดูการแสดงผล GridView แบบทั่วไปก่อนมีการจัดกลุ่ม เพื่อให้เห็นความแตกต่าง ดังนี้ค่ะ เพิ่มเติม : ข้อมูลจำนวนเป็นข้อมูลที่เป็นตัวเลข จึงได้ทำการจัด Format รูปแบบของข้อมูลให้แสดงผลแบบตัวเลข ด้วยการระบุ DataFormatString=”{0:#,##0}” เช่น หากข้อมูล 2500 จะแสดง 2,500 ให้อัตโนมัติ ผลลัพธ์(ก่อนทำการจัดกลุ่ม) 3. เพิ่ม Event ที่ชื่อว่า OnDataBound=”GroupGv_DataBound” ให้กับ GridView เพื่อแสดงผลข้อมูลแบบกลุ่ม และตัดคอลัมน์ประเภท(Category Name)ออกไป เนื่องจากเราจะนำไปใช้แสดงผลในการจัดกลุ่ม 4. เพิ่มโค้ดในส่วนของฝั่งเซิร์ฟเวอร์(C#) ให้กับ Event ของ GridView ที่เราเพิ่มในข้อ 3. เพื่อจัดกลุ่ม ดังนี้ค่ะ ผลลัพธ์ (หลังมีการจัดกลุ่ม) เพิ่มเติม : จากตัวอย่างข้างต้น เนื่องด้วยข้อมูลเป็นการจัดกลุ่มและมีข้อมูลเชิงตัวเลข ผู้เขียนจึงขอแนะนำเพิ่มเติมในส่วนของการแสดงจำนวนรวมแยกในแต่ละกลุ่มไว้ด้วย โดยเพิ่มเติมโค้ดในส่วนของ GroupGv_DataBound ดังนี้ค่ะ ผลลัพธ์           เพียงเท่านี้ท่านก็จะสามารถจัดกลุ่มข้อมูล GridView ของท่าน เพื่อลดปัญหาการดูข้อมูลแบบตารางที่มีแถวข้อมูลจำนวนมากได้บ้างแล้ว ซึ่งผู้เขียนหวังเป็นอย่างยิ่งว่าผู้อ่านจะสามารถนำแนวทาง เกร็ดเล็กๆน้อยๆนี้ไปประยุกต์ใช้กับงานของท่านได้ไม่มากก็น้อยนะคะ หากมีส่วนใดผิดพลาดทางผู้เขียนก็ขออภัยมา ณ ที่นี้ด้วยค่ะ ขอบคุณที่ติดตามนะคะ ^^ แหล่งอ้างอิงhttps://stackoverflow.com/questions/61773421/sum-column-where-condition-with-datatable

Read More »

Crystal Report : Report หลายตัวหัวท้ายต่าง แต่ตรงกลาง Code เหมือนกัน จัดการอย่างไร (WinApp)

หลาย ๆ ครั้งที่ท่านมีรายงานมากกว่า 1 ฉบับที่มีรูปร่างหน้าตาส่วนหัวกระดาษหรือท้ายกระดาษที่ต่างกัน แต่ส่วนของ Detail นั้นเหมือนกันอย่างกับแกะ และเจ้าส่วน Detail นี้ ดั๊นนนน เป็นเจ้า Detail ที่มีเงื่อนไขเยอะแยะ ยุบยับซับซ้อนซ่อนเงื่อน ถ้าจะให้สร้าง File เพื่อวาง Report Viewer เป็น 2 File หรือตามจำนวนรายงานก็ใช่ที่ จากการที่ประสบพบเจอมากับตัว ส่วนหัว ส่วนท้าย ดั๊นนน ไม่คล้ายไม่เหมือนเลย แต่ข้อมูลตรงกลางนั้น ต้องใช้ข้อมูลชุดเดียวกัน เหมือนกัน ทีนี้ถึงกับกุมขมับเลยว่าจะทำยังไงดี ได้คำปรึกษาแนะนำจากพี่ชายที่แสนดี @wachirawit-j มาช่วยชี้แจงแถลงไข ถึงต้องรีบจัดการเก็บข้อมูลไว้ เผื่อครั้งหน้าเจออีกแล้วลืมจะได้กลับมาอ่านซ้ำ ไปดูกันเล้ยยยยยย ตัวแปร cr ที่ประกาศนี้ จะเป็นตัวแปรที่ไว้ใช้ในอนาคตทั้งไฟล์ เป็นตัวแปรที่เป็นตัวเก็บค่าว่า จะเป็น Crystal Report File ตัวไหนและใช้สำหรับกำหนดค่า FormulaField เพื่อใช้กับ Report File นั้น ๆ ตัวอย่าง Code ข้างต้นเป็นการกำหนดค่าให้กับ Formula Field ที่ชื่อว่า ffType ในฝั่ง Crystal Report โดยกำหนดให้มีค่าเท่ากับข้อความว่า “Normal” ซึ่งจะเห็นว่ามีการใช้ตัวแปร cr ในการดำเนินการ Code ส่วนอื่น ๆ ที่มีการกำหนดค่าก็จะมีการเรียกตัวแปร cr นี้เหมือนกัน ซึ่ง cr จะเป็นตัวที่บอกว่าคือ Crystal Report File ไหน Code ข้างต้นเป็นการสร้าง Class ชื่อว่า CRModel มีสมาชิกภายใน Class 2 Report นั่นคือ RptNormal.rpt กำหนดให้ใช้ตัวแปร crNormal และ RptSpecial.rpt กำหนดให้ใช้ตัวแปร crSpecial จากนั้นในส่วนของการตรวจสอบว่าจะใช้ Report ตัวไหนหรือการกำหนด report ให้กับ Reportsource เป็นดังนี้ เพียงเท่านี้ก็จะสามารถจัดการ Code ที่ File เดียวได้แล้ว เย้! ถ้าผู้อ่านมีวิธีที่ดีกว่า สะดวกกว่า สามารถแนะนำได้นะคะ จะขอบคุณยิ่งเลยค่า ^/\^ และหวังว่าจะมีประโยชน์ต่อผู้อ่านไม่มากก็น้อยนะคะ จนกว่าจะพบกันใหม่ สวัสดีค่ะ 🙂

Read More »

Crystal Report : รูปที่ใส่ไป ทำไม size ถึงกลับไป(ใหญ่)เท่าเดิม

เคยหรือไม่ ที่ใส่รูปลงไปในรายงาน จากนั้นหากต้องการ Config ค่าของรูปนั้น เมื่อจัดการเสร็จ กด OK ออกมา รูปที่ท่านใส่ไปนั้น กลับขยายกลายร่างกลับสู่ขนาดจริง ซึ่งบางครั้งหากท่านไม่ได้มีการย่อขนาดรูปให้ตรงตามที่ต้องการก่อนแต่ใช้วิธี Config ในส่วนของ Object Picture แทน ท่านอาจจะเจอปัญหานี้กันบ้าง วิธีแก้ไขง่ายมากๆๆๆๆๆๆๆ หลาย ๆ ท่านอาจจะคาดไม่ถึง หรือหลาย ๆ ท่านอาจจะรู้แล้ว แต่ผู้เขียนเพิ่งได้กลับมาจับ Crystal Report อีกครั้ง ได้เจอปัญหานี้เข้า เลยอยากมาแชร์ และเป็นการบันทึกไว้อ่านเองด้วย มาดูกันเลยค่ะว่า วิธีจัดการมีขั้นตอนอย่างไร ท่านผู้อ่านอย่าเพิ่งตกใจกับความง่ายยยยยยย นี้นะคะ ไปกันเล้ยยยยย ^^ เมื่อท่านลาก Object Picture มาแล้ว ให้เลือก Menu Format Object ที่ ๆ ท่านเข้าไป Config รูปปกติค่ะ จากนั้นที่ Tab Picture เมื่อท่านตั้งค่าทุกอย่างเสร็จแล้วอย่าเพิ่งกดปุ่ม OK นะคะ เบรกก๊อนนน >< ให้สลับกลับไปที่ Tab Common ก่อนค่ะ สังเกตดี ๆ นะคะ ที่วงไว้สีแดง ๆ หนา ๆ ตัวนี้เลยค่ะ Can Grow เจ้าปัญหา ให้กลับมาดูก่อนนะคะ ว่ามีเครื่องหมายถูกอยู่ข้างหน้ารึเปล่า ถ้าไม่มี ไม่เป็นไรค่ะ นั่นคือสิ่งที่ถูกต้องแล้ว ให้กด OK ออกได้เล้ยยย แต่ถ้ามีเครื่องหมายถูกอยู่ เอาออกด่วน ๆๆๆๆ เลยค่ะ ไม่งั้น รูปที่ท่านใส่ไว้ ก็จะ Grow กลับสู่ขนาดดั้งเดิม ซึ่งหากท่านใส่ไว้แบบไม่ปรับขนาดมาก่อน แล้วมีขนาดใหญ่มาก ก็จะเป็นปัญหาได้ค่ะ หวังว่าจะเป็นประโยชน์ต่อผู้อ่านไม่มากก็น้อยนะคะ 🙂

Read More »

Crystal Report : Term & Condition หรือ Privacy Policy ที่ต้องมีต่อท้ายรายงาน ทำได้อย่างไร

หลาย ๆ ครั้งที่เราพิมพ์เอกสาร แล้วจำเป็นต้องมีเอกสารแนบท้ายกระดาษเป็นพวก Term & Condition หรือ Privacy Policy ซึ่งเอกสารพวกนี้จะอยู่ท้ายสุดของเอกสาร และทุกครั้งเมื่อมีการพิมพ์เอกสารชุดอื่น ๆ ก็จำเป็นต้องมีเอกสารเดียวกันนี้แนบท้ายไป เนื่องจากช่วงนี้ได้มีการเข้ามาจับ Crystal Report อีกครั้ง จึงได้มีโอกาสได้ทำเอกสารแนบท้ายนี้ จึงต้องการเขียนไว้สำหรับเตือนความจำและอยากส่งต่อให้กับผู้ที่กำลังทำได้ทราบต่อไป อ่ะ เรามาเริ่มกันเลย อันดับแรก เริ่มจากสร้างรายงานที่เป็นไฟล์เอกสารแนบท้าย สร้างและจัดรูปแบบให้เรียบร้อย เพราะต่อไปนี้ ไฟล์เอกสารแนบท้ายเหล่านี้ จะกลายไปเป็น Subreport ของรายงานหลัก โดยไปที่ส่วนของ Report Footer คลิกขวา เลือก Insert -> Subreport ระบบจะมีหน้าต่าง Subreport มาให้ระบุไฟล์ Crystal Report ที่ต้องการให้เป็น Subreport ซึ่งให้เลือกไฟล์ที่เราสร้างไว้ จากนั้นจะได้ Subreport วางไว้ในส่วนของ Section Report Footer เรียบร้อย ขั้นตอนต่อไปเป็นการ Config ให้สามารถแสดง Subreport เป็นหน้าสุดท้ายโดย คลิกขวาที่แถบ Section เลือก Section Export ไปที่ Report Footer -> Tab Paging ให้ ทำเครื่องหมาย / หน้า New Page Before แต่เนื่องจากเราวาง Subreport ไว้ที่ Section Report Footer ทำให้เมื่อลอง Preview จะพบว่า หัวกระดาษและท้ายกระดาษส่วนอื่นแสดงด้วย ดังนั้นเราต้องมาจัดการในส่วนอื่น ๆ โดยเขียน Formula ใน Section อื่น ๆ ที่แสดงทุกหน้า เช่น Section Report Header, Section Page Header เป็นต้น ในที่นี้จะจัดการส่วน Section Page Header a จากนั้นทางขวา ในส่วนของ Suppress คลิกที่ x-2 เพื่อทำการเขียน Formula จะพบหน้าต่าง Formula จากนั้น เขียนคำสั่งดังภาพด้านล่าง ซึ่งเป็นคำสั่งตรวจสอบว่า ถ้าหน้าปัจจุบัน คือหน้าสุดท้าย ให้ทำการซ่อน Section Page Header จากนั้นกด Save and close เพื่อปิด และเขียนคำสั่งเดียวกันนี้ใน Section ส่วนอื่น ๆ ที่ต้องการซ่อนในหน้าสุดท้ายจนครบ จากนั้นทดลอง Run ดูจะพบว่า หน้าสุดท้ายที่ต้องการให้แสดง Term & Condition หรือ Privacy Policy จะไม่มี Section ส่วนอื่นมากวนใจ หวังว่าบทความนี้จะมีประโยชน์ต่อผู้อ่านไม่มากก็น้อยนะคะ 🙂

Read More »