การกำหนดขนาดกระดาษสำหรับ Print Label ใน Crystal report
การพิมพ์ Label จาก Crystal report โดยใช้กระดาษต่อเนื่องที่มีขนาดเล็กนั้นอาจมีปัญหาว่า
สร้าง Form กระดาษให้ตรงตามจริงแล้ว ตอนสั่งพิมพ์ไม่สามารถเลือกฟอร์มกระดาษที่กำหนดขึ้นได้
กรณีที่เคยพบคือ ใช้เครื่องพิมพ์ EPSON LQ 2180i พิมพ์ Label แปะซองจดหมายถึงลูกค้า แต่ขนาดของ
Label มีขนาด Width : 11 cm และ Height : 3.5 cm ซึ่งเครื่องขนาดของฟอร์มกระดาษเล็กกว่าขนาดที่
เล็กที่สุดที่เครื่องพิมพ์รองรับทำให้เครื่อง Printer ไม่สามารถ Detect เจอ size กระดาษนั้นได้
จึงได้โทรไปสอบถามทาง Epson ถึงวิธีการแก้ไข จึงได้ทราบวิธีที่ง่ายมาก คือเพียงแต่เปลี่ยนไปใช้
Driver ของเครื่องพิมพ์รุ่นที่เก่ากว่า ก็จะทำให้สามารถสั่งพิมพ์ลงใน Form ที่มี ขนาดเล็กได้ แค่นี้เองครับ
ตัวอย่าง เครื่องพิมพ Epson LQ 2180i แทนที่จะใช้ Driver ของรุ่นนี้แต่เปลี่ยนไปใช้ Driver รุ่น
LQ-1170 ESC/P 2 แทน หวังว่า Blog นี้จะช่วยแก้ปัญหาให้หลาย ๆ ท่านได้ครับ
Mssql, Microsoft sql server, SSAS, SSRS ,SSIS , Analysis Service, Reporting Service, Integration Service, XMLA ,MDX ,SQL
วันอังคารที่ 30 มีนาคม พ.ศ. 2553
วันจันทร์ที่ 22 มีนาคม พ.ศ. 2553
Internal Error 2755. 1612, Microsoft Visual Studio 2005 SP 1
This error issued when your windows securities is not update
You need to download update for windows Download Here
You need to download update for windows Download Here
วันพฤหัสบดีที่ 18 มีนาคม พ.ศ. 2553
การใช้ SUB Query ใน SQL Command
Sub query คือ การดึงข้อมูลออกเป็นตารางเสมือน ตามเงื่อนไขที่ต้องการเพื่อจุดประสงค์ที่ต้องการ
ซึ่งต้องใช้ ( ) ในการ scope
ตัวอย่างการใช้งาน SUB Query
SELECT a.*
FROM (
SELECT emp_id,emp_name
FROM employee
WHERE emp_id >= '100111'
) as a
จากตัวอย่างหมายความว่า เลือกข้อมูลทั้งหมดจากตารางที่มี Alias "a" ซึ่งเป็น Sub query จากการ
Select ข้อมูลจากตาราง employee ที่มี emp_id >= '100111'
ซึ่งต้องใช้ ( ) ในการ scope
ตัวอย่างการใช้งาน SUB Query
SELECT a.*
FROM (
SELECT emp_id,emp_name
FROM employee
WHERE emp_id >= '100111'
) as a
จากตัวอย่างหมายความว่า เลือกข้อมูลทั้งหมดจากตารางที่มี Alias "a" ซึ่งเป็น Sub query จากการ
Select ข้อมูลจากตาราง employee ที่มี emp_id >= '100111'
การใช้คำสั่ง IN ใน SQL command
คำสั่ง IN ใน Sql หมายถึงการกรองข้อมูลด้วย column โดยที่ค่าที่ต้องการกรองมีได้มากกว่า 1 ค่า ซึ่งแตกต่างจากการใช้เครื่องหมายเท่ากับ ("=") และค่าที่ใช้กรองจะต้องอยู่ภายในวงเล็บ
ตัวอย่าง
SELECT *
FROM employee
WHERE emp_id IN ('100234','100235','100236')
ความหมายของ Query นี้คือ การเลือกพนักงานที่มีรหัสตามที่ระบุนั่นเอง ซึ่งผลลัพธ์จะได้ 3 Records
ตัวอย่าง
SELECT *
FROM employee
WHERE emp_id IN ('100234','100235','100236')
ความหมายของ Query นี้คือ การเลือกพนักงานที่มีรหัสตามที่ระบุนั่นเอง ซึ่งผลลัพธ์จะได้ 3 Records
คำสั่ง JOIN ใน SQL
Join ก็คือ "ร่วมกัน" , "เชื่อมต่อ" ดังนั้นก็คือการเชื่อมโยงตารางเข้าด้วยกันนั่นเอง และการ join table
มีหลายรูปแบบซึ่งใช้งานแตกต่างกันออกไป
รูปแบบของการ JOIN ที่ใช้กันบ่อย ๆ มีดังนี้
INNER JOIN คือ ค่าของ column ที่ใช้ในการ join จะต้องมีค่าตรงกันเท่านั้น แถวของข้อมูลที่ตรงตามเงื่อนไขนี้เท่านั้นที่จะแสดงผลออกมาจากการ Query
LEFT JOIN คือ แถวจากตารางหลัก(ทางซ้าย)จะออกมาเสมอ แม้ว่าจะไม่มีข้อมูลที่ตรงกันในตารางที่เชื่อมโยงไป
RIGHT JOIN จริง ๆ แล้วเหมือนกับ LEFT JOIN เพียงแต่สลับตำแหน่งของตารางที่ใช้ในการเชื่อมโยงข้อมูลเท่านั้น
(ไม่แนะนำให้ใช้ ใช้ LEFT JOIN แทนดีกว่า จะได้ไม่สับสน)
ตัวอย่าง
/* INNER JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
INNER JOIN department as d ON e.dept_id = d.dept_idORDER BY d.dept_id,e.emp_id
ความหมายคือ เลือกพนักงานทุกคนที่มีรหัสแผนกตรงกับในตารางแผนก
หากพนักงานคนใดยังไม่รหัสแผนกคือ dept_id ข้อมูลพนักงานรายนั้นจะไม่แสดงใน Query นี้
/* LEFT JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
LEFT JOIN department as d ON e.dept_id = d.dept_id
ความหมายคือ เลือกพนักงานทุกคนที่มีรหัสแผนกตรง หรือ ไม่ตรงกับในตารางแผนกออกมาทั้งหมด
ถึงแม้ว่าพนักงานบางรายจะยังไม่มีรหัสแผนก ข้อมูลพนักงานรายนั้นก็จะยังแสดงออกมาด้วย
เพียงแต่ว่าค่าใน column "dept_name" จะเป็นค่า NULL เท่านั้นเอง
มีหลายรูปแบบซึ่งใช้งานแตกต่างกันออกไป
รูปแบบของการ JOIN ที่ใช้กันบ่อย ๆ มีดังนี้
INNER JOIN คือ ค่าของ column ที่ใช้ในการ join จะต้องมีค่าตรงกันเท่านั้น แถวของข้อมูลที่ตรงตามเงื่อนไขนี้เท่านั้นที่จะแสดงผลออกมาจากการ Query
LEFT JOIN คือ แถวจากตารางหลัก(ทางซ้าย)จะออกมาเสมอ แม้ว่าจะไม่มีข้อมูลที่ตรงกันในตารางที่เชื่อมโยงไป
RIGHT JOIN จริง ๆ แล้วเหมือนกับ LEFT JOIN เพียงแต่สลับตำแหน่งของตารางที่ใช้ในการเชื่อมโยงข้อมูลเท่านั้น
(ไม่แนะนำให้ใช้ ใช้ LEFT JOIN แทนดีกว่า จะได้ไม่สับสน)
ตัวอย่าง
/* INNER JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
INNER JOIN department as d ON e.dept_id = d.dept_idORDER BY d.dept_id,e.emp_id
ความหมายคือ เลือกพนักงานทุกคนที่มีรหัสแผนกตรงกับในตารางแผนก
หากพนักงานคนใดยังไม่รหัสแผนกคือ dept_id ข้อมูลพนักงานรายนั้นจะไม่แสดงใน Query นี้
/* LEFT JOIN */
SELECT e.emp_id,e.emp_name,d.dept_name
FROM employee as e
LEFT JOIN department as d ON e.dept_id = d.dept_id
ความหมายคือ เลือกพนักงานทุกคนที่มีรหัสแผนกตรง หรือ ไม่ตรงกับในตารางแผนกออกมาทั้งหมด
ถึงแม้ว่าพนักงานบางรายจะยังไม่มีรหัสแผนก ข้อมูลพนักงานรายนั้นก็จะยังแสดงออกมาด้วย
เพียงแต่ว่าค่าใน column "dept_name" จะเป็นค่า NULL เท่านั้นเอง
สมัครสมาชิก:
บทความ (Atom)