ينطبق على
Access لـ Microsoft 365 Access 2021 Access 2019 Access 2016

ينطبق على

عنصر 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

هل تحتاج إلى مزيد من المساعدة؟

الخروج من الخيارات إضافية؟

استكشف مزايا الاشتراك، واستعرض الدورات التدريبية، وتعرف على كيفية تأمين جهازك، والمزيد.