Taikoma
Objektas Form |
Objektas Report |
Galite naudoti ypatybę PrtDevMode, norėdami nustatyti arba grąžinti informaciją apie spausdinimo įrenginio režimą, nustatytą formai arba ataskaitai, dialogo lange Spausdinimas. Skaitoma / rašoma duomenų tipo Variant reikšmė.
reiškinys.PrtDevMode
reiškinys Būtina. Reiškinys, kuris pateikia vieną iš sąrašo „Taikoma“ objektų.
Pastabos
Labai rekomenduojama paieškoti daugiau informacijos apie ypatybes PrtDevMode, PrtDevNames ir PrtMip „Win32“ programinės įrangos kūrimo rinkinyje.
Ypatybės PrtDevMode parametras yra 94 baitų struktūra, atitinkanti DEVMODE struktūrą, apibrėžtą „Win32“ programinės įrangos kūrimo rinkinyje. Išsamios informacijos apie ypatybės PrtDevMode narius ieškokite „Win32“ programinės įrangos kūrimo rinkinyje.
Ypatybė PrtDevMode naudoja toliau pateiktus narius.
Narys |
Aprašas |
DeviceName |
eilutė, kurių maksimalus skaičius yra 32 baitų, nurodantis tvarkyklės palaikančio įrenginio pavadinimą, pvz., "HP LaserJet IIISi", jei "Hewlett-Packard LaserJet IIISi" yra nurodytas spausdintuvas. Kiekviena spausdintuvo tvarkyklė turi unikalią eilutę. |
SpecVersion |
Sveikasis skaičius, nurodantis DEVMODE struktūros versijos numerį „Win32“ programinės įrangos kūrimo rinkinyje. |
DriverVersion |
Sveikasis skaičius, nurodantis spausdintuvo tvarkyklės versijos numerį, kurį priskyrė spausdintuvo tvarkyklės kūrėjas. |
Size |
Sveikasis skaičius , nurodantis DEVMODE struktūros dydį, baitais. (Ši reikšmė neapima pasirinktinio " dmDriverData " nario konkretaus įrenginio duomenims, kurie gali stebėti šią struktūrą.) Jei taikomoji programa manipuliuoja tik nuo tvarkyklės nepriklausančią duomenų dalį, galite naudoti šį narį ir sužinoti šios struktūros ilgį neatsižvelgdami į skirtingas versijas. |
DriverExtra |
Sveikasis skaičius, nurodantis pasirinktinio nario dmDriverData, skirto konkretaus įrenginio duomenims, kurie gali naudoti šią struktūrą, dydį baitais. Jei programa nenaudoja konkretaus įrenginio informacijos, galite šio nario reikšmę nustatyti į 0. |
Fields |
Ilgojo sveikojo reikšmė, nurodanti, kurie iš likusių DEVMODE struktūros narių inicijuoti. |
Orientation |
Sveikasis skaičius, nurodantis popieriaus padėtį. Reikšmė gali būti arba 1 (stačias) arba 2 (gulsčias). |
PaperSize |
Sveikasis skaičius, nurodantis popieriaus, ant kurio spausdinama, dydį. Jei šio nario reikšmę nustatote į 0 arba 256, popieriaus ilgį ir plotį atitinkamai apibrėžia PaperLength ir PaperWidth. Kitu atveju galite PaperSize nariui priskirti iš anksto nustatytą reikšmę. |
PaperLength |
Sveikasis skaičius, nurodantis popieriaus ilgį vienetais, lygiais 1/10 milimetro. Šis narys pakeičia popieriaus ilgį, nurodytą PaperSize nario, kai naudojamas pasirinktinis popieriaus dydis arba įrenginiai, tokie kaip adatiniai spausdintuvai, kurie gali spausdinti ant įvairaus dydžio popieriaus. |
PaperWidth |
Sveikasis skaičius, nurodantis popieriaus plotį vienetais, lygiais 1/10 milimetro. Šis narys pakeičia popieriaus plotį, nurodytą PaperSize nario. |
Scale |
Sveikasis skaičius , nurodantis koeficientą, pagal kurį bus sumažinta spaudinio išeiga. Matomas puslapio dydis yra mažinamas iš fizinio puslapio dydžio pagal skalės/100 koeficientą. Pavyzdžiui, popieriaus lapo matavimo 8,5 pagal 11 colių (raidžių dydį), kurių mastelio reikšmė yra 50, talpina kiek daugiau duomenų, pvz., 17 colių, nes išvesties tekstas ir grafiniai elementai būtų puse jų pirminio aukščio ir pločio. |
Copies |
Sveikasis skaičius, nurodantis spausdinamų kopijų skaičių, jei spausdinimo įrenginys palaiko kelių puslapių kopijas. |
DefaultSource |
Sveikasis skaičius, nurodantis numatytąją talpyklą, iš kurios tiekiamas popierius. |
PrintQuality |
Sveikasis skaičius, nurodantis spausdintuvo skiriamąją gebą. Reikšmės yra –4 (aukšta), –3 (vidutinė), –2 (žema), and –1 (juodraštis). |
Color |
Sveikasis skaičius. Naudojant spalvinį spausdintuvą, šis narys nurodo, ar spausdinama spalvotai. Reikšmės yra 1 (spalvotas) ir 2 (monochrominis). |
Duplex |
Sveikasis skaičius. Naudojant spausdintuvą, palaikantį dvipusį spausdinimą, šis narys nurodo, ar spausdinama ant abiejų lapo pusių. Reikšmės yra 1 (vienpusis), 2 (horizontalus) ir 3 (vertikalus). |
YResolution |
Sveikasis skaičius, nurodantis spausdintuvo y skiriamąją gebą taškais colyje (dpi). Jei spausdintuvas inicijuoja šį narį, PrintQuality narys nurodo spausdintuvo x skiriamąją gebą, matuojamą dpi. |
TTOption |
Sveikasis skaičius, nurodantis, kaip bus spausdinami „TrueType“ šriftai. |
Collate |
Sveikasis skaičius, nurodantis, ar spausdinant kelias kopijas naudojamas gretinimas. Naudojant negretinamų kopijų parinktį, spausdinama greičiau ir efektyviau, nes duomenys į spausdintuvą siunčiami tik kartą. |
FormName |
Eilutė su ne daugiau kaip 16 simbolių, nurodančių norimo naudoti popieriaus dydį, pvz., „Letter“ arba „Legal“. |
Pad |
Ilgoji reikšmė, naudojama tarpams, simboliams arba reikšmėms ištempti būsimose versijose. |
Bits |
Ilgoji reikšmė, nurodanti ekrano spalvinę skiriamąją gebą, išreikštą bitais viename pikselyje. |
PW |
Ilgoji reikšmė, nurodanti matomo įrenginio paviršiaus (ekrano ar spausdintuvo) plotį pikseliais. |
PH |
Ilgoji reikšmė, nurodanti matomo įrenginio paviršiaus (ekrano ar spausdintuvo) aukštį pikseliais. |
DFI |
Ilgoji reikšmė, nurodanti ekrano įrenginio rodymo režimą. |
DFR |
Ilgoji reikšmė, nurodanti ekrano įrenginio dažnį hercais (ciklais per sekundę) konkrečiu režimu. |
Pastaba: Ypatybę PrtDevMode galite nustatyti naudodami „Visual Basic for Applications“ (VBA) kodą.
Šios ypatybės parametras yra skaitomas arba rašomas naudojant dizaino arba maketo rodinį, o naudojant kitus rodinius – tik skaitomas.
Spausdintuvų tvarkyklės gali įtraukti konkretaus įrenginio duomenis iškart po DEVMODE struktūros 94 baitų ilgio duomenų. Todėl svarbu, kad aukščiau aprašyti DEVMODE duomenys neviršytų 94 baitų.
Tik tos spausdintuvo tvarkyklės, kurios eksportuoja funkciją ExtDeviceMode, naudoja DEVMODE struktūrą.
Programa gali gauti spausdintuvo palaikomus popieriaus dydžius ir pavadinimus naudodama reikšmes DC_PAPERS, DC_PAPERSIZE ir DC_PAPERNAMES, kad iškviestų funkciją DeviceCapabilities.
Prieš nustatydamos TTOption nario reikšmę, programos turėtų išsiaiškinti, kaip spausdintuvo tvarkyklė gali naudoti „TrueType“ šriftus naudodamos reikšmę DC_TRUETYPE, kad iškviestų funkciją DeviceCapabilities.
Pavyzdys
Toliau pateiktame pavyzdyje naudojama ypatybė PrtDevMode, norint patikrinti vartotojo nustatytą ataskaitos puslapių dydį.
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
Toliau pateiktame pavyzdyje rodoma, kaip pakeisti ataskaitos padėtį. Šiame pavyzdyje padėtis bus perjungta iš stačios į gulsčią arba iš gulsčios į stačią priklausomai nuo dabartinės ataskaitos padėties.
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