ينطبق على
|
عنصر Form |
|
عنصر Report |
يمكنك استخدام الخاصية PrtDevMode لتعيين معلومات وضع جهاز الطباعة المحددة لأحد النماذج أو التقارير في مربع الحوار طباعة أو عرضها. Variant قراءة/كتابة.
expression.PrtDevMode
التعبير Required. هو تعبير يقوم بإرجاع أحد العناصر الموجودة في القائمة "ينطبق على".
ملاحظات
يوصى بشدة بمراجعة عدة تطوير برامج Win32 للاطلاع على الوثائق الكاملة حول خصائص PrtDevMode وPrtDevNames وPrtMip.
إعداد الخاصية PrtDevMode هو بنية مكونة من 94 بايت تعكس بنية DEVMODE المعرفة في عدة تطوير برامج Win32. للحصول على معلومات كاملة حول عناصر خاصية PrtDevMode، الرجاء الاطلاع على عدة تطوير برامج Win32.
تستخدم خاصية PrtDevMode الأعضاء التالية.
|
العضو |
الوصف |
|
DeviceName |
عبارة عن سلسلة مكونة من 32 بايت كحد أقصى، وتعمل على تحديد اسم الجهاز الذي يدعمه برنامج التشغيل، على سبيل المثال "HP LaserJet IIISi" إذا كانت الطابعة المحددة هي "Hewlett-Packard LaserJet IIISi". فلكل برنامج تشغيل طابعة سلسلة فريدة. |
|
SpecVersion |
عبارة عن عدد صحيح يحدد رقم إصدار بنية DEVMODE في عدة تطوير برامج Win32. |
|
DriverVersion |
عبارة عن Integer (عدد صحيح) يحدد رقم إصدار برنامج تشغيل الطابعة الذي قام بتعيينه مطور برنامج تشغيل الطابعة. |
|
Size |
عدد صحيح يحدد حجم بنية DEVMODE بالبايت. (لا تتضمن هذه القيمة عضو dmDriverData الاختياري للبيانات الخاصة بالجهاز، والتي يمكن أن تتبع هذه البنية.) إذا كان أحد التطبيقات يعالج الجزء المستقل عن برنامج التشغيل فقط من البيانات، يمكنك استخدام هذا العضو لمعرفة طول هذه البنية دون الحاجة إلى حساب إصدارات مختلفة. |
|
DriverExtra |
عبارة عن عدد صحيح يحدد الحجم بالبايت للعضو الاختياري dmDriverData للبيانات الخاصة بالجهاز، التي يمكنها اتباع هذه البنية. في حالة عدم استخدام التطبيق لمعلومات خاصة بالجهاز، قم بتعيين هذا العضو على القيمة 0. |
|
Fields |
عبارة عن قيمة Long تحدد أي الأعضاء المتبقية في بنية DEVMODE تمت تهيئته. |
|
Orientation |
عبارة عن Integer (عدد صحيح) يحدد اتجاه الورقة. يمكن أن يكون 1 (عمودي) أو 2 (أفقي). |
|
PaperSize |
عبارة عن Integer (عدد صحيح) يحدد حجم الورقة التي سيتم الطباعة عليها. إذا قمت بتعيين هذا العضو إلى القيمة 0 أو 256، فسيتم تحديد طول الورقة وعرضها بالعضوين PaperLength وPaperWidth على التوالي. بخلاف ذلك، يمكنك تعيين العضو PaperSize إلى قيمة سبق تحديدها. |
|
PaperLength |
عبارة عن Integer (عدد صحيح) حدد طول الورق بوحدات من 1/10 من المليمتر. يتجاوز هذا المكوّن طول الورق المحدد بواسطة المكوّن PaperSize لأحجام الورق المخصصة أو لأجهزة مثل الطابعات النقطية التي يمكنها الطباعة على مجموعة متنوعة من أحجام الورق. |
|
PaperWidth |
عبارة عن Integer (عدد صحيح) يحدد عرض الورق بوحدات من 1 إلى 10 مليمتر. يتجاوز هذا العضو عرض الورقة المحدد بواسطة العضو PaperSize. |
|
Scale |
عبارة عن Integer (عدد صحيح) يحدد العامل الذي سيتم من خلاله قياس المواد المطبوعة. يتم قياس حجم الصفحة الظاهر من حجم الصفحة الفعلي بعامل مقياس/100. على سبيل المثال، قد تحتوي ورقة بقياس 8.5 في 11 بوصة (حجم ورقة letter) وقيمة Scale تساوي 50 على نفس مقدار البيانات في صفحة بقياس 17 في 22 بوصة لأن ارتفاع وعرض النص والرسومات الناتجين سيكون نصف الارتفاع والعرض الأصلي. |
|
Copies |
عبارة عن Integer (عدد صحيح) يحدد عدد النسخ المطبوعة إذا كان جهاز الطباعة يدعم نسخ متعددة الصفحات. |
|
DefaultSource |
عبارة عن Integer (عدد صحيح) يحدد السلة الافتراضية التي ستقوم بإمداد الورق. |
|
PrintQuality |
عبارة عن Integer (عدد صحيح) يحدد دقة الطابعة. القيم هي-4 (مرتفعة) و–3 (متوسطة) و–2 (منخفضة) و–1 (مسودة). |
|
Color |
عدد صحيح. بالنسبة إلى طابعة ملونة، يحدد ما إذا كان الإخراج مطبوعا بلون. القيم هي 1 (لون) و2 (أحادي اللون). |
|
Duplex |
عدد صحيح. بالنسبة للطابعة القادرة على الطباعة المزدوجة، يحدد ما إذا كان الإخراج مطبوعا على جانبي الورقة. القيم هي 1 (simplex) و2 (أفقي) و3 (عمودي). |
|
YResolution |
عبارة عن Integer (عدد صحيح) يحدد الدقة-ص للطابعة بواسطة عدد النقاط في البوصة (dpi). في حالة تهيئة الطابعة لهذا العضو، فسيحدد العضو PrintQuality الدقة-س للطابعة بواسطة عدد النقاط في البوصة. |
|
TTOption |
عبارة عن Integer (عدد صحيح) يحدد كيفية طباعة خطوط TrueType. |
|
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 بايت.
لا يستخدم بنية DEVMODE سوى برامج تشغيل الطابعات التي تقوم بتصدير الوظيفة ExtDeviceMode.
يمكن لأي تطبيق استرداد أسماء الورق وأحجامه المدعمة بواسطة إحدى الطابعات باستخدام قيم DC_PAPERS وDC_PAPERSIZE وDC_PAPERNAMES لاستدعاء الوظيفة DeviceCapabilities.
قبل تعيين قيمة العضو TTOption، يجب أن تعرف التطبيقات كيفية استخدام برنامج تشغيل الطابعة لخطوط TrueType باستخدام القيمة DC_TRUETYPE لاستدعاء الوظيفة DeviceCapabilities.
مثال
يستخدم المثال التالي الخاصية PrtDevMode للتحقق من حجم الصفحة المعرف بواسطة المستخدم لتقرير ما:
Private Type str_DEVMODE RGB As String * 94End TypePrivate 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 LongEnd TypePublic 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 = NothingEnd 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 = NothingEnd Sub