Odnosi se na
Objekt Form |
Objekt Report |
Svojstvo PrtDevMode omogućuje vam da postavite ili saznate podatke o načinu rada uređaja za ispis koje su navedene za obrazac ili izvješće u dijaloškom okviru Ispis. To je svojstvo vrste Variant za čitanje/pisanje.
expression.PrtDevMode
expression Obavezno. Izraz koji vraća jedan od objekata na popisu Primjenjuje se na.
Napomene
Preporučujemo da u paketu za razvojne programere za Win32 svakako pogledate potpunu dokumentaciju za svojstva PrtDevMode, PrtDevNames i PrtMip.
Postavka svojstva PrtDevMode struktura je veličine 94 bajta koja odražava strukturu DEVMODE definiranu u paketu za razvojne programere za Win32. Potpune informacije o članovima svojstva PrtDevMode potražite u paketu za razvojne programere za Win32.
Svojstvo PrtDevMode koristi sljedeće članove.
Član |
Opis |
DeviceName |
Niz od maksimalno 32 bajta koji označava naziv uređaja koji upravljački program podržava, primjerice "HP LaserJet IIISi" ako je odabrani pisač Hewlett-Packard LaserJet IIISi. Svaki upravljački program pisača ima jedinstveni niz. |
SpecVersion |
Cijeli broj koji označava broj verzije strukture DEVMODE u paketu za razvojne programere za Win32. |
DriverVersion |
Cijeli broj koji označava broj verzije upravljačkog programa pisača koji dodjeljuje razvojni programer upravljačkog programa pisača. |
Size |
Cijeli broj koji određuje veličinu strukture DEVMODE u bajtovima. (Ta vrijednost ne obuhvaća neobaveznog člana dmDriverData za podatke specifične za uređaj, koji mogu pratiti tu strukturu.) Ako aplikacija upravlja samo dijelovima podataka neovisnom o upravljačkom programu, pomoću tog člana možete saznati duljinu te strukture bez potrebe za različitim verzijama. |
DriverExtra |
Cijeli broj koji označava veličinu (u bajtovima) dodatnog člana dmDriverData za podatke specifične za uređaj koji mogu biti navedeni iza strukture. Ako aplikacija ne koristi podatke specifične za uređaj, taj član postavite na 0. |
Fields |
Vrijednost Long koja označava preostale članove u strukturi DEVMODE koji su inicijalizirani. |
Orientation |
Cijeli broj koji označava usmjerenje papira. Vrijednost može biti 1 (okomito) ili 2 (vodoravno). |
PaperSize |
Cijeli broj koji označava veličinu papira za ispis. Ako postavite taj član na vrijednost od 0 do 256, duljina i širina papira bit će određena članovima PaperLength i PaperWidth. U suprotnom član PaperSize možete postavite na unaprijed definiranu vrijednost. |
PaperLength |
Cijeli broj koji označava duljinu papira u jedinicama od 1/10 milimetra. Taj član nadjačava duljinu papira određenu članom PaperSize za prilagođene veličine papira ili uređaje kao što su iglični matrični pisači koji omogućuju ispis na različite veličine papira. |
PaperWidth |
Cijeli broj koji označava širinu papira u jedinicama od 1/10 milimetra. Taj član nadjačava širinu papira određenu članom PaperSize. |
Scale |
Cijeli broj koji označava faktor prema kojem će ispis biti skaliran. Vidljiva veličina stranice skalirana je s fizičke veličine stranice pomoću faktora skaliranja/100. List papira dimenzija 8,5 x 11 inča (veličina letter) s vrijednošću člana Scale postavljenom na 50 na taj način može sadržavati istu količinu podataka kao i stranica veličine 17 x 22 inča jer će ispisani tekst i grafike biti upola manje u odnosu na njihovu izvornu visinu i širinu. |
Copies |
Cijeli broj koji označava broj ispisanih primjeraka ako uređaj za ispis podržava kopije na više stranica. |
DefaultSource |
Cijeli broj koji označava zadani spremnik za ulaganje papira. |
PrintQuality |
Cijeli broj koji označava razlučivost pisača. Vrijednosti su –4 (visoka), –3 (srednja), –2 (niska) i –1 (skica). |
Color |
Cijeli broj. Označava hoće li pisač u boji sadržaj ispisati u boji. Vrijednosti su 1 (u boji) i 2 (crno-bijelo). |
Duplex |
Cijeli broj. Označava hoće li pisač s mogućnošću obostranog ispisa ispisati sadržaj na obje strane papira. Vrijednosti su 1 (jednostrano), 2 (vodoravno) i 3 (okomito). |
YResolution |
Cijeli broj koji označava y-razlučivost pisača izraženu u točkama po inču (tpi). Ako pisač inicijalizira taj član, član PrintQuality označava x-razlučivost pisača izraženu u tpi. |
TTOption |
Cijeli broj koji označava način ispisa fontova TrueType. |
Collate |
Cijeli broj koji označava hoće li se prilikom ispisa više primjeraka koristiti razvrstavanje. Korištenje nerazvrstanih kopija omogućuje brži i učinkovitiji ispis jer se podaci pisaču šalju samo jednom. |
FormName |
Niz s najviše 16 znakova koji označava veličinu korištenog papira, primjerice "Letter" ili "Legal". |
Pad |
Vrijednost Long koja se koristi za umetanje praznina, znakova ili vrijednosti za buduće verzije. |
Bits |
Vrijednost Long koja označava razlučivost boje uređaja za prikaz izraženu u bitovima po pikselu. |
PW |
Vrijednost Long koja označava širinu vidljive površine uređaja (zaslona ili pisača) izraženu u pikselima. |
PH |
Vrijednost Long koja označava visinu vidljive površine uređaja (zaslona ili pisača) izraženu u pikselima. |
DFI |
Vrijednost Long koja označava način prikaza uređaja. |
DFR |
Vrijednost Long koja označava frekvenciju uređaja za prikaz u određenom načinu rada izraženu u hercima (ciklusima po sekundi). |
Napomena: Svojstvo PrtDevMode možete postaviti pomoću koda programa Visual Basic for Applications (VBA).
Svojstvo je u prikazu dizajna ili prikazu izgleda dostupno za čitanje/pisanje, a u drugim prikazima samo za čitanje.
Upravljački programi pisača mogu dodavati podatke specifične za uređaj odmah iza strukture DEVMODE veličine 94 bajta. Zbog toga veličina gore navedenih podataka strukture DEVMODE ne smije premašivati 94 bajta.
Strukturu DEVMODE koriste samo pisači koji izvoze funkciju ExtDeviceMode.
Aplikacija može dohvatiti veličine i nazive papira koje pisač podržava pomoću vrijednosti DC_PAPERS, DC_PAPERSIZE i DC_PAPERNAMES pomoću kojih se poziva funkcija DeviceCapabilities.
Prije postavljanja vrijednosti člana TTOption aplikacije moraju provjeriti na koji način upravljački program pisača može koristiti fontove TrueType. To mogu učiniti korištenjem vrijednosti DC_TRUETYPE za pozivanje funkcije DeviceCapabilities.
Primjer
U sljedećem je primjeru prikazano korištenje svojstva PrtDevMode za provjeru korisnički definirane veličine stranice za izvješće:
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
U sljedećem je primjeru prikazano kako promijeniti usmjerenje izvješća. Primjer prikazuje promjenu usmjerenja iz okomitog u vodoravno ili iz vodoravnog u okomito, ovisno o trenutnom usmjerenju izvješća.
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