• CrystalReport : ข้อมูลส่วน DetailSection กับการแสดงผลส่วน PageFooterSection


    เนื่องจากผู้เขียนได้รับมอบหมายให้มีการตรวจสอบข้อมูลว่า ถ้ามีข้อมูลใน Field1 ขึ้นต้นด้วยเครื่องหมาย “*” ต้องแสดงข้อความที่ส่วนท้ายของรายงานทุกแผ่นว่า “มีข้อมูลที่มีเครื่องหมาย * นำหน้า” ผู้เขียนจึงได้ทำการสร้าง Formula Field ขึ้นมาทั้งหมด 4 อัน คือ ffCountSubjectStar : ใช้สำหรับเก็บค่าจำนวนข้อมูลใน Field1 ที่ขึ้นต้นด้วย * ffResetCountStarSubject : ใช้สำหรับ Reset ค่าเมื่อขึ้นหน้าใหม่ ffSumStarSubjectCode : ใช้สำหรับเก็บค่าจำนวนรวมของ Field1 ที่ขึ้นต้นด้วย * ffPageFooter : ใช้สำหรับเก็บข้อความที่ต้องการให้แสดงท้ายกระดาษ 1. ffCountSubjectStar WhilePrintingRecords;Global numberVar isStarSubjectCode; if (Left({@Field1 },1) = “*”) then isStarSubjectCode := 1else isStarSubjectCode := 0 โค้ดส่วนนี้เป็นการตรวจสอบว่าถ้า Field1…

    >> Read More <<

  • AutoMapper


    AutoMapper คือ component ที่ใช้ในการ map ข้อมูลระหว่าง object ต่างชนิดกัน โดยทำการแปลงข้อมูลจาก object ชนิดหนึ่ง ไปกำหนดค่าให้กับ object อีกชนิดหนึ่ง ซึ่งถ้า object ปลายทางตรงตามข้อกำหนดของ AutoMapper ก็ไม่จำเป็นต้อง config ค่าใดๆเลย การแปลงข้อมูลจาก object ชนิดหนึ่งไปยัง object อีกชนิดหนึ่ง เกิดขึ้นได้บ่อยในการพัฒนา application โดยเฉพาะ application ที่อยู่ในลักษณะ multi tiers ที่ต้องมีการส่งผ่าน object ระหว่างกัน เช่น UI layer กับ Service layer หรือ Data access layer กับ Service layer การใช้งาน AutoMapper เมื่อต้องการแปลงข้อมูลจาก object ต้นทางไปยัง object…

    >> Read More <<

  • เช็คฟอนต์สวย ด้วย WhatFont ~ Extension


    อะ แฮ่ม และแล้วก็เดินมาถึง Blog สุดท้ายในรอบ TOR ของปีนี้จนได้ แต่กว่าจะได้ฤกษ์เขียนได้ก็ปาเข้าไปกลางปีกันเลยทีเดียว (55+) มาๆๆ เรามาเข้าเรื่องกันเลยดีกว่า ต้องบอกว่าหลายครั้งที่เราได้เข้าเว็บไซต์นู้นนั่นนี่ แล้วเห็น font สวยๆ แต่ไม่รู้ว่านั่นน่ะมันคือ font อะไร ชนิดไหน … วันนี้ทางผู้เขียนขอนำเสนอ Chrome Extension (อีกแล้วเหรอ !) ที่เรียบง่ายแต่ใช้งานได้จริง นั่นคือ * WhatFont * WhatFont คืออะไร ??? WhatFont เป็นหนึ่งในส่วนขยายของ Google Chrome ซึ่งเป็นเครื่องมือที่ใช้ในการดูได้ว่า Font ที่ใช้หรือแสดงอยู่ในหน้าเว็บไซต์ต่างๆ นั้น คือ Font ชนิดอะไร ขนาดเท่าไหร่ และมีค่าสี เป็นอะไร อ๊ะๆ ยังไม่หมดนะ มันสามารถระบุได้แม้กระทั่งความหนา ความบาง ของ Font นั้นๆ กันเลยทีเดียว…

    >> Read More <<

  • แลกเปลี่ยนเรียนรู้ Virtual Desktop Infrastructure (VDI)


    ผมได้จัดแลกเปลี่ยนเรียนรู้ เรื่อง “การจัดการห้องบริการคอมพิวเตอร์ในแนวทาง Virtual Desktop Infrastructure” เมื่อวันที่ 11 มิถุนายน 2562 ณ ห้องปฏิบัติการคอมพิวเตอร์ 3 งานเทคโนโลยีสารสนเทศ ฝ่ายสารสนเทศและทรัพยากรการเรียนรู้ อาคารวิทยบริการ ชั้น 3 มหาวิทยาลัยสงขลานครินทร์ วิทยาเขตตรัง คิดว่านำมาเล่าสู่กันฟังในที่นี้น่าจะเกิดประโยชน์ คุณลักษณะของระบบ VMware vSphere ESXi 6.7 เป็น software จัดการ server Dell EMC PowerEdge Systems เป็น hardware ชนิด Rack Server จำนวน 5 เครื่อง แต่ละเครื่องมี RAM 512 GB มี GPU ชนิด NVIDIA Tesla M10 32 GB และมี…

    >> Read More <<

  • Quick Analysis ใน Excel 2016 : ชุดคำสั่ง “Formatting”


    จากบทความที่เคยเขียนไปก่อนหน้านี้ เรื่อง แนะนำการใช้เครื่องมือ Quick Analysis ใน Excel 2016 : ชุดคำสั่ง “Text” สำหรับโจทย์ที่เป็นตัวอักษร แต่ครั้งนี้จะมาเล่าต่อของ Quick Analysis ในชุดคำสั่ง “Formatting” เหมือนเดิมนั่นแหละ แต่โจทย์จะเปลี่ยนไปเป็นตัวเลขบ้าง มาดูกันสิว่ามันสามารถทำอะไรได้บ้าง สำหรับรอบนี้ได้สมมุติข้อมูลเป็นข้อมูลเวลาการทำงานในแต่ละวันของพนักงานที่ทำงานเป็นกะ เป็นรายชั่วโมง โดยคนคนนี้ทำงาน ได้กี่ชั่วโมงในแต่ละวัน ดังรูป มาดูว่าจะมีลูกเล่นอะไรบ้างค่ะ ส่วน Data bar เป็นการแสดง Bar หรือแท่งของข้อมูลนั่นเองค่ะถ้าไม่เห็นภาพ มาปฏิบัติกันดีกว่าค่ะ โดยเลือกช่วงของข้อมูล และเลือก Formatting เลือก Quick Analysis จากนั้นเลือก Data bar ตามขั้นตอนดังรูป ผลลัพธ์ที่ได้ ดังรูปด้านล่างค่ะ เป็นการแสดง Bar ให้เห็นถึงปริมาณของชั่วโมงการทำงานนั่นเอง ส่วน Greater จะเลือกข้อมูลที่มีข้อมูลที่สูงกว่า ที่เรากำหนด สามารถทำได้ดังนี้ค่ะโดยเลือกช่วงข้อมูลที่ต้องการ เลือก Quick…

    >> Read More <<

  • สร้าง Hello World app ง่ายๆด้วย Xamarin.Forms


    สวัสดีค่ะ จาก post ที่แล้วได้แนะนำ วิธีติดตั้งเครื่องมือที่ใช้พัฒนา app ด้วย Xamarin.Forms ไปแล้ว บทความนี้เราจะมาเริ่มสร้าง app ง่ายๆ นั่นก็คือ Hello World app หรือ แอพสวัสดีชาวโลก นั่นเองค่ะ เพื่อเรียนรู้การทำงานและทำความเข้าใจ solution/project structure ของ Xamarin มาเริ่มกันเลยค่า…1. ก่อนอื่นเราต้องสร้าง project ขึ้นมาก่อน เปิด Visual Studio แล้วเลือก Create New Project ดังรูป 2. เลือก Cross Platform และเลือก Mobile App (Xamarin.Forms) template หลังจากนั้น ตั้งชื่อ Project และระบุ path ของ project ตามต้องการแล้วกด OK ดังรูป…

    >> Read More <<

  • เมื่อฉัน “แหก” (ใบแจ้งค่าน้ำประปา) การประปาส่วนภูมิภาค


    Disclaimer: คำเตือน บทความนี้ ผู้เขียนมีจุดประสงค์ “แค่” นำเสนอ วิธีการแก้ปัญหาเมื่อจ่ายค่าน้ำประปา ผ่านทาง Mobile Application ไม่ได้เท่านั้น ปัญหา: ทุก ๆ เดือน เจ้าหน้าที่การประปาจะมาจดมาตรวัตน้ำ และปริ้นท์ใบเสร็จมาใส่กล่องจดหมายหน้าบ้าน และก็สามารถจ่ายผ่าน True Money Wallet ได้ทุกครั้ง … แต่มาครั้งนี้ จ่ายไม่ได้ จากภาพ จะเห็นว่า ใบเสร็จประกอบด้วยข้อมูลต่าง ๆ แต่ที่น่าสนใจ ได้แก่– เลขที่ใบแจ้งค่าน้ำ: 1227620229846– เลขที่ผู้ใช้น้ำ: 1227052xxxx– หน่วยงาน: 1227-21– วันที่อ่าน: 09/06/62– รวมเงินที่ต้องชำระทั้งสิ้น: 353.10 คราวนี้ … ใบแจ้งนี้ จะมี QR Code และ Barcode ซึ่ง ทดลองใช้ Google Lens อ่านพบว่า ได้ค่าออกมาเป็น…

    >> Read More <<

  • WPF Layout (Part II)


    Popular layout panels of WPF 1. StackPanel StackPanel ของ WPF เป็น panel ที่เรียบง่ายและมีประโยชน์ในการนำมาใช้งาน โดยรูปแบบการจัดวางของ element ที่เป็น child จะวางอยู่ในรูปแบบซ้อนจากบนลงล่างหรือเรียงไปทางด้านซ้ายไปขวา ขึ้นกับการกำหนดค่าของ orientation StackPanel เหมาะสำหรับการจัดวางในรูปแบบที่มีลักษณะเป็น List โดย ItemsControls ของ WPF ทั้งหมด ที่เป็นลักษณะของ ComboBox, ListBox หรือ Menu จะใช้ StackPanel เพื่อจัดรูปแบบภายในของ Control ตัวมันเอง ดังตัวอย่าง Stack Items horizontally จากภาพตัวอย่างจะแสดงในส่วนของการใช้ horizontal stack panel คือจะประกอบด้วย ปุ่ม “OK” และ ปุ่ม “Cancel” ใน window โดยเมื่อมีการเปลี่ยนขนาดของตัวอักษรหรือเปลี่ยนภาษา…

    >> Read More <<

  • WPF Layout (Part I)


    Introduction to WPF Layout การอออกแบบ controls  คือส่วนสำคัญของการออกแบบโปรแกรมที่นำมาใช้งาน การจัดวาง controls ที่มีการกำหนดค่าขนาดของ pixel ของ controls นั้นๆ อาจจะใช้งานได้ดีในกรณีสภาพแวดล้อมที่ถูกจำกัด แต่ในขณะเดียวกันจะได้ผลลัพธ์ที่ไม่พึงประสงค์นักหากไปแสดงบนหน้าจอที่มีความละเอียดของหน้าจอหรือขนาดของตัวอักษรที่ต่างกันออกไป WPF จึงมีการนำ panel มาแก้ไขปัญหาในส่วนนี้  โดย panel ที่ใช้ในการจัดวาง Layout มีอยู่ 5 ชนิดที่นิยมใช้การการออกแบบดังนี้ Grid Panel Stack Panel Dock Panel Wrap Panel Canvas Panel Best Practices หลีกเลี่ยงการกำหนดค่าตำแหน่ง : กรณีที่ต้องการกำหนดตำแหน่งการวาง controls ใน panel ควรใช้ Alignment properties ร่วมกับ Margin เพื่อกำหนดค่าตำแหน่งใน panel แทนการกำหนดเป็นค่าคงที่ในตำแหน่งนั้นๆ หลีกเลี่ยงการกำหนดขนาด :…

    >> Read More <<