Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: JanHoener am 27.04.05 - 15:14:14

Titel: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 15:14:14
hallo zusammen.
Folgendes Problem: Ich möchte in einer Ansicht eine Aktion einbauen, die mir zu jeder Spalte den Feldnamen anzeigt, deren Inhalt in dieser Spalt angezeigt wird.
In der Messagebox sollte dann in etwa sowas stehen:

1. Spalte: Vorname
2. Spalte: Nachname
3. Spalte: Wohnort
...

Kann mir jemand helfen? Am beten in Lotus Script?

Danke und Gruß Jan
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: umi am 27.04.05 - 15:21:03
Hi

Wirf mal ein Auge auf die NotesViewColumn klasse

gruss
umi
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: Thomas Schulte am 27.04.05 - 15:25:32
Oder auch zwei Augen.

nein im Ernst View, Viewentry und Viewcolumn ist genau das was du brauchst.
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 15:30:19
sorry Jungs, aber ich bin nicht so fit in Lotus Script. Habe mir zwar die Klassen angesehen, weiss aber nichts damit anzufangen. Könntet ihr evtl. etwas konkreter werden?
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: koehlerbv am 27.04.05 - 15:37:15
Jan, was willst Du mit dem Ergebnis dann eigentlich anfangen ? Ich habe da so einen gewissen Verdacht ... Sehr viele Spalten basieren ja gar nicht auf einzelnen Feldern, sondern zum Teil auf komplexen Formeln.

Bernhard
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 15:50:21
ja, das mit den Formeln wäre ein arges Problem.
Ich möchte die Feldnamen übernehmen und dann den Inhalt gewisser Felder vergleichend darstellen.
Um aber nun den Code über jede x-beliebige View laufen zu lassen, benötige ich ja erstmal die Feldnamen der in der View angezeigten Dokumente. Wichti dabei ist, dass ich auch die richtige Reihenfolge beibehalte. Also Der Feldname in der ersten Spalte gilt quasi als Hauptvergleichsmerkmal.
Ich denke mal, dass ich komplexe Formeln in den Spalten außer Acht lassen kann. Ich beschränke mich auf reine Feldinhaltsspalten.
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: umi am 27.04.05 - 15:54:55
So mal auf die Schnelle:

Code
dim session as new notessession
dim db as notesdatabase
dim view as notesview

set db = session.currentdatabase
set view = db.getview("MEinView")
forall cols in view.columns

if cols.isfield = true then

 print "In Spalte " & cols.position & " ist das feld " & cols.itemname
end if

end forall


Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 15:59:10
danke.
Habe den Namen meiner View anstelle von MEinView wingetragen, aber nix tut sich. Hab ich was vergessen? Es wird nichts angezeigt!?!
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: umi am 27.04.05 - 16:04:02
Es sollte der Text in der Statusbar erscheinen. Bei mir gehts ohne Probleme
Hat die Ansicht Felder? oder nur Formeln?

gruss
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 17:13:33
achso, alles klar...gesehen...danke.
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: koehlerbv am 27.04.05 - 20:55:58
Aber Dein Prof hat schon Recht - Du musst das generischer machen, Jan. Das mit den Feldnamen ist nicht gerade "allgemeingültig". Ich habe gerade mal ein paar Nullachtfuffzehn-Apps von mir durchgesehen: Da würdest Du mit dieser Methode fast keinen Erfolg erzielen. Für die Prüfung auf "Redundanzen" müsste man dann pro DB jeweils eine eigene View einbauen - und da gibt es dann auch ganz andere Möglichkeiten.

Bernhard
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 27.04.05 - 23:06:05
und da gibt es dann auch ganz andere Möglichkeiten.

Bernhard

welche denn? :-)
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: koehlerbv am 27.04.05 - 23:33:58
Das wurde schon mehrfach erwähnt, Jan: Pattern based searches, die sich an Items bzw. Item-Kombinationen in Dokumenten orienteren. Auf jeden Fall sind meines Erachtens nach aber Normierungen der bestehenden Daten der jeweils spezifischen Datenbanken zu berücksichtigen. Hierfür kann man durchaus in gewisser Weise "generisch" vorgehen, in dem man typische Situationen vordefiniert und per Setup weitere Situationen beschreiben kann. M.E. geht das aber ebenso über eine Studienarbeit hinaus wie auf der anderen Seite Notes-Ansichten für eine "Redundanz"-Prüfung zumindest fraglich, meines Erachtens aber aus Sicht einer Allgemeingültigkeit sogar ungeeignet sind.

Ein Beispiel für die Herausforderung:
a) "Johann-Wolfgang-von-Goethe-Strasse 4" kann durchaus die selbe Adresse meinen wie
b) "Goethe 4a / Stiege 2" (ist dann vermutlich in Wien  ;D)

Wenn die PLZ für a) dann aber D-60311 ist und für b) 1010 Wien, dann hast Du ein eindeutiges Ergebnis, was Du aber nie auf Basis, die nur auf NotesViews basiert, erzielen wirst.

Ich würde mal sagen: Halte es mit IKEA "Erkenne die Möglischkejten", aber versuche, nicht zu sehr in Detaillösungen abzugleiten. Zumindest ohne genaue Absprache mit Deinem Prof stehst Du da momentan absolut im kalten Regen - und das prüfende Kollegium wird dies verstehen. Deine Argumentation muss eben nur stimmen.

Bernhard
Titel: Re: Feldnamen aus Ansicht auslesen
Beitrag von: JanHoener am 28.04.05 - 14:02:22
Hi Bernhard.
Da hast du absolut recht. Der Code zur Redundanzerkennung steht bereits und ist auch so ansich abgesegnet. Ich möchte auch nicht weiter ins Detail gehen, sondern ansich nur den vorhandenen Code auslagern und damit generischer gestalten. Ausnahmen gibt es bei soetwas immer. (Z.B., wenn eine Spalte nicht nur einen Feldwert aufweist sondern aus einer Formel besteht. Gleiches gilt für die Viewselection). Aber ich muss auch nicht jede Ausnahme berücksichtigen, wenn ich das dan plausibel erkläre.
Mein Ziel ist es, den vorhandenen Code auszulagern.

Meine Überlegungen sind folgende:
Ich baue in eine Ansicht eine Aktion ein (oder Toolbaricon). Diese Aktion ruft das Script in der Script-DB auf. An die Feldinhalte komm ich über die Viewselectionformula, die mir die benutzte Maske mit den Feldern wiedergibt. Ich vergleiche die Dokumente und erstelle ein neues Dokument aus den beiden und speicher es ab.

Das ist jetzt reine Theorie gewesen und ich weiss nicht mal, ob das überhaupt so möglich ist.

Jan