Autor Thema: Neue Antwortdokumente erstellen und Felder mit Werten füllen  (Gelesen 1656 mal)

Offline markreimann

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Hallo zusammen :-)

Ich habe folgendes Problem ohne Lösung:

Ich erstelle gerade ein Notes-DB für Personalveränderungen.
3 Bereiche erfassen Daten, dann sollen Checklisten erstellt werden für verschiedene Bereiche.
Der Personalveränderungsbogen ist ein Dokument, die Checklisten sind Antwortdokumente.

Ich habe mir schon eine Schaltfläche erstellt, die mit dem folgenden Code die Checklisten erstellt und die Felder so füllt wie ich es eigentlich haben möchte:

Code
REM {Bereiche auswählen, die diese Checkliste haben};
_bereiche := @DbLookup ("":"NoCache" ; "":"" ; "(LUAufgaben)"; PVB_Vorfall; 2);
_aufgaben := @DbLookup ("":"NoCache" ; "":"" ; "(LUAufgaben)"; PVB_Vorfall; 3);

REM {Schleife - Erstellt die Checklisten und füllt einige Felder aus};

@If(@Elements(_bereiche) = 0; @Return(0); "");
n := 1;
	@DoWhile(

		@Prompt([Ok]; "Bereich " + @Text(n); _bereiche[n] + _aufgaben );
				@Command([Compose]; "MSK_Checkliste");
				@Command([EditGotoField]; "CHK_Bereich");
				@Command([EditInsertText]; _bereiche[n]);
				@Command([EditGotoField]; "CHK_Vorfall");
				@Command([EditInsertText]; PVB_Vorfall);
				@Command([EditGotoField]; "CHK_Name");
				@Command([EditInsertText]; PVB_Nachname + ", " + PVB_Vorname);
				@Command([EditGotoField]; "CHK_Aenderungper");
				@Command([EditInsertText]; @Text(PVB_Aenderungper));
				@Command([EditGotoField]; "CHK_tmpAufgaben");
				@Prompt([Ok]; "Aufgaben"; _aufgaben[n]);
				@Command([EditInsertText]; _aufgaben[n]);
				@Command([FileSave]);
				@Command([CloseWindow]);

		n := n + 1;
	n <= @Elements(_bereiche)
)

1.) Ich habe das ungute Gefühl, daß diese Methode sehr unschön ist. Ich habe auch schon versucht die Felder mit @SetField zu füllen, was irgendwie nicht geklappt hat (Felder blieben einfach leer). Eine direkte Feldzuweisung (FIELD xyz := Wert) hat auch nicht geklappt (ich glaube das geht hier auch nicht).

2.) Mein Feld CHK_Aufgaben ist vom Typ Kontrollkästchen. Das konnte ich irgendwie nicht direkt füllen, also habe ich es auf "Berechnet" gesetzt, den Wert auf CHK_tmpAufgaben gesetzt und ein Hilfsfeld mit dem Namen CHK_tmpAufgaben erstellt (wird durch die Formel oben gefüllt). Das klappt auch so lange ganz ordentlich, bis ich mein temporäres Feld verberge. Danach findet er es mit dem @Command([EditInsertText]) nicht mehr.

Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.

Achja, Script kann ich noch nicht  :-:

Vielen Dank im Voraus,
Mark Reimann
Mark Reimann

"Wer Rechtschreibfehler findet, darf sie behalten"

Offline markreimann

  • Frischling
  • *
  • Beiträge: 33
  • Geschlecht: Männlich
Ich nochmal  ;D

Ich bin zwar immer noch der Meinung, daß es unschön gelöst ist, aber es funktioniert jetzt !
Frage 2 wäre damit erledigt.

Meine Lösung ist die folgende:

Diesen Teil habe ich gelöscht:
Code
@Command([EditGotoField]; "CHK_tmpAufgaben");
@Prompt([Ok]; "Aufgaben"; _aufgaben[n]);
@Command([EditInsertText]; _aufgaben[n]);

Dann habe ich bei QuerySave in der zu erstellenden Checkliste folgendes eingetragen:

@If(@IsNewDoc;@Success;@Return(0));
Code
_BereichVorfall := Chk_Bereich + "#" + Chk_Vorfall;
_Aufgaben := @DbLookup ("":"NoCache" ; "":"" ; "(LUCheckHelp)"; _BereichVorfall; 2);
@SetField("CHK_tmpAufgaben"; _Aufgaben)

Bei der Erstellung der Checklisten frage ich jetzt also die Aufgaben ab, setze sie in mein Hilfsfeld und das Feld mit den Kontrollkästchen bedient sich der Daten aus meinem Hilfsfeld. Dieses kann ich jetzt auch verbergen.


Wenn aber jemand Tipps zu einer eleganteren Lösung in Formelsprach hat .... immer her damit.

Schönes Wochenende wünscht
Mark Reimann
Mark Reimann

"Wer Rechtschreibfehler findet, darf sie behalten"

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Mit @functions wird es wohl auf solche Konstrukte hinauslaufen. LotusScript wurde ja nicht umsonst in Notes eingeführt - und da geht das dann natürlich eleganter (und sicherer, allein schon, weil dort wirkliches ErrorHandling möglich ist).

Ebenfalls ein schönes Wochenende wünscht
Bernhard (der sich jetzt auf das morgige AtNotes-Treffen freut)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz