Autor Thema: Feldwert setzen in neuem Dokument  (Gelesen 4557 mal)

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Feldwert setzen in neuem Dokument
« am: 18.07.03 - 10:34:03 »
Ich schon wieder ...    ::)

Problem:

Eine Aktion erstellt ein neues Formular,
darin möchte ich anschließend Felder verändern, aber alle (mir bekannten) Befehle scheitern, sie werden einfach ignoriert. Der Doclink-Kram klappt, aber andere Felder können nicht gesetzt werden.
z.B. wenn ich für das Feld "Bezug" einen Wert festlegen will.
(@SetField; @SetDocField; FIELD habe ich schon ausprobiert)
(Auch nur compose und nur Feld setzen geht nicht!!)   :-\

Hier die Aktions-Formel:
@If(@Prompt([YesNo];"Formular für Arbeitsanweisung";"Möchten Sie für diese Anweisung ein Formular erstellen?");
@Do(
@Command([EditMakeDocLink]) ;
@Command([Compose];"":"DB Doc.nsf";"Document");
@Command([EditGotoField];"LAA");
@Command([EditPaste]);
@Command([EditGotoField];"Bezug");
.... und hier soll nun der Wert "1" im Feld Bezug eingetragen werden ...));

@Command([Compose];"":"DB Doc.nsf";"Document"))

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

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #1 am: 18.07.03 - 10:43:34 »
Hallo,

wie hattest Du denn den @SetField Befehl formuliert?
@SetField("Bezug"; "1")
sollte es sein.

Ciao,
Christian

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Feldwert setzen in neuem Dokument
« Antwort #2 am: 18.07.03 - 10:49:14 »
Hi!
Ja, genau so:

@SetField("Bezug";"1")

und ich hatte auch

@SetDocField(@DocumentUniqueID;"Bezug";"1")
ausprobiert .... nix!

FIELD Bezug := "1"; nix! auch mit vorheriger Definition: NOTHING!

Hab dann auch versucht zu tricksen, über Eingabeumsetzung im Feld "Bezug" (@if(LAA="";"0";"1") (LAA ist das Feld, in den die Aktion den Doclink zur Anweisung reinhängt) und in der Formel dann
@Command([RefreshWindow]) und auch
@Command([ReloadWindwo]) haben nix gebracht ....!

 ???
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #3 am: 18.07.03 - 12:34:29 »
Steht vor dem
@SetField("Bezug";"1")
eine Initialisierung in der Form
FIELD Bezug := Bezug;

Sonst wird das nämlich nix.

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #4 am: 18.07.03 - 12:45:33 »
Ich hab mir das mal nachgebastelt.

Ich hab mir eine Maske "Test" erstellt, zwei Textfelder "Bezug" und "LAA" erstellt. Außerdem einen Aktionsbutton mit der Formel:

@If(@Prompt([YesNo];"Formular für Arbeitsanweisung";"Möchten Sie für diese Anweisung ein Formular erstellen?");
@Do(
@Command([EditMakeDocLink]) ;
@Command([Compose]; "Test");
@Command([EditGotoField];"LAA");
@Command([EditPaste]);
@Command([EditGotoField];"Bezug");
@Command([EditInsertText];"1"));"");

beim Klicken wird ein neues Dokument mit der Maske erstellt, der Link eingefügt und dann das Feld Bezug in dieser neuen Maske auf "1" gesetzt. Beim Testen mit @SetField wurde immer das Feld in der Maske geändert, in welcher der Button angeklickt wurden.

Ciao,
Christian
« Letzte Änderung: 18.07.03 - 12:47:16 von Christian97 »

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Feldwert setzen in neuem Dokument
« Antwort #5 am: 18.07.03 - 13:46:39 »
Hallo Christian!

Funktioniert super mit Textfeldern! (Rich Text für LAA)

Leider habe ich aber vergessen die Kleinigkeit zu erwähnen, daß das Feld "Bezug" kein Textfeld, sondern natürlich ein Optionsfeld ist ... und damit klappt es dann wieder nicht.  :P

Leider funzen auch die RefreshWindow/ReloadWindow Befehle in der Aktion nicht, so daß ich es auch nicht "hintenrum" aktualisieren lassen kann ....

Vielleicht hast Du noch eine zündende Idee?  :-[
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #6 am: 18.07.03 - 13:56:37 »
hmm, dann geht das EditInsertText natürlich nicht und @SetField setzt die "1" in dem Ursprungsdokument. Du müßtest noch einen Weg finden, damit die Formel bis zum Schluß in dem neu erstellten Dokument bleibt.

Christian

Glombi

  • Gast
Re:Feldwert setzen in neuem Dokument
« Antwort #7 am: 18.07.03 - 14:01:59 »
Hi,
hast Du es schon mit Vererben versucht?
Du schreibst in das aktuelle Dokument ein (verstecktes) Feld und ruft dann erst das neue Dokument auf.
In der 2. Maske musst Du dann als Vorgabewert für das Optionsfeld den Feldnamen aus der 1. Maske schreiben.

Andreas

Offline Christian97

  • Aktives Mitglied
  • ***
  • Beiträge: 182
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #8 am: 18.07.03 - 15:08:03 »
Was Du auch machen kannst:

Erstell Dir noch ein bearbeitbares Textfeld "BezugText". Das Feld "Bezug" setzt Du auf den Typ "Berechnet" oder "Berechnet zur Anzeige". Als Aktionsformel dann
@If(@Prompt([YesNo];"Formular für Arbeitsanweisung";"Möchten Sie für diese Anweisung ein Formular erstellen?");
@Do(
@Command([EditMakeDocLink]) ;
@Command([Compose];"":"DB Doc.nsf";"Document");
@Command([EditGotoField];"BezugText");
@Command([EditInsertText];"1");
@Command([EditGotoField];"LAA");
@Command([EditPaste]);
@Command([ViewRefreshFields])
);"")

Der Nachteil ist nun noch, daß das Feld "BezugText" noch zu sehen ist. Wenn man das per HideWhen ausblendet, dann findet das EditGotoField das Feld nicht mehr. Also hab ich die Farbe des Feldes "BezugText" mit der Hintergrundfarbe der Maske belegt.  ;D Die Leerzeile umgehst Du, indem Du die Schriftgröße aus 1 setzt.
Achja, falls "BezugText" das erste Feld in der Maske ist, solltest Du bei einem anderen Feld, z.B. "LAA" die Option "Beim Öffnen Cursor in dieses Feld setzen" einschalten.

Das ist ein sehr komischer Workaround, aber funktioniert.  ;D Jedenfalls kommst Du damit hin, bis jemand anderes auf eine elegantere Lösung kommt.

Ciao,
Christian
« Letzte Änderung: 18.07.03 - 15:10:53 von Christian97 »

Glombi

  • Gast
Re:Feldwert setzen in neuem Dokument
« Antwort #9 am: 18.07.03 - 15:42:43 »
Hi Schnulli,

die Idee von Christian ist gut. Du könntest das Feld "BezugText" noch mit einer Verbergenformel

BezugText != ""

versehen. Dann wird das nur beim Erstellen angezeigt und durch
@Command([RefreshHideFormulas]);

vor dem @Command([ViewRefreshFields]) sofort verborgen.

Andreas


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:Feldwert setzen in neuem Dokument
« Antwort #10 am: 18.07.03 - 16:49:13 »
Hallo zusammen,

hab ich jetzt was verpaßt oder könnte es sein, daß der prinzipielle Ansatz falsch oder zumindest viel zu kompliziert ist ?

Annahme: Es gibt Doks vom Typ A, zu denen können Doks vom Typ B erstellt werden (worum es ja wohl geht). Wenn es nur um Dokumente vom Typ (also Maske) A geht - dazu gibt es auch eine Lösung, die ein anderes Prinzip verwendet - bitte einfach melden.

Der Button erzeugt aus der Ansicht oder aus der Maske A ein Dokument vom Typ B - dort steht also nur das Compose-Command.
Maske B hat die Property "Formeln übernehmen Werte aus gewähltem Dokument".
Das Feld "Bezug" soll immer den Wert "1" haben. Ergo kann man das in die Vorgabe des Feldes schreiben - damit ist es immer "1".
Das LAA-Feld soll den Doclink enthalten - da macht es meine Methode komplizierter:
In A gibt es ein Feld UNID, berechnet beim Anlagen und versteckt, mit der Formel @DocumentUniqueID.
B enthält ein Feld LAA, RTF, berechnet mit der Formel UNID - dort steht dann nach der Anlage der DocLink.

Abzusichern wäre noch, das Dok B nur angelegt werden kann aus Dok A, wenn dieses bereits gespeichert ist.

Wenn dieses Procedere denkbar ist - ich hab' da eben 'ne Quick&VeryDirty-DB gemacht, die genau diese Verfahren verwendet.

HTH,
Bernhard

Offline Schnulli

  • Aktives Mitglied
  • ***
  • Beiträge: 107
  • Geschlecht: Weiblich
  • Ich liebe dieses Forum!
Re:Feldwert setzen in neuem Dokument
« Antwort #11 am: 21.07.03 - 08:42:04 »
Einen wunderschönen Montagmorgen wünsche ich!  ;D
Vielen Dank für die Vorschläge, werde sie gleich mal durchtesten.

Noch mal zur "Grundidee":

Dokument A ist eine Arbeitsanweisung. (Was, warum, wer ...)
Dokument B ist ein auszufüllendes Formular.

So weit so gut. Also weiter:
Zu A kann ein B gehören, muß aber nicht.
Zu B kann ein A gehören, muß aber nicht! Aha:
D.h. Ich muss auch ein B erstellen können, das sich nicht auf ein A bezieht, deshalb der Akt. (Nicht zu allen Formularen gibt es eine Arbeitsanweisung)
Ansonsten hätte ich einfach ein Tochterdokument benützt.
Da wir aber später firmenintern (aus nem Intranet) auf diese Formulare zugreifen wollen, wollen wir diese in einer extra DB anlegen.
Wir wollen dem User aber auch die Möglichkeit geben, vom Formular direkt die zugehörige Arbeitsanweisung aufzurufen, falls ihm mal etwas unklar sein sollte.
Und doppelt schön wäre es dann noch, wenn im Dok A noch automatisch ein Link zu Dok B erstellt würde. Aber natürlich nur, wenn B auch gespeichert wurde. Und was ist, wenn man es löscht?
Daß da auch noch viele süße Genehmigungsworkflows dranhängen, muss ich Euch wohl nicht erklären, ... die hab ich aber schon soweit fertig.
Nur die Sache mit den Formularen steht noch aus.

Wie gesagt, probiere Eure Vorschläge nachher aus und vermelde dann entweder Erfolg oder Verzweiflung .....!!!  ;)

Schöne Woche zusammen und vielen Dank für Eure Mühe!
Schnulli
Iris
Notes 8.5.3
Notes-Formelsprache (keine Script-Kenntnisse)

Offline harkpabst_meliantrop

  • Senior Mitglied
  • ****
  • Beiträge: 463
  • Geschlecht: Männlich
  • I love!
    • Heute schon gelebt?
Re:Feldwert setzen in neuem Dokument
« Antwort #12 am: 22.07.03 - 18:03:29 »
Es gibt in R6 die neu Formel

@UpdateFormulaContext

die sollte dein Problem lösen (hoffe ich). Schau dir mal den Hilfeeintrag dazu an.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz