Domino 9 und frühere Versionen > Entwicklung
Rückgabewert von @command([FilePrintSetup]) ?
Small:
hiho,
wir haben in einer unser Anwendungen eine Ansicht, aus der gedruckt werden muss.
Gedruckt werden einzelne Forumulare aus der Ansicht mit Hilfe einer extra Druckmaske.
Da aber der zu benutzende Drucker frei wählbar sein soll, benutzen wir vorweg
@command([FilePrintSetup])
Hier der Source:
Command([FilePrintSetup]);
@Command([FilePrint] ; "2" ; "" ; "" ; "" ; "" ; "Druck_Maske" ; "pagebreak" ; "" ; "" ; "" )
Das Problem ist nun folgendes:
Wenn der User beim Druckdiaolog den Drucken nicht wechselt, bleibt der Standartdrucker und es wird trotzdem gedruckt. Das ist leider nicht so ganz gewünscht.
Ich habe auch keinen Rückgabeparameter gefunden, den man mit @if abfragen könnte.
Hat einer eine Idee oder eine Lotus Script Alternative ohne dabei die Registry anfassen zu müssen ?
Wäre sehr dankbar.
Gruß Rene
Glombi:
Da sehe ich auch keine Chance. Eine Funktion, die den Namen des aktuellen Druckers zurückliefert, gibt es nicht.
Andreas
Small:
hiho,
ich ja immo auch nicht. Aber vll schüttelt hier ja noch einer einen guten Gedankenansatz aus dem Ärmel. ;D
Es ist halt für die User nur sehr schwer verständlich, dass wenn die denn Drucker-Auswahl-Dialog mit Abbrechen beenden und es trotzdem gedruckt wird.
Gibt es keine alternative Funtionalität von FilePrintSetup in LotusScript ?
Mit der Registry wär das ja ned so schwer, aber das ist in meinen Augen nicht akzeptabel. :-[
Gruß Rene
TMC:
Du könntest z.B. mit einer Dialogbox arbeiten. OK / Abbrechen.
OK bewirkt ein Drucken.
In der Dialogbox noch einen Button "Standarddrucker wechseln".
Was allerdings nicht geht, dass Du in der Dialogbox dann den gewählten Drucker anzeigen lässt, da ist mir leider nichts bekannt.
Driri:
Übers API gibt es scheinbar eine Möglichkeit, den Standarddrucker abzufragen :
--- Code: ---Sometimes it is necessary to know which is the predetermined printer, to send the impression. With the use of this code will be able to send to the printer
by default or to take this for some I use in particular.
Code
Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (Byval hKey As Long, Byval lpSubKey As String, Byval dwReserved As Long, Byval samDesired As Long, phkResult As Long) As Long
Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (Byval hKey As Long, Byval lpValueName$, Byval lpdwReserved As Long, lpdwType As Long, lpData As Any, lpcbData As Long) As Long
Declare Function RegCloseKey Lib "advapi32" (Byval hKey As Long) As Long
Sub Click(Source As Button)
Dim PName As String
Dim WorkSpace As New NotesUIWorkSpace
Dim UIDoc As NotesUIDocument
Dim Doc As NotesDocument
Set UIDoc = WorkSpace.CurrentDocument
Set Doc = UIDoc.Document
Doc.txtPrinterDefault = GetCurrPrinter()
End Sub
Function GetCurrPrinter() As String
Const HKEY_CURRENT_CONFIG = &H80000005
GetCurrPrinter = RegGetString$(HKEY_CURRENT_CONFIG,
"System\CurrentControlSet\Control\Print\Printers", "Default")
End Function
Function RegGetString$(hInKey As Long, Byval subkey$, Byval valname$)
Dim RetVal$, hSubKey As Long, dwType As Long, SZ As Long
Dim R As Long
RetVal$ = ""
Const KEY_ALL_ACCESS = 0
Const ERROR_SUCCESS = 0
Const REG_SZ = 1
R = RegOpenKeyEx(hInKey, subkey$, 0, KEY_ALL_ACCESS, hSubKey)
If R <> ERROR_SUCCESS Then Goto Quit_Now
SZ = 256
v$ = String$(SZ, 0)
R = RegQueryValueEx(hSubKey, valname$, 0, dwType, Byval v$, SZ)
If R = ERROR_SUCCESS And dwType = REG_SZ Then
RetVal$ = Left$(v$, SZ)
Else
RetVal$ = "--Not String--"
End If
If hInKey = 0 Then R = RegCloseKey(hSubKey)
Quit_Now:
RegGetString$ = RetVal$
End Function
--- Ende Code ---
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln