การพิมพ์ลงแบบฟอร์มในขนาดกระดาษที่ไม่มาตรฐาน เช่น ขนาดกระดาษ 6x8นิ้ว
(ส่วนใหญ่จะวัดเป็นนิ้ว) ถ้าเป็นบน Win98,Me สามารถกำหนดขนาดกระดาษเป็นแบบ CustomSize ได้โดยกำหนดที่ Printer
'//---- กรณี Printer Object -----
Printer.PaperSize = 256
Printer.Width = 8640 '//--- 1 นิ้ว=1440 Twip
Printer.Height = 11520 '//--- 1 นิ้ว=1440 Twip
'//---- กรณี VsView8 -----
VSPrinter1.PaperSize = 256
VSPrinter1.PaperWidth = 8640
VSPrinter1.PaperHeight = 11520
|
แต่พอมาใช้ WinNT, Win2000, Win2003 และ WinXP กลับไม่มี Papersize = 256
สร้างความเดือดร้อนให้กับ โปรแกรมเมอร์พอสมควร เพราะว่ากระทบรายงานแทบทุกตัว ไม่ว่าจะเป็น Printer Object, VsView8,
Crystal report, Active Report หรืออื่นๆ เพราะว่าการพิมพ์ลงฟอร์มบน WinXP นั้น ต้องใช้วิธีสร้างฟอร์มก่อน แล้วนำค่า PaperSize
ไปใช้ ตัวอย่างเช่น ถ้าต้องการพิมพ์กระดาษขนาด A4 ค่า PaperSize คือ 9 ถ้าหากสร้างฟอร์มใหม่ค่า PaperSize จะราวๆ 125 ขึ้นไป
เป็นค่าไม่มาตรฐาน ผู้ใช้ต้องหาเองอีก
เมื่อตอน Win2000 ออกมา ไม่ค่อยมีปัญหาเท่าไหร่ เนื่องจากมีจำนวนผู้ใช้จี๊ดเดียว
แต่พอ WinXP ออกมานี่ ผู้ใช้เพิ่มขึ้นแพร่หลายอย่างรวดเร็ว ดังนั้นการพิมพ์ฟอร์มบน WinXP จึงเป็นเรื่องสำคัญอย่างหลีกเลี่ยงไม่ได้
ดังนั้นท่านจะต้องรู้วิธีการสร้างฟอร์ม
เริ่มต้นสร้างฟอร์มบน WinXP
1.ขั้นแรกคือให้ไปที่ Start->Printers and Faxes
2. คลิกที่เมนู File->Server Properties จะปรากฎดังภาพ
3. ให้ใส่ชื่อ FormName และขนาดตามต้องการ แล้วคลิก SaveForm
4. ต่อไปหาเลข PaperSize ถ้าใช้ VsView8 สามารถหาได้โดยใช้โค้ด
แต่ถ้าเป็น Printer Object ไม่รู้เหมือนกันใช้อะไร
For i = 1 To 255
If VSPrinter1.PaperSizes(i) = True Then
Debug.Print i '//--- ถ้า Papersize สามารถพิมพ์ได้
End If
Next
|
การสร้างฟอร์มโดยใช้ VB6
ต้องไปอ่านวิธีการสร้างได้ที่เวบ
http://support.microsoft.com/default.aspx?scid=kb;en-us;282474
ผู้เขียนได้เขียนโมดูลสำหรับสร้างฟอร์มบน XP และ หาเลข PaperSize ชื่อว่า GetPaperSize
เป็นโปรแกรมที่ทำขึ้นเพื่อให้การพิมพ์ลงแบบฟอร์มบน WinXP เป็นเรื่องง่ายๆ แต่ผู้เขียนจะสงวนแจกให้เฉพาะผู้ที่สนับสนุน Tgmask+Tggrid