Create images from words with Bing AI


Image Creator in the new Bing
รูปประกอบ Step by step
เป็นเครื่องมือที่ขับเคลื่อนด้วย AI ที่ช่วยให้คุณสร้างภาพจากข้อความได้
เครื่องมือนี้ใช้โมเดลการเรียนรู้ของเครื่องที่เรียกว่า DALL-E 2
ซึ่งสามารถสร้างภาพจากข้อความได้หลากหลายรูปแบบ ไม่ว่าจะเป็นภาพบุคคล ภาพสิ่งของ ภาพสถานที่ หรือภาพเหตุการณ์ต่างๆ

วิธีใช้ Image Creator นั้นง่ายมาก
เพียงป้อนข้อความที่ต้องการสร้างภาพลงในช่องข้อความ จากนั้นคลิกปุ่ม “Create”
เครื่องมือจะสร้างภาพจากข้อความที่คุณป้อนขึ้นมา

ตัวอย่างเช่น หากคุณป้อนข้อความ “ภาพวาดของสุนัขสีดำกำลังยืนอยู่บนก้อนหิน”
เครื่องมือจะสร้างภาพวาดของสุนัขสีดำกำลังยืนอยู่บนก้อนหินขึ้นมา

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

ต่อไปนี้เป็นตัวอย่างการใช้งาน Image Creator:

  • ใช้สร้างภาพสำหรับงานศิลปะ ศิลปินสามารถใช้ Image Creator เพื่อสร้างภาพประกอบ ภาพวาด หรือภาพกราฟิกอื่นๆ ได้อย่างง่ายดาย
  • ใช้สร้างภาพสำหรับการออกแบบ นักออกแบบสามารถใช้ Image Creator เพื่อสร้างต้นแบบการออกแบบหรือสร้างภาพสำหรับผลิตภัณฑ์หรือบริการของตน
  • ใช้สร้างภาพสำหรับการศึกษา ครูสามารถใช้ Image Creator เพื่อสร้างภาพสำหรับสื่อการสอนหรือสร้างภาพสำหรับนักเรียน
  • ใช้สร้างภาพเพื่อความบันเทิง ผู้ใช้ทั่วไปสามารถใช้ Image Creator เพื่อสร้างภาพสำหรับความบันเทิงหรือเพื่อแบ่งปันกับเพื่อนและครอบครัว

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

ขั้นตอนลงทะเบียนเพื่อใช้งานบนมือถือ (Join & Create)

  1. เข้าเว็บไซต์ https://www.bing.com/images/create โดยใช้ Edge (ถ้ายังไม่มีให้ ติดตั้งก่อน)
  2. คลิกปุ่ม “Join & Create”
  3. คลิกปุ่ม Sign in
  4. คลิกปุ่ม Add account…,คลิกปุ่ม Sign in
  5. ป้อน email outlook.com ของ Microsoft (ถ้าไม่มีให้ไปสมัครก่อน) คลิก Next
  6. คลิก Next
  7. คลิก Confirm
  8. ถ้า login เรียบร้อย… จะเข้าสู่หน้า http://www.bing.com/images/create
    จะเห็นรูปแบบ ในการสร้างรูปภาพของ AI = ADJECTIVE + NOUN + VERB + STYLE
    9.สามารถป้อนคำสั่งภาษาไทย เช่น
    สร้างภาพถ่ายมุมกว้าง วัดอรุณราชวราราม ยามเช้า ด้านหลังมีสะพานพระรามเก้า ภาพสมจริง
    10.AI generate… รอสักครู่…AI จะแปลไทย กลับไปเป็น Eng
  9. AI จะสร้างรูปให้ 4 รูป
    ในการสร้างแต่ละครั้ง ในคำสั่งเดียวกัน ผลลัพท์รูปที่ได้จะไม่เหมือนกัน

รูปประกอบ Step by step

เขียนใน Uncategorized

ภาษา Dart



ภาษา Dart …
เป็นภาษาการเขียนโปรแกรมเชิงวัตถุ
พัฒนาโดย Google ในปี 2011
และเวอร์ชั่นปัจจุบัน(ณ วันที่เขียนบทความ) คือ Dart 3.1.5

ภาษา Dart ออกแบบเพื่อรองรับการพัฒนาแอปฯ บนหลายแพลตฟอร์มได้แก่ iOS, Android, Desktop, web, loT

โดยภาษา Dart มีจุดเด่นดังต่อไปนี้

  • ง่ายต่อการเรียนรู้
  • ประสิทธิภาพสูง
  • รองรับการพัศนาข้ามแพลตฟอร์ม

แล้วภาษา Dart แตกต่างจาก ภาษาอื่นอย่างไร?…

ลองไปเทียบกับภาษายอดยอดนิยม ในปัจจุบัน เช่น C#, Java


ภาษา Dart, C# และ Java

ต่างเป็นภาษาโปรแกรมเชิงวัตถุที่สามารถใช้ในการพัฒนาซอฟต์แวร์ได้หลากหลายประเภท ความแตกต่างที่สำคัญระหว่างภาษาเหล่านี้มีดังนี้

Dart

เป็นภาษาเชิงวัตถุที่พัฒนาโดย Google

  • รันไทม์แบบ Just-in-Time (JIT)
  • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส
  • สามารถใช้ในการพัฒนาแอปพลิเคชันบนแพลตฟอร์มต่างๆ เช่น เว็บ มือถือ และเดสก์ท็อป

C#

  • เป็นภาษาเชิงวัตถุที่พัฒนาโดย Microsoft
  • รันไทม์แบบ Common Language Runtime (CLR)
  • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส
  • สามารถใช้ในการพัฒนาแอปพลิเคชันบนแพลตฟอร์มต่างๆ เช่น เว็บ มือถือ และเดสก์ท็อป

Java

  • เป็นภาษาเชิงวัตถุที่พัฒนาโดย Sun Microsystems
  • รันไทม์แบบ Java Virtual Machine (JVM)
  • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส

สามารถใช้ในการพัฒนาแอปพลิเคชันบนแพลตฟอร์มต่างๆ เช่น เว็บ มือถือ และเดสก์ท็อป

ตารางเปรียบเทียบ

คุณสมบัติDartC#Java
ประเภทเชิงวัตถุเชิงวัตถุเชิงวัตถุ
รันไทม์Just-in-Time (JIT)Common Language Runtime (CLR)Java Virtual Machine (JVM)
การเขียนโปรแกรมแบบอะซิงโครนัสรองรับรองรับรองรับ
แพลตฟอร์มเว็บ มือถือ เดสก์ท็อปเว็บ มือถือ เดสก์ท็อปเว็บ มือถือ เดสก์ท็อป
ความยากปานกลางปานกลางยาก

ข้อดีและข้อเสีย

Dart

  • ข้อดี:
    • เรียนรู้ง่าย
    • เขียนโค้ดได้เร็ว
    • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส
  • ข้อเสีย:
    • ยังไม่ได้รับความนิยมมากนัก
    • เครื่องมือพัฒนายังไม่สมบูรณ์

C#

  • ข้อดี:
    • ได้รับความนิยมสูง
    • มีเครื่องมือพัฒนาที่สมบูรณ์
    • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส
  • ข้อเสีย:
    • เรียนรู้ยากกว่า Dart
    • โค้ดอาจซับซ้อนกว่า

Java

  • ข้อดี:
    • ได้รับความนิยมสูง
    • มีเครื่องมือพัฒนาที่สมบูรณ์
    • รองรับการเขียนโปรแกรมแบบอะซิงโครนัส
    • รันบนแพลตฟอร์มต่างๆ ได้
  • ข้อเสีย:
    • เรียนรู้ยากกว่า Dart และ C#
    • โค้ดอาจซับซ้อนกว่า

สรุป

ภาษา Dart, C# และ Java
เป็นภาษาโปรแกรมเชิงวัตถุที่มีประสิทธิภาพและสามารถนำมาประยุกต์ใช้ในการพัฒนาซอฟต์แวร์ได้หลากหลายประเภท
การเลือกภาษาที่เหมาะสมขึ้นอยู่กับปัจจัยต่างๆ เช่น ความชอบส่วนบุคคล ความยากง่ายในการเรียนรู้ และความนิยมของภาษา หากต้องการเริ่มต้นเรียนภาษาโปรแกรมเชิงวัตถุ ภาษา Dart เป็นตัวเลือกที่ดีสำหรับผู้ที่เริ่มต้น
เนื่องจากเรียนรู้ง่ายและเขียนโค้ดได้เร็ว ภาษา C# และ Java เป็นตัวเลือกที่ดีสำหรับผู้ที่มีประสบการณ์ในการเขียนโปรแกรมอยู่แล้ว
เนื่องจากได้รับความนิยมสูงและมีเครื่องมือพัฒนาที่สมบูรณ์

Ref:
https://dart.dev/overview

http://bard.google.com

Tagged with:
เขียนใน Uncategorized

Repository pattern with Java Spring Boot


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

Java Spring Boot มีการสนับสนุน Repository pattern ผ่าน Spring Data JPA ซึ่งเป็นการออกแบบและพัฒนาชุดเครื่องมือที่ช่วยให้การจัดการกับฐานข้อมูลเป็นไปอย่างมีประสิทธิภาพและง่ายต่อการใช้งาน โดย Spring Data JPA จะทำการสร้าง Implementation ของ Repository โดยอัตโนมัติจาก Interface Repository ที่เราสร้างขึ้นมา โดยเราสามารถกำหนด Method ที่ต้องการใช้งานได้และ Spring Data JPA จะทำการสร้าง Query ให้เราโดยอัตโนมัติจากชื่อ Method ที่เรากำหนด

Spring Data JPA เป็นโครงการที่ช่วยให้เราสามารถเข้าถึงฐานข้อมูลของเราได้อย่างง่ายดายโดยใช้ Java Persistence API (JPA) และ Spring Framework โดยไม่จำเป็นต้องเขียนโค้ด SQL โดยตรง โดย Spring Data JPA ช่วยเราในการเขียนโค้ดโดยทำให้เราสามารถสร้าง Repository สำหรับเชื่อมต่อกับฐานข้อมูลและเรียกใช้เมธอดต่างๆ โดยที่เราไม่ต้องเขียนโค้ด SQL โดยตรง โดย Spring Data JPA ยังช่วยในการจัดการกับการสร้างและจัดการ Entity ซึ่งเป็น Object ที่แทนข้อมูลในฐานข้อมูล เพื่อให้การเข้าถึงฐานข้อมูลและการจัดการ Entity ง่ายและปลอดภัยมากยิ่งขึ้นในแอพพลิเคชั่นของเรา

ตัวอย่างการสร้าง Repository ใน Java Spring Boot ด้วย Spring Data JPA ดังนี้

1. กำหนด Entity Class และ Primary Key ของตาราง เช่น ตัวอย่างตาราง users เราจะสร้างเป็น Class User.java

User.java
@Entity
@Table(name = "users")public class User {    
     @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(nullable = false, unique = true)
    private String username;
    @Column(nullable = false)
    private String password;     
    @Column(nullable = false)
    private String firstName;
    @Column(nullable = false)
    private String lastName;
    @Column(nullable = false, unique = true)
    private String email;
    // constructors, getters, and setters}

@Entity เป็น Annotation ที่ใช้สำหรับระบุว่าคลาสนั้นเป็น Entity Class ซึ่งจะถูก map กับตารางในฐานข้อมูล และจะมีการสร้าง instance ของ Entity นี้เมื่อมีการเรียกใช้งาน method ของ repository ที่เกี่ยวข้องกับ Entity นี้

จากตัวอย่างข้างต้น เราใช้ @Entity ในการระบุว่าคลาสนี้เป็น Entity Class ซึ่งจะถูก map กับตาราง users ในฐานข้อมูล โดยใช้ @Table สำหรับระบุชื่อตาราง และใช้ @Id และ @GeneratedValue สำหรับระบุ primary key และการกำหนดวิธีการ generate primary key ตามลำดับ นอกจากนี้ยังมี @Column สำหรับกำหนดคุณสมบัติของ column ในตาราง เช่น การกำหนด constraint และการกำหนดค่า default โดยทั่วไปแล้วการใช้ @Entity จะช่วยให้เราสามารถ map คลาสไปยังฐานข้อมูลได้อย่างถูกต้องและง่ายดาย และช่วยให้เราสามารถเรียกใช้ repository method ที่เกี่ยวข้องกับ Entity ได้ง่ายขึ้นด้วยการสร้าง instance ของ Entity นี้ผ่าน repository method ที่เรียกใช้งาน

@Table เป็น Annotation ที่ใช้สำหรับระบุชื่อตารางในฐานข้อมูลที่ Entity Class ต้องการใช้ หรือระบุค่า default สำหรับหลายๆคุณสมบัติของ column ในตาราง

2. สร้าง Interface Repository โดย extends JpaRepository ของ Spring Data JPA

UserRepository.java
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}

@Repository เป็น Annotation ที่ใช้สำหรับประกาศ Class เป็น Repository Layer ที่ใช้ในการเข้าถึงฐานข้อมูล โดย Repository Layer เป็นตัวกลางในการเชื่อมต่อกับฐานข้อมูลและเป็นที่เก็บข้อมูลจากฐานข้อมูล

การใช้ @Repository เพื่อประกาศ Class เป็น Repository Layer จะช่วยให้เราแยก Logic ที่เกี่ยวข้องกับการเชื่อมต่อฐานข้อมูลออกจาก Controller และ Service Layer ซึ่งทำให้เราสามารถทำการทดสอบเพียงฐานข้อมูลได้อย่างอิสระและง่ายขึ้น

UserRepository เป็น interface ใน Java Spring Boot ที่ถูกสร้างขึ้นมาเพื่อใช้ในการเข้าถึงข้อมูลในฐานข้อมูลเกี่ยวกับ entity User โดยใช้ Spring Data JPA ซึ่งมีการ extends จาก JpaRepository ซึ่งเป็น interface ที่เป็น generic interface ที่ให้เราเข้าถึงฐานข้อมูลโดยอัตโนมัติ โดยไม่ต้องเขียนโค้ด SQL เอง

ใน UserRepository interface นี้จะประกอบไปด้วย method ต่างๆที่ใช้สำหรับ query ข้อมูลจากฐานข้อมูล เช่น findAll(), findById(), save(), deleteById(), count() และอื่นๆ ซึ่งมีจำนวนมาก ๆ และชื่อแต่ละ method จะเป็นไปตามกฏการตั้งชื่อของ Spring Data JPA ซึ่งจะใช้ชื่อ method ให้ตรงกับแบบฟอร์มของคำสั่ง SQL ต่างๆ เช่น findByXXX(), deleteByXXX(), countByXXX() และอื่นๆ โดย XXX จะแทนด้วยชื่อ property หรือ column ใน entity class ที่เราต้องการ query

JpaRepository<User, Long> เป็น interface ของ Spring Data JPA ที่ใช้สำหรับเข้าถึงฐานข้อมูลสำหรับ entity User ซึ่งมีการระบุ generic type ของ entity class และ type ของ primary key ของ entity นั้น ๆ ซึ่งในกรณีนี้คือ User และ Long ตามลำดับ

ดังนั้นการสร้าง interface สำหรับเข้าถึงฐานข้อมูลโดยใช้ Spring Data JPA จะช่วยลดความซับซ้อนและความซ้ำซ้อนในการเขียนโค้ด query ของ SQL และช่วยให้โค้ดดูสะอาดและอ่านง่ายมากขึ้น.

3.สร้าง Service Class

การใช้ Repository ใน Service Class เป็นส่วนสำคัญในการออกแบบและพัฒนาแอปพลิเคชันโดยใช้ Repository pattern ใน Java Spring Boot โดยปกติแล้วเราจะสร้าง Interface Repository ขึ้นมาแล้วใช้งานผ่าน Service Class เพื่อทำการแยก Logic การทำงานและการเข้าถึงฐานข้อมูลออกจาก Controller Class ซึ่งทำให้เราสามารถทดสอบและจัดการกับข้อมูลได้ง่ายขึ้น


สร้าง Service Class และใช้ Dependency Injection กับ Repository

UserService.java
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository; //<= Repository Dependency Injection 
    public User getUserByUsername(String username) {
        return userRepository.findByUsername(username);
    }
    // other methods for business logic
}

@Service เป็น Annotation ที่ใช้สำหรับประกาศ Class เป็น Service Layer ที่ใช้ในการเขียน Business Logic และเป็นตัวกลางในการเชื่อมต่อระหว่าง Controller กับ Repository

การใช้ @Service เพื่อประกาศ Class เป็น Service Layer จะช่วยให้เราแยก Logic ที่เกี่ยวข้องกับธุรกิจออกจาก Controller และ Repository ซึ่งทำให้เราสามารถทำการทดสอบ Logic เหล่านี้ได้อย่างอิสระและง่ายขึ้น โดยทั่วไปแล้ว Service Layer จะใช้งาน Repository เพื่อดึงข้อมูลจากฐานข้อมูลและดำเนินการ Logic ต่อไป

@Autowired เป็นการใช้ Dependency Injection ใน Spring Framework โดยการเชื่อมต่อ Object จากคลาสอื่นๆ ในโค้ด โดยที่ Spring จะทำการสร้าง Object ให้เราโดยอัตโนมัติและเชื่อมต่อให้เราโดยอัตโนมัติเมื่อเราเรียกใช้งาน Method นั้นๆ

ในโค้ดตัวอย่างที่กล่าวถึง การประกาศตัวแปร userRepository และใช้งาน @Autowired นั้นหมายความว่าเรากำลังใช้ Dependency Injection ในการสร้าง Object ของ UserRepository โดยเราไม่จำเป็นต้องสร้าง Object ด้วยตัวเอง โดย Spring Framework จะทำการสร้าง Object ของ UserRepository ให้เราและเชื่อมต่อให้เราโดยอัตโนมัติ ซึ่งทำให้เราสามารถเข้าถึง Repository ได้โดยง่ายและสะดวกสบายมากขึ้นในการเขียนโค้ดของเรา

4. สร้าง Controller Class แล้ว Injection Service Class เข้ามาใช้งาน

UserController.java
@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;
    @GetMapping("/{username}")
    public ResponseEntity<User> getUserByUsername(@PathVariable String username) {
        User user = userService.getUserByUsername(username);
        if (user == null) {
            return ResponseEntity.notFound().build();
        }
        return ResponseEntity.ok(user);
    }
    // other API endpoints
}

จากตัวอย่างข้างต้น เราใช้ Dependency Injection กับ UserRepository ใน Service Class และเรียกใช้ Method findByUsername เพื่อค้นหา User จากฐานข้อมูล จากนั้นใช้ Service Class ใน Controller Class เพื่อส่งคืนข้อมูลผ่าน API endpoint ต่างๆ

@RestController เป็น Annotation ใน Java Spring Boot ที่ใช้สำหรับประกาศว่า Class เป็น Controller และสามารถรับ Request และส่ง Response กลับไปยัง Client ได้ โดยมีการสร้าง Response ในรูปแบบของ JSON หรือ XML และส่งกลับไปยัง Client โดยอัตโนมัติ

การใช้ @RestController จะมีประโยชน์ในกรณีที่ต้องการสร้าง API หรือการเชื่อมต่อระบบต่างๆ โดยมีความสามารถในการรับ Request และส่ง Response ออกไปยัง Client ได้อย่างรวดเร็วและง่ายดาย

@RequestMapping เป็น Annotation ที่ใช้สำหรับกำหนด URL path ของ HTTP request ที่จะเข้าถึง Controller Method หรือ RESTful API นั้นๆ โดยเราสามารถกำหนด path ได้หลากหลายแบบ เช่น path แบบแนบค่าพารามิเตอร์ หรือ path แบบแยกค่าพารามิเตอร์ด้วยสัญลักษณ์

บทความต่อๆ ไปจะพูดถึง การสร้าง API ด้วย Java Spring Boot

จบบริบูรณ์

เขียนใน Uncategorized

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

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


ความสุข อยู่ที่ใหน ?
>อยู่ใน วัยเเด็ก ?
>อยู่ใน วัยรุ่น ?
>อยู่ใน วัยผู้ใหญ่ ?
>อยู่ใน วัยเกษียณ ?

ความสุข อยู่ในทุกๆ วัย
และความสุข อยู่รอบๆ ตัวคุณ 
อยู่ที่ว่า คุณจะรู้สึก ถึงมันมากแค่ใหน?

แต่ความรู้สึกของคนส่วนใหญ่
รู้สึกถึง ความหดหู่ ความทุกข์ เสียมากกว่า
จึงไม่เหลือพื้นที่ ให้ความรู้สึก ดีดี ได้ปรากฎ

ส่วนหนึ่งจากบทความ
โปรแกรมเมอร์ มีความสุข มีสมาธิ จาการเขียนโค้ด โปรดักทิวีตี้เพิ่มขึ้น (ตอนที่3)
ในนิตยสาร WindoedITPro ฉบับ(APR-MAY 2014)

เขียนใน Uncategorized

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


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

เมื่อวันที่ 26 พฤศจิกายน 2556 ที่ผ่านมา
ณ ห้องบอลรูม โรงแรมแชงกรีลา บางรัก กรุงเทพฯ
ไมโครซอฟต์ได้จัดงาน
Microsoft TechDays Thailand 2013
ซึ่งเป็นงานสัมมนาที่ Microsoft จัดขึ้นทุกๆ ปี
ที่คนอยู่ในวงการเทคโนโลยี และนักพัฒนาให้ความสนใจ
ในงานดังกล่าว ได้เปิดตัวผลิตภัณฑ์ใหม่ของ Microsoft ดังนี้>

  • Windows Server 2012 R2,
  • System Center 2012 R2,
  • Windows 8.1 Enterprise,
  • Windows Azure และ
  • Visual Studio 2013


รูปที่1:
Microsoft TechDays Thailand 2013

ซึ่งผมได้รับเกียรติจาก ไมโครซอฟท์ ให้บรรยายหัวข้อ
What’s new for developers in Visual Studio 2013
ซึ่งเป็นการพูดถึงฟีเจอร์ใหม่ที่มาใน Visual Studio 2013
ที่เน้นเรื่อง Productivity ของนักพัฒนาเป็นหลัก
สำหรับท่านที่สนใจข้อมูล สามารถเข้าไปโหลดสไลด์
และสคริปในการบรรยายหัวข้อดังกล่าวได้จาก

Blog โปรแกรม ซอฟต์แวร์
ในบทความ: What’s new for developers in Visual Studio 2013
และในบทความตอนที่2 นี้
ผมจะพาคุณผู้อ่านไปรู้จักฟีเจอร์ Enhanced Scrollbar
ซึ่งเป็นอีกหนึ่งฟีเจอร์ที่ช่วยให้นักพัฒนา
สามารถเขียนโค้ดโปรแกรมได้อย่างราบรื่น มีความสุข
และ เมื่อคุณทำงานอย่างมีความสุข คุณจะเริ่มมีสมาธิ
เมื่อคุณมีสมาธิ จะเริ่มมีสิ่งดีๆ ตามมา

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

Enhanced Scrollbar
ความแตกต่างของฟีเจอร์แรก
และ มองเห็นได้อย่างชัดมากที่สุด ฟีเจอร์หนึ่ง
ใน Visual Studio 2013 คือ Enhanced Scrollbar
ถ้าไฟล์โค้ดของคุณมีขนาดใหญ่ ฟีเจอร์นี้
จะช่วยให้คุณ ดูโค้ดส่วนอื่นๆ ได้อย่างง่ายดาย

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

จุดสี บน Scrollbar
บน Scrollbar จะมีการระบายจุดสี
เพื่อบ่งบอกถึงสถานการณ์ของโค้ดโปรแกรมของคุณ ดังนี้

  • สีเขียว: เป็นการบอกตำแหน่ง ของโค้ดที่เคยมีการแก้ไข
    และผ่านการ Build ไปเรียบร้อยแล้ว
    คุณสามารถรู้ได้ทันทีบน Scroll bar
  • สีเหลือง: เป็นการบอกตำแหน่ง โค้ดในการแก้ไขครั้งล่าสุด
    ในขณะปัจจุบันที่กำลังเขียนโค้ด ที่ยังไม่ผ่านการ Build
    คุณสามารถรู้ได้ทันทีบน Scroll bar
  • สีส้ม: เป็นการบอกคุณว่า ณ ตำแหน่งใหนของโค้ด
    ทีมี Message ที่คุณกำลังค้นหา
    โดย Message ดังกล่าวจะถูกไฮไลท์สีด้วย
    คุณสามารถรู้ได้ทันทีบน Scroll bar เช่น
    • ดังรูปที่2 ค้นหา Message “Page”
    • บน Editor จะไฮไลท์ โค้ดที่มีคำว่า Page
    • บน Scroll bar ระบายจุดสีส้ม ณ ตำแหน่งของโค้ดที่มีคำว่า Page อยู่
  • สีเทาเข้ม: เป็นการบอกคุณว่า ณ ตำแหน่งใหนของโค้ด
    ที่คุณวาง Bookmark ไว้บ้าง คุณสามารถรู้ได้ทันทีบน Scroll bar
  • สีแดง: เป็นการบอกคุณว่า ณ ตำแหน่งใหนของโค้ด
    ที่มี Error บ้าง คุณสามารถรู้ได้ทันทีบน Scroll bar
  • เส้นสีฟ้า: เป็นการบอกคุณว่า ตอนนี้ ตำแหน่ง Cursor อยู่ที่ใหน
    คุณสามารถรู้ได้ทันทีบน Scroll bar
  • สีน้ำตาล: เป็นการบอกคุณว่า ณ ตำแหน่งใหนของโค้ด
    ที่คุณได้วาง Breakpoint บ้าง คุณสามารถรู้ได้ทันทีบน Scroll bar เช่นกัน
    โดยจุดสีต่างๆ แสดงดังรูปที่2


รูปที่2:
จุดสี บน Scrollbar

จากรูปที่2
กล่าวได้ว่า Scroll bar จะเป็นตัวรายงานสถานะของซอร์สโค้ดบน Editor
ให้คุณทราบตลอดเวลา ณ ขณะที่คุณกำลังเขียนโค้ด

  • โค้ดตรงจุดใหน ที่เคยมีการแก้ไข และผ่านการ Build ไปเรียบร้อยแล้ว
  • โค้ดจุดตรงใหน ที่เคยมีการแก้ไข และยังไม่ผ่านการ Build
  • คุณวาง Bookmark, วาง Breakpoint ไว้ ณ จุดใหนของซอร์สโค้ดบ้าง
  • ซอร์สโค้ดของคุณ จุดใหนที่มี Error

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

Scroll Bar Options
คุณสามารถเข้าไปปรับ Scroll Bar Options
ให้แสดงตามความชอบใจ ซึ่งสามารถเข้าได้ 3 ทางคือ

  1. คลิกขวาบน Scroll Bar
  2. ค้นหาในช่อง Quick Launch (Ctrl+Q)
  3. เข้าทางเมนู TOOLS=> Options…

1. คลิกขวาบน Scroll Bar
คุณสามารถปรับ Option ของ Scrollbar ได้โดย=>
คลิกขวาบน Scroll bar เลือก Scroll Bar Options… ดังรูปที่3


รูปที่3:
ทางเข้า Scroll Bar Options (1)

2. ค้นหาในช่อง Quick Launch (Ctrl+Q)
ค้นหาในช่อง Quick Launch
ให้พิมพ์ “Scroll bar” =>
คลิก Text Editor =>
All Languages =>
Scroll Bars ดังรูปที่4


รูปที่4:
ทางเข้า Scroll Bar Options (2)

3. เข้าทางเมนู TOOLS=> Options…
ในหน้าต่าง Option บนช่อง Search Option (Ctrl+E)
ให้พิมพ์ Scroll =>
แล้วคลิก Scroll Bars ดังรูปที่ 5

รูปที่5: ทางเข้า Scroll Bar Options (3)

จากทางเข้า 3 ทางดังกล่าวจะนำคุณเข้าสู่ หน้าต่าง Scroll Bar Options ดังรูปที่6

รูปที่6:
Scroll Bar Options

จากรูปที่6:
กล่าวได้ว่า

  • Show horizontal scroll bar: แสดง scroll bar ในแนวนอน
  • Show vertical scroll bar: แสดง scroll bar ในแนวตั้ง
  • ในกล่อง Display
    • Show annotations over vertical scroll bar: แสดงคำอธิบายประกอบบน scroll bar
    • Show changes: ระบายจุดสี เมื่อมีการเปลี่ยนแปลงโค้ด
    • Show marks: ระบายจุดสี เมื่อมีการ marks ในโค้ด เช่น Bookmark, Breakpoint
    • Show errors: ระบายจุดสี เมื่อมีการ Error
    • Show caret position: แสดงเส้นตำแหน่ง cursor
  • ในกล่อง Behavior
    • Use bar mode for vertical scroll bar: บาร์โหมด
    • Use map mode for vertical scroll bar: แมปโหมด
    • Show Preview Toltip: แสดงตัวอย่าง Toltip
      • Source overview: แสดงขนาดพื้นที่ของ Map mode

Scroll bar mode
Scroll bar คุณสามารถดูได้ 2 โหมด คือ

  1. Bar mode: แสดงเฉพาะแท่ง Bar และจุดสีต่างๆ
  2. Map mode: แท่ง Bar จะขยายกว้างขึ้น แล้วซอร์สโค้ดของคุณอยู่ภายใน เหมือนคุณมองจากที่สูง เหมือนคุณดูแผนที่ใน Google พร้อมกับแสดงจุดสีต่างๆ

1. Bar mode
ในการเปลี่ยน Bar mode คุณสามารถทำได้ง่ายๆ ดังนี้=>
คลิกขวาบน Scroll Bar เลือก Scroll Bar Options…=>
ในกล่อง Behavior=>
เลือก Use bar mode for vertical scroll bar
ซึ่งเป็นดีฟอลต์ที่ Visual Studio 2013
เลือกไว้อยู่แล้ว ดังรูปที่7
คุณจะเห็นเฉพาะแท่ง bar และจุดสีต่างๆบนแท่ง bar เท่านั้น
รูปที่7 Bar mode

2. Map mode
เปลี่ยน Map mode ทำได้โดย=>
คลิกขวาบน Scroll Bar เลือก Scroll Bar Options…=>
ในกล่อง Behavior=>
เลือก Use map mode for vertical scroll bar
คุณจะเห็น Scroll bar จากเป็นเพียงแท่ง bar จะขยายกว้างขึ้น
เปลี่ยนเป็นพื้นที่แสดงซอร์สโค้ดเล็กๆ แทน
พร้อมจุดสีต่างๆ เหมือนคุณกำลังดูแผนที่บน Google ดังรูป
รูปที่8 Map mode

ใน Map mode ถ้าคุณติ๊กถูก (CheckBox)
Show Preview Tooltip ตอนคุณนำ Cursor Mouse ไปบน Map bar
มันจะแสดงหน้าต่างขึ้นมา โดยจะขยายซอร์สโค้ดในส่วนที่ Cursor Mouse ชี้อยู่
เพื่อให้คุณทราบว่า ณ ตำแหน่งนั้นโค้ดคืออะไร?
(เหมือนคุณซูมกล้องส่องทางไกล ไปในจุดนั้น มันจะแสดงรายละเอียดให้คุณเห็นมากขึ้น)

ดังรูปที่9


รูปที่9
Preview Toltip

ใน Map mode นั้นคุณสามารถขยายพื้นที่ Map
ตามความชอบ ได้โดยการปรับแต่งที่ Source overview:
โดยเลือกขนาดจาก DropDownList
โดยดีฟอลต์ Visual Studio 2013
จะเลือก Source overview: เป็น Medium มาให้ ดังรูปที่10
รูปที่10 Source overview

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

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

Enhanced scrollbar
ช่วยให้คุณประหยัดเวลา
ช่วยให้คุณเขียนโค้ดได้เร็วขึ้น ช่วย
ให้คุณเขียนโค้ดได้อย่างราบรื่น
> เมื่อคุณเขียนโค้ดได้อย่างราบรื่น
> คุณจะเริ่มมีความสุข ในการเขียนโปรแกรม
> เมื่อคุณทำงานอย่างมีความสุข
> สมาธิคุณจะเริ่มเกิดขึ้น
> เมื่อสมาธิคุณเกิด
> Productivity ของคุณ ก็จะเพิ่มขึ้น

ความสุขนั้น
อยู่ตรงหน้าคุณ ตลอดเวลา
เหมือน อากาศธาตุ ที่อยู่รายรอบตัวคุณ

จงหายใจเข้า เพื่อ
นำความสุข ความสว่าง
เข้าสู่ตัวคุณ

และหายใจออก เพื่อ
คลาย ความทุกข์ ความมืดดำ
ออกไปจากตัวคุณ

จงใช้แสงสว่าง
นำทางชีวิตของคุณ ไปสู่เป้าหมาย
แสงสว่างเท่านั้น
ที่จะทำให้คุณเห็นความสวยงาม สองข้างทาง

จงเขียนโค้ดของคุณ อย่างมีความสุข
เมื่อคุณมีความสุข
คุณจะทำงาน โดยไม่ต้องทำงาน

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

ตอนที่ 1

เขียนใน Visual Studio

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


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

เมื่อวันที่ 13 พฤศจิกายน 2556
ไมโครซอฟท์
ได้เปิดตัว Visual Studio 2013 และ .NET 4.5.1
ไม่ทราบท่านผู้อ่าน ได้ติดตามบ้างใหม
ปีนี้ ถือเป็นปีที่ยิ่งใหญ่ ของ Visual Studio
โดยไมโครซอฟต์ได้ส่งมอบฟีเจอร์ที่ดีเยี่ยม

เอดิเตอร์โปรดักทิวีตี้
สำหรับนักพัฒนา ซึ่งใน Visual Studio 2013 นั้น
ได้เน้นเรื่อง เอดิเตอร์โปรดักทิวีตี้เป็นหลัก
ซึ่งไมโครซอฟต์ ได้รับข้อเสนอแนะ (Feedback)
จากนักพัฒนาทั่วโลก และได้นำ ข้อเสนอแนะจากของฟีเจอร์เหล่านั้น
ผนวกเข้าไปใน Visual Studio 2013
ในบทความนี้ผู้เขียนจะยกฟีเจอร์หนึ่งมาพูดถึง
ซึ่งผู้เขียนชื่นชอบเป็นพิเศษ และคิดว่า สำหรับนักพัฒนาแล้วฟีเจอร์นี้
จะช่วยให้การเขียนโค้ด เป็นเรื่องที่สนุกมากยิ่งขึ้น

Go to Definition

รูปที่ 1: เมนู
Go to Definition

ในอดีตเมื่อคุณเขียนโค้ด
และต้องการดูรายละเอียดของบางอ็อบเจ็กต์ หรือบางเมธอด
คุณจะใช้วิธี คลิกขวาลงบนอ็อบเจ็กต์ดังกล่าว
แล้วเลือกเมนู Go to Definition (ดังรูป1)
แล้วมันจะพาคุณกระโดดไปในบรรทัดอื่น
หรือไม่ก็ไปเปิดโค้ดในหน้าต่างอื่น (ดังรูปที่2)
ซึ่งเมื่อคุณดูรายละเอียดเสร็จเรียบร้อย
และได้แนวคิดแล้ว คุณจะกลับไปเขียนโค้ดต่อ
เมื่อคุณจะกลับไปที่เดิม คุณจะเสียเวลาในการค้นหาว่า
เมื่อตะกี้ คุณอยู่ ณ ตำแหน่งใหนของซอร์สโค้ด
พอคุณจะกลับไปยังตำแหน่งเดิม เพื่อที่จะเขียนโค้ดต่อ

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


รูปที่ 2:
Go to Definition เปิดหน้าต่างใหม่

เมื่อคุณลืม และมึน
คุณจะลุกจากโต๊ะ ไปหาทานกาแฟ, คุยกับเพื่อน
กลับมาที่โต๊ะ ยังนึกไม่ออก และมึนกว่าเดิม
แล้วคุณเริ่มเปิด

Facebook Update Status
สักหน่อย แล้วถ่ายรูป แก้วกาแฟ เน้นโลโก้ สตาร์…บั๊ก แล้วแชร์….
จากนั้นคุณจะรอเพื่อนมา กด Like…
ขณะเดียวกันคุณก็หากด Like status ของเพื่อนๆ
มารู้สึกตัวอีกทีถึงเวลาเลิกงาน
เตรียมตัวเก็บกระเป๋ากลับบ้าน หมดไปครึ่งวัน
โค้ดดิ่งเท่าเดิม กับเมื่อเช้า
เพียงเพราะความคิดคุณไม่โฟลว์
ทำให้คุณลืม มัวแต่หาว่า เอ…เมื่องี้
เรากำลังเขียนตรงส่วนใหน? …

Peek Definition

รูปที่ 3: เมนู
Peek Definition


รูปที่ 4:
Peek Window

การที่ความคิดของคุณไม่โฟลว์ สิ่งนี้บอกอะไรกับเรา
สมาธิ!
สมาธินั้นสำคัญมาก
ไมโครซอฟท์ ได้เพิ่มฟีเจอร์
Peek นี้เข้ามา
โดยทำให้คุณสามารถ ดูรายละเอียดของโค้ดที่เรียกใช้

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

ณ ขณะปัจจุบัน…
ณ ขณะปัจจุบัน นี้สำคัญมาก
เดล คาร์เนกี้ กล่าวไว้ในหนังสือว่า

“จงมีชีวิตอยู่ ในห้อง ที่มีแต่วันนี้”

อดีตผ่านมาแล้ว
ส่วนอนาคตเป็นเพียงสิ่งซึ่ง ยังไม่ปรากฏรูปร่าง
และยาวนานเท่าไหร่ ไม่มีใครบอกได้

ชีวิตจริงของคุณ
มีอยู่ ณ ขณะ ปัจจุบัน ที่คุณกำลังเขียนโค้ดนี้ เท่านั้น

ทุกครั้งที่เข็มวินาทีกระดิก
เหตุการณ์เหล่านั้นจะ กลายเป็นอดีตไปทันที

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

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

ชั่วขณะ ปัจจุบัน
นี้เท่านั้น

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

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

  • คือความราบรื่น
  • คือความสงบสุข สบาย ในใจของคุณ
  • คือหน่วยความจำที่มากมายในหัวคุณ ที่ถูกคืนสู่ความว่าง พร้อมสำหรับ การนำไปใช้งานทันที

การใช้งาน Peek นั้น
เมื่อคุณต้องการดูรายละเอียดของบางอ็อบเจ็กต์
หรือบางเมธอดใดๆ คุณเพียงคลิกขวาบนอ็อบเจ็กนั้นๆ
แล้วเลือกเมนู Peek Definition (ดังรูปที่3)
หรือวางเคอร์เซอร์ บนอ็อบเจ็กต์ดังกล่าว
แล้วกดปุ่มชอร์ตคัต(shortcut) Alt+F12
หน้าต่าง Peek จะเปิดออกมาทันที ณ …

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

ปุ่มคีย์บอร์ดชอร์ตคัต สำหรับ Peek Definition ดังตารางที่ 1:

ตารางที่ 1: Keyboard shortcuts for Peek Definition

Functionality

Keyboard shortcut

Open the definition window

Alt+F12

Close the definition window

Esc

Promote the definition window to a regular document tab

Shift+Alt+Home

Navigate between definition windows

Ctrl+Alt+- and Ctrl+Alt+=

Navigate between multiple results

F8 and Shift+F8

Toggle between the code editor window and the definition window

Shift+Esc

 


รูปที่ 5: Stack Peek Window

และนอกจากนั้น
เมื่อคุณต้องการดู อ็อบเจ็กต์อื่นๆ ในหน้าต่าง Peek
คุณสามารถคลิกขวาเลือกเมนู Peek Definition
แล้วคุณสามารถดูลึกเข้าไปในหน้าต่าง Peek
ซึ่งจะเก็บหน้าต่าง Peek เป็นสแต็ค (Stack)
ไว้ดังรูปที่ 5 โดยคุณสามารถคลิกเมาส์สลับหน้าต่าง Peek อื่นๆ ได้ทันที
และคุณยังสามารถแก้ไขโค้ดในหน้าต่าง Peek ได้ทันที อีกด้วย

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

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

รูปที่ 6 เขียนโค้ดต่อได้ทันที จากจุดที่ค้างไว้เมื่อครู่

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


ด้วย Visual Studio 2013 สามารถช่วยคุณได้
ช่วยให้คุณมีความสุข ในการเขียนโค้ดมากขึ้น

เมื่อคุณมีความสุข
สมาธิของคุณก็จะเกิด

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

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

โปรแกรมเมอร์
สามารถมีความสุข และมีสมาธิ ได้จากการเขียนโค้ด
จงเขียนโค้ด ของคุณอย่างมีความสุข
เมื่อคุณทำงานอย่างมีความสุข
คุณจะทำงานโดยไม่ต้องทำงาน

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

บทความจาก นิตยสาร WindowsITPro (November – December 2013)

โดย:
Nano,2014-05-02

เขียนใน Uncategorized

Import Export Excel using EPPlus


วันเสาร์ที่ 26 เมษายน 2014
Greatfriends ร่วมกับ มหาวิทยาลัยหอการค้า จัดงาน
งานสัมมนา DevRock #00 Hello MVC Rocks .NET Community
สำหรับ ASP.NET WebDeveloper

ผมได้นำ Tip เล็กๆ เกี่ยวกับการทำงาน กับ Excel ด้วย EPPlus
ไปแชร์ ให้ผู้ฟังทุกท่าน ในหัวข้อ Import Export Excel using EPPlus

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


อีพีพลัส (EPPlus) คืออะไร?



ตัวอย่าง:
จะแสดงการ Import และ Export Excel ด้วย EPPlus

Import Customer

Export Category Sales for 1997

ออกแบบหน้าจอ

เขียนโค้ด

เขียนโค้ดบนปุ่ม Load Excel to GridView
btLoadExcel_Click

 

เขียนโค้ดบนปุ่ม Import Customer
btImport_Click

 

เขียนโค้ดบนปุ่ม Export Excel Chart
btExporrt_Click

ทดสอบโปรแกรม
Import Excel
Load Excel to GridView คลิกปุ่ม เลือกไฟล์ =>

เลือกไฟล์ => กด Open

คลิกปุ่ม Load Excel to GridView

ข้อมูล Excel จะไปแสดงบนหน้าจอ
ให้ User ตรวจสอบ อีกครั้ง

เมื่อข้อมูลถูกต้องแล้ว
กดปุ่ม Import Customer

Import เรียบร้อย

ตรวจสอบใน
ฐานข้อมูล => ข้อมูลเข้าเรียบร้อย

Export Excel

กดปุ่ม Export Excel Chart

เลือกพาธ
กดปุ่ม Save

คลิกเปิดไฟล์

รายงาน Category Sales for 1997

การทำงานกับ ข้อมูล Excel ผ่านคอมโพเนนต์ EPPlus มีข้อดีคือ

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

ดาวน์โหลด ตัวอย่างโปรเจ็กต์

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

โดย:
JANAWAT, 2014-04-26


 

เขียนใน ASP.NET

งานสัมมนา DevRock #00 Hello MVC Rocks .NET Community


งานสัมมนา DevRock #00 Hello MVC Rocks .NET Community
งานนี้สำหรับ
สมาชิกกลุ่ม ASP.NET & MVC Developers Thailand เท่านั้น
ฟรีไม่มีค่าใช้จ่าย

จัดใน วันเสาร์ที่ 26 เมษายน 2014 เวลา 9.00 – 17.00 น.
ณ มหาวิทยาลัยหอการค้า
รับจำนวน 40 ท่าน

พรุ่งนี้แล้ว
ใครที่ลงทะเบียนไว้ ไปพบกันครับ

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

โดย:
JANAWAT, 2014-04-25

เขียนใน Uncategorized

คุณจะเป็น อย่างที่คุณคิด


วันที่ 22 พ.ย. 2549
ผมได้ไปงานสัมมนา MSDN Seminar ของไมโครซอฟท์
ผมได้ฟัง อ.สุเทพ บรรยายเรื่อง Gadgets
และนี่ป็นครั้งแรก ในชีวิต ที่ผมได้ยิน คำว่า MVP
a.suthep
ผมนั่งดู อาจารย์สุเทพบรรยาย
รู้สึกว่าเท่ห์มาก อยากขึ้นไปพูดบนนั้นบ้างจัง
ในขณะที่ตัวเอง ไม่ค่อยพูด คุยไม่เก่ง
“MVP น่าจะเหมือน VIP แน่ๆ คิดอยู่คนเดียว”
และช่วงท้าย ก่อนจบ Session
อ.สุเทพ แสดง Link ของ GreatFriends.Biz Community
อาจารย์ ได้ยกตัวอย่างกระทู้ ถามตอบปัญหา เชิงโปรแกรมมิ่ง
ผมสนใจ เลยจดเอาไว้

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

25 กพ. 2550
ประกาศ! งาน VTALKS #3
จัดงานที่ CAT หรืออาคาร กสท อยู่ใกล้สะพานตากสิน
ผมไปร่วมงาน VT และนั่นป็นครั้งแรก ในชีวิตของผมกับกิจกรรมของ GreatFriends
อาจารย์สุเทพ เป็นกันเองมาก เลยชอบเข้าร่วม จกรรมของ GreatFriends ตลอดมา

27 พค. 2550
VTALKS #4
7-4-2014 7-32-22 PM
BLOG – ภาพจากงาน VTALKS #4 
ผมไปร่วมงาน VT4

22 กค. 2550
VTALKS #5
หารูปตัวเอง ไม่เจอ…

6 กย. 2550
VTALKS #6
7-4-2014 7-38-38 PM
VTALKS #6 – Photos !

25 ก.ย. 2550
เวลา 17:54 น.
บทความ – Uploads excel files to SQL DB
ได้ถือกำเนิดขึ้นบนเว็บบอร์ด GreatFriends.Biz
และนี่เป็นบทความแรก ในชีวิตผม

2 ธค. 2550
VTALKS #7
7-4-2014 8-52-49 PM

27 มค. 2551
VTALKS #8
DSC_6344_00

22 มี.ค. 2551
VTALKS #9
vtalk9084

28 กย. 2551
VTALKS #10
vt10group2

26 เม.ย. 2552
VTALKS #11
น้องพั้นซ์
พ่อลูกอ่อน เลยไม่ได้ไป
และนี่เป็นลูกคนแรกในชีวิตผม

1 กค. 2552
เป็น MVP ท่านที่ 5 ใน Greatfriends
NANO_MVP_01-07-09_3
และนี่เป็นครั้งแรก ในชีวิตผม ที่ได้เป็น MVP

30 ส.ค. 2552
VTALKS #12
DSC_6187
ผมบรรยายเรื่อง: Silverlight 3.0 for Business Applications
และเป็นการบรรยายครั้งแรกในชีวิตผม

จุดเริ่มต้น
จุดเริ่มต้น เริ่ม จากครั้งแรก เสมอ
นั่นคือที่มา แห่งการแบ่งปัน, การแลกเปลี่ยน,
การเรียนรู้ สำหรับผม บนโลกออนไลน์
และเป็นจุดเริ่มต้น ในการเป็น Windows IT Pro Columnist WindowsITProColumnist

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

เห็นแล้วอ่าน อ่านแล้ว ได้ความรู้ดี
จึงเกิดความคิด อยากเขียนบ้าง (คนเขียนน่าจะได้ความรู้กว่า)
ประกอบกับช่วงนั้นได้ยินคำว่า MVP บ่อยครั้ง
ตอนแรกๆ คิดว่า น่าจะเหมือนๆ กับ ที่นั่ง VIP ประมาณั้น
แต่ระยะหลังๆ เมื่อเข้าร่วมกิจกรรมของ GF บ่อยครั้ง
ทำให้ได้เจอ MVP ตัวเป็นๆ รู้สึกว่ามันเท่ห์จัง เกิดความอยากเป็นบ้าง

3 ก.ค. 2549
ขอแสดงความยินดีกับ Thailand MVP ใหม่ของเราครับ – นาย (Nine)
http://greatfriends.biz?18646

2 เม.ย. 2550
ยินดีกับ มี่ MVP
http://greatfriends.biz?42328

1 เม.ย. 2552
New MVP!! ดีใจกับ Bunpote_tt ด้วยครับ
http://greatfriends.biz?103388

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

และถามต่อว่า เผื่อแผ่อย่างไร?…
ก็ได้คำตอบว่า…
> ตอบกระทู้,
> ร่วมกิจกรรม,
> เขียนบทความ,
> เป็นวิทยากร แค่นี้แหละ (เยอะนะ คิดเอง)
ถ้าผลงานเข้าตาไมโครซอฟต์
ก็มีสิทธิ์ถูกเสนอชื่อ แต่งตั้งเป็น MVP

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

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

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

จึงอ้างอิงบทความบน GF …
ทางบก. จึงให้ลองส่งตัวอย่างให้พิจารณา

4 พค. 2551
บทความฉบับแรก ในชีวิตผม ที่ลงตีพิมพ์นิตยสาร CODE IT
ซึ่งแถมมาในเล่มนิตยสาร WindowsITPro
ในบทความชื่อ
สร้างแอพพลิเชั่นง่ายๆ ด้วย Silverlight 2 RIA, WCF และ LINQ
หลังจากนั้นทางบก. ชอบบทความมาก
เรียนเชิญให้เขียนบทความประจำ จนถึงปัจจุบัน

ด้วยการตอบกระทู้กระจาย เขียนบทความอย่างต่อเนื่อง
ตั้งแต่ปี 2550 ถึง 2552 ทำอย่างต่อเนื่อง 2 ปีเต็ม
ผลงานเข้าตาไมโครซอฟท์
ได้เป็น MVP (ตามที่คิดไว้) 

1 ก.ค. 2552
MVP_Horizontal_FullColor_150px
ขอแสดงความยินดี คุณ nano MVP คนใหม่รอบ July 2009 ครับ
http://greatfriends.biz?109645

คาถาประจำใจ
ผมมีคาถาประจำคือ
คาา => เปลี่ยนเป็นคำว่า อา

ด้วยจิตอาสา
หลังจากได้เป็น MVP
สิ่งหนึ่งที่ได้คือ  วิธีการเรียนรู้

วิธีการเรียนรู้ของผม

1.เขียนบทความ
เขียนบทความประจำที่ นิตยสาร WindowsITPro
• การจะเขียนเรื่องใดๆ
• ต้องผ่านกระบวนการ ศึกษาค้นคว้า จากหลายแหล่งข้อมูล
• ยำรวมมาเป็นความเข้าใจของตัวเอง
• แล้วเขียนมันออกมาให้คนอ่านเข้าใจง่าย
• ทบทวนหลายรอบ ก่อนส่งตีพิมพ์ หรือโพสต์ผ่านเว็บ
• การทำซ้ำๆ การทำหลายๆ รอบ ทำให้เราเข้าใจมากยิ่งขึ้นไปอีก

2.เขียนบลอก
โปรแกรม ซอฟต์แวร์: https://janawat.wordpress.com
• เป็นการบันทึกความทรงจำ
• ด้านโปรแกรมมิ่ง
• เผื่อแผ่สำหรับผู้อ่านทั่วไป
• และตอกย้ำ ความเข้าใจ ของตัวเอง

3.เป็นผู้นำชุมชน
อยู่ที่ http://greatfriends.biz โดยใช้ชื่อ nano
• บรรยายความรู้
• ในเรื่องเทคโนโลยีด้าน Microsoft.NET
• ให้กับคนชุมชน

4.ตอบกระทู้
บนเว็บบอร์ด http://greatfriends.biz
• ปัญหาหลายๆ ปัญหา
• ทำให้เรา ฉลาดขึ้น
• ทำให้เรา มีประสบการณ์ มากขึ้น
• และทำให้เรา มีเพื่อนมากขึ้น

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

image

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

นี่คือสิ่งเล็กๆ น้อยๆ ที่ผมเชื่อเสมอว่า
เราจะเป็นอย่างที่เราคิด…

อายุที่เราได้มา คือวันเวลาที่เราเสียไป
สิ่งเดียวในโลก ที่ไม่สามารถรีไซเคิลได้ คือวันเวลาเมื่อวันวาน

เมื่อไหร่ ผมรู้สึกกลัว ผมจะลงมือทำทันที

คุณเคยกลัวผี ใหม?
ทำไม คุณต้องกลัวผี เฉพาะกลางคืน
แล้วกลางวันละ ความกลัวหายไปใหน?
กลางคืน ต่างกับกลางวัน อย่างไร? แน่นอน มันคือความมืด
ความมืดทำให้คุณไม่รู้ว่า อะไรอยู่ตรงหน้าคุณ
เมื่อคุณไม่รู้ คุณจึงกลัว

กลัวเพราะไม่รู้

แท้จริง ที่คุณกลัว ไม่ใช่ผี
แต่มันคือ ความมืด

ในชีวิตจริง
มีความมืดมากมาย ให้คุณเดินผ่าน
มีเรื่องมากมาย ที่คุณไม่รู้
เมื่อใดที่คุณกลัว คุณเพียงนำตัวเองไปอยู่ ณ ตรงนั้น
เมื่อใดที่คุณกลัว จงเรียนรู้มัน
เมื่อคุณรู้ ความกลัวจะหายไปเอง

เมื่อคุณกลัว จงลงมือทำทันที

โดย:
Nano, 2014-04-07

ปล.เผยแพร่ครั้งแรกเมื่อวันที่ 2011-12-31 18.01
กลับมา Update ใหม่ เป็นกำลังใจสำหรับท่านที่ กำลังจะเป็น MVP

เขียนใน โปรแกรมจิตสำนึก

ขยัน แบ่งปัน อดทนอย่างต่อเนื่อง คือสมบัติ ของ MVP


ขอแสดงความยินดี คุณ nano
MVP คนใหม่รอบ July 2009

บรรยากาศ นี้ห่างหายไปนาน 5 ปี
แต่เหมือนเพิ่งผ่านไป เมื่อไม่กี่วันนี้
นานแล้ว ที่ไม่ได้ยินข่าว MVP คนใหม่
ที่มาจาก ชุมชน greatfriends แห่งนี้

Microsoft รอแจก MVP อยู่ทุกปี
แต่ไม่มีใคร อดทนรอได้?
อดทนรอไม่ได้ คือคุณยังทำ ต่อเนื่องไม่พอ
และในแต่ละปี ไม่ค่อยมีคนจากประเทศไทย เท่าไหร่
ถามว่าประเทศไทย ไม่มีคนเก่งหรือไง?
คนไทยเก่งๆ ในเทคโนโลยีของไมโครซอฟท์ มีเยอะ
แล้วทำไม ไมโครซอฟท์ ไม่ให้ MVP?

คนที่จะเป็น MVP ได้
นอกจากคุณมีความรู้ใน เทคโนโลยีของไมโครซอฟท์ แล้ว
ที่สำคัญ

  1. ต้องมีความขยัน
  2. รู้จักแบ่งปัน
  3. และทำมัน อย่างต่อเนื่อง และต่อเนื่อง ตลอดทั้งปี

    แค่ 3 อย่างนี้ เท่านั้นจริงๆ

แล้ว 3 อย่างนี้สำคัญอย่างไร?

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

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

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

ถามว่า เป็น MVP แล้วบินได้ใหม?
บินได้ซิครับ (แค่มีเงิน) แล้วไปซื้อตั๋วเครื่องบิน เท่านั้น
ดูอย่าง MVP-หมี่ ซิ บินไปทั่วโลก ตอนนี้(2014-04-07) กำลังพักร้อนอยู่ญี่ปุ่น

สิ่งที่บทความนี้ กำลังมุ่งประเด็นไม่ใช่บินได้ หรือไม่ได้
แต่อยากให้คุณลองคิดตาม
ดังนี้:
ถ้าคุณฝึกตัวเอง ให้ มีความขยัน แบ่งปัน และทำมันอย่างต่อเนื่อง ตลอดทั้งปี
สิ่งที่คุณได้แน่นอน คืออะไร?

  • คุณจะเป็นคน ไม่ขี้เกียจ
  • คุณจะเป็นคน มีวินัย ในตนเอง
  • คุณจะเป็นคน ไม่เห็นแก่ตัว
  • คุณจะเป็นคน ที่ศึกษาอย่างต่อเนื่อง

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

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

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

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

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

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

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

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

โดย:
Nano, 2014-04-07

เขียนใน โปรแกรมจิตสำนึก

Outlook 2013 e-mail message encoding


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

ซึ่งปัญหามาจาก
ทางผู้ส่งไม่ได้ตั้ง Encoding Email มาเป็นภาษาไทย
คุณจะได้เนื้อหาอีเมล์ ภาษาต่างดาว ประมาณดังนี้

ใน Outlook 2013
คุณสามารถปรับ Encoding e-mail message ได้
ดังนี้

1. ดับเบิ้ลคลิก เปิดเมล์ ดังกล่าวขึ้นมา


2. คลิกบนแทบ เมนู MESSAGE


3. คลิกที่เมนู Actions => Other Actions => Encoding => More


4. More => เลือก Encoding เป็น Unicode (UTF-8)


5. เนื้อหาอีเมล์จะเปลี่ยนเป็นภาษาไทย ที่อ่านรู้เรื่อง ทันที


6. ขอบคุณพระเจ้า
ต่อไปคุณจะไม่พลาดอีเมล์ของลูกค้าคนสำคัญแน่นอน
คุณ ไม่ต้องหัวเสีย กับเมล์ภาษาต่างดาวอีกต่อไป
ขอให้มีความสุขกับการใช้งาน Outlook 2013

The end.

โดย:
Mr.Nano


 

เขียนใน Uncategorized

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


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

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

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

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

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

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

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

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

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


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

แล้วพบกันเร็วๆ นี้
บน นิตยสาร WindowsITPro:>>

โดย: 
Mr.Nano


 

เขียนใน Uncategorized

What’s new for developers in Visual Studio 2013


เมื่อวันที่ 26 พฤศจิกายน 2556 ไมโครซอฟต์ได้จัดงาน Microsoft TechDays Thailand 2013
ได้เปิดตัว>

  • Windows Server 2012 R2,
  • System Center 2012 R2,
  • Windows 8.1 Enterprise,
  • Windows Azure และ
  • Visual Studio 2013

ณ ห้องบอลรูม โรงแรมแชงกรีลา บางรัก กรุงเทพฯ


 

ผมได้รับเกียรติจาก ไมโครซอฟท์
ให้บรรยายหัวข้อ
What’s new for developers in Visual Studio 2013
ไปดู Slide และ Script ที่บรรยาย
ดังนี้:


 

ไปดูหัวข้อ
จะเริ่มต้นด้วย ฟีเจอร์ Connected IDE
ต่อด้วยเรื่องของ Theme
และที่เป็นหัวใจของ เซสชั่นนี้คือ

Editor productivity features

ที่ให้ประสบการณ์ที่ดี ในการเขียนโค้ด กับนักพัฒนา
หลังจากนั้น ไปจะพูดคุยเกี่ยวกับบางส่วน ของ Performance tools & debugging
และต่อด้วยหัวข้อ การปรับปรุง Visual Studio 2013 ใน .NET Framework 4.5.1

สุดท้ายจะจบด้วย การสร้าง
Mobile Web Business Application ด้วย LightSwitch html


 

Connected IDE
เมื่อคุณติดตั้ง Visual Studio เสร็จ
คุณเปิด Visual Studio ครั้งแรก
คุณจะเห็นหน้าต่าง ให้ Sign in เข้าสู่ระบบด้วย
Microsoft account เช่น
    @hotmail.com,
    @Live.com,
    @outlook.com

ซึ่งการทำงานของ connected IDE นั้น
หลังจากที่คุณลงชื่อเข้าใช้งาน Visual Studio
การตั้งค่าของคุณจะ ซิงโครไนส์ กับ Microsoft account โดยอัตโนมัติ
ซึ่ง Profile ของคุณ จะถูกเก็บไว้บน cloud และครั้งต่อไป
เมื่อคุณไปใช้ Visual Studio 2013 บนเครื่องอื่น ด้วย account นั้น
การตั้งค่าของคุณ เช่น Theme, Font,
จะ Sync มาโดยอัตโนมัติ
ทำให้ IDE พร้อมใช้งานได้ทันที


 

ในสไลด์นี้
จะไปดูในส่วนของ ฟีเจอร์ themes
ซึ่งก่อนหน้านี้ Visual Studio 2012
มีให้เลือก เพียง 2 Theme คือ

  • Light และ
  • Dark

แต่หนึ่งในการร้องขอ ของนักพัฒนาคือ
ขอให้เพิ่ม Them สีน้ำเงิน เนื่องจากนักพัฒนาหลายท่าน ยังหลงใหลใน VS2010 อยู่
ต่อมาไมโครซอฟต์ ได้ปรับปรุงให้ทันทีใน
Visual Studio 2012 Update 2
และตอนนี้ ใน Visual Studio 2013
ไมโครซอฟท์ใส่มาให้แล้ว
คุณสามารถใช้งานได้ทันที


 

ไปดูตัวอย่าง


1. เปิด VS2013

2. สังเกตุบนมุมขวา ของ IDE จะเห็นเมนู Sign in

3. คลิกเมนู Sign in
ถ้าเครื่องคุณออนไลน์อยู่ คุณจะเห็นหน้าจอให้ Sign in
ผมใช้ outlook.com

4. Sign in เรียบร้อย
มันจะ Sync Profile IDE ของคุณลงมา
ทำให้ IDE ของคุณ พร้อมใช้งานทันที่

5. เมนู Feedback
ไมโครซอฟท์ ได้ใส่เมนู Feedback ลงบน IDE
ทำให้นักพัฒนา สามารถส่ง Feedback ถึงไมโครซอฟท์ ทันที เช่

  • ถ้าคุณเจอสิ่งที่ชอบใจ คุณส่งรอยยิ้มไป
  • ถ้าคุณเจอสิ่งไม่ถูกใจ คุณส่งหน้าบึ้งไป
  • หรือคุณสามารถไปตั้งกระทู้ ได้ทันที ผ่านเมนู MSDN Forums
  • หรือคุณเจอบั๊กคุณสามารถส่งบั๊กถึง ไมโครซอฟท์ ทันที

 

กลับไปที่สใลด์
เรื่องที่ถือเป็นหัวใจ ของเซสซั่นนี้
ไปดูบางฟีเจอร์ใหม่ ที่ช่วยเพิ่ม productivity
เมื่อทำงานใน Visual Studio editor
รุ่น Visual Studio ก่อนหน้านี้
เราเห็นตัวอย่างค่อนข้างน้อย เกี่ยวกับ เอดิเตอร์ โปรดักทิวีตี้
เอดิเตอร์ โปรดักทิวีตี้ ถูกโฟกัสเป็นหลักสำหรับ Visual Studio 2013
โดยผมจะยก เอดิเตอร์ โปรดักทิวีตี้ หลักๆ 3 ฟีเจอร์นี้มาพูด

  • Enhanced scrollbar
  • Peek Definition
  • CodeLens

เดี๋ยวเราจะไปดู ทีละฟีเจอร์ ว่ามันคืออะไร?


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


มันมีสองโหมดคือ

  1. Bar mode
  2. Map mode


 

CodeLens คืออะไร?
CodeLens จะคล้ายกับ หน้าปัดรถยนต์
หน้าปัดรถยนต์ จะเป็นตัวบอกให้คุณรู้ว่า

ก่อนคุณสตาร์ทรถ

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

เมื่อคุณออกวิ่ง

มันจะรายงาน ข้อมูลให้คุณทราบ

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

CodeLens จะทำหน้าที่คล้ายๆ อย่างนั้น
CodeLens เป็นฟีเจอร์ใหม่ใน Visual Studio 2013 Ultimate
ที่จะรายงานสภาพโค้ดของคุณให้คุณทราบว่า
มีตัวเลขจำนวนการอ้างอิงเมธอด ที่คุณกำลังแก้ไข
เมธอดดังกล่าวถูกทดสอบไปหรือยัง
สถานะการทดสอบเป็นอย่างไร ผ่าน หรือไม่ผ่าน
การอัพเดตโค้ดครั้งล่าสุดใครเป็นคนอัพเด็ต วันเวลาเท่าไหร่
CodeLens จะเป็นรายงานสถานะของโค้ดให้คุณทราบ


 

Peek Definition ฟีเจอร์นี้ ผมชอบมาก
ก่อนหน้านี้ เมื่อคุณเขียนโค้ด
และต้องการดูรายละเอียดของบางอ็อบเจ็กต์ หรือบางเมธอด
คุณจะใช้วิธี คลิกขวาลงบนอ็อบเจ็กต์ดังกล่าว แล้วเลือกเมนู Go to Definition
แล้วกระโดดไปในบรรทัดอื่น หรือไปเปิดโค้ดในหน้าต่างอื่น
ซึ่งเมื่อคุณดูรายละเอียดเสร็จเรียบร้อย และได้แนวคิดแล้ว
คุณจะกลับไปเขียนโค้ดต่อที่จุดเดิม
คุณจะเสียเวลาในการค้นหาว่า เมื่อตะกี้ คุณอยู่ ณ ตำแหน่งใหนของซอร์สโค้ด
คุณสลับหน้าต่างไป-มา คุณจะเกิดความว้าวุ่นใจ
ทำให้ความคิดคุณจะกระเจิง ไม่โฟลว์
ไม่ใหลต่อจากจุดที่คุณกำลังขียนโค้ดเมื่อครู่
แล้วคุณจะเกิดอาการ
    เมื่อกี้คุณไปดูอะไรมา?…
    รายละเอียดมันว่าอย่างไรนะ
    แล้วคุณจะลืม และมึนๆ
เมื่อคุณลืม และมึนๆ
คุณจะลุกจากโต๊ะ ไปหาทานกาแฟ, คุยกับเพื่อน
กลับมาที่โต๊ะ ยังนึกไม่ออก และมึนกว่าเก่า
แล้วคุณก็เปิด Facebook Update Status สักหน่อย
แล้วถ่ายรูป แก้วกาแฟ เน้นโลโก้ สตาร์…บัง แล้วแชร์….
จากนั้นคุณจะรอเพื่อนมา กด Like… ขณะเดียวกันคุณก็หากด Like status ของเพื่อนๆ
มารู้สึกตัวอีกทีถึงเวลาเลิกงาน เตรียมตัวเก็บกระเป๋ากลับบ้าน
หมดไปครึ่งวัน โค้ดดิ่ง คุณไม่ขยับไปใหนเลย
เพียงเพราะคุณเกิดความว้าวุ่นใจ ในการหาเส้นทางกลับมาที่จุดเดิม ทำให้ความคิดคุณไม่โฟลว์

การที่คุณเกิดความว้าวุ่นใจ ความคิดของคุณไม่โฟลว์
สิ่งนี้บอกอะไรกับเรา
สมาธิ! สมาธินั้นสำคัญมาก
ไมโครซอฟท์ ได้เพิ่มฟีเจอร์ Peek เข้ามา
โดยทำให้คุณสามารถ ดูรายละเอียดของโค้ดที่เรียกใช้

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

ณ ขณะปัจจุบัน…
ณ ขณะปัจจุบัน นี้สำคัญมาก
เดล คาร์เนกี้ กล่าวไว้ในหนังสือว่า “จงมีชีวิตอยู่ ในห้อง ที่มีแต่วันนี้
อดีตผ่านมาแล้ว
ส่วนอนาคตเป็นเพียงสิ่งซึ่ง ยังไม่ปรากฏรูปร่าง และยาวนานเท่าไหร่ ไม่มีใครบอกได้
ชีวิตจริงของคุณ มีอยู่ ณ ขณะ ปัจจุบัน ที่คุณกำลังเขียนโค้ดนี้ เท่านั้น
ทุกครั้งที่เข็มวินาทีกระดิก เหตุการณ์เหล่านั้นจะ กลายเป็นอดีตไปทันที
ถ้าคุณลองสังเกตุ ย้อนกลับมาดูที่ตัวเองดีดี สิ่งที่ทำให้คุณกังวลใจ ไม่สบายใจ
เครียดจนเขียนโค้ดไม่ออก เป็นเพราะคุณใช้หน่วยความจำ(Memory) ในหัว
ไปคิดเรื่องในอดีต(ปัญหาที่ผ่านมาแล้ว…)
หรือไม่ก็เป็นเรื่องที่ยังไม่เกิดในอนาคต (ปัญหาที่ยังไม่เกิดขึ้น…)
แล้วคุณก็นำความกังวลใจเหล่านั้นมาคิดในปัจจุบัน
จนหน่วยความจำในหัวของคุณเหลือน้อย หรือแทบไม่เหลือ
สำหรับการประมวลผลข้อมูลตรงหน้าคุณ ในขณะที่คุณกำลังเขียนโค้ดอยู่
ทำให้คุณแก้ไขปัญหาได้ล่าช้า หรือไม่สามารถหาทางออกของปัญหาได้
สิ่งที่จะทำให้ ชีวิตของคุณมีความราบรื่นได้จริงๆ คือ ชั่วขณะ ปัจจุบัน นี้เท่านั้น
ณ ขณะปัจจุบัน ที่คุณกำลังเขียนโค้ด
ถ้าคุณไม่เสียเวลา ในการสลับหน้าต่างไปมา ซึ่งจะทำให้คุณเกิดความว้าวุ่นใจ
เมื่อไม่เหตุปัจจัยในการดึงความคิดของคุณให้หลุดไปจากสิ่งที่คุณกำลังโค้ดดิ้ง
ความคิดของคุณจะโฟลว์ และเริ่มใหลเป็นน้ำ
เมื่อนั้นการเขียนโค้ดของคุณจะเริ่มราบรื่น
เมื่อคุณทำงาน ด้วยความราบรื่น ความว้าวุ่นใจต่างๆ จะหายไป คุณจะเริ่มมีความสุข
เมื่อคุณทำงาน ด้วยความความสุข คุณจะเริ่มมีสมาธิ
เมื่อคุณงาน ด้วยสมาธิ ใจจดใจจ่อ เมื่อนั้น Productivity ของคุณจะเพิ่มขึ้นหลายเท่าตัว
เพราะนี้คือ
Visual Studio 2013 Editor Productivity


 

ไปดูตัวอย่าง


 

ในสไลด์นี้
เราจะดูที่บางส่วนของ Performance tools และ การดีบั๊ก


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

แต่ใน Visual Studio 2013

คุณสามารถดูได้ทันทีจาก Autos windows
และคำสั่ง ?$ReturnValue


ในหัวข้อเกือบสุดท้ายของเรา
จะแสดงบางสิ่งที่เจ๋งของ .NET Framework 4.5.1
ที่ได้เปิดการใช้งานใน Visual Studio 2013


ซึ่งใน .NET Framework 4.5.1 นั้น
ได้รับการปรับปรุงเพื่อ
เพิ่ม Developer Productivity เช่น
ฟีเจอร์ Edit and Continue ที่ทำให้นักพัฒนาสามารถ
แก้ไขโค้ดได้ทันที บน OS 64 บิต
ซึ่งก่อนหน้า จะทำได้เฉพาะใน OS32 บิต เท่านั้น


มาที่หัวข้อสุดท้าย
สำหรับท่านที่ยังไม่เคยใช้งาน LightSwitch
เราไปดูวิธีสร้างโปรแกรม Mobile Web Business ง่ายๆด้วย LightSwitch


ถ้าคุณสร้าง โปรแกรม LightSwitch ครั้งแรก มี 4 ขั้นตอน

  1. สร้างโปรเจ็กต์
  2. กำหนด Data source
  3. สร้างหน้าจอ
  4. เอาโปรแกรมไปใช้งาน


 

1. สร้างโปรเจ็กต์


2. กำหนด Data Source โดย
คุณสามารสร้างใหม่ หรือใช้ของที่มีอยู่


ขั้นตอที่ 3-4 ไปดูในตัวอย่าง


ขั้นตอนที่ 1-2 คุณจะได้รูปนี้
ตัวอย่างนี้ผมใช้ ตัวอย่างฐานข้อมูล Northwind
โดยจะทำโปปรแกรมจัดการข้อมูล Product


สร้างหน้าจอ
คลิกขวาบน Screens=> Add Screen…


เลือก Template…
เลือกตาราง Product…กด OK


 

คุณจะได้รูปนี้


แล้วรัน…คุณจะเห็นไอเท็ม Product ดังรูป


 

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

 

แล้วกด OK


 

สร้างหน้าจอใหม่อีกครั้ง…กด OK


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

 

สำหรับท่านที่ต้องการ
ศึกษาเพิ่มเติม Resource ตามนี้


 

ด้วย Visual Studio 2013
ช่วยให้คุณเขียนโค้ดได้อย่างราบรื่น
เมื่อคุณเขียนโค้ดได้อย่างราบรื่น คุณจะเริ่มมีความสุข
เมื่อคุณมีความสุข สมาธิคุณจะเกิด
เมื่อสมาธิคุณเกิด โปรดักทีวีตี้ ของคุณ ก็จะเพิ่มขึ้น
จงเขียนโค้ดของคุณอย่างมีความสุข
เมื่อคุณมีความสุข คุณจะทำงานโดยไม่ต้องทำงาน


 

Slide: What’s new for developers in Visual Studio 2013:
http://www.slideshare.net/…/whats-new-for-developers-in…

Slide: Mobile Web Business Apps with LightSwitch:
http://www.slideshare.net/…/mobile-web-business-apps…

โดย:
Nano

เขียนใน Uncategorized
In Archive