temporären report erstellen

11/03/2010 - 02:31 von mike_ao | Report spam
hi füxe...

gibt es eine "elegantere" lösung, um eine temporàre reportdatei zu
erstellen als folgender code?
sinn und zweck der übung ist, dass ich als druckname die entsprechende
sachnummer (belegnummer z.b. "ASxxyyyzz") erhalte. da es mehrere
unterschiedliche druckformate für die einzelnen belege gibt, sind alle
"FRX"-en in einer zentralen "DBF" hinterlegt. diese DBF besteht aus den
gesamten "FRX"-feldern, mit ein paar zusatzfeldern, die für die beleg
<-> reportzuordnung notwendig sind. um diese FRX-en richtig zu
extrahieren sind auch die RECNO()'s der FRX-en mitgeführt.

[CODE]
LPARAMETERS p_repname, p_belname, p_druname

LOCAL lc_srcrepo, lc_tmprepo, lc_repfile, lc_newrepo
lc_srcrepo = SYS(2015)
lc_tmprepo = SYS(2015)
lc_newrepo = SYS(2015)

USE (ReportTabelle) ALIAS (lc_srcrepo) IN 0 SHARED
SELECT * FROM (lc_srcrepo) INTO CURSOR (lc_tmprepo) ;
WHERE ALLTRIM(repname) == p_repname ;
ORDER BY REPINDX
USE IN (lc_srcrepo)

lc_repfile = ADDBS(GETENV("temp"))+p_belname
ERASE (lc_repfile+".*")

KEYBOARD '{CTRL-W}'
CREATE REPORT (lc_repfile)

USE (lc_repfile+".frx") ALIAS (lc_newrepo) IN 0 EXCLUSIVE
ZAP IN NewFile
APPEND FROM DBF(lc_tmprepo) FOR .t.
GO TOP IN (lc_newrepo)
BLANK FIELDS TAG, TAG2 EXPR IN (lc_newrepo)
USE IN (lc_newrepo)
USE IN (lc_tmprepo)

REPORT FORM (lc_repfile) TO PRINTER NAME (p_druname)

RETURN
[/CODE]
 

Lesen sie die antworten

#1 Matthias Kahlert
12/03/2010 - 01:39 | Warnen spam
Am 11.03.2010 02:31, schrieb mike_ao:
gibt es eine "elegantere" lösung, um eine temporàre reportdatei zu
erstellen als folgender code?
sinn und zweck der übung ist, dass ich als druckname die entsprechende
sachnummer (belegnummer z.b. "ASxxyyyzz") erhalte. da es mehrere
unterschiedliche druckformate für die einzelnen belege gibt, sind alle
"FRX"-en in einer zentralen "DBF" hinterlegt. diese DBF besteht aus den
gesamten "FRX"-feldern, mit ein paar zusatzfeldern, die für die beleg
<-> reportzuordnung notwendig sind. um diese FRX-en richtig zu
extrahieren sind auch die RECNO()'s der FRX-en mitgeführt.



Anstatt da kompliziert einen CREATE REPORT zu machen, das Ding gleich
wieder zu schließen, zu ZAPpen und dann zu füllen, könntest Du auch
einfach den Report mit CREATE TABLE FREE erstellen, oder mit SELECT ...
INTO TABLE, und dann die Dateiendungen einfach àndern. Das müsste
genauso klappen.

Matthias

Ähnliche fragen