Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: luna am 28.01.04 - 08:34:10

Titel: readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 08:34:10
hallo,

ich habe u.a. im readers feld stehen, dass alle leute aus dem feld "divisions_all" lesen duerfen.

das feld divisions_all wiederum besteht aus mehreren verschiedenen feldern (z.b. "HRadmin"), die sich wiederum den namen der person mit dieser formel holen:
@Unique(@DbColumn("" : cache; "" : ""; "Xdivision"; 1))

der grund dafuer ist, dass die personalabteilung nicht vom designer abhaengig sein soll, und bei unserer fluktuation ich mir auch viel arbeit erspare, wenn personal den namen des HRadmin selber aus dem nab aussuchen kann. das ist eine gute loesung fuer uns und soll unbedingt so bleiben.

mein problem:
wenn ich aus dem nab meinen namen auswaehle, steht im dokument, in dem personal die namen waehlen soll (Xdivisions) folgendes:
Daniela Berg/DE/SANYO-ENERGY-EU

damit bekomme ich auch die dokumente angezeigt.

wenn aber jemand (und das kann ich ja nicht verhindern) in dieser Xdivisions maske einmal F9 drueckt, dann aendert sich mein name in:
Daniela Berg/DE/SANYO-ENERGY-EU@SANYO-ENERGY

und genau ab diesem moment komm ich nicht mehr an die dokumente ran !!!

fuer euch ist das sicherlich nur eine laecherliche kleinigkeit, aber ich beiss mir hier schon seit tagen die zaehne daran aus. wie kann ich das loesen?

danke und gruss,
daniela  ::) ???
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Axel am 28.01.04 - 09:49:46
Hi,

hast du es schon mal mit @Name([CN]...) versucht ?

Die Formel müsste so in etwa aussehen:

@Unique(@Name([CN];@DbColumn("" : cache; "" : ""; "Xdivision"; 1)))


Axel

Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 10:02:08
Die Verwendung des Common Names würde ich nicht empfehlen, da dann u.U. der Eintrag in Lesefeldern nicht zieht (bur bei Verwendung eines Certifiers im Unternehmen - für Server und User).

Luna, gibt es irgendwelchen Code - bspw. im Postrecalc - der den Feldinhalt manipuliert. Denn so ohne weiteres hängt Notes da keine Domäne dran.

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 11:23:29
hallo ihr beiden,

erstmal vielen dank, dass ihr euch um mich kuemmert.  :D

ich hab das mit dem CN probiert. jetzt kann der kollege zwar das dokument oeffnen, aber er sieht die verstecke wenn formel nicht mehr: HRadmin!=@UserName. kann das sein?

ich weiss nicht, warum er die domain hinten hinhaengt. das postrecalc und alle anderen diese dinger sind jedenfalls leer in der maske.

scheint doch etwas schwieriger zu werden, das ganze. :'(

wenn ich im feld selber "lookup addresses on document refresh" aktiviere, dann passiert das mit der domain. deaktiviere ich das, passiert das zwar nicht, aber wenn der user einen namen reinschreibt, den es nicht gibt, dann nimmt er den. dann geht weder mailsend, noch reader noch hide/when. obwohl "allow values not in list" NICHT aktiviert ist.

???

danke,
daniela
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 11:33:34
Es liegt tatsächlich an der neuen Option, die Du eingestellt hast. Das geht allerdings nur für Felder vom Typ "Namen", nicht vom Typ "Leser".

D.h. Dein Feld divisions_all ist ein Namensfeld, ok.

Um jetzt das "@" aus dem Lesefeld herauszubekommen, machst Du folgende Formel dort:

@Left(divisions_all + "@";"@")

Die Formel liefert alles Links vom @ zurück - falls in dem String kein @ vorgekommen ist, hänge ich sicherheitshalber noch eins dran (kleiner Tip am Rande).

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 11:40:28
hi,

nein, das feld "divisions_all" ist kein namensfeld bei mir, das ist ein ganz stinknormales textfeld. computed aus "HRadmin".
"HRadmin" wiederum normales textfeld, computed mit:
@Unique(@DbColumn("" : cache; "" : ""; "Xdivision"; 1))

in der ansicht "Xdivision", spalte 1, wert aus feld "_1" aus maske "Xdivision". feld "_1" ist dann ein namensfeld, editierbar, use address dialog for choices.

wie gesagt, der user kann den namen IMMER aus den nam auswaehlen, aber
1.) mit den haken kommt die domain hinten dran
2.) ohne die haken kann er wurzelbrunft als name eintippen.
das ist der haken!

ich muesste das am anfang im feld _1 schon so hinkriegen, dass er NUR einen namen aus dem nab waehlen kann, aber OHNE die domain dahinter. damit stelle ich sicher, dass
1.) readers felder
2.) mail send formeln
3.) und hide/when formeln
alle gleichermassen funzen.

gruss,
daniela
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Axel am 28.01.04 - 11:41:42
Hi,

ist doch selbstverständlich, dass wir uns um dich kümmern.   :)

Versuch' mal die Hide-When-Formel so anzupassen

HRadmin!=@Name([CN];@UserName)


Vielleicht hilft's ja was.


Axel
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 11:43:56
Dann nenne das Feld _1 um in Feld_1temp.
Dann ein neues Feld _1 (Mehrfachwerte, der Name wie Du ihn bis jetzt verwendest hast)) mit der Formel
@Left(Feld_1temp + "@";"@")

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 11:45:05
Wie gesagt, Common Name würde ich nicht machen.

Wenn es denn sein muss, dann so

HRadmin!=@Name([CN];@UserName)

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 13:53:15
hi axel und glombi,

ich muss euch ehrlich sagen, ich verzweifel jetzt gleich.  :-X

ich hab jetzt folgendes gemacht:

ich hab mein feld _1 gelassen wie es ist. names / editable / use address dialog / look up addresses on document refresh.

die formel von glombi (@Left und so) hab ich anstatt in einem zweiten feld nun in der ansicht genommen, denn das DBlookup nimmt ja den wert in seiner maske aus der ansicht, nicht aus dem feld. das funzt nun.
somit geht dann auch das hide/when und das mailsend, denke ich, habs noch nicht probiert. mach ich aber gleich.

nur ein problem hab ich jetzt noch. es ist zwar durch das @Left nun egal, ob die tante auf F9 drueckt oder nicht, denn jetzt stimmt mein name ja immer, jedoch kann sie jetzt - wenn sie N I C H T F9 drueckt - wurzelbrunft eingeben, und damit kann sie jeden nicht existierenden namen nehmen. mailsend geht dann natuerlich auch nicht und somit stockt der workflow.

was muss ich denn jetzt noch machen (sorry, dass ich schon wieder was brauche, aber das ist sooo kompliziert), damit garantiert das dokument nicht gespeichert werden kann mit namen, die im nab nicht existieren? geht das mit einem DBLookup auf das names.nsf? ich such mal im forum nach, hoffe, ich finde was.

vielen dank jedenfalls fuer eure hilfe,
gruss,
daniela

p.s. verstehen tu ich trotzdem nicht, warum er nach F9 die domain dranhaengt. ::)
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 14:10:54
Ich würde das Pferd von der anderen Seite aus aufzäumen. Warum machst Du es nicht so, dass nur aus dem Adreßbuch ausgewählt werden kann? Dann kann die Tante nix anderes eingeben.

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 14:24:48
Ich habe noch eine Lösung gefunden:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   
   On Error Goto ErrorHandling
   Call Source.Refresh
   
   Dim abbruch As Integer
   abbruch = False
   Forall a In Source.Document.Feld_1
      If Instr( a, "@" ) = 0 Then
         abbruch = True
         Exit Forall
      End If
      
   End Forall
   
   If  abbruch Then
      continue = False   
      Exit Sub
   End If
   
Ende:
   Exit Sub
ErrorHandling:
   continue = False
   Resume Ende
   
End Sub


Dann kannst Du das Dokument nur speichern, wenn die Adresse ein "@" enthält. Also muss diese einmal geprüft worden sein (durch Source.Refresh)

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 15:46:10
Ich würde das Pferd von der anderen Seite aus aufzäumen. Warum machst Du es nicht so, dass nur aus dem Adreßbuch ausgewählt werden kann? Dann kann die Tante nix anderes eingeben.

Andreas
hallo andreas,
ja genau das will ich ja. ich hab doch ein namens feld, in dem steht: use address dialog. wenn sie auf den pfeil drueckt, dann kriegt sie ja auch das adressbuch ! aber wenn sie dsklfjsdkfj reinschreibt, und speichert, dann nimmt die maske das, obwohl NICHT angekreuzt ist "allow values not in list". das versteh ich ja eben nicht.

geht denn das gar nicht ohne script? ich hab keinen schimmer von script, und wenn ich mal was aendern muss, kenn ich mich nicht aus. das ist mir irgendwie unsympatisch. muss doch auf "normalem" wege moeglich sein (formel oder einstellungen), NUR personen aus meinem nab zu nehmen?

gruss,
daniela
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Axel am 28.01.04 - 16:00:23
Hi,

wie wäre es denn damit?

Du machst dein Feld zu einem berechneten Textfeld. Als Werteformel trägst du den Feldnamen selbst ein. Neben dem Feld fügst du einen Hotspot (kann auch eine Schaltfläche sein) in die Maske ein und hinterlegst folgende Formel:

FIELD Feld_1 := Feld_1;
value := @PickList([Name]:[Single]);
@SetField("Feld_1"; @Name([CN]; value))


Axel
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 16:06:37
Bei @Picklist([NAME]... gibt es noch den Nachteil, dass der User da was von Hand eintragen kann.

Es ginge auch so (Formel für einen Button):
_Name := @PickList( [Custom]; @Subset(@DbName;1) : "names" ; "($VIMPeople)";"Namen wählen"; "Bitte wählen Sie den Namen aus:";1);
FIELD Feld_1 := _Name;
""

Feld_1 ist dann Berechnet beim Anlegen mit der Formel "".

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: heini_schwammerl am 28.01.04 - 16:13:04
Hm,

jetzt muß ich auch mal meinen Senf dazugeben. Du ziehst ja den Namen über eine DBColumn. Jetzt würde mich natürlich interessieren was dort als Wert steht.
Daniela Berg/DE/SANYO-ENERGY-EU
oder
CN=Daniela Berg/OU=DE/O=SANYO-ENERGY-EU
Aber nur so ein Gedanke auf die Schnelle.
Gruß

Heini
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Axel am 28.01.04 - 16:14:42
Bei @Picklist([NAME]... gibt es noch den Nachteil, dass der User da was von Hand eintragen kann.


Hi,

wie und wo soll das gehen ?


Axel
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 16:19:54
wie und wo soll das gehen ?
Da gibt es ein Feld "Namen hinzufügen, der nicht aufgelistet ist". Da kann man beliebigen Text eintragen. Leider gibt es keine mir bekannte Option, das nicht anzuzeigen.

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Axel am 28.01.04 - 16:24:16
Hi,

ups, dann sieht das in Version 6 anders aus als in 5. Ich bin von der 5er Version ausgegangen, in der Annahme, da hat sich nicht viel geändert.

In diesem Fall gebt ich dir recht.


Axel

Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 16:33:26
Das wurde dann also in R6 "verschlimmbessert" - denn ich diesem Fall ist es ja nicht gewünscht.

Andreas
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 16:59:52
Hm,

jetzt muß ich auch mal meinen Senf dazugeben. Du ziehst ja den Namen über eine DBColumn. Jetzt würde mich natürlich interessieren was dort als Wert steht.
Daniela Berg/DE/SANYO-ENERGY-EU
oder
CN=Daniela Berg/OU=DE/O=SANYO-ENERGY-EU
Aber nur so ein Gedanke auf die Schnelle.
Gruß

Heini
hallo heini,

so, wie ich es jetzt gerade habe, steht vor F9:
Daniela Berg/DE/SANYO-ENERGY-EU
und nach F9:
Daniela Berg/DE/SANYO-ENERGY-EU@SANYO-ENERGY
in dem feld.

aber ich ziehe den namen mit names dialog liste aus dem nab.

gruss,
daniela
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 28.01.04 - 17:34:15
Bei @Picklist([NAME]... gibt es noch den Nachteil, dass der User da was von Hand eintragen kann.

Es ginge auch so (Formel für einen Button):
_Name := @PickList( [Custom]; @Subset(@DbName;1) : "names" ; "($VIMPeople)";"Namen wählen"; "Bitte wählen Sie den Namen aus:";1);
FIELD Feld_1 := _Name;
""

Feld_1 ist dann Berechnet beim Anlegen mit der Formel "".

Andreas
hi andreas,

ich habs jetzt mit dieser formel probiert. aber:
1.) nach F9 steht wieder @Sanyo-Energy dahinter !!! egal, hab ja die formel in der ansicht
2.) aber die liste ist nach vornamen sortiert.

weisst du was, langsam denke ich, dass es mir egal ist, ob die einen richtigen namen auswaehlen oder nicht. problem ist nur, dass ich schon oft gesehen habe, dass die da selber was hintippen, was falsch ist, und ich krieg dann  probleme, wenn der workflow nicht funzt.

muss jetzt weg, hab morgen urlaub, werde mir das am freitag nochmal in ruhe anschauen. dachte nicht, dass das ganze sooo kompliziert ist.

geht es denn nicht, dass im postsave oder sonstwo einfach nach eingabe egal woher eine formel drin ist, die nachschaut, ob es diesen ausgewaehlten oder selber eingetippten user im nab einfach nur gibt?

danke und gruss,
daniela
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 28.01.04 - 17:44:13
Wegen der Sortierung - da gibt es auch eine View, die nur nach Nachnamen sortiert ist. Dann müsste das so heißen:

_Name := @PickList( [Custom]; @Subset(@DbName;1)  : "names" ; "($VIMPeopleByLastName)";"Namen wählen"; "Bitte wählen Sie den Namen aus:";5);
FIELD Feld_1 := _Name;

@True
Titel: Re:readers feld - dblookup - fehler
Beitrag von: luna am 30.01.04 - 13:47:43
hallo,

also, vielen lieben herzlichen dank nochmal an euch alle. ich denke mal, ich nehme die letzte variante von Glombi's vorschlag. die mit dem button (nachname) und der formel in der ansicht. wenn es nicht anders geht, dann machen wir's halt so.

es ist zwar zum programmieren ein klein wenig umstaendlich, dass ich pro zeile einen extra button und in jeder ansicht eine extra formel einbauen muss, anstatt einmal beim speichern des dokumentes eine gegenabfrage des nab zu machen, aber ich bin jetzt wirklich froh  :D, dass das ueberhaupt so funktioniert.

vielen dank,
daniela  ;D
Titel: Re:readers feld - dblookup - fehler
Beitrag von: Glombi am 30.01.04 - 13:54:01
Du willst ja kein Script  ;D
Also musst Du da durch  ;)

Andreas