List & Label - HTML "Ausgabe"
Moderator: Moderatoren
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
List & Label - HTML "Ausgabe"
hi,
kann man LL Report als HTML ausgeben ? wenn ja wie ?
grundsätzliche Frage : wie bekomme ich eine DBF (formatiert) nach HTML
... Array auffüllen, Excel Tabelle machen und dann als HTML ?
kann man LL Report als HTML ausgeben ? wenn ja wie ?
grundsätzliche Frage : wie bekomme ich eine DBF (formatiert) nach HTML
... Array auffüllen, Excel Tabelle machen und dann als HTML ?
gruss by OHR
Jimmy
Jimmy
- 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:
Re: List & Label - HTML "Ausgabe"
Hallo, Jimmy.
1. Ja, kann man. Es geht sogar "MHTML" (eingebettete Grafiken). Der Export funktioniert wie derjenige nach PDF, RTF, TIFF usw. Man setzt die entsprechenden Exportoptionen, statt einen Druckjob zu erzeugen. Die Druckroutine ist ansonsten dieselbe. Benötigst Du dafür Beispielcode?
2. HTML ist eigentlich simpel. Ich habe das gelöst, indem ich eine Templatedatei (Tabelle, DIV-Container) erzeugt habe, die dann die Spaltenüberschriften setzt und die Spaltenanteile entsprechend wiederholt. Also quasi: Formulare im HTML-Editor erzeugen, Platzhalter einsetzen und dann bei der Dateierzeugung einfach substituieren. Bei Datenzeilen natürlich wiederholt. Wenn man viele Spalten hat, wird das natürlich irgendwann unschön.
1. Ja, kann man. Es geht sogar "MHTML" (eingebettete Grafiken). Der Export funktioniert wie derjenige nach PDF, RTF, TIFF usw. Man setzt die entsprechenden Exportoptionen, statt einen Druckjob zu erzeugen. Die Druckroutine ist ansonsten dieselbe. Benötigst Du dafür Beispielcode?
2. HTML ist eigentlich simpel. Ich habe das gelöst, indem ich eine Templatedatei (Tabelle, DIV-Container) erzeugt habe, die dann die Spaltenüberschriften setzt und die Spaltenanteile entsprechend wiederholt. Also quasi: Formulare im HTML-Editor erzeugen, Platzhalter einsetzen und dann bei der Dateierzeugung einfach substituieren. Bei Datenzeilen natürlich wiederholt. Wenn man viele Spalten hat, wird das natürlich irgendwann unschön.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
JA, bitte ...Tom hat geschrieben:1. Ja, kann man. Es geht sogar "MHTML" (eingebettete Grafiken). Der Export funktioniert wie derjenige nach PDF, RTF, TIFF usw. Man setzt die entsprechenden Exportoptionen, statt einen Druckjob zu erzeugen. Die Druckroutine ist ansonsten dieselbe. Benötigst Du dafür Beispielcode?
ich weiss nicht "wonach" ich suchen soll ...
ah, ja ... also brauche ich erstmal eine "Vorlage" und ersetze dann die Platzhalter. hört sich ganz einfach an ...Tom hat geschrieben: 2. HTML ist eigentlich simpel. Ich habe das gelöst, indem ich eine Templatedatei (Tabelle, DIV-Container) erzeugt habe, die dann die Spaltenüberschriften setzt und die Spaltenanteile entsprechend wiederholt. Also quasi: Formulare im HTML-Editor erzeugen, Platzhalter einsetzen und dann bei der Dateierzeugung einfach substituieren. Bei Datenzeilen natürlich wiederholt. Wenn man viele Spalten hat, wird das natürlich irgendwann unschön.
aber wenn ich aus LL gleich meinen Report "nach HTML bringen kann" wäre mir das noch lieber.
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
hi,
nachdem ich nun von Tom paar Tips bekommen habe, habe ich die gleich ausprobiert.
Ich benutze als "Vorlage" die Devcon 2007 Unterlagen vom Tom´s Referat und habe da nun ein Problem :hoffe das dass soweit richtig ist ?
so nun kommt das "Problem" : Ich habe die "PreView" an und warte bis er fertig ist, dann wird der
2nd Drucker Button (alle Seiten) angezeigt und damit "drucke" ich.
dafür nutze ich LlPrintWithBoxStart() *********** FRAGE HIER ************ich bin mir nicht sicher ob ich aus einem "PreView" den HTML Export starten kann ? wenn ich auf den Button clicke kommen nur meine Drucker ... ?
was habe ich noch nicht "begriffen" ... wie "druckt" man einen HTML "Export" ?
nachdem ich nun von Tom paar Tips bekommen habe, habe ich die gleich ausprobiert.
Ich benutze als "Vorlage" die Devcon 2007 Unterlagen vom Tom´s Referat und habe da nun ein Problem :
Code: Alles auswählen
#include "cmbtll13.ch" // defines for L&L printing system
#include "cmbtls.ch" // defines for L&L storage system
#include "DLL.CH"
#include "XBP.CH"
#include "COMMON.CH"
#include "gra.ch"
STATIC hJob := 0
STATIC hDll := 0
STATIC hDlls := 0
STATIC aBMPHandle := {}
MEMVAR zPATH
PROCEDURE LL13_Init(lHTML)
DEFAULT lHTML TO .F.
hDll := DllLoad("CMLL13.DLL") // change this if you have a different L&L version
hDlls := DllLoad("CMLS13.DLL") // and this also
IF hDll == 0
* app quits if L&L cannot be loaded
MsgBox("Cannot load DLLs","List & Label init DLL")
Quit
ELSE
LSLoadTemplates(hDlls) // storage system, DLL functions wrapper
LLLoadTemplates(hDll) // printing system, DLL functions wrapper
LlSetOptionString(-1,LL_OPTIONSTR_LICENSINGINFO,'blabla') // license string, remove for demo
LlSetDebug(LL_DEBUG_CMBTLL)
hJob := LlJobOpen(CMBTLANG_GERMAN) // open job with GERMAN
* some options for Preview
LlSetOption(hJob, LL_OPTION_ESC_CLOSES_PREVIEW, 1)
LlSetDlgboxMode(LL_DLGBOXMODE_ALT9)
LlSetOption(hJob, LL_OPTION_UISTYLE, LL_OPTION_UISTYLE_OFFICEXP)
LlSetOption(hJob, LL_OPTION_MULTIPLETABLELINES, 1)
// Hallo, Jimmy.
// 1. Am Beginn der Druckroutine m³ssen z.B. solche Optionen gesetzt werden:
IF lHTML
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", "Export.File","MYPREIS.HTM")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", "Export.Path",ConvToAnsiCP(trim(zpath)))
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", "Export.Quiet","1")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", "Export.ShowResult","1")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", "Verbosity.Table.Frames","2")
ENDIF
ENDIF
RETURN
so nun kommt das "Problem" : Ich habe die "PreView" an und warte bis er fertig ist, dann wird der
2nd Drucker Button (alle Seiten) angezeigt und damit "drucke" ich.
dafür nutze ich LlPrintWithBoxStart() *********** FRAGE HIER ************
Code: Alles auswählen
PROCEDURE LL_PrintList(lFromDb,;
cDataSource,;
oOwner,;
cFormName,;
bCondition,;
lFromTop,;
lDesigner,;
lPreview,;
aHeaders,;
lHTML)
...
IF lPreview
* set path for preview files to Temp
LlPreviewSetTempPath(hJob, TempPath())
ENDIF
* init field definitions for L&L
LlDefineFieldStart(hJob)
* publish fields of first record/entry for designer
IF lFromDb
* database
LlPublishData(.T.,hJob,aField,aType,aLen,aDec)
ELSE
* array
LlPublishData(.T.,hJob,aField,aType,aLen,aDec,cDataSource,1)
ENDIF
* publish some vars needed around
LlDefineVariableExt(hJob,"company_name","Yiu-Software",LL_TEXT,0)
//
// _xDatum() ist eine eingene Function
// welche ein über DATUM() einstellbares cDATE einhält
//
LlDefineVariableExt(hJob,"JOB_Date",_xDatum(),LL_TEXT,0)
LlDefineVariableExt(hJob,"JOB_Path",zPATH,LL_TEXT,0)
* create number field (iterating)
LlDefineFieldExt(hJob,"number",Ltrim(Str(nNumber,12,0)),LL_NUMERIC,0)
* initial definitions completed
* call designer if option is set
IF lDesigner
LlDefineLayout(hJob, oOwner:GetHWND(),;
"Designer", LL_PROJECT_LIST, cFormName)
ENDIF
* end designer
* init print routine
*********** FRAGE HIER ************
// 2. In "LlPrintStart" oder "LlPrintWithBoxStart" muss als Projekttyp statt "LL_PRINT_NORMAL" "LL_PRINT_EXPORT" angegeben werden.
IF lHTML
nRet := LlPrintWithBoxStart(hJob,;
LL_PROJECT_LIST,;
cFormName,;
if(lPreview,LL_PRINT_PREVIEW,LL_PRINT_EXPORT),; // change to EXPORT
LL_BOXTYPE_NORMALMETER,;
oOwner:GetHWND(),;
if(lPreview,"Preview","Printing"))
// 3. Nach dem Aufruf von "LlPrintStart" oder "LlPrintWithBoxStart" muss das hier geschehen: LlPrintSetOptionString(hJob,LL_PRNOPTSTR_EXPORT,"HTML")
// set Option
LlPrintSetOptionString(hJob,LL_PRNOPTSTR_EXPORT,"HTML")
ELSE
nRet := LlPrintWithBoxStart(hJob,;
LL_PROJECT_LIST,;
cFormName,;
if(lPreview,LL_PRINT_PREVIEW,LL_PRINT_USERSELECT),; // change LL_PRINT_USERSELECT to LL_PRINT_NORMAL to print on default printer
LL_BOXTYPE_NORMALMETER,;
oOwner:GetHWND(),;
if(lPreview,"Preview","Printing"))
ENDIF
* start job
nRet := LlPrint(hJob)
* printing loop for db/array conents
DO WHILE nRet = 0 .and. IF(lFromDb,!Eof(),nNumber < Len(cDataSource))
* inc number
nNumber ++
LlDefineFieldExt(hJob,"number",Ltrim(Str(nNumber,12,0)),LL_NUMERIC,0)
* publish fields
IF lFromDb
* database
LlPublishData(.T.,hJob,aField,aType,aLen,aDec)
ELSE
* array
LlPublishData(.T.,hJob,aField,aType,aLen,aDec,cDataSource,nNumber)
ENDIF
* update progress box
LlPrintSetBoxText(hJob, if(lPreview,"Preview","Printing"), ( (100*nNumber)/nCount ))
* print fields
nRet:=LlPrintFields(hJob)
DO WHILE nRet=LL_WRN_REPEAT_DATA
LlPrint(hJob)
nRet := LlPrintFields(hJob)
ENDDO
IF lFromDb
DO WHILE .T.
nPosi := AScan( aBMPHandle, {|x| x[1] == RECNO()} )
IF nPosi > 0
IF aBMPHandle[nPosi][2] > 0
DeleteObject(aBMPHandle[nPosi][2])
ENDIF
ADEL(aBMPHandle,nPosi)
ASize( aBMPHandle, Len(aBMPHandle)-1 )
ELSE
EXIT
ENDIF
ENDDO
DbSkip(1)
ENDIF
ENDDO
* end of printing loop
* finalize print job
nRet:=LlPrintFieldsEnd(hJob)
DO WHILE nRet=LL_WRN_REPEAT_DATA
nRet:=LlPrintFieldsEnd(hJob)
ENDDO
LlPrintEnd(hJob, 0)
IF lPreview
LlPreviewDisplayEx(hJob, cFormName, TempPath(), oOwner:GetHWND(),LL_PRVOPT_PRN_ASKPRINTERIFNEEDED)
LlPreviewDeleteFiles(hJob, cFormName, TempPath())
ENDIF
* restore db record pointer (EoF() now!)
IF lFromDb
DbGoto(nDbRec)
ENDIF
* maybe: restore selected workarea
RETURN
was habe ich noch nicht "begriffen" ... wie "druckt" man einen HTML "Export" ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
also "Preview" ist nicht bei Export !
nun habe ich eine HTML Seite erzeugt (Code folgt später), aber wieder ein Problem :
ich "denke" das dies die HTML Stelle sein müsste. Da steht doch was mit "Arial Unicode MS" ?
jemand eine Idee ?
nun habe ich eine HTML Seite erzeugt (Code folgt später), aber wieder ein Problem :
ihr seht es wohl schon ... aber das ganze geht doch auf dem Drucker und mit PDF Druck Treiber ...1027 26/30 Öйú´óϺ Riesengarn.CHINA 26/30 o.Sch. 6x2Kg
1028 31/40 Öйú´óϺ Riesengarn.CHINA 31/40 o.Sch. 6x2Kg
1072 26/30 Ô½ÄÏ Riesengarn.Vietnam 26/30 BT
Code: Alles auswählen
</table>
</td><td valign="middle" class="tdx" width="134" height="22" style="border-left-width:1px; border-left-style:solid; border-left-color:rgb(0,0,0); border-right-width:1px; border-right-style:solid; border-right-color:rgb(0,0,0); border-top-width:1px; border-top-style:solid; border-top-color:rgb(0,0,0); border-bottom-width:1px; border-bottom-style:solid; border-bottom-color:rgb(0,0,0);"><table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td class="tdx" align="left"><font face="Arial Unicode MS" color="#000000" size="2">26/30 Öйú´óϺ</font></td></tr>
jemand eine Idee ?
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
Code: Alles auswählen
PROCEDURE LL13_Init(lHTML)
DEFAULT lHTML TO .F.
hDll := DllLoad("CMLL13.DLL") //change this if you have a different L&L version
hDlls := DllLoad("CMLS13.DLL") // and this also
IF hDll == 0
* app quits if L&L cannot be loaded
MsgBox("Cannot load DLLs","List & Label init DLL")
Quit
ELSE
LSLoadTemplates(hDlls) // storage system, DLL functions wrapper
LLLoadTemplates(hDll) // printing system, DLL functions wrapper
LlSetOptionString(-1,LL_OPTIONSTR_LICENSINGINFO,'blabla') // license string
LlSetDebug(LL_DEBUG_CMBTLL)
hJob := LlJobOpen(CMBTLANG_GERMAN) // open job with GERMAN
LlSetOption(hJob, LL_OPTION_ESC_CLOSES_PREVIEW, 1) // for Prewiev
LlSetDlgboxMode(LL_DLGBOXMODE_ALT9)
LlSetOption(hJob, LL_OPTION_UISTYLE, LL_OPTION_UISTYLE_OFFICEXP)
LlSetOption(hJob, LL_OPTION_MULTIPLETABLELINES, 1)
IF lHTML
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML","Export.File","MYPREIS.HTM")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML","Export.Path",ConvToAnsiCP(trim(zpath)))
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML","Export.Quiet","1")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML","Export.ShowResult","1")
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML","Verbosity.Table.Frames","2")
ENDIF
ENDIF
RETURN
PROCEDURE LL_PrintList(lFromDb,;
cDataSource,;
oOwner,;
cFormName,;
bCondition,;
lFromTop,;
lDesigner,;
lPreview,;
aHeaders,;
lHTML)
...
* init print routine
IF lHTML
nRet := LlPrintWithBoxStart(hJob,;
LL_PROJECT_LIST,;
cFormName,;
LL_PRINT_EXPORT,; // Export to
LL_BOXTYPE_STDWAIT,;
oOwner:GetHWND() ,;
"Export to HTML...",;
.F.,zPath)
LlPrintSetOptionString(hJob,LL_PRNOPTSTR_EXPORT,"HTML")
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
nur als Ergänzung : ich habe das ganze auch auf einen chinesischem OS() versucht (angepasst) und das selbe "Problem".
Preview und drucken geht, aber bei HTML Export wieder das selbe "Problem"
Preview und drucken geht, aber bei HTML Export wieder das selbe "Problem"
gruss by OHR
Jimmy
Jimmy
- 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:
Re: List & Label - HTML "Ausgabe"
Ich nehme an, dass Du zusätzlich ein entsprechendes Sprachpaket von L&L/Combit benötigst.
Herzlich,
Tom
Tom
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
ich habe das nun in L&L Forum gestellt.Tom hat geschrieben:Ich nehme an, dass Du zusätzlich ein entsprechendes Sprachpaket von L&L/Combit benötigst.
ich habe ja nun, über Excel, die HTML Ausgabe gemacht. wenn ich mir den HTML Code ansehe mit
einem Hexeditor sehe ich bei Excel auch "die" chinesischen Zeichen und nicht sowas wie bei L&L
ÃϼÓÀ­
es gibt auch leider kein chinesische "Language" File CMBTLANG_CHINA zu erwerben ...
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
hi,
so ich habe das Notebook wieder und bin wieder bei der HTML Ausgabe.so sehen die ersten Zeilen aus wenn ich die auf einem "German" OS() generiere.
Man beachte charset=windows-1252und charset=GB2312 bekomme ich auf der chinesischen W2Ksp4 Maschine, was RICHTIG ist !!!
nun dachte ich ja ich hätte es und bin nun auf dem Notebook mit Win XP
und da bekomme ich charset=ISO-8859-1 statt charset=GB2312 ...
mein Liste & Label Codewie bekomme ich "dauerhaft" charset=GB2312 in den "Header" der *.HTML ?
so ich habe das Notebook wieder und bin wieder bei der HTML Ausgabe.
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Export to HTML...</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Man beachte charset=windows-1252
Code: Alles auswählen
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Export to HTML...</title>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312">
nun dachte ich ja ich hätte es und bin nun auf dem Notebook mit Win XP
und da bekomme ich charset=ISO-8859-1 statt charset=GB2312 ...
mein Liste & Label Code
Code: Alles auswählen
IF lHTML
LlSetOption(hJob,LL_OPTION_LCID, 20936) // (Chinesisch, vereinfacht GB2312)
LlXSetParameter(hJob, LL_LLX_EXTENSIONTYPE_EXPORT, "HTML", ...)
gruss by OHR
Jimmy
Jimmy
- AUGE_OHR
- Marvin
- Beiträge: 12903
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 44 Mal
Re: List & Label - HTML "Ausgabe"
Antwort aus dem List & Label ForumAUGE_OHR hat geschrieben:wie bekomme ich "dauerhaft" charset=GB2312 in den "Header" der *.HTML ?
ausprobiert und funktioniertMehrere Alternativen:
a) LlXSetParameter(hJob,LL_LLX_EXTENSIONTYPE_EXPORT,"HTML","HTML.Charset","GB2312")
b) LL_OPTION_CODEPAGE auf 936 (betrifft dann auch alle internen
Umwandlungen von DBCS/Unicode im LL Core)
Paulchen
gruss by OHR
Jimmy
Jimmy
- Martin Altmann
- Foren-Administrator
- Beiträge: 16502
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: List & Label - HTML "Ausgabe"
Moin,
ich habe das mal ins "richtigere" Unterforum verschoben!
Viele Grüße,
Martin
ich habe das mal ins "richtigere" Unterforum verschoben!
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.