Combit List & Label Version > 8

Moderator: Moderatoren

Antworten
Benutzeravatar
Josef Stockinger
UDF-Programmierer
UDF-Programmierer
Beiträge: 53
Registriert: So, 25. Sep 2005 18:06
Wohnort: Nähe Regensburg
Kontaktdaten:

Combit List & Label Version > 8

Beitrag von Josef Stockinger »

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?
thomas
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 116
Registriert: Fr, 23. Sep 2005 16:07
Wohnort: Bad Oldesloe
Kontaktdaten:

Beitrag von thomas »

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
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
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:

Beitrag von Tom »

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.
Herzlich,
Tom
Benutzeravatar
Josef Stockinger
UDF-Programmierer
UDF-Programmierer
Beiträge: 53
Registriert: So, 25. Sep 2005 18:06
Wohnort: Nähe Regensburg
Kontaktdaten:

Grafik mit Combit-LL8

Beitrag von Josef Stockinger »

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.

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
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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.
Gruß
Hubert
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

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
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

Hallo Hubert,

zum Thema Aufruf von System- und Fremd-DLLs stelle ich mal einige Informationen in das Forum "Wissensbasis".

Viele Grüße, Gerd
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo Gerd,

danke ich schaue es mir an, DLL-Aufrufe in Xbase++ sind wegen der fehlenden Datentypen für mich immer noch etwas nebulös :wink:
Gruß
Hubert
Gerd König
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Fr, 09. Jun 2006 7:52
Wohnort: Nähe Sömmerda

Beitrag von Gerd König »

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. :wink:

Gerd
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

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 ...
Gruß
Hubert
Antworten