Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 03.05.04 - 10:45:01

Titel: Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 03.05.04 - 10:45:01
Hallo,

wie kann ich Werte aus einem Feld im Antwortdokument in das Hauptdokument übergeben?
Es sind Zahlenfelder.
Ich möchte den Inhalt des Feldes "Anzahl", das bei jedenm erstellen des Antwortdokumentes auf "1" gesetzt wird im Hauptdokument quasi zusammenrechnen.

danke Euch

Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: rar am 03.05.04 - 11:06:18
Hi Selin,
jedes Antwortdokument hat im Feld $Ref die UNID des Hauptdokumentes stehen.
Im Querysave des Antwortdokuments kannst du dann mit
Set notesDocument = notesDatabase.GetDocumentByID( noteID$ )
Das Hauptdokument holen dein Feld ändern und abspeichern.

Du solltest aber bedenken, daß du, wenn Antwortdokumente gelöscht werden, dein Zähler wieder runterzählst.

HTH
-daniel

edit:
Natürlich darfst du im QS nur bei neuen Antwortdokumenten den Zähler rauf zählen...
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 03.05.04 - 14:55:37
Hi,

danke erst mal für die Antwort.
Ich kann kein Script.  :-[

Kannst du mir sagen, wie ich das mit dem zähler mache?

Danke
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: koehlerbv am 03.05.04 - 15:06:05
Du könntest auch @SetDocField verwenden.
Ich wäre bei solchen Stunts aber vorsichtig, so wie mehrere Leute, womöglich noch auf unterschiedlichen Servern oder mit lokalen Repliken arbeiten, sind Replizierkonflikte praktisch vorprogrammiert.

Bernhard
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 04.05.04 - 10:15:58
Hallo Zusammen,

ichhabe es mal mit @SetDocField versucht.
Die Werte werden zwar übergeben aber nach dem Speichern kommt erst mal die Meldung
"Variant does not contain an object"

Meine Formel sieht so aus:

@SetDocField($Ref; "hin"; hin_ja1 )

Grüsse
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: koehlerbv am 04.05.04 - 10:56:36
Das ist etwas merkwürdig. Die Fehlermeldung ist eigentliche eine typische LotusScript-Fehlermeldung. Was hast Du denn im QuerySave-Event der Maske eingestellt ?

Bernhard
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Semeaphoros am 04.05.04 - 11:05:03
... oder im PostSave, da es ja nach dem Speichern auftaucht.
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 04.05.04 - 11:13:16
stimmt. Ich hatte noch was im QuerySave
Danke

Eine Frage hab ich noch

Wenn ich den Wert aus dem Antwortdokument in das Feld im Hauptdokument schreibe, muss er mir ja mehrere Werte (je nach Anzahl der Antworten) ind as Feld im Hauptdokument reinschreiben.
Habe dem Feld auch die Eigenschaft "Mehrfachwerte zulassen" aktiviert
Aber da steht immer nur ein Wert drin, obwohl ich mehr als ein Antwortdokument habe

Woran kann das liegen?
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: koehlerbv am 04.05.04 - 11:15:10
Zitat
Habe dem Feld auch die Eigenschaft "Mehrfachwerte zulassen" aktiviert
Aber da steht immer nur ein Wert drin, obwohl ich mehr als ein Antwortdokument habe

Kannst Du das mal etwas genauer beschreiben ?
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Driri am 04.05.04 - 11:22:34
Für Mehrfachwerte ist deine Formel nicht korrekt. So überschreibt er immer den Wert mit einem Neuen.

Dann müßtest Du so was in der Art verwenden :

@SetDocField($Ref; "hin"; hin:hin_ja1 )
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 04.05.04 - 14:22:46
da steht dann immer ""; "ja" im Feld hin drin
auch wenn ich z.B. 5 Antworten habe

 ??? ??? ???
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: koehlerbv am 04.05.04 - 14:29:05
Logisch.
hin ist ja auch kein Feld aus dem aktuellen Dokument. Du must Dir vor dem @SetDocField erst mit @GetDocField den Wert von hin holen und dieses mit hin_ja1 verketten - das ganze am besten in eine temp. Variable. Anschliessend noch ein @Trim drüber, damit - insofern nicht gewünscht - Leerzeichen aus der Textliste eliminiert werden.

Bernhard
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 10.05.04 - 14:46:55
ich krieg das nicht gebacken  :(
habe jetzt immer "ja"; "ja" in dem Feld hin stehen.
Auch wenn ich nur eine Antwort habe

Habe folgende Formel:

FIELD temp :=@Trim(@GetDocField($Ref; "hin"));
temp : hin_ja_1;
@Trim(@SetDocField($Ref; "hin";temp: hin_ja1 ))

was ist daran falsch?

Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 13.05.04 - 15:46:55
Hallo
Ich habe mit folgender Formel das Ergebnis das du haben willst:

FIELD temp :=@Trim(@GetDocField($Ref; "gesamt"));
@If(temp="";@Trim(@SetDocField($Ref; "gesamt";ergebnis));@Trim(@SetDocField($Ref; "gesamt";temp : ergebnis )))

aber leider nicht wenn ich eine neue Antwort erstelle und schon ein Eintrag in dem Feld im Hauptdokument drin steht.
Dann kommt eine Fehlermeldung, das die UNID nicht stimmt.
Wenn ich aber den Eintrag im Feld des dann schon existierenden Antwortdokumentes vornehme geschieht genau das was soll. (Eintrag wieder löschen fehlt noch, ist ein bisschen komplizierter)

Ich werde noch mal was ausprobieren vielleicht fällt aber noch einem was zu diesem Problem ein!

Grüsse; Krista
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 13.05.04 - 16:16:40
Hallo, habe meinen Fehler gefunden!

Wenn man eine Antwort erstellt, ist vor dem Speichern kein $Ref vorhanden.
Also am besten ein verstecktes Feld(z.B ID) ins Hauptdokument mit
@Text(@DocumentUniqueID)

Dann ein verstecktes Feld(z.B. MainID; Berechnet beim Anlegen) in die Antwort an das dieser Feldwert übergeben wird.

Dann die Formel noch entsprechend anpassen:

FIELD temp :=@Trim(@GetDocField(MainID; "gesamt"));
@If(temp="";@Trim(@SetDocField(MainID; "gesamt";ergebnis));@Trim(@SetDocField(MainID; "gesamt";temp : ergebnis )))
und schon klappt es auch mit dem QUERYSAVE!

Grüsse, Krista
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 17.05.04 - 09:14:33
Hallo webchild,

danke für Deine Antwort.
Habe es ausprobeiert.
Klappt fast. Mir wird in das Feld hin (ergebnis) der Inhalt von hin_ja1(gesamt) pro Antwortdokument 2x mal reingeschrieben.
Also wenn ich auf dem Antwortdokument hin_ja1(gesamt) (ist ein Kontrollkästchen) aktiviere, wird im Hauptdokument in das Feld hin (ergbenis) der Inhalt also "ja" 2x mal reingeschrieben.

Gruß
Selin
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 18.05.04 - 14:10:17
Hallo Selin,
kopier doch mal bitte die Formel die du einsetzt (Damit ich shen kann ob die Formel richtig umgesetzt wurde).

Das es zweimal eingetragen wird, könnte z.b. daran liegen das du evtl. in mehreren Aktionen (Querysave, Postsave usw.) Formeln eingetragen hast die diesen Eintrag auslösen und nicht alle wieder gelöscht hast. Oder in der formel ist noch ein Fehler!


Grüße, Krista
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 18.05.04 - 15:09:38
Hallo Krista,

hier die Formel im Querysave:

FIELD temp :=@Trim(@GetDocField(MainID; "hin"));
@If(temp="";@Trim(@SetDocField(MainID; "hin";hin_ja1));@Trim(@SetDocField(MainID; "hin";temp : hin_ja1 )));

FIELD temp1 :=@Trim(@GetDocField(MainID; "zurueck"));
@If(temp1="";@Trim(@SetDocField(MainID; "zurueck";zur_ja1));@Trim(@SetDocField(MainID; "zurueck";temp1 : zur_ja1 )))

Danke + Gruß
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 18.05.04 - 15:37:42
Hallo Selin,
die Formel scheint vollkommen korrekt zu sein!
Hast du die Formeln in einer Testdatenbank? So das du einfach die Felder im Hauptdokument leeren kannst und dann die Antwortdokumente noch mal abspeicherst und kontrollierst ob wirklich jeder Entrag 2 mal abgespeichert wird!

Und dir ist ja bewußt das durch den Eintrag im Querysave der Maske bei jedem erneuten speichern eines Antwortdokumentes ein Eintrag gemacht wird! Um das zu verhindern müßte man noch ein paar Abfragen einbauen!

Grüße, Krista
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 18.05.04 - 16:25:19
Hi Krista,

ja das ist ne Testdatenbank. Also ich erstelle die Dokuemnte alle neu und die Antwortdokumente ebenso. Der Inhalt ist imemr zweimal "ja"

 ???

Gruß,
Selin
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 18.05.04 - 16:37:45
Hast du einen Vorgabewert für das "Hin" Feld?

Werden den jedesmal 2 Einträge gemacht? Auch wenn du weitere Antworten anlegst mit "Nein" mal als Wert?

Und steht in den anderen Aktionen der Antwortmaske auch sicher nichts mehr was den Eintrag hevorrufen könnte! (siehe Bild)
 
Wie sind die Felder angelegt? Einfache Textfelder - bearbeitbar oder sind da auch Formeln hinterlegt?

Also die Formel sollte so wie sie da hinterlegt ist funktionieren wenn nicht andere Einstellungen dazwischen funken!

Wenn du nicht weitekommst, kannst du mir gerne die TestDB mailen!

Grüße, Krista
Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: Selin am 18.05.04 - 16:45:43
Hi,

also ich habe auf dem Hauptdokument ein Feld hin (berechnet. Wert = hin, Mehrfahwerte zulassen)

Auf dem Antwortdokument ist das Feld hin_ja1 (Kontrollkästchen)
Im Querysave ist die Formel:
FIELD temp :=@Trim(@GetDocField(MainID; "hin"));
@If(temp="";@Trim(@SetDocField(MainID; "hin";hin_ja1));@Trim(@SetDocField(MainID; "hin";temp : hin_ja1 )));


Also wenn ich hin_ja1 ankreuze und das Antwortdokument abspeichere wird in das Feld hin im Hauptdokument der Wert aus hin_ja1 reingeschrieben.

Wenn ich das Feld nicht ankreuze, dann steht in hin auch nix drin.

Nur wie gesagt, wird pro Antwortdokument, bei dem auch hin_ja1 angekreuzt ist in das Feld hin im Hauptdokument 2x der Wert aus hin_ja1 reingeschrieben.

Titel: Re:Feldinhalt aus Antwortdokument summieren
Beitrag von: webchild am 18.05.04 - 18:23:33
Ich würde die Formel noch um folgende Abfrage erweitern.
Also die Formel stimmt, bei mir funktioniert es einwandfrei so wie ich es beschrieben habe!

FIELD temp :=@Trim(@GetDocField(MainID; "hin"));
@If (hin";hin_ja1="";"";@If(temp="";@Trim(@SetDocField(MainID; "hin";hin_ja1));@Trim(@SetDocField(MainID; "hin";temp : hin_ja1 ))));

Also ich schicke dir eine Kopie einer Datenbank, wo ich (unter anderem) die wichtigsten Elemente drin habe zu  und vergleiche sie bitte mit deinen Einträgen:

Die Maske "Dokument" mit den geänderten Feldern "gesamt" und "ID",

die Maske "Antwort" mit den geänderten Feldern "MainID" und "ergebnis" und der Änderung nur im Querysave der Maske "Antwort"!

Falls du damit nicht weiterkommst müsste ich doch mal in deine Testdatenbank reinschauen!

Grüße, Krista

Titel: Mail ist unterwegs...
Beitrag von: Selin am 19.05.04 - 11:52:01
  Danke Dir