HTML Reports - Inoffizielles deutsches Xbase-Forum

Diese Website nutzt Cookies, um dir den bestmöglichen Komfort bei der Nutzung zu bieten. Mehr erfahren

Verstanden!

HTML Reports

Hallo,
ich bin wieder einmal am Testen.
Derzeit versuche ich gerade HTML für die Reports zu benutzen.
Ich denke, man kann damit einfach gut aussehende Reports erstellen.


Mit freundlichem Gruß
Otto


Vorher/nachher


<![if !supportLineBreakNewLine]>
<![endif]>


Bild



Bild

Bild





Bild

Hallo Otto

nimm doch List&Label für solche Aufgaben. Damit kannst du z.B. PDF Files erstellen die sich Speichern, mit wenigen Programmzeilen im Browser (HTML5) anzeigen und Drucken lassen und oder auch direkt Ausdrucken lassen. Mit dem Designer geht es echt schnell einen Ausdruck / Layout zu erstellen und über PDF's hast du die vielen Sorgen beim Ausdruck und Anzeige nicht die du mit HTML Ausdrucken im Browser jeweils hast.

Natürlich kannst du mit L&L auch HTML Files als Ausgabe erstellen. Für die Verwendung im Browser finde ich PDF Files jedoch wesentlich angenehmer handlicher und viel einfacher in der Unsetzung und in der Anwendung.

Für die Darstellung: (Mit PDF-Speichern / Drucken)

standard_de_XXXX.jpg

standard_de_XXXX.jpg (55.78 KiB) 4610 mal betrachtet



brauchst du nur 2 Zeilen HTML Code

Code: Alles auswählen


 <h1>Standard DE XXXX</h1>
 
 <embed width="100%" height="1000" src="$4$123765667-xxxx.pdf" type="application/pdf">

@Carlo: Exakt.

Mal davon abgesehen, dass L&L eine eierlegende Wollmilchsau ist und z.B. auch die Quereinbindung dynamischer Dokumente erlaubt, ist das entscheidende Argument für einen professionellen Reportgenerator dieser Art vor allem dasjenige, dass nicht programmiert werden muss, um Formulare zu ändern, dass man mit wenigen Klicks auch übergreifende Layouts verändern kann, dass Exporte in alle denkbaren Richtungen möglich sind und alle denkbaren Datenquellen eingebunden werden können usw. usf. Wir haben Ende der Neunziger auch ein bisschen mit HTML als Grundlage für das Reporting experimentiert, weil man ja auch Templates bauen kann und den Browser als Vorschautool hat. Aber die Begeisterung endete schnell. Die Entscheidung, stattdessen auf einen extrem leistungsstarken Reportgenerator zu setzen und die Anpassungsarbeit anderen zu überlassen, war eine der wichtigsten und richtigsten überhaupt.

Das sieht nett aus, Otto, aber wirklich zeitgemäß ist das schon seit einer Weile nicht mehr, so zu arbeiten.

Tom hat geschrieben: Di, 25. Mai 2021 9:47 Aber die Begeisterung endete schnell. Die Entscheidung, stattdessen auf einen extrem leistungsstarken Reportgenerator zu setzen und die Anpassungsarbeit anderen zu überlassen, war eine der wichtigsten und richtigsten überhaupt.

Das sieht nett aus, Otto, aber wirklich zeitgemäß ist das schon seit einer Weile nicht mehr, so zu arbeiten.

@Tom: Richtig.

Ich kann dir nur in allen Punkten voll und ganz zustimmen!!

Das lange Experimentieren mit HTML-Reports(Listen) blieb mir glücklicherweise erspart.
Schon bei der ersten Test-Version der Web-App hiess es: Wir wollen die Reports nicht nur sehen und Drucken sondern auch als PDF-Speichern und per eMail versenden usw. .... Nach einigen im totalen Chaos endenden Experimenten im Server Umfeld mit verschiedenen PDF Tools kam ich dann Ende der 2000er Jahre gerade noch rechtzeitig zu L&L.

Für mich war es die wichtigste und beste Entscheidung überhaupt, den gerade für kleine (wenige Leute) Entwickler gibt es keinen Weg an L&L vorbei. Nichts anderes kann die Produktivität über alles derart steigern wie L&L!

Hallo Carlo, hallo Tom,
danke.

PDF Export ist nicht so das Thema.
Wir lösen das einfach über PDF Drucker. PDF-Drucker installieren wir sowieso standardmäßig. Falls aus irgendeinem Grund die angeschlossenen Drucker nicht bereit sind, dann schalten wir immer automatisch den PDF-Drucker als Standarddrucker ein.

Ich denke, es gibt keine allgemein "beste" Lösung.
Es kommt immer auf den Einsatz an.

Nachdem ich gestern lange nach einem einfachen WYSIWYG Editor gesucht habe, ist mir eingefallen, dass WORD 97 einen sehr sauberen und schlanken HTML Code erzeugt. Tatsächlich habe ich noch einen WORD97 Download-Link gefunden.
Der exportierte Code ist wirklich einfach.
Was mir an HTML gefällt ist, dass man jede Menge Designvorlagen findet.

Wenn nicht noch Probleme auftauchen, dann ärgere ich mich, dass ich so lange mit den professionellen Reportgeneratoren herumgeschlagen habe.
Eigentlich habe ich ziemlich alle außer L&L verwendet.

Meine jungen Mitarbeiter haben ihren Fokus auf "Web & Free". Es ist schon schwer, alles was mit "Clipper" zu tun hat zu verteidigen.

Mit freundlichem Gruß
Otto

Hallo, Otto.

Immer machen! Wir müssen nicht über Paradigmen streiten. Jeder soll auf seine Weise glücklich werden. My own way is my best way.

Allerdings möchte ich an zwei Stellen widersprechen:

- Wenn Deine jungen, coolen, aufgeschlossenen Kollegen das okay finden, mit Word 97 (!) zu hantieren und, um einen PDF-Export zu erzeugen, entsprechende Druckertreiber zu bedienen, dann ist das okay, aber auf den vertikalen Markt dürftest Du Dich mit einer solchen Lösung heutzutage nicht blicken lassen.

- HTML beschreibt Dokumente ohne Kontext. Du hast keine Seitengröße und Seitenlängen, Du hast kein Umbruchverhalten, keine Seitenwechselbedingungen, keine Seitenfußzeilen usw. usf. - Du hast ein zusammenhängendes Dokument, das man am Bildschirm scrollen würde, aber einen Scrollbalken hat Dein Ausdruck nicht. Das ist einer der (doch durchaus zahlreichen) Neckbreaker dieses Ansatzes, zumindest aus Sicht von Softwareanbietern. Wenn das in Deinem Haus auch okay ist, prima. Klar, Du kannst mit Viewports hantieren, aber das könnte spannend enden.

Und doch noch ein Wort zum "Herumschlagen". Ich habe vier, fünf allgemeine Druckroutinen gebaut, die sehr kompakt und allgemeingültig sind. Alles andere ist Formular. Ich schlage mich mit Reporting nur noch sehr selten herum, um es vorsichtig zu sagen. :wink:

Herzlich,
<![if !supportLineBreakNewLine]>
<![endif]>

Hallo Otto

zu Tom's Text möchte ich noch folgendes ergänzen:

Ich denke aber dass du mit den "Free" Tools und auch mit deiner HTML Repoting-Lösung sicher ein vielfaches an Zeit zur Umsetzung benötigt.

Selbst bin ich mehr als glücklich die unsäglichen PDF-Drucker Treiber nicht mehr zu benötigen waren die doch für so viel Probleme, Ärger und Frust verantwortlich zudem funktionieren die auf dem Server meist gar nicht richtig und Support gabs meist auch nur bei Dr. Google.
Dann können die meisten neben v.a. auch den PDF-A Standard nicht was für eine Archivierung aber zwingend gefordert wird.

Auch lassen sich mit L&L alle Dokumente ohne Programmierarbeit ändern und anpassen. Ein Detail auf das ich nicht mehr verzichten möchte.

Wenn ich mich richtig Errinnere baust du deine Programme haupfsächlich für deinen eigenen Betrieb, da kannst du natürlich mehr Risiken eingehen mit mehr Sorgen und Problemen leben und auch mehr experimentieren und "Jugend forscht" betreiben und auch "End of Life" oder "Rest in Peace" Tools benutzen.

Hallo Tom, hallo Carlo,

ich habe das mit Word97 eigentlich so als Tipp hier geschrieben. Ich selbst komme mit dem aktuellen HTML Sourcecode von WORD gut zurecht. Aber für einen "HTML" Starter ist der WORD97 Code einfacher zu verstehen. Eigentlich ohne sich einzuarbeiten.
Zum Beispiel kann man aus den vielen WORD-Vorlagen sich eine aussuchen und dann mit WORD97 als HTML speichern.

Um den HTML Sourcecode zu editieren verwenden wir jetzt nur noch VS Code. Bei VS Code geht die Weiterentwicklung derart schnell, dass es für die Konkurrenz schwierig wird.

Seitengröße und Länge denke ich, sind über die Registry einstellbar. Eher problematisch sehe ich den Seitenumbruch, wenn man Fließtexte verwendet.
Doch ich denke, man kann auch das abfragen. In "EasyReport" werden beispielsweise die Memofelder zeilenweise abgearbeitet und dann entsprechend der Seitenumbruch gemacht.

Code: Alles auswählen

if nPagebreak = 20
 nPagebreak := 0
 cText += "</table>" + CRLF
 cText += "<br>FOOTER page " + CRLF
 cText += "<div style='page-break-after: always;'></div>" + CRLF
 cText += "<div>&nbsp;" + CRLF
 cText += "</div>" + CRLF
 cText += "<table class=MsoNormalTable border=0 cellspacing=0 cellpadding=0" + CRLF
...

Ich habe vor Jahren von Crystal Reports auf FastReport umgestellt. Dann auf den FW-eigenen ER und diesen um eine Zoomfunktion 200%, etc. erweitert. Der ER Designer ist einfach und auch ein Endanwender kann kleine Änderungen machen. Mit CR oder FR ist das undenkbar. Der Designer ist zu komplex.

Mit freundlichem Gruß
Otto

Nur weil heute keiner mehr Latein lernen will

Weil es bis auf diesen ulkigen Männer-mit-Goldumhängen-die-nach-Weihrauch-riechen-Staat irgendwo in Rom auch kaum noch eine Gegend auf dem Planeten gibt, in der Latein Alltagssprache ist. :wink:

Und außerdem steht RIP tatsächlich für Raster Image Processing.

Nur weil heute keiner mehr Latein lernen will

... und was ist mit den Obelix Fans?
Ich kann mir das Reportimng ohne L&L nicht mehr vorstellen...

Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.

Tom hat geschrieben: Di, 25. Mai 2021 15:08Weil es bis auf diesen ulkigen Männer-mit-Goldumhängen-die-nach-Weihrauch-riechen-Staat irgendwo in Rom auch kaum noch eine Gegend auf dem Planeten gibt, in der Latein Alltagssprache ist. :wink:

Tom,

Meinungsfreiheit bedeutet auch, jemanden anderen für seine Meinung nicht ins Lächerliche zu ziehen. Das sage ich als jemand, der niemals solch ein Ornat trägt, nie getragen hat, und auch nie tragen wird. Der noch nie Weihrauch angesteckt oder gependelt hat.

Alltagssprache ist Latein auch in der katholischen Kirche seit dem Zweiten Vatikanischen Konzil nicht mehr. Sie ist halt nur immer universell gewesen, egal ob sonst gerade französisch, deutsch, oder aktuell halt gerade englisch die internationale Sprache des Austausches ist (letzteres natürlich nur da, wo nicht russisch oder chinesisch die wichtigste Sprache ist).

Und auch in anderen Berufen ist nach wie vor Latein Grundvoraussetzung, Medizin, Geschichte, und Recht z. B.

So nebenbei: Wir reden hier nicht über RIP, sondern über R.I.P. Und das hat dann doch wieder nichts mit Raster zu tun ... ;-)

<![if !supportLineBreakNewLine]>
<![endif]>

Meinungsfreiheit bedeutet auch, jemanden anderen für seine Meinung nicht ins Lächerliche zu ziehen.

Wen habe ich bitteschön für seine Meinung ins Lächerliche gezogen?

Und, nein, es hat nicht mit Meinungsfreiheit zu tun, wenn jedermann für sich das Recht in Anspruch nimmt, wegen irgendeiner Meinungsäußerung beleidigt zu sein. Eher im Gegenteil. :wink:

Herzlich,
<![if !supportLineBreakNewLine]>
<![endif]>

Hallo,
eigentlich wollte ich mein neues Projekt

Bild

nennen.

Mit freundlichem Gruß
Otto

/??z?'p??z?/
easy-peasy | adjective | British informal

very easy; presenting no difficulty at all

The reports are easy-peasy to make.
You can use any HTML editor or WYSIWYG HTML editor - for example WORD - to create /??z?'p??z?/ reports.

/??z?'p??z?/ report definition files are HTML files.
/??z?'p??z?/ report works with with Fivewin and mod harbour.

https://winhotel.space/izipizi/docu.html

Hallo Otto

ich kann dir wirklich nur ans Herz legen dir einmal List&Label anzuschauen bevor du viel Zeit in dein Projekt steckst.

https://www.combit.net/reporting-tool/report-designer/

Es hat einige Videos.

Diese Reports sind für mich "Kinderleicht".

Sie sehen zudem in allen Export Varianten (Druck,Vorschau,PDF,XLS,JPG uva) perfekt aus .......
Sie lassen sich im WYSIWYG System mit Vorschau erstellen.
Auch nicht EDV-Profis können damit Ihre Ausdrucke einfach anpassen ohne dass Sie sich mit unbemerkten Schreibfehler in einem Editor zur Laufzeit alles zerstören.
Zudem hast du einen perfekten, Deutsch sprechenden Support der dir bei Problemen auch Telefonisch weiterhilft.

Hallo Carlo,
danke für die Information und den Link.
Ich habe mir das Video angeschaut.
Im Prinzip ist es genauso wie FASTReport oder CR.
Es ist eigentlich eine weitere Entwicklungsumgebung. Ich denke, für meinen Einsatz ist das zu umfangreich. Außerdem habe ich meine Reports bereits alle druckfertig in DBF-Dateien.
Ich verwende meist vor dem Druck einen "Browser", der dann einiges was das L&L Tool kann auch schon macht, z.B. Sortierung, ausklappbare Daten, etc.
Ich habe mir auch einen zusätzlichen Präprozessor gebaut. Damit kann ich den Sourcecode sehr vereinfachen und auch die Templates einfach übernehmen.
Wenn ich sehe was mit HTML und CSS alles möglich ist, dann denke ich, dass meine derzeitigen Anforderungen abgedeckt sind.
<![if !supportLineBreakNewLine]>
<![endif]>

Hallo Freunde,
ich habe nun eine einfache Möglichkeit Platzhalter in den Word-Templates einzufügen und dann vom Programm aus zu ersetzen.
Word template - placeholders


Bild

create placeholders
Bild


placeholders
Bild

paste placeholders
Bild

save as HTML
Bild

extract placeholders from HTML
Bild

changing design with WORD

Bild

<![if !supportLineBreakNewLine]>
<![endif]>

Bild 

Irre.

Herzlich,
Tom

Umwerfend!

Ein Tip am Rande: Ich würde die korrekte Adressdarstellung für Europa verwenden.
Eine Adresse enthält von Unten nach oben:

Land (nur wenn Ausland)
PLZ und Ort (kein Fettdruck)
Strasse
Firma ( nur wenn vorhanden)
Name
Anrede (nicht nötig)


Max. 1 Zeile mit einer Referenz z.B. Telefonnummer mit min 3mm Abstand zum Namen.

In der Adresse dürfen keine Leerzeilen enthalten sein.
Eine Adresse hat zwischen 3 und 6 Zeilen.


da muß ich Dich korrigieren. Die Reihenfolge von Name und Firma ist variabel. Und die Reihenfolge ist auch von rechtlicher Bedeutung.

Harald Müller
Billys Modeschuppen

Die Sendung geht an Herrn Müller, er ist auch der Rechnungsempfänger. Erreichbar ist er für den Zustelldienst beim Modeschuppen. Der aber rechtlich nichts mit dieser Lieferung zu tun hat. Der Postdienst des Modeschuppens darf die Sendung auch nicht öffnen, da die nicht an den Laden geht sondern an die Privatperson Harald Müller. Würden die das doch machen wäre das eine Verletzung des Briefgeheimnisses.

Billys Modeschuppen
Harald Müller

Die Sendung geht an den Modeschuppen, der auch rechtlich für die Kosten gerade stehen muß. Ansprechpartner in dem Laden ist Harald Müller. Der Postdienst der Firma darf die Sendung öffnen.

Ansonsten stimme ich Dir zu - die Adresse ist heute wesentlich einfacher zu schreiben als früher. Ich erinnere mich noch an Zeiten wo die PLZ nach links raus gezogen wurde und größer geschrieben wurde. Und es eine Leerzeile zwischen Straße und Ort gab. Es gab auch glaube ich mehrfach Wechsel mit der Länderangabe - das Buchstabenkürzel vor der PLZ und nach links rausgezogen, in Großbuchstaben als letzte Zeile, und was sonst noch alles. Das ist heute alles viel einfacher und strukturierter geworden.

<![if !supportLineBreakNewLine]>
<![endif]>



irre toll oder irre irre?

<![if !supportLineBreakNewLine]>
<![endif]>

Hallo Jan

Ja so ist es. Du hast nun auch noch die Details genau beleuchtet.

Hallo Jan, hallo Carlo,
ich denke, die Adresse ist wirklich kein Problem.
Ich ändere die Platzhalter um und übergebe nur einen Adressblock.
Seht euch bitte das beiliegende Video an.
<![if !supportLineBreakNewLine]>
<![endif]>

https://mybergland.com/fwforum/htmladresse.mp4

Tom meint bestimmt,
irre was man bereits vor 20 Jahren gemacht hat ;-)

Gruß
Klaus

Das ist tolle, irre Arbeit, aber ich bin heilfroh, dass wir uns mit solchem Zeug nicht mehr auseinandersetzen müssen. Und zugleich deutlich weniger Luft nach oben haben. Aber das ist eine Frage des Anspruchs und der Anforderungen.

Diese Website nutzt Cookies, um dir den bestmöglichen Komfort bei der Nutzung zu bieten. Mehr erfahren

Verstanden!

Hallo Klaus,

Irre, was wir vor 20 Jahren schon gemacht haben.
Angeregt von deinem Posting habe ich meine alten Produktprospekte durchgeschaut.
Der erste Reportgenerator, den ich für meine WINHOTEL-Version 1.0 (1995) eingesetzt habe, war CA-Ret, der bei VO dabei war.

Bild

Nachdem CA-Ret eingestellt wurde, habe ich unter anderem auch mit dem RTF-Format getestet. Ist ja sehr ähnlich wie HTML.
Doch MS hat dann angefangen, die Bilder direkt im RTF zu speichern. Das Suchen&Ersetzen hat dann sehr lange gedauert ( 286er, 386er PCs).
Nun starte ich einen nächsten Versuch.


Lustig ist auch, was wir damals noch für einen "Spielwitz" hatten.
War eine Frau als User angemeldet, zeigten wir die Wilma sonst den Fred als Icon an.

Bild

<![if !supportLineBreakNewLine]>
<![endif]>

Die Werbung ist aus 1995!

Ich habe mir gerade nochmals die Highlights durchgelesen. :)
Combobox, Checkbox, Listboxen, Radiobuttons, Multitasking, Clipboard, MDI-Fenster, WYSIWIG, etc.
Wenn ich das jetzt lese, frage ich mich, wer das damals verstanden hat.
LG
Otto

azzo hat geschrieben: Fr, 04. Jun 2021 12:15 Die Werbung ist aus 1995!

Anno Domini 1995 warst du ja SuperModern!
Jetzt .....

Hallo Freunde,
Ich habe nun die erste Rückmeldung.

/*
Hallo Otto,
super danke!
Wäre es möglich, dass die erste Spalte kleiner ist?
Also im Prinzip würden wir sie gar nicht benötigen.
Ich weiß nicht was das CH überhaupt heißt. ?
Und wenn es geht die Schrift größer von Zimmernummer, An- und Abreise, HP & Bemerkung.
Die letzten 5 Spalten benötigen wir auch nicht ( D + T + Aktion + Ki + EW) steht darüber.
*/

Die Änderungen sind sehr einfach.
In der Funktion, die entscheidet, welche Spalten gedruckt werden,
werden die Schalter einfach auf "N" für Nein gesetzt.

Code: Alles auswählen

function check4prn( nCol, cCol )
// 1234567890123456 
local cPrint := "NJJJJJJJJJJNNNNN"
 
 if substr(cPrint, nCol, 1 ) <> "J"
 cCol := ""
 endif
 
return( cCol )
//----------------------------------------------------------------------------//

Das Styling wird im CSS gemacht.

Code: Alles auswählen



<style>
 .mytd {
 border: 1px solid #dddddd;
 text-align: center;
 padding: 4px;
 background: #A4C400;
 font-size: 18px;
 } 
 .tdname {
 font-size: 18px;
 border: 1px solid #dddddd;
 text-align: left;
 padding: 4px;
 } 
 
 .tdmedium {
 font-size: 22px;
 border: 1px solid #dddddd;
 text-align: left;
 padding: 4px;
 } 
 
 .tdlarge {
 font-size: 26px;
 border: 1px solid #dddddd;
 text-align: left;
 padding: 4px;
 } 
 
</style> 

 
cText += check4prn( 1, "<td>" + cMarker+ "</td>" + CRLF )
cText += check4prn( 2, "<td class='tdlarge'>" + VRDZiNr + "</td>" + CRLF )
cText += check4prn( 3, "<td class='tdname'>" + convertUmlaute( VRDName ) + "</td>" + CRLF )
cText += check4prn( 4, "<td class='tdmedium'>" + VRDAnAbreise + "</td>" + CRLF )
cText += check4prn( 5, "<td>" +VRDZF + "</td>" + CRLF )
cText += check4prn( 6, "<td>" +VRDZFKi + "</td>" + CRLF )
cText += check4prn( 7, "<td class='mytd'>" + VRDHP + "</td>" + CRLF )
cText += check4prn( 8, "<td>" +VRDHPKi + "</td>" + CRLF )
cText += check4prn( 9, "<td>" +VRDVP + "</td>" + CRLF )
cText += check4prn( 10, "<td>" +VRDVPKi + "</td>" + CRLF )
cText += check4prn( 11, "<td class='tdname'>" +convertUmlaute(VRDBErmerkung) + "</td>" + CRLF )
cText += check4prn( 12, "<td>" +VRDEW + "</td>" + CRLF )
cText += check4prn( 13, "<td>" +VRDKi + "</td>" + CRLF )
cText += check4prn( 14, "<td>" +VRDAktion + "</td>" + CRLF )
cText += check4prn( 15, "<td>" +VRDD + "</td>" + CRLF )
cText += check4prn( 16, "<td>" +VRDT + "</td>" + CRLF )
 

Bild
<![if !supportLineBreakNewLine]>
<![endif]>

Hallo Freunde,
heute habe ich an einem Header-Template-Design für den HTML Report gearbeitet
und auch ich einige Tests mit dem Quittungsdrucker gemacht.
Es funktioniert gut.
Mit freundlichem Gruß
Otto
Bild

Bild



Bild

Bild

Hallo Freunde,
mein HTML Report Tool wächst.

Bild

Hier ein Beispiel mit einem übertriebenen Font.

Bild

Und noch ein Beispiel, wie ich nun mit WORD die Reports designe.

Dokumentation
https://winhotel.space/htmlreport/htmlreport.html

Bild
 

Hallo Freunde,
Ich konnte nun das Problem mit der Druckerumstellung von Portrait auf Landscape und zurück lösen.
Zwar nicht direkt mit einer HARBOUR/CLIPPER Funktion aber über den Aufruf RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry.
Ich poste hier die Aufrufe, vielleicht interessiert es jemand.
 


function hochformat()
 winexec('RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Sr /n "Seminar" /a "c:\setprnter\Seminarhoch.dat"')
return nil

function landscape()
 winexec('RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /Sr /n "Seminar" /a "c:\setprnter\Seminar.dat"')
return nil

function Setdefault()
 winexec('RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /y /n "Seminar"')
return nil



nochmals ein Test.

Code: Alles auswählen

 AADD(aReportData, {"[Tormann]", "Otto" } )
 AADD(aReportData, {"[OutsideLeft]", "Marc" } ) 
 AADD(aReportData, {"[OutsideRight]", "Antonio" } ) 
 AADD(aReportData, {"[CenterLeft]", "Cristobal" } ) 
 AADD(aReportData, {"[CenterRight]", "Silvio" } )
 
 
 cHtml := memoread( cReportTemplate )
 FOR I := 1 to len( aReportData )
 cHtml := STRTRAN( cHtml, aReportData[I,1], aReportData[I,2] )
 next 

 memowrit( cHtmlOrUrl, cHtml)

 PrintHtml( cHtmlOrUrl,1,.t.)


LG
Otto
Bild

Hallo Freunde,
das Edge based web control eröffnet ganz neu Möglichkeiten.
LG
Otto

Bild