Autor Thema: Zwei Textfelder vergleichen.  (Gelesen 4012 mal)

Offline chris2212

  • Aktives Mitglied
  • ***
  • Beiträge: 162
  • Geschlecht: Männlich
Zwei Textfelder vergleichen.
« am: 30.05.05 - 16:13:35 »
Hallo,

ich habe in einer Setup-DB ein Dokument auf
dem in diesem Format

Agentina
Algeria
Andorra
Angola
Argentina
Australia
usw.

der Wert Country hinterlegt ist.

Damit beim erfassen neuer Dokumente (Adressen/Kontakte)
der jeweilige CountryCode automatisch vorgegeben wird,
muss ich nach dem speichern dem Anwender beim erfassen
einer neuen Country die Möglichkeit geben damit er für die
neu eingetragene Country ein neues Dokument mit
der Landesvorwahl erstellen kann.

Ich muss also beim öffnen die aktuellen Werte in einem Text-Feld
zwischenspeichern und beim PostSave-Event nun beide Liste vergleichen.

Wenn ein neuer Eintrag hinzugefügt wurde soll automatisch ein Dialog
zur Erfassung eines neuen Dokuments angezeigt werden.

Meine Frage ist, wie kann ich mit LS feststellen ob bzw. welcher Eintrag
neu hinzugefügt wurde. Die Feldwerte im CountryFeld (Setup Document)
sind alphabetisch sortiert, die Werte werden aber nicht automatisch
sortiert das muss der Anwender mit einem Button selbst machen.

Ich habe hier im Forum und in der Online Hilfe schon geschaut aber, was
nicht bedeutet das ich nicht evtl. nach dem falschen Stichwort gesucht habe,
leider nichts passendes gefunden.

Brauche „nur“ die LS-Funktion mit der ich das machen kann :-)


Vielen Dank !

Gruß
Chris
« Letzte Änderung: 30.05.05 - 16:15:34 von chris2212 »

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
zum Bleistift mit ....
« Antwort #1 am: 30.05.05 - 16:52:52 »
If Isnull(Arraygetindex(DeinFeldmitdenvorhandenenWertealsVairant,DeinneueingetragenerFeldwert)) Then
Mach doch mal ein neues Dokument auf
end if
Voraussetzung ist, das du das Config Feld als Variant oder Stringlist zurückkriegst.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline chris2212

  • Aktives Mitglied
  • ***
  • Beiträge: 162
  • Geschlecht: Männlich
Re: Zwei Textfelder vergleichen.
« Antwort #2 am: 30.05.05 - 17:03:12 »
Hallo Thomas,

danke für die schnelle Antwort.

Aber irgendwie versteh ich nicht was Du meinst :-(

Ich habe ein TextFeld in dem

Agentina
Algeria
Andorra
Angola


die Werte so abgelegt sind, wenn der User einen neuen Eintrag hinzufügt


"Aktive Liste"                   "Liste die beim QueryOpen gespeichert wird"
Agentina                          Agentina
Algeria                             Algeria
Andorra                           Andorra
Angola                             Angola
Germany

Beim PostSave muss ich doch jetzt irgendwie beide Listen vergleichen können
und feststellen können welcher Eintrag neu in der aktiven Liste hinzugefügt wurde.

Dieser neue Wert soll dann autom. (als computedValue) im Dialog zur Erfassung
der Ländervorw. dargestellt werden. Was evtl. ein Problem werden kann, ist wenn ein
User mehr als eine neue Country hinzufügt.

Gibt es ne LS-Funktion die zwei Text-Felder miteinander vergleichen kann und mir
die neuen Werte anzeigt?


Danke & Gruß
Chris


Glombi

  • Gast
Re: Zwei Textfelder vergleichen.
« Antwort #3 am: 30.05.05 - 17:20:28 »
Das ginge bspw. mit einer Forall Schleife.

Ich persönlich mache das aber mit der guten alten Formelsprache und einem Evaluate:

@Trim(@Replace(Liste;ListeAusSetup;""))
liefert die neuen Elemente

ArrayReplace gibt es auch in Script. D.h. es sollte auch damit gehen:
ArrayReplace( sourceArray, compareArray, replaceArray )

Andreas
« Letzte Änderung: 30.05.05 - 17:22:24 von Glombi »

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Zwei Textfelder vergleichen.
« Antwort #4 am: 30.05.05 - 17:26:54 »
Erste Frage Multivalue ja oder nein?
zweite Frage ConfigDokument Multivalue Ja oder Nein?

Wenn du also ein Feld W in deinem aktuellen Dokumente hast und in diesem Feld die Werte a, b, c auswählst und als neuen Wert X einträgst und dieses Feld Mulitvalue ist,  und du ein Konfigurationsdokument hast in dem das Schlüsselfeld U ebenfalls Multivalue ist und die Werte a, b, c, d, e, f, und g enthält, dann kannst du über eine Hilfskonstruktion das Item in ein Variant V lesen und diese Variant dann wie ein Array behandeln:

V=Configdoc.getfirstitem("Deinfeldname")

For all Z in W.values
If Isnull(Arraygetindex(V,Z)) Then
' ich hätte jetzt bitte gerne ein neues Dokument da
end if
End Forall
Ende erste Variante.

Wenn das was du da reinkriegst (aus deinen Konfigurationsdokument) ein reiner String ist dann wird es unter umständen ein wenig aufwendiger.
Erst einmal die einfachere Version :
Instr kriegt raus ob ein String a in einem anderen String B enthalten ist
if instr(1,StringB, StringA,0)>0 then
' tu was
end if
Das kann dazu verwendet werden wenn du exakt einen neuen Wert eintragen kannst. Dein Feld also kein Multivalue Feld ist.
Ende zweite Variante

Wenn du aber in beiden Feldern strukturierte TextStrings (keine Multivalue Werte) hast und die Trenner zwischen deinen einzelnen Feldwerten definiert und bekannt sind, dann wird es aufwendiger. Dann musst du erst einmal mit Evaluate(@explode...) oder mit Split dafür sorgen das beide Felder aufgeteilt werden und dann kannst du anschließend hergehen und die Methode aus Version1 benutzen um zu vergleichen.

Allerdings hast du dann auch irgendwo in deinem Design der Datenbank einen gewaltigen Bock geschossen.

Thomas
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Zwei Textfelder vergleichen.
« Antwort #5 am: 30.05.05 - 17:27:33 »
Ergänzung zu Glombi:

... und dazu noch einen Fulltrim um die leeren loszuwerden
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Zwei Textfelder vergleichen.
« Antwort #6 am: 30.05.05 - 17:28:57 »
Noch ne Ergänzung. Andreas hat auch recht, aber nur dann wenn es sich tatsächlich um Mulitvalue Felder handelt. Das geht aus deinen Beschreibung nämlich nicht hervor.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz