Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Fragensteller am 24.09.12 - 13:11:43

Titel: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:11:43
Hi Leute,

ich habe ein neues Profildokument erstellt....

@Command([EditProfileDocument];"ProfilePreise";"Preise")

Habe dann einen Wert in mein Feld (Text) eingetragen, das Feld heißt "ana".

Nun versuche ich in der Spalte einer Ansicht diesen Wert auszugeben...

@GetProfileField("ProfilePreise";"ana";"Preise")

Leider bekomme ich nichts zurück.

Kann mir da einer helfen?

Timo
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: marschul am 24.09.12 - 13:16:25
Aus der Designer-Hilfe zu @GetProfileField:

Diese Funktion kann nicht in Spalten-, Verbergen-wenn-, Abschnittseditor- oder Ansichtsauswahlformeln verwendet werden.
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:20:28
ok, dachte es geht nur kein dblookup.


Ich kann aber unter Globals in der Ansicht den Wert abrufen. Das klappt.
Das ist nun aber LS. Gibt es eine Möglichkeit den Wert nun in der Spalte weiter zu verwenden?


Sowas wie

Code
Sub Initialize
	Dim session As New NotesSession				
	Dim db As NotesDatabase				
	Dim doc As NotesDocument				
	Set db=session.CurrentDatabase				
	Set doc=db.GetProfileDocument("ProfilePreise")
	$2 = doc.GetItemValue("ana")(0)
End Sub

Timo
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: ascabg am 24.09.12 - 13:30:33
Hallo,

Wenn ich mich noch richtig erinnere, so kannst Du in einer Ansicht nur die Werte aus Dokumenten anzeigen lassen.
Profile-Dokumente, auch wenn es prinzipiell nicht anderes ist, sind hierbei jedoch aussen vor.


Andreas
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:43:53
grummel....

ok, dann frage ich mal anders herum, ob jemand eine Lösung kennt.

Es gibt viele Kategorien die bisher eine Liste von Tätigkeiten und Preise enthalten.
Dies ist in über 20 Ansichten hard notiert.

Da sich hin und wieder diese Preise ändern, wollte ich diese in ein Profildok schreiben.
So wäre es möglich, die dort einmal anzupassen, statt immer 20 Ansichten anzufassen....


Wie kann ich dies nun aber hinbekommen?


Ist:

In der Spalte steht zur Zeit sowas:

reise := @If(

aufgabentyp = "typ1";
"Leistung1 |preis 1" :
"Leistung2 |preis 2" :
"Leistung3 |preis 3" :
"Leistung4 |preis 4" ;

aufgabentyp = "typ2";
"Leistung1 |preis 1" :
"Leistung2 |preis 2" :
"Leistung3 |preis 3" :
"Leistung4 |preis 4" ;

...


und das halt in 20 Ansichten
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: klaussal am 24.09.12 - 13:46:46
Mach doch aus dem Profil-Dokument ein ganz Normales.
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: ascabg am 24.09.12 - 13:48:55
Mach 'normale' Dokumente daraus.

Wird in vielen Anwendungen so gehandhabt, dass 'Konfigurations-Dokumente' vorhanden sind, die Werte fuer Felder bereitstellen, die sich immer wieder mal aendern.

Hat auch den Vorteil, dass der Inhalt von Profile-Dokumenten dem Cache unterliegt und etwahige Aenderungen nicht sofort verfuegbar sind, derweil die Aenderungen an den Konfigurationsdokumenten sofort greifen, da diese meist mittels LookUp-Befehlen ermittelt/gelesen werden.


Andreas
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: koehlerbv am 24.09.12 - 13:49:58
Das nützt genauso wenig, Klaus, da man auch auf @dbLookup nicht zugreifen kann in Ansichten.

Hier bleibt nur, periodisch die Dokumente mit den zugehörigen Setup-Dokumenten abzugleichen und ggf. die Dokumente zu aktualisieren.

Bernhard
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:51:35
ok aber selbst wenn es ein normales Dokument ist, wie komm ich dann an die Werte ran?

Ich muss ja irgendwie dann auf Dokumente zugreifen, die nicht selektiert sind.

Timo
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: koehlerbv am 24.09.12 - 13:55:45
Wie ich in #7 schrieb: Das muss ein Agent besorgen. Die View und das "on the fly" kannst Du hier vergessen.

Bernhard
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: ascabg am 24.09.12 - 13:56:17
Warum stehen die entsprechenden Werte denn nicht in dem Dokument an sich, welches in der Ansicht angezeigt wird?


Andreas
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:57:44
Wie ich in #7 schrieb: Das muss ein Agent besorgen. Die View und das "on the fly" kannst Du hier vergessen.

Bernhard

Jupp, danke Bernhard.
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Fragensteller am 24.09.12 - 13:59:44
Warum stehen die entsprechenden Werte denn nicht in dem Dokument an sich, welches in der Ansicht angezeigt wird?


Andreas

Na weil das veränderliche Werte sind, die oft angepasst werden müssen und der Aufwand jedesmal alle Dokumente anzupassen unterlassen werden sollte.
Warum alle Docs anpassen, wenn ich den Wert nur zur Anzeige benötige?

Ok, also werde ich dann doch nicht drum herum kommen.
LN sollte an dieser Stelle echt mal angepackt werden...^^
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: koehlerbv am 24.09.12 - 14:03:05
LN sollte an dieser Stelle echt mal angepackt werden...^^

Nein, vielmehr musst Du Dich genauer mit der Architektur von Notes-/Domino-Datenbanken noch tiefer auseinandersetzen. LND basiert ganz ausdrücklich nicht auf einem relationalen Datenbanksystem, sonst würden wiederum auch andere Dinge nicht so funktionieren, wie sie es tun.

Bernhard
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: Mitch am 24.09.12 - 14:43:38
Wäre eine "Gemeinsame Spalte" ("Shared Column") eine Alternative? Natürlich nur, wenn die Berechnung der Spalte immer identisch ist. Dann hättest du das zumindest an einer Stelle und müsstest es nur einmal anpassen.

Gruß,

Mitch
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: pram am 24.09.12 - 14:49:24
Man kann irgendwie* die Spalte auf Userdefiniert stellen und ein Profildokument angeben in dem die komplette Spaltenformel angegeben ist.

Gemeinsame Spalten wären wohl die beste Lösung (diese haben aber auch ihre Tücken)

Gruß
Roland

* Ich habe es aber bis jetzt nur zum Laufen gebracht, wenn max. 1 Spalte pro Ansicht diese Einstellung hat und selbst da auch nicht immer so funktioniert wie ich wollte (hab dann die Werte auch in den Dokumenten abgelegt)
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: it898ur am 24.09.12 - 15:16:40
Wenn man per Agent nicht jedes mal alle Dokumente anpassen will, kann man natürlich im Profildokument eine Formel pflegen, die dann per Agent in die jeweiligen Ansichten (Design - NotesViewColumn.Formula ist das Stichwort) eingebaut wird - sollte man zeitlich aber nach dem Design-Task laufen lassen.

Ansonsten funktioniert dies recht gut, um in verschiedenen Datenbanken mit gleicher Schablone individuelle Berechnungen zu ermöglichen.

Gruß

André
Titel: Re: Frage zu Views und @GetProfileField
Beitrag von: ascabg am 24.09.12 - 15:23:05
Zitat
Na weil das veränderliche Werte sind, die oft angepasst werden müssen und der Aufwand jedesmal alle Dokumente anzupassen unterlassen werden sollte.
Warum alle Docs anpassen, wenn ich den Wert nur zur Anzeige benötige?

Jetzt muss ich doch noch einmal etwasa fragen.

Du hast Dokumente, in denen Preise 'enthalten' sind. Diese sind veraenderlich.
(eventuell sogar Angebote/Kostenvoranschlaege)
Diese sind zum Zeitpunkt X mit dem Preis Y berechnet worden.

Aufgrund der Marktlage muessen die Preise angepasst werden.

Und nun sollen die neuen Preise auch auf die 'alten' Dokumente angewendet werden?

Heisst Kunde A hat einen Preis A bezahlt, dieser aendert sich und was soll der Kunden jetzt
machen. Differentbetrag nachzahlen?

Das waere ja so, als wenn ich bei einer Firma einen neuen Rechner kaufe zum Betrag von 500,00 EUR.
Die Firma aendert die Preise und verlangt von mir, dass ich den Differenzbetrag, z.B. 50,00 EUR
nachzahle, obwohl ich den Rechner ja bereits bezahlt habe.

Man moege es mir verzeihen, aber was ist denn das fuer ein Quatsch.

Oder ich habe den Sinn und zweck des Ganzen (noch) nicht richtig verstanden.


Andreas