28.07.2021, 02:58
Ups. Mein Fehler :
Ich brauche den Befehl wie ICH die Höhe einer bestimmten Zeile setze.
Und wie ich die VERTIKALE Ausrichtung in der Tabelle auf zentriert setze, per Programm.
Antwort : Das Datenbank-Programm habe ich selbst geschrieben. Im Prinzip ist es eine bisschen Code und eine SQL-Datei. Darin werden Daten aus unterschiedlichen Quellen (Excel/CSV, andere Datenbankformate) in eine gewisse Ordnung gebracht. Preise aufgrund des Hersteller-Rabatt kalkuliert, Texte Angepasst, Eigene Artikel-Nr. vergeben etc. Danach wird eine Datanorm erstellt und was man sonst so alles braucht.
Normalerweise wäre die Ausgabe in Excel einfacher. Was ich zur Kontrolle und als Kalkulationshilfe für den Chef eh machen. Auch per INTEROP.
Das Problem ist der Ausdruck. Unter Excel bekommt man keinen gescheiten Ausdruck hin. Besonders nicht wenn man noch Grafiken und alles einfügen will ja nach Bedarf. Was nicht bedeutet das Excel nicht drucken kann. Aber die Skalierung zwischen 2 gleichen Seiten ist ein Graus. Davon abgesehen haut ein jede Druckerei das um die Ohren bzw. schreibt eine große Rechnung, weil sie es neu aufbereiten müssen.
In meinen Fall habe ich Artikel-Daten drin, und will eine Preisliste daraus machen. Sinn und Zweck der Übung ist es also eine für eine Druckerei geeignete Preisliste mit 1 Klick zu ersten.
Meine Software fragt die DB nach relevanten Artikeln ab, und erstellt dann automatisch eine Preisliste, mit Firmenlogo, Einigen Textfelder , z.b. 1 mit den Wort : "Preisliste : " in Arial 18 , ein nächstes mit den Feld :"Stand : 2021" in Arial 12. Dazu noch das Firmenlogo reinkopieren u.s.w.
Nun so ab Höhe 200 nach unten die Tabelle mit den Bauteilen.
Es gibt eigentlich 2 Möglichkeiten das was ich vor habe zu machen.
Möglichkeit 1 : Viel weniger Code = Tabelle erstellen.
Möglichkeit 2 : Viele Linien und Textfelder erstellen. Eine Möglichkeit die ich damals benutzt habe, als ich den Ausdruck einer Angebotssoftware geschrieben habe. Und die ich schon alternativ mit Corel getestet habe.
Schreiben tut ich das ganze unter VB mit den INTEROP Zugriff au Corel. Ich muss also dein Code in Interop Befehle umwandeln. Ist aber nicht wirklich ein Problem.
Hier mal ein Teil des Code von mir.
Ist weder schön noch optimiert. Das mache ich vielleicht wenn es irgendwann läuft. Zu Lernzwecke ist es mir so lieber.
Danach müsste ich also nur noch mit einer For-Next Schleife jede Zelle füllen. FERTIG.
Ich hoffe du verstehst nun was das Ziel ist, und warum ich hier euch nerve. Vielleicht hat ja mal ein andere User die selbe IDEE o. eine ähnliche Aufgabe.
Nochmal vielen Dank für deine Hilfe.
Ist echt ein Krampf Infos über VBA für Corel zu bekommen. Ich habe garantiert gestern 500 Google-Anfragen gemacht Minimum. Man hat den Eindruck VBA für Corel mag keiner o. Corel rückt kaum Infos raus. Ich hab noch nie so wenig Code-Bespiele gesehen.
Deshalb bin ich über deine Hilfe sehr dankbar.
Gruß
Pucki
Ps. : Ich weiß das die meisten User Excel für alles mögliche Vergewaltigen. Ich mag aber Corel lieber. Das sieht da Ergebnis besser aus.
Ich brauche den Befehl wie ICH die Höhe einer bestimmten Zeile setze.
Und wie ich die VERTIKALE Ausrichtung in der Tabelle auf zentriert setze, per Programm.
Zitat:Eine Frage aus Neugier:
Gibt es keinen Reportgenerator oder ähnliches für Deine Datenbank?
So etwas mit einem Vektorgrafikprogramm zu machen ist schon ein bisschen schräg.
Antwort : Das Datenbank-Programm habe ich selbst geschrieben. Im Prinzip ist es eine bisschen Code und eine SQL-Datei. Darin werden Daten aus unterschiedlichen Quellen (Excel/CSV, andere Datenbankformate) in eine gewisse Ordnung gebracht. Preise aufgrund des Hersteller-Rabatt kalkuliert, Texte Angepasst, Eigene Artikel-Nr. vergeben etc. Danach wird eine Datanorm erstellt und was man sonst so alles braucht.
Normalerweise wäre die Ausgabe in Excel einfacher. Was ich zur Kontrolle und als Kalkulationshilfe für den Chef eh machen. Auch per INTEROP.
Das Problem ist der Ausdruck. Unter Excel bekommt man keinen gescheiten Ausdruck hin. Besonders nicht wenn man noch Grafiken und alles einfügen will ja nach Bedarf. Was nicht bedeutet das Excel nicht drucken kann. Aber die Skalierung zwischen 2 gleichen Seiten ist ein Graus. Davon abgesehen haut ein jede Druckerei das um die Ohren bzw. schreibt eine große Rechnung, weil sie es neu aufbereiten müssen.
In meinen Fall habe ich Artikel-Daten drin, und will eine Preisliste daraus machen. Sinn und Zweck der Übung ist es also eine für eine Druckerei geeignete Preisliste mit 1 Klick zu ersten.
Meine Software fragt die DB nach relevanten Artikeln ab, und erstellt dann automatisch eine Preisliste, mit Firmenlogo, Einigen Textfelder , z.b. 1 mit den Wort : "Preisliste : " in Arial 18 , ein nächstes mit den Feld :"Stand : 2021" in Arial 12. Dazu noch das Firmenlogo reinkopieren u.s.w.
Nun so ab Höhe 200 nach unten die Tabelle mit den Bauteilen.
Es gibt eigentlich 2 Möglichkeiten das was ich vor habe zu machen.
Möglichkeit 1 : Viel weniger Code = Tabelle erstellen.
Möglichkeit 2 : Viele Linien und Textfelder erstellen. Eine Möglichkeit die ich damals benutzt habe, als ich den Ausdruck einer Angebotssoftware geschrieben habe. Und die ich schon alternativ mit Corel getestet habe.
Schreiben tut ich das ganze unter VB mit den INTEROP Zugriff au Corel. Ich muss also dein Code in Interop Befehle umwandeln. Ist aber nicht wirklich ein Problem.
Hier mal ein Teil des Code von mir.
Code:
corel.ActivePage.Orientation = 0
corel.ActiveDocument.Unit = cdrMillimeter
corel.ActiveDocument.ReferencePoint = 3 <- Diese Zeile ist das Ergebnis deiner ersten Antwort
corel.ActiveLayer.CreateCustomShape("Table", 50, 0, 250, 250, 3, 3) ' unten links (x,y) / oben rechts (x,y)
corel.ActiveShape.Name = "Tabi_1"
tab_1 = corel.ActiveShape
corel.ActiveLayer.Shapes.Item("Tabi_1").Custom.Columns(1).Width = 20.0
corel.ActiveLayer.Shapes.Item("Tabi_1").Custom.rows(1).height = 20.0
tab_1.Custom.Cell(2, 3).TextShape.Text.Story = "papi"
tab_1.Custom.Cell(2, 3).TextShape.Text.story.Alignment = 4
tab_1.Custom.AddRow(1)
tab_1.Rows(3).Height = 10 ' <- hier ist der Fehler dessen Antwort ich suche
Ist weder schön noch optimiert. Das mache ich vielleicht wenn es irgendwann läuft. Zu Lernzwecke ist es mir so lieber.
Danach müsste ich also nur noch mit einer For-Next Schleife jede Zelle füllen. FERTIG.
Ich hoffe du verstehst nun was das Ziel ist, und warum ich hier euch nerve. Vielleicht hat ja mal ein andere User die selbe IDEE o. eine ähnliche Aufgabe.
Nochmal vielen Dank für deine Hilfe.
Ist echt ein Krampf Infos über VBA für Corel zu bekommen. Ich habe garantiert gestern 500 Google-Anfragen gemacht Minimum. Man hat den Eindruck VBA für Corel mag keiner o. Corel rückt kaum Infos raus. Ich hab noch nie so wenig Code-Bespiele gesehen.
Deshalb bin ich über deine Hilfe sehr dankbar.
Gruß
Pucki
Ps. : Ich weiß das die meisten User Excel für alles mögliche Vergewaltigen. Ich mag aber Corel lieber. Das sieht da Ergebnis besser aus.