Gælder for
Formularobjekt |
Rapportobjekt |
Du kan bruge egenskaben PrtDevMode til at angive eller returnere oplysninger om tilstanden for udskrivningsenheder, der er angivet for en formular eller rapport i dialogboksen Udskriv. Læs/skriv Variant.
udtryk.PrtDevMode
udtryk Påkrævet. Et udtryk, der returnerer et af objekterne på listen Gælder for.
Bemærkninger
Det anbefales på det kraftigste, at du rådfører dig med Win32 Software Development Kit for at se den komplette dokumentation vedr. egenskaberne PrtDevMode, PrtDevNames og PrtMip.
Egenskaben PrtDevMode er en 94-byte struktur, som afspejler den DEVMODE-struktur, der er defineret i Win32 Software Development Kit. Du finder komplette oplysninger om medlemmerne i egenskaben PrtDevMode i Win32 Software Development Kit.
Egenskaben PrtDevMode bruger følgende medlemmer.
Medlem |
Beskrivelse |
DeviceName |
En streng med maksimalt 32 byte, der angiver navnet på den enhed, driveren understøtter – f.eks. "HP LaserJet IIISi", hvis Hewlett-Packard LaserJet IIISi er den angivne printer. Hver printerdriver har en entydig streng. |
SpecVersion |
Et Heltal, der angiver versionsnummeret for DEVMODE-strukturen i Win32 Software Development Kit. |
DriverVersion |
Et Heltal, der angiver printerdriverens versionsnummer, som er tildelt af printerdriverudvikleren. |
Size |
Et Heltal, der angiver størrelsen i byte på DEVMODE-strukturen. (Denne værdi omfatter ikke det valgfrie dmDriverData-medlem for enhedsspecifikke data, der kan følge efter denne struktur.) Hvis et program kun manipulerer den driveruafhængige del af dataene, kan du bruge dette medlem til at finde længden på denne struktur uden at tage højde for forskellige versioner. |
DriverExtra |
Et Heltal, der angiver størrelsen i bytes, for det valgfrie dmDriverData-medlem for enhedsspecifikke data, der kan følge efter denne struktur. Hvis et program ikke bruger enhedsspecifikke oplysninger, kan du indstille medlemmet til 0. |
Fields |
En Lang værdi, der angiver, hvilket af de resterende medlemmer i DEVMODE-strukturen der er blevet initialiseret. |
Orientation |
Et Heltal, der angiver papirets retning. Det kan være enten 1 (stående) eller 2 (liggende). |
PaperSize |
Et Heltal, der angiver størrelsen på papiret, der udskrives på. Hvis du indstiller dette medlem til 0 eller 256, er papirets længde og bredde henholdsvis angivet af medlemmerne PaperLength og PaperWidth. Ellers kan du indstille medlemmet PaperSize til en foruddefineret værdi. |
PaperLength |
Et Heltal , der angiver papirlængden i enheder på 1/10 af en millimeter. Dette medlem tilsidesætter den papirlængde, der er angivet af medlemmet PaperSize for brugerdefinerede papirstørrelser eller for enheder som f.eks. dot-matrixprintere, der kan udskrive på en række forskellige papirstørrelser. |
PaperWidth |
Et Heltal, der angiver papirbredden i enheder på 1/10 af en millimeter. Dette medlem tilsidesætter papirbredden, der er angivet af medlemmet PaperSize. |
Scale |
Et Heltal , der angiver den faktor, som udskriften skaleres med. Den synlige sidestørrelse skaleres fra den fysiske sidestørrelse med en skaleringsfaktor/100. Et stykke papir, der måler 8,5 x 11 tommer (letter-size) med en skaleringsværdi på 50, indeholder så mange data som en side, der måler 17 x 22 tommer, fordi outputteksten og grafikken ville være halvdelen af deres oprindelige højde og bredde. |
Copies |
Et Heltal, der angiver antallet af kopier, som udskrives, hvis udskrivningsenheden understøtter kopier af flere sider. |
DefaultSource |
Et Heltal, der angiver standardplaceringen, hvorfra papir fremføres. |
PrintQuality |
Et Heltal, der angiver printerens opløsning. Værdierne er –4 (høj), –3 (mellem), –2 (lav) og –1 (kladde). |
Color |
Et Heltal. For en farveprinter – angiver, om der skal udskrives i farve. Værdierne er 1 (farve) og 2 (sort-hvid). |
Duplex |
Et Heltal. For en printer med mulighed for dupleksudskrivning – angiver, om der skal udskrives på begge sider af papiret. Værdier er 1 (simpleks), 2 (vandret) og 3 (lodret). |
YResolution |
Et Heltal, der angiver printerens y-opløsning i punkter pr. tomme (dpi). Hvis printeren igangsætter dette medlem, så angiver medlemmet PrintQuality printerens x-opløsning i dpi. |
TTOption |
Et Heltal, der angiver, hvordan TrueType-skrifttyper udskrives. |
Collate |
Et Heltal, der angiver, om sortering skal bruges ved udskrivning af flere kopier. Sætvis kopiering giver en hurtigere og mere effektiv udskrivning, fordi dataene kun sendes til printeren én gang. |
FormName |
En streng på højst 16 tegn, der angiver papirstørrelsen – f.eks. "Letter" eller "Legal". |
Pad |
En Lang værdi, der bruges til at indsætte mellemrum, tegn eller værdier til fremtidige versioner. |
Bits |
En Lang værdi, der angiver visningsenhedens farveopløsning i bits pr. pixel. |
PW |
En Lang værdi, der angiver bredden på den synlige overflade på enheden (skærm eller printer) i pixel. |
PH |
En Lang værdi, der angiver højden på den synlige overflade på enheden (skærm eller printer) i pixel. |
DFI |
En Lang værdi, der angiver enhedens visningstilstand. |
DFR |
En Lang værdi, der angiver frekvensen for visningsenheden i en bestemt tilstand i hertz (cyklusser pr. sekund). |
Bemærk!: Du kan angive egenskaben PrtDevMode ved hjælp af VBA-kode (Visual Basic for Applications).
Denne egenskabsindstilling har læse-/skriveadgang i Designvisning eller Layoutvisning og er skrivebeskyttet i andre visninger.
Printerdrivere kan tilføje enhedsspecifikke data umiddelbart efter de 94 bytes for DEVMODE-strukturen. Af denne grund er det vigtigt, at DEVMODE-dataene beskrevet ovenfor ikke overstiger 94 bytes.
Kun printerdrivere, der eksporterer funktionen ExtDeviceMode, bruger DEVMODE-strukturen.
Et program kan hente de papirstørrelser og navne, der understøttes af en printer, ved hjælp af værdierne DC_PAPERS, DC_PAPERSIZE og DC_PAPERNAMES til at kalde funktionen DeviceCapabilities.
Før du angiver værdien af TTOption-medlemmet, bør programmer finde ud af, hvordan en printerdriver kan bruge TrueType-skrifttyper ved hjælp af DC_TRUETYPE-værdien til at kalde DeviceCapabilities-funktionen.
Eksempel
I følgende eksempel anvendes egenskaben PrtDevMode til at kontrollere den brugerdefinerede sidestørrelse for en rapport:
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
Følgende eksempel viser, hvordan rapportens retning ændres. I dette eksempel ændres retningen fra stående til liggende eller liggende til stående afhængigt af rapportens aktuelle retning.
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