Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: chakoe am 18.11.04 - 22:33:55

Titel: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 18.11.04 - 22:33:55
Hallo zusammen,

ich habe mal wieder Fragen:

Ich habe eine Datenbank, in welcher eine HardwareDokumentation liegt, eine zweite
in der Aufträge erstellt/bearbeitet/verwaltet werden.

Ich möchte nun einen neuen Auftrag erstellen. Dazu wähle ich z.b. den Hostnamen eines Systems aus ( die betreffenden Felder habe ich in beiden DB´s gleich benannt ( t_Seriennummer, t_Hostname).

Ich möchte gerne eine Dialogliste, welche mir als Inhalt sämtliche Hostnamen aus der DB der Hardwaredoku auflistet. Wählt man dann aus dieser Dialogliste einen Hostnamen aus, so füllt eine Funktion dann entsprechend einige andere Felder ( Seriennummer, Standortdaten)

Wie kann ich das realisieren? Welche Infos muß ich sonst noch liefern, damit mir jemand helfen kann?
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: -Michael- am 18.11.04 - 22:40:10
Ich möchte gerne eine Dialogliste, welche mir als Inhalt sämtliche Hostnamen aus der DB der Hardwaredoku auflistet.
Geht über @DBColumn, siehe Designerhilfe.

Wählt man dann aus dieser Dialogliste einen Hostnamen aus, so füllt eine Funktion dann entsprechend einige andere Felder ( Seriennummer, Standortdaten)
Das kannst Du dann z.B. über @DBLookup bewerkstelligen, siehe auch Designerhilfe.

Schau Dir mal die beiden @Functions genau an, wenn Du dann nicht weiter kommst: poste Deine bisherige Umsetzung mit detaillierter Problembeschreibung, dann kann man sich das ansehen und entsprechend helfen.

Michael
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 19.11.04 - 12:46:49
Hi @ll,

ich habe das Feld, in dem die Auswahl erscheinen soll, als Dialogliste definiert.
Dann habe  ich dort unter Vorgabewert die Formel eingetragen

@DbColumn("notes";"NoCache";"SERVERNAME";"ORDNER\UNTERORDNER\Datenbank.nsf";"Ansicht";Spalte")

Beim Testen in Notes bekomme ich immer den Fehler, daß die Datei nicht vorhanden ist.
Feld:'t_Bezeichnung':Datei nicht vorhanden
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 19.11.04 - 12:54:55
Hi,

die Formel hat im Vorgabewert erstmal nichts zu suchen. Die gehört in die Auswahlformel. Die findest du im Eigenschafts-Dialog auf dem zweiten Reiter.

Zum zweiten glaube ich, dass einige deiner Parameter nicht stimmen. Z.B., dein Server heisst bestimmt nicht "Servername". Da musst du den Namen deines Servers eintragen.

Schau mal in die Designer-Hilfe, da wird alles gut beschrieben. Außerdem gibt es Beispiele.


Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 19.11.04 - 12:56:49
Ausserdem würde ich mal die Syntax von @dbColumn checken - SO werden Server und Dateiname nicht angegeben.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 19.11.04 - 13:22:26
Hi,

das der Servername nicht " Servername" lautet, ist klar, wollte nur meine schreibweise bzw. interpretation des befehls erläutern...

Ich habe mal ein bischen herumprobiert und in der Designerhilfe geblättert, und habe die Formel nun wie folgt zurechtgelegt:

@DbColumn("";"";"serverdoku.nsf";AlignSheet";2).

Die Datenbank ist definitiv vorhanden, die Ansicht auch. nun bekomme ich immer die Fehlermeldung: Feld:'t_Bezeichnung':Eine Ansicht mit diesem Namen wurde in der angegebenen Datenbank nicht gefunden.

Wird auf Groß/kleinschreibung geachtet?
Wie werden denn ggfs. der Server und die Dateinamen und Ordner angegeben.
Möglicherweise stehe ich auf meinen Augen.....

Das das Feld, in dem die Serverbezeichnungen stehen sollen (ausgelesen aus der Spalte2 einer Ansicht in einer anderen DB) als Typ eine Dialogliste ist, ist doch korrekt, oder?

bin, wie man sicherlich merkt, ein ziemlicher rookie in sachen designing, sorry
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 19.11.04 - 13:26:04
Hi,

auf den ersten Blick würde ich sagen, dass liegt an einem fehlenden Anführungszeichen vor dem Ansichtenname.


Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 19.11.04 - 13:35:09
Ich hatte ja schon einmal auf die Syntax hingewiesen: Zwischen Servernamen und Dateinamen gehört kein Semikolon hin, sondern ein Doppelpunkt.

@Axel: Mit dem fehlenden Anführungszeichen hätte das der Designer gar nicht zur Speicherung zugelassen.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 19.11.04 - 13:37:37
Bernhard,

stimmt. Dass mit dem Doppelpunkt hab ich dabei übersehen. Aber wie konnte er dann trotzdem speichern?


Axel
 
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 13:21:15
Hallo,

ich habe grade mal zeit, wieder an dem Punkt anzufangen, und ich hoffe, ich stoße noch auf ein paar offene Ohren:

Ich habe nun folgendes gemacht:

""die Formel hat im Vorgabewert erstmal nichts zu suchen. Die gehört in die Auswahlformel. Die findest du im Eigenschafts-Dialog auf dem zweiten Reiter.""

Also handelt es sich nun um Feld vom Typ Dialogliste, Bearbeitbar.
Dann habe ich folgende formel genommen:

@DBColumn("";"":si-server.nsf";"AlignSheet";2)

Beim Testen erscheint dann aber im Popup der Dialogloiste noch immer der Fehler

Eine Ansicht mit diesem Namen wurde in der angegebenen Datenbank nicht gefunden

WAs ist nun zu tun.

Beide DB´s liegen auf demselben Server, im selben Unterverzeichnis, und die Ansicht gibt es auch. Sucht er da nach einem Alias für die Ansicht, oder nach dem Namen.
Dürfen evtl. Name und Alias nicht identisch sein?
Muß ich evtl. den kompletten Pfad zur DB angeben?
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 13:40:14
Hi,

in deiner Formel fehlt zwischen dem Doppelpunkt und dem Datenbanknamen ein Anführungszeichen.

Die Formel muss so aussehen:

@DBColumn("";"":"si-server.nsf";"AlignSheet";2)


Sucht er da nach einem Alias für die Ansicht, oder nach dem Namen.
Dürfen evtl. Name und Alias nicht identisch sein?
Muß ich evtl. den kompletten Pfad zur DB angeben?

Es wird sowohl nach dem Namen alsauch nach dem Alias-Namen gesucht.
Name und Alias darf identisch sein.
Wenn die Datenbank in einem Unterverzeichnis zu Data liegt, dann musst du das Verzeichnis auch angeben.

Axel

Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 13:51:24
die Anführungszeichen hatte ich drin, leider
nimmt mir der Disgner immer wieder den Backslash
etc. aus der Formel.....

habe das so angegeben:

\Verzeichnis\unterverzeichnis\unterverzeichnis\si-server.nsf

sobald ich die formel mit dem haken bestätige, nimmt er die \ wieder raus.....
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Raymond am 24.11.04 - 14:18:34
Ersetzte die Backslash (\) durch Doppelbackslash, also

\\Verzeichnis\\unterverzeichnis\\unterverzeichnis\\si-server.nsf

Gruss - Ray
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 14:32:53
@DbColumn("";"":"\\BEMS\\KUNDEN\\BWS\\si-server.nsf";"AlignSheet";2)

so sieht die formel jetzt aus, der pfad passt, die Ansicht AlignSheet gibts, und in
Spalte 2 steht das was ich will.

Was mach ich denn nun falsch, das er jetzt " Datei nich vorhanden" meldet?
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Raymond am 24.11.04 - 14:55:51
Die DB ist sicher auf dem lokalen Rechner und nicht auf einem Domino Server?

Falls lokal, versuch es mal so:

@DbColumn( "" : "NoCache" ; "" : "\\BEMS\\KUNDEN\\BWS\\si-server.nsf" ; "AlignSheet" ; 2 )



Gruss - Ray
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 14:56:53
Hi,

wie es aussieht, sucht er die DB lokal. Du musst den Server eintragen.

@DbColumn("";"Name deines Servers":"\\BEMS\\KUNDEN\\BWS\\si-server.nsf";"AlignSheet";2)


Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: klaussal am 24.11.04 - 15:06:35
So sieht das Beispiel in der Hilfe aus:

@DbColumn( Klasse : Cache ; Server : Datenbank ; Ansicht ; Spaltennummer )

Lösung:
@DbColumn( "" : "NoCache" ; "Servername" : "\\BEMS.....nsf" ; "AlignSheet" ; 2 )
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 15:10:51
@DbColumn("";"Name deines Servers":"\\BEMS\\KUNDEN\\BWS\\si-server.nsf";"AlignSheet";2)

diese Formel hat funktioniert! danke!

nun muß ich nurnoch zusehen, daß ich, sobald in dem untenstehenden Feld ein Wert ausgewählt wurde, ein paar andere Felder, Quelle ist sie selbe DB/Ansicht, gefüllt werden.

Dieses geht mit DBLookup, richtig? jetzt lese ich schonmal in der Designerhilfe, aber vielleicht kann mir schon jemand zuvorkommen
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 24.11.04 - 15:18:27
jetzt lese ich schonmal in der Designerhilfe, aber vielleicht kann mir schon jemand zuvorkommen

Du solltest dringend die Designer-Hilfe lesen. Das ganze Gedöns mit @dbColumn ist dort bestens beschrieben und mit etlichen Beispielen versehen. Gleiches gilt natürlich auch für @dbLookup.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 15:24:33
Hi,

richtig, das geht mit @DbLookup. Allerdings ganz so problemlos wird das nicht gehen. Denn um das Dokument eindeutig zu identifizieren braucht du die ID des Dokumentes.

Folgender Ansatz hat sich bewährt:

Du baust dir eine Ansicht die als Auswahlansicht fungiert und in einer versteckten Spalte die benötigten Feldinhalte zusammengesetzt enthält (Spaltenformel FeldA + "~" + FeldB usw.)

In deiner Maske fügst du einen Hotspot ein. Dort ziegst du die Ansicht an und als Spalte gibst du die versteckte Spalte mit den zusammengebauten Feldinhalten an.

Beispielhafter Code:

FIELD Feld1 := Feld1;
FIELD Feld2 := Feld2;

value := @Picklist([Custom] : [Single] ; Server : Datei ; Ansicht ; Titel ; Eingabeaufforderung ; Spalte)

@SetField("Feld1"; @Word(value; "~"; 1));
@SetField("Feld2"; @Word(value; "~"; 2));

Ich hoffe du kommt mit der Kurzerklärung klar.

Axel





Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 24.11.04 - 15:28:36
Wenn der Schlüssel eindeutig ist - bei einem "Horst" sollte das eigentlich der Fall sein - kann der aber auch als Schlüssel für das @dbLookup verwendet werden. Das Verfahren wäre dann simpler.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 15:39:22
Ein bischen Hilfe brauche ich noch:

In welcher Datenbank wird diese Ansicht benötigt?
In der Quelle ( Server Dokumentation) oder Ziel
(Auftragsdatenbank)?

Welcher Schlüssel? Die Dokumente-ID?
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 15:51:44
Du brauchst die Ansicht in der Quell-Datenbank.


Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 16:17:23
das hilft mir alles noch nicht so sehr viel weiter, da das alles
relativ bömische Dörfer für mich sind, und ich zu wenig damit zu tun
habe.... ich weiß, daß nervt ein bischen..

Zwischenfrage:

Gibts denn irgendwas für Dummies zum lernen und nachschlagen, was auch ziemlich
einfach und anschaulich erklärt ist.

Ich habe den Herdt Datenbankentwicklung 1 durchgearbeitet, daß war okay (Wenn ich mehr damit machen würde/müsste)

Dann habe ich noch ein Buch zum nachschlagen, " Lotus Notes & Domino R5 Leitfaden für den Einstieg von "Computer & Literatur"

Was genau ist eine Auswahlansicht?
Versteckte Spalte?
Was hat es mit der Formel auf sich?

Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 16:23:12
Hi,

eine Auswahlansicht ist eine ganz normale Ansicht, wie jede andere auch.

In den Spalteneigenschaften kannst du einstellen, ob eine Spalte für den Anwender sichtbar sein soll oder nicht. Programmtechnisch kannst du auf jeden Fall auf diese Spalte zugreifen, wie auf jede andere Spalte auch.

Welche Formel meinst du denn?


Axel
 
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 24.11.04 - 16:51:28
Ich meine die Formel

Du baust dir eine Ansicht die als Auswahlansicht fungiert und in einer versteckten Spalte die benötigten Feldinhalte zusammengesetzt enthält (Spaltenformel FeldA + "~" + FeldB usw.)

Wie soll ich denn die Felder in eine Spalte packen?
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Driri am 24.11.04 - 17:05:27
Du hast deine Frage doch quasi selber beantwortet  ;D

Mit FeldA + "~" + FeldB packst Du doch die Feldinhalte mehrere Felder in eine Spalte.
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 19:24:47
Hi,

Driri hat es ja bereits schon gesagt: du hast die Frage dir selbst beantwortet. Wobei die Feldnamen FeldA und FeldB nur Beispiele sind.

Der Sinn der dahinter steckt ist folgender. Mit der Funktion @Picklist bekommst du den Inhalt einer Spalte (welche, das gibst du als Parameter an) geliefert.
Wenn du nun mehrere Felder brauchst, müsstest du normalerweise die ID des Dokumentes haben und dann x-mal einen @DbLookup machen. Ausserdem bräuchtest du noch eine Ansicht, die nach der ID sortiert ist.
In dem jetzt beschriebenen Fall, dass du die Feldinhalt zusammensetzt, bekommst du mit einem Schlag alle Feldinhalte auf einmal geliefert, getrennt durch ~. Mit der Funktion @Word wird der Rückgabewert dann in die einzelnen Elemente zerlegt.

Ich hoffe es ist nun klarer geworden.

Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 24.11.04 - 19:36:41
Moment, moment - macht es nicht komplizierter, als es ist: "chakoe" liest mit @dbColumn doch schon erstmal einen Host aus. Der sollte ja einen eindeutigen Schlüssel haben. Er hat damit auch schon eine Ansicht seine "Horsts". Dann soll er erstmal - da ihm ja jegliche Basics noch fehlen - für die weiteren Felder mit @dbLookup und diesem eindeutigen Schlüssel die benötigten Werte auslesen.

Mit PickList in einer entsprechenden Schaltfläche kann man das Ganze dann später immer noch verfeinern.

@chakoe: In dem Dialoglisten-Feld für den "Horst" musst Du als Feldeigenschaft einstellen: Felder bei Schlüsselwortänderung aktualisieren. Die berechneten Felder, die sich per @dbLookup die anderen Werte zum Host ziehen, werden so bei jeder Änderung neu berechnet.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 24.11.04 - 20:00:17
@Bernhard

wenn "Horst" eindeutig ist und man die Dokumente mit dem Wert, der in der Dialogliste vorhanden ist eindeutig identifizieren kann, stimme ich mit dir überein. Dann die deine vorgeschlagene Lösung sicherlich die einfachste.


@chakoe
Ich hab' mal auf die Schnelle eine Demo zusammengestrickt. Die LookupDB.nsf enthält die Dokumente zum Nachschlagen. Das wäre in deinem Fall die DB mit den Hostnamen.
Die TestDB enthält eine Maske mit einem Button neben dem Feld NachName. Hier wird dir eine Picklist angezeigt in der du, aus der LookupDB, einen Eintrag wählen kannst. Es werden dann die dazugehörigen Werte in die anderen Felder übernommen.

Du musst beide DBs in lokale Data-Verzeichnis kopieren. Dann sollte das funktionieren.


Axel
 
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 24.11.04 - 20:40:51
Axel, meine "Versimpelung" funktioniert natürlich wirklich nur, wenn der via @dbColumn ausgewählte Schlüssel eindeutig ist. Ansonsten gelten andere Verfahren, die ja teilweise schon hier genannt wurden.

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 25.11.04 - 00:45:14
@"chakoe"

Bitte besuche einen Entwickler-Kurs, hol' Dir jemanden für ein "training on the job, lies zumindest ein paar gute Bücher (schwieirg in dem Umfeld, zugegebenermassen).

Aber so wird das nix. Zur Zeit hast Du ja offensichtlich selbst noch Schwierigkeiten, die Designer-Hilfe zu lesen. Wir können (und wollen) hier keine kostenlose "Kurse für Entwickler" anbieten - das würde auch sowieso niemals funktionieren. Axel hat sich hier schon ganz, ganz weit mit einer Beispiel-DB aus dem Fenster gelehnt. Aber genauso gut könntest Du die mitgelieferten DBs / Templates studieren - best practices findest Du dort zuhauf.

Bevor ich mich jetzt hier weiter engagiere, würde ich von Dir gerne wissen: Wie willst Du Deine Weiterbildung zukünftig betreiben ?
Das Forum kann Dir dabei hervorragend helfen, aber nur, wenn Du auf konkrete Probleme stösst. In diesem Thread haben wir Dir alle nur aus der DesignerHelp "vorgelesen", und das kann es wirklich nicht sein.

Du bist hier (selbstverständlich) herzlich willkommen - aber tu' was !

Bernhard
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 25.11.04 - 08:08:33
... Axel hat sich hier schon ganz, ganz weit mit einer Beispiel-DB aus dem Fenster gelehnt.


Wer fängt mich auf wenn ich rausfalle  ??? ???  ;)

Axel

Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: klaussal am 25.11.04 - 08:35:52
ALLE !!
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 25.11.04 - 08:50:05
Danke.  ;D

Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 25.11.04 - 13:15:52
Hallo zusammen,

erstmal vorweg: Danke, daß ihr überhaupt bis hierhin " drangeblieben"
seit.

Mein Problem ist, daß ich eigentlich beim Kunden das RZ betreue, und
" nebenbei " mal eben bei uns in der Firma " diese und jene Kleinigkeit"
realisieren soll. Leider hab ich nun mal nicht jeden Tag mit der Materie zu tun,
sodaß sich auch eine gewisse " Routine " nicht so leicht einstellen lässt.

Ich habe mir mal von einem Bekannten die Bücher

Notes/Domino 5: Einführung in die LotusScript-Programmierung
Anwendungsentwicklung unter Lotus Notes/Domino 5

von Addison-Wesely besorgt, vielleicht bringt mich das ein bischen weiter,
wenn zeitlich hinhaut....

Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: Axel am 25.11.04 - 19:22:33
@chackoe

Hat dich die Demo-Datenbank irgendwie weiter gebracht?


Axel
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: chakoe am 28.11.04 - 22:38:50
Hi,

ja, die DB hat mich weitergebracht, vielen dank dafuer!

ich werde dann mal zusehen, dass ich mich, soweit moeglich,
in dieser Richtung weiterbilde!

Schoenes Wochende
Titel: Re: Felder aus anderen Datenbanken abfragen
Beitrag von: koehlerbv am 29.11.04 - 00:18:06
erstmal vorweg: Danke, daß ihr überhaupt bis hierhin " drangeblieben"
seit.

Kein Problem, ... wie heisst Du eigentlich mit Vornamen ? ... Wir melden uns schon, wenn es so nicht mehr weitergeht, und Du wirst hier weiter Unterstützung finden !

Mein Tipp an dieser Stelle: Stürz' Dich jetzt noch nicht auf LotusScript. Du tust Dir und anderen damit erstmal (!) noch keinen Gefallen. Du musst Dir erstmal die Notes-Basics erarbeiten mit den @functions und @commands und damit dem prinzipiellen Aufbau von Notes. LS nützt Dir sonst nichts.

Dabei und auch beim Weg zu LS findest Du hier immer offene Ohren und helfende Hände. Geh' es aber langsam und gründlich an. So wie die, die heute als Fachleute gelten. Die sind da auch nicht anders hingekommen !

Bernhard

PS: Und wie gesagt - in diesem Forum bitte noch einen echten Vornamen. Der AtNotes-Server steht nicht in Pullach ;-)