Autor Thema: ViewSwitchForm in Lotus Script?  (Gelesen 2802 mal)

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
ViewSwitchForm in Lotus Script?
« am: 06.09.04 - 23:43:33 »
Ich suche nach einer Möglichkeit, in LotusScript ein "ViewSwitchForm" auszuführen, um dann ein Dokument zu drucken.
Stunts wie das Feld "FORM" temporär neu zu belegen, speichern, reopen etc. möchte ich eigentlich vermeiden, da unter Umständen der User, der das Dokument druckt, gar keine Schreibrechte hat, sondern nur "Reader" der DB ist.

Matthias
Matthias

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


elajen

  • Gast
Re:ViewSwitchForm in Lotus Script?
« Antwort #1 am: 07.09.04 - 07:46:58 »
Hallo,

dann mach doch einen anderen Stunt und kopiere das Dokument in ein neues, ändere das Form und drucks dann. Speicher brauchst Du ja nicht.

Gruß von Ekki.

Glombi

  • Gast
Re:ViewSwitchForm in Lotus Script?
« Antwort #2 am: 07.09.04 - 07:57:13 »
Das geht nicht, wenn der User nur Leser ist.

Besser ist: Erstelle eine Ansicht mit einer Maskenformel. Du kannst dann das Dokument über diese View aufrufen und drucken.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:ViewSwitchForm in Lotus Script?
« Antwort #3 am: 07.09.04 - 08:59:28 »
Da gibt es ein paar mehr Möglichkeiten:
- Drucken über eine bestehende View und dabei den formoverride-Parameter nutzen
- Direkt aus dem Dokument (oder nach anderer Instantiierung des zu druckenden Dokuments:
Code
Set doc = ws.CurrentDocument.Document
   
   doc.Form = "PrintForm"
   Set uidoc = ws.EditDocument( False, doc, True)
   Call uidoc.Print (1)
   Call uidoc.close

Letzteres ist natürlich nix für User mit nur Leseberechtigung.
Das Verfahren wird also immer vom Kontext bestimmt.

Bernhard
« Letzte Änderung: 07.09.04 - 21:03:27 von koehlerbv »

elajen

  • Gast
Re:ViewSwitchForm in Lotus Script?
« Antwort #4 am: 07.09.04 - 09:55:14 »
Hallo,

daß mit dem Dokument erstellen geht auch als Leser. Nur darf es halt nicht gespeichert werden. :)
Ich würde dann noch das Feld saveoptions = "0" anlegen.

Gruß von Ekki

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:ViewSwitchForm in Lotus Script?
« Antwort #5 am: 07.09.04 - 20:17:01 »
Danke für Eure Tipps !

Ich habs jetzt mit dem Tipp von Ekki erfolgreich getestet:

Public Sub PrintDocument(doc As NotesDocument, strFormName As String)
   
   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace   
   Dim db As NotesDatabase
   Dim uidocTemp As NotesUIDocument
   Dim docTemp As NotesDocument
   Set db = session.CurrentDatabase   
   
   Set docTemp = New NotesDocument(db)
   doc.Form = strFormName
   Set uidocTemp = uiws.EditDocument( False, doc, True)
   Call uidocTemp.Print (1)
   Call uidocTemp.close
   
End Sub

Matthias
Matthias

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


Glombi

  • Gast
Re:ViewSwitchForm in Lotus Script?
« Antwort #6 am: 07.09.04 - 20:55:08 »
Wozu brauchst Du denn docTemp ?
Irgendwie blicke ich es nicht.

Andreas

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:ViewSwitchForm in Lotus Script?
« Antwort #7 am: 07.09.04 - 21:02:26 »
Ups, da hab ich wohl zu schnell getippt. docTemp braucht's da eigentlich gar nicht.  ;D

Public Sub PrintDocument(doc As NotesDocument, strFormName As String)
   
   Dim session As New NotesSession
   Dim uiws As New NotesUIWorkspace  
   Dim db As NotesDatabase
   Dim uidocTemp As NotesUIDocument
   Set db = session.CurrentDatabase  
   
   doc.Form = strFormName
   Set uidocTemp = uiws.EditDocument( False, doc, True)
   Call uidocTemp.Print (1)
   Call uidocTemp.close
   
End Sub

Es kann so auch ein User printen, der nur Leserechte hat....
« Letzte Änderung: 07.09.04 - 21:02:56 von TMC »
Matthias

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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:ViewSwitchForm in Lotus Script?
« Antwort #8 am: 07.09.04 - 21:06:23 »
Und da wir jetzt wieder auf genau einer Welle schwimmen, kannst Du auch gleich noch
session
db
und ihre Bezüge 'rauswerfen  ;D

Bernhard

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:ViewSwitchForm in Lotus Script?
« Antwort #9 am: 07.09.04 - 21:12:31 »
Stimmt  ;D

Ich hatte eigentlich auch gemeint, dies hier zutrifft:
Letzteres ist natürlich nix für User mit nur Leseberechtigung.

Aber man kann wohl wirklich einfach im Backend das Form-Item ändern, das Dok im Frontend öffnen, und voilà, da ist unser @Command([ViewSwitchForm]), auch für User nur mit Leserechten.
Matthias

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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:ViewSwitchForm in Lotus Script?
« Antwort #10 am: 07.09.04 - 21:28:30 »
Jo, da hatte ich beim Schreiben auch zu kurz gedacht - obwohl ich das in etlichen Apps seit langem so mache. Im Backend greift die ACL (tatsächlich: Wirklich logischerweise) an anderer (späterer) Stelle als im Frontend.

Simpelstes Beispiel:
Set doc = NotesView.GetDocumentByKey ("key")
doc.FieldX = "blabla"
Set item = doc.getFirstItem ("FieldY")
Call item.Remove

... und erst jetzt würde es kanllen für Leser:
Call doc.Save (True, False, True).

Nochmals: Sorry, dass ich beim entsprechenden Posting derart oberflächlich gedacht habe. Ich wusst's ja besser ...

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz