คุณสมบัติ PrtDevMode

สิ่งสำคัญ:  บทความนี้เป็นการแปลด้วยเครื่อง โปรดดู ข้อจำกัดความรับผิดชอบ โปรดดูบทความฉบับภาษาอังกฤษ ที่นี่ เพื่อใช้อ้างอิง

นำไปใช้กับ

วัตถุ Form

วัตถุ Report

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

expression.PrtDevMode

expression จำเป็นต้องมี เป็นนิพจน์ที่ส่งกลับวัตถุใดวัตถุหนึ่งในรายการ 'นำไปใช้กับ'

ข้อสังเกต

ขอแนะนำให้คุณอ่านคู่มือ Win32 Software Development Kit สำหรับข้อมูลเพิ่มเติมโดยละเอียดเกี่ยวกับคุณสมบัติ PrtDevMode, PrtDevNames และ PrtMip

การตั้งค่าคุณสมบัติ PrtDevMode เป็นโครงสร้างข้อมูลแบบ 94 ไบต์ซึ่งเหมือนกับโครงสร้างข้อมูลของ DEVMODE ที่ถูกกำหนดใน Win32 Software Development Kit สำหรับข้อมูลทั้งหมดเกี่ยวกับสมาชิกของคุณสมบัติ PrtDevMode ให้อ่านจาก Win32 Software Development Kit

คุณสมบัตินี้โหมดPrtDevใช้สมาชิกต่อไปนี้

สมาชิก

คำอธิบาย

DeviceName

ค่า สตริง ที่มีความยาวมากที่สุดได้ 32 ไบต์ซึ่งระบุชื่อของอุปกรณ์ที่โปรแกรมควบคุมสนับสนุน ตัวอย่างเช่น "HP LaserJet IIISi" ถ้า Hewlett-Packard LaserJet IIISi เป็นเครื่องพิมพ์ที่ถูกกำหนดไว้ แต่ละโปรแกรมควบคุมเครื่องพิมพ์จะมีสตริงที่ไม่เหมือนกัน

SpecVersion

แอเป็นจำนวนเต็มที่ระบุจำนวนเวอร์ชันของโครงสร้างข้อมูลในชุดการพัฒนาซอฟต์แวร์ Win32

DriverVersion

ค่า Integer ที่ระบุหมายเลขรุ่นของโปรแกรมควบคุมเครื่องพิมพ์ที่ถูกกำหนดไว้โดยนักพัฒนาโปรแกรมควบคุมเครื่องพิมพ์

Size

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

DriverExtra

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

Fields

Aค่ายาวที่ระบุซึ่งของสมาชิกเหลืออยู่ในโครงสร้างข้อมูล มีการเตรียมใช้งาน

Orientation

ค่า Integer ที่ระบุการวางแนวของกระดาษ ค่านี้สามารถมีค่าเป็น 1 (แนวตั้ง) หรือ 2 (แนวนอน)

PaperSize

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

PaperLength

ค่า Integer ที่ระบุความยาวของกระดาษในหน่วยของ 1/10 มิลลิเมตร โดยสมาชิกนี้จะแทนที่ความยาวของกระดาษที่ระบุโดยสมาชิก PaperSize สำหรับขนาดกระดาษกำหนดเอง หรือสำหรับอุปกรณ์เช่นเครื่องพิมพ์แบบจุดที่สามารถพิมพ์ด้วยขนาดกระดาษหลายขนาด

PaperWidth

ค่า Integer ที่ระบุความกว้างของกระดาษในหน่วยของ 1/10 มิลลิเมตร โดยสมาชิกนี้จะแทนที่ความกว้างของกระดาษที่ระบุโดยสมาชิก PaperSize

Scale

ค่า Integer ที่ระบุอัตราส่วนที่ผลลัพธ์การพิมพ์จะถูกปรับมาตราส่วน ซึ่งขนาดหน้ากระดาษที่เห็นจะถูกปรับมาตราส่วนจากขนาดหน้ากระดาษจริงคูณกับค่า scale/100 ตัวอย่างเช่น กระดาษที่มีขนาด 8.5 X 11 นิ้ว (ขนาด Letter) ที่มีค่า Scale เป็น 50 อาจมีข้อมูลมากเท่ากับกระดาษที่มีขนาด 17 X 22 นิ้วเนื่องจากข้อความผลลัพธ์และกราฟิกจะเป็นครึ่งหนึ่งของความสูงและความกว้างเดิม

Copies

ค่า Integer ที่ระบุจำนวนของสำเนาที่พิมพ์ถ้าอุปกรณ์ที่ใช้พิมพ์สนับสนุนการทำสำเนาหลายหน้า

DefaultSource

ค่า Integer ที่ระบุ bin เป็นค่าเริ่มต้น จากกระดาษที่ป้อนเข้า

PrintQuality

ค่า Integer ที่ระบุความละเอียดของเครื่องพิมพ์ โดยมีค่าดังนี้ –4 (สูง), –3 (กลาง), –2 (ต่ำ) และ –1 (หยาบ)

Color

ค่า Integer ซึ่งสำหรับเครื่องพิมพ์สีแล้วจะระบุว่าผลลัพธ์จะถูกพิมพ์เป็นสี โดยมีค่า คือ 1 (สี) และ 2 (Monochrome)

Duplex

ค่า Integer สำหรับเครื่องพิมพ์ที่สามารถพิมพ์ได้ทั้งสองด้านของกระดาษแล้วจะระบุว่าผลลัพธ์จะถูกพิมพ์ทั้งสองด้านของกระดาษหรือไม่ โดยมีค่า คือ 1 (ด้านเดียว), 2 (แนวนอน) และ 3 (แนวตั้ง)

YResolution

ค่า Integer ที่ระบุ Y-resolution ของเครื่องพิมพ์ในหน่วยจุดต่อนิ้ว (dpi) ถ้าเครื่องพิมพ์ตั้งค่าสมาชิกนี้แล้ว สมาชิก PrintQuality จะระบุ X-resolution ของเครื่องพิมพ์ในหน่วย dpi

TTOption

ค่า Integer ที่ระบุวิธีที่แบบอักษร True Type จะได้รับการพิมพ์

Collate

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

FormName

ค่าสตริงที่มีความยาวมากที่สุด 16 ตัวอักขระที่ระบุขนาดของกระดาษที่ใช้ ตัวอย่างเช่น "Letter" หรือ "Legal"

Pad

ค่า Long ที่ถูกใช้เพื่อขยายช่องว่าง ขยายตัวอักขระ หรือขยายค่าสำหรับรุ่นในอนาคต

Bits

ค่า Long ที่ระบุความละเอียดของสีในหน่วยบิตต่อจุดของอุปกรณ์แสดงผล

PW

ค่า Long ที่ระบุความกว้าง (ในหน่วยจุด) ของผิวหน้าอุปกรณ์ที่มองเห็นได้ (หน้าจอหรือเครื่องพิมพ์)

PH

ค่า Long ที่ระบุความสูง (ในหน่วยจุด) ของผิวหน้าอุปกรณ์ที่มองเห็นได้ (หน้าจอหรือเครื่องพิมพ์)

DFI

ค่า Long ที่ระบุโหมดที่ใช้แสดงของอุปกรณ์

DFR

ค่า Long ที่ระบุความถี่ในหน่วยเฮิร์ทซ์ (รอบต่อวินาที) ของอุปกรณ์แสดงผลในโหมดที่เฉพาะ


หมายเหตุ: คุณสามารถตั้งค่าคุณสมบัติPrtDevModeใช้ Visual Basic for Applications (VBA) โค้ด

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

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

เฉพาะโปรแกรมควบคุมเครื่องพิมพ์ที่ส่งออกฟังก์ชัน ExtDeviceMode เท่านั้นที่ใช้โครงสร้างข้อมูล DEVMODE

โปรแกรมประยุกต์สามารถรับค่าขนาดกระดาษและชื่อที่สนับสนุนโดยเครื่องพิมพ์ได้โดยใช้ค่า DC_PAPERS, DC_PAPERSIZE และ DC_PAPERNAMES ในการเรียกใช้ฟังก์ชัน DeviceCapabilities

ก่อนที่จะตั้งค่าสมาชิก TTOption โปรแกรมประยุกต์ควรจะค้นหาว่าโปรแกรมควบคุมเครื่องพิมพ์สามารถใช้แบบอักษรแบบ TrueType ได้หรือไม่โดยใช้ค่า DC_TRUETYPE ในการเรียกใช้ฟังก์ชัน DeviceCapabilities

ตัวอย่าง

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

Private Type str_DEVMODE
RGB As String * 94
End Type
Private Type type_DEVMODE
strDeviceName As String * 32
intSpecVersion As Integer
intDriverVersion As Integer
intSize As Integer
intDriverExtra As Integer
lngFields As Long
intOrientation As Integer
intPaperSize As Integer
intPaperLength As Integer
intPaperWidth As Integer
intScale As Integer
intCopies As Integer
intDefaultSource As Integer
intPrintQuality As Integer
intColor As Integer
intDuplex As Integer
intResolution As Integer
intTTOption As Integer
intCollate As Integer
strFormName As String * 32
lngPad As Long
lngBits As Long
lngPW As Long
lngPH As Long
lngDFI As Long
lngDFr As Long
End Type
Public Sub CheckCustomPage(ByVal rptName As String)
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
Dim intResponse As Integer
' Opens report in Design view.
DoCmd.OpenReport rptName, acDesign
Set rpt = Reports(rptName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
' Gets current DEVMODE structure.
DevString.RGB = strDevModeExtra
LSet DM = DevString
If DM.intPaperSize = 256 Then
' Display user-defined size.
intResponse = MsgBox("The current custom page size is " & _
DM.intPaperWidth / 254 & " inches wide by " & _
DM.intPaperLength / 254 & " inches long. Do you want " & _
"to change the settings?", vbYesNo + vbQuestion)
Else
' Currently not user-defined.
intResponse = MsgBox("The report does not have a custom page size. " & _
"Do you want to define one?", vbYesNo + vbQuestion)
End If
If intResponse = vbYes Then
' User wants to change settings. Initialize fields.
DM.lngFields = DM.lngFields Or DM.intPaperSize Or _
DM.intPaperLength Or DM.intPaperWidth
' Set custom page.
DM.intPaperSize = 256
' Prompt for length and width.
DM.intPaperLength = InputBox("Please enter page length in inches.") * 254
DM.intPaperWidth = InputBox("Please enter page width in inches.") * 254
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
End If
Set rpt = Nothing
End Sub

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการเปลี่ยนการวางแนวของรายงาน ตัวอย่างนี้จะเปลี่ยนการวางแนวจากแนวตั้งเป็นแนวนอน หรือจากแนวนอนเป็นแนวตั้ง ขึ้นอยู่กับการวางแนวในปัจจุบันของรายงาน

Public Sub SwitchOrient(ByVal strName As String)
Const DM_PORTRAIT = 1
Const DM_LANDSCAPE = 2
Dim DevString As str_DEVMODE
Dim DM As type_DEVMODE
Dim strDevModeExtra As String
Dim rpt As Report
' Opens report in Design view.
DoCmd.OpenReport strName, acDesign
Set rpt = Reports(strName)
If Not IsNull(rpt.PrtDevMode) Then
strDevModeExtra = rpt.PrtDevMode
DevString.RGB = strDevModeExtra
LSet DM = DevString
DM.lngFields = DM.lngFields Or DM.intOrientation
' Initialize fields.
If DM.intOrientation = DM_PORTRAIT Then
DM.intOrientation = DM_LANDSCAPE
Else
DM.intOrientation = DM_PORTRAIT
End If
' Update property.
LSet DevString = DM
Mid(strDevModeExtra, 1, 94) = DevString.RGB
rpt.PrtDevMode = strDevModeExtra
End If
Set rpt = Nothing
End Sub

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

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Office Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

ขอบคุณสำหรับคำติชมของคุณ!

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

×