Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: macom111 am 24.09.03 - 15:25:50
-
Hallo zusammen,
habe folgende 2 Aufgabenstellungen:
1.
2 Felder: "Gebiet_1" (Kombinationsfeld) und "Gebiet" (Textfeld).
In der "Eingabeumsetzung" von "Gebiet_1"
steht folgende Formel:
@If (Gebiet = "1"; "in Gebiet";
Gebiet = "2"; "Auslieferung";
Gebiet = "3"; "Einlieferung"; "")
Das ganze funktioniert auch wunderbar.
Ich möchte aber auch den umgekehrten Fall erreichen.
Also habe ich ebenfalls in die "Eingabeumsetzung" von "Gebiet"
folgende Formel geschrieben:
@If (Gebiet_1 = "in Gebiet"; "1";
Gebiet_1 = "Auslieferung"; "2";
Gebiet_1 = "Einlieferung"; "3"; "")
Auch diese Formel funktioniert Einwandfrei.
Das ganze hat nur einen Haken: Jede Formel funktioniert nur für sich alleine.
Ich kann also nur eine von beiden "Eingabeumsetzungen" anwenden.
Ich benötige aber beide gleichzeitig. Das heißt: Egal, welches Feld ich zuerst ausfülle - das andere soll automatisch ergänzt werden.
2.
2. Felder: "Neukunde_LOGIC" (Textfeld) und "Neukunde" (Kontrollkästchen).
[Wenn in "Neukunde_LOGIC" die Zahl 1 steht, soll das Feld "Neukunde" markiert (x) werden.
Bei der Zahl 0 soll das Feld leer bleiben].
Das ganze [....] auch wieder umgekehrt.
Hat jemand eine Lösung?
Danke schon mal im vorraus.
???
Siggi
-
Hi,
zu 1)
Du kannst einfach die @If-Formel ergänzen, z.B. für Feld "Gebiet" :
@If(Gebiet=""; @If(Gebiet_1 = "in Gebiet"; "1"; Gebiet_1 = "Auslieferung"; "2"; Gebiet_1 = "Einlieferung"; "3"; ""); Gebiet)
D.h. wenn das Feld leer ist greift die Eingabeumsetzung, ansonsten bleibt der Inhalt von Gebiet erhalten.
-
Ich denke mal, hier könnte sich die Katze in den Schwanz beissen ...
Wenn man zum Bleistift auf Gebiet = "" prüft, heißt das aber auch im Umkehrschluß: Steht schon was drin im Feld und wird das andere geändert, dann haben Änderungen in Gebiet_1 keine Auswirkung mehr auf Gebiet.
Das Ganze ist ein Logikproblem, weniger eins des Codings. Wenn ich heute abend noch Zeit finde, dann ...
So long,
Bernhard
-
@Bernhard :
Stimmt, das hatte ich übersehen. Is eben immer gut, wenn da noch andere drüberschauen ;)
-
Wenn wir hier im Forum private Ordner hätten, dann hätte ich bestimmt auch einen gut gefüllten mit dem Titel "Wo Bernhard zu kurz gedacht hatte" ;-)
Ich muß heute abend mal schauen, wie ich so ein ähnliches Problem bei mir mal gelöst habe, das führte m.E. aber zu einem ganz anderen Verfahren - grübel grübel ...
Erstmal muß ich noch 'ne Doku fertig überarbeiten, die ein unmotivierter "Stift" verzapft hat. Kann also noch dauern ;-(
Bernhard
-
Ich verstehe den Sinn der Eingabeumsetzung nicht ganz:
Sobald beide Felder leer sind, kann ich nix mehr eingeben, da er mir nach jeder Eingabe den Wert wieder löscht.
Um das zu umgehen könntest Du die Formel ändern:
@If (Gebiet = "1"; "in Gebiet";
Gebiet = "2"; "Auslieferung";
Gebiet = "3"; "Einlieferung"; Gebiet_1 )
Damit wäre das Problem aber nicht behoben. Nehmen wir an, in Gebiet steht "1" und in Deiner Liste "in Gebiet". Das ist genauso festgefahren, Du kannst später keine Änderungen mehr durchführen, da die Eingabeumsetzung jedes Feldes das verbietet.
Ein drittes Feld hilft:
Gebiet_1:
@If (hiddenGebiet = "1"; "in Gebiet";
hiddenGebiet = "2"; "Auslieferung";
hiddenGebiet = "3"; "Einlieferung";
@If ( Gebiet_1 = "in Gebiet"; @SetField( "hiddenGebiet"; "1" );
Gebiet_1 = "Auslieferung"; @SetField( "hiddenGebiet"; "2" );
@SetField( "hiddenGebiet"; "3" )
)
)
Gebiet:
@If (hiddenGebiet = "1"; "1";
hiddenGebiet = "2"; "2";
hiddenGebiet = "3"; "3";
@If( Gebiet = "1"; @SetField( "hiddenGebiet"; "1" );
Gebiet = "2"; @SetField( "hiddenGebiet"; "2" );
@SetField( "hiddenGebiet"; "3" )
)
)
hiddenGebiet:
nix
Ich habe das allerding leider noch nicht getestet, aber so oder ähnlich sollte es hinhauen.
Ich denke, Dein zweites Problem sollte damit auch erschlagen sein (?)
-
@dottore
Das ganze ist ein bisschen kompliziert, aber ich will versuchen, Dir den Sinn der Eingabeumsetzung kurz zu erklären.
Schau dir doch bitte folgendes Thema von mir an:
Migration von Access97 nach Notes
« am: 11.09.03 - 18:09:41 ».
Nun, mittlerweile weiß ich, wie man eine Tabelle aus einer Access DB in ein .nsf DB migriert (werde ich unter "Migration von Access97 nach Notes" noch erläutern). Leider werden manche Felder aus Access nicht richtig übernommen. Z.B. wird der Inhalt eines Kombinationsfeldes (in Gebiet, Auslieferung, Einlieferung) im Access in einer eigenen Tabelle abgelegt und nicht wie in Notes im Feld selbst (Zumindest ist das in der mir vorliegenden Access DB so).Stattdessen werden dort nur ID-Nummern angezeigt, da in Access jedem Begriff eine ID zugeordnet ist (ID1 = in Gebiet, ID2 = Auslief...u.s.w). In diesem Fall wird bei der Migration anstatt eines Kombinationsfeldes ein Texfeld erzeugt, indem die ID angezeigt wird. Um der ID den dazugehörigen Begriff zuzuordnen, habe ich das 2.te Feld "Gebiet_1"angelegt. Da es sich bei dieser DB um ca 2500 Datensätze handelt kann ich mit meiner Formel
@If (Gebiet = "1"; "in Gebiet";
Gebiet = "2"; "Auslieferung";
Gebiet = "3"; "Einlieferung"; "")
der ID den richtigen Begriff zuordnen. Wenn ich aber zuerst den Begriff eingebe, wird nicht die richtige ID zugeordnet. Dazu müßte ich die Formel löschen und die andere Formel im Feld "Gebiet" eintragen. Deshalb benötige ich eine Lösung, bei der es egal ist, welches Feld ich zuerst ausfülle. Dem anderen soll automatisch die, der richtige ID bzw. Begriff zugeordnet werden.
Ich hoffe, meine Erklärung war einigermaßen verständlich.
Leider funktioniert auch Deine Formel nicht richtig.
Ich sehe schon: Das ist `ne harte Nuß, aber ich hoffe doch noch auf eine Lösung.
???
Siggi
-
Hi Siggi,
ist die Access-Migration eine einmalige Geschichte oder kommt die öfters vor?
Wenn einmalig, dann hätte ich eine schnelle Lösung: Würde ich simpel über Excel triggern. Also Copy&Paste von Access in Excel, dort in die Spalten eine Wenn-Formel, entsprechend runterkopieren, Formeln als Werte ersetzen, etc., und dann hast Du saubere Werte im Notes.
TMC
-
Hi,
versuch mal folgendes:
Umsetzung Gebiet
@If( Gebiet != ""; Gebiet;
Gebiet_1 = "In Gebiet"; "1";
Gebiet_1 = "Auslieferung"; "2";
Gebiet_1 = "Einlieferung"; "3"; ""
)
-----------------------------------------
Umsetzung Gebiet_1
@If( Gebiet_1 != ""; Gebiet_1;
Gebiet = "1"; "In Gebiet";
Gebiet = "2"; "Auslieferung";
Gebiet = "3"; "Einlieferung"; ""
)
bei mir hats gefunzt
Gruss,
dottore
-
Wenn man zum Bleistift auf Gebiet = "" prüft, heißt das aber auch im Umkehrschluß: Steht schon was drin im Feld und wird das andere geändert, dann haben Änderungen in Gebiet_1 keine Auswirkung mehr auf Gebiet.
Siehe oben ...
Bernhard
-
Hallo TMC,
wenn ich das ganze hier hinbekomme, werden es 5-6 AccessDB sein, die ich Migrieren möchte. Wobei sich in der jetzigen AccessDB eine Tabelle mit ca. 50 Spalten befindet. Ich denke aber, daß ich mir Deine Lösung in jedemfall ansehen sollte. Also: immer rüber damit, bin für jede Hilfe dankbar.
:D
Siggi
-
Hallo dottore,
hab´s gerade getestet und es ist wie Bernhard sagt: Steht schon was drin, kann ich hinterher keine Änderung mehr vornehmen. Ich müßte also das Dokument neu erstellen.
Habe aber Deinen gestrigen Vorschlag getestet (mit 3.tem Feld "hidden") was auch nicht so ganz funktioniert. Ich habe die beiden Formeln folgendermaßen geändert:
Gebiet_1:
@If (Gebiet = "1"; "in Gebiet";
Gebiet = "2"; "Auslieferung";
Gebiet = "3"; "Einlieferung";
@If ( Gebiet_1 = "in Gebiet"; @SetField( "Gebiet"; "1" );
Gebiet_1 = "Auslieferung"; @SetField( "Gebiet"; "2" );
Gebiet_1 = "Einlieferung"; ""; @SetField( "Gebiet"; "3" )))
Gebiet:
@If (Gebiet = "1"; "1";
Gebiet = "2"; "2";
Gebiet = "3"; "3";
@If( Gebiet = "1"; @SetField( "Gebiet"; "1" );
Gebiet = "2"; @SetField( "Gebiet"; "2" );
Gebiet = "3"; ""; @SetField( "Gebiet"; "3" )))
Das funktioniert fast so wie ich es brauche. Nur: Wenn ich im Feld "Gebiet_1" den Begriff eines bereits gespeicherten Dokumentes ändern möchte, wird diese Änderung nicht mehr angenommen. Andersrum funktioniert es. Also: Nachträgliches ändern der ID im Feld "Gebiet" ändert auch den Begriff im Feld "Gebiet_1". Wo liegt bloß der kleine Fehler?
???
Siggi
-
Du hast mir ja schon eine PM geschrieben dass ich nochmal wegen Excel helfen soll.....
OK, was ist denn die Ausgangssituation, wenn Du Access nach Excel kopierst?
Ich rate mal: Du hast z.B. u.a. folgende Zeilen/Spalten:
(http://www.atnotes.de/attachments/excel_55.gif)
D.h. einmal steht was in Spalte A, und dann mal wieder in Spalte B und das muss vereinheitlicht werden?
TMC
-
Du hast es genau richtig erkannt!
Siggi
-
OK,
ich bleibe beim Beispiel wie vorher.
In Zelle C2 kopierst Du =WENN(A2="";(WENN(B2=1;"in Gebiet";WENN(B2=2;"Auslieferung";WENN(B2=3;"Einlieferung"))));A2)
Und in Zelle D2 =WENN(B2="";(WENN(A2="in Gebiet";1;WENN(A2="Auslieferung";2;WENN(A2="Einlieferung";3))));B2)
Dann Werte nur noch runterkopieren.
Habe das als Excel auch mal attached.
Nun nur noch alles markieren, STRG+C, dann Menü / Bearbeiten / Inhalte Einfügen / Text.
That's it.
Sind beide Ausgangszellen leer, so schreibt Excel "Falsch" in die Ergebniszellen. Aber auch das kann man noch beeinflussen.
TMC
** EDIT **
In Notes Importieren würd ich dann allerdings nur 1 Spalte, die 2. Spalte kannst Du ja dann simpel in einem Feld berechnen.
-
Vielen Dank TMC,
das sieht sehr gut aus. Ich werde mich Morgen gleich
drübermachen.
:D
Gruß Siggi