Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: ThomasHB am 21.11.11 - 15:03:32

Titel: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 21.11.11 - 15:03:32
Hallo Zusammen,

Ist es möglich, einer View das Selection Kriterium per Outline zu übergeben?

Was ich machen möchte ist folgendes... Ich habe eine View die im Grunde immer gleich bleibt.
Da ändert sich nichts, außer das eben Jährlich das Feld Jahr im Dokument anders belegt wird.
Halt mit 2011, 2012 usw.

Jetzt würde ich gerne erreichen, das ich in der Outline 2012 anklicken kann und dann werden in einer View nur die Werte angezeigt, die für 2012 sind.
Ohne das ich jedes Jahr eine neue View erzeugen muss...

Ist das möglich?

Grüße,
Thomas
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: Tode am 21.11.11 - 15:07:45
Ja das geht, indem Du zuerst per @Command die View aufrufst und dann per @SetViewInfo( [SETVIEWFILTER] ; filterString ; columnName ; isCategory [; exactMatch] )  nach der Kategorie filterst... (Beispiel siehe Hilfe zu SetViewInfo).

HTH


Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ata am 21.11.11 - 15:22:19
... oder du machst eine Maske und bettest deine Ansicht ein. Hier kannst du die Kategorie dann berechnen.

Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: umi am 21.11.11 - 15:29:07
SetViewinfo und Eingebettete Ansichten haben beide das Problem mit der Sortierung....

Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 21.11.11 - 15:31:29
Dankeschön.  :)

Also das mit der eingebetetten View mache ich ja jetzt schon. Allerdings in einer Page.
Ich glaube du willst auf Show Single Category raus, oder?

Wenn ja dann würde sich nur die Frage stellen, wie übergebe ich denn, das ich nur die Werte aus dem Jahr sehen will, die in der Outline angeklickt wurden?

Ich hab zumindest in der Outline nichts gesehen was irgendwie nach Übergabeparameter ausschaut.

Und welches Problem mit welcher Sortierung?
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: umi am 21.11.11 - 15:45:24
single category Ansichten kann man nicht sortierbar machen.
Das gleiche gilt für SetViewInfo.

Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 21.11.11 - 16:25:46
Noch mal hallo,

Ich stelle mir immer noch die Frage, wie soll ich in einer Single Category berechnen, das bitte Jahr 2012 angezeigt wird, wenn ich in der Outline 2012 geklickt habe.
Da gibts gar keine Übergabemöglichkeit... !?!?

Lotus Script gefällt mir besser...  :P ^^  ;D
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: Tode am 21.11.11 - 16:36:43
ach, da gibt es massig Möglichkeiten... Sei Kreativ! (z.B. @Environment setzen, Maske aufrufen und dort @Environment auslesen (aufräumen nicht vergessen), ProfilDokumente, im LotusScript direkt ein Feld setzen, etc. etc...
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: koehlerbv am 21.11.11 - 18:00:24
z.B. @Environment setzen, Maske aufrufen und dort @Environment auslesen ...
Iiiieeeeh!  >:( Das ist doch wie auf die Strasse schei**en  ;D

Bernhard
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: Tode am 22.11.11 - 06:57:55
Ich weiss, dass Du das nicht magst @Bernhard. Ich dagegen verwende die notes.ini häufig als Zwischenspeicher. ABER: der Code, der den Wert ausliest, löscht ihn auch sofort wieder aus der ini. Auf diese Art steht kein Eintrag länger als ein paar sekunden da drin.

Ich persönlich habe eben eine Aversion gegen Profildokumente... So hat jeder sein Päckchen zu tragen ;-)
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ata am 23.11.11 - 15:26:29
... das sehe ich auch so wie Torsten - Pflicht ist es die INI sauber zu halten und die Variablen wieder auf leer setzen

Toni
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: pram am 23.11.11 - 17:56:35
Noch ein Hinweis:

ein
Code
@SetProfileField("myProfile";"categorizedview";"myCategory";@UserName);
@SetTargetFrame("NotesView");
@PostedCommand([OpenPage];"categorizedViewPage");
@SetTargetFrame("")
funktioniert nicht zuverlässig, da in der Page der Wert noch nicht zur Verfügung steht (Profil ist noch nicht gespeichert *)

erst der Workaround
Code
@SetProfileField("myProfile";"categorizedview";"myCategory";@UserName);
triggerSave := @GetProfileField("myProfile";"categorizedview";@UserName);
@SetTargetFrame("NotesView");
@PostedCommand([OpenPage];"categorizedViewPage");
@SetTargetFrame("")
sorgt dafür, dass der Wert in der Page sauber ausgelesen werden kann.

Gruß
Roland

* Notes führt die Schreibbefehle asynchron aus, d.h. die Werte werden erst beim Verlassen der Formel oder bei einem Lesezugriff ge"flush"t (schönes Wort)
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ata am 24.11.11 - 08:05:12
... ich habe dafür eine Maske mit einer eingebetten Ansicht. Die Ansicht als auch die Kategorie kann per Formel berechnet werden. Daher habe ich in der Outline für die Steuerung den OutlineEntry mit der Formel ausgestattet, den Eintrag ViewCategory in die INI - oder wegen mir auch in ein Profildokument - zu schreiben "[NAME_DER_ANSSICHT][:][KATEGORIE]" - wobei "[:]" bei mir als Trenner fungiert.
In der Maske kann man dann den Wert wieder einlesen und mit @Right und @Left die Werte entsprechend verwurschteln...

Toni
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 29.11.11 - 14:17:18
Hallo Zusammen,

in meiner embedded View habe ich immer wieder das selbe Problem. Nämlich die Fehlermeldung "Category must be a single String" und das verstehe ich nicht so ganz.
Mag aber auch zum Teil damit zusammen hängen, das ich Notes Entwicklung immer noch erforsche.

Also ich zeige eine embedded View in einem Form an. In diesem Form gibt es ein Feld, das den Datentyp Integer hat. Es scheint aber egal zu sein, was ich mache. Ob ich das Feld vorbelege oder nicht, ich hatte sogar versucht das Form mal zu speichern damit es das Feld auch tatsächlich gibt.

Ich referenziere in der Secletion Formel der View auf ein Formular.

Ohne Single Category klappt das auch. Und verweisen tu ich auf das Feld im view Formular.

Also noch mal ganz einfach:

2Formulare: 1. enthält alle felder, ein Formular das vom benutzer ausgefüllt wird
2. enthält die embedded View und ein Feld namanes MainYear welches das aktuelle Jahr enthält.
In der View selbst wird auf Form 1 verwiesen, als Selection Kriterium, damit die Columns etwas anzeigen können. Das erste Column "Jahr" ist kategorisiert, das zweite aber auch. Also ich hab dort im Grunde zwei mal das Jahr stehen. Und als Wert in Show Single Category für die embedded View habe ich das Feld MainYear gewählt, welches mit Auswahl auf das Jahr gesetzt werden soll und die View soll eben entsprechend anzeigen.

Was mache ich falsch? Ich probiere jetzt seit dem 21. rum und kriege das scheinbar nicht hin. :(

Hintergrund des ganzen soll eine schönere Darstellung einer View sein. Eine View einfach nur so in einem Frameset sieht irgendwie so lieblos aus. Als embedded kann man aber z.B. mit Schatten und so nem Kram arbeiten und das ganze optisch aufwerten. Vielleicht gibts ja hier einfachere Wege... !?!?

Grüße,
Thomas
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: koehlerbv am 29.11.11 - 14:32:18
Deine Fehlermeldung sagt Dir doch alles, Thomas. Folge dem doch und mache aus Deiner Kategorie einen String - sowohl in der Ansicht als auch in der Form.

Bernhard
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 29.11.11 - 15:39:22
okay.... Das ist wieder peinlich.  >:(  :-[
Danke...

Was mir jetzt noch auffällt... Es gibt gar kein Command um ein Form zu öffnen.  :(
In der Outline kann ich das Form auswählen. Aber wenn ich auch dann direkt das Feld setzen will muss ich das ja per Command machen. Aber ein Command Open Form gibts nicht.

Wie schaffe ich es denn jetzt ein Form zu öffnen, welches die Embedded View hat und gleichzeitg das Feld für die Single Category zu setzen?
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: koehlerbv am 29.11.11 - 15:44:47
Du erstellst in der Maske ein Feld (versteckt, sinnigerweise) und beziehst dort Deine Kategorie aus dem ProfileDocument oder der NOTES.INI.

Bernhard
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: pram am 29.11.11 - 16:14:09
... oder in einer Page, die Formel kann dann aber nicht mehr in ein Feld ausgelagert werden. Die Seite kann man mit @command([openPage]) öffnen.
(Bei der Maske brauchst du noch ein SaveOptions = "0" Feld. Das entsprechende Command dafür: composedocument )

Hier http://atnotes.de/index.php/topic,52247.0.html (http://atnotes.de/index.php/topic,52247.0.html) gibts auch noch einen Thread in dem ich über die optimalen Randeinstellungen diskutiert habe.

Gruß
Roland
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 30.11.11 - 11:04:20
Hallöchen,

also erst mal vielen Dank dafür.  :)
Ich versuche aber noch zu verstehen wie ich dem Programm mitteilen soll, das ich in der Outline gerade auf 2012 geklickt habe und nicht auf 2011.
Dadurch das ich ja Form nicht über ein @Command auswählen kann, kann ich das per Script ja gar nicht übergeben. @GetProfileField glaube ich wäre das richtige.

Also würde ja eigentlich nur die Page bleiben wenn ich das richtig verstanden habe.
Die View in einer Page öffnen und SetViewInfo nutzen etc.

Oder kann man irgendwie doch das ganze per Outline machen?

Gruß,
Thomas
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: koehlerbv am 30.11.11 - 12:41:40
Okay, nochmal ganz langsam:

In der Outline startest Du einen Agenten, der Dir die erforderliche Information beschafft (2011, 2012, ...).
Den Wert übergibst Du in ein Personal (!) Profile Document.
Du öffnest die Rahmengruppe mit der Maske. Das berechnet-zur-Anzeige-Feld der Maske holt sich aus dem ProfileDocument den Wert.
Die eingebettete Ansicht holt sich den Wert aus dem Feld Deiner Maske.

Bernhard
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ata am 30.11.11 - 13:22:52
... im Outline hinterlege ich bei Source etwa so eine Formel:

_Category := "2011" ;
_View := "embViewName" ;
@SetEnvironment( "ViewCategory" ; _View + "[:]" + _Category );
@SetTargetFrame("NotesView") ;
@Command( [Compose] ; "embView" )


Ich möchte in meiner Maske "embView" mit der eingebetteten Ansicht die Kategorie 2011 sehen.
Dazu schreibe ich ins Environment den Namen der Ansicht und die Kategorie - getrennt durch meinen Trenner "[:]"

... In der Maske habe ich ein verborgenes ComutedWhenComposed-Feld names "ViewCategory", daß mir das Environment wieder einliest:
@Environment("ViewCategory")

... In der eingebetteten Ansicht bei Embedded selection habe ich dann...
@Left( ViewCategory ; "[:]" )

... In ShowSingleCategory dann...
@Right( ViewCategory ; "[:]" )

Somit verwende ich genau eine Maske für alle embeddedViews für die gefilterte Darstellung von Werten. Die Ansicht und die Kategorie bestimme ich in der Aktion in der Outline.
Die Maske sollte noch - wie zuvor schon erwähnt - das Feld SaveOptions mit dem Wert "0" haben, damit es nicht zu einer versehentlichen Speicherung der Dummy-Maske kommt.
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 01.12.11 - 12:37:01
Hmm... Okay.  :)

Da wird ja jetzt mit Environment gearbeitet.
Warum ist es an der Stelle nicht möglich per @SetField zu arbeiten?

Ich verstehe deinen Code, Toni  :)
Ich weiß auch was gemacht wird, dieser Ansatz hatte mir gefehlt.

Was ich versucht hatte, war das:

Code
@SetTargetFrame("Content");
@Command([Compose]; "nViewperYear");
FIELD n_defaultShowView:=n_defaultShowView;
@SetField("n_defaultShowView"; "2012")

Warum klappt das nicht? Ich hatte da jetzt keinen Hinweis zu gelesen, das man @SetField nicht in Outline nutzen kann oder es nicht gefunden.  :)

Grüße,
Thomas

P.s. Auch wenn das für euch wie "Ist doch klar warum" klingt... Ich versuche es nur zu verstehen.
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: TRO am 01.12.11 - 13:03:49
A) die Zeile
FIELD n_defaultShowView:=n_defaultShowView
ist schon seit R6 nicht mehr notwendig

B) setze vor @SetField ein
@UpdateFormulaContext

hth

Thomas
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: pram am 01.12.11 - 16:04:05
ich denke mal es geht nicht, weil es schon zu spät ist.
d.h. die Category wurde schon berechnet.

(ggf  hilft aber wirklich ein @updateFormulaContext + @postedCommand)

Gruß
Roland
Titel: Re: Select Kriterium durch Outline übergeben?
Beitrag von: ThomasHB am 01.12.11 - 17:44:27
Hallo  :)

Danke für die Antworten. Kann es aber trotzdem sein, das es an dieser Stelle ein Problem mit der Initialisierung gibt? Folgendes stelle ich fest:

DB öffnet in einem Frameset.
Klicke ich direkt auf die Outline bzw. den Eintrag der Outline dann wird das Feld nicht gefüllt und somit wird auch nichts angezeigt.

Klicke ich in der Outline aber erst auf einen anderen Eintrag und dann auf den gewollten, dann funktioniert das sehr wohl und dauerhaft.

Müsste das nicht normal trotzdem funktionieren? Egal wann ich drauf klicke?

Gruß,
Thomas