| |
| KISTERS 3DViewStation: Mit Modellbasiertem Design zum Modellbasierten Unternehmen (MBE), eine Pressemitteilung
|
Autor
|
Thema: Multiselection von Publications (930 / mal gelesen)
|
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 16. Mrz. 2018 10:54 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe folgendes Problem: Per Marko will ich mehrere erstellte Publications auswählen und in einer Listbox anzeigen. Bisher klappt das noch nicht so richtig. Meine Idee: Code:
Set vselection1 = CATIA.ActiveDocument.Selection InputObjectType(0) = "AnyObject" vselection1.Clear Status = vselection1.SelectElement2(InputObjectType, "Bitte selektieren Sie die erstellten Publications!", False) Set Publications= vselection1.Item(1).Reference vselection1.Clear If (Status = "Cancel") Then MsgBox "Makro wurde abgebrochen", 16, makroname & " " & version Exit Sub End If Makro1_2_C_AUSWAHL.TextBox15.Value = Publications.Name End Sub
Weiß kann mir jemand dabei helfen? Viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 16. Mrz. 2018 18:19 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Was klappt denn nicht? Die Multiselektion oder das Eintragen in eine Textbox? Zum Auslesen/Eintragen musst du auch einen Schleife über die selektierten Element laufen lassen. zB: Code: for i = 1 to vselection1.count2 Set MyPublication = vselection1.item2(i).Value 'Hier was damit machen Beispiel: MsgBox MyPublication.Name next
Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 19. Mrz. 2018 08:36 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, vielen Dank für deine Antwort. Das Eintragen in die TextBox klappt. Leider aber nur einmal. Ich hätte gerne, dass alle selektierten Publications dort eingetragen werden. Die Liste soll sich mit klicken auf die Publications füllen. Hast du eine Idee wie das geht? Viele Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mrz. 2018 08:41 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Hast du denn mehrere selektiert? (count der Selektion auswerten) Hast du eine Schleife über alle Elemente der Selektion laufen? (siehe mein Code) ggf fehlt dir noch das zusammensetzen eines Strings mit den einzelnen Namen der Veröffentlichungen (Schleife, String verketten, Zeilenwechsel) Gruß Bernd PS: Hast du nun eine Textbox oder eine Listbox in die du was eintragen willst? ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 19. Mrz. 2018 09:43 <-- editieren / zitieren --> Unities abgeben:
Hi also das mit der for i = 1 to vselection1.count2 klappt auch noch nicht so ganz. Ich habe mir jetzt erster mal mit Code: For i = 1 To 100
abgeholfen. Diese Schleife läuft nun mehrfach die Selektion ab. Zitat: ggf fehlt dir noch das zusammensetzen eines Strings mit den einzelnen Namen der Veröffentlichungen (Schleife, String verketten, Zeilenwechsel)
Leider weiß ich nicht wie das geht. Könntest du mir da eventuell helfen? Natürlich habe ich eine Listbox. Mein Fehler. Grüße Mehrere Items werden in meinem Makro aufgenommen. Aber nicht angezeigt. [Diese Nachricht wurde von Student051089 am 19. Mrz. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mrz. 2018 09:54 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Dir fehle da wohl ein paar Grundlagen (bitte mal nachholen) Beispiel: Code: Dim StrNamenListe as String StrNamenListe = "" for i = 1 to oselection.count2 Set MyPublication = oselection.item2(i).Value StrNamenListe = StrNamenListe & MyPublication.Name & Chr(13) & Chr(10) next MsgBox StrNamenListe
Gruß Bernd EDIT: Wenn du die Elemente in eine Listbox packen willst, dann schau mal dazu in die Doku (vermutlich mit AddItem) ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 19. Mrz. 2018 13:48 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, das klappt jetzt mittlerweile recht gut mit meiner ListBox. Vielen Dank für die Hilfe! Nun kam mir die Idee, dass ich dem Anwender das ganze soweit erleichtere, dass das Makro die vorhandenen Publications einliest und in der ListBox zur Auswahl darstellt. Im Buch von Herrn Hansen habe ich hierzu die Search Funktion entdeckt. Wie im Buch beschrieben funktioniert die auch schon sehr gut. Ist es hier möglich einen Filter auf Publications zu legen? Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bgrittmann Moderator Konstrukteur
Beiträge: 12005 Registriert: 30.11.2006 CATIA V5R19
|
erstellt am: 19. Mrz. 2018 13:55 <-- editieren / zitieren --> Unities abgeben: Nur für Student051089
Servus Zur Suche über die Selektion: das lässt sich sehr gut mit der Makroaufzeichnung aufnehmen. Dabei den Filter möglichst weit einschränken (zB Filter aus Element bestimmen) Falls du nur die Veröffentlichungen aus dem aktuellen Dokument auslesen willst könntest du doch einfach die Collection der Publictations auslesen und abarbeiten (Doku) Gruß Bernd ------------------ Warum einfach, wenn es auch kompliziert geht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Student051089 Mitglied
Beiträge: 44 Registriert: 23.08.2017 Catia V5 R26
|
erstellt am: 19. Mrz. 2018 15:26 <-- editieren / zitieren --> Unities abgeben:
Hi Bernd, ich hab es raus! Vielen Dank für deine Hilfe! Meine Lösung: Code: For i = 1 To oPubs.Count osel.Add oPubs.Item(i).Valuation Set oPublication = oPubs.Item(i) ListBox1.AddItem oPublication.Name Next i
Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |