Autor Thema: Noch eine Picklist-Frage(Datenbankauswahl)  (Gelesen 3147 mal)

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Noch eine Picklist-Frage(Datenbankauswahl)
« am: 24.05.04 - 11:21:08 »
Da TMC's Picklist-Frage bereits erledigt ist, mach ich mal eine neue auf: Ich möchte folgendes realisieren: Der Benutzer wählt in einer geöffneten DatenbankA (über eine Picklist) eine andere DatenbankB aus. Anschließend wird eine festgelegte Ansicht (ebenfalls "Picklist-mäßig") angezeigt und der Benutzer kann dann in dieser zweiten Picklist ein oder mehrere Dokumente auswählen. Die ausgewählten Dokumente werden dann in die zuerst geöffnete DatenbankA als Kopie übernommen.
Ich habe sowas schon mal vor einiger Zeit realisiert; jedoch handelte es sich damals bei der DatenbankB um das eigene Mailfile des Benutzers, welches einfach über OpenMail geöffnet wurde. Deshalb gabs halt damals nur eine Picklist. Jetzt möchte ich dem Anwender ermöglichen, aus mehreren Datenbanken eine auszuwählen. Ist mein Ansatz da zu empfehlen oder würdet Ihr sowas anders lösen? Wie krieg ich ggf. die beiden Picklists zum Funktionieren?
(Gehen wir mal davon aus, dass die in der ersten Picklist anzubietenden Datenbanken in einem Konfig-Dok festgelegt werden - max. drei DB's)

mein Code von damals:
   Call QuellDB.OpenMail
   Set ZielDB = session.CurrentDatabase
   Set coll = ws.picklistCollection(PICKLIST_CUSTOM, False, QuellDB.server, QuellDB.filepath, _
   "($Inbox)", QuellDB.title, "Bitte wählen Sie ein Dok zur Übernahme aus!", "")
   If coll.count > 0 Then
      Set doc = coll.GetFirstDocument      
      Do While Not doc Is Nothing
         Set tmpdoc = coll.GetNextDocument(doc)
         Set newdoc = doc.CopyToDatabase(ZielDB)
         Call newdoc.PutInFolder("($Inbox)",True)
         Set doc = tmpdoc
      Loop
   End If

Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #1 am: 25.05.04 - 10:35:03 »
Hi,

wie du schon geschrieben hast, würde ich die, in Frage kommenden Datenbanken, in einem Konfig.-Dokument hinterlegen. Diese kann man dann über die Funktion Prompt (siehe Posting von TMC) anzeigen und auswählen. Den Rückgabewert verwendest du dann innerhalb der Picklist. Der Einfachheit halber würde ich dabei PickListCollection verwenden. Die liefert dir dann schon eine Collection mit den ausgewählten Doc-Handles zurück.

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #2 am: 25.05.04 - 16:52:09 »
Danke, Axel.
Das habe ich soweit hinbekommen, aber daraus hat sich gleich eine Anschlussfrage ergeben: In dem Konfigdokument möchte ich gern auch eine Ansicht festlegen, aus der dann die Dokumente ausgewählt werden können. Da ich es nicht für zumutbar halte, dass die Anwender wissen, wie denn die Ansichten in der Datenbank heißen, hätte ich jetzt gern folgenden Dialog programmiert:
Der Anwender hat eine bestimmte Datenbank ausgewählt und nun möchte ich, dass er alle verfügbaren Ansichten und Ordner als Picklist-Dialog angezeigt bekommt, um eine auszuwählen.
Ich stelle mir das so vor, dass der Auslöser dieses Dialogs ein Button in meinem Konfig-Dok sein soll.
Also im Endeffekt möchte ich in meinem oben geposteten Code bei der Picklist-Collection die zu öffnende Ansicht (fettgedruckt) auch aus dem Konfig-Dok nehmen und das Konfig-Dok-Feld "Ansicht" soll per Dialog gefüllt werden.
Set coll = ws.picklistCollection(PICKLIST_CUSTOM, False, QuellDB.server, QuellDB.filepath, _
   "($Inbox)", QuellDB.title, "Bitte wählen Sie ein Dok zur Übernahme aus!", "")
Ist das verständlich ausgedrückt??? ???
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #3 am: 25.05.04 - 19:08:24 »
Ist das verständlich ausgedrückt??? ???

Ich glaube ich hab's verstanden. Du legst im Konfig.-Dokument die Datenbanken fest und willst zu jeder DB auch noch verschiedene Ansichten bzw. Ordner hinterlegeb, die der User dann auswählen können soll. Richtig?

Eine Idee auf die Schnelle wäre, pro DB ein Dokument anzulegen, das den Pfad und Name der DB enthält und eine Liste der zur Verfügung stehenden Ansichten enthält. Über eine Picklist lässt du den User die DB wählen und holst die dann die entsprechenden Angaben aus dem Dokument und übergibst sie der eigentlichen Picklist.

Beispiel:

...
Set coll = ws.picklistCollection(PICKLIST_CUSTOM, False, currentDB.server, currentDB.filepath, _
  "(KonfigDocLookup)", currentDB.title, "Bitte wählen Sie die Datenbank zur Übernahme aus!", "")
Set docKonfig = coll.GetFirstDocument
varAnsicht = ws.Prompt( PROMPT_OKCANCELLIST, currentDB.title, "Wählen sie bitte die Ansicht aus:", "" , docKonfig.NameAnsicht )
Set coll = ws.picklistCollection(PICKLIST_CUSTOM, False, docKonfig.ServerDB(0), docKonfig.NameDB(0), _
  varAnsicht(0), currentDB.title, "Bitte wählen Sie die Datenbank zur Übernahme aus!", "")
...

Die Konfig-Doks enthalten vier Felder:
1. eine Bezeichnung - über die wählt der Anwender das entsprechende Dok aus
2. Textfeld ServerDB - hier steht der Servername drin
3. Textfeld NameDB - hier ist der Datenbankname incl. Pfad enthalten
4. Textfeld NameAnsicht (Mehrfachfeld) - Liste der Ansichten

Die Ansicht über die ausgewählt wird heißt KonfigDocLookup und stellt in der ersten Spalte das Bezeichnungsfeld dar.


So oder so ähnlich könnte es funktionieren

Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #4 am: 26.05.04 - 10:12:24 »
Ich glaube ich hab's verstanden. Du legst im Konfig.-Dokument die Datenbanken fest und willst zu jeder DB auch noch verschiedene Ansichten bzw. Ordner hinterlegeb, die der User dann auswählen können soll. Richtig?
Genau so war es gemeint.
Allerdings hatte ich gedacht, dass es irgendwie möglich wäre die Ansichten auch per Picklist aus der gemeinten Datenbank zu ziehen.
So müsste der Benutzer auch "händisch" die Ansichten in das Konfig-Dok eintragen, was ich eigentlich vermeiden wollte.
Aber, wenn man die auswählbaren Datenbanken begrenzen  könnte, wäre das auf jeden Fall eine Überlegung wert. Danke.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #5 am: 26.05.04 - 11:37:41 »
Allerdings hatte ich gedacht, dass es irgendwie möglich wäre die Ansichten auch per Picklist aus der gemeinten Datenbank zu ziehen.

Hi,

mit ein bisschen Aufwand müsste das auch möglich sein. Mit der Eigenschaft Views aus der Klasse NotesDatabase bekommst du eine Auflistung aller Ansichten und Ordner einer DB.

Beispiel aus der Designer-Hilfe:

Dim session As New NotesSession
Dim db As NotesDatabase
Set db = session.CurrentDatabase
Forall v In db.Views
  Messagebox(  v.Name  )
End Forall

Wenn du nun als db die vom User ausgewählte DB nimmst, v.Name in ein Array schreibst und dieses ws.Prompt(PROMPT_OKCANCELLIST,...) übergibst kann der User auch die Ansicht auswählen. Mit einer Picklist funktioniert das allerdings nicht.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline g202e

  • Senior Mitglied
  • ****
  • Beiträge: 361
  • Geschlecht: Männlich
  • Was nicht tötet, härtet ab!
Re:Noch eine Picklist-Frage(Datenbankauswahl)
« Antwort #6 am: 28.05.04 - 10:01:03 »
Danke.
Werde ich bei Gelegenheit mal ausprobieren.
Für dieses Mal wird es nicht benötigt. Die Konfig-Doks werden ja von Admins gepflegt und die wissen(angeblich), was sie da eintragen müssen.
Domino 5.0.11/LN 5.011(german)/NT4 + SP6a

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz