| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
 | Von Digital Twins bis Hochleistungs-Computing: PNY präsentiert seine Zukunftstechnologien für die Industrie von morgen, eine Pressemitteilung
|
Autor
|
Thema: Excel Datei in IDW einbetten (2894 mal gelesen)
|
Rodario7 Mitglied Maschinenbautechniker

 Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 16. Feb. 2013 12:35 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen, ich habe folgendes Problem. Über mein kleines Programm fülle ich ein Excel sheet aus und füge es in meine IDW ein. Das funzt auch soweit. Im Browser erscheint auch das Register Drittanbieter, und die Datei wird auch darunter angezeigt. Leider erkennt unser Dateiverwaltungsprogramm das einbetten nicht und die Datei wird beim "einchecken" nicht mitgezogen. Wenn ich eine Steuerdatei in z.B. eine ipt einbette geht das doch auch. Was mache ich falsch? Hier mal mein diesbezüglicher Code. oref = oDoc.ReferencedOLEFileDescriptors.Add(HPfad & txtDrawingNumber.Text & DatZusatz & ".xlsx", OLEDocumentTypeEnum.kOLEDocumentEmbeddingObject) oref.Visible = False oDoc.Update() oref.BrowserVisible = True oref.DisplayName = txtDrawingNumber.Text & DatZusatz Ich überlege schon ob ich eine Tabelle auf das sheet lege und diese mit der Excel Datei verknüpfe, nur weiß ich nicht wie ich das Codemäßig hinbekomme.
[Diese Nachricht wurde von Rodario7 am 16. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Feb. 2013 17:57 <-- editieren / zitieren --> Unities abgeben:          Nur für Rodario7
Hi Was meinst du mit die eingebettete Datei wird nicht mitgezogen? Fehlt sie nach dem Einchecken in der IDW? Oder wird deine originale Exceldatei nicht mit eingecheckt, was bei einer eingebetteten Datei korrekt wäre? Ich glaub mit einer Tabelle wird das nichts, da die meines Wissens keine Verknüpfungen zu anderen Dateien kann. Dafür gibt's ja die eingebetteten Exceldateien. Warum stellst du eigentlich dreimal die gleiche Frage?
------------------ MfG Ralf  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker

 Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 16. Feb. 2013 18:08 <-- editieren / zitieren --> Unities abgeben:         
Zitat: Original erstellt von rkauskh: HiWas meinst du mit die eingebettete Datei wird nicht mitgezogen? Fehlt sie nach dem Einchecken in der IDW? Oder wird deine originale Exceldatei nicht mit eingecheckt, was bei einer eingebetteten Datei korrekt wäre? Ja sie fehlt, habe aber herausgefunden wie ich das ändere. oref = oDoc.ReferencedOLEFileDescriptors.Add(HPfad & txtDrawingNumber.Text & DatZusatz & ".xlsx", OLEDocumentTypeEnum.kOLEDocumentLinkObject) ist der richtige Code Leider kann ich die Excel Datei nicht auf der Zeichenüberfläche der IDW absetzen. d.h. sie ist für mich nur im Browser zu sehen. Deswegen die Idee mit der Tabelle. Ich glaub mit einer Tabelle wird das nichts, da die meines Wissens keine Verknüpfungen zu anderen Dateien kann. Dafür gibt's ja die eingebetteten Exceldateien.
Doch man kann eine Tabelle mit Excel verknüpfen. Warum stellst du eigentlich dreimal die gleiche Frage?
Ich habe die Frage 2x in 2 verschiedenen Foren gestellt (VBA un VB.net) Dadurch habe ich mir größere Resonanz erhofft.
Den 3. Thread habe ich erstellt weil ich da den Focus auf das Einfügen der Tabelle setzen wollte. Das hatte ich ja vorher nur am Rande als Möglichkeit betrachtet.
Gruß Klaus
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Feb. 2013 19:01 <-- editieren / zitieren --> Unities abgeben:          Nur für Rodario7
Hallo Euer Dateiverwaltungsprogramm entfernt eingebettete Objekt aus einer Zeichnung? Da würde ich mal einen Bug beim Hersteller der Dateiverwaltung melden. Stimmt, die CustomTable hat eine AddLink-Methode. Probier doch einfach aus was passiert wenn die als FullFileName deine Exceltabelle angibst. Eine größere Resonanz wirst du mit dem Doppel- und Dreifachposten nur von den Moderatoren bekommen. Aber nicht in der Art wie du es dir erhoffst. Ich behaupte mal, das alle die sich mit der Programmierung beschäftigen in beiden Foren lesen. Da sind doppelte Diskussionen eher für viele ein Grund sich ganz rauszuhalten. Wer erzählt schon gern alles doppelt? ------------------ MfG Ralf  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker

 Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 16. Feb. 2013 19:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo Ralf, Also bei eingebetteten Objekten ist es wohl richtig dass die Obj. nicht mitgezogen werden. Ich hab nu ein verlinktes Objekt drin und es geht. Zur Custom Tabelle muß ich sagen dass ich leider nicht weiß wie ich Codemäßig an sie rankomme. Noch einen Satz zu dem Doppelpost: Mir war schon ein wenig bewußt dass einige beide Foren lesen, nicht aber dass alle das tun. Nun da ich darauf hingewiesen wurde werde ich nat. nur noch in einem Forum posten.
------------------ Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 16. Feb. 2013 20:59 <-- editieren / zitieren --> Unities abgeben:          Nur für Rodario7
Hallo Hier mal ein Beispiel wie's gehen müßte: Code: Public Sub AddCustomTable()Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument Dim oPoint As Point2d Set oPoint = ThisApplication.TransientGeometry.CreatePoint2d(15, 15) Dim oCTableColumnTitles(1 To 10) As String Set oCTableColumnTitles(1) = "A" Set oCTableColumnTitles(1) = "B" Set oCTableColumnTitles(1) = "C" Set oCTableColumnTitles(1) = "D" Set oCTableColumnTitles(1) = "E" Set oCTableColumnTitles(1) = "F" Set oCTableColumnTitles(1) = "G" Set oCTableColumnTitles(1) = "H" Set oCTableColumnTitles(1) = "I" Set oCTableColumnTitles(1) = "J" Dim oCTable As CustomTable Set oCTable = oDrawDoc.ActiveSheet.CustomTables.Add("TabellenTitel", oPoint, 10, 10, oCTableColumnTitles)
Dim sLinkedFile As String sLinkedFile = "C:\Pfad\zur\Excel\Tabelle.xls" Call oCTable.AddLink(sLinkedFile) End Sub
Seltsam finde ich's trotzdem das die eingebetteten Objekte von eurem Dateiverwaltungsprogramm entfernt werden. Da würde ich beim Hersteller mal nachhaken. Danke für dein Verständnis. ------------------ MfG Ralf  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rodario7 Mitglied Maschinenbautechniker

 Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 17. Feb. 2013 10:34 <-- editieren / zitieren --> Unities abgeben:         
Super, vielen Dank. mußte den Code nur auf VB.net umschreiben dann gings. Hier mal der Code dazu, wenn ihn jemand benötigt. Public Sub AddCustomTable() Dim oInventorApp As Inventor.Application oInventorApp = CType(GetObject(, "Inventor.Application"), Application) Dim oDrawDoc As DrawingDocument oDrawDoc = CType(oInventorApp.ActiveDocument, DrawingDocument) Dim oPoint As Point2d oPoint = CType(GetObject(, "Inventor.Application"), Application).TransientGeometry.CreatePoint2d(15, 15) Dim oCTableColumnTitles(0 To 9) As String oCTableColumnTitles(0) = "A" oCTableColumnTitles(1) = "B" oCTableColumnTitles(2) = "C" oCTableColumnTitles(3) = "D" oCTableColumnTitles(4) = "E" oCTableColumnTitles(5) = "F" oCTableColumnTitles(6) = "G" oCTableColumnTitles(7) = "H" oCTableColumnTitles(8) = "I" oCTableColumnTitles(9) = "J" Dim oCTable As CustomTable Dim bfound As Boolean '= False Dim oref As ReferencedOLEFileDescriptor For Each oref In oDrawDoc.ReferencedOLEFileDescriptors If oref.DisplayName = txtDrawingNumber.Text & DatZusatz & ".xlsx" Then bfound = True Exit For End If Next If bfound = True Then Return Else oCTable = oDrawDoc.ActiveSheet.CustomTables.Add("ToDoList", oPoint, 10, 10, oCTableColumnTitles)
Dim sLinkedFile As String sLinkedFile = HPfad & txtDrawingNumber.Text & DatZusatz & ".xlsx" Call oCTable.AddLink(sLinkedFile) End If End Sub Das mit dem eingebetteten Objekt hat glaub ich mit dem Dateiverwaltungssystem nix zu tun. Bei meiner 1. Variante hatte ich anscheinend falsch "eingebettet". Kanns auch nicht richtig erklären warum, aber gemerkt hab ich s daran dass Inv. nicht angemeckert hat das die Excel Datei nicht im Projektpfad liegt. Mit der neuen Verknüpfung als linked objekt fragt Inv. genau dieses an.
------------------ Gruß Klaus [Diese Nachricht wurde von Rodario7 am 17. Feb. 2013 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
      

 Beiträge: 2788 Registriert: 15.11.2006 Windows 10 x64, AIP 2020-2025
|
erstellt am: 17. Feb. 2013 11:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Rodario7
Moin Du hast da ein Verständnisproblem. Eingebettete Objekt liegen in der Datei. Sie sind Bestandteil der Datei. Das Ursprungsdokument hat nach dem Einbetten nichts mehr damit zu tun. Es dient sozusagen nur als Kopiervorlage. Es gibt nur die IDW zum Einchecken. Das die ursprüngliche Exceldatei nicht mitgenommen wird ist richtig. Das Verknüpfen mit anderen Dateien ist eine Zeitbombe. Spätestens wenn du zwei IDW's mit verknüpfter Exceldatei auscheckst und beide verknüpften Dateien habe den gleichen Namen bekommst du ein Problem. Verknüpfungen speichern den kompletten (UNC-)Pfad. Das heißt dein Ablagepfad und die Ordnerstruktur für ausgecheckte Dateien sollte sich nie ändern. Oder hab ich das Verständnisproblem? ------------------ MfG Ralf  Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
Rodario7 Mitglied Maschinenbautechniker

 Beiträge: 85 Registriert: 08.02.2013 Windows 7 64bit Inventor 2013 Visual Basic 2010 Express
|
erstellt am: 17. Feb. 2013 11:53 <-- editieren / zitieren --> Unities abgeben:         
Hi, das siehst du richtig. Ich hatte Anfangs eingebettet und nicht verlinkt. Da lag das Problem. Aber das Problem mit den gleichen Dateinamen wird bei mir nie auftreten, da die verlinkte Excel Datei immer die Zeichnungsnummer der aktuellen Zeichnung als Teil des Dateinamens mitbekommt.
------------------ Gruß Klaus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |