Domino 9 und frühere Versionen > Administration & Userprobleme

Zeilen einer Tabelle ausblenden

<< < (3/4) > >>

manuel:
Das Problem das wir haben ist, dass wir eine Formel bräuchten, mit der man beim Drucken das Feld verstecken kann, wenn die relevanten Felder leer sind.

Wenn du auf die Eigenschaftsseite wo man die HideWhen-Formel angeben kann schaust, gibt es eine Checkbox mit der man den Absatz verbergen kann wenn gedruckt wird. Nur leider weiß ich nicht ob es dafür eine Formel gibt.

Mit @IFDOCBEINGSAVED kommen wir leider auch nicht weiter, weil Speichern und Drucken 2 verschiedene Ereignisse sind.

manuel:
Vielleicht ist aber das eine Lösung:
Du könntest die Felder verstecken, wenn das Dokument im Lesemodus ist. Und wenn nun das Dokument gedruckt wird, gehst du einfach vorher in den Lesemodus.


Die HideWhen-Formel könnte so aussehen:
!@IsDocBeingEdited & FeldA = "" & FeldB = "" & FeldC = ""

!@IsDocBeingEdited => also wenn das Dokument nicht im Bearbeitungsmodus ist => Lesemodus



Und nun brauchst du ein Ereignis damit das Drucken ausgelöst wird, eine Aktion oder verknüpft mit dem QuerySave:

Dim ws As New NotesUIWorkspace
ws.CurrentDocument.EditMode = False      'Dokument geht in Lesemodus
Call ws.CurrentDocument.Print            'Dokument wird gedruckt


Das einzige Problem das sich nun stellt ist, dass das Dokument vorher gespeichert werden muss, damit in den Lesemodus gewechselt werden kann.

----------------------------------------------------------------------

Eine zweite, und vielleicht auch geschicktere Methode wäre ein verstecktes Feld in das Dokument einzubauen, das zB "isprinting" heißt (Vorgabewert "0"). Wenn nun die Drucken-Aktion ausgelöst wird, wird "1" in das Feld geschrieben und das Feld versteckt, durch diese Formel:

isprinting = "1" & FeldA = "" & FeldB = "" & FeldC = ""


Das Script in der Aktion könnte so aussehen:

Dim ws As New NotesUIWorkspace
Call ws.CurrentDocument.FieldSetText("isprinting", "1")
Call ws.CurrentDocument.Refresh
Call ws.CurrentDocument.Print
Call ws.CurrentDocument.FieldSetText("isprinting", "0")
Call ws.CurrentDocument.Refresh

Die Refreshs werden benötigt, damit die HideWhen-Formeln neu berechnet werden und die Zeile versteckt wird! Nun braucht das Dokument auch nicht mehr extra gespeichert werden.


Ich hoffe ich konnte dir ein bisschen weiterhelfen.
Grüsse
Manuel

cafe2:
Hi,

ich hatte mal ein (Telefon)-Protokoll generiert, welches ich mit Tabellen erstellt habe,
d.h. ich habe für jede Telefonkonferenz 8 TOP-Themen (also 8 Tabellen) zugelassen. Für
jedes TOP-Thema sind 8 Unterpunkte (also 8 Zeilen je Tabelle) möglich. Da kaum damit zu
rechnen ist, das alle Themen bzw. Unterpunkte gefüllt werden, sollen auch nur die gefüllten
Zeilen angezeigt bzw. gedruckt werden.
Um das zu erreichen, arbeite ich mit Zählern (Top1Zeile). Erstellt man ein neues Protokoll,
erscheint nur eine erste leere Zeile des ersten TOP-Themas. Per +/- Buttons kann man nun im
editierten Modus neue Zeilen hinzufügen bzw. bestehende Löschen. Dabei erhöhe/ vermindere ich
einen Zähler um 1.
Natürlich werden die Felder gleich aktualisiert, so daß alles gleich sichtbar ist. Zum Verstecken
der leeren Zeile frage ich den Zähler ab.
Beispiel: Im Urzustand sieht man wie gesagt nur die erste Zeile, der Zähler (Top1Zeile) steht auf 1.
Die zweite Zeile verstecke ich, wenn wahr: Top1Zeile<2, die nächste mit Top1Zeile<3 usw. Drücke ich nun
den + Button, wird der Zähler erhöht auf 2, die Felder werden refresht und schon ist die Versteckt-
Bedingung für Zeile 2 nicht mehr wahr und sie wird angezeigt.
So hat man nie das Problem leeren Zeilen zu sehen, weder im Lese- noch im Editiermodus. Ich habe
sicherlich komplizierter geschrieben,
als das Ganze ist. Bei Bedarf kann ich die Maske mal rübermailen.

Gruß cafe2

Fbaum:
So,
habe es jetzt so gelöst , daß ich die erste Zeile immer angezeigt bekomme. Die zweite Zeile habe ich so definiert, daß sie nur angezeigt wird wenn in der ersten was drin steht. Also ich trage in meine erste Zeile was ein, drücke anschließend die F9 Taste und es wird mir die zweite Zeile angezeigt usw. Habe dafür nen Tip bekommen. Wäre sonst auch nicht drauf gekommen.
Danke und Gruß
Frank
PS: Bis zum nächsten Mal... ;)

manuel:
Hi cafe2, das finde ich eine sehr gute Lösung!

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln