Import initial din SVN ROAAUTO/Trunk @HEAD

This commit is contained in:
2026-04-11 17:11:32 +03:00
commit 656d98697f
1856 changed files with 163525 additions and 0 deletions

View File

@@ -0,0 +1,366 @@
**
** wwwebgraphs.fxp
**
SET PROCEDURE TO wwWebGraphs ADDITIVE
SET PROCEDURE TO wwUtils ADDITIVE
SET PROCEDURE TO wwAPI ADDITIVE
RETURN
EXTERNAL ARRAY laGraphs, laLabels, laLegend
ENDPROC
*
DEFINE CLASS wwWebGraphs AS Relation
ngRaphtype = 0
ccAption = ""
ooWc = .NULL.
coWcprogid = "OWC10.ChartSpace"
cpHysicalpath = ""
clOgicalpath = ""
niMagetimeout = 300
ciMagename = ""
niMagewidth = 750
niMageheight = 480
cbAckcolor = "lightyellow"
csEries1color = "darkred"
csEries2color = "darkblue"
csEries3color = "darkgreen"
csEries4color = "orange"
csEries5color = "purple"
csEries6color = "pink"
nMaxColors = 6
nsHowlegend = 1
*
FUNCTION Init
LPARAMETER llNoexistcheck
IF .NOT. llNoexistcheck .AND. .NOT. isComobject(thIs.coWcprogid)
RETURN .F.
ENDIF
thIs.ooWc = CREATEOBJECT(thIs.coWcprogid)
IF VARTYPE(thIs.ooWc)<>"O"
RETURN .F.
ENDIF
RETURN
ENDFUNC
*
FUNCTION GraphSetup
LOCAL loGraph
loGraph = thIs.ooWc.chArts.adD()
loGraph.tyPe = thIs.ngRaphtype
IF thIs.nsHowlegend>0
loGraph.haSlegend = .T.
ENDIF
loGraph.plOtarea.inTerior.coLor = thIs.cbAckcolor
IF .NOT. EMPTY(thIs.ccAption)
thIs.ooWc.haSchartspacetitle = .T.
thIs.ooWc.chArtspacetitle.caPtion = thIs.ccAption
thIs.ooWc.chArtspacetitle.foNt.boLd = .T.
ENDIF
RETURN loGraph
ENDFUNC
*
PROCEDURE ShowGraphFromCursor
LOCAL x, y, loGraph, lnFields, lnRows, lnSeries, lcElement, lcArray, lnx, ocOnst
lnFields = AFIELDS(laFields, ALIAS())
lnRows = RECCOUNT()
lnSeries = lnFields-1
DIMENSION laLabels[lnRows]
FOR x = 1 TO lnSeries
lcArray = "DIMENSION laValues"+TRANSFORM(x)+"["+ ;
TRANSFORM(lnRows)+"]"
&lcArray
ENDFOR
x = 0
SCAN
x = x+1
laLabels[x] = TRIM(EVALUATE(FIELD(2)))
FOR y = 1 TO lnSeries
lcElement = "laValues"+TRANSFORM(y)+"["+TRANSFORM(x)+"]"
&lcElement = EVALUATE(FIELD(y+1))
ENDFOR
ENDSCAN
ocOnst = thIs.ooWc.coNstants
loGraph = thIs.grAphsetup()
lnx = 0
FOR x = 1 TO lnSeries
loGraph.seRiescollection.adD()
loSeries = loGraph.seRiescollection(x-1)
lnx = lnx + 1
IF .NOT. INLIST(thIs.ngRaphtype, 18, 19, 58, 59)
IF lnx > this.nMaxColors && 6 culori maxim
lnx = 1
ENDIF
loSeries.inTerior.coLor = EVALUATE("THIS.cSeries"+ ;
TRANSFORM(lnx)+"Color")
ELSE
IF x>1
EXIT
ENDIF
ENDIF
lcArray = "@laValues"+TRANSFORM(x)
loSeries.caPtion = PROPER(STRTRAN(TRIM(laFields(x+1,1)), "_", " "))
loSeries.seTdata(ocOnst.chDimcategories,ocOnst.chDataliteral, ;
@laLabels)
loSeries.SetData(oConst.chDimValues, oConst.chDataLiteral, &lcArray)
ENDFOR
ENDPROC
*
PROCEDURE ShowGraphFromArray
LPARAMETER laLabels, laSeries1, lcSeries1, laSeries2, lcSeries2, ;
laSeries3, lcSeries3, laSeries4, lcSeries4, laSeries5, ;
lcSeries5, laSeries6, lcSeries6
LOCAL x, loGraph, lnSeries, lcArray, lcLabel
lnSeries = (PCOUNT()-1)/2
loGraph = thIs.grAphsetup()
ocOnst = thIs.ooWc.coNstants
FOR x = 1 TO lnSeries
loGraph.seRiescollection.adD()
IF .NOT. INLIST(thIs.ngRaphtype, 18, 19)
loGraph.seRiescollection(x-1).inTerior.coLor = ;
EVALUATE("THIS.cSeries"+ ;
TRANSFORM(x)+"Color")
ENDIF
lcArray = "@laSeries"+TRANSFORM(x)
lcLabel = EVALUATE("lcSeries"+TRANSFORM(x))
loGraph.seRiescollection(x-1).caPtion = lcLabel
loGraph.seRiescollection(x-1).seTdata(ocOnst.chDimcategories, ;
ocOnst.chDataliteral,@laLabels)
loGraph.SeriesCollection(x-1).SetData(oConst.chDimValues, oConst.chDataLiteral, &lcArray)
ENDFOR
ENDPROC
*
PROCEDURE ShowGraphFromMultiDimensionalArray
LPARAMETER laGraphs, laLegend
LOCAL loGraph, lnSeries, lnRows, llLegend, x, y
lnSeries = ALEN(laGraphs, 2)-1
lnRows = ALEN(laGraphs, 1)
loGraph = thIs.grAphsetup()
IF TYPE('ALEN(laLegend)')="N"
llLegend = .T.
ELSE
llLegend = .F.
loGraph.haSlegend = .F.
ENDIF
ocOnst = thIs.ooWc.coNstants
DIMENSION laLabels[lnRows]
FOR y = 1 TO lnRows
laLabels[y] = laGraphs(y,1)
ENDFOR
FOR x = 2 TO lnSeries+1
loGraph.seRiescollection.adD()
IF .NOT. INLIST(thIs.ngRaphtype, 18, 19)
loGraph.seRiescollection(x-2).inTerior.coLor = ;
EVALUATE("THIS.cSeries"+ ;
TRANSFORM(x)+"Color")
ENDIF
DIMENSION laArray[lnRows]
FOR y = 1 TO lnRows
laArray[y] = laGraphs(y,x)
ENDFOR
IF llLegend
loGraph.seRiescollection(x-2).caPtion = laLegend(x-1)
ENDIF
loGraph.seRiescollection(x-2).seTdata(ocOnst.chDimcategories, ;
ocOnst.chDataliteral,@laLabels)
loGraph.seRiescollection(x-2).seTdata(ocOnst.chDimvalues, ;
ocOnst.chDataliteral,@laArray)
ENDFOR
ENDPROC
*
FUNCTION GetOutput
thIs.seTgraphicsoptions(thIs.ooWc.chArts(0))
deLetefiles(thIs.cpHysicalpath+"IMG*.gif",thIs.niMagetimeout)
thIs.ciMagename = "IMG"+SYS(2015)+TRANSFORM(apPlication.prOcessid)+".gif"
thIs.ooWc.exPortpicture(thIs.cpHysicalpath+thIs.ciMagename,"gif", ;
thIs.niMagewidth,thIs.niMageheight)
RETURN '<img src="'+thIs.clOgicalpath+thIs.ciMagename+'">'
ENDFUNC
*
PROCEDURE Clear
thIs.ooWc.clEar()
ENDPROC
*
FUNCTION ShowGraphInForm
LPARAMETER lcFormcaption
LOCAL loForm, as, foRm
loForm = CREATEOBJECT("GraphForm")
loForm.adDobject("oPicture","image")
loForm.heIght = thIs.niMageheight
loForm.wiDth = thIs.niMagewidth
loForm.auTocenter = .T.
IF .NOT. EMPTY(lcFormcaption)
loForm.caPtion = lcFormcaption
ENDIF
loForm.opIcture.leFt = 0
loForm.opIcture.toP = 0
loForm.opIcture.heIght = thIs.niMageheight
loForm.opIcture.wiDth = thIs.niMagewidth
loForm.opIcture.piCture = thIs.cpHysicalpath+thIs.ciMagename
loForm.opIcture.viSible = .T.
loForm.shOw()
RETURN loForm
ENDFUNC
*
PROCEDURE GetGraphTypes
LPARAMETER lcCursorname
IF EMPTY(lcCursorname)
lcCursorname = "wwWebGraphTypes"
ENDIF
CREATE CURSOR (lcCursorname) (naMe C (80), id I)
TEXT TO lcVar
#define chChartTypeColumnClustered 0
#define chChartTypeColumnStacked 1
#define chChartTypeColumnStacked100 2
#define chChartTypeBarClustered 3
#define chChartTypeBarStacked 4
#define chChartTypeBarStacked100 5
#define chChartTypeLine 6
#define chChartTypeLineStacked 8
#define chChartTypeLineStacked100 10
#define chChartTypeLineMarkers 7
#define chChartTypeLineStackedMarkers 9
#define chChartTypeLineStacked100Markers 11
#define chChartTypeSmoothLine 12
#define chChartTypeSmoothLineStacked 14
#define chChartTypeSmoothLineStacked100 16
#define chChartTypeSmoothLineMarkers 13
#define chChartTypeSmoothLineStackedMarkers 15
#define chChartTypeSmoothLineStacked100Markers 17
#define chChartTypePie 18
#define chChartTypePieExploded 19
#define chChartTypePieStacked 20
#define chChartTypeScatterMarkers 21
#define chChartTypeScatterLine 25
#define chChartTypeScatterLineMarkers 24
#define chChartTypeScatterLineFilled 26
#define chChartTypeScatterSmoothLine 23
#define chChartTypeScatterSmoothLineMarkers 22
#define chChartTypeBubble 27
#define chChartTypeBubbleLine 28
#define chChartTypeArea 29
#define chChartTypeAreaStacked 30
#define chChartTypeAreaStacked100 31
#define chChartTypeDoughnut 32
#define chChartTypeDoughnutExploded 33
#define chChartTypeRadarLine 34
#define chChartTypeRadarLineMarkers 35
#define chChartTypeRadarLineFilled 36
#define chChartTypeRadarSmoothLine 37
#define chChartTypeRadarSmoothLineMarkers 38
#define chChartTypeStockHLC 39
#define chChartTypeStockOHLC 40
#define chChartTypePolarMarkers 41
#define chChartTypePolarLine 42
#define chChartTypePolarLineMarkers 43
#define chChartTypePolarSmoothLine 44
#define chChartTypePolarSmoothLineMarkers 45
#define chChartTypeColumn3D 46
#define chChartTypeColumnClustered3D 47
#define chChartTypeColumnStacked3D 48
#define chChartTypeColumnStacked1003D 49
#define chChartTypeBar3D 50
#define chChartTypeBarClustered3D 51
#define chChartTypeBarStacked3D 52
#define chChartTypeBarStacked1003D 53
#define chChartTypeLine3D 54
#define chChartTypeLineOverlapped3D 55
#define chChartTypeLineStacked3D 56
#define chChartTypeLineStacked1003D 57
#define chChartTypePie3D 58
#define chChartTypePieExploded3D 59
#define chChartTypeArea3D 60
#define chChartTypeAreaOverlapped3D 61
#define chChartTypeAreaStacked3D 62
#define chChartTypeAreaStacked1003D 63
ENDTEXT
lnLines = ALINES(laLines, lcVar)
FOR x = 1 TO lnLines
lcValue = exTract(laLines(x)," ",CHR(13), ,.T.)
INSERT INTO (lcCursorname) (naMe, id) VALUES ;
(exTract(laLines(x),"#define "," "), VAL(lcValue))
ENDFOR
REPLACE naMe WITH STRTRAN(naMe, "chChartType", "") ALL
ENDPROC
*
PROCEDURE SetGraphicsOptions
LPARAMETER loChart
RETURN
ENDPROC
*
PROCEDURE nGraphType_Assign
LPARAMETER lvGraphtype
IF VARTYPE(lvGraphtype)="N"
thIs.ngRaphtype = lvGraphtype
RETURN
ENDIF
IF VARTYPE(lvGraphtype)="C"
lvGraphtype = UPPER(lvGraphtype)
DO CASE
CASE lvGraphtype="BAR3D"
thIs.ngRaphtype = 50
CASE lvGraphtype="BAR"
thIs.ngRaphtype = 0
CASE lvGraphtype="PIE3D"
thIs.ngRaphtype = 58
CASE lvGraphtype="PIE"
thIs.ngRaphtype = 18
CASE lvGraphtype="PIEEXPLODED3D"
thIs.ngRaphtype = 59
CASE lvGraphtype="PIEEXPLODED"
thIs.ngRaphtype = 19
CASE lvGraphtype="COLUMN3D"
thIs.ngRaphtype = 51
CASE lvGraphtype="COLUMN"
thIs.ngRaphtype = 3
CASE lvGraphtype="LINE3D"
thIs.ngRaphtype = 54
CASE lvGraphtype="LINEPOINTS"
thIs.ngRaphtype = 7
CASE lvGraphtype="LINE"
thIs.ngRaphtype = 6
ENDCASE
ENDIF
ENDPROC
*
ENDDEFINE
*
DEFINE CLASS GraphForm AS Form
shOwwindow = 2
caPtion = "Graph Results"
maXbutton = .F.
boRderstyle = 2
ENDDEFINE
*
FUNCTION IsCOMObject
LPARAMETER lcProgid, lcClassid, lcClassdescript
IF EMPTY(lcProgid)
RETURN .F.
ENDIF
loApi = CREATEOBJECT("wwAPI")
lcClassid = loApi.reAdregistrystring(-2147483648,lcProgid+"\CLSID","")
IF ISNULL(lcClassid)
lcClassid = ""
lcClassdescription = ""
RETURN .F.
ENDIF
lcClassdescript = loApi.reAdregistrystring(-2147483648,lcProgid,"")
IF ISNULL(lcClassdescript)
lcClassdescript = ""
ENDIF
RETURN .T.
ENDFUNC
FUNCTION DeleteFiles
PARAMETER lcFilespec, lnTimeout
PRIVATE lnX, lnFiles, loApi
lnTimeout = IIF(EMPTY(lnTimeout), 300, lnTimeout)
lnFiles = ADIR(laFiles, lcFilespec)
FOR lnX = 1 TO lnFiles
ldTime = CTOT(DTOC(laFiles(lnX,3))+" "+laFiles(lnX,4))
IF ldTime+lnTimeout<DATETIME()
ERASE (ADDBS(JUSTPATH(lcFilespec))+laFiles(lnX,1))
ENDIF
ENDFOR
RETURN .T.
ENDFUNC