sync SVN r18202
This commit is contained in:
60
skills/roa-vfp-frx-report/scripts/structura_frx.prg
Normal file
60
skills/roa-vfp-frx-report/scripts/structura_frx.prg
Normal file
@@ -0,0 +1,60 @@
|
||||
* structura_frx.prg - listeaza structura unui raport VFP (.frx): benzile si obiectele lor,
|
||||
* exact cum le asociaza motorul de raportare (prin FFC\_FRXCursor.vcx).
|
||||
* Utilizare headless: precompileaza intai, apoi
|
||||
* vfp9.exe -A "<...>\structura_frx.FXP" "<raport>.frx" ["<iesire>.txt"]
|
||||
* Fara al doilea parametru scrie langa raport, in "<raport>_structura.txt". Se termina cu QUIT.
|
||||
LPARAMETERS tcReport, tcOut
|
||||
SET SAFETY OFF
|
||||
SET TALK OFF
|
||||
PRIVATE pcReport, pcOut
|
||||
LOCAL lnF, i, lcLine
|
||||
LOCAL ARRAY laF[1, 1]
|
||||
pcReport = IIF(VARTYPE(tcReport) = "C", tcReport, "")
|
||||
IF EMPTY(pcReport) OR NOT FILE(pcReport)
|
||||
STRTOFILE("structura_frx: raport inexistent: " + pcReport + CHR(13)+CHR(10), FORCEEXT(pcReport, "structura.txt"))
|
||||
QUIT
|
||||
ENDIF
|
||||
pcOut = IIF(EMPTY(tcOut), FORCEEXT(pcReport, "structura.txt"), tcOut)
|
||||
ON ERROR DO errhand WITH ERROR(), MESSAGE(), PROGRAM(), LINENO()
|
||||
STRTOFILE("Raport: " + pcReport + CHR(13)+CHR(10), pcOut)
|
||||
SET CLASSLIB TO (HOME() + "FFC\_FRXCursor.vcx") ADDITIVE
|
||||
USE (pcReport) IN 0 ALIAS FRX
|
||||
SELECT FRX
|
||||
loFRX = CREATEOBJECT("FRXCursor")
|
||||
loFRX.CreateObjectCursor()
|
||||
IF USED("BANDS")
|
||||
SELECT BANDS
|
||||
lnF = AFIELDS(laF, "BANDS")
|
||||
STRTOFILE("=== BENZI ===" + CHR(13)+CHR(10), pcOut, 1)
|
||||
SCAN
|
||||
lcLine = ""
|
||||
FOR i = 1 TO lnF
|
||||
IF INLIST(laF[i,1], "BANDLABEL", "START", "STOP", "HEIGHT")
|
||||
lcLine = lcLine + laF[i,1] + "=" + TRANSFORM(EVALUATE(laF[i,1])) + " "
|
||||
ENDIF
|
||||
NEXT
|
||||
STRTOFILE(lcLine + CHR(13)+CHR(10), pcOut, 1)
|
||||
ENDSCAN
|
||||
ENDIF
|
||||
IF USED("OBJECTS")
|
||||
SELECT OBJECTS
|
||||
lnF = AFIELDS(laF, "OBJECTS")
|
||||
STRTOFILE("=== OBIECTE (VPOS -> banda) ===" + CHR(13)+CHR(10), pcOut, 1)
|
||||
SCAN
|
||||
lcLine = ""
|
||||
FOR i = 1 TO lnF
|
||||
IF INLIST(laF[i,1], "OBJTYPE", "OBJCODE", "VPOS", "HPOS", "HEIGHT", "WIDTH", "BANDLABEL", "START_BAND_ID", "EXPR")
|
||||
lcLine = lcLine + laF[i,1] + "=" + TRANSFORM(EVALUATE(laF[i,1])) + " "
|
||||
ENDIF
|
||||
NEXT
|
||||
STRTOFILE(lcLine + CHR(13)+CHR(10), pcOut, 1)
|
||||
ENDSCAN
|
||||
ENDIF
|
||||
USE IN FRX
|
||||
STRTOFILE("gata" + CHR(13)+CHR(10), pcOut, 1)
|
||||
QUIT
|
||||
|
||||
PROCEDURE errhand
|
||||
LPARAMETERS tnErr, tcMsg, tcProg, tnLine
|
||||
STRTOFILE("ERROR " + TRANSFORM(tnErr) + " " + tcMsg + " @ " + tcProg + ":" + TRANSFORM(tnLine) + CHR(13)+CHR(10), pcOut, 1)
|
||||
ENDPROC
|
||||
Reference in New Issue
Block a user