Autor Thema: Rückgabewert von @command([FilePrintSetup]) ?  (Gelesen 4421 mal)

Offline Small

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Impossible is nothing
Rückgabewert von @command([FilePrintSetup]) ?
« am: 30.11.04 - 11:35:31 »
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

  • Gast
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #1 am: 30.11.04 - 11:39:09 »
Da sehe ich auch keine Chance. Eine Funktion, die den Namen des aktuellen Druckers zurückliefert, gibt es nicht.

Andreas

Offline Small

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Impossible is nothing
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #2 am: 30.11.04 - 11:55:31 »
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

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #3 am: 30.11.04 - 12:02:40 »
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.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Driri

  • Gast
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #4 am: 30.11.04 - 12:05:28 »
Ü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 

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #5 am: 30.11.04 - 12:12:09 »
Ingo, das ist dann aber der Windows Standard-Drucker, oder?

Ich denke wenn man in Notes den Drucker wechselt, dann bleibt der Windows-Standard-Drucker gleich. Der Wechsel des Druckers in Notes bleibt auch nur solange bestehen, wie der Client geöffnet ist - danach holt sich Notes wieder beim Clientstart den Win-Standard-Drucker.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Small

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Impossible is nothing
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #6 am: 30.11.04 - 13:01:20 »
hiho,

@TMC:

Die Idee mit der Dialogbox ist ne Gute Idee, werde mal sehen ob da was basteln kann  ;)

@Driri:

Danke für dieses ausführliche Script, doch leider macht das auch nix anderes als die Registry abzufragen. Das wollte ich aber eigentlich nicht, da ich es nicht für gut empfinde die Registry selbst anzupacken.

Gruß Rene


Driri

  • Gast
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #7 am: 30.11.04 - 13:25:38 »
@Matthias :

Jo, das Script fragt den Windows-Standarddrucker ab. Vermutlich hast Du recht mit dem Wechsel in Notes.

@Rene :

Naja, das Script ändert ja nichts an der Registry, es wird lediglich ein Wert abgefragt. Insofern ist das nicht wirklich ein Eingriff.

Offline Small

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Impossible is nothing
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #8 am: 30.11.04 - 15:11:32 »
hiho,

hab mich nun ganz easy mit @Prompt([YesNo]) rausgetrickst  ;D

@Driri: hast ja Recht ! Lesen ist lange nicht so wild wie schreiben  ;)

Offline Small

  • Frischling
  • *
  • Beiträge: 28
  • Geschlecht: Männlich
  • Impossible is nothing
Re: Rückgabewert von @command([FilePrintSetup]) ?
« Antwort #9 am: 01.02.05 - 11:12:02 »
hiho,

selbe Formel anderes Problem  :P

Aufgrund einer weiterführenden Logik mußten wir den Druck aus einer anderen Ansicht über Lotus Script steuern. Doch auch hier soll die Druckerauswahl erscheinen.
Leider ist der Funtkionsaufruf über Evaluate nicht möglich.
Zumindesten bekomme ich das einfach nicht hin.
Eine Alternative in Lotus Script hat sich auch noch nicht bei mir gemeldet.

Vll kennt ja einer von euch eine Alternative und schickt sie mal bei mir vorbei  ;D

Gruß Rene

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz