Autor Thema: Picklistcollektion - Gesamtzahl der Dokumente vor Auswahl bestimmen  (Gelesen 1982 mal)

Offline Mirko

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
Hallo alle miteinander,
ich habe hier schon eine Weile gesucht, habe aber noch nicht das passende gefunden. Deshalb mal die Beschreibung meines Problems:
In einer Bestell-DB bekommt der Benutzer die zur Bestellung gehörenden Dokumente (Antwortdokumente) in einer eingebetteten Ansicht zu sehen. Nun soll er die Möglichkeit haben, die Bestellung zu teilen. Dazu biete ich momentan die Antwort-Dokumente in einer Picklistcolletion zur Auswahl an. Allerdings macht das nur Sinn, wenn es mehrere Antwort-Dokumente gibt. Ich würde die Picklist gern unterdrücken, wenn es kein Antwortdokument dafür gibt.
Ich kann mir per collection=view.GetAllEntriesByKey... die "auswahlfähigen" Antworten zusammensuchen, dann könnte ich davon den collection.Count nutzen. Aber wie könnte ich die Dokumente in der Collection dann dem Anwender zur Auswahl anzeigen?
Hat jemand eine Idee? Gibt es noch was, das ich nicht gefunden habe (So erfahren bin ich ja noch nicht)

Viele Grüße
Mirko

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Du kannst dir doch über NotesDocument.Responses alle zum Dokument gehörenden Antworten in eine Collection packen und dann über Collection.Count die Anzahl ermitteln. Oder denke ich da zu einfach?

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

Offline Mirko

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
Das ging ja schnell...

Hallo Axel,
Alle Antworten geht nicht - da sind auch welche dabei, die nicht mehr verschben werden dürfen.
Aber wie könnte ich dem Anwender den Inhalt meiner Collection zur Auswahl anbieten???
Als Ergebnis dessen will ich ja dann mit einer ("geringeren Menge") Collection weiterarbeiten.

Viele Grüße
Mirko

Offline HH

  • Senior Mitglied
  • ****
  • Beiträge: 339
  • Geschlecht: Männlich
Wenn du den Weg über eine PickList gehen möchtest, dann verwende doch Picklistcolletion mit dem letzten Parameter, $SingleCategory. Oder habe ich das Problem nicht richtig verstanden?

Hubert

Offline Klaas

  • Junior Mitglied
  • **
  • Beiträge: 78
  • Geschlecht: Männlich
Warum nimmst du denn Sqript?

Würde es nicht gehen? Wenn du ein @dblookup auf die ansicht machst, die du ja eh schon hast für die eingebettet ansicht?
Dann hast du die Anzahl der Antwortdoc's und dank dem Lookup auch den Parameter der dafür verantwortlich ist das die Docs verschoben werden oder nicht.
Dann machst du ein @ReplaceSubstring, um die zu löschen die nicht verschoben werden dürfen. Über bleibt ein Array mit leeren Arraystellen. Das müsste dann mit einem @Trim auf die Gefüllten Arraystellen gekürtzt werden und dann kannst du das mit @Count die Anzahl der Verfübaren Docs zurück geben.
Code
Schluessel:="nichtVerschieben";
AllDoc:=@DbLookup(....;SchlüsselFeld);
VDoc:=@Trim(@ReplaceSubstring(ALLDoc;Schluessel;""));
Result:=@Count(VDoc)
Result
Also vielleicht hilft dir das ja auch.
Das ist das erste mal das ich ein Code nur so im Kopf entwickelt habe, ohne ihn selbst zu testen.
Ich hoffe er geht.

Offline Mirko

  • Junior Mitglied
  • **
  • Beiträge: 57
  • Geschlecht: Männlich
Erst mal Danke für Eure Mitarbeit ;-)
@Klaas
irgendwie gefällt mir Script besser ;-)
Mit @dblookup bekomme ich nur Werte einer Spalte

Noch mal zur Erklärung: zu einer Bestellung können 2 verschiedene Antwort-Typen gehören. Entweder aktive Positionen (Form="Position") oder stornierte (Form=Storno). Jetzt nutze ich eine Picklistcollection mit SigleCategory. Funktioniert ja soweit ganz gut. Wenn ich jetzt nur eine aktive Position habe, macht es keinen Sinn, diese zu verschieben. Also soll der User eine Meldung "Unsinn!!" bekommen und die Picklist entfallen. Außerdem soll er darauf hingewiesen werden wenn er versucht, alle vorhandenen Positionen zu verschieben. Dazu brauche ich die Anzahl aller Dokumente, die in der Picklist angezeigt werden.
Ich könnte mit
Code
	Set view = db.GetView("$aktiv")
Set col = view.GetallEntriesByKey(ws.CurrentDocument.Document.UniversalID)
Messagebox col.count
auch die Anzahl der interessierenden Dokumente ermitteln. Nun wäre es natürlich sinnvoll, diese Collection gleich zu nutzen. Aber dafür fehlt mir eine Möglichkeit. Jetzt müsste ich als nächstes mit
Code
	Set teilcol = ws.PickListCollection( 3 ,True, Fileserver, Filename,"($aktiv)","Positionswahl","Bitte Positionen auswählen",currdoc.UniversalID)
die Auswahl für den Benutzer anzeigen. Ich habe Angst, dass das im produktiven Umfeld irgend wann mal zu viel Rechenzeit frisst. Für die Auswahl ist aber auch so was wie die Picklist nötig, da verschiedene Spalten angezeit werden sollen.
Dummerweise gibt es keine Beziehung zwischen dem Dokument und der darin eingebetteten Ansicht. Oder irre ich micht hier?

Viele Grüße
Mirko

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz