Autor Thema: Nach Auswahl über Dialogliste andere Werte in versteckte Felder schreiben  (Gelesen 7171 mal)

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Hallo Zusammen,

ich tu mich gerade etwas schwer damit, eine Art m:n Beziehung in Notes zu realisieren...
Ich weiß ja das Notes nicht relational ist..

Die Idee ist die... Ich habe 2 Dokumente.

In 1 Dokument wähle ich etwas aus. Sagen wir mal einen Fall.
Dieser Fall kommt aber aus einem anderen Dokument.

Per DbColumn kein Problem...

In der dazugehörigen View sollen aber nachher die Infos aus Dokument 1 und Fall angezeigt werden.

Mit Response Dokument kann ich da leider nicht arbeiten um $Ref nutzen zu können...
Kann ja x Fälle geben.

Also war meine Idee... Der Benutzer wählt ja eh Fälle aus.
Also gehe ich nach der Auswahl aus der Dialogliste hin und hol mir einfach die Auswahl...
Wenn ich die Auswahl habe, dann hole ich die mit UniqueIDs der Dokumente..
Und dann kann ich über GetDocField das Feld zur Anzeige ran holen...

Kann man diese Überlegung als richtig ansehen? Ich bin leider kein Guru auf dem Gebiet.  :(

Falls Ja, wie würde ich an die UniqueID im Fall Dokument kommen?

LG,
Thomas

Offline AC

  • Senior Mitglied
  • ****
  • Beiträge: 367
  • Geschlecht: Männlich
Ich verstehe jetzt die Anwendung, Gegebenheiten und Anforderungen  nicht ganz.
Kann sich an den Dokumenten danach auch noch etwas ändern?

Können nicht die Infos aus dem einem Dokument ( oder mehreren?)  in das andere Dokument geschrieben werden?
Dann kannst Du diese Felder einfach im View mit anziehen  

Klar ist, wenn im nachhinein doch noch etwas an einem Dokument geändert wird,  müsste das im anderen Doument auch mit reingeschrieben werden ( Script oder Agent etc) .

Du schreibst zu wenig über die Anwendung um zu entscheiden ob das ein gangbarer Weg ist oder welche Methode sich am besten eignet.

Gruß Alexander
« Letzte Änderung: 18.12.13 - 18:43:24 von AC »
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Introduction
Microsoft Certified Technology Specialist Microsoft Dynamics NAV 5.0 C/Side Solution Development

"...Glücklich ist, wer vergisst, was doch nicht zu ändern ist..."

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Hallo Thomas

Für diese Art von Beziehungen verwende ich immer ein eigenes Schlüsselfeld.
Per Lotusscript ist dies relativ einfach zu bauen.

Benutzer wählt per PicklistCollection das Dokument aus einer Ansicht aus.
Dadurch erhalte ich direkt das Notesdokument und kann alle benötigten Items kopieren und diese in einer Ansicht darstellen.


Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Hallo Urs,

danke für die Antwort... Ich habe das mal versucht.
Allerdings erhalte ich die Meldung... Ganz komisch.
Das die DB nicht existieren würde... Genauer: File does not exist.

Mein Code:

Code
Set col = ws.PickListCollection(3,1,db.Server,s.CurrentDatabase.FileName,"n_GP_List","Bitte wählen...","Bitte wählen...")

Wo liegt denn das Problem?

LG,
Thomas

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Verwende mal Filepath anstelle von Filename

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Huhu... Nochmal Ich.

Also ich habe das mal probiert...
Klappt ja auch.

Aber das Problem mit der Picklist ist ja dann, dass ich nicht mehr erkennen kann, was ich bereits einmal ausgewählt habe. Gibt es da auch eine Möglichkeit?

Wie gesagt ich bin da leider kein Experte.  :(

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Das ist tatsächlich ein großer Nachteil der Picklist.

Da kannst alternativ auch mit einem Prompt arbeiten (gibt es auch im NotesUIWorkspace), und baust Dir die Auswahlliste so zusammen, dass Du als Alias die UniversalID hast.

Als Ergebnis des Prompt hast Du dann die UniversalID, mit der Du die benötigten Daten holst.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Ich habe früher auch noch mit einer anderen Alternative gearbeitet.

Du baust dir eine Ansicht, die auch versteckt sein kann. In der ersten Spalte zeigst du die Werte an die der User zur Auswahl nutzt. Diese Spalte muss dass auch sortiert sein. In der zweiten Spalte nimmst du alle Felder auf deren Inhalte genutzt werden sollen und verbindest sie mit dem "~" - Zeichen. Also so zum Beispiel: Feld1 + "~" + Feld2 + usw.

Der Anwender wählt nun in einer Dialogliste aus der ersten Spalte den Wert aus. Danach liest du mit "@dblookup" und dem ausgewählten Wert als Schlüsselbegriff die zweite Spalte aus und zerlegst den Rückgabewert mit @word und schreibst die Werte in die entsprechenden Felder.

Allerdings funktioniert das Ganze nicht mit Inhalten von RTF-Feldern und außerdem könnte es Probleme geben wenn du Inhalte aus sehr vielen Feldern benötigst.

Eine andere Alternative wäre auch eine Ansicht wie oben, nur dass allen Feldern in separaten Spalten  enthalten sind. Im Dokument wählt der Anwender dann wieder in einem Dialogfeld den entsprechenden Wert aus. Alle Felder die dann Werte aus dem ausgewählten Dokument enthalten sollen sind dann berechnete Felder und in der Formel liest du mit @dblookup mit dem Wert aus dem Dialogfeld als Schlüssel die entsprechenden Spalten der Ansicht aus.

Es gibt viele Wege nach Rom.

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

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Hallo Zusammen,

habe dazu noch einmal eine Frage...

Für mich sieht es gerade so aus, dass ich ausßer der Dialog List, also dem Feld mit Typ Dialog List keine Möglichkeit habe zu erkennen, was einmal ausgehwählt wurde...

Picklist kann das nicht und Prompt scheinbar auch nicht...
Ist das tatsächlich so?

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Aus dem Beispielscript der Hilfe

response = workspace.Prompt (PROMPT_OKCANCELLIST, _
  "Select a Database", _
  "Select a database to open.", _
  values(0), values)

Warum sollte Prompt das nicht können? Du musst natürlich den Vorgabewert mitgeben ...

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Vielen Dank dafür...

Ich stehe nun aktuell vor einem anderen Problem, dass ich einfach nicht verstehen kann...

Folgender Code:

Code
		viewEntries = v.EntryCount
		
		Redim valArr (viewEntries)
		
		For i = 1 To viewEntries
			k = doc.GetItemValue("GP_Bezeichnung")
			valArr(i) = k(0)
			Set doc = v.GetNextDocument(doc)
		Next
		
		GP_Prompt = ws.Prompt(7,"Bitte wählen...","Bitte wählen Sie aus.",Item2Arr,valArr)


Das Problem ist, ich habe immer eine 1 leeres Element in der ganzen Auswhalliste.
Die Vorselektierung mittels Item2Arr klappt prima.

Aber ein leeres Element, welches ich auch auswählen kann hab ich trotzdem drin.

Selbst dann wenn ich beim EntryCount eines abziehe.

Dann fehlt mir ein Value und der leere Eintrag ist trotzdem da...

Kann mir da jemand helfen?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Du dimensionierst Dein Array ja auch für ein Element zuviel - hast also immer ein leeres Element.
Also entweder viewEntries - 1 oder nach der Schleife ein Fulltrim aufs (mehr oder weniger) gefüllte Array.

HTH,
Bernhard

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Vielen Dank.  :)

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Was mir gerade noch auffällt...

ItemArr2 ist ja ein Array was auch mit 3 Werten gefüllt ist.

Die Vorauswahl wählt aber nur 1 aus.
Obowhl in der Help steht ich kann ein Array dort rein geben im Prompt.

Ist das alles kompliziert.  ???

Vorauswahl Array und Values stimmen aber überein.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Und alle Deine Default-Values sind in dem Auswahl-Array auch vorhanden? Dort nicht vorhandene Werte werden sonst ignoriert.
PROMPT_OKCANCELLISTMULT (oder 7) war auch im Code, als Du das ausprobiert hast?

Bernhard

Offline ThomasHB

  • Aktives Mitglied
  • ***
  • Beiträge: 164
Ja die sind vorhanden...

Zählt möglicherweise die Reihenfolge wie sie im Array stehen?

Es kann durchaus sein, dass die Werte für Default anders rein geladen werden, als jene die für die Values ran gezogen werden.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz