Combit List & Label Version > 8
Moderator: Moderatoren
- Josef Stockinger
- UDF-Programmierer
- Beiträge: 53
- Registriert: So, 25. Sep 2005 18:06
- Wohnort: Nähe Regensburg
- Kontaktdaten:
Combit List & Label Version > 8
Mit Erscheinen der LL-Version 8 habe ich diese bestellt, lange nicht begriffen, wie das Einbinden funktioniert und dann ist dank Toms Devcon-Beispiel der Knoten aufgegangen. Ich komme jetzt damit gut zurecht. Lediglich bei Charts erstellen kam ich nicht klar, auch nach kontaktieren von Combit nicht, die sich wegen Erscheinen der Version 9 für Auskünfte nicht mehr sonderlich hilfreich zeigten.
Dann bestellte ich die Version 9. Neben der Zwangskonvertierung von Vorlagen in eine Form, die dann unter LL8 nicht mehr nutzbar waren stellte sich ein dramatischer Geschwindigkeitsverlust ein: nicht tolerierbar. Und die Probleme bei Charts waren auch dieselben.
Nun, ich bin bei Version 8 geblieben und habe jetzt die Trial 11 angeschaut. Überzeugt mich nicht, ich bleibe bei Version 8.
Ober kennt jemand gute Gründe, doch LL11 zu nehmen?
Dann bestellte ich die Version 9. Neben der Zwangskonvertierung von Vorlagen in eine Form, die dann unter LL8 nicht mehr nutzbar waren stellte sich ein dramatischer Geschwindigkeitsverlust ein: nicht tolerierbar. Und die Probleme bei Charts waren auch dieselben.
Nun, ich bin bei Version 8 geblieben und habe jetzt die Trial 11 angeschaut. Überzeugt mich nicht, ich bleibe bei Version 8.
Ober kennt jemand gute Gründe, doch LL11 zu nehmen?
-
- Rekursionen-Architekt
- Beiträge: 116
- Registriert: Fr, 23. Sep 2005 16:07
- Wohnort: Bad Oldesloe
- Kontaktdaten:
Hallo Josef,
ich benutze seit einigen Wochen den LL in der Version 11. Im Umgang mit Charts habe ich leider keine Erfahrung, da meine Kunden nur Listen-Reports erstellen und bearbeiten.
Eines steht jedenfalls Fest : Mit jeder neuen Version wird der Dinosaurier noch größer und langsamer, daher kann man ruhig bei seiner älteren und schnelleren Version bleiben.
Wenn es ums Charts geht, benutze ich meistens RMChart (sh. www.rmchart.com). Dieser Chart-Designer ist sogar Freeware und kann als DLL oder OCX benutzt werden.
Viele Grüße
Thomas
ich benutze seit einigen Wochen den LL in der Version 11. Im Umgang mit Charts habe ich leider keine Erfahrung, da meine Kunden nur Listen-Reports erstellen und bearbeiten.
Eines steht jedenfalls Fest : Mit jeder neuen Version wird der Dinosaurier noch größer und langsamer, daher kann man ruhig bei seiner älteren und schnelleren Version bleiben.
Wenn es ums Charts geht, benutze ich meistens RMChart (sh. www.rmchart.com). Dieser Chart-Designer ist sogar Freeware und kann als DLL oder OCX benutzt werden.
Viele Grüße
Thomas
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9345
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 100 Mal
- Danksagung erhalten: 359 Mal
- Kontaktdaten:
Hallo, Josef, hallo, Thomas.
Wir nutzen (noch) LL 10, haben aber Version 11 bereits hier herumzuliegen. Tatsächlich scheint List & Label seit einigen Versionen etwas gemächlicher geworden zu sein, was den Designer anbetrifft, bezüglich der Performance beim Erstellen von Reports kann ich aber nicht klagen - ganz im Gegenteil. Das geht zügiger als je zuvor. Auch das StorageSystem ist erheblich schneller geworden. Ich kann LL10 (und damit 11) eigentlich nur empfehlen.
Charts sind simpel, theoretisch zumindest, aber man muß beachten, daß die Daten entweder doppelt übergeben werden müssen (einmal für die Tabelle, einmal für das Chart) oder daß das Chart an die Tabelle gebunden werden muß (Verknüpfung), sonst hat man nur ein Objekt mit Daten, i.d.R. die Tabelle. Wenn Du (Josef) ein Beispiel hast, kann ich Dir am Objekt zeigen, wie das funktioniert.
Wir nutzen (noch) LL 10, haben aber Version 11 bereits hier herumzuliegen. Tatsächlich scheint List & Label seit einigen Versionen etwas gemächlicher geworden zu sein, was den Designer anbetrifft, bezüglich der Performance beim Erstellen von Reports kann ich aber nicht klagen - ganz im Gegenteil. Das geht zügiger als je zuvor. Auch das StorageSystem ist erheblich schneller geworden. Ich kann LL10 (und damit 11) eigentlich nur empfehlen.
Charts sind simpel, theoretisch zumindest, aber man muß beachten, daß die Daten entweder doppelt übergeben werden müssen (einmal für die Tabelle, einmal für das Chart) oder daß das Chart an die Tabelle gebunden werden muß (Verknüpfung), sonst hat man nur ein Objekt mit Daten, i.d.R. die Tabelle. Wenn Du (Josef) ein Beispiel hast, kann ich Dir am Objekt zeigen, wie das funktioniert.
Herzlich,
Tom
Tom
- Josef Stockinger
- UDF-Programmierer
- Beiträge: 53
- Registriert: So, 25. Sep 2005 18:06
- Wohnort: Nähe Regensburg
- Kontaktdaten:
Grafik mit Combit-LL8
Hallo Tom,
im UserVar.prg habe ich ein Tool, mit dem eine Grafik (VWL1.jpg) gedruckt wird. Diese erstelle ich derzeit über Xbase, weil ich das so einfacher lösen konnte. Für diese Grafik sind nur einige Werte notwendig; sie sind in der Headerdatei LOCALS.CH definert und werden auch an LL8 übergeben:
#define nVwlST aLocals[456] = Steuern
#define nVwlSV aLocals[457] = SV-Beitrag
#define nVwlNE aLocals[458] = Netto (44 %)
#define nVWL aLocals[288] = Säule 100 %
Was müsste denn da in der LL-Printroutine eingefügt werden, daß so eine Grafik (oder besser) rauskommt?
Meine Original-Headerdatei umfasst mehr als 800 LOCAL-Variablen und zum Einfügen/Rausnehmen oder Ändern geht das durchlaufende Nummerieren spielend einfach. Gleichzeitig werden da auch die an LL zu übergebenden Variablen erzeugt.
Viele Grüße
Josef
P.S. Die Dateien sende ich Dir als Mailanhang, weil ich nicht rausfinde, ob ich die auch hier irgendwie in die Forum-Nachricht reinhängen kann.
im UserVar.prg habe ich ein Tool, mit dem eine Grafik (VWL1.jpg) gedruckt wird. Diese erstelle ich derzeit über Xbase, weil ich das so einfacher lösen konnte. Für diese Grafik sind nur einige Werte notwendig; sie sind in der Headerdatei LOCALS.CH definert und werden auch an LL8 übergeben:
#define nVwlST aLocals[456] = Steuern
#define nVwlSV aLocals[457] = SV-Beitrag
#define nVwlNE aLocals[458] = Netto (44 %)
#define nVWL aLocals[288] = Säule 100 %
Was müsste denn da in der LL-Printroutine eingefügt werden, daß so eine Grafik (oder besser) rauskommt?
Meine Original-Headerdatei umfasst mehr als 800 LOCAL-Variablen und zum Einfügen/Rausnehmen oder Ändern geht das durchlaufende Nummerieren spielend einfach. Gleichzeitig werden da auch die an LL zu übergebenden Variablen erzeugt.
Viele Grüße
Josef
P.S. Die Dateien sende ich Dir als Mailanhang, weil ich nicht rausfinde, ob ich die auch hier irgendwie in die Forum-Nachricht reinhängen kann.
Code: Alles auswählen
#include "LOCALS.CH"
#include "dcdialog.ch"
#include "XBP.CH"
#include "appevent.ch"
#include "DLL.ch"
#include "cmbtl8.ch"
#include "cmbtl8.prg"
#include "directry.ch"
#pragma Library("DCLIPX.LIB", "XBTBASE1.LIB", "XBTBASE2.LIB", "XPPRT1.LIB", "XPPUI2.LIB")
PROCEDURE Main()
LOCAL aLocals[999]
LOCAL GetList := {}
LOCAL GetOptions := {}
PUBLIC aPickList, aIniArray, aBrowse, cHeader, cHeaderFile, cHeaderTmp1, cHeaderTmp2
lPrinter := .f.
lDesigner := .f.
lPreview := .t.
xSelect := LL_PRINT_PREVIEW
cExportPath := ''
cTitel := ''
cName := 'Stockinger'
cVorname := 'Josef'
cStrasse := 'Tannenstr.27'
cPlz := '93152'
cOrt := 'Nittendorf'
lVwl := .t.
nML := 3000.00
nJL := 36000.00
nZM := 12.0
nFB := 0
cSTK := "3"
nKZ := 0.0
cOrtText := "Alte Bundesl„nder"
nVL := 30.00
nRVBS := 19.5
nALBS := 6.5
nKVBS := 14.5
nPFBS := 1.7
nSZVH := 5.5
nKIST := 8.0
nVwlST := 10.04
nVwlSV := 6.62
nVwlNE := 13.34
lPkasse := .f.
lJL := .f.
cCode1 := "GV Stockinger e.K."
cCode2 := "Generalvertretung der"
cCode3 := "Allianz Lebensversicherungs-AG"
aBrowse := {{'leer','leer','leer','leer'}}
cHeaderFile := 'LOCALS.CH'
cHeaderTmp1 := 'LOCALS.001'
cHeaderTmp2 := 'LOCALS.002'
UserVarCreate(aLocals)
ReadCombitVar(aLocals)
@ 0,0 DCSTATIC TYPE XBPSTATIC_TYPE_TEXT SIZE 62,22 OBJECT oDialog
/* --- Page #1 --- */
@ 0,0 DCTABPAGE oTabPage1 CAPTION 'Headerfile: LOCALS.CH' ;
SIZE 62,22 PREOFFSET 00 POSTOFFSET 50 PARENT oDialog
cHeader := memoread( cHeaderFile )
@ 2.0,2.0 DCMULTILINE cHeader PARENT oTabPage1 OBJECT oHeader ;
SIZE 58,17 FONT "10.Courier" ;
EVAL {|o|o:rbDown := {|x,y,z|oPopUp1:popup( z, x, 1, XBPMENU_PU_DEFAULT + XBPMENU_PU_MOUSE_RBDOWN ) } }
@ 20.0,02 DCPUSHBUTTON CAPTION 'Headerfile schreiben' ;
SIZE 28,1.2 PARENT oTabPage1 ;
ACTION {|| if(oHeader:changed(), WriteHeaderFile( aLocals),;
MsgBox('Datei ist nicht ge„ndert worden','Sichern')) }
@ 20.0,32 DCPUSHBUTTON CAPTION 'Nummernfolge pr
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Hallo Thomas,
bisher habe ich auf die Darstellung von Charts innerhalb der von mir geschriebenen Applikationen aus Aufwandsgründen verzichtet.
Mit rmchart scheint sich die Sache aber wesentlich einfacher zu gestalten.
Ich habe die DLL-Version mal heruntergeladen und werde mich mal daran versuchen. (Vielen Dank für den Hinweis)
List&Label (Version 9.0) verwenden wir nur zum Drucken von Protokollen, Listen und anderen reinen Textseiten (höchstens mit Firmenlogo, ggf. Barcode).
viele Grüße Gerd
bisher habe ich auf die Darstellung von Charts innerhalb der von mir geschriebenen Applikationen aus Aufwandsgründen verzichtet.
Mit rmchart scheint sich die Sache aber wesentlich einfacher zu gestalten.
Ich habe die DLL-Version mal heruntergeladen und werde mich mal daran versuchen. (Vielen Dank für den Hinweis)
List&Label (Version 9.0) verwenden wir nur zum Drucken von Protokollen, Listen und anderen reinen Textseiten (höchstens mit Firmenlogo, ggf. Barcode).
viele Grüße Gerd
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Gerd,
ich habe angefangen die RMCHART.INC von PowerBasic nach Xbase++ zu übersetzen - und zwar komplett. Wenn man die Grafik mit dem RMGraphdesigner erzeugen kann und die Werte zusätzlich als CSV Datei abspeichert, braucht man aber nur wenige Funktionen - das ist deutlich schneller als die vielen Defines und Funktionen an denen ich zur Zeit hänge.
Was hast du vor, eventuell können wir uns gegenseitig unterstützen, bei den Xbase++ DLL Aufrufen bin ich nicht so firm.
ich habe angefangen die RMCHART.INC von PowerBasic nach Xbase++ zu übersetzen - und zwar komplett. Wenn man die Grafik mit dem RMGraphdesigner erzeugen kann und die Werte zusätzlich als CSV Datei abspeichert, braucht man aber nur wenige Funktionen - das ist deutlich schneller als die vielen Defines und Funktionen an denen ich zur Zeit hänge.
Was hast du vor, eventuell können wir uns gegenseitig unterstützen, bei den Xbase++ DLL Aufrufen bin ich nicht so firm.
Gruß
Hubert
Hubert
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Hallo Hubert,
wir haben ein (fast) komplettes Produktionssteuerungsystem auf Basis von Xbase programmiert, angefangen mit diversen Stammdaten, über Materialavisen, Bestellungen, Fertigungsaufträgen bis zum Warenausgang.
Während der Produktion erfolgen automatische oder halbautomatische Erfassungen der montierten Geräte durch Scannungen der Seriennummern. Parallel zur internen Verarbeitung der Daten (Buchungen, Fertigmelden von Fertigungsaufträgen usw.) werden Daten an unsere externen Partner (Auftraggeber), d.h. an deren Warenwirtschaftssysteme gesendet.
Zur Auswertung der Daten, z.B. Stand der Fertigungsaufträge, Materialzulauf oder Belieferung von Bestellungen werden gegenwärtig in erster Linie Tabellen (Browser von XClass, DS-Datasoft) verwendet. Zum Teil erfolgt dabei die optische Visualisierung durch die Hintergrundfarbe, z.B. von rot (noch nicht begonnen) über Mischfarben bis grün (abgeschlossen).
Ich hatte schon einmal angefangen, eine Darstellung von mehreren Vorgängen (Fertigungsaufträge) in Form von mehreren Progressbars zu programmieren. Allerdings habe ich das Ganze dann wieder aus Zeitgründen verworfen, da andere zu lösende Aufgaben eine wesentlich höhere Priorität haben.
Ich stelle mit eine grafische Ausgabe verschiedener Vorgänge innerhalb der Produktion in einem Fenster vor, z.B. vierteilig, wobei dann gegebenfalls ein Zoom auf eines der vier Elemente per Mausklick oder Hotkey ausgelöst werden kann.
Dabei wäre zu beachten, daß eine manuelle oder automatische Aktualisierung der Anzeige bei Sachverhaltsänderungen erforderlich ist.
Ja, - das wäre es, was mir so vorschwebt...
Noch einen schönen Abend,
Gerd
wir haben ein (fast) komplettes Produktionssteuerungsystem auf Basis von Xbase programmiert, angefangen mit diversen Stammdaten, über Materialavisen, Bestellungen, Fertigungsaufträgen bis zum Warenausgang.
Während der Produktion erfolgen automatische oder halbautomatische Erfassungen der montierten Geräte durch Scannungen der Seriennummern. Parallel zur internen Verarbeitung der Daten (Buchungen, Fertigmelden von Fertigungsaufträgen usw.) werden Daten an unsere externen Partner (Auftraggeber), d.h. an deren Warenwirtschaftssysteme gesendet.
Zur Auswertung der Daten, z.B. Stand der Fertigungsaufträge, Materialzulauf oder Belieferung von Bestellungen werden gegenwärtig in erster Linie Tabellen (Browser von XClass, DS-Datasoft) verwendet. Zum Teil erfolgt dabei die optische Visualisierung durch die Hintergrundfarbe, z.B. von rot (noch nicht begonnen) über Mischfarben bis grün (abgeschlossen).
Ich hatte schon einmal angefangen, eine Darstellung von mehreren Vorgängen (Fertigungsaufträge) in Form von mehreren Progressbars zu programmieren. Allerdings habe ich das Ganze dann wieder aus Zeitgründen verworfen, da andere zu lösende Aufgaben eine wesentlich höhere Priorität haben.
Ich stelle mit eine grafische Ausgabe verschiedener Vorgänge innerhalb der Produktion in einem Fenster vor, z.B. vierteilig, wobei dann gegebenfalls ein Zoom auf eines der vier Elemente per Mausklick oder Hotkey ausgelöst werden kann.
Dabei wäre zu beachten, daß eine manuelle oder automatische Aktualisierung der Anzeige bei Sachverhaltsänderungen erforderlich ist.
Ja, - das wäre es, was mir so vorschwebt...
Noch einen schönen Abend,
Gerd
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
-
- Rekursionen-Architekt
- Beiträge: 193
- Registriert: Fr, 09. Jun 2006 7:52
- Wohnort: Nähe Sömmerda
Hallo Hubert,
bei den Datentypen habe ich Strukturen als Parameter immer vermieden.
Zahlen werden bei der Übergabe korrekt konvertiert. Zeichenketten werden per Referenz übergeben (ggf. mit Chr(0) abschließen).
Ansonsten lassen wir lieber extern in einer C-DLL Funktionen einbauen, die nur Ziffern und Strings als Parameter nutzen.
Strukturen lassen sich auch bilden, indem die XBase-Funktionen *2bin() und Bin2*() verwendet werden. Es entsteht dann quasi ein eindimensionales Array, das alle Strukturelemente in der richtigen Größe und Reihenfolge enthält. Dieses Array müßte dann der Funktion als Referenz übergeben werden. Das habe ich allerdings noch nicht ausprobiert.
Gerd
bei den Datentypen habe ich Strukturen als Parameter immer vermieden.
Zahlen werden bei der Übergabe korrekt konvertiert. Zeichenketten werden per Referenz übergeben (ggf. mit Chr(0) abschließen).
Ansonsten lassen wir lieber extern in einer C-DLL Funktionen einbauen, die nur Ziffern und Strings als Parameter nutzen.
Strukturen lassen sich auch bilden, indem die XBase-Funktionen *2bin() und Bin2*() verwendet werden. Es entsteht dann quasi ein eindimensionales Array, das alle Strukturelemente in der richtigen Größe und Reihenfolge enthält. Dieses Array müßte dann der Funktion als Referenz übergeben werden. Das habe ich allerdings noch nicht ausprobiert.
Gerd
- brandelh
- Foren-Moderator
- Beiträge: 15688
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hallo Gerd,
die Strukturen bilde ich in einem Object ab, damit ich auf die einzelnen Mitglieder sauberen Zugriff habe. Das Object erzeugt die *2BIN bzw. verteilt mit BIN2* die Werte wieder in die iVars.
RMChart benutzt DOUBLE Werte (64 Bit Kommazahlen), mit F2BIN per Referenz geht das, übel wird es bei Übergabe per Value(), da muß man 2 LONG drauß machen und übergeben.
Die Anzahl der Funktionen von RMChart hält halt ganz schön auf.
Und dann die Testläufe ...
die Strukturen bilde ich in einem Object ab, damit ich auf die einzelnen Mitglieder sauberen Zugriff habe. Das Object erzeugt die *2BIN bzw. verteilt mit BIN2* die Werte wieder in die iVars.
RMChart benutzt DOUBLE Werte (64 Bit Kommazahlen), mit F2BIN per Referenz geht das, übel wird es bei Übergabe per Value(), da muß man 2 LONG drauß machen und übergeben.
Die Anzahl der Funktionen von RMChart hält halt ganz schön auf.
Und dann die Testläufe ...
Gruß
Hubert
Hubert