| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
| Integriertes PTC-Add-On ModelSearch , ein Anwenderbericht
|
Autor
|
Thema: Beziehung in Wiederholbereich Stückliste (2074 / mal gelesen)
|
astor Mitglied Senior Manager of myself, Vice President of my Desk
Beiträge: 106 Registriert: 20.06.2002 Creo Parametric 7.0.5
|
erstellt am: 09. Jan. 2018 19:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Gemeinde, ich habe ein neuerliches Problem. Wir führen gerade eine Umstellung auf neue Startmodelle + neue Zeichnungsrahmen durch. Im PDM sind aber weiterhin die alten Serienteile verfügbar. Diese haben entsprechend auch alt Parameter: Alt: Benennung Zusatzbenennung Projekt_Nummer Neu: Naming Add_naming Project_number Ich möchte jetzt in der Spalte Benennung der Stüli wenn vorhanden die neuen Parameter abfragen. Und wenn nicht vorhanden die alten eintragen. Sonderfall: In einzelnen alten Teilen sind die Parameter nicht alle vorhanden bzw. mit Textwerten gefüllt. In dem Fall soll nix geschrieben werden. Ich habe zu dem Zweck mit folgender Beziehung im Wiederholbereich experimentiert. Das funktioniert mit den Parametern Benennung/NAME auch. Nur beim aktivieren der Beziehung für Zusatzbenennung/ADD_NAME und Projekt_Nummer/PROJECT_NUMBER rennt das Sytem in eine Fehlermeldung bei Aktualisieren der Tabelle. Die Beziehungen werden aber immer erfolgreich verifiziert. Beziehung
Code:
/* Benennung generieren If Exists("ASM_MBR_NAMING") Titel_100=asm_mbr_naming Else Titel_100=asm_mbr_benennung Endif/* Zusatzbenennung generieren If Exists("ASM_MBR_ADD_NAMING") Titel_200=asm_mbr_add_naming Else If Exists("ASM_MBR_ZUSATZBENENNUNG") Titel_200=asm_mbr_zusatzbenennung Else Titel_200=" " Endif Endif /* Projektnummer generieren If Exists("ASM_MBR_PROJECT_NUMBER") Titel_300=asm_mbr_project_number Else If Exists("ASM_MBR_PROJEKT_NUMMER") Titel_300=asm_mbr_projekt_nummer Else Titel_300=" " Endif Endif
In den Wiederholbereich der Stüli trage ich dann
Code:
&rpt.rel.Titel_100 &rpt.rel.Titel_200 &rpt.rel.Titel_300
ein. Kann mir jemand einen Tipp geben, was ich falsch mache! Mit freundlichen Grüßen Astor [Diese Nachricht wurde von astor am 10. Jan. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
EWcadmin Moderator Konstrukteur (Dipl.-Ing. Maschinenbau), CAD-/PDM-Admin.
Beiträge: 3254 Registriert: 27.10.2005
|
erstellt am: 10. Jan. 2018 07:44 <-- editieren / zitieren --> Unities abgeben: Nur für astor
Moin Astor, ich habe vor dem gleichen oder zumindest ähnlichen Probloem gestanden wie Du. Leider habe ich jetzt nicht die Zeit, Deine Beziehungen zu untersuchen, daher stelle ich Dir hier einfach meine Lösung rein in der Hoffnung, das Du diese evtl. bei Dir adaptieren kannst. Der erste Teil der Beziehungen spiegelt eigentlich Deine Problematik wieder, der zweite Teil liegt etwas anders. Da gab es einen Parameter Norm, der alleine in der Spalte der Stückliste stand. Nach der Umstellung hat der Parameter einen neuen Namen und es gibt einen zweiten Parameter, der alternativ angezeigt werden kann. In unserer neuen Datenbank darf entweder der eine oder der andere Parameter gefüllt sein. Beide gefüllt ist nicht zulässig. In der Stückliste soll dann in der gleichen Spalte einer der drei Parameter angezeigt werden entsprechend den Regeln. Im Wiederholbereich der Stückliste stehen dann die Parameter mit bom_ am Anfang. Code: alt1 = "" alt2 = "" alt3 = "" neu1 = "" neu2 = "" neu3 = ""IF exists ("asm_mbr_benennung_1") alt1 = asm_mbr_benennung_1 ENDIF IF exists ("asm_mbr_zeichnungsnr") alt2 = asm_mbr_zeichnungsnr ENDIF IF exists ("asm_mbr_art_nr") alt3 = asm_mbr_art_nr ENDIF IF exists ("asm_mbr_sap_description_de") neu1 = asm_mbr_sap_description_de ENDIF IF exists ("asm_mbr_sap_drawing_name") neu2 = asm_mbr_sap_drawing_name ENDIF IF exists ("asm_mbr_sap_article_number") neu3 = asm_mbr_sap_article_number ENDIF IF neu1 == "" bom_name = alt1 bom_drwnr = alt2 bom_artnr = alt3 ELSE bom_name = neu1 bom_drwnr = neu2 bom_artnr = neu3 ENDIF
Teil 2: Code: nrm = "" std = "" trd = "" bom_stdtrd = ""IF exists ("asm_mbr_norm") nrm = asm_mbr_norm ENDIF IF exists ("asm_mbr_sap_standard") std = asm_mbr_sap_standard ENDIF IF exists ("asm_mbr_sap_trade_name") trd = asm_mbr_sap_trade_name ENDIF IF string_length(nrm) > 1 bom_stdtrd = nrm ENDIF IF string_length(trd) > 1 bom_stdtrd = trd ENDIF IF string_length(std) > 1 bom_stdtrd = std ENDIF
------------------ Grüße aus OWL, Thomas ProE macht Spaß - viel ProE macht viel Spaß ! (Zitat, frei nach meinem ProE-Beibringer) Neu auf CAD.de? Diese Infos werden Dir den Einstieg erleichtern: Willkommen auf CAD.de Auch sehr hilfreich für ProE-/Creo-Neulinge: ProE konfigurieren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
arni1 Ehrenmitglied V.I.P. h.c.
Beiträge: 3985 Registriert: 17.12.2002 Pro/E seit Version 11 Creo6 HP Z210 Intel Xeon 3.3GHz; 20 GB RAM NVIDIA Quadro 2000 HP ZR30w Win10 64bit
|
erstellt am: 10. Jan. 2018 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für astor
Ich konnte keine Fehlermeldung mit diesen Parametern+ Beziehungen produzieren!? Zudem sind die Beziehungen für /* Benennung generieren meines Wissens aber unwirksam, da im Wiederholbereich asm_mbr_name immer den Namen des Objektes anzeigt und nicht (bei vorhandensein) einen Objektparameter mit Bezeichnung Name ! Gruß Arni
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astor Mitglied Senior Manager of myself, Vice President of my Desk
Beiträge: 106 Registriert: 20.06.2002 Creo Parametric 7.0.5
|
erstellt am: 10. Jan. 2018 18:37 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von arni1: Ich konnte keine Fehlermeldung mit diesen Parametern+ Beziehungen produzieren!?Zudem sind die Beziehungen für /* Benennung generieren meines Wissens aber unwirksam, da im Wiederholbereich asm_mbr_name immer den Namen des Objektes anzeigt und nicht (bei vorhandensein) einen Objektparameter mit Bezeichnung Name ! Gruß Arni
Richtig stimmt, heißt real aber auch anders, wollte das schematisch rüber bringen. Ich erhalte beim Verifizieren der Fehlermeldung auch keinen Fehler. Aber im Wiederholbereich gibt das System einen Fehler aus und lässt dann zwischendrin einzelne Zellen bzw. die ganze Spalte leer. Ich erhalte aber keinen Hinweis auf den Fehler. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astor Mitglied Senior Manager of myself, Vice President of my Desk
Beiträge: 106 Registriert: 20.06.2002 Creo Parametric 7.0.5
|
erstellt am: 10. Jan. 2018 18:41 <-- editieren / zitieren --> Unities abgeben:
Könnte der Fehler darin liegen, dass siehe Beitrag von EWcadadmin: Code:
alt1 = "" alt2 = "" alt3 = "" neu1 = "" neu2 = "" neu3 = ""
die verwendeten Parameter als String (Inhalt leer) definiert wurden? Das probier ich mal Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astor Mitglied Senior Manager of myself, Vice President of my Desk
Beiträge: 106 Registriert: 20.06.2002 Creo Parametric 7.0.5
|
erstellt am: 11. Jan. 2018 23:46 <-- editieren / zitieren --> Unities abgeben:
|
EWcadmin Moderator Konstrukteur (Dipl.-Ing. Maschinenbau), CAD-/PDM-Admin.
Beiträge: 3254 Registriert: 27.10.2005
|
erstellt am: 12. Jan. 2018 07:12 <-- editieren / zitieren --> Unities abgeben: Nur für astor
Bitte, gern geschehen. Wie sieht denn Deine Lösung jetzt aus bzw. welchen Tel von meiner Lösung konntest Du denn gebrauchen? ------------------ Grüße aus OWL, Thomas ProE macht Spaß - viel ProE macht viel Spaß ! (Zitat, frei nach meinem ProE-Beibringer) Neu auf CAD.de? Diese Infos werden Dir den Einstieg erleichtern: Willkommen auf CAD.de Auch sehr hilfreich für ProE-/Creo-Neulinge: ProE konfigurieren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
astor Mitglied Senior Manager of myself, Vice President of my Desk
Beiträge: 106 Registriert: 20.06.2002 Creo Parametric 7.0.5
|
erstellt am: 23. Jan. 2018 19:12 <-- editieren / zitieren --> Unities abgeben:
Code:
alt1 = "" alt2 = "" alt3 = "" neu1 = "" neu2 = "" neu3 = "" IF exists ("asm_mbr_benennung_1") alt1 = asm_mbr_benennung_1 ENDIF IF exists ("asm_mbr_zeichnungsnr") alt2 = asm_mbr_zeichnungsnr ENDIF IF exists ("asm_mbr_art_nr") alt3 = asm_mbr_art_nr ENDIF IF exists ("asm_mbr_sap_description_de") neu1 = asm_mbr_sap_description_de ENDIF IF exists ("asm_mbr_sap_drawing_name") neu2 = asm_mbr_sap_drawing_name ENDIF IF exists ("asm_mbr_sap_article_number") neu3 = asm_mbr_sap_article_number ENDIFIF neu1 == "" bom_name = alt1 bom_drwnr = alt2 bom_artnr = alt3 ELSE bom_name = neu1 bom_drwnr = neu2 bom_artnr = neu3 ENDIF
passt perfekt, hab das nur auf meine Parameter angepasst. Vielen Dank noch einmal! Ich bleibe bei meiner Vermutung, dass es hilfreich ist die Parametertypen und deren Werte vor als leer zu definieren. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |