Autor Thema: felder aus unterschiedlichen Masken vergleichen  (Gelesen 3866 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
felder aus unterschiedlichen Masken vergleichen
« am: 04.06.04 - 15:15:22 »
Hallo Zusammen,

ich habe zwei Masken, beides Hauptdokumente
In der einen Maske "Dokument" stehen Felder drin wie "Start" "Datum_Start" "Ziel" "Datum_Ziel"
in der anderen Maske "Anfrage" stehen die felder "Start_a" "Datum_Start_A" "Ziel_A" "Datum_Ziel_A"

Nun möchte ich mittels einen Agenten prüfen, ob es übereinstimmende Werte von diesen zwei Masken gibt.

Hintergrund: Die Leute sollen die Möglichkeit haben eine Anfrage zu stellen und wenn die Werte aus dem Anfragenformular mit den Werten aus einem der Dokumente (Maske "Dokument" )übereinstimmen eine Mail bekommen sollen mit einem Dokumentenlink auf das Dokument in der Makse "Dokument"

Ist sowas möglich?
Wenn ja, wie?

danke Euch
Grüsse
Selin

« Letzte Änderung: 04.06.04 - 15:17:33 von Selin »
Windows XP
Notes 6.5

Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #1 am: 04.06.04 - 15:33:36 »
Hallo Selin,

die Masken haben diese Felder. Aber Du möchtest wohl 2 Dokumente miteinander vergleichen, die jeweils mit einem der beiden Masken erstellt wurden. Natürlich ist das möglich. mit Script geht ziemlich alles. :-)

Wenn ich es richtig verstanden habe, dann geben die User z.B. ein Datum ein und Du willst in den Dokumenten nach dem Datum suchen. Du holst Dir einfach alle Dokumente in eine NotesDocumentCollection und läufst in einer Schleife über die Dokumente. Bei jedem Doc fragst Du ab, mit welcher Maske es erstellt wurde und dann prüfst Du davon abhängig die Felder ab.

Es gibt mit Sicherheit eine elegantere Lösung, etwa eine NotesDatabase.Search, aber da könnte die Syntax für die Suche knifflig werden, je nachdem wieviele Felder Du abfragen möchtest.

Gruß und schönes WE
Markus

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #2 am: 04.06.04 - 16:04:10 »
Hi,

danke erstmal für deine Antwort
Es sind 4 Felder die ich abfrage
Mit Script kenne ich mich nicht so gut aus.
Ist das viel Code?
Kannst Du mir behilflich sein?

Danke + Gruß
Windows XP
Notes 6.5

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #3 am: 04.06.04 - 18:07:31 »
Mit Script kenne ich mich nicht so gut aus.

Ich denke das wäre auch in Formelsprache lösbar.

Du bastelst Dir eine Ansicht, 1 Spalte, in der Spalte die Formel
Feld1 + Feld2 + Feld3 + Feld4

Dann holst Du Dir über @DBColumn die Spalteninhalte und siehst mit @IsMember nach ob Dein String
_AktuellesDok := Feld1 + Feld2 + Feld3 + Feld4
da enthalten ist.

Script wäre zwar sicherlich eleganter  ::)

Sag an ob Dir das reicht, sonst kann ich gerne Tipps geben für eine Script-Umsetzung.
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Offline Markus Henke

  • Aktives Mitglied
  • ***
  • Beiträge: 143
  • Geschlecht: Männlich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #4 am: 05.06.04 - 17:30:41 »
Also 4 Felder kann man wirklich mit Formelsprache abfragen. Ich hab gedacht es wären viel mehr. :-)

Markus

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #5 am: 07.06.04 - 10:02:11 »
Hi,

habe es jetzt mal so versucht im Agenten

Liste:= @DbColumn( "":"" ; "" : "" ; Anfragen  ; 1 );
_AktuellesDok := @Text(von_D_A) + @Text(bis_D_A) + @Text(von_A) + @Text(nach_A);
@IsMember(_AktuellesDok;Liste);
@mail Send(...)


Hat aber nicht geklappt
Was mach ich falsch?
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #6 am: 08.06.04 - 11:07:12 »
habe mal versucht die Liste auszugeben.
Habe 3 Einträge in der Ansicht
mein Prompt gibt  dreimal den ersten Wert aus.

Liste := @DbColumn("":"No Cache"; ""; "Anfragen"; 1);
@Prompt([OK];"test";Liste);

Hat jemand ne Idee?

Danke + Gruß
Windows XP
Notes 6.5

Driri

  • Gast
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #7 am: 08.06.04 - 11:16:20 »
Hi,

habe es jetzt mal so versucht im Agenten

Liste:= @DbColumn( "":"" ; "" : "" ; Anfragen  ; 1 );
_AktuellesDok := @Text(von_D_A) + @Text(bis_D_A) + @Text(von_A) + @Text(nach_A);
@IsMember(_AktuellesDok;Liste);
@mail Send(...)


Hat aber nicht geklappt
Was mach ich falsch?

Da dürfte auch was fehlen. Es wird geprüft und dann direkt ne Mail versendet, ohne daß das Ergebnis der Prüfung berücksichtigt wird.

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #8 am: 08.06.04 - 11:21:57 »
und wie würde das richtig aussehen?
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #9 am: 08.06.04 - 12:04:34 »
hier geht er alle 3 Einträge in _aktellesDok durch
aber die Liste gibt immer nur den ersten Eintrag aus
und obwohl die erste Prüfungd er Werte in _aktuellesDok und Liste nicht übereinstimmen gibt er am ende ein ja aus

_AktuellesDok := @Text(von_D_A) + @Text(bis_D_A) + @Text(von_A) + @Text(nach_A);
@Prompt([OK];"aktuellesdok";_AktuellesDok );

Liste :=  @DbColumn( "":"No Cache" ; "" : "" ;" Anfragen_Pruef" ; 1 );
@Prompt([OK];"liste";Liste );

@If(@IsMember(_AktuellesDok;Liste) = 1;
@Prompt([OK];"ja";"ja" );
@Prompt([OK];"nein";"nein" ))


Bitte um Eure Hilfe
Windows XP
Notes 6.5

Driri

  • Gast
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #10 am: 08.06.04 - 13:00:03 »
Hmm...also bei mir funktioniert das ohne Probleme. Ich hab zum Testen jetzt allerdings nur Textfelder benutzt, aber da Du ja @Text verwendest, sollte das auch klappen.

Was mir aufgefallen ist, im @DBColumn ist vor dem Viewnamen ein Leerzeichen.

Hast Du in der View die Werte auch mit @Text(xyz) verkettet ?

Glombi

  • Gast
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #11 am: 08.06.04 - 13:58:40 »
Du solltest anstelle von
@Prompt([OK];"liste";Liste );
besser folgendes benutzen, um alle Elemente anzuzeigen:
@Prompt([OKCancelList];"liste";"";"";Liste );

Der einfache OK Prompt zeigt immer nur den 1. Eintrag an.

Andreas


Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #12 am: 08.06.04 - 14:12:44 »
@Driri

Hmm...also bei mir funktioniert das ohne Probleme. Ich hab zum Testen jetzt allerdings nur Textfelder benutzt, aber da Du ja @Text verwendest, sollte das auch klappen.

Was mir aufgefallen ist, im @DBColumn ist vor dem Viewnamen ein Leerzeichen.

Hast Du in der View die Werte auch mit @Text(xyz) verkettet ?

ja, habe die Ansicht "Anfragen_Pruef" und "Anfragen" mit @Text() verkettet

@Glombi

Zitat
Du solltest anstelle von
@Prompt([OK];"liste";Liste );
besser folgendes benutzen, um alle Elemente anzuzeigen:
@Prompt([OKCancelList];"liste";"";"";Liste );

Der einfache OK Prompt zeigt immer nur den 1. Eintrag an.

habe ich jetzt gemacht aber die Liste bleibt leer.

Habe folgendes
Liste :=  @DbColumn( "":"No Cache" ; "" : "" ;"Anfragen_Pruef" ; 1 );
@Prompt([OKCANCELLIST];"liste";"";"";_Liste );

_AktuellesDok := @Text(von_D_A) + @Text(bis_D_A) + @Text(von_A) + @Text(nach_A);
@Prompt([OKCANCELLIST];"aktuellesdok";"";"";_AktuellesDok );

Den Agenten führe ich auf der Ansicht "Anfragen_Pruef" aus
"liste" bleibt leer
aktuellesdok wird aber richtig angeziegt

Windows XP
Notes 6.5

Driri

  • Gast
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #13 am: 08.06.04 - 14:19:01 »
Du benutzt einmal Liste und einmal _Liste.

Und warum führst Du den Agenten aus der gleichen Ansicht aus, auf die das @DBColumn zugreift ? Ich versteh den Sinn da noch nicht so ganz.

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #14 am: 08.06.04 - 14:20:41 »
ou, das mit _Liste hab ich total übersehen und den Agenten führe ich natürlich auf der Ansicht "Anfragen" aus.
War ein Schreibfehler, sorry
Werde es mal ausprobieren
Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #15 am: 08.06.04 - 14:25:36 »
ok die Listen werden richtig ausgegeben.
Wie kann ich jetzt diese Listen miteinander vergleichen.
Habe @ismember(_Liste;_AktuellesDok)
ausprobiert mit einer if Abfrage

@if(@ismember(_Liste;_AktuellesDok);
@prompt([OK];"ja";"ja");
@prompt([OK];"nein";"nein"))


es gibt werte die in beiden Listen vorkommen aber trotzdem kommt immer nein als Ergebnis raus
« Letzte Änderung: 08.06.04 - 14:28:55 von Selin »
Windows XP
Notes 6.5

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #16 am: 08.06.04 - 14:30:20 »
Schau' Dir mal die Syntax von @IsMember an.
Und seit wann ist _AktuellesDok eine Liste ?

Driri

  • Gast
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #17 am: 08.06.04 - 14:30:52 »
Vertausch mal in der @IsMember die Werte. So prüfst Du, ob _Liste in _AktuellesDok enthalten ist, da muß dann wohl auch "nein" bei rauskommen.

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #18 am: 08.06.04 - 14:33:05 »
Zitat
Schau' Dir mal die Syntax von @IsMember an.

Aus der Designer Hilfe

@IsMember( Text ; Textliste )
@IsMember( Textliste1 ; Textliste2 )

und meine beiden Variablen sind Textlisten

Zitat


Und seit wann ist _AktuellesDok eine Liste ?

Liste :=  @DbColumn( "":"No Cache" ; "" : "" ;"Anfragen_Pruef" ; 1 );
@Prompt([OKCANCELLIST];"liste";"";"";_Liste );

_AktuellesDok := @Text(von_D_A) + @Text(bis_D_A) + @Text(von_A) + @Text(nach_A);
@Prompt([OKCANCELLIST];"aktuellesdok";"";"";_AktuellesDok );

Windows XP
Notes 6.5

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:felder aus unterschiedlichen Masken vergleichen
« Antwort #19 am: 08.06.04 - 14:36:20 »
@Driri

hatte ich vorhin auch schon gemacht und es hatte nicht funktioniert.
Lag aber an der falschen Variable mit _Liste

also nach dem Tauschen der Werte in @ismember klappt es nun

danke Euch für Eure Mühen

Ganz liebe Grüße
Selin
Windows XP
Notes 6.5

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz