Autor Thema: picklistcollection  (Gelesen 5091 mal)

Offline ditodotorg

  • Frischling
  • *
  • Beiträge: 17
picklistcollection
« am: 21.09.12 - 20:09:33 »
Hallo liebe Foren-User!

Ich bin Notes-Neuling und gerade an einer Datenbank dran, in der ich unter anderem eine PickListCollection versteckt habe :-)

Meine Frage ist nun, wenn ich dem Programm den Befehl gegeben habe, eine Picklist zu erstellen und ich dann aus der Picklist auch eine Auswahl getroffen habe, dann merkt er sich diesen Vorgang nun erstmal im Hintergrund, oder? Denn das Problem ist, dass ich die Auswahl nach anklicken in der Picklist nicht angezeigt wird.....????

Vielleicht verstej ich auch einfach nur den Befehl nicht, aber ich hoffe doch, dass jemand eine Lösung sieht....

Vielen Dank schonmal für etwaige Hilfe...

Sonnige Grüße
Kathi hats gesagt!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: picklistcollection
« Antwort #1 am: 21.09.12 - 20:33:14 »
Du hast eine Ansicht gebastelt, zeigst die an und wählst ein paar Dokumente aus, richtig?
Dann bekommst eine Collection im Backend zurück.
Wo erwartest du denn, dass etwas angezeigt wird?

aus der Hilfe:


Picklistcollection

Return value
This method returns a NotesDocumentCollection object containing the selected documents. If the user clicks Cancel, the collection is empty and the Count property is 0.
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ditodotorg

  • Frischling
  • *
  • Beiträge: 17
Re: picklistcollection
« Antwort #2 am: 21.09.12 - 21:16:38 »
mh... also das ganz ist etwas komplexer... ich bin innerhalb einer form... dort kreierte ich eine actionbar... in dieser gibt es einen button mit der aufforderung eine picklist in einem dialogfenster zu öffnen... in dieser befindet sich ja eine ansicht... und wenn ich dann etwas in dieser ansicht auswähle soll er mir die form mit diesem inhalt füllen....
Kathi hats gesagt!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: picklistcollection
« Antwort #3 am: 21.09.12 - 21:44:20 »
Und wie füllst du das Ergbenis in die Form?

d.h., du musst dann ein set collectionAuswahl = .........

danach musst du die collectionAuswahl in irgendeiner Art und Weise verarbeiten, sonst ist die nach Ende des Scriptes weg
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Re: picklistcollection
« Antwort #4 am: 21.09.12 - 22:20:53 »
Aus der Collection musst Du das Dokument (ich gehe davon aus, dass nur eines ausgewählt wird, sonst musst Du durch alle Dokumente durch und das, was Du haben willst, zusammenrechnen) herausbekommen, z.B. mit Set picklistdoc = picklistcol.GetFirstDocument

Von diesem Dokument übernimmst Du dann die gewünschten Informationen in Dein aktuelles Dokument. Über NotesUIWorkspace hangelst Du Dich über das NotesUIDocument zum NotesDocument

Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document

dann übernimmst Du die Daten

doc.FeldImAktuellenDokument = picklistdoc.FeldImGewähltenDokument

Ganz wichtig sind die Begrifflichkeiten: Du füllst niemals eine Form. Eine Form (Maske) ist ein Gestaltungselement, mit dessen Hilfe Du ein Dokument anzeigen, bearbeiten und/oder erstellen kannst. Das, was Du füllst, ist ein Dokument, dort schreibst Du in Items Werte, die ggf. in Feldern der Maske angezeigt werden. Maske ist die Gestaltung, Dokument ist der Inhalt. Der Inhalt muss nicht zwingend mit der Maske übereinstimmen (d.h. Du kannst in Dokumenten Items haben, zu denen es kein passendes Feld in der Maske gibt). Das musst Du gedanklich trennen.
« Letzte Änderung: 21.09.12 - 22:25:48 von Peter Klett »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: picklistcollection
« Antwort #5 am: 21.09.12 - 23:32:24 »
Kathi, willkommen im Forum! Wir hoffen, wir können Dir beim Start helfen und Du bleibst dem Forum treu und kannst irgendwann selbst wieder die Wissensstafette weiterreichen . ;)

Drei Tipps von mir:
- Erstens: Formuliere immer primär das Ziel, das Du errreichen willst sowie die Rahmenbedingungen. Meist führen mehrere Wege nach Rom.
- Schreibe so, dass es die AtNotesler leicht lesen und verstehen können. Kleinbuchstaben kommen da gar nicht gut, wenn sie den wichtigen, richtigen Grossbuchstaben den Platz streitig machen.

Zum Thema:
Nach der Übernahme von Daten aus einem anderen Dokument, die Du evtl. über das Backend (siehe Peters Beispiel) schiebst, musst Du ggf. das aktuell offene Frontend-Dokument explizit refreshen. Also bitte nicht wundern, wenn Du via document properties siehst, das die Übernahme geklappt hat, Du das aber im Frontend doch nicht angezeigt bekommst oder von der Änderung abhängige Berechnungen nicht gemacht werden.
Sollte das bei Dir zutreffen, eröffne bitte mit Verweis auf diesen einen neuen Thread - das könnte dann auch für andere Newbees interessant sein, die später mal hier nachlesen.

Gutes Gelingen!
Bernhard

Offline ditodotorg

  • Frischling
  • *
  • Beiträge: 17
Re: picklistcollection
« Antwort #6 am: 22.09.12 - 15:30:12 »
Hallo an alle!

Vielen Dank erstmal für die vielen Ratschläge auch hinsichtlich der Formulierung....

Für die Formulierungen entschuldige ich mich sehr, ich muss noch viel lernen als Neuling :-)

Eventuell ist es hilfreicher, wenn ich mal meine bisherige Programmierung zeige.....


Sub Click(Source As Button)
   Dim session As New NotesSession
   Dim col As Notesdocumentcollection
   Dim db As NotesDatabase
   
   Set db=session.CurrentDatabase
   Dim uiws As New NotesUIWorkspace
   
   Set col=uiws.PickListCollection(picklist_custom,_
   False,_
   db.Server,_
   "beispiel.nsf",_
   "Patientenkartei",_
   "Wählen Sie ein Dokument",_
   "Dokumentwahl")
   
   Set picklistcol = picklistcol.GetFirstDocument
   
   Dim uidoc As NotesUIDocument
   Set uidoc = uiws.CurrentDocument
   Dim doc As NotesDocument
   Set doc = uidoc.Document
   
   doc.lastname = picklistdoc.lastname
   
   
End Sub


Allerdings sagt er bis jetzt nur "variant does not contain an object"...
Auf welche 'variant' bezieht sich dieser Ausdruck? auf das Feld 'lastname'?

Die Frage ist auch, wenn ich mit dem Befehl "doc.lastname = picklistdoc.lastname" das feld lastname anspreche, ist das auch nur ein Feld... ich habe allerdings sehr viele Felder in dem Document....... gibt es da eine Erleichterung?

Nochmals vielen Dank für die Geduld mit mir und die vielen Vorschläge...

Sonnige Grüße
Kathi hats gesagt!

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: picklistcollection
« Antwort #7 am: 22.09.12 - 16:00:47 »
Der Debugger ist Dein Freund. Durchsteppen und Du siehst, wo er auf die Nase fällt.
Ordentliches Fehlerhandling (on error ...) würde natürlich auch helfen, da könntest Du Dir z.B. die Zeilennummer ausgeben, in welcher der Fehler auftritt.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: picklistcollection
« Antwort #8 am: 22.09.12 - 16:20:11 »
Über diese Zeile

Code
Set picklistcol = picklistcol.GetFirstDocument

solltest Du nochmal nachdenken - das ist nämlich Schwachfug. Und nicht deklariert, aber das macht es weder schlimmer noch besser.

Bernhard

Offline ditodotorg

  • Frischling
  • *
  • Beiträge: 17
Re: picklistcollection
« Antwort #9 am: 22.09.12 - 16:38:55 »
@m3: Dank für den Tip... den kannte ich noch nicht, sehr hilfreich...

@koehlerbv: Hab ich mitbekommen *grins* kann man nicht mal wirklich anfängerfehler nennen.... *beschämt guck*

Hab jetzt den Debugger befragt und der hat ein Problem wenn ich New NotesSession wähle, sowie wenn ich New NotesUIWorkspace wähle... Also hab ich das geändert in ohne New....
Ob das sinnvoll is, weiß ich allerdings nicht...

Jetzt hat er aba noch ein Problem mit der Deklaration der Variablen 'db'... Nur warum?
Kathi hats gesagt!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: picklistcollection
« Antwort #10 am: 22.09.12 - 16:40:04 »
schreib mal ein 'Option declare' rein.

Und stell dir unter den Eigenschaften des Designerfensters ein, dass immer 'Option declare' zugefügt wird. Wenn du alten Code öffnest, wirkt das zwar nicht, aber zumindest bei neuem.


Dann meckert dich dein Code beim speichern an, wenn du col und picklistcol verdrehst
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: picklistcollection
« Antwort #11 am: 22.09.12 - 16:41:47 »
Was zeigt der Debugger denn für session und uiws an? Sind die da oder nicht?
mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline ditodotorg

  • Frischling
  • *
  • Beiträge: 17
Re: picklistcollection
« Antwort #12 am: 22.09.12 - 17:17:59 »
also...

@DAU-in:

Das 'Option declare' funktioniert ja mal genial..... danke dafür..

Für Session wird halt 'notessession' und für uiws wird 'notesuiworkspace' im Debugger angezeigt...

Hilft das weiter?
Kathi hats gesagt!

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: picklistcollection
« Antwort #13 am: 22.09.12 - 18:05:56 »
Ist db schon irgendwo anders deklariert worden?


mach eine neue Aktion, und schmeiß alles weg, und fang von vorne an.

deklariere eines nach dem anderen, und belege es. dann immer sofort speichern.

Und sortiere deine deklarierten Variablen oben, ich gehe immer von session, db, collection oder view, dann Notesdoument
immer vom übergeordneten zum 'weiter innen liegenden'

Und trenne die Backend und die Frontendvariablen sauber.

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: picklistcollection
« Antwort #14 am: 23.09.12 - 00:32:40 »
Hab jetzt den Debugger befragt und der hat ein Problem wenn ich New NotesSession wähle, sowie wenn ich New NotesUIWorkspace wähle... Also hab ich das geändert in ohne New....
Ob das sinnvoll is, weiß ich allerdings nicht...

Nein, das ist ist wirklich *nicht* sinnvoll. Lies bitte in der Doku nach, was diese beiden übergeordnetsten Klassen überhaupt bedeuten, bei Verständnisfragen melde Dich hier mit konkreten Problemen.
Und was unsere Hilfsbereitschaft bremst, sind faktenlose Aussagen wie "der hat ein Problem". Ja - welches denn?? Mit der entsprechenden Meldung können wir sofort helfen, ohne müssten wir unsere Glaskugeln aus dem Schrank holen, und das tut sich hier eigentlich niemand mehr an.

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz