Author: maliwan.s

  • การสลับภาษาด้วย “~” Linux Mint 18.2 64 bit

            สำหรับใครที่ในช่วงนี้เบื่อๆเซ็งๆระบบปฎิบัติการ Windows อยากลองอะไรใหม่ๆให้กับชีวิตบ้าง ใจก็อยากไป macOS แหละ ครั้นจะเอามาลงที่เครื่องเรา มันได้เหรอ(คิดในใจเบาๆ) ว่าแล้วก็หันไปซบอก OpenSource อย่าง linux ดีกว่า linux ก็จะประสบปัญหาการเปลี่ยนภาษาเหมือนตอนที่เราลง Windows ใหม่ๆ ต้องกด Left Alt + Shift เพื่อเปลี่ยนภาษา มันก็จะลำบากหน่อยๆ กดไปบ้างไม่ไปบ้างแต่คนที่ชินแล้วก็ปล่อยเขาไปนะค่ะ ส่วนเรายังไม่ชินปกติก็จะใช้ Grave “~” ตลอด ซึ่ง linux เดิมจะใช้ ปุ่ม Ctrl+Shift ในการเปลี่ยนภาษา สืบไปสืบมาได้ความว่า linux จะใช้ “~” แทนการอ้างอิง path home จึงไม่สามารถใช้ “~” เปลี่ยนภาษาได้ แต่สำหรับใครที่ยังไม่ชินก็สามารถติดตั้งโปรแกรมเพิ่มเติม เพื่อให้สามารถเปลี่ยนภาษาได้เนอะ

                ก่อนอื่นต้องทำการ download โปรแกรมมาติดตั้งติดตั้งในเครื่องเพื่อใช้ในการสลับภาษาโดยชื่อว่าgrave-key.tar.gz สามารถ download ได้ที่ http://noc.rmutl.ac.th/main/wp-content/plugins/download-monitor/download.php?id=29
           

    วิธีการติดตั้ง

    1. ไฟล์ที่ download มาจะมีนามสกุล .gz โดยเป็นไฟล์ zip ประเภทหนึ่งบนระบบปฎิบัติการ linux ดังนั้นก่อนการใช้งาน จึงต้องทำการ คลาย zip ก่อน โดยโปรแกรม zip จะถูกติดตั้งเป็นโปรแกรมพื้นฐานมาแล้ว จึงสามารถใช้งานได้ทันที โดยวิธีการคลายzip เข้าไปยังตำแหน่งไฟล์ที่ download คลิกขวาที่ไฟล์ แล้วเลือก “open with archive manager” โปรแกรมที่ไช้ในการคลาย zip จะถูกเปิดขึ้นมา หลังจากนั้น กด Extract แล้วเลือกตำแหน่ง เก็บไฟล์ ดังภาพที่ 1                                  ภาพที่ 1  Extract File ด้วย open with archive manager
    2. ทำการ install โปรแกรม โดยใช้ command ในส่ง install 
      • เปิดโปรแกรม terminal เข้าไปยังตำแหน่ง path ที่ไฟล์โปรแกมอยู่
      • run โปรแกรม ด้วยคำสั่ง ./script.sh
                                                               ภาพที่ 2 run โปรแกรม
    3. ตั้งค่า keyboard เพื่อให้สามารถใช้งานได้ โดยเปิดโปรแกรม Keyboard ตามขั้นตอนดังภาพที่ 3 หรือ Search คำว่ “keyboard” ตรงรูปแว่นขยายด้านบน                                                     ภาพที่ 3 Keyboard Settings
    4.  จากภาพที่ 4 เลือก Tab Layout แล้วกดปุ่ม Options
      • เลือก Layout switching (ดูภาพที่ 5)
      • ติ๊กที่ช่อง Grave switches layout หลังจากนั้น ปิดโปรแกรม ก็จะสามารถใช้ “~” ในการเปลี่ยนภาษาได้ เหมือนกับ Windows ปกติ (ดูภาพที่ 6)

    ภาพที่ 4 Keyboard Layout

    ภาพที่ 5 Layout switching

    ภาพที่ 6 Options

  • การวิเคราะห์ข้อมูล (What-if Analysis)

                ในหัวข้อนี้เราจะมาพูดถึงการวิเคราะห์ข้อมูลโดยใช้ What-if ซึ่งเป็นเครื่องมือการวิเคราะห์ที่อยู่ใน Excel การวิเคราะห์ข้อมูลแบบ What-if เป็นการเอาสูตรหรือข้อมูลที่มีมาวิเคราะห์เพื่อหาทางเลือกจากสถานการณ์ต่างๆ โดยมีการวิเคราะห์ 3 แบบ คือ สถานการณ์สมมติ(Scenario), ตารางข้อมูล(Data Table) และการค้นหาค่าเป้าหมาย(Goal Seek) สถานการณ์สมมติและตารางข้อมูลจะรับชุดของค่าข้อมูลเข้า(Input) และประเมินล่วงหน้า เพื่อหาผลลัพธ์ที่เป็นไปได้ ส่วนการค้นหาค่าเป้าหมายต่างจากสถานการณ์สมมติและตารางข้อมูลตรงที่ นำผลลัพธ์มาประเมินย้อนกลับ เพื่อหาค่าข้อมูลเข้าที่เป็นไปได้ที่ทำให้เกิดผลลัพธ์นั้นๆ

    1. การค้นหาค่าเป้าหมาย(Goal Seek)

                ปกติเวลาคำนวณเราจะคำนวณตามลำดับ เช่น ยอดขาย–ค่าใช้จ่าย = กำไร แต่ Goad Seek ใช้การระบุผลลัพธ์ที่ต้องการ(Output) แล้วคำนวณค่าข้อมูลเข้า(Input) เพื่อให้ได้ผลลัพธ์ตามที่เราต้องการ

                ตัวอย่าง1 การคำนวณเงินกู้ ปกติจะคำนวณจากเงินต้น ระยะเวลาที่กู้ และดอกเบี้ย และใส่สูตรด้วยฟังก์ชัน PMT (ดูภาพที่ 1) ซึ่งจะได้จำนวนเงินที่ต้องจ่ายในแต่ละเดือน (ดูภาพที่ 2)

    ภาพที่ 1 คำนวณอัตราผ่อนชำระต่องวด

    ภาพที่ 2 จำนวนเงินที่ต้องจ่ายในแต่ละเดือน

     

    เงื่อนไขที่ 1 : ถ้ามีต้องการผ่อนต่อเดือน 10,000 บาท ในระยะเวลา 10 ปี สามารถใช้ Goal Seek คำนวณให้ได้ว่า จะสามารถกู้เงินได้เท่าไหร่? ไปที่ Data > What-if Analysis > Goal Seek (ดูภาพที่ 3)

    ภาพที่ 3 เลือกคำสั่ง Goal Seek

    ในหน้าต่าง Goal Seek (ดูภาพที่ 4) :

    Set cell – cell ที่จะใช้ตั้งค่า โดยคลิกเลือก cell ที่เขียนสูตรเอาไว้ (ในตัวอย่างนี้คือ B5)

    To value – ระบุค่าเป้าหมายที่ต้องการ (ต้องการผ่อนเดือนละ 10,000)

    By changing cell – ระบุ cell ที่ต้องการให้เปลี่ยนแปลงค่าตามเป้าหมายที่กำหนดไว้ (จำนวนเงินที่กู้ได้)

    ภาพที่ 4 กำหนดค่าเป้าหมาย

    สรุป ถ้าต้องการผ่อนเดือนละ 10,000 เป็นระยะเวลา 10 ปี จะต้องกู้เงินจำนวน 949,363 บาท (ดูภาพที่ 5)

    ภาพที่ 5 คำตอบที่ได้ของเงื่อนไขที่ 1

    เงื่อนไขที่ 2 : ถ้าต้องการกู้เงิน 1,000,000 บาท และผ่อนชำระเดือนละ 10,000 บาท จะต้องใช้เวลาเท่าไหร่? (ดูภาพที่ 6)

    ภาพที่ 6 กำหนดค่าเป้าหมาย

    สรุป ถ้าต้องการกู้เงิน 1,000,000 บาท และผ่อนชำระเดือนละ 10,000 บาท จะต้องใช้เวลาประมาณ 129 เดือน (ดูภาพที่ 7)

    ภาพที่ 7 ระยะเวลาผ่อนชำระ(เดือน)

    2. สถานการณ์สมมติ(Scenario)

                ตัวอย่าง2 เปิดร้านขายเบเกอรี่มีเค้กขายอยู่ 12 ชนิด ในการวิเคราะห์กำไรจากการขาย (ดูภาพที่ 8) อาจแบ่งยอดขายได้หลายกรณี เช่น กรณีขายดี(Best Case), กรณีขายไม่ค่อยดี(Worst Case) และกรณีที่น่าจะเป็น(Most Likely) เป็นต้น

     ภาพที่ 8 ตัวอย่างตารางข้อมูลสำหรับคำนวณโดยใช้ Scenario

     

    ไปที่ Data > What-if Analysis > Scenario Manager (ดูภาพที่ 9) จะมีหน้าต่าง Edit Scenario ขึ้นมาให้กด Add…

    • Scenario Name ชื่อของ Scenario
    • Changing cells เป็นเซลล์ที่จะเปลี่ยนค่า ในตัวอย่างเป็นจำนวนเค้ก

    โดยให้ทำการ Add ทั้ง 3 Case – Best Case(จำนวนมากกว่า 100 ชิ้น), Worst Case(อย่างละ 50 ชิ้น), Most Likely Case(อย่างละ 100 ชิ้น)

    ภาพที่ 9 Add Scenario

    ภาพที่ 10 ตัวอย่างกำหนดค่าให้ Most Likely

    กดปุ่ม Summary เพื่อสรุปค่า Scenario จะมีหน้าต่าง Scenario Summary ขึ้นมา ให้เลือก Report type ที่จะแสดงในรายงาน ซึ่งมี 2 แบบ คือ

    • Scenario Summary เป็นตารางสรุปผล Scenario ในแต่ละกรณี (ดูภาพที่ 11)
    • Scenario PivotTable Report เป็น PivotTable แสดงรายละเอียดของ Scenraio

    ภาพที่ 11 Scenario Summary

    3. ตารางข้อมูล(Data Table)

                จากตัวอย่าง1 หากต้องการทราบว่าช่วงเงินกู้ระหว่าง 800,000-1,700,000 บาท ถ้าให้ระยะเวลาผ่อน 10 ปีด้วยกันจะต้องผ่อนเดือนละเท่าไหร่??

                ใส่ค่าช่วงของเงินกู้ที่ต้องการเปลี่ยนแปลง ส่วนจำนวนเงิน 10,533 ให้กด = แล้ว Link ไปที่ช่องผลลัพธ์ที่คำนวณไว้แล้ว ในที่นี้ = B5 ของตัวอย่างที่1 ลากคลุม cell ตามภาพที่ 12 จากนั้นไปที่ Data > What-if Analysis > Data Table… ที่นี้เราจะลองเปลี่ยนยอดเงินกู้ ซึ่งเรียงกันอยู่ในรูปแบบ Column ดังนั้นเราต้องใส่ค่า “จำนวนที่กู้” ลงใน Column Input Cell จะได้ผลลัพธ์ดังภาพที่ 13

    ภาพที่ 12 แสดงวิธีคำนวณด้วยคำสั่ง Data Table

    ภาพที่ 13 ยอดผ่อนต่อเดือนตามจำนวนเงินกู้

    สมมติเราอยากรู้ว่าถ้ายอดเงินกู้ และ ระยะเวลาเปลี่ยน จำนวนเงินที่จะต้องผ่อนต่อเดือนจะเป็นเท่าไหร่??

    ให้ Copy ช่วงเงินกู้มาตั้งไว้ในแนว Column เหมือนเดิม เพิ่มเติมคือระยะเวลาให้ใส่แนว Row(ดูภาพที่ 14) และผลลัพธ์ในภาพที่ 15

    ภาพที่ 14 แสดงการคำนวณ Data Table 2 Input

    ภาพที่ 15 ผลลัพธ์การเปลี่ยนแปลงยอดผ่อนต่อเดือน

     

     

    สามารถอ่านข้อมูลและศึกษาเพิ่มเติมได้

    https://support.office.com/en-us/article/Introduction-to-What-If-Analysis

  • What is MongoDB?

           MongoDB เป็น open-source document database ประเภทหนึ่ง โดยเป็น database แบบ NoSQL Database จะไม่มีการใช้คำสั่ง SQL ไม่เน้นในการสร้างความสัมพันธ์ของข้อมูลแต่จะเป็นรูปแบบโครงสร้างที่เจ้าของ NoSQL สร้างขึ้นมาเองและจัดเก็บข้อมูลเป็นแบบ JSON (JavaScript Object Notation) ซึ่งจะเก็บค่าเป็น key และ value โดยจุดเด่นอยู่ที่ความเร็วในการทำงานเป็นหลัก คิวรี่ข้อมูลได้เร็วขึ้น การทำงานในส่วนของ database จะลดลง แต่จะไปเน้นการทำงานในส่วนของโปรแกรมที่พัฒนาขึ้นมาแทน  โดย database ประเภทนี้ จะเหมาะกับข้อมูลขนาดใหญ่ ที่ไม่ซับซ้อน การทำงานที่ไม่หนักมาก สามารถทำงานกับระบบที่เป็นการทำงานแบบเรียลไทม์ (Real Time) ได้ดี

    รูปแบบการจัดเก็บ

    1. Collections การเก็บข้อมูล document ใน MongoDB จะถูกเก็บไว้ใน Collections เปรียบเทียบได้กับ Table ใน Relational Database ทั่วๆไป แต่ต่างกันที่ Collections ไม่จำเป็นที่จะต้องมี Schema เหมือนกันก็สามารถบันทึกข้อมูลได้
    2. Schemaless คือ การไม่ต้องกำหนดโครงสร้างใดๆให้มันเหมือน SQL ปกติทั่วไป เช่น Collection User มีเก็บแค่ name ต่อมาเราสามารถเพิ่มการเก็บ position เข้ามาได้เลย

    ข้อดีของ MongoDB

    1. MongoDB เป็น database แบบ Document-Oriented โดยลักษณะการเก็บข้อมูลจะใช้รูปแบบ format เป็น Json Style โดย Row แต่ละ Row ไม่จำเป็นต้องมีโครงสร้างข้อมูลเหมือนกัน เช่น

    [javascript]{

    data : “test”

    }[/javascript]

    1. MongoDB ใช้ระบบการจัดการ memory แบบเดียวกับ cached memory ใน linux ซึ่งจะปล่อยให้ OS เป็นคนจัดการ Memory
    2. ใช้ภาษา javascript เป็นคำสั่งในการจัดการข้อมูล
    3. MongoDB เป็น Full Index กล่าวคือรองรับข้อมูลมหาศาลมากๆ สามารถค้นหาจากส่วนไหนของข้อมูลเลยก็ได้
    4. MongoDB รองรับการ เพิ่ม หรือ หด field แบบรวดเร็ว ไม่ต้องใช้คำสั่ง Alter Table
    5. read-write ข้อมูลรวดเร็ว
    6. write ข้อมูล แบบ asynchronous (คล้าย INSERT DELAYED ของ MyISAM ใน MySQL) คือไม่ต้องรอ Insert เสร็จจริงก็ทำงานต่อได้
    7. MongoDB มี Capped Collection ซึ่งจะทยอยลบข้อมูลเก่าที่เก็บไว้นานเกินไปแล้วเอาข้อมูลใหม่มาใส่แทนได้ จะ clear ข้อมูลที่เก็บมานานเกินไปไว้ให้อัตโนมัติ ข้อมูลไม่โตกว่าที่เรากำหนด
    8. ค้นหาข้อมูลได้รวดเร็ว
    9. สามารถใช้เครื่อง server ที่ไม่ต้องคุณภาพสูงมากแต่แบ่งกันทำงานหลายๆเครื่อง ซึ่งประหยัดงบได้มากกว่าใช้เครื่องคุณภาพสูงเพียงเครื่องเดียว
    10. สามารถเขียนเป็นชุดคำสั่งได้ คล้ายๆกับการเขียน PL/SQL

     

    ข้อเสีย ของ MongoDB

    1. ถ้า project เก่ามีการ JOIN กันซับซ้อนก็จะเปลี่ยนมาใช้ MongoDB ได้ยาก
    2. กินพื้นที่การเก็บข้อมูลมากกว่า MySQL พอสมควร เพราะไม่มี Schema ดังนั้น Schema จริงๆจะอยู่ในทุก row ของฐานข้อมูล ทำให้ข้อมูลใหญ่กว่า MySQL
    3. หากใช้งานจน disk เต็ม จะ clear พื้นที่ disk ให้ใช้งานต่อยาก เพราะการสั่ง delete row ไม่ทำให้ฐานข้อมูลเล็กลง ต้องสั่ง compact เองซึ่งต้องมีที่ว่างที่ disk อีกลูกมากพอๆ กับพื้นที่ข้อมูลที่ใช้อยู่ปัจจุบันเป็น buffer ในการลดขนาด
    4. หากต้องการใช้งานเป็นฐานข้อมูลหลักแทน MySQL ควรมีเครื่องอย่างน้อย 3 เครื่องที่เป็น physical แยกกันทำ replication กัน เพื่อเพิ่ม durability ของข้อมูล เนื่องจากข้อมูลส่วนใหญ่ของ MongoDB จะเก็บใน Memory เป็นระยะเวลาหนึ่ง หากเครื่องดับไปเครื่อง ข้อมูลที่ยังค้างใน Memory แต่ยังไม่ write ลง disk จะสูญหายทันที

     

    คำสั่ง และ Mongo Shell เบื้องต้น

    กำหนดให้  collection = test การ Insert ข้อมูลใน Mongo Shell สามารถ save collection ได้ง่ายๆด้วย db.collectionName.save()

    db.test.save({a: 1, b: 2, c: 3})  –save ข้อมูลลง collectionName “test”

    หรือ

    db.test.save([

    { name: ‘Maliwan’ },

    { name: ‘BentoBarbeque’ }

    ]);     –save ข้อมูลลง collectionName “test”

     

    การ Query

    การค้นหาข้อมูล ใน Mongo Shell จะใช้คำสั่ง db.collectionName.find()

    db.test.find()       — ค้นหาข้อมูลทั้งหมดจาก  collectionName “test”

     

    การค้นหาโดยใส่เงื่อนไข

    db.test.find({name: ‘Maliwan’}) — ค้นหา collection test ที่มี name = Maliwan

     

    การ Update

    การ Update ข้อมูล เราจะใช้ $set operator

    db.test.update(

    {‘name’: ‘Maliwan’},

    {

    $set: {‘company’: ‘psu’}

    })    

    –ทำการ query หา collection test ที่มี name = Maliwan จากนั้นก็ทำการ update โดยเพิ่ม company ให้มีค่า ‘psu’

     

    การ Remove

    การลบข้อมูลใน MongoDB จะใช้ remove()

    db.test.remove({name: ‘Maliwan’});  –ลบข้อมูล collection test ที่ name = Maliwan ทั้งหมด

    หากต้องการกำหนดว่าให้ลบแค่ 1 record ด้วย flag justOne

    db.test.remove({name: ‘Maliwan’}, {justOne: true})   –ลบข้อมูล collection test ที่ name = Maliwan เพียง 1 record ถึงแม้จะเจอมากกว่า 1 record

     

     

     

    สามารถอ่านข้อมูลและศึกษาเพิ่มเติมได้

    https://www.mongodb.com/who-uses-mongodb

    ส่วนการติดตั้ง database สามารถเข้าไปเพิ่มเติมได้จาก

    http://docs.mongodb.org/manual/installation/

  • ตอนที่ 4 : ใช้ Report Wizard ช่วยสร้างรายงาน

    จากตอนที่แล้วได้กล่าวถึงการสร้างรายงานว่าสามารถทำได้ 2 แบบ กล่าวคือ สร้างรายงานจากไฟล์ว่างๆ หรือ ใช้ Report Wizard เป็นตัวช่วยสร้างรายงาน ซึ่ง Wizard สามารถออกแบบรายงานเป็นTable หรือ Crosstab ตามรูปแบบที่มีให้เลือก โดยทำตามขั้นตอน ดังนี้

    1. ไปที่ Solution Explorer คลิกขวาโฟลเดอร์ Reports > Add New Report จะปรากฏหน้าจอ Report Wizard ดังรูปที่ 1

    B4_pic1

    รูปที่1 Report Wizard

    2. คลิก Next เลือก Data Sources เป็นแบบ Shared หรือ Embedded Data Sources ดังรูปที่ 2

    B4_pic2

    รูปที่2 Data Sources

    3. คลิก Next เพื่อเขียน query โดยกดปุ่ม Query Builder… จะไปยังหน้าจอ Query Designer

    B4_pic3 3-7
    รูปที่3 Design Query

    4. คลิก Next จะปรากฏหน้าจอให้เลือกว่าจะสร้างรายงานเป็นตาราง (Tabular) หรือ Metrix (สามารถสรุปข้อมูลในลักษณะ Pivot Table) ดังรูปที่ 4
    B4_pic4

    รูปที่4 Report Type

     5. คลิก Next เพื่อมาออกแบบตาราง ผู้ใช้จะต้องเลือก fields ที่อยู่ใน Available fields มาใส่ใน Displayed field ในที่นี้จะจัดกลุ่มข้อมูล (Group) ตาม CAMPUS_ID, FAC_ID, DEPT_ID และ fields อื่นๆจะแสดงในส่วนของ Details

    B4_pic5

    รูปที่5 Design Table

    6. คลิก Next เพื่อเลือกรูปแบบการจัดวางข้อมูล (Layout) และคลิกเลือก Include subtotals เพื่อรวมข้อมูลในระดับที่ได้ Group ไว้ในข้อที่แล้ว (CAMPUS_ID, FAC_ID, DEPT_ID) และคลิก Next เพื่อเลือก Style ดังรูปที่ 6

    B4_pic6B4_pic7

    รูปที่6 Table Layout & Style

    7. คลิก Next จะเห็นช่อง Report name: ให้ตั้งชื่อรายงาน และกดปุ่ม Finish จะได้รายงาน ดังรูปที่ 7

    B4_pic8

    รูปที่7 ตัวอย่างรายงาน

           จากการทดลองสร้างรายงานโดยไฟล์ว่างเปล่ากับใช้Wizard เป็นตัวช่วยสร้างรายงาน พบว่า Wizard สามารถทำให้งานง่ายขึ้นได้ ซึ่งรูปแบบที่มีให้เลือกอาจจะยังไม่ถูกใจผู้ใช้ก็ค่อยมาปรับกันในทีหลังได้ เช่น Format จำนวนเงิน, ใส่ Header / Footer, ใส่ Expression ใน Textbox… ส่วนในเรื่องการคำนวณจะเป็นการรวมข้อมูลแบบตรงไปตรงมา หากผู้ใช้ต้องการการคำนวณที่ซับซ้อนขึ้นก็สามารถทำได้ เช่น อยากได้คอลัมน์ยอดเงินสุทธิ = AMOUNT – AMOUNT_FINE – AMOUNT_VAT เป็นต้น

  • ตอนที่ 3 : สร้างรายงานด้วย Business Intelligence Development Studio (BIDS)

         เครื่องมือที่ใช้สำหรับสร้างรายงาน ได้แก่ Business Intelligence Development Studio (BIDS) และ Report Builder ในตอนที่นี้จะกล่าวถึงการสร้างรายงานด้วย BIDS ซึ่งเป็นอินเตอร์เฟซ ของ Microsoft Visual Studio เหมาะสำหรับนักพัฒนาที่คุ้นเคยกับ Microsoft Visual Studio ส่วน Report Builder เป็นโปรแกรมสำหรับสร้างรายงาน เหมาะกับผู้ใช้ทั่วๆไปที่ใช้ในทางธุรกิจเป็นหลัก

    การสร้างรายงานมีขั้นตอน ดังต่อไปนี้

    ขั้นตอนที่ 1 : Create Report Server Project

    • ไปที่ File > New > Project… ดังรูปที่ 1
    • จะได้ผลลัพธ์ ดังรูปที่ 2

    3-1

    รูปที่1 Create Report Server Project

    3-2

    รูปที่2 Report Server Project Solution

    ขั้นตอนที่ 2 : Create new report 
    การสร้างไฟล์รายงาน เราสามารถทำได้ 2 แบบคือ

     แบบที่1 สร้างไฟล์รายงานว่างๆ (empty report) ดังนี้

     1. จากรูปที่ 2 คลิกขวาที่โฟลเดอร์ Report > Add > New Item… > เลือก Create a new empty report ดังรูปที่ 3

    3-3

      รูปที่3 Create a new empty report

    2. ไปที่หน้าต่าง Report Data (View > Report Data) เพื่อสร้าง Data Sources และ Datasets

             – คลิกขวาโฟลเดอร์ Data Sources > Add Data Source… ซึ่งสามารถสร้าง Connection ได้ 2 แบบ คือ

              1. Embedded Connection เป็นการฝัง Connection String ไปในตัวรายงาน ดังรูปที่ 4

                3-5

           รูปที่4 Embedded Connection Properties

              2. Use Shared Data Sources Connection ซึ่งผู้ใช้จะต้องไปสร้าง Connection String ไว้ก่อน โดยเข้าไปที่หน้าต่าง Solution Explorer คลิกขวาโฟลเดอร์ Shared Data Sources > Add New Data Source ก็จะเข้าสู่หน้าจอสร้าง Connection ดังรูปที่ 4 ข้อดีของการใช้ Shared Data Sources คือเมื่อมีการเปลี่ยน Connection String สามารถเปลี่ยนที่เดียวไม่ต้องไล่เปลี่ยนทีละรายงาน และ Deploy เฉพาะ Shared Data Sources

              3. ไปที่หน้าต่าง Report Data คลิกขวาโฟลเดอร์ Datasets จะปรากฏหน้าต่าง Dataset Properties ดังรูปที่ 5

                3-6

                          รูปที่5 Dataset Properties

    ประกอบด้วย

        – Query เป็นส่วนสร้าง query โดยผู้ใช้สามารถเลือก Dataset, Data Source และประเภทของ query (Text, Table / View, Stored Procedure หรือ Import Query File – *.sql,*.rdl) จากรูปที่ 5 เมื่อกดปุ่ม Query Designer… จะปรากฏหน้าจอดังรูปที่ 6

           3-7

                       รูปที่6 Query Designer

        จากรูปที่ 6 ในหน้าจอประกอบด้วยส่วนหลักๆ 4 ส่วน ได้แก่ Diagram Pane ที่จะแสดง Table / View ซึ่งสามารถ Add / Remove Diagram โดยกดปุ่ม 3-7-1 จะปรากฏหน้าต่างแสดงรายชื่อ Table / View ทั้งหมดในระบบมาให้ผู้ใช้เลือก และผู้ใช้สามารถเชื่อม (Join) หลายๆตารางได้

        – Fields เป็นส่วนแสดงฟิลด์ข้อมูลที่เลือกมา (Select) ซึ่งผู้ใช้สามารถตั้งชื่อ Field Name ได้ ดังรูปที่ 7

           3-7-2

              รูปที่7 Dataset Properties-Fileds

        – Filters เป็นการกรองข้อมูลที่ได้จากการ query อีกที มีประโยชน์ตอนที่ใช้ Shared Dataset ร่วมกันหลายๆรายงาน ดังรูปที่ 8

           3-7-4

             รูปที่8 Dataset Properties-Filters

        – Parameters โปรแกรมจะ Generate ให้ Auto ตอนที่ผู้ใช้เขียนเงื่อนไขในของการ query ตัวอย่างเช่น ในรูปที่ 6 มีเงื่อนไขว่า “WHERE BUDGET_YEAR = :budget_year” (ในกรณีที่ผู้ใช้สร้างตัวแปลจากหน้าต่าง Report Data > Parameters แล้วนั้นจะต้องเลือก “Parameter Value” ให้ถูกต้อง) ดังรูปที่ 9

           3-7-5

          รูปที่9 Dataset Properties-Parameters

    4.  ไปยังหน้าต่าง Toolbox (View > Toolbox) ดังรูปที่ 10

            4

                          รูปที่10 Toolbox

    ตัวอย่าง สร้างตารางเบิกจ่ายประจำปีงบประมาณ

    –  ลาก Table จาก Toolbox ทางซ้ายมือมาวางบนรายงาน ดังรูปที่ 11 คลิกมุมตารางด้านซ้าย จะปรากฏหน้าจอ Tablix Properties ดังรูปที่ 12 จากนั้นเลือก Dataset name กดปุ่ม “OK”

    4-1

                      รูปที่11 Table

    4-2

               รูปที่12 Tablix Properties

    – เลือกฟิลด์ที่ต้องการแสดงมาใส่ใน Table จัดรูปแบบตามที่ต้องการ ดังรูปที่ 13 และกด Preview เพื่อดูข้อมูล จะช่วยให้ผู้ใช้สามารถเรียกรายงานได้ทันที โดยไม่ต้อง Deploy ขึ้น Report Server ถ้ารายงานมีการระบุพารามิเตอร์ จะขึ้นหน้าจอให้กรอกข้อมูลก่อน ดังรูปที่ 14 ซึ่งถ้าหากไม่ได้กำหนดพารามิเตอร์รายงานจะแสดงผลทันที

    4-3

                     รูปที่13 Design

    4-4

                     รูปที่14 Preview

    สำหรับแบบที่ 2 ใช้ Report Wizard เป็นตัวช่วยสร้างรายงาน จะขอกล่าวถึงในตอนถัดไปค่ะ…

     

  • การเขียนโปรแกรม JSP เชื่อมต่อ ORACLE

         JSP หรือชื่อเต็มว่า Java Server Page เป็นภาษาที่ใช้ในการพัฒนา Application ที่ทำงานบนเว็บไซต์ โดยรูปแบบการทำงานจะทำงานคล้ายกับภาษา  ASP ,PHP และ .Net รูปแบบการทำงานจะแตกต่างกันตรงที่ JSP เป็น Subset ของภาษา Java โดยรูปแบบการเขียนนั้นจะใช้รูปแบบคำสั่งและชุด SDK ของ Java และใน JSP จะมีนามสกุลของไฟล์เป็น .jsp โดยการทำงานจะทำงานในรูปแบบของ Server และ Client แสดงผลและโต้ตอบกับ User Interface ผ่าน Web Browser เช่น  IE ,Chrome ,Firefox และอื่นๆ โดยจะสามารถทำงานร่วมกับ Client Tags เช่นพวก HTML / JavaScript / CSS และพวก jQuery ให้ได้ผลลัพธ์ตามที่ต้องการ ที่สำคัญ JSP สามารถใช้งานได้ฟรี และสามารถรองรับได้ทุก Platform ไม่ว่าจะเป็น Windows ,Linux และ iOS รวมทั้ง Software อื่น ๆ

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

         เริ่มต้นในการเขียนโปรแกรมที่นิยมการ connect  oracle ด้วย jsp จะใช้การ connect  ด้วย  JDBC โดยในส่วน ภาษา jsp จะสามารถใช้ packet ของ java ที่จะสามารถ import class ของ JDBC มาใช้งานใน  jsp ได้ทันที โดยไม่จำเป็นต้องเขียน โปรแรกม เพิ่มเติมให้ยุ่งยาก

     

    ขั้นตอนที่ 1 สร้างไฟล์ jsp โดยข้อมูลภายในจะมีsyntax เหมือนกับ HTML แต่ต่างกันที่นามสกุลไฟล์ จะเป็นนามสกุล .jsp

    <HTML>
    <HEAD>
    <TITLE>Simple JSP to Oracle connection Example</TITLE>
    </HEAD>
    <BODY>
    </BODY>
    <HTML>
    

    ขั้นตอนที่ 2 ทำการ import library ที่ใช้ในการเชื่อมต่อกับ database oracle ด้วย java.sql.*

    <%@ page import="java.sql.*" %>
    
    <HTML>
    <HEAD>
    <TITLE>Simple JSP to Oracle connection Example</TITLE>
    </HEAD>
    <BODY>
    </BODY>
    <HTML>
    

    ขั้นต้อนที่ 3 สร้างตัวแปลที่ใช้ในการเขื่อมต่อ

    String strdrive ="oracle.jdbc.OracleDriver";   //driver ของ oracle
    String url = "jdbc:oracle:thin:@localhost:1521:xe";  //server database
    String usr = "username";  //user name
    String pwd = "pwd";     //password 

    ขั้นต้อนที่ 4 สร้าง connection การเชื่อมต่อไปยัง database

    Connection conn = null;

    ขั้นตอนที่ 5 ทำการเชื่อมต่อกับ database โดยใช้ ตัวแปลจากข้างต้น

    <%
        Connection conn = null;
        try
        {
            Class.forName(strdrive );
            conn = DriverManager.getConnection(url, usr, pwd);
            out.println("connected....!!");
    
        }
    
        catch(Exception e)
        {
            out.println("Exception : " + e.getMessage() + "");
        }
    
    
    %>

    ขั้นตอนที่6 ต้องสร้างตัวแปลเพื่อใช้ในการประมวลผล

    Statement st; // ใช้ในการรับคำสัง sql
    ResultSet rs;  //เก็บข้อมูลที่ได้ขาการประมวลผล
    

    ขั้นตอนที่ 7 ทดสอบการทำงาน

    String SQL="select T1 from table";
    rs=st.executeQuery(SQL);
           while(rs.next())
           {
              out.println("number is: "+rs.getString(1));%>          
           } 

     

  • ตอนที่ 2 : จัดการรายงานด้วย Report Manager

    การใช้งาน Report Manager มีขั้นตอนดังต่อไปนี้

    1. เปิด Browser และพิมพ์ URL ของ Report Server ในช่อง Address โดย URL มีรูปแบบดังนี้ http://<report_server_name>/Reports 
    2. จะปรากฏ หน้าต่าง Windows Security ขึ้นมา เพื่อให้กรอก User name และ Password ในการยืนยันตัวตนเข้าสู่ระบบ
    3. หากการยืนยันตัวตนเข้าสู่ระบบถูกต้องแล้ว ก็จะสามารถเข้าสู่หน้า Home ของ Report Manager (ดูภาพประกอบที่ 1) แสดง Contents ที่ประกอบด้วย

    Home

    ภาพประกอบที่ 1 Home ของ Report Manager

          3.1 เมนูด้านบนขวาที่ใช้ตั้งค่าคุณสมบัติต่างๆ ของ Report Server ดังนี้

                » Home เป็นลิงค์ที่เชื่อมโยงไปยังหน้าหลักของ Report Server ซึ่งก็คือหน้า Home นั่นเอง ประกอบด้วยเมนู ดังนี้

    New Folder เพื่อสร้างโฟลเดอร์ไว้สำหรับเก็บรวบรวมรายงาน, Data Source, Data Model และอื่นๆ ที่มีอยู่ก่อนแล้วไว้ภายใน Folder ที่สร้างขึ้นใหม่

    New Data Source เป็นการสร้าง Data Source ขึ้นมาใหม่เพื่อใช้สำหรับเป็นแหล่งข้อมูลของการสร้างรายงาน

    Report Builder เป็นการใช้โปรแกรม Report Builder แบบ Click Launch โดย User สร้าง Ad hoc Report (โดยการอาศัย Data Model ที่ได้สร้างไว้บน Report Server นำมาใช้เป็นแหล่งข้อมูลในการสร้างรายงาน)

    Folder Settings เพื่อกำหนดบทบาทในการเข้าถึงโฟลเดอร์

    Upload File เพื่อ Upload ไฟล์ต่างๆ เช่น Report (.rdl), Model (.smdl), Shared Dataset (.rsd), Report Part (.rsc) หรือ Resource อื่นๆ มายัง Home ของ Report Server

    Layout  อยู่ด้านขวาสุดของเมนู เป็นมุมมองในการแสดงข้อมูล ซึ่งมี 2 โหมด คือ  Details View และ  Tile View

              เมื่อคลิก Dropdown ที่โฟลเดอร์จะมีเมนู เช่น Move, Delete, Security, Manage และเมื่อคลิก Dropdown ที่รายงานจะมีเมนู เช่น Move, Delete, Subscribe…, Create Linked Report, View Report History, Security, Manage, Download และ Edit in Report Builder (ดูภาพประกอบที่ 3) ซึ่งหากคลิกที่ชื่อรายงานจะไปยังหน้าจอสำหรับเรียกดูรายงาน โดยผู้ใช้สามารถ Export ไฟล์ในรูปแบบต่างๆที่ SSRS Support ดังที่ได้กล่าวเอาไว้ในตอนที่ 1 และกด Print เพื่อพิมพ์รายงาน (ดูภาพประกอบที่ 4)

    Menu Report

    ภาพประกอบที่ 3 เมนูของรายงาน

    Sale_Order

    ภาพประกอบที่ 4 View Report

                » My Subscriptions เป็นลิงค์ที่เชื่อมโยงไปยังหน้าที่แสดงการตั้ง Subscriptions ทั้งหมดของ Report Server กล่าวคือ เป็นหน้าจอที่แสดงรายการที่ผู้ใช้ได้ตั้ง Schedule สำหรับ Run รายงานเอาไว้ (ดูภาพประกอบที่ 5)

    Subscriptions ของ Report Manager

    ภาพประกอบที่ 5 Subscriptions ของ Report Manager

                » Site Setting เป็นลิงค์ที่เชื่อมโยงไปยังหน้าการตั้งค่าหน้าเว็บ Report Manager ซึ่งมี 3 ส่วน คือ

                   − General เป็นการตั้งค่า Properties ต่างๆ เช่น ชื่อ, การเก็บ History, เวลา Timeout และ Custom URL สำหรับ Report Builder (ดูภาพประกอบที่ 6)

    General - Site Settings ของ Report Manager

    ภาพประกอบที่ 6 General – Site Setting ของ Report Manager

                   − Security เป็นการกำนดบทบาท (Role) ในการเข้าถึงหน้าเว็บ Report Manager (ดูภาพประกอบที่ 7) ประกอบด้วย

                          • System Administrator สามารถดู และแก้ไขข้อมูลการตั้งค่าได้

                          • System User สามารถดูข้อมูลได้อย่างเดียว

    Security - Site Settings ของ Report Manager

    ภาพประกอบที่ 7 Security – Site Setting ของ Report Manager

                   − Schedules ป็นการกำนดตารางเวลาที่สามารถใช้ร่วมกัน โดยตอน Create Subscriptions เลือก shared schedules (ดูภาพประกอบที่ 8)

    Schedules - Site Settings ของ Report Manager

    ภาพประกอบที่ 8 Schedules – Site Setting ของ Report Manager

                » Help เป็นลิงค์ที่เชื่อมโยงไปสู่หน้า Report Manager Help ที่จะให้คำแนะนำหากเกิดการตั้งค่า หรือการทำงานที่ผิดพลาด

  • ตอนที่ 1 : มารู้จัก SSRS กันเถอะ…

              SQL Server Reporting Services (SSRS) เป็น Technology หนึ่งของ Microsoft SQL Server Services ที่ใช้ในการสร้างและบริหารจัดการรายงาน เริ่มมีใน SQL Server 2005 และในปัจจุบันเป็น SQL Server 2016 ซึ่งข้อดีของการใช้ SSRS อาทิเช่น ไฟล์รายงานเป็นภาษา Rdl ที่เป็น Text File ธรรมดาสามารถเปิดด้วย Text Editor อะไรก็ได้ (ดูภาพประกอบที่ 1) อีกทั้ง SSRS แถมฟรีมากับ SQL Server ดังนั้นหากมี License การใช้งาน SQL Server ก็จะสามารถใช้ SSRS ทำรายงานได้โดยไม่มีค่าใช้จ่ายอื่นเพิ่มเติม และเมื่อมีการ Deployed รายงานไปแล้ว รายงานจะอยู่ใน Web Server ซึ่งผู้ใช้สามารถเรียกดูรายงานผ่าน Web Browser ได้ (ดูภาพประกอบที่ 2) โดยจะต้องกำหนดสิทธิการเช้าถึง Site และสิทธิการเข้าถึงรายงาน นอกจากนั้นยังสามารถนำรายงานไปฝังตัวไว้เป็นส่วนหนึ่งของ Application ก็ได้ เป็นต้น

    1_1

    ภาพประกอบที่ 1 เปิดไฟล์ *.rdl ด้วย Notepad

    1_2

    ภาพประกอบที่ 2 เรียกดูรายงานผ่าน Web Browser

              SSRS มีสถาปัตยกรรมแบบ Multi-Tier สนับสนุนการใช้งานทั้ง Native Mode และ SharePoint mode ในที่นี้จะขอกล่าวถึงสถาปัตยกรรมของSSRSที่เป็น Native Mode ซึ่งประกอบด้วย Components ต่างๆ ดังนี้ (ดูภาพประกอบที่ 3)

    1. Report Processor เป็นตัวที่ควบคุมการทำงานทั้งหมดที่อยู่ใน Report Server ตั้งแต่ Data Processing จนถึง Authentication โดยการทำงานบางอย่างจะแสดงผลผ่าน Programmatic Interfaces
    2. Programmatic Interfaces เป็นโปรแกรมที่ทำหน้าที่รับการติดต่อการทำงานจากผู้ใช้ แสดงผลการทำงานของรายงาน และ Report Server ให้ผู้ใช้เห็น โดยจะมีการทำงานรวมทั้งนำรายงานจาก Report Server Database มาแสดงผลให้เห็นด้วย
    3. Data Processing เป็นการประมวลผลข้อมูลที่มาจาก Data Source เพื่อนำมาสร้างรายงาน โดยถูกควบคุมการประมวลผลโดย Report processor
    4. Rendering เป็นการแสดงผลรายงาน ก่อนที่จะทำการส่งไปให้ผู้ใช้หรือสั่งพิมพ์นำไปใช้งาน
    5. Report Processing เป็นการประมวลผลรายงาน โดยจะรับข้อมูลที่ถูกส่งต่อมาจาก Data Processing มาประมวลผล
    6. Authentication (Security) เป็นการยืนยันตัวตนของผู้ใช้ที่ต้องการใช้งาน Report Server โดยแสดงหน้าจอในการ Log on เข้าใช้งาน ผ่าน Programmatic interfaces หาก Log on สำเร็จผู้ใช้ก็จะสามารถเข้าใช้งานได้
    7. Scheduling and Delivery Processor เป็นตัวประมวลผลการตั้งเวลาและการส่งรายงาน ทำหน้าที่ควบคุม การส่งรายงาน จะมีการให้ผู้ใช้ที่มีสิทธิ์ได้ตั้งเวลาและทำการกำหนดการส่งรายงานให้กับเป้าหมายโดยผ่าน Programmatic interfaces
    8. Delivery เป็นการส่งรายงานให้กับผู้ใช้ที่เป็นเป้าหมาย

     

    1_3

    ภาพประกอบที่ 3 SSRS components

    ที่มา : https://msdn.microsoft.com/en-us/library/ms157231.aspx

     

    ความสามารถในการ Authoring SSRS 

    1. สร้างรายงานได้จากหลายแหล่งข้อมูล (Data Sources) ที่มีอยู่ เช่น SQL Server, Oracle, OLE DB, OLEDB-MD, ODBC, XML, SAP BI NetWeaver, Hyperion Essbase, Teradata, Microsoft SQL Azure (SQL in the Cloud), Microsoft SQL Server Parallel Data Warehouse, Microsoft SharePoint List เป็นต้น
    2. สามารถกำหนดสิทธิให้ผู้ใช้สร้างรายงานได้เอง ผ่านโปรแกรม SQL Server Report Builder
    3. สามารถใช้ Expression ในการแสดงข้อมูล ซึ่งมีหลายประเภทให้ใช้งานตามความต้องการ (ดูภาพประกอบที่ 4)
    4. สามารถจัดกลุ่มข้อมูล (Grouping), การเรียงข้อมูล (Sorting) และ การกรองข้อมูล (Filtering) รวมถึงสร้างตัวแปร, เขียนฟังก์ชั่นประมวลผลข้อมูล
    5. Layout, Table, Matrix ของรายงานมีความยืดหยุ่น
    6. นำเสนอข้อมูลที่ซับซ้อนให้ผู้ใช้รายงานเข้าใจได้ง่าย ด้วยการแสดงข้อมูลแบบ Graphic ที่แสดงภาพรวมของการสรุปข้อมูลโดยใช้ Chart หรือ Gauge
    7. สามารถ Export ไฟล์ ในรูปแบบต่างๆ XML (File With Report Data), CSV (Comma Delimited), Tiff File, Pdf, Mhtml (Web Archive), Excel และ Word เป็นต้น

    1_4

    ภาพประกอบที่ 4 Expression

    อ้างอิง:

    เคล็ดลับการทำรายงานจากฐานข้อมูล