Autor Thema: Benötige Idee bzw. Vorschlag - Drucken eines Dokuments unterbinden  (Gelesen 1850 mal)

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo zusammen,

benötige einmal mehr eure Unterstützung. Folgendes will ich gerne in einer bestehenden Anwendung realisieren:
Wenn ein Dokument in Bearbeitung ist oder neu erstellt wird, soll kein Ausdruck möglich sein.
Die Aktionsschaltfäche bekomme ich natürlich über "Aktion verbergen, wenn Formel wahr ist" und die Formel "@IsNewDoc & @IsDocBeingEdited" hin.
Was ist jedoch mit dem Client? Kann ich das hier irgendwie ebenfalls unterbinden (also "Datei --> "Drucken")? Vielleicht denke ich aber auch einfach wieder zu kompliziert. Bin über jeden Vorschlag bzw. Denkansatz dankbar  ???

Liebe Grüße

Holger

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Hallo,

Versuchen koenntest Du es ueber $KeepPrivate = "1".
Jedoch unterbindest Du damit auch andere Sachen, die so eventuell ncith gewollt sind.

Auch kannst Du es nicht verhindern, dass Deine Benutzer einen Screenshot erzeugen und
diesen dann ausdrucken.


Andreas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Mein Vorschlag, noch nie selbst so getan, könnte aber klappen:

Den gesamten Maskeninhalt lagerst Du aus in eine Teilmaske.

Du erstellst zwei Masken, eine zum "gewöhnlichen" Bearbeiten / Ansehen, eine zum Drucken.

Beide Masken enthalten die Teilmaske mit Deinem vorigen Maskeninhalt (Teilmaske, damit Du nicht doppelt entwickeln musst).

Die Maske zum Bearbeiten / Ansehen bekommt einen Abschnitt, in dem sich die Teilmaske befindet. Im Abschnitt stellst Du ein, dass er beim Drucken automatisch komprimiert wird.

Zum Drucken bietest Du eine Schaltfläche an, die die Form ändert und dann das Dokument druckt.

Beim normalen Drucken über den Client kommt dann nur ein weißes Blatt (oder ein netter Text, dass Drucken hier nicht erwünscht ist bzw. über die Schaltfläche erfolgen soll, kannst Du ebenfalls mit einem Abschnitt realisieren, der nur beim Drucken geöffnet ist). Die Schaltfläche kannst Du nach Deinen Bedürfnissen verbergen.

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo Andreas,
hallo Peter,

danke für eure Vorschläge. Habe mir jetzt mal beides genauer angeschaut und denke, dass Peters Vorschlag am meisten meinen Vorgaben entspricht. In der Hilfe konnte ich leider nichts genaueres dazu finden, daher hier ein paar Fragen an Peter:
Verstehe ich das richtig, ich erstelle zwei neue Masken und diese beiden Masken enthalten den Inhalt der bisherigen Erstellungsmaske (da diese als Teilmaske eingefügt wird). Wenn ich nun das Dokument erstellen, dann wird Maske 1 (wir nennen Sie mal Edit) aufgerufen. Diese Maske zeigt nun alles an und der Abschnitt komprimiert sich beim Drucken. Ist Maske 1 vollständig ausgefüllt, dann kann ich über eine Aktionsschaltfläche (z.B.) Maske 2 (wir nennen Sie mal Print) aufrufen. Maske 2 hat dann automatisch die Werte von Maske 1. Ist es am besten, wenn ich das mit Antwortdokumenten  realiseren? Wüßte sonst ehrlich gesagt nicht, wie ich eine Maske direkt in eine andere überführe.
Danke schonmal im Voraus  ;D

Liebe Grüße

Holger

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Gut Frage, und absolute Basics, um Notes richtig zu verstehen (ist wirklich nicht böse gemeint).

Ich versuche mal eine Erklärung in Kürze:

Du hast ein Dokument, in dem Dokument befinden sich Items. Dieses Dokument ist nur eine Sammlung von allen möglichen Daten, eben den Items. Das Dokument ist also nur ein Topf, in dem alles möglich enthalten ist.

Du hast eine Maske, die Maske definiert, wie ein Dokument, also so ein Datentopf, angezeigt und evtl bearbeitet wird. Mit Hilfe einer Maske kannst Du auch ein Dokument erstellen (das ist der gewöhnlichste Weg).

Die Verbindung zwischen Maske und Dokument ist das Feld (sorry, exakt gesagt: das Item) "Form" (ich ignoriere bewusst solche Dinge wie Vorgabemaske usw.). In "Form" steht, mit welcher Maske ein bestehendes Dokument geöffnet werden soll.

Zu Deinem Fall:

Du hast nun das Dokument, das vorerst mit der Maske "Edit" behandelt (geöffnet / bearbeitet) werden soll. Folglich steht in dem Item "Form" der Wert "Edit". Nun erreicht das Dokument einen Zustand, in dem es ausgedruckt werden darf. Folglich braucht nur in dem Item "Form" des Dokuments der Wert von "Edit" auf "Print" geändert zu werden. Und schon wird das gleiche Dokument anstatt mit der Maske "Edit" mit der Maske "Print" geöffnet.

Das Ganze geht auch temporär, dass Du nur beim Betätigen des Drucken-Buttons die Form wechselst. Beim geöffneten Dokument sinngemäß so:

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document
Dim merken As String
merken = doc.Form (0)
doc.Form = "Print" 'Druckmaske verwenden
Call doc.Print '(-> den weiß ich gerade nicht aus dem Kopf, könnte auch uidoc.Print sein)
doc.Form = merken 'wieder zurücksetzen, falls das Dokument gespeichert wird

Also: Du brauchst kein weiteres Dokument (also nix mit Antwort oder so), sondern Du sagst nur dem EINEN Dokument, dass es zum Drucken eine andere Maske verwenden soll.

Verstanden? Falls nicht, frag gerne wieder nach. Dies ist m.E. einer der wesentlichsten Punkte, den man in Notes verstanden haben muss, das Zusammenspiel und die Unabhängigkeit von Dokument und Maske. Ich bin schon sehr vielen begegnet, die das nicht wussten, ist also keine Schande ...
« Letzte Änderung: 13.04.13 - 10:20:50 von Peter Klett »

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Noch ein Nachsatz, hatte ich vergessen:

Falls Du den Wert von "Form" dauerhaft änderst, weil die Druckfähigkeit des Dokuments nur vom Status des Dokuments abhängt, und nicht von dessen Kontext (also Lese- oder Bearbeitenmodus), musst Du natürlich die Selektionsformeln in den Ansichten anpassen.

Statt

Form = "Edit"

brauchst Du dann

Form = "Edit" : "Print"

um alle Dokumente dieser Art unabhängig von Ihrer Druckbarkeit anzuzeigen.

Das ist der Nachteil der dauerhaften Änderung der Form, Vorteil ist aber, dass das Dokument dann auch mit den normalen Druckbefehlen des Clients ausgedruckt werden kann, und nicht nur über die eigene Schaltfläche.

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo Peter,

danke für die Super Erklärung. Jetzt hab ich das auch verstanden - super erklärt. Wahnsinn was mit Notes alles möglich ist! Ehrlich gesagt habe ich mit Lotus Script noch keine Erfahrung (Schulung endlich im Juni 2013). Habe daher erstmal ewig in der Hilfe nachgelesen ob es irgendeine @Function gibt. Kann es sein, dass ich die Form beim speichern des Dokuments auch nur über Lotus Script in einem Event ändern kann? Die Druckaktion funktioniert leider noch nicht. Ich glaube aber es liegt an der falschen Anpassung durch mich  :P Am besten wäre es eventuell sogar, wenn die Form nach dem speichern des Dokuments angepasst werden würde. Das geht aber sicher nur ebenfalls mit Script  :(
Ich schaue mir jetzt erstmal in der Hilfe die Einträge mit Lotus Script an. Kann bis Juni einfach nicht mehr warten und merke jedes mal mehr, dass man mit Formelsprache einfach nicht so weit kommt. Danke dir für die Unterstützung - wäre ohne dich sicherlich schon kauernd in der Ecke gelandet - total verzweifelt.

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Um das Feld (Item) dauerhaft im Dokument zu ändern, geht auch Formelsprache

FIELD Form := "Print"

Offline Gabe

  • Junior Mitglied
  • **
  • Beiträge: 52
Hallo Peter,

okay kleine Korrektur - jetzt habe ich es wirklich verstanden. Alles Items und Form daher ist auch nur ein Item. Daher kann ich es natürlich auch mit Formelsprache abändern  ;D
Gibst du eigentlich auch Schulungen? ;)
Jetzt funktioniert es so wie ich es gerne hätte - Danke dir

Liebe Grüße

Holger

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Gibst du eigentlich auch Schulungen? ;)
Gerne, am liebsten hier vor Ort, kannst Du bei Deinem Arbeitgeber als Bildungsreise einreichen und besuchst mich im schönen Balestrand am Sognefjord (Westnorwegen). Training on the Job mache ich aber auch, wenn man mich einfliegen lässt ...

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz