SQL Server Reporting Services ตอนที่ 4: สร้างรายงานโดยใช้ Report Builder


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

ตอนที่:1|ตอนที่:2|ตอนที่:3
Report Builder เป็นโปรแกรมสำหรับการสร้างรายงาน ซึ่งมีหลายๆ ผลิตภัณฑ์ที่ใช้ชื่อนี้ เช่น Microsoft SQL Server Service Report Builder, MySQL Report Builder และ Oracle Report Builder เป็นต้น ซึ่งในบทความนี้จะกล่าวเฉพาะ Report Builder ของ Microsoft ซึ่ง ณ วันที่กำลังร่างบทความต้นฉบับนี้ Report Builder เป็นเวอร์ชั่น 3.0 โดย Report Builder นั้น เป็นโปรแกรมที่ถูกออกแบบ สำหรับผู้ใช้ทางธุรกิจ (Business users) ใช้ในการสร้างรายงาน ซึ่งมีอินเตอร์เฟซที่เรียบง่าย ลักษณะคล้ายกับโปรแกรม Microsoft Office ซึ่งจะแตกต่าง กับโปรแกรม Business Intelligence Development Studio (BIDS) ที่กล่าวไปแล้ว ในตอนที่3 นั้น เหมาะสำหรับนักพัฒนาที่คุ้นเคยกับ เครื่องมือ Microsoft Visual Studio โดยเครื่องมือ Report Builder นี้ ผู้ใช้ สามารถออกแบบรายงาน แสดงตัวอย่างรายงาน และสามารถเผยแพร่รายงาน ไปยังรีพอร์ตเซิร์ฟเวอร์ (SQL Server Reporting Services) ได้ทันที เราไปดูขั้นตอนการสร้างรายงานโดยใช้ Report Builder ดังนี้

ขั้นตอน การสร้างรายงานโดยใช้ Report Builder

  1. ขั้นตอน ที่หนึ่ง New Report
  2. ขั้นตอน ที่สอง New Data Sources
  3. ขั้นตอน ที่สาม New Dataset
  4. ขั้นตอน ที่สี่ Design Report
  5. ขั้นตอน ที่ห้า Deploy Report
  6. ขั้นตอน ที่หก Export Report

1. ขั้นตอน ที่หนึ่ง New Report

ทำการเปิดโปรแกรม Report Builder ตามขั้น ดังรูปที่ 1 ดังนี้

1.1 คลิกไอคอน โปรแกรม Report Builder 3.0 (หมายเลข 1)

1.2 รอสักครู่…(คุณจะเห็นหน้าต่างดังหมายเลข 2)

1.3 เมื่อโปรแกรม Report Builder เปิดขึ้นมาพร้อมใช้งาน จะแสดงหน้าต่าง Get Started (หมายเลข 3)

 


รูปที่1 Open Report Builder

1.3 จากนั้นทำการสร้างไฟล์รายงานใหม่ โดย คลิกเมนู New Report

1.4 คลิก Blank Report

1.5 คุณจะเข้าสู่หน้าต่าง Report Designer เตรียมพร้อมสำหรับการ ออกแบบรายงาน ในขั้นตอนต่อไป

 


รูปที่2 New Report

2. ขั้นตอน ที่สอง New Data Sources

เมื่อสร้างไฟล์รายงาน เป็นที่เรียบร้อย ขั้นตอนต่อไปเป็นการสร้างแหล่งข้อมูลให้ไฟล์รายงาน เพื่อเป็นการชี้แหล่งข้อมูลให้รายงานรู้ว่า ต้องไปดึงข้อมูลได้ที่ใหน ดังรูปที่ 3 ดังนี้

2.1 ในหน้าต่าง Report Data คลิกขวาบนโฟลเดอร์ Data Sources

2.2 คลิกเมนู Add Data Source…

2.3 ตั้งชื่อในช่อง Name: บทความนี้ใช้ตามค่าเริ่มต้นเป็น DataSource1

2.4 แนบค่าการเชื่อมต่อไปกับรายงาน คลิกเลือก Use a connection embedded in my report

2.5 กดปุ่ม Build…เพื่อเข้าไปกำหนดค่าการเชื่อมต่อ

2.6 กำหนดค่า การเชื่อมต่อ โดย:

2.6.1 Server name: ระบุชื่อ SQL Server

2.6.2 เลือกโหมด Use SQL Server Authentication โดยระบุ UserName และ Password

2.6.3 เลือกชื่อฐานข้อมูล ในบทความนี้ใช้ฐานข้อมูลตัวอย่าง Nortwind

2.6.3 กดปุ่ม OK

2.7 กดปุ่ม OK อีกครั้ง เสร็จสิ้นขั้นตอนการสร้าง Data Sources ดังรูปที่3

 


รูปที่3 New Data Sources

3. ขั้นตอน ที่สาม New Dataset

เมื่อสร้างแหล่งข้อมูลให้รายงานเป็นที่เรียบร้อย ต่อไปเป็นการสร้างชุดข้อมูลเพื่อนำไปออกรายงาน ตามขั้นตอนดังนี้

3.1 ในหน้าต่าง Report Data คลิกขวาบนโฟลเดอร์ Datasets

3.2 เลือกเมนู Add Dataset…

3.3 ตั้งชื่อในช่อง Name: บทความนี้ใช้ตามค่าเริ่มต้นเป็น DataSet1

3.4 กดปุ่ม Query Designer… เพื่อเข้าไปออกแบบคิวรี่ ในการดึงข้อมูลออกมา

3.5 ในหน้าต่าง Query Designer

3.5.1 ในหน้าต่าง Database view

3.5.2 คลิกขยายโฟลเดอร์ views

3.5.3 เลือก View ที่คุณต้องการนำไปออกรายงาน ในบทความใช้ View ชื่อ=Product Sales for 1997

3.6 สามารทดสอบดูข้อมูลโดยคลิกปุ่ม Run Query

3.7 คุณจะเห็นผลลัพธ์ ในช่อง Query results

3.8 กดปุ่ม OK เสร็จสิ้นขั้นตอน การออกแบบคิวรี่ (Query Designer) ดังรูปที่ 4

 


รูปที่4 Add Dataset

3.9 กดปุ่ม OK อีกครั้ง

4.0 คุณจะได้ DataSet1 แสดงขึ้นมาดังรูปที่ 5

 


รูปที่5 DataSet1

4. ขั้นตอน ที่สี่ Design Report

เมื่อเรากำหนดแหล่งข้อมูล(DataSource) กำหนดชุดข้อมูล (DataSet) ให้ไฟล์รายงานเป็นที่เรียบร้อย ขั้นตอนต่อไปเป็นการนำฟิลด์ต่างๆ ของชุดข้อมูลไปวางบนไฟล์รายงาน ดังนี้

4.1 คลิกบนแทบ Insert

4.2 คลิกเมนู Insert Table

4.3 คลิกเมนู Table Wizard…(เป็นการใช้ตัวช่วยในการเพิ่มตาราง)

4.4 เลือก Dataset1 ตามที่เราได้สร้างไว้ก่อนหน้านี้ แล้วคลิก Next

4.5 คลิก – ลากฟิลด์ไปวางในช่อง Values ดังรูปที่6

 


รูปที่6 Insert Table (1)

4.6 คลิกปุ่ม Next

4.7 คลิกปุ่ม Finish เสร็จสิ้นขั้นตอนออกแบบรายงาน


รูปที่7 Insert Table (2)

4.8 เมื่อกดปุ่ม Finish ในหน้าต่าง Report Designer คุณจะเห็นฟิลด์ต่างๆ ของชุดข้อมูลมาวางให้เป็นที่เรียบร้อย ดังรูปที่ 8

 


รูปที่8 Report Designer(1)

4.9 แต่ถ้าคุณไม่ต้องการเพิ่มตารางแบบ ใช้ตัวช่วย (Table Wizard…) คุณสามารถทำได้ด้วยตนเองดังนี้

4.9.1 คลิกขวาบนฟอร์ รายงาน แล้วเลือกเมนู Insert Table

4.9.2 ตารางว่างเปล่า จะถูกเพิ่มลงไปบนฟอร็ทรายงาน

4.9.3 คลิกฟิลด์บน Dataset ลากไปวางบน Table

4.9.4 ลาก – วางจนครบทุกฟิลด์ตามที่ต้องการ

4.9.5 ทดสอบรายงานโดยกดปุ่มรัน คุณจะเห็นผลลัพธ์ดังรูปที่ 9

 


รูปที่9 Report Designer(2)

 

4.10 คุณสามารถดูผลรายงานโดยกดปุ่ม Run ดังรูปที่ 10

 


รูปที่10 Test View Report

5. ขั้นตอน ที่ห้า Deploy Report

การเผยแพร่รายงานไปวางบน รีพอร์ตเซิร์ฟเวอร์ด้วย Report Builder สามารถทำได้ง่ายๆ ตามขั้นตอนดังนี้

5.1 คลิกเมนู Save as

5.2 คลิก Recent Sites and Servers

5.3 คลิก URL รีพอร์ตเซิร์ฟเวอร์ ในบทความนี้เป็น http://localhost/Reportserver

5.4 ตั้งชื่อไฟล์รายงานเป็น Product Sales for 1997.rdl

5.5 กดปุ่มSave เป็นการบันทึกไฟล์รายงานไว้บน รีพอร์ตเซิร์ฟเวอร์ เป็นที่เรียบร้อย

 


รูปที่11 Deploy Report

5.6 ทดสอบรายงานบน รีพอร์ตเซิร์ฟเวอร์ โดยป้อน URL http://localhost/Reportserver

5.7 คลิกบน Link ชื่อรายงาน Product Sales for 1997

4.8 คุณจะเห็นรายงานบนเบราว์เซอร์ ดังรูป

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

 


รูปที่12 View Report on
Report Server

6. ขั้นตอน ที่หก Export Report

6.1 คุณสามารถ Export รายงานไปเป็นไฟล์ข้อมูลต่างได้ เช่น *.xml,*.csv,*.pdf,*.xls,*.tif, *.doc เป็นต้น

6.2 ในบทความนี้จะยกตัวอย่าง การ Export ไฟล์รายงานไปเป็น Excel โดยกดปุ่ม Export แล้วเลือกเมนู Excel

6.3 จะขึ้นหน้าต่าง Save As ให้เลือกพาธ เพื่อบันทึกไฟล์

6.4 ให้ทำการระบุพาธ ที่ต้องการเก็บไฟล์ แล้วกดปุ่ม Save ดังรูปที่ 13

 


รูปที่13 Export report to Excel

 

6.5 เมื่อกดปุ่ม Save As แล้วรอสักครู่…เพื่อรอดาวน์โหลดไฟล์ Excel ลงมาที่เครื่องตนเอง

6.6 เมื่อดาวน์โหลดไฟล์ Excel เรียบร้อย ให้เปิดไฟล์ Excel ขึ้นมา

6.7 คุณจะเห็นรายงานบนไฟล์ Excel ดังรูปที่ 14

 


รูปที่14 Report on Excel

 

เป็นอย่างไรบ้าง กับบทความเรื่อง SQL Server Reporting Services ทั้ง 4 ตอน คิดว่าคงจะเป็นแนวทางสำหรับ นักพัฒนามือใหม่ทั้งหลาย ทีกำลังมองหา เครื่องมือในการสร้างรายงาน สำหรับแอพพลิคชั่น ที่ตนเองกำลังพัฒนา สำหรับ Reporting Services สามารถใช้งานได้ฟรี เนื่องจากแถมมากับ SQL Server อยู่แล้ว ฉะนั้นถ้าคุณผู้อ่านมี License ของ SQL Server อยู่แล้วสามารถใช้งานได้ทันทีโดยไม่ต้องเสียเงินพิ่ม และเครื่องมือในการออกแบบรายงาน คุณผู้อ่านสามารถเลือกได้ตามความถนัด นั้นคือถ้าคุณผู้อ่านเป็นนักพัฒนา ที่คุ้นเคยกับ Microsoft Visual Studio สามารถใช้ Business Intelligence Development Studio (BIDS) หรือถ้าหากคุณผู้อ่านเป็นผู้ดูแลระบบ เป็น Database Admin หรือเป็น Business users คุณผู้อ่านสามารถใช้งาน
Report Builder ได้เช่นเดียวกัน เนื่องจากมีอินเตอร์เฟซที่เรียบง่าย เหมือน Microsoft Office ที่เราใช้งานกันทุกวัน ขอบคุณ สำหรับการติดตาม พบกันโอกาสหน้า

 

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

2014-09-23

เขียนใน Uncategorized

SQL Server Reporting Services ตอนที่ 3: สร้างรายงานโดยใช้ Business Intelligence Development Studio (BIDS)


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว


ตอนที่:1|ตอนที่:2
เครื่องมือสำหรับการสร้างรายงานของ SQL Server Reporting Services (SSRS) มีด้วยกันสองตัว คือ Business Intelligence Development Studio (BIDS) และ Report Builder โดยบทความในตอนที่ 3 นี้ เป็นการสร้างรายงาน ด้วย BIDS ซึ่งเป็นเครื่องมือที่ นักพัฒนาคุ้นเคยอินเตอร์เฟซกันดีอยู่แล้ว นั่นคือ เป็นอินเตอร์เฟซ ของ Microsoft Visual Studio เนื่องจากเป็น IDE ตัวเดียวกัน เพียงแต่ BIDS ถูกปรับแต่งให้เข้ากับส่วนขยายของ SQL Server services โดยได้เพิ่มประเภทโปรเจ็กต์ รวมทั้งเครื่องมือ และคอนโทรลต่างๆ ให้เหมาะกับการพัฒนา ด้านการวิเคราะห์ข้อมูล และ Business Intelligence โซลูชั่น ที่ใช้ SQL Server Analysis Services (SSAS) SQL Server Integration Services (SSIS) และ SQL Server Reporting Services (SSRS)

โดยในบทความนี้ จะพูดถึงเฉพาะหัวข้อ SSRS ซึ่งตัวเครื่องมือ BIDS จะทำให้นักพัฒนารวมทั้งผู้ดูแลระบบฐานข้อมูล สามารถสร้างรายงาน สามารถเชื่อมต่อกับฐานข้อมูล และใช้เครื่องมือ SSRS สร้างรายงานในรูปแบบที่ซับซ้อนได้ ไปดูขั้นตอนการสร้างรายงานโดยใช้ BIDS ดังนี้

ขั้นตอนการสร้างรายงานโดยใช้ BIDS

  1. ขั้นตอน ที่หนึ่ง Create Report Server Project
  2. ขั้นตอน ที่สอง Create new report definition file
  3. ขั้นตอน ที่สาม Tool Windows in Business Intelligence Development Studio
  4. ขั้นตอน ที่สี่ Screen Design and Preview report
  5. ขั้นตอน ที่ห้า Deploy Report Server

1. ขั้นตอน ที่หนึ่ง Create Report Server Project

1.1 เปิดเครื่องมือ Business Intelligence Development Studio ดังนี้

1.1.1 กดปุ่ม Start

1.1.2 คลิกไอคอน ของ Microsoft Visual Studio 2008 (VS2008)

1.2 สร้างโปรเจ็กต์ => โดยคลิก เมนู File => จากนั้นคลิกเมนู New => แล้วคลิกเมนู Project…

1.3 ในหน้าต่าง New Project…

1.3.1 ช่อง Project Types:=> ทำการเลือก Business Intelligence Projects

1.3.2 ช่อง Templates: ทำการเลือก Report Server Project

ดังรูปที่ 1


รูปที่1 Create Report Server Project

1.4 จากข้อ 1.3.2 เมื่อกดปุ่ม OK แล้วรอสักครู่…

1.5 จากนั้น เครื่องมือ VS2008 จะทำการสร้าง Solution Report Project1 ดังรูปที่2


รูปที่2 Report Server Project Solution

2. ขั้นตอน ที่สอง Create new report definition file

การสร้างไฟล์รายงาน เราสามารถทำได้ 2 แบบคือ

  • แบบที่1 ใช้ Report Wizard เป็นตัวช่วยสร้างรายงาน
  • แบบที่ 2 Report จะเป็นการสร้างไฟล์รายงานว่างๆ(blank report) แล้วเราค่อยไปยอดฟิลด์ต่างๆลงไป

ซึ่งในบทความนี้ จะสร้างรายงานโดยใช้ตัวช่วย ในแบบที่1 ดังนี้

2.1 เริ่มสร้างไฟล์ Report โดย…

2.1.1 ไปที่หน้าต่าง Solution Explorer

2.1.2 คลิกขวาบน โฟลเดอร์ Reports

2.1.3 เลือกเมนู Add New Report ดังรูปที่ 1 หมายเลข 1

2.2 เมื่อกดเมนู Add New Report ในหมายเลข 1 จะมีหน้าต่าง Report Wizard แสดงขึ้นมา ให้กดปุ่ม Next ดังรูปที่1 หมายเลข 2

2.3 เลือก New data source=> จากนั้นตั้งชื่อในช่อง Name: บทความนี้ใช้ตาม Default คือ DataSource1 ดังหมายเลข 3

2.4 กดปุ่ม Edit เพื่อเข้าไปกำหนด การเชื่อมต่อฐานข้อมูลใหม่ ดังหมายเลข 4

2.5 ในหน้าต่าง Connection Properties ระบุชื่อ Server ในบทความใช้ .\SQLEXPRESS ดังหมายเลข 5

2.6 เลือก Use SQL Server Authentication

    2.6.1 ระบุ Database User ในช่อง user name:

    2.6.2 ระบุ password ในช่อง Password: ดังหมายเลข 6

2.7 เลือกฐานข้อมูลเป็น Northwind ดังหมายเลข 7

2.8 กดปุ่ม OK เสร็จสิ้นการสร้าง Datasource ดังหมายเลข 8

2.9 กดปุ่ม Next เพื่อเข้าสู่ขั้นตอนต่อไป ดังหมายเลข 9


รูปที่3 Create New report definition file

2.10 เข้าสู่หน้าต่าง Design the Query

2.11 กดปุ่ม Query Builder… จะเข้าสู่หน้าต่าง Query Designer

2.12 คลิกขวา ในช่องว่าง เลือก Add Table… ในหน้าต่าง Add Table เลือกแทบ Views

2.13 เลือก View ที่ชื่อ Product Sales for 1997 แล้วกด Add

2.14 เลือกฟิลด์ที่ต้องการ จากนั้นทดสอบ รัน Query เพื่อทดสอบดูข้อมูล โดยกดไอคอนรัน (ตกใจสีแดง)

2.15 กด OK เสร็จสิ้นการออกแบบ Query ดังรูปที่ 4


รูปที่4 Query Designer

2.16 คลิก Next

2.17 เลือก รูปแบบรายงานเป็น Tabular

2.18 จากนั้นคลิก Next ดังรูปที่ 5


รูปที่5 Design the Query and Select The Report Type

2.19 เลือกฟิลด์ ที่ต้องการนำไปแสดงบนรายงาน โดย…

    2.19.1 เลือกฟิลด์ในช่อง Available fields:

    2.19.2 กดปุ่ม Details>

2.20 จากนั้นกด Next เพื่อเข้าสู่ ขั้นตอนต่อไป ดังรูปที่ 6


รูปที่6 Design the Table

2.21 เลือกรูปแบบ Table ในบทความนี้เลือก รูปแบบ Slate จากนั้นกด Next

2.22 ช่อง Report name: ตั้งชื่อรายงานเป็น ProductSales จากนั้นกดปุ่ม Finish เป็นการเสร็จสิ้นขั้นตอนสร้างรายงาน


รูปที่7 Choose the Table Style

3. ขั้นตอน ที่สาม Tool Windows in Business Intelligence Development Studio

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

  • หน้าต่าง Solution Explorer
  • หน้าต่าง Properties
  • หน้าต่าง Designer
  • หน้าต่าง Toolbox

    ดังรูปที่ 8 ซึ่งเป็นหน้าต่างที่นักพัฒนา คุ้นเคยกันดี

3.1 หน้าต่าง Solution Explorer

คุณสามารถจัดการโปรเจ็กต์ต่าง ๆ ทั้งหมด ในโซลูชั่นจากหน้าต่างนี้ ในหน้าต่างนี้ คุณจะเห็นโปรเจ็กต์ ทั้งหมด รวมถึงรายการอ็อบเจ็กต์ต่างๆ ที่เกี่ยวข้องกับโปรเจ็กต์ โดยคุณสามารถเปิดโปรเจ็กต์ขึ้นมา สำหรับการจัดการอื่นๆ ได้จากหน้าต่างนี้ ในหน้าต่าง Solution Explorer คุณสามารถสร้าง โซลูชั่นที่ว่างเปล่า (empty solutions) แล้วเพิ่มโปรเจ็กต์ใหม่ หรือดึงโปรเจ็กต์มีอยู่แล้วเข้ามาได้ แต่ในกรณีที่คุณสร้างโปรเจ็กต์ใหม่ มันจะสร้างโซลูชั่นให้เองอัตโนมัติ บางครั้งถ้าคุณเผลอปิดหน้าต่าง Solution Explorer ไป คุณสามารถเปิดมันขึ้นมาใหม่อีกครั้ง โดยเข้าที่ เมนู View=>แล้วเลือก Solution Explorer

3.2 หน้าต่าง Properties

หน้าต่างนี้จะแสดงรายการคุณสมบัติของอ็อบเจ็กต์ต่างๆ ที่ถูกเปิดในหน้าต่าง Designer และคุณสามารถคลิกที่อ็อบเจ็กต์ แล้วไปแก้ไขคุณสมบัติในหน้าต่างนี้ได้ บางคุณสมบัติ(Properties) ถ้าปรากฎสีจาง แสดงว่าจะไม่สามารถแก้ไขค่าได้ อ่านค่าได้อย่างเดียวเท่านั้น หากว่าคุณเผลอปิดหน้าต่าง Properties คุณสามารถเปิดใหม่อีกครั้งทางเมนู View => แล้วเลือก Properties Window

3.3 หน้าต่าง Designer

หน้าต่าง Designer เป็นหน้าต่างเครื่องมือ ที่คุณสามารถสร้าง หรือแก้ไขอ็อบเจ็กต์ของ business intelligence (BI) ซึ่งในหน้าต่างนี้ ทำให้เรามองเห็นสองมุมมอง คือมุมมองของโค้ด(code view) และมุมองของการออกแบบอ็อบเจ็กต์(design view) เมื่อคุณเปิดอ็อบเจ็กต์ใดๆ ในโปรเจ็กต์ อ็อบเจ็กต์นั้นๆ จะถูกเปิดเฉพาะในหน้าต่างนี้ โดยหน้าต่าง Designer จะไม่ทำงาน จนกวาคุณจะเพิ่มโปรเจ็กต์ เข้าไปใน โซลูชั่นก่อน และเปิดอ็อบเจ็กต์ ที่อยู่ภายในโปรเจ็กต์ดังกล่าว

3.4 หน้าต่าง Toolbox

หน้าต่าง Toolbox แสดงความหลากหลายของไอเทม เพื่อใช้ในโปรเจ็กต์ BI โดยปกติแล้ว หน้าต่าง Toolbox จะแสดงแทบ General และอาจแสดงแทบอื่นๆ เช่น Control Flow Items, Maintenance Tasks, Data Flow Sources, หรือ Report Items ซึ่งไอเท็มที่ปรากฏบนหน้าต่างนี้ คุณสามารถลากไปวางบนหน้าต่าง Designer ได้ หากว่าคุณเผลอปิดหน้าต่าง Properties ไป คุณสามารถเปิดใหม่อีกครั้ง ทางเมนู View => แล้วเลือก Toolbox


รูปที่8 Tool Windows in Business Intelligence Development Studio

4. ขั้นตอน ที่สี่ Screen Design and Preview report

4.1 หลังจาก ตัวช่วยสร้างรายงาน สร้างรายงานเสร็จสมบูรณ์ คุณจะเห็นรายงานในแทบ Design

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


รูปที่9 Screen Design and Preview report

5. ขั้นตอน ที่ห้า Deploy Report Server

หลังจากที่คุณได้ออกแบบ และทดสอบรายงานเป็นที่เรียบร้อยแล้ว คุณสามารถใช้ฟีเจอร์ดีพลอยเมนต์ (Deployment) ในตัว BIDS เพื่อเผยแพร่(Publish) รายงานไปยังเซิร์ฟเวอร์รีพอร์ต โดยก่อนที่คุณจะสามารถดีพลอยรายงานได้ ต้องได้รับอนุญาตให้ทำเช่นนั้นก่อน ซึ่งเครื่องมือ BIDS มีโปรเจ็กต์คอนฟิก สำหรับจัดการการเผยแพร่รายงาน ขึ้นสู่เซิร์ฟเวอร์ การคอนฟิกค่าเพื่อระบุ URL ของรีพอร์ตเซิร์ฟเวอร์ราย ของ SSRS คุณสามารถกลับไปดูขั้นตอนคอนฟิก SSRS ได้ในตอนที่2 โดย URL ของรีพอร์ตเซิร์ฟเวอร์ ดูได้ที่แทบ Web Service URL ดังรูปที่ 10


รูปที่10 Report Server URL

หลังจากนั้นไปปรับเปลี่ยนพรอพเพอร์ตี้ดีพลอยเมนต์ ตามขั้นตอนดังนี้

5.1 คลิกขวาบนโปรเจ็กต์ แล้วเลือก Properties

5.2 ในหน้าต่าง Property ระบุ TargetServerURL ในบทความนี้ Report Server URL คือ
http://JANAWAT:8080/ReportServer

5.3 จากกดปุ่ม OK (ในหมายเลข 1)

5.4 คลิกขวาบนโปรเจ็กต์ แล้วคลิก Deploy (ในหมายเลข 2) เพื่อดีพลอยรายงานไปวางบน รีพอร์ตเซิร์ฟเวอร์ โดยพรอพเพอร์ตี้อื่นๆ เราปล่อยตามดีฟอลต์


รูปที่11 Deploy Report Server

5.5 เปิดเบราว์เซอร์ขึ้นมา แล้วทำการป้อน URL ReportServer => คลิกเมาส์ลงบนโฟลเดอร์ Report Project1 (ตามค่าดีฟอลต์ในรูปที่ 11)

5.6 คลิกชื่อรายงาน ProductSales ดังรูปที่12


รูปที่12 Report Server

5.7 รายงาน ProductSales จะถูกเปิดขึ้นมา ดังรูปที่ 13 เท่านี้รายงานของคุณก็พร้อมให้บริการแล้ว


รูปที่13 Report on Server Report

เครื่องมือการสร้างรายงานนอกจาก BIDS แล้วยังมีเครื่องมืออีก 1 ตัวคือ Report Builder เราจะไปพูดถึงอีกครั้งในตอนที่ 4 เรื่องสร้างรายงานโดยใช้ Report Builder แล้วพบกันใหม่

แหล่งข้อมูลอ้างอิง:

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP
2014-12-04

เขียนใน Uncategorized

SQL Server Reporting Services ตอนที่ 2: Reporting Services Configuration Manager


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

การตั้งค่า(Configure)
รีพอร์ทเซิร์ฟเวอร์ (Report server) จะใช้โปรแกรม Reporting Services Configuration ซึ่งเป็นเครื่องมือสำหรับการตั้งค่าหลังจากการติดตั้ง SSRS (SQL Server Reporting Services) เรียบร้อยแล้ว คุณสามารถการตั้งค่ารีพอร์ทเซิร์ฟเวอร์ ที่อยู่ในวงแลนเดียวกัน(local) หรืออยู่คนละที่ในระยะไกล(remote) ตราบใดที่คุณเป็นสมาชิกของกลุ่มผู้ดูแลระบบภายในบนคอมพิวเตอร์รีพอร์ทเซิร์ฟเวอร์

จากตอนที่ 1: เราได้ผ่านขั้นตอนการติดตั้ง SSRS มาแล้ว ในตอนที่2 จะเป็นการตั้งค่ารีพอร์ทเซิร์ฟเวอร์ เพื่อกำหนดว่า SSRS…ว่า

  • คุณ Deploy รายงานไปไว้ที่ใหน
  • รีพอร์ทเซิร์ฟเวอร์ ใช้ฐานข้อมูลอะไร
  • สร้างและกำหนดค่า URL รีพอร์ทเซิร์ฟเวอร์
  • ผู้ใช้งานจะเรียกดูรายงานอย่างไร

ไปดูขั้นตอนการตั้งค่ารีพอร์ทเซิร์ฟเวอร์ ดังนี้

ขั้นตอนการ Configuration

  1. การเปิดโปรแกรม Reporting Services Configuration Manager
  2. Report Server Status
  3. Service Account
  4. Web Service URL
  5. Report Server Database
  6. Report Manager URL
  7. E-Mail Settings และ Execution Account
  8. Encryption Keys และ Scale-out Deployment
  9. Report Manager Folder Settings

1. การเปิดโปรแกรม Reporting Services Configuration Manager

1.1. กดปุ่มรูป Windows บนคีย์บอร์ด หรือกด Start

1.2. พิมพ์ reporting ช่อง Search จะปรากฎ พร้อมข้อความที่คุณพิมพ์

1.3. คุณจะเห็นรายการชื่อโปรแกรมแสดงขึ้นมา คลิกเลือก Reporting Services Configuration Manager ดังรูปที่1 หมายเลข 1

1.4. โปรแกรม Reporting Services Configuration Manager แสดงขึ้นมา บนหน้าต่าง Reporting Services Configuration Connection โดยชื่อเซิร์ฟเวอร์(Server Name) และ รีพอร์ทเซิร์ฟเวอร์อินสแตนซ์ (Report Server Instance) จะกำหนดค่าเริ่มต้นเป็นเครื่องโลคอล ดังรูปที่1 หมายเลข 2


รูปที่1 Reporting Services Configuration Manager

 

2. Report Server Status

2.1 เมื่อคุณผู้อ่านเชื่อมต่อเข้าเซิร์ฟเวอร์เรียบร้อย ในหน้าแรกของโปรแกรม Reporting Services Configuration Manager คุณผู้อ่านจะเห็นสถานะ ของรีพอร์ทเซิร์ฟเวอร์ ดังรูปที่2

2.2 Report Service Status = Started เป็นการบอกว่า รีพอร์ทเซิร์ฟเวอร์ทำงานเรียบร้อย


รูปที่2 Report Service Status Started

3. Service Account

3.1 คลิกแทบ Service Account ในเมนูด้านซ้าย เพื่อกำหนดค่ารายละเอียดบัญชี

3.2 ที่นี่เรามีสองตัวเลือกเพื่อเลือกรายละเอียดบัญชี (Account) คือ

3.2.1 Use built-in account: ใช้บัญชีในเครื่องตามที่ปรากฏในหน้าจอด้านล่าง

3.2.2 Use another account: ถ้าเซิร์ฟเวอร์ของคุณถูกควบคุมโดยโดเมนแล้ว ให้เลือกหัวข้อนี้ จากนั้นป้อนชื่อผู้ใช้\โดเมนและ รหัสผ่าน

3.3 เมื่อเราเลือกบัญชีคลิกที่ปุ่ม Apply เพื่อบันทึกการตั้งค่า ในบทความนี้ใช้ Use built-in account


รูปที่3 Service Account

 

4. Web Service URL

4.1 เมื่อเราจะทำกับการตั้งค่าดังกล่าวข้างต้นในข้อ 3 แล้วให้คลิกไปที่เมนู Web Service URL เพื่อกำหนดค่าเวอร์ชวลไดเรกทอรี (Virtual Directory) ของรีพอร์ทเซิร์ฟเวอร์

4.2 เราสามารถกำหนดค่าเวอร์ชวลไดเรกทอรี ที่มีชื่อตามที่กำหนดเองใด้ หรือเราสามารถใช้ชื่อตามค่าเริ่มต้นคือ ReportServer และบทความนี้จะใช้การตั้งค่าเริ่มต้นตามที่ปรากฏในหน้าจอดังรูปที่ 4

4.3 เมื่อเราจะทำกับการกำหนดค่าดังกล่าวข้างต้นให้คลิกที่ปุ่ม Apply เพื่อบันทึกการตั้งค่า


รูปที่4 Web Service URL

 

5. Report Server Database

ตอนนี้คลิกที่เมนู Database เพื่อสร้างฐานข้อมูลใหม่ หรือใช้ฐานข้อมูลที่มีอยู่แล้วตามค่าเริ่มต้น สำหรับรีพอร์ทเซิร์ฟเวอร์ ในบทความนี้จะใช้ฐานข้อมูลตามค่าเริ่มต้น


รูปที่5 Report Server Database

6. Report Manager URL

6.1 ตอนนี้ไปที่เมนูถัดไป เมนูReport Manager URL และเลือกเวอร์ชวลไดเรกทอรี

6.2 โดยคุณผูอ่าน สามารถกำหนดชื่อได้ตามความต้องการ หรือใช้ตามค่าเริ่มต้นตามที่ปรากฏในหน้าจอดังรูปที่6

6.3 ถ้ามีการเปลี่ยนแปลงค่า ให้กดปุ่ม Apply เพื่อบันทึกการตั้งค่า


รูปที่6 Report Manager URL

 

7. E-Mail Settings และ Execution Account

ในเมนูถัดไปคือ เมนู E-Mail Settings และ Execution Account ในบทความนี้จะใช้ตามค่าเริ่มต้น


รูปที่7 E-Mail Settings และ Execution Account

8. Encryption Keys และ Scale-out Deployment

ในเมนูถัดไปคือ เมนู Encryption Keys และ Scale-out Deployment ในบทความนี้จะใช้ตามค่าเริ่มต้น


รูปที่8 Encryption Keys และ Scale-out Deployment


9. Report Manager Folder Settings

9.1 จากข้อ 6 Report Manager URL เมื่อคุณผู้อ่านคลิกลงบน Link ดังกล่าว

9.1.1 http://JANAWAT:80/Reports หรือ

9.1.2 http://<Servername>/Reports

9.2 หากคุณผู้อ่านไม่มีสิทธิ์เข้าถึง จะได้รับหน้าจอเตือนดังรูปที่9 ให้ค้างหน้าจอนี้ไว้ เดี๋ยวคุณผู้อ่านจะกลับมา Refresh ใหม่ หลังจากกำหนดสิทธิ์ เรียบร้อยแล้ว


รูปที่9 Report Manager Folder Settings

 

9.3 ให้คุณผู้อ่านเข้าไปกำหนดสิทธิ์ โดยเปิด IE ในโหมด Administrator ดังนี้

    9.3.1 คลิกขวาบนไอคอน IE แล้วเลือก Run as administrator

    9.3.2 ป้อน Report Manager URL ลงไป

9.3.3 จะเห็นว่าคุณผู้อ่านสามารถgเข้าถึง เว็บไซต์ Report Manager ได้

    9.4 เข้าไปกำหนดสิทธิ์ โดยคลิกลงบนเมนู Folder Settings ดังรูปที่ 10

 


รูปที่10 Report Manager Folder Settings (1)

 

    9.5 คลิกเมนู New Role Assignment

    9.6 บนหน้าต่าง New Role Assignment

        9.6.1 Group or user name: ให้ระบุชื่อผู้ใช้

        9.6.2 เลือก Role

        9.6.3 กด OK ดังรูปที่ 11

 


รูปที่11 Report Manager Folder Settings (2)

 

9.7 จากข้อ 9.2 ให้คุณผู้อ่าน Refresh หน้าจอใหม่อีกครั้ง จะเห็นว่าคุณผู้อ่านสามารถ เข้าถึงเว็บของ Report Manager ได้เรียบร้อยแล้ว


รูปที่12 Report Manager Folder Settings (3)

ตอนนี้ SSRS ของคุณผู้อ่านพร้อมใช้งานแล้ว ในตอนต่อไป เราจะไปสร้างรายงานกัน ในตอนที่ 3 เรื่อง สร้างรายงานโดยใช้ Business Intelligence Development Studio (BIDS) แล้วพบกันครับ

แหล่งข้อมูลดาวน์โหลด:

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์

GreatFriends Community Leader (nano)
WindowsITPro Columnist

เขียนใน Uncategorized

SQL Server Reporting Services ตอนที่ 1: Install Reporting Services


SQL Server Reporting Services (SSRS) คืออะไร?

บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว


SSRS เป็น Report Server ซึ่งเป็นซอฟแวร์ในการการสร้างรายงาน, Deploy รายงาน และจัดการรายงาน มันเป็นส่วนหนึ่งของชุด Microsoft SQL Server services ที่รวมเซอร์วิสทั้ง SQL Server Analysis Services (SSAS) และ SQL Server Integration Services (SSIS) โดย:

  • SSAS: ช่วยให้ผู้ใช้ สามารถสร้างโมเดลสำหรับการวิเคราะห์ข้อมูลเช่น Cube และ Subspace ในการวิเคราะห์ข้อมูลขนาดใหญ่ ได้อย่างรวดเร็ว
  • SSIS: ช่วยให้ผู้ใช้ สามารถบูรณาการข้อมูลจากหลายๆ แหล่งภายนอก ของฐานข้อมูล Microsoft SQL Server เพื่อนำมาสังเคราะห์ให้อยู่ในรูปแบบที่นำไปใช้ได้อย่างมีประสิทธิภาพ
  • SSRS: ช่วยให้ผู้ใช้ สามารถสร้างรายงานจากฐานข้อมูล Microsoft SQL Server ได้อย่างรวดเร็วและง่ายดาย และหัวข้อนี้เป็นเรื่องที่ จะกล่าวถึงในบความชุด SQL Server Reporting Services ซึ่งมีด้วยกัน 4 ตอน ดังจะกล่าวต่อไปนี้

บทความชุด SQL Server Reporting Services (SSRS) แบ่งเป็น 4 ตอนดังนี้

  1. SQL Server Reporting Services ตอนที่ 1: Install Reporting Services
  2. SQL Server Reporting Services ตอนที่ 2: Reporting Services Configuration Manager
  3. SQL Server Reporting Services ตอนที่ 3: สร้างรายงานโดยใช้ Business Intelligence Development Studio (BIDS)
  4. SQL Server Reporting Services ตอนที่ 4: สร้างรายงานโดยใช้ Report Builder

เซอร์วิสของ SSRS มีอินเตอร์เฟซที่เป็นเอกลักษณ์เฉพาะ ที่นักพัฒนาคุ้นเคยกันดีอยู่แล้ว นั่นคือ อินเตอร์เฟซ ของ Microsoft Visual Studio นั่นเอง โดยมีชื่อเรียกว่า Business Intelligence Development Studio (BIDS) (เราจะไปรู้จักเครื่องมือตัวนี้กันอีกครั้งในตอนที่ 3) เครื่องมือ BIDS จะทำให้นักพัฒนารวมทั้งผู้ดูแลระบบฐานข้อมูล สามารถสร้างรายงาน สามารถเชื่อมต่อกับฐานข้อมูล และใช้เครื่องมือ SSRS สร้างรายงานในรูปแบบที่ซับซ้อนได้ นอกจากนี้ SSRS ยังมีเครื่องมืออีกตัวหนึ่งชื่อ Report Builder (เราจะไปรู้จักเครื่องมือตัวนี้กันอีกครั้งในตอนที่ 4) Report Builder เป็นเครื่องมือสำหรับคนที่ไม่ใช่นักพัฒนา มีความรู้ด้านเทคนิคอลไอทีน้อย ให้สามารถสร้างรายงานที่ไม่ซับซ้อน ได้ทันที และที่สำคัญ SSRS เป็นเครื่องมือที่มีมาพร้อมกับ License ของ SQL Server อยู่แล้ว จึงไม่ต้องเสียค่า License เพิ่มเติม โดยองค์กรขนาดล็ก ก็สามารถใช้งาน SSRS ได้ เมื่อติดตั้ง Microsoft SQL Server 2008 Express with Advanced Services ซึ่งเป็นหัวข้อ ที่จะกล่าวถึงในบทความตอนที่1 นี้ ไปดูขั้นตอนการติดตั้ง SQL Server Reporting Services กันเลย

ขั้นตอนการติดตั้ง SQL Server Reporting Services

  1. Download Microsoft SQL Server 2008 Express with Advanced Services
  2. SQL Server Installation Center
  3. Feature Selection
  4. Instance Configuration
  5. Server Configuration
  6. Database Engine Configuration
  7. Data Directories
  8. Reporting Service Configuration
  9. SQL Server Reporting services
  10. Reporting service Database

1. Download Microsoft SQL Server 2008 Express with Advanced Services

1.1 เข้าไป Download Microsoft SQL Server 2008 Express with Advanced Services ได้ที่ Link นี้: http://www.microsoft.com/en-us/download/details.aspx?id=1842 ดังนี้

1.2 เปิดเบราว์เซอร์ ป้อน Like แล้ว Enter…ในหน้าต่าง Download Center คลิปุ่ม Download

1.3 เลือกไฟล์ SQLEXPRADV_x64_ENU.exe เนื่องจากเครื่องของผู้เขียนเป็น Windows 64 บิต ถ้าเครื่องคอมฯ ของผู้อ่านเป็น 32 บิต ให้เลือก SQLEXPRADV_x86_ENU.exe จากนั้นคลิกปุ่ม Next

1.4 หน้าต่าง Save As ให้เลือพาธที่ต้องการเก็บไฟล์ จากนั้นคลิก Save แล้วรอสักครู่

 


รูปที่1 Download Microsoft SQL Server 2008 Express with Advanced Services

2. SQL Server Installation Center

2.1 เมื่อไฟล์ติดตั้ง (SQLEXPRADV_x64_ENU.exe) ได้ดาวน์โหลดลงมา เรียบร้อยแล้ว ให้ดับเบิ้ลคลิก เพื่อติดตั้ง

2.2 รอแตกไฟล์ สักครู่…

2.3 เมื่อแตกไฟล์เรียบร้อย จะเริ่มติดตั้งทันที

2.4 ในหน้าต่าง SQL Server Installation Center ให้คลิก New installation or add features to an existing installation

2.5 ติ๊ก I accept the license terms.

2.6 คลิก Next


รูปที่2 SQL Server Installation Center

3. Feature Selection

3.1 หน้าต่าง Feature Selection

3.2 ในรายการของ Instance Feature ให้เลือก Reporting Services เพื่อสามารถใช้งาน
SQL Server Reporting Services

3.3 ในรายการของ Shared Feature

3.3.1 เลือก Business Intelligence Development Studio เป็นเครื่องมือสำหรับการออกแบบรายงาน (จะกล่าวถึงการใช้งานในตอนที่3)

    3.3.2 เลือก Management Tools – Basic เป็นเครื่องมือ SQL Server Management Studio สำหรับเชื่อมต่อเข้าไปที่ฐานข้อมูล เพื่อจัดการกับฐานข้อมูล

3.4 คลิก Next


รูปที่3 Feature Selection

4. Instance Configuration

4.1 หน้าต่าง Instance Configuration

    4.2 เลือก Named instance= SQLEXPRESS2008 ซึ่งผู้อ่านสามารถตั้งชื่อได้ตามต้องการ

    4.3 จากคลิก Next


รูปที่4 Instance Configuration

5. Server Configuration

5.1. หน้า Server Configuration ปล่อยตามดีฟอลต์

5.2. จากนั้นคลิก Next


รูปที่5 Server Configuration

6. Database Engine Configuration

6.1 หน้าต่าง Database Engine Configuration

6.2 เลือก Authentication Mode เป็น Mixed Mode (SQL Server authentication and Windows authentication)

6.3 ตั้งค่า Password ของ Account sa

6.4 จากนั้น คลิก Next


รูปที่6 Database Engine Configuration

7. Data Directories

7.1 คลิกแทบ Data Directories

7.2 คุณผู้อ่าน จะเห็นพาธที่เก็บไฟล์ฐานข้อมูล โดยดีฟอลต์ถูกเก็บไว้ที่: C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS2008\MSSQL\DATA

7.3 คุณผู้อ่าน สามารถเปลี่ยนแปลง แหล่งที่เก็บฐานข้อมูลใหม่ได้ที่นี่ ในบทความนี้ปล่อยตามค่าเริ่มต้น


รูปที่7 Data Directories

8. Reporting Service Configuration

8.1 หน้าต่าง Reporting Service Configuration

8.2 เลือก Install the native mode default configuration.

8.3 กด Next

 


รูปที่8 Reporting service Configuration

 

8.4 Install Complete กด ปุ่มClose


รูปที่9 Reporting service Install Complete

9. SQL Server Reporting services

9.1 เมื่อติดตั้งเรียบร้อย

9.2 คุณผู้อ่านจะมีเซอร์วิส SQL Server Reporting Services(SQLEXPRESS2008) รันอยู่ในระบบ

ดังนี้


รูปที่10 SQL Server Reporting services

10. Reporting service Database

10.1 เมื่อติดตั้ง SSRS เรียบร้อย

10.2 เซอร์วิส SSRS ทำงานเรียบร้อย ให้เข้าไปดูฐานข้อมูล SSRS โดย

10.2.1 เปิดโปรแกรม SQL Server Management Studio

10.2.2 ป้อน Server name: .\SQLEXPRESS2008 (.) หมายถึง เครื่องตัวเอง (Localhost)

10.2.3 เลือก Authentication: เป็น SQL Server Authentication

10.2.3.1 ป้อน Login: sa

10.2.3.2 ป้อน Password: ตามที่กำหนดไว้ในขั้นตอนติดตั้งที่ 6. Database Engine Configuration

10.3 กด Connect เพื่อเชื่อมต่อ

10.4 ในหน้าต่าง Object Explorer คุณผู้อ่านจะเห็นฐานข้อมูลของ SSRS ชื่อ

10.4.1 ReportServer$SQLEXPRESS2008 และ

10.4.2 ReportServer$SQLEXPRESS2008TempDB

ดังนี้


รูปที่11 Reporting service Database

 

ตอนนี้ SSRS ของคุณผู้อ่าน ใกล้พร้อมใช้งานแล้ว ต้องทำต่ออีกนิดในตอนต่อไป ในตอน Reporting Services Configuration Manager เพื่อกำหนดว่า SSRS เราจะ Deploy รายงานไปไว้ที่ใหน ผู้ใช้งานจะเรียกดูรายงานอย่างไร แล้วพบกัน

 

แหล่งข้อมูลดาวน์โหลด:

 

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

2014-11-22

เขียนใน Uncategorized

อิมพอร์ตข้อมูลจาก Excel บันทึกลง ฐานข้อมูล SQL Server โดยใช้ EPPlus ตอนที่ 2 Export Excel


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

จากบทความอิมพอร์ตข้อมูลจาก Excel…ในตอนที่ 1
คุณผู้อ่านได้รู้จักการอิมพอร์ตข้อมูลจาก
Excel
บันทึกลง ฐานข้อมูล
SQL Server โดยใช้ EPPlus ไปแล้ว
มาในตอนที่
2 นี้ เป็นการกล่าวถึงการเอ็กซ์พอร์ต (Export)
ข้อมูลออกไปเป็นรายงาน Excel

โดยเราจะนำโปรเจ็กต์ในตอนที่
1 มาใช้ต่อ ซึ่งข้อมูลที่คุณผู้อ่านจะนำไปสร้างรายงานบน Excel นั้น
จะใช้ข้อมูลใน
View Category Sales for 1997 ซึ่งเป็นตัวอย่าง View
ที่มีอยู่ในฐานข้อมูล
Northwind อยู่แล้ว ไม่ต้องสร้างใหม่
โดยคุณผู้อ่านจะได้ใช้
EPPlus Export ข้อมูลการขายเหล่านั้น
ออกไปเป็นรายงานบน
Excel พร้อมสร้างเป็นกราฟด้วย
ไปดูขั้นตอนการพัฒนาโปรแกรมกันเลย

ขั้นตอนการพัฒนาโปรแกรม

  • ขั้นตอนที่ หนึ่ง ออกแบบหน้าจอ
  • ขั้นตอนที่ สอง เพิ่มรูปภาพ
  • ขั้นตอนที่ สาม Update LINQ Data Model
  • ขั้นตอนที่ สี่ เขียนโค้ด
  • ขั้นตอนที่ ห้า ทดสอบโปรแกรม

 

ขั้นตอนที่ หนึ่ง ออกแบบหน้าจอ

1.1. ให้คุณผู้อ่านเปิดโปรเจ็กต์ ตอนที่ 1 ขึ้นมา

1.2. เปิดไฟล์ ImportExcel.aspx

1.3. จากนั้นทำการเพิ่มปุ่ม Button หนึ่งอัน

1.4. ระบุป้ายชื่อเป็น Export Excel Chart ดังรูปที่1

รูปที่ 1 ออกแบบหน้าจอ

 

ขั้นตอนที่ สอง เพิ่มรูปภาพ

เมื่อเพิ่มปุ่ม Export…เป็นที่เรียบร้อยแล้ว
เรายังไม่เขียนโค้ดในตอนนี้
จะไปทำการเพิ่มรูปโลโก้ WindowsITPro
เข้ามาก่อน ซึ่งหา Download ได้บนเว็บ http://windowsitpro.net
ขั้นตอนการเพิ่มรูปมีดังนี้

2.1. คลิกขวาบนโปรเจ็กต์ ImportExportExcelWithEPPlus

2.2. เลือกเมนู Add

2.3. เลือก New Folder

2.4. ตั้งชื่อโฟลเดอร์เป็น Images ดังรูปที่ 2

รูปที่ 2 สร้างโฟลเดอร์ Images

2.5. คลิกขวาบนโฟลเดอร์ Images

2.6. เลือกเมนู Add

2.7. เลือกเมนู Existing Item…

2.8. เบราว์ไปยังพาธที่เก็บรูปโลโก้ แล้วเลือกรูปที่เตรียมไว้

2.9. กดปุ่ม Add ดังรูปที่3

รูปที่ 3 เพิ่มรูปภาพ

 

ขั้นตอนที่ สาม Update LINQ Data Model

เมื่อออกแบบหน้าจอ และเพิ่มไฟล์รูปภาพโลโก้ เป็นที่เรียบร้อยแล้ว
ขั้นตอนนี้ เราไปเพิ่ม DataModel ของ View Category Sales for 1997

เพื่อ
เอ็กซ์พอร์ตข้อมูลออกมาเป็นรายงานบน Excel ตามขั้นตอนดังนี้

3.1 ในหน้าต่าง Solution Explorer คลิกโฟลเดอร์ DAL

3.2 ดับเบิ้ลคลิกเปิดไฟล์ Northwind.dbml

3.3 เมื่อไฟล์ Northwind.dbml เปิดขึ้นมา คุณจะเห็นว่า มีอ็อบเจ็กต์โมเดลของ Customer อยู่ ซึ่งเป็นของตอนที่1

3.4 คลิก Link Server Explorer เพื่อจะเข้าไปเพิ่มอ็อบเจ็กต์ Data Model ใหม่เข้ามา

3.5 หน้าต่าง Server Explorer จะเปิดขึ้นมา

3.5 ในหน้าต่าง Server Explorer คลิก NorthwindConnectionString1 (ImportExcelWithEPPlus)

3.6 คลิกขยายโฟลเดอร์ Views

3.7 คลิกอ็อบเจ็กต์ View Category Sales for 1997 ค้างไว้ แล้วลากไปวางบนพื้นที่ออกแบบ(Design surface) ดังรูปที่4

3.8 Build โปรเจ็กต์ หนึ่งครั้ง เพื่อ Update LINQ Data Model


รูปที่ 4
เพิ่มอ็อบเจ็กต์ View Category Sales for 1997

 

ขั้นตอนที่ สี่ เขียนโค้ด

เมื่อออกแบบหน้าจอ

เพิ่มไฟล์รูปภาพโลโก้
และ

Update LINQ Data Model เป็นที่เรียบร้อยแล้ว
ไปเขียนโค้ดบนปุ่ม ExportExcelChart ดังนี้


 

ขั้นตอนที่ ห้า ทดสอบโปรแกรม

เมื่อเขียนโค้ดเป็นที่เรียบร้อยแล้ว ไปทดสอบรันโปรแกรมกันเลย ดังนี้

5.1 กดปุ่ม F5 บนคีย์บอร์ด

5.2 กดปุ่ม Export Excel Chart

5.3 เลือกพาธที่ต้องการบันทึกไฟล์ Excel

5.4 กดปุ่ม Save

5.6 รอชั่วพริบตา เมื่อไฟล์ Excel โหลดเรียบร้อยแล้วให้เปิดขึ้น

5.6 คลิกบนไฟล์ Excel เลือกแสดงในโฟลเดอร์

5.7 ดับเบิ้ลคลิกไฟล์ ดังรูปที่5


รูปที่ 5 ทดสอบ Export Excel Chart

 

5.8 รายงานบนไฟล์ Excel คุณผู้อ่านจะได้ดังรูปที่6

5.9 คุณผู้อ่านจะเห็น ช่วงข้อมูลที่นำไปสร้างกราฟ
เริ่มที่แถวที่ 7 นั่นจึงเป็นเหตุผลว่าในขั้นตอนการเขียนโค้ด
ประกาศตัวแปร เก็บแถวสุดท้าย
ต้อง +6 [string endRow = (CategorySales.Count() + 6).ToString();]

เพื่อที่จะวางข้อมูลที่จะใช้สร้างกราฟตั้งแต่แถวที่ 7 เป็นต้นไปนั่นเอง

5.10 และการประกาศตัวแปร เก็บแถวสุดท้าย อันที่สอง
เพื่อวางข้อมูล Total คุณผู้อ่านจะเห็นว่า
ได้นำเอาแถวสุดท้ายของข้อมูล+1 [string endRow2 = (int.Parse(endRow) + 1).ToString();]

เพื่อวางข้อมูล Total ในแถวสุดท้าย ที่ต่อจากข้อมูลที่ใช้สร้างกราฟ


รูปที่ 6 ไฟล์ Excel Chart

 

การอิมพอร์ต และเอ็กซ์พอร์ตข้อมูล Excel

ผ่านคอมโพเนนต์ EPPlus มีข้อดีคือ

  • ไม่ต้องติดตั้ง โปรแกรม Excel ไว้บนเว็บเซอร์ฟเวอร์
  • ไม่ต้อง Upload ไฟล์ excel ไปวางบนฮาร์ดดิสก์ของเว็บเซอร์ฟเวอร์
  • สามารถใช้ LINQ ในการเชื่อมต่อกับฐานข้อมูล ซึ่งทำให้การเขียนโค้ดใช้เวลาน้อยลง โค้ดสั้นลง
    แล้วพบกันโอกาสหน้าครับ

 

แหล่งข้อมูลดาวน์โหลด

  • ตัวอย่างโปรเจ็กต์
    ตอนที่1:
    ImportExcelWithEPPlus: http://1drv.ms/1k7BhC0
  • ตัวอย่างโปรเจ็กต์
    ตอนที่2:
    ImportExcelWithEPPlus_Part2: http://1drv.ms/1n5xHfU

 

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

2014-09-23

เขียนใน Uncategorized

อิมพอร์ตข้อมูลจาก Excel บันทึกลง ฐานข้อมูล SQL Server โดยใช้ EPPlus ตอนที่ 1 Import Excel


บทความจาก นิตยสาร WindowsITPro
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

โปรแกรมเมอร์
ที่พัฒนาโปรแกรมด้านงานธุรกิจ(Business Applications)
คงหนีไม่พ้น ที่จะเกี่ยวข้องกับข้อมูลบน Excel

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

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

ครั้งหนึ่งนานมาแล้ว
ผมเคยเขียนบทความเกี่ยวกับ การอิมพอร์ตข้อมูล Excel
เข้าฐานข้อมูล Microsoft SQL แต่เป็นการอ่านข้อมูล Excel
ผ่าน Provider Microsoft.Jet.OLEDB

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

สามารถติดตามบทความ: Uploads Excel files to SQL DB
ได้ที่: http://greatfriends.biz/webboards/msg.asp?id=62078

กลับมาในบทความนี้ ผมจะแสดง อีกหนึ่งตัวอย่างของการอิมพอร์ตข้อมูล Excel
เข้าฐานข้อมูล Microsoft SQL โดยใช้คอมโพเนนต์ชื่อ EPPlus (อี-พี-พลัส)
ซึ่งผมจะใช้ตัวอย่างข้อมูลในตาราง Customer ของฐานข้อมูลตัวอย่าง
Northwind
ก่อนอื่นไปสำรวจสิ่งที่จำเป็นในบทความกันก่อน ดังนี้

สิ่งที่จำเป็น (Prerequisites)

ขั้นตอนการพัฒนาโปรแกรม

  • ขั้นตอน ที่หนึ่ง การสร้างโปรเจ็กต์
  • ขั้นตอน ที่สอง การออกแบบหน้าจอ
  • ขั้นตอน ที่สาม การเขียนโค้ด
  • ขั้นตอน ที่สี่ การทดสอบ

ขั้นตอน ที่หนึ่ง การสร้างโปรเจ็กต์
เมื่อมีเครื่องมือพร้อมแล้ว

ทำการเปิด Visual Studio Express 2013 for Web ขึ้นมา
แล้วทำตามขั้นตอนดังนี้
1.1. ในหน้า Start Page คลิก New Project…
1.2. ในหน้าต่าง New Project คลิก Web
1.3. เลือก ASP.NET Web Application Visual C#
1.4. ระบุชื่อโปรเจ็กต์ในช่อง Name: เป็น ImportExcelWithEPPlus
1.5. แล้วกด OK
1.6. บนหน้าต่าง New ASP.NET Project – ImportExcelWithEPPlus เลือกเทมเพลต Web Forms
1.7. Visual Studio จะติ๊กถูก Web Forms อัตโนมัติ
1.8. คลิก OK
1.9. เราไม่ได้นำเว็บไปวางบนคลาวน์ กด No thanks and do not ask me again
1.10. แล้วรอสักครู่… Visual Studio กำลังสร้างโปรเจ็กต์ ดังรูปที่1

รูปที่ 1 ขั้นตอน การสร้างโปรเจ็กต์

 

1.11. เมื่อสร้างโปรเจ็กต์ เรียบร้อย คุณผู้อ่านจะได้หน้าจอดังรูปที่2

รูปที่ 2 สร้างโปรเจ็กต์ ImportExcelWithEPPlus เรียบร้อย

 

ขั้นตอน ที่สอง การออกแบบหน้าจอ
หลังจากสร้างโปรเจ็กต์เป็นที่เรียบร้อย

เราไปทำการออกแบบหน้าจอ ตามขั้นตอน
ดังนี้

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

2.1.1 เลือกเมนู Add
2.1.2 เลือกเมนู New Item…
2.1.3 บนหน้าต่าง Add New Item – ImportExcelWithEPPlus เลือก Web Form with Master Page
2.1.4 ตั้งชื่อฟอร์มในช่อง Name: เป็น ImportExcel
2.1.5 คลิก Add
2.1.6 แล้วเลือกไฟล์ Master page ชื่อ Site.Master
2.1.7 จากคลิก OK เสร็จสิ้นขั้นตอน
การสร้างฟอร์ม ดังรูปที่3

รูปที่ 3 การสร้างฟอร์ม

2.1.8 เมื่อสร้างฟอร์มเรียบร้อย คุณจะได้หน้าจอดังรูปที่ 4

รูปที่ 4 สร้างฟอร์ม เรียบร้อย

2.2 การออกแบบหน้าจอ
เมื่อสร้างฟอร์มเรียบร้อย ลำดับต่อไป
เราจะไปทำการออกแบบหน้าจอโปรแกรมกัน ตามขั้นตอนดังนี้
2.2.1 วางเคอร์เซอร์บนฟอร์ม (MainContent
(Custom))
2.2.2 แล้วไปทำการเพิ่มตาราง (Table) เพื่อจัดวางเลย์เอ๊าต์ของคอนโทรล โดยคลิกเมนู TABLE => Insert Table
2.2.3 บนหน้าต่าง Insert Table ทำการกำหนด ให้ตารางมี 3 แถว
2.2.4 และ 1 คอลัมน์
2.2.5 จากนั้น กด OK
2.2.6 เพิ่มตารางสำหรับวางคอนโทรล เป็นที่เรียบร้อย ดังรูปที่5

รูปที่ 5 การเพิ่มตาราง

2.2.7 จากนั้นทำการลากคอนโทรลไปวาง
ดังนี้
2.2.7.1 แถวที่ 1 ระบุข้อป้ายความ Import Excel เพื่อบอกผู้ใช้ว่า หน้าจอนี้ ทำอะไร

2.2.7.2 แถวที่ 2 ใส่คอนโทรล FileUpload และปุ่ม Button
2.2.7.3 แถวที่ 3 ใส่คอนโทรล Label และ GridView ดังรูป6 หรือดูโค้ด Markup html ในไฟล์ ImportExcel.aspx

รูปที่ 6 ออกแบบหน้าจอ เรียบร้อย

2.2.8 โค้ด Markup เป็นดังนี้

ไฟล์ ImportExcel.aspx

<%@
Page
Title=””
Language=”C#”
MasterPageFile=”~/Site.Master”
AutoEventWireup=”true”
CodeBehind=”ImportExcel.aspx.cs”
Inherits=”ImportExcelWithEPPlus.ImportExcel”
%>

<asp:Content
ID=”Content1″
ContentPlaceHolderID=”MainContent”
runat=”server”>

<table
class=”nav-justified”>


<tr>


<td>Import Excel</td>
<%–แถวที่ 1 –%>


</tr>


<tr>


<td>
<%–แถวที่ 2 –%>


<asp:FileUpload
ID=”FileUpload1″
runat=”server”
/>
&nbsp;


<asp:Button
ID=”btImport”
runat=”server”
OnClick=”btImport_Click”
Text=”Import Excel”
/>


</td>


</tr>


<tr>


<td>
<%–แถวที่ 3 –%>


<asp:Label
ID=”Label1″
runat=”server”
Text=”Label”/>


<asp:GridView
ID=”GridView1″
runat=”server”/>


</td>


</tr>

</table>

</asp:Content>

 

2.3 การสร้าง LINQ to SQL Class
เมื่อออกแบบหน้าจอเรียบร้อยแล้ว
ลำดับต่อไปเป็นการสร้าง LINQ เพื่อเชื่อมต่อกับฐานข้อมูล
ตามขั้นตอนดังนี้

2.3.1 คลิกขวาบนชื่อโปรเจ็กต์ => เลือกเมนู Add
2.3.2 เลือกเมนู New Item…
2.3.3 บนหน้าต่าง Add New Item – ImportExcelWithEPPlus => พิมพ์ linq ในช่องค้นหา
2.3.4 จะเห็นไอเท็ม LINQ to SQL Class แสดงขึ้นมา=> จากนั้นทำการคลิกเลือก
2.3.5 ในช่อง Name: => ให้ตั้งชื่อเป็น Northwind.dbml
2.3.6 คลิก Add ดังรูปที่7

รูปที่ 7
สร้าง LINQ to SQL Class

2.4 สร้าง Connection
2.4.1 สร้าง Connection คลิกไอคอนรูปปลั๊กไฟ
2.4.2 เลือกเซอร์ฟเวอร์บนเครื่องตัวเอง => .\SQLEXPRESS (. เครื่องหมายจุด หมายถึง Localhost หรือเครื่องตัวเอง ที่โปรแกรมรันอยู่)
2.4.3 ระบุ UserName และ Password
2.4.4 เลือกฐานข้อมูล โดยในตัวอย่างนี้จะใช้ฐานข้อมูล Northwind
2.4.5 กด OK
2.4.6 จะเห็นชื่อ Data Connection
2.4.7 จากคลิกเลือกตาราง => แล้วลากไปวางบน หน้าต่าง Design Surface ดังรูปที่ 7

รูปที่ 8
สร้าง Connection

2.4.8 เราจะได้ Data Model ของ LINQ ดังรูปที่ 9

รูปที่ 9
LINQ Data Model

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

3.1 Add Referent EPPlus.dll
การ Add Referent
EPPlus.dll ทำได้สองวิธีคือ

  • การ Add ด้วยตนเอง
  • และ การ Add โดยการติดตั้งผ่าน Package Manager Console
    ขั้นตอน
    การAdd Referent ดังนี้

3.1.1 ดาวน์โหลดไฟล์ EPPlus.dll ได้ที่ http://epplus.codeplex.com/releases/view/89923
3.1.2 เลือกดาวโหลดไฟล์ EPPlus 3.1.3 Binary
(เวอร์ชั่น ณ วันที่กำลังร่างบทความต้นฉบับ
24/4/2557)
3.1.3 จากนั้นทำการแตกไฟล์ คุณจะเห็นไฟล์ EPPlus.dll อยู่ภายใน
3.1.4 ให้ทำการ Add Referent EPPlus.dll
เข้ามาในโปรเจ็กต์
3.1.5 หรือ ติดตั้ง EPPlus ผ่าน
Package Manager Console
โดยเปิดหน้าต่าง Package Manager Console ขึ้นมาดังนี้
3.1.5.1 คลิกบนเมนู TOOLS=>
3.1.5.2 คลิกเมนู NuGet Package Manager =>
3.1.5.3 แล้วเลือก Package Manager Console
3.1.6 เมื่อหน้าต่าง Package Manager Console แสดงขึ้นมาแล้ว ทำการรันคำสั่งดังนี้
3.1.6.1 ป้อนคำสั่ง Install-Package EPPlus -Version 3.1.3.3 หลังเครื่องหมาย PM> จากนั้นกดปุ่ม Enter
3.1.6.2 รอสักครู่ เมื่อ Package EPPlus
ติดตั้งเรียบร้อย คุณจะเห็น EPPlus อยู่ใน Referent เรียบร้อย
3.1.7 จากนั้นทการเขียนโค้ด ตามไฟล์ ImportExcel.aspx.cs ดังนี้

ไฟล์ ImportExcel.aspx.cs

using OfficeOpenXml;

using System;

using System.Collections.Generic;

using System.IO;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

namespace ImportExcelWithEPPlus

{


public
partial
class
ImportExcel : System.Web.UI.Page

{


protected
void Page_Load(object sender, EventArgs e)

{

 

}

 


protected
void btImport_Click(object sender, EventArgs e)

{


//ประกาศตัวแปล: lsCustomer เป็นอ็อบเจ็กต์ List ของ Customer


List<DAL.Customer> lsCustomer = new
List<DAL.Customer>();

 


//ถ้าคอนโทรล FileUpload มีไฟล์ และเป็นไฟล์ นามสกุล .xlsx


if (FileUpload1.HasFile && Path.GetExtension(FileUpload1.FileName) == “.xlsx”)

{

 


//ใช้ using statement ประกาศตัวแปล: excel เป็นอ็อบเจ็กต์ ExcelPackage โดยผ่านอินพุตสรีมที่อ่านได้จาก FileUpload1


using (var excel = new
ExcelPackage(FileUpload1.PostedFile.InputStream))

{


//ประกาศตัวแปล worksheet โดยกำหนดให้เท่ากับ sheet แรก


var worksheet = excel.Workbook.Worksheets.First();

 


//วนลูบแถวข้อมูลใน Excel โดยเริ่มที่ 2 จนถึงแถวสุดท้าย


for (int row = 2; row <= worksheet.Dimension.End.Row; row++)

{


//ประกาศตัวแปล เก็บข้อมูลคอลัมน์ต่างๆ


var CustomerID = worksheet.Cells[row, 1].Value;//คอลัมน์ 1


var CompanyName = worksheet.Cells[row, 2].Value;//คอลัมน์ 2


var ContactName = worksheet.Cells[row, 3].Value;//คอลัมน์ 3


var ContactTitle = worksheet.Cells[row, 4].Value;//คอลัมน์ 4


var Address = worksheet.Cells[row, 5].Value;//คอลัมน์ 5


var City = worksheet.Cells[row, 6].Value;//คอลัมน์ 6


var Region = worksheet.Cells[row, 7].Value;//คอลัมน์ 7


var PostalCode = worksheet.Cells[row, 8].Value;//คอลัมน์ 8


var Country = worksheet.Cells[row, 9].Value;//คอลัมน์ 9


var Phone = worksheet.Cells[row, 10].Value;//คอลัมน์ 10


var Fax = worksheet.Cells[row, 11].Value;//คอลัมน์ 11

 


//เพิ่มข้อมูลที่อ่านได้จาก Excel ใส่เข้าไปในอ็อบเจ็กต์ List ของ Customer

lsCustomer.Add(new DAL.Customer

{

 

CustomerID = CustomerID == null ? “” : CustomerID.ToString(),

CompanyName = CompanyName == null ? “” : CompanyName.ToString(),

ContactName = ContactName == null ? “” : ContactName.ToString(),

ContactTitle = ContactTitle == null ? “” : ContactTitle.ToString(),

Address = Address == null ? “” : Address.ToString(),

City = City == null ? “” : City.ToString(),

Region = Region == null ? “” : Region.ToString(),

PostalCode = PostalCode == null ? “” : PostalCode.ToString(),

Country = Country == null ? “” : Country.ToString(),

Phone = Phone == null ? “” : Phone.ToString(),

Fax = Fax == null ? “” : Fax.ToString(),

});

}

 

 


//ใช้ using statement ประกาศตัวแปล: dc เป็นอ็อบเจ็กต์ ของ NorthwindDataContext


using (DAL.NorthwindDataContext dc = new DAL.NorthwindDataContext ())

{


//วนลูบ อ็อบเจ็กต์ List ของ Customer


foreach (var item in lsCustomer)

{


//คิวรี่ข้อมูล มาตรวจสอบ


var q = dc.Customers

.Where(t => t.CustomerID == item.CustomerID )

.FirstOrDefault();

 


//ถ้ายังไม่มีข้อมูล อยู่ในฐานข้อมูล (ให้เพิ่มได้)


if (q == null)

{


//ประตัวแปล:newCus โดยกำหนดให้เท่ากับ อ็อบเจ็กต์ใหม่ของ Customer


//พร้อมกับกำหนดค่าให้ อ็อบเจ็กต์ใหม่ของ Customer


var newCus = new DAL.Customer

{

CustomerID = item.CustomerID,

CompanyName = item.CompanyName,

ContactName = item.ContactName,

ContactTitle = item.ContactTitle,

Address = item.Address,

City = item.City,

Region = item.Region,

PostalCode = item.PostalCode,

Country = item.Country,

Phone = item.Phone,

Fax = item.Fax,

};

 


//เพิ่มอ็อบเจ็กต์ใหม่ของ Customer เข้าไปในเอ็นทีตี้ Customers

dc.Customers.InsertOnSubmit(newCus);

 


//ส่งอ็อบเจ็กต์ใหม่ของ Customer บันทึกลงฐานข้อมูล

dc.SubmitChanges();

}

 

}

}

 


//ผูกข้อมูลเข้า DataSource ของ GridView

GridView1.DataSource = lsCustomer.ToList();

 


//แสดงผ่านหน้าจอ

GridView1.DataBind();

 


//แสดงป้าย บอกให้ผู้ใช้งานทราบสถานะ การทำงาน

Label1.Text = “บันทึกข้อมูลเรียบร้อย”;

}

}


else

{


//แสดงป้าย บอกให้ผู้ใช้งานทราบสถานะ การทำงาน

Label1.Text = “คุณไม่ได้ระบุไฟล์ที่จะอัปโหลด”;

}

}

}

}

 

ขั้นตอน ที่สี่ ทดสอบ

4.1 เตรียมรูปแบบไฟล์ Excel
เมื่อเขียนโค้ดเรียบร้อย
มาถึงขั้นตอนการทดสอบโปรแกรม
ให้เตรียมรูปแบบไฟล์ Excel ที่จะอิมพอร์ตเข้า ดังรูปที่10 (หมายเลข 1)

ตามรูปแบบของตาราง Customer รูปที่10 (หมายเลข 2)
แล้วใส่ข้อมูลดังรูปที่10


รูปที่ 10
รูปแบบไฟล์ Excel สำหรับเตรียมข้อมูล อิมพอร์ต

4.2 รันโปรแกรม
4.2.1 กด F5 รันโปรแกรม
จากนั้นกดปุ่มเลือกไฟล์
4.2.2 เลือกไฟล์ Excel
4.2.3 กดปุ่ม Open
4.2.4 จะเห็นชื่อไฟล์ แสดงบนฟอร์ม ดังรูปที่ 11


รูปที่ 11 เลือกไฟล์ Excel

4.2.4 กดปุ่ม Import Excel เราจะเห็นข้อมูล Excel แสดงบนหน้าจอ ดังรูป12

รูปที่ 12 อิมพอร์ตไฟล์ Excel เข้าฐานข้อมูลเรียบร้อย

4.2.5 ตรวจสอบข้อมูลในฐานข้อมูล กรองเฉพาะ CustomerID ที่ขึ้นต้นด้วย NANO เราจะเห็นข้อมูลดังรูปที่ 13


รูปที่ 13 ตรวจสอบคิวรี่ ข้อมูลที่อิมพอร์ต

การอิมพอร์ตข้อมูล Excel ผ่านคอมโพเนนต์ EPPlus จะต่างกับการอิมพอร์ตผ่าน Provider Microsoft.Jet.OLEDB คือ

  • ไม่ต้องติดตั้ง ไลบรารี่ของ Excel ไว้บนเว็บเซอร์ฟเวอร์
  • ไม่ต้อง Upload ไฟล์ excel ไปวางบนฮาร์ดดิสก์ของเว็บเซอร์ฟเวอร์
  • สามารถใช้ LINQ ในการเชื่อมต่อกับฐานข้อมูล
    ซึ่งทำให้การเขียนโค้ดใช้เวลาน้อนลง โค้ดของเราสั้นลง

ในตอนต่อไป เราจะไปดูการเอ็กซ์พร์อตข้อมูลไปเป็น Excel แล้วพบกันครับ

แหล่งข้อมูลดาวน์โหลด

แหล่งข้อมูลอ้างอิง:

 

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

2014-09-19

 

เขียนใน Uncategorized

โปรแกรมเมอร์ มีความสุข เกิดสมาธิ จากการเขียนโค้ด โปรดักทิวีตี้เพิ่มขึ้น ตอนที่ 3


บทความจาก นิตยสาร WindowsITPro (April – May 2014)
ได้ขออนุญาตทางบก. เรียบร้อยแล้ว

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

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

ชีวิตคนคนหนึ่ง
45% อยู่กับชีวิตการทำงาน อีก
55% อยู่กับชีวิตส่วนตัว
หากคุณทำงาน ด้วยความทุกข์ตลอดเวลา
นั่นคือครึ่งชีวิต ของคุณจมอยู่ในกองทุกข์
คุณขาดทุน แต่หากคุณทำงานด้วยความสุข
นั่นเท่ากับว่า ครึ่งชีวิตของคุณมีความสุข ที่เหลือนั้น คือกำไร

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

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

CodeLens คืออะไร?
CodeLens เป็นคุณสมบัติใหม่ใน Visual Studio 2013 รุ่น Ultimate
ซึ่ง CodeLens จะทำงานคล้ายๆ กับหน้าปัดรถยนต์ โดยหน้าปัดรถยนต์นั้น
จะเป็นตัวบอกให้คุณรู้ว่า ก่อนคุณสตาร์ทรถ

  • สภาพเครื่องยนต์ ปกติ หรือไม่
  • ระดับน้ำมัน เหลือเท่าไหร่
  • ถุงลมนิรภัย ปกติหรือไม่
  • คุณรัดเข็มขัดหรือยัง
  • ประตู ปิดแน่น ไม่แน่น
  • ฯลฯ


รูปที่1: CodeLens คืออะไร?

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

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

CodeLens จะทำหน้าที่คล้ายๆ อย่างนั้น โดยจะรายงานสภาพโค้ดของคุณให้คุณทราบว่า

  • มีการอ้างอิงเมธอด
    (References) ที่คุณกำลังแก้ไข จำนวนเท่าไหร่ คลาสอะไร เมธอดอะไรที่อ้าอิงไปใช้ และนำไปใช้ที่บรรทัดเท่าไหร่
  • เมธอดดังกล่าวถูกทดสอบไปหรือยัง (Test Status)
  • สถานะการทดสอบเป็นอย่างไร ผ่าน หรือไม่ผ่าน
  • ถ้าคุณเชื่อมต่อกับ Team Foundation Server (TFS) จะทำให้คุณทราบว่า
    (ซึ่งในบทความนี้ไม่ได้กล่าวในรายละเอียด)
    • ใครเป็นคนสร้างเมธอด
    • การอัพเดตโค้ดครั้งล่าสุด ใครเป็นคนอัพเด็ต วันเวลาเท่าไหร่
    • มีบั๊กกี่ไอเท็ม
    • มีการ Review Code หรือยัง

Enabling CodeLens:

คุณสามารถเปิด-ปิดการทำงานของ CodeLens ได้ 2 ทางคือ

  1. บน CodeLens Indicators => คลิกขวาเลือก CodeLens Options… (รูปที่ 2.ก)
  2. บนเมนู TOOLS => เลือก Options… (รูปที่ 2.ข)

  3. หน้าต่าง Options จะปรากฏ ดังรูปที่ 2 (รูปที่ 2.ค)

โดยดีฟอลต์แล้ว CodeLens ถูกเปิดใช้งานอยู่แล้ว ฉะนั้นตอนนี้คุณไม่ต้องทำอะไรกับมัน ผมเพียงบอกวิธีว่าคุณสามารถเข้าไปเปิด-ปิดมันได้


รูปที่2: Enabling CodeLens

CodeLens
บนหัวของเมธอด

Retrieve
ให้คุณสังเกตุตรงไอเทมที่อยู่ระหว่างโค้ดคอมเมนต์
กับโค้ดจริง นั่นคือส่วนของ CodeLens ดังรูปที่ 3


รูปที่3: CodeLans

เราจะไปดูข้อมูลของ CodeLens ว่ามันบอกอะไรเราได้บ้าง ดังนี้

  • Reference information
  • Show on Code Map
  • Test information
  • Run Unit Test
  • Automatically updated Unit Test status

Reference information
บนหัวเมธอด Retrieve คุณจะเห็น CodeLen เป็น “2 references | 0/1 passing”
ในหัวข้อนี้เราพูดถึง references ฉะนั้นผมจะคลิกลงบน “2 references”
เพื่อแสดงหน้าต่าง ข้อมูลโค้ดที่ดึงเมธอด Retrieve ไปใช้งาน คุณจะเห็นมีสองคลาสที่เรียกใช้ คือ

  1. Customers.cs บรรทัดที่เรียกเมธอดคือบรรทัดที่ 73
  2. CustomersTest.cs บรรทัดที่เรียกเมธอดคือบรรทัดที่ 256

คุณสามารถดูรายละเอียดเพิ่มเติม โดยนำเคอร์เซอร์ไปวางบนบรรทัดที่ 73 => มันจะแสดงหน้าย่อยเพิ่มขึ้นมา แสดงพื้นที่โค้ดที่เรียกใช้เมธอด Retrieve ดังรูปที่ 3


รูปที่4: Reference information

Show on Code Map
Code Map เป็นฟีเจอร์ที่มีมาตั้งแต่ Visual Studio 2012
ซึ่งเป็นเครื่องมือที่ช่วยสร้างโค้ดของคุณจากรหัสที่มีความซับซ้อน
ออกมาเป็นรูปภาพไดอะแกรมง่ายๆ ทำให้คุณสามารถมองเห็นภาพ
การทำงานของโค้ดได้ง่ายขึ้น ในหน้าต่าง CodeLens
คุณสามารถเปิดหน้าต่าง CodeMap ได้ทีทันทีโดยคลิกบนเมนู
Show on Code Map คุณสามารถมองเห็นได้ทันทีว่า
เมธอด Retrieve ถูกนำไปใช้ 2 ที่ ดังรูปที่5


รูปที่5: Show on Code Map

Test information
บนหัวเมธอด Retrieve ให้คุณคลิก CodeLen ตรง 0/1 passing
คุณจะเห็นหน้าต่างแสดงสถานะการทดสอบแสดงขึ้นมา
โดยคุณจะเห็นสถานะเมธอดยังไม่ถูกทดสอบ ดังรูปที่6


รูปที่6: Test information

Run Unit Test
คุณสามารถสั่งรันทดสอบเมธอด ได้สองทางคือ

  1. ทดสอบรัน ได้จากเมนูบาร์ TEST => Run => All Tests ดังรูปที่ 7.ก หรือ
  2. คลิก Run All บนหน้าต่าง แสดงสถานะการทดสอบ ของ CodeLens ดังรูปที่ 7.ข
  3. จากนั้นรอสักครู่ เพื่อให้ระบบทดสอบโค้ดของคุณ


รูปที่7: Run Unit Test

Automatically updated Unit Test status

  1. เมื่อรันทดสอบเรียบร้อย คุณจะเห็น สถานะของ CodeLen ตรง 0/1 passing=> เปลี่ยนเป็น 1/1 passing นั่นคือเมธอด Retrieve มี Unit test ทั้งหมด 1 เมธอด ทดสอบไปแล้วทั้งหมด 1 เมธอด
  2. เมื่อคุณคลิกเมาส์ลงไป หน้าต่างแสดงสถานะการทดสอบแสดงขึ้นมา คุณจะเห็นว่าได้รันทดสอบผ่านไปเรียบร้อยแล้ว โดยที่คุณไม่ต้องไปหาจากหน้าต่างอื่น


รูปที่8: Automatically updated Unit Test status

ก่อนหน้าที่จะมี CodeLens
การที่คุณจะหาข้อมูลว่า เมธอดถูกทดสอบ หรือยัง
ผ่าน/ไม่ผ่านอย่างไร มีกี่คลาส กี่เมธอดที่อ้างอิง
เมธอดที่คุณกำลังแก้ไขอยู่ คุณจะต้องเปิดไปค้นหาในหน้าต่างอื่นๆ
คุณต้องสูญเสียเวลาบางส่วนในการค้นหา เพื่อดึงข้อมูลเหล่านั้นออกมา
วันนี้ CodeLens จะรายงานสภาพโค้ดของคุณ
ให้คุณทราบเพียงปลายนิ้วคลิก โดยที่คุณไม่ต้องสลับหน้าจอไปที่อื่น
คุณไม่ต้องเสียเวลาในการค้นหา คุณสามารถเห็นข้อมูลได้ทันที
ในหน้าต่างการเขียนโค้ด(Code editor) ตรงหน้าคุณ

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

ในระหว่างทางที่คุณกำลังเขียนโค้ด
ความสุขอยู่ตรงหน้าคุณตลอดเวลา
จงรู้สึกถึงมันให้ได้

แหล่งข้อมูลอ้างอิง:

 

ตอนที่1
ตอนที่2

โดย:
นุชิต อรรจนวจรรน์
GreatFriends Community Leader (nano)
WindowsITPro Columnist
Microsoft MVP

เขียนใน Uncategorized
In Archive
ติดตาม

Get every new post delivered to your Inbox.

Join 172 other followers