| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Erweitere suche über Verknüpfungen (1495 mal gelesen)
|
Jörg2 Mitglied
Beiträge: 509 Registriert: 20.02.2007
|
erstellt am: 11. Jun. 2007 09:57 <-- editieren / zitieren --> Unities abgeben:
|
freak-tom Moderator PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2015 ECTR
|
erstellt am: 11. Jun. 2007 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
Hallo Jörg, ob man eine erweiterte Suche einrichten kann weis ich leider nicht würde ich allerdings auch benötigen. Ich kann dir allerdings sagen, wie du ein Symbol im Compass anzeigen lassen kannst. Und je nachdem ob der Eintrag mit einem Projekt verknüpft ist oder nicht wird ein anderes Symbol angezeigt! Würde dir das helfen? MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg2 Mitglied
Beiträge: 509 Registriert: 20.02.2007
|
erstellt am: 11. Jun. 2007 17:38 <-- editieren / zitieren --> Unities abgeben:
Hmmm, dann könnte man doch die Konstruktionsdokumente nach diesem Symbol sortieren? Dann würde mir das schon mal helfen! Möglicherweise bekommt man das Symbol ja auch igendwie in die Auswahlliste der erweiterten Suche. ??? => EntitieTypes => Visible in extendet Search = 1
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 11. Jun. 2007 18:23 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
Hallo ihr beiden, rein über die Compass-Oberfläche ist es nicht möglich, eine erweiterte Suche mit diesen Kriterien zu formulieren. Wenn man allderings bedenkt, dass eine Erweiterte Suche nichts anderes ist als ein Objekt der Ordnerstruktur, und wenn man weiter bedenkt dass ein solches Objekt nichts weiter ist als eine Abfrage auf die Datenbank, so kann man hinter einem solchen Ordner im Prinzip jede beliebige Abfrage verstecken. Im Feld FOLDER_NAME zum Beispiel enthält den Folder und damit die hinterlegte Datenbank-View oder -Tabelle, DBWHERE enthält das Filterkriterium. Man braucht also nur eine Erweiterte Suche über die Konstruktionsdokumente anlegen, ohne jegliche Kriterien, und diese Suche speichern (damit spart man sich das Anlegen der Einträge direkt über die Datenank). Dann folgenden Shell-Befehl auf der Erweiterten Suche ausführen: ___ChangeField(DBWHERE=AIMKEY not in (Select X_PARENT_AIMKEY From VIEW_XREF_PARENT_DOCUMENT Where X_RELATIONSHIP_ID = 'AIM.XREF.DOC.PRO.ENG') Muss aber anmerken, dass hier nur Projekte, nicht aber Unterprojekte berücksichtigt werden. Da ich keinen Zugriff auf eine aktuelle Compass-Version habe, kann ich hier auch leider nicht weiterhelfen. Aber eigentlich müsste es genügen, den entsprechenden RELATIONSHIP_ID zusätzlich anzugeben. Mit dem Shell-Befehl ___ChangeField(BITMAP_NAME=icon006.ico) lässt sich auch noch das Icon auf das der Konstruktionsdokumente ändern. Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! [Diese Nachricht wurde von WolfgangE am 11. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg2 Mitglied
Beiträge: 509 Registriert: 20.02.2007
|
erstellt am: 12. Jun. 2007 11:23 <-- editieren / zitieren --> Unities abgeben:
|
freak-tom Moderator PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2015 ECTR
|
erstellt am: 12. Jun. 2007 16:30 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
Hallo Wolfgang, habe es ebenfalls ausprobiert, bei mir funktioniert das ganze! kann ich mit dieser Möglichkeit auch noch weiter Filtern? Also z.B. Dokumente, die mit einem Projekt Verknüpft sind und im Feld SHORT_DESC den Wert xyz haben? Wenn das gehen würde wäre das echt cool! MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg2 Mitglied
Beiträge: 509 Registriert: 20.02.2007
|
erstellt am: 12. Jun. 2007 16:39 <-- editieren / zitieren --> Unities abgeben:
|
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 13. Jun. 2007 20:24 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
kann ich mit dieser Möglichkeit auch noch weiter Filtern? Also z.B. Dokumente, die mit einem Projekt Verknüpft sind und im Feld SHORT_DESC den Wert xyz haben?___ChangeField(DBWHERE=AIMKEY in (Select X_PARENT_AIMKEY From VIEW_XREF_PARENT_DOCUMENT Where X_RELATIONSHIP_ID = 'AIM.XREF.DOC.PRO.ENG') And Charindex('xyz',SHORT_DESC,1)>0)
------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
freak-tom Moderator PDM-/CAD-Admin
Beiträge: 347 Registriert: 07.03.2006 Productstream Professional Pro 2011 / Jobserver / Replikator Productstream Professional Office 2011 Productstream Professional Pro 2010 / Jobserver / Replikator Productstream Professional Office 2010 Inventor Suite 2011 Solid Works 2015 ECTR
|
erstellt am: 14. Jun. 2007 08:57 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
Danke das klappt auch allerdings kapier ich nicht, wie ich jetzt mit dem Charindex in eine andere Tabelle komme! Habe schon im Inet gesucht aber nichts gefunden! Ich will folgendes erreichen! Diese Abfrage Code: icon_doc0exist@(where db=FOLDER_XREF_ATTACHMENT " ENTITY_TYPE='AIM.DOC.SECONDARY' AND X_PARENT_AIMKEY=#AIMKEY AND FILE_TYPE='DWF' AND FILE_NAME='DWF#FILE_NAME'" #(=docexist("#DOCNAME0"))).ico
bräuchte ich als Erweiterte Suche also, allen Dokumenten die False liefern sollen angezeigt werden!Geht das?? MfG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
WolfgangE Mitglied
Beiträge: 1006 Registriert: 29.01.2003
|
erstellt am: 14. Jun. 2007 19:06 <-- editieren / zitieren --> Unities abgeben: Nur für Jörg2
Servus Tom, du kommst mit Charindex() nirgendwo hin, was nicht über die Select-Anweisung definiert ist. Charindex() ist eine Funktion des SQL-Servers, die nichts anderes macht, als zu prüfen, ob eine Zeichenfolge in einer anderen vorkommt (siehe SQL-Server-Hilfe). In meiner Abfrage verwende ich Charindex() in Zusammenhang mit einer Select-Anweisung, wobei wir bisher aber nur die Where-Klausel betrachtet haben. Compass stückelt sich das eigentliche Select über mehrere Feldinhalte zusammen. Die Tabelle, die dabei abgefragt wird, ist über das Feld #FOLDER_NAME definiert. Dort steht der Folder aus der Compass-Konfiguration drin, über den die Abfrage geht. Am Folder steht in der Konfiguration die eigentliche Datenbank-Tabelle bzw. in diesem Fall Sicht. Wenn du die erweiterte Suche auf "Konstruktionsdokumente" absetzt, wir als FOLDER_NAME "Folder_EngineeringDocument" eingetragen, welchem die Sicht VIEW_DOCUMENT_ENGINEERING zugeordnet ist. Wenn du auf alle Dokumente abfragen willst, brauchst du den Eintrag nur auf "Folder_All_Document" ändern (oder eben die Erweiterte Suche auf "Alle Dokumente" absetzen). Deine letzte Anforderung wirst nicht so einfach hinbekommen. Du verwendest hier eine Compass-Funktion, die abprüft, ob es eine bestimmte Datei im Filesystem gibt oder nicht. Über die Datenbank ist das etwas schwieriger. Erstmal musst du den Speicherpfad der Datei ermitteln. Da wir hier nur sehr schwer auf die Compass-Konfiguration zugreifen können (obwohl auch das mögliche wäre), stellt sich erstmal die Frage, ob du die Standard-Ablage verwendest (und ob die noch so funktioniert wie's in Compass 2005 war). Weiters musst berücksichtigen, ob FILE_NAME oder FILE_LINKAME befüllt sind, die den Pfad und Dateinamen wieder variieren lassen können. Anschließend brauchst die Information, ob diese Datei denn nun überhaupt existiert. Ließe sich theoretisch mit xp_fileexist rausfinden, weiß aber nicht wie zuverlässig diese Prozedur ist, außerdem kannst du sie nicht in einer benutzerdefinierten Funktion verwenden, die an dieser Stelle notwendig wäre, um die zuvor erwähnten Schritte über die in Compass zu verwendende Anweisung aufzurufen. Wenn man die Abfrage unbedingt haben will, könnte man sich überlegen, per zeitgesteuerten Job diverse Prozeduren am SQLServer ablaufen zu lassen, in Form eines SQL-Jobs oder gleich per DTS-Paket, welcher die ganzen Information sammelt und das Ergebnis schlussendlich in eine eigene Tabelle schreibt. Die erweiterte Suche könnte dann auf diese Tabelle zugreifen und die Daten in Compass anzeigen. Gravierender Nachteil: die Abfrage ist nur so aktuell, wie der Zeitplan des Jobs das ganze erlaubt. Ist jetzt aber alles mal Theorie, ob's dann tatsächlich klappt, ist dann wieder eine andere Frage (also das Sammeln der Daten, das Anzeigen wäre gar kein Problem). Ciao, WolfgangE ------------------ An Optimist Is A Person Who Has Not Been Shown All The Facts Yet!!!
[Diese Nachricht wurde von WolfgangE am 15. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |