Autor Thema: Variable in View: aus Profiledoc auslesen und nutzen  (Gelesen 12705 mal)

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Guten Morgen,

ich stehe vor folgendem Problem:

in einem Profiledoc werden in einem Feld verschiedene Konten definiert. Für jedes Konto muss eine View vorhanden sein.

Da sich die Bezeichnung dieser Konten ändern könnte, will ich in den Views die Bezeichung der Konten nicht verwenden sondern diese aus dem Feld des Profiledocs auslesen und in eine Variable setzen.

Dachte mir das so:

Queryopen: @Set ("_view" ; @Select (1; @GetProfileField ("Profil" ; "Feldname")

(Formelsprache, da ich die Variable auch in einigen Columns und in ViewSelection nutzen willen und nicht mit @Environment und notes.ini arbeiten will)

Im Queryopen funktioniert das Ganze schon zur Hälfte.
@Prompt gibt mir den ersten Eintrag des Feldes aus. Nur kriege ich mit @Select nicht die anderen Einträge.  :(

Wie ist Eure Meinung zu meiner Strategie?  ;)

cu
Sebastian
Domino, Notes, Sametime

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.730
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #1 am: 06.03.05 - 08:41:10 »
@GetProfileField : This function does not work in column, hide-when, section editor, or view selection formulas

Wie sind die Werte denn in dem Profile Doc hinterlegt ? Trennzeichen ?
« Letzte Änderung: 06.03.05 - 08:49:44 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #2 am: 06.03.05 - 08:55:03 »
Moin,

@GetProfileField : This function does not work in column, hide-when, section editor, or view selection formulas


Gilt das auch für Queryopen von Views?

Wie sind die Werte denn in dem Profile Doc hinterlegt ? Trennzeichen ?

Standardeinstellungen für ein Textfeld. Ich habe dort keine Einschränkungen getroffen.

Sebastian
« Letzte Änderung: 06.03.05 - 08:57:10 von SKL74 »
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #3 am: 06.03.05 - 11:02:03 »
Vielleicht geht's nur mir so, aber ich verstehe nach 2mal lesen Deine Frage nicht ganz.

@Set: Assigns a value to a temporary variable for use within a formula.

@Select: Returns the value that appears in the number position. If the number is greater than the number of values, @Select returns the last value in the list. If the value in the number position is a list, returns the entire list contained within the value.

Daher verstehe ich die Formel nicht, also was diese bei Dir im Queryopen machen soll?


Willst Du Selektionskriterien von Views anhanhand von Profildokumenten vorgeben?
Das wird wohl ohne weiteres nicht möglich sein.
Matthias

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


Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #4 am: 06.03.05 - 11:35:33 »
Nein,

ich habe ein Profiledoc, mit einem Feld, welches Konten enthält.

Konto1
Konto2
Konto3
usw.

Diese Bezeichnung benötige ich in einer View als Auswahlkriterium.

Also @GetProfileField usw.
@Select (1; @GetProfileField ... soll mir eigentlich das erste Konto auswählen
@Select (2; @GetProfileField ... das 2. Konto usw.

Wie gesagt, das funktioniert noch nicht. Ich erhalte immer den ersten Eintrag zurück.

Sebastian
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #5 am: 06.03.05 - 12:02:09 »
Diese Bezeichnung benötige ich in einer View als Auswahlkriterium.

Was verstehst Du unter "Auswahlkriterium" in Zusammenhang mit Queryopen?

Eine Selektion für Views, also welche Dokumente in Views erscheinen, definiert man doch in der "View Selection" (im deuschen Client glaub ich heißt das "Ansichtsauswahl").

Da steht dann z.B.
SELECT Form = "Person" & Status = "Freigegeben"

Per Profildokument kannst Du das AFAIK nicht beeinflussen.

Gut, vielleicht kann man da mit @SetViewInfo noch etwas drehen (hab damit noch nie gearbeitet) oder man arbeitet mit einer eingebetteten Ansicht.

Matthias

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


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #6 am: 06.03.05 - 12:33:24 »
Kann Matthias nur zustimmen, in der View Selection kann man auf Profildokumente nicht zugreifen (siehe das, was Ulrich in seinem Beitrag durchgestrichen hat .....)

Grundsätzlich gibt es in Notes (noch) keine dynamische Ansichten (das soll es ja schliesslich werden). Der Grund liegt darin, dass der Ansichtsindex bereits "vorfabriziert" vorhanden ist und daher nicht erst beim Oeffnen neu zusasmmengestellt wird. Da ist also ein anderer Ansatz zu suchen, zum Bleistift mit einer Page und einer embedded View, bei der man dann "Show Single Category" verwenden kann.
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 theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #7 am: 06.03.05 - 14:37:58 »
Kann Matthias nur zustimmen, in der View Selection kann man auf Profildokumente nicht zugreifen (siehe das, was Ulrich in seinem Beitrag durchgestrichen hat .....)

Spreche doch immer vom Queryopen der View.

Was verstehst Du unter "Auswahlkriterium" in Zusammenhang mit Queryopen?

Sorry, mein Fehler. In mehreren Columns gibt es @If-Formeln. Darin steht:

@If Feld1=Konto1 dann zeige Feld2 sonst Feld3.
(Feld1 wird in Form über eben dieses Profiledoc gefüllt)

Da ich in diesem @If dem Konto keinen festen Wert zuweisen will, möchte ich das Profiledoc auslesen, den Wert einer Variable zuweisen und diese in der Formel für die Column nutzen.

Und das soll im Queryopen passieren. Scheint auch zu gehen, denn @GetProfileDoc und dann @Prompt gibt mir den ersten Eintrag aus dem Profiledoc.

Geht das vielleicht garnicht?

Sebastian
« Letzte Änderung: 06.03.05 - 14:45:13 von SKL74 »
Domino, Notes, Sametime

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #8 am: 06.03.05 - 15:10:03 »
Nein, das geht nicht, Sebastian. In Views können keine Werte "von aussen", sondern nur aus den Dokumenten gelesen werden, die per view selection formulae in die View aufgenommen werden.

Als Workaround hat Notes mit R4 die Folders eingeführt. Mit Hilfe von SPOFU-Folders könntest Du das von Dir gewünschte Ergebnis erreichen.

HTH,
Bernhard

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #9 am: 06.03.05 - 15:17:06 »
Ginge das dann so, wie von mir beschrieben oder nur auf einem anderen Weg?

Sebastian
Domino, Notes, Sametime

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #10 am: 06.03.05 - 15:28:09 »
@Prompt gibt mir den ersten Eintrag des Feldes aus.

Wenn das Feld aus ProfileDoc multivalue ist, ist das logisch. Siehe DesignerHelp zu @Prompt. Mit @Implode machst Du Dir einen skalaren Wert, mit dem auch @Prompt klarkommt.

Zu Deiner letzten Frage: Nein, mit Deinem Prinzip kommst Du da nicht weiter. QueryOpen des Folders verwenden: Denkbar. @functions: Unmöglich, das geht nur mit LS.

Bernhard

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #11 am: 06.03.05 - 15:34:55 »
Wenn das Feld aus ProfileDoc multivalue ist, ist das logisch. Siehe DesignerHelp zu @Prompt. Mit @Implode machst Du Dir einen skalaren Wert, mit dem auch @Prompt klarkommt.

Ist multivalue. @Implode verbindet meine einzelnen Datensätze im Feld zu einem Satz. Das will ich aber nicht.
@Prompt war bloß eine Hilfe, um zu sehen, ob überhaupt etwas aus dem ProfileDoc gelesen wird.


Zu Deiner letzten Frage: Nein, mit Deinem Prinzip kommst Du da nicht weiter. QueryOpen des Folders verwenden: Denkbar. @functions: Unmöglich, das geht nur mit LS.

Und das heißt, ich muss z.B. mit ENVIRONMENT arbeiten, um in LS gesetzte Variablen mit @functions nutzen zu können.

Kann ich dann eine @If-Auswahl in einer Column erstellen oder gibt es da auch Einschränkungen? In der Hilfe steht davon nichts.

Übrigens:

@Set ("_view" ; @GetProfileField("Profile" ; "Konten"));
@Prompt ([Ok];"1";_view)

im Queryopen eines Folder gibt mir den 1. Wert des Feldes Konten aus.

Sebastian
« Letzte Änderung: 06.03.05 - 15:55:15 von SKL74 »
Domino, Notes, Sametime

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #12 am: 06.03.05 - 16:20:58 »
Kann ich dann eine @If-Auswahl in einer Column erstellen oder gibt es da auch Einschränkungen? In der Hilfe steht davon nichts.

Die Frage verstehe ich nicht. Beziehst Du das auf Views ? Environment ist für Views verboten. Steht in der DesignerHelp.

Das Prinzip, das Du heute morgen gepostet hast, kannst Du komplett entsorgen. Das funktioniert nicht. Entwerfe ein neues Prinzip (ggf. auf Basis von Folders und Routinen, die die gewünschten Docs in einen Folder kippen, wenn Aktion X ausgeführt wird).

Bernhard

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #13 am: 06.03.05 - 16:28:59 »
Das Prinzip, das Du heute morgen gepostet hast, kannst Du komplett entsorgen. Das funktioniert nicht.

Danke für Deine klaren Worte.  ;)

Kann ich mit @functions in Columns überhaupt auf Variablen zugreifen? Globale oder so?
Ich könnte dann die Variablen z.B. beim Öffnen der DB zuweisen und dann nutzen.


Sebastian
« Letzte Änderung: 06.03.05 - 16:51:22 von SKL74 »
Domino, Notes, Sametime

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #14 am: 06.03.05 - 17:01:54 »
Noch ein klares Wort - zur Wiederholung:

In Views oder Folders kannst Du nur auf Items zurückgreifen, die in den in der View / Folder vorhandenen Dokumenten greifbar sind. Und das muss noch nicht einmal eine Einschränkung darstellen. Daher ja auch mein Vorschlag mit Folders.

Insofern ich Dich richtig verstanden habe:
User klickt auf Outline-Eintrag.
Der startet Aktion.
Aktion fragt nach Kontonummer (entsprechend des Angebots aus SetupDoc).
Aktion grabbelt sich alle passenden Docs zusammen.
Aktion feuert alle evtl. vorhandenen Einträge aus Folder.
Aktion schiebt zusammengegrabbelte Docs in Folder.
Aktion öffnet Folder.

Bernhard

Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #15 am: 06.03.05 - 17:24:31 »
Noch ein klares Wort - zur Wiederholung:

In Views oder Folders kannst Du nur auf Items zurückgreifen, die in den in der View / Folder vorhandenen Dokumenten greifbar sind. Und das muss noch nicht einmal eine Einschränkung darstellen. Daher ja auch mein Vorschlag mit Folders.

Leider habe ich das jetzt verstanden. Das Ganze klang schön einfach für mich aber naja.

Insofern ich Dich richtig verstanden habe:
User klickt auf Outline-Eintrag.
Der startet Aktion.
Aktion fragt nach Kontonummer (entsprechend des Angebots aus SetupDoc).
Aktion grabbelt sich alle passenden Docs zusammen.
Aktion feuert alle evtl. vorhandenen Einträge aus Folder.
Aktion schiebt zusammengegrabbelte Docs in Folder.
Aktion öffnet Folder.

Bernhard

Dies scheint der einzig gangbare Weg zu sein, um Docs zu selektieren.

In der DB läuft es noch etwas anders. Versuche das mal so wie Du zu Umreißen:

Im ProfileDoc gibts ein Field Konten mit Einträgen

Konto A
Konto B
Konto C
usw.

Doc enthält Fields:
Bestandteil1       Konto1 (Dialogliste aus ProfileDoc, Field Konten)
Bestandteil2       Konto2 (Dialogliste aus ProfileDoc, Field Konten)
Bestandteil3       Konto3 (Dialogliste aus ProfileDoc, Field Konten)
usw.

Pro Konto (A,B,C usw.) eine View oder Folder, in denen nur die Bestandteile auftauchen, die zum jeweiligen Konto gehören (daher nicht ViewSelection, denn ich muss im Doc selektieren)

Formel in Column:
@If (Konto1= Konto A;Bestandteil1 anzeigen;"")

Diese Konto A müßte ich jetzt hier hardcoden.

In Outline stehen die Konten
Konto A
Konto B
Konto C
usw.

Klick auf Konto öffnet die View des jeweiligen Kontos und zeigt nur die Bestandteile für dieses Konto.

Das ist der aktuelle Stand, der auch so funktioniert. Da aber jetzt ständig neue Konten hinzu kommen, will ich das Ganze so gestalten, dass kein Hardcoden in der View oder Column mehr notwendig ist.

Sebastian
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #16 am: 06.03.05 - 20:25:57 »
@SLK:
Die Lösungen wurden doch oben schon alle genannt. Bitte lies das nochmal.

a) Embedded View in Page

Oder b): @SetViewInfo (siehe z.B. auch: Let users filter any view {kostenlose Registrierung erforderlich zum ansehen})

Bevor Du weiterpostest, bitte auch auf diese Tipps explizit eingehen und begründen, warum das für Dich keine Lösung ist, sonst kommen wir hier glaub ich nicht weiter.
Matthias

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


Offline theBastian

  • Senior Mitglied
  • ****
  • Beiträge: 484
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #17 am: 06.03.05 - 20:46:26 »
Die Lösungen wurden doch oben schon alle genannt. Bitte lies das nochmal.

a) Embedded View in Page

Habe jetzt Page mit Embedded View erstellt. Dann im Queryopen der Page erstellt:

@Set ("_view" ; @Select (2 ; @GetProfileField("Profile" ; "Konten")));
@Prompt ([Ok];"1";_view)

@Prompt nur als Test, ob @Set irgendwas ausliest. Wird später nicht dabei sein.
Ergebnis: Popup mit dem 1.Konto. OK!

Wie kann ich jetzt die Variable _view in einer @If-Bedingung in einer Column nutzen?

Sebastian
Domino, Notes, Sametime

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #18 am: 06.03.05 - 20:55:09 »
Ich verstehe leider immer noch Dein Posting oben nicht.

Einmal schreibst Du

Zitat
m ProfileDoc gibts ein Field Konten mit Einträgen

Konto A
Konto B
Konto C

Dann schreibst Du:
Zitat
Doc enthält Fields:
Bestandteil1       Konto1 (Dialogliste aus ProfileDoc, Field Konten)
Bestandteil2       Konto2 (Dialogliste aus ProfileDoc, Field Konten)
Bestandteil3       Konto3 (Dialogliste aus ProfileDoc, Field Konten)

Was ist Konto1? Was ist Konto A? Konto A = Konto1  ???

Schreib mal auf wie die Felder in den jeweiligen Dokumenten heißen, und was da drinsteht, sonst blicke ich das glaub ich nicht.

Meine letzte Antwort war bezogen auf Dein:
Zitat
Dies scheint der einzig gangbare Weg zu sein, um Docs zu selektieren.

Wir kommen schon noch zu einer Lösung, nur muss ich *genau* wissen wie Deine DB aufgebaut ist und was Du erwartest.
Matthias

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


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Variable in View: aus Profiledoc auslesen und nutzen
« Antwort #19 am: 06.03.05 - 20:57:25 »
Wie kann ich jetzt die Variable _view in einer @If-Bedingung in einer Column nutzen?

Bist Du resistent gegen gelieferte Argumente, Sebastian ? Du kannst  N I C H T  auf irgendwelche Variablen in Views zurückgreifen. Das steht auch so in der DesignerHelp. Es geht nicht. Punkt.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz