Autor Thema: Felder automatisch aktualisieren  (Gelesen 4026 mal)

Offline mrx

  • Junior Mitglied
  • **
  • Beiträge: 73
  • Ich liebe dieses Forum!
Felder automatisch aktualisieren
« am: 04.08.03 - 10:42:48 »
Hallo,

ich habe folgendest Problem. Ich habe in meiner Datenbank Auftragsdokumente und dazu jeweils mehrere Antwortdokumente die die Ergebnisse zu den Aufträgen enthalten.

Jetzt werden im Auftrag (Hauptdokument) eine Reihe von Tests ausgewählt die in einem Textfeld gespeichert werden.
Dieses wird über die "Feldinhalte vererben" Funktion in die Antwortdokumente (Ergebnisse) übertragen um sie dort mit hilfe einer Dialogbox auswählen zu können.

Jetzt kommt es aber ab und zu vor das im nachhinein Tests hinzugefügt werden und diese sind dann natürlich nicht in den bereits erfassten Ergebnisformularen verfügbar da diese ja noch die Werte enthalten die das Testfeld zum Zeitpunkt der Ergebnisformularerstellung beinhaltete.

Jetzt meine Frage, gibt es eine Möglichkeit beim öffnen eines Ergebnisformulart (Antwort auf einen Auftrag) den letzten Stand sozusagen nochmals zu kopieren so das in den Ergebnissen immer der letzte Stand des Hauptfeldes vorhanden ist???

Gruß
Malte.

Glombi

  • Gast
Re:Felder automatisch aktualisieren
« Antwort #1 am: 04.08.03 - 10:48:19 »
Hi,
falls die Felder nicht bspw. in Ansichten angezeigt werden müssen, kannst Du auch mit Feldern "Berechnet zur Anzeige" arbeiten. Als Formel musst Du dann per @DbLookup den aktuellen Wert aus dem Hauptdokument lesen.
Das hat den Vorteil, dass im die aktuellen Werte angezeigt werden, ohne dass die Antworten bei Änderungen aktualisiert werden müssen.

Wenn jedoch die Werte der Antworten in Ansichten dargestellt werden sollen, müssen die gesetzt werden. Ich würde dass dann aber vom Hauptdokument antriggern. Im QueryClose abfragen, ob das Hauptdokument gespeichert wurde und ob sich relevanter Felder geändert haben. Falls ja, das in allen Antworten ändern.

Wenn Du das über das Öffnen der Antwort triggern würdest, hättest Du bis zum Öffnen Inkonsistenzen.

Zu beachten ist auch, dass bei Änderungen von Dokumnten der Anwender auch das Schreibrecht haben muss!

Andreas

Offline mrx

  • Junior Mitglied
  • **
  • Beiträge: 73
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #2 am: 04.08.03 - 11:40:36 »
Hi,

noch ne Frage, ich hab das jetzt probiert wie du es beschrieben hast mit einem Script und beim abspeichern des Hauptdokuments.

Dabei hab ich noch ein kleines Problem. Ich greife auf die Funktion Responses zu, wie kann ich feststellen ob das Set ProbenCollection = doc.Responses erfolgreich war?!

Bei neuen Dokumenten die noch keine Antworten haben fliege ich da sonst jedes mal auf die schnauze weil das Set schief geht.

Gruß
Malte.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Felder automatisch aktualisieren
« Antwort #3 am: 04.08.03 - 11:52:17 »
Hi,

Dabei hab ich noch ein kleines Problem. Ich greife auf die Funktion Responses zu, wie kann ich feststellen ob das Set ProbenCollection = doc.Responses erfolgreich war?!

Bei neuen Dokumenten die noch keine Antworten haben fliege ich da sonst jedes mal auf die schnauze weil das Set schief geht.

Gruß
Malte.

Hi,

so:

Set ProbenCollection = doc.Responses
If ProbenCollection.Count > 0 Then
  Messgebox "Dokument hat Antwortdokumente"
  ...
Else
  Messagebox "Es gibt keine Antworten"
End If
...


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline mrx

  • Junior Mitglied
  • **
  • Beiträge: 73
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #4 am: 04.08.03 - 11:56:56 »
Hi,

meinst du das Funktioniert?
Wenn ich ein neues Formular erstelle, bekomme ich immer den Fehler "Object Variable not set" oder so... das ist ja auch einleuchtend, nur wenn ich in der For schleife schon nicht auf die Count Property zugreifen kann ohne einen Fehler zu bekommen, dann wird deine Methode wahrscheinlich auch nicht funktionieren...

Gibts in notes nicht sowas wie in Delphi wo man feststellen kann ob ein Objekt existiert oder nicht? Bei Delphi hieß das Assigned(Variablenname) und dann gabs True/False zurück je anchdem ob das Objekt existiert oder nicht...

Kann ich evtl. abfragen ob das Dokument was ich gerade abspeicher (Funktion QuerySave) ein neues Dokument ist oder ob es bereits existiert und nur nochmal abgespeichert wird?

Gruß
Malte.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Felder automatisch aktualisieren
« Antwort #5 am: 04.08.03 - 12:01:04 »
Hi,

du kannst es auch mal so versuchen:

Set ProbenCollection = doc.Responses
If ProbenCollection Is Nothing Then
  Messagebox "Es gibt keine Antworten"
End If

Ich bin mir aber nicht ganz sicher.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline mrx

  • Junior Mitglied
  • **
  • Beiträge: 73
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #6 am: 04.08.03 - 12:10:14 »
Hi,

habs über IsNewDoc gelöst, funktioniert jetzt... das Problem tritt nur bei neuen Dokumenten auf.

Gruß
Malte.

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #7 am: 30.01.04 - 12:07:48 »
Hi,
falls die Felder nicht bspw. in Ansichten angezeigt werden müssen, kannst Du auch mit Feldern "Berechnet zur Anzeige" arbeiten. Als Formel musst Du dann per @DbLookup den aktuellen Wert aus dem Hauptdokument lesen.
Das hat den Vorteil, dass im die aktuellen Werte angezeigt werden, ohne dass die Antworten bei Änderungen aktualisiert werden müssen.

Wenn jedoch die Werte der Antworten in Ansichten dargestellt werden sollen, müssen die gesetzt werden. Ich würde dass dann aber vom Hauptdokument antriggern. Im QueryClose abfragen, ob das Hauptdokument gespeichert wurde und ob sich relevanter Felder geändert haben. Falls ja, das in allen Antworten ändern.
..

Zu beachten ist auch, dass bei Änderungen von Dokumnten der Anwender auch das Schreibrecht haben muss!

Andreas

Hallo Andreas!

Ich habe ein ähnliches Problem.
Dank Deiner Hilfe habe ich nun ein solches zur Anzeige berechnetes Feld in meinem Antwortdokument erstellt.
Es holt sich den aktuellen Wert des Feldes "Status" aus dem Mutterdoku.
Nun soll das Tochterdokument aber nicht bearbeitet werden können, solange der Status des Mutterdokus z.B. => 2 ist.
Leider reagiert mein kontrollierter Abschnitt nicht auf das Feld.
Weil es nur zur Anzeige berechnet ist?  ???

Zu Deinem Tipp mit dem QueryClose vom Mutterdoku:
Wie könnte ich (in Formelsprache) alle Antwortdokus aktuallisieren?

Viele Grüße
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Glombi

  • Gast
Re:Felder automatisch aktualisieren
« Antwort #8 am: 30.01.04 - 12:40:04 »
Was denn Abschnitt betrifft: Der reagiert schon auf das Feld, aber
- das zur Anzeige berechnete Feld muss über dem Abschnitt stehen
- die Abschnittsberechtigung sollte auch "Berechnet zur Anzeige" sein!

Was hast Du als Formel angegeben?

Zu "Wie könnte ich (in Formelsprache) alle Antwortdokus aktuallisieren?":
In Formelsprache ist das ein Akt, Script ist da wesentlich besser geeignet. Warum die Abneigung?

Andreas
« Letzte Änderung: 30.01.04 - 12:41:08 von Glombi »

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #9 am: 30.01.04 - 13:06:02 »
Was den Abschnitt betrifft: Der reagiert schon auf das Feld, aber
- ...
- die Abschnittsberechtigung sollte auch "Berechnet zur Anzeige" sein!
<--- Das wars!!!! Danke!  ;D

Was hast Du als Formel angegeben?
<-- @If(StatusA>=2;"kein Zugriff";Rolle)

Zu "Wie könnte ich (in Formelsprache) alle Antwortdokus aktuallisieren?":
In Formelsprache ist das ein Akt, Script ist da wesentlich besser geeignet. Warum die Abneigung?
<-- keine Abneigung, keine Ahnung!!!  ;)
Habe mir schon ein "Lern"-Buch besorgt, hatte aber noch keine Zeit mich einzulesen. Einen Kurs würde ich dann später auch noch besuchen.
Dazu aber dann mal gleich eine Frage: In dem Script-Lern-Buch (LotusScript, Markt+Technik, Training Programmierung) steht, daß LotusScript nicht von web-Browsern unterstützt wird. Dafür soll man dann auf Java-Script zurückgreifen.
Unsere Anwendungen sollen aber später im Intranet (also über web) laufen...!!!???
Was bedeutet das für mich als DB-Entwickler?

Viele Grüße Iris
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Glombi

  • Gast
Re:Felder automatisch aktualisieren
« Antwort #10 am: 30.01.04 - 13:46:10 »
M&T Bücher, nun ja ;D

LotusScript kann nicht im Browser ausgeführt werden, wenn es sich im UI-Kontext befindet, sprich in einen der Maskenevents, in Aktionen oder Buttons.
Sehr wohl funktioniert das in servergestützten Agenten. Daher findet man in webfähigen Applikationen ziemlich viele Agenten.

"LotusScript durch JavaScript ersetzen", na das wird ein netter Spaß. :o :P
Javascript ist schon sinnvoll für Validierungen vor dem OnSubmit oder für ein paar "alerts".

Andreas

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #11 am: 30.01.04 - 13:59:23 »
Danke für die Infos!

Tja, mit Lehrbüchern ist das wirklich so eine Sache. In meinem letzten Notes Kurs waren die Bücher sogar schlechter, als meine eigenen Programmierkenntnisse ....  ;D

Wenn ich mich dann endlich mal an Script herantraue, werde ich Dir bestimmt wieder auf die Nerven gehen!!!  8)

Werde jetzt mal weiter noteln!

Viele Grüße, ein schönes Wochenende und nach mal vielen Dank für die Hilfe
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #12 am: 07.06.04 - 13:53:52 »
"Zu "Wie könnte ich (in Formelsprache) alle Antwortdokus aktuallisieren?":
In Formelsprache ist das ein Akt, Script ist da wesentlich besser geeignet. Warum die Abneigung?"

Jetzt ist es soweit: Ich muss von einem Mutterdokument nach dessen Änderung die entsprechenden Felder in den Tochterdokumenten automatisch ändern.

Hat jemand vielleicht dazu eine Script-Vorlage, die ich entsprechend abändern könnte? (Und gegen Script habe ich noch immer keine Abneigung, nur leider noch immer keine Ahnung!!!  :-[)

Viele Grüße
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Glombi

  • Gast
Re:Felder automatisch aktualisieren
« Antwort #13 am: 07.06.04 - 14:00:49 »
Mir ist gerade eingefallen, dass es ja in den Best Practices bereits etwas dazu gibt:
http://www.atnotes.de/index.php?board=26;action=display;threadid=13984

Sieh mal dort nach, da steht alles beschrieben.

Andreas

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Felder automatisch aktualisieren
« Antwort #14 am: 07.06.04 - 14:47:25 »
Super!

Habe es schon ausprobiert und es hat auch gleich funktioniert!
Vielen Dank!

Viele sonnige Grüße
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz