Autor Thema: Listen vergleichen  (Gelesen 14196 mal)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #20 am: 07.12.11 - 13:10:03 »
Was soll eigentlich das @Text bei Liste1:=@Text(_result) ?

Das hat zwar mit dem eigentlichen Problem nichts zu tun, ist aber Quatsch.

Bernhard

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #21 am: 07.12.11 - 13:15:38 »
Wahrscheinlich hat damit mal jemand eine Fehlermeldung umgangen, dann wird der Fehler in einen Text umgewandelt und kann weiterverarbeitet werden. Und solange kein Mitarbeiter "Eintrag im Index nicht gefunden" heißt, klappt das auch noch. Schön ist natürlich etwas anderes.

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Listen vergleichen
« Antwort #22 am: 07.12.11 - 18:29:17 »
_result := @DbLookup("";"Server:"names.nsf";"($Users)";"ug-DeptManager";"members");
_result2:= @DbLookup("";"Server":"names.nsf";"($Users)";"ug-SectionManager";"members");


bei result fehlt bei "Server das hintere Hochkommata.
Das kann doch gar nicht funktionieren, oder?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #23 am: 07.12.11 - 20:32:44 »
bei result fehlt bei "Server das hintere Hochkommata.
Das kann doch gar nicht funktionieren, oder?
Das war die Reaktion auf meinen Mecker, dass Servernamen nicht hart verdrahtet werden sollten, daraufhin wurden im Beitrag die Servernamen durch "Server" ersetzt, was keinen Deut besser ist (da es immer noch hart ist und nur anonymisiert wurde). Dabei hat sie sich dann auch noch verschrieben...

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #24 am: 08.12.11 - 14:11:29 »
Hallo Peter
ich habe deinen Rat befolgt und habe nun folgendes gemacht :


@If(as_department != ""; _result3:= @DbLookup("";"Server":"names.nsf";"($Users)";as_department;"members");"");
Augabe passt.

_result:= @DbLookup("";"Server":"names.nsf";"($Users)";"ug-DeptManager";"members");
Ausgabe passt

_result2:= @DbLookup("";"Server":"names.nsf";"($Users)";"ug-SectionManager";"members");
Ausgabe passt.

_temp:=_result+_result2;
_temp;

Ausgabe passt.

Bis hier hin passt das was mir das System zurückgibt,
aber ab hier nicht mehr.

_ergeb:="";

@For(i :=1;
   i <= @Elements(_result3) & _ergeb = "";
   i := i +1;
   result := @If(
      @IsMember(_result3; _temp); _result3 ; ""
   )
);

_ergeb;

Das _ergeb bleibt leer
warum???
« Letzte Änderung: 08.12.11 - 14:31:31 von help »
Liebe Grüße
Beatrix (Bea)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #25 am: 08.12.11 - 14:23:27 »
Hier passt wieder einiges nicht:

Was ist _result3? Das fragst Du nur ab, weist ihm aber nie einen Wert zu.
Deine Schleifenvariable inkrementierst Du nur, wenn i < als Anzahl der _result3-Elemente. Das wird natürlich nie was.
Zum Schluss lässt Du Dir _ergeb ausgeben. Das ist aber dank Deiner Zuweisung eh leer.

Bernhard

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #26 am: 08.12.11 - 14:29:17 »
Hallo Bernhard

 in _result3 stehen alle Mitarbeiter die uber das Feld as_department abgefragt wurden

@If(as_department != ""; _result3:= @DbLookup("";"Server":"names.nsf";"($Users)";as_department;"members");"");

Wenn as_department (comobox) Verkauf ausgewählt hat dann stehen in _result3 alle Mitarbeiter des Verkaufs.

somit ist _result3 nicht leer und je nach as_department stimmt die Ausgabe, wenn ich mit _result3 ausgeben lasse.

 
Liebe Grüße
Beatrix (Bea)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #27 am: 08.12.11 - 14:31:30 »
Ich würde da anders herangehen.

_result1 ist die Liste der Manager A
_result2 ist die Liste der Manager B
_result3 ist die Liste der Abteilungsmitarbeiter

Du willst als Ergebnis die Manager A und B der Abteilung haben.

_tmp1 := @Trim (@Replace (_result3; _result1; "")); -> Abteilungsmitarbeiter ohne Manager A
_tmp2 := @Trim (@Replace (_tmp1; _result2; "")); -> Abteilungsmitarbeiter ohne Manager A und ohne Manager B
@Trim (@Replace (_result3; _tmp2; "")); -> Manager A und Manager B der Abteilung

Einziger Haken an dem ganzen Konstrukt: Wenn sich in den Gruppen nicht nur Mitarbeiter, sondern auch Gruppen befinden, klappt das nicht (hat aber nichts mit meiner Formel, sondern mit Deinem Ansatz zu tun)
« Letzte Änderung: 08.12.11 - 14:33:04 von Peter Klett »

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #28 am: 08.12.11 - 14:37:04 »
Danke Peter

aber ist das jetzt der Querschnitt von allen? Denn ein Benutzer fehlt mit bei der ausgabe der in der liste _result3 und auch in result ist sonst sind alle da die da sein müssten.
Nein da werden keine Gruppen eingetragen
« Letzte Änderung: 08.12.11 - 14:41:36 von help »
Liebe Grüße
Beatrix (Bea)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #29 am: 08.12.11 - 14:46:53 »
Was verstehst Du unter Querschnitt?

Ich habe aus der Liste der Abteilungsmitarbeiter erst alle Manager A und B entfernt. Bleibt übrig eine Liste der Mitarbeiter, die weder Manager A noch B sind. Wenn dann aus der Liste aller Abteilungsmitarbeiter alle die entfernt werden, die weder Manager A noch B sind, müssen alle Manager A und B der Abteilung übrig bleiben.

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #30 am: 08.12.11 - 14:53:24 »
dann ist es nicht richtig sorry vielleicht habe ich es falsch interpretiert.


_result3 ->liste der arbeiter

gebe mir die Namen der arbeiter welche in _result2 oder in _result sind

 (so bekomme ich dann eine Liste der Vorgesetzten aus der Abteilung, es kann mehr als einer sein er muss nur in Manager A oder Manager B sein)

deswegen hatte ich die For schleife gemacht.

im Grunde würde ich sagen

Liste 1 ->alle Arbeiter aus der Gruppe as_department (aus der Combobox ausgewählt)

ergebnis:="";

For(i=1;i< als Liste1;i++)

ergebnis:=If( ist i nun in der ManagerA oder ManagerB dann gebe eine neue Liste mit diesen namen aus



so in etwa
« Letzte Änderung: 08.12.11 - 15:07:49 von help »
Liebe Grüße
Beatrix (Bea)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #31 am: 08.12.11 - 15:03:30 »
Genau das mache ich (ginge sicher auch etwas kürzer, wollte es aber verständlich darstellen).

Also nochmal mit Beispieldaten

_result1 -> "A" : "B"
_result2 -> "C" : "D"
_result3 -> "A" : "D" : "E" : "F"

_tmp1 := @Trim (@Replace (_result3; _result1; "")); -> Abteilungsmitarbeiter ohne Manager A

_tmp1 := @Trim (@Replace ("A" : "D" : "E" : "F"; "A" : "B"; "")); -> "D" : "E" : "F"


_tmp2 := @Trim (@Replace (_tmp1; _result2; "")); -> Abteilungsmitarbeiter ohne Manager A und ohne Manager B

_tmp2 := @Trim (@Replace ("D" : "E" : "F"; "C" : "D"; "")); -> "E" : "F"


@Trim (@Replace (_result3; _tmp2; "")); -> Manager A und Manager B der Abteilung

@Trim (@Replace ("A" : "D" : "E" : "F"; "E" : "F"; "")); -> "A" : "D"

Irgendetwas falsch dabei?

EDIT: Wenn Du das allerdings nur stumpf kopiert hast, ist Dir sicher nicht aufgefallen, dass ich Deine Variable _result mit einer 1 versehen habe. Mir wäre wichtig, dass Du verstehst, was Du tust, und nicht nur kopierst.

"Nicht kopieren, kapieren" (Daniel Goeudevert)
« Letzte Änderung: 08.12.11 - 15:10:16 von Peter Klett »

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #32 am: 08.12.11 - 15:09:05 »
nein eigendlich das was ich brauche, und trotzdem fehlt mir ein Manager hmm



dann ist es nicht richtig sorry vielleicht habe ich es falsch interpretiert.


_result3 ->liste der arbeiter

gebe mir die Namen der arbeiter welche in _result2 oder in _result sind

 (so bekomme ich dann eine Liste der Vorgesetzten aus der Abteilung, es kann mehr als einer sein er muss nur in Manager A oder Manager B sein)

deswegen hatte ich die For schleife gemacht.

im Grunde würde ich sagen

Liste 1 ->alle Arbeiter aus der Gruppe as_department (aus der Combobox ausgewählt)

ergebnis:="";

For(i=1;i< als Liste1;i++)

ergebnis:=If( ist i nun in der ManagerA oder ManagerB dann gebe eine neue Liste mit diesen namen aus



so in etwa
Liebe Grüße
Beatrix (Bea)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #33 am: 08.12.11 - 15:13:51 »
"in etwa" gibt es in der Programmierung prinzipiell nicht.

An sich wäre doch die kürzeste Form mit dem Permutationsoperator:

Arbeitermanager := Arbeiter *= ManagerA : ManagerB

Bernhard

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #34 am: 08.12.11 - 15:21:11 »
UI, der ist schick, ist mir bisher noch nicht zwischen die Ohren geraten ...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #35 am: 08.12.11 - 15:25:35 »
Ich verwende sowas gerne z.B. in Hide-Whens:
!(@UsernamesList *= "[Administrator]" : "[Supervisor]" : "[Confurator]")

@Functions und -Operatoren auf Notes-Listen sind schon eine tolle Sache!

Bernhard

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #36 am: 08.12.11 - 15:56:00 »
Ich möchte mich bei erst einmal für Eutre Hilfe bedanken.
Es hat jetzt geklappt :-)

Hallo Berhard
deine variante ist schön kurz, aber ich denke das ich im Moment nur froh bin das es läuft :-)

Liebe Grüße
Beatrix (Bea)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #37 am: 08.12.11 - 16:03:11 »
Und wie sieht jetzt der fertige Code aus, Bea? Den einen oder anderen Tipp werden wir da bestimmt noch geben können. Und was man sich im frühen Statdium gar nicht erst angewöhnt ...

Bernhard

Offline help

  • Junior Mitglied
  • **
  • Beiträge: 66
  • Geschlecht: Weiblich
Re: Listen vergleichen
« Antwort #38 am: 08.12.11 - 16:13:53 »
Hallo Berhard
hier der fertige code aber ohne eure Hilfe wäre ich glaube ich verzweifelt danke :-)



@If(as_department != ""; _result3:= @DbLookup("";"Server":"names.nsf";"($Users)";as_department;"members");"");
_result:= @DbLookup("";"Server":"names.nsf";"($Users)";"AG-SEC-Managment";"members");
_result1:= @DbLookup("";"Server":"names.nsf";"($Users)";"AG-DEP-Managment";"members");
_result2:= @DbLookup("";"Server":"names.nsf";"($Users)";"AG-DeputyDepManagement";"members");

_tmp1 := @Trim (@Replace (_result3; _result; ""));
_tmp2:= @Trim (@Replace (_tmp1; _result1; ""));
_tmp3:= @Trim (@Replace (_tmp2; _result2; ""));
_tmp4 := @Trim (@Replace (_result3; _tmp3; ""));
@Name([CN];_tmp4)
Liebe Grüße
Beatrix (Bea)

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: Listen vergleichen
« Antwort #39 am: 08.12.11 - 16:20:26 »
Abgesehen davon, dass Bernhards *= Operator viel eleganter ist, sieht das ja ganz gut aus.

Eine Änderung würde ich aber einbauen:

@If(as_department != ""; _result3:= @DbLookup("";"Server":"names.nsf";"($Users)";as_department;"members");@Return (""));

Das bewirkt, dass die Funktion nicht weiter ausgeführt wird, wenn as_department leer ist, sondern "" zurückgegeben wird. Damit sparst Du Dir bei jedem F9 bei nicht gefülltem as_department drei DBLookups, das spart gerade bei neuen Dokumenten etwas Laufzeit.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz