Import initial din SVN ROAAUTO/Trunk @HEAD
This commit is contained in:
586
COMUN/utile/web/wwresponse.prg
Normal file
586
COMUN/utile/web/wwresponse.prg
Normal file
@@ -0,0 +1,586 @@
|
||||
**
|
||||
** wwresponse.fxp
|
||||
**
|
||||
*
|
||||
DEFINE CLASS wwResponse AS RELATION
|
||||
laSpobject = .F.
|
||||
caUtosessioncookiename = "wwSessionId"
|
||||
caUtosessioncookie = ""
|
||||
laUtosessioncookiepersist = .F.
|
||||
csTylesheet = ""
|
||||
coUtput = .NULL.
|
||||
coNtenttype = ""
|
||||
PROTECTED lnOoutput
|
||||
lnOoutput = .F.
|
||||
*
|
||||
FUNCTION Write
|
||||
LPARAMETER lcText, llNooutput
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION Send
|
||||
LPARAMETER lcText, llNooutput
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION FastWrite
|
||||
LPARAMETER lcText, llNotused
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION GetOutput
|
||||
LPARAMETER llNoclear
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE Clear
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE Rewind
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE Reset
|
||||
ENDPROC
|
||||
*
|
||||
PROCEDURE reset
|
||||
STORE "" TO thIs.caUtosessioncookie, thIs.caUtosessioncookiename
|
||||
STORE .F. TO thIs.lnOoutput
|
||||
ENDPROC
|
||||
*
|
||||
FUNCTION HTMLHeader
|
||||
LPARAMETER tcHeader, tcTitle, tcBackground, tcContenttype, tlNooutput
|
||||
LOCAL lcOuttext
|
||||
tcHeader = IIF(EMPTY(tcHeader), "", tcHeader)
|
||||
tcTitle = IIF(EMPTY(tcTitle), tcHeader, tcTitle)
|
||||
tcBackground = IIF(EMPTY(tcBackground), "", tcBackground)
|
||||
thIs.coNtenttypeheader(tcContenttype)
|
||||
IF .NOT. EMPTY(tcBackground)
|
||||
lcBackground = IIF(AT("#", tcBackground)>0, 'BGCOLOR="', ;
|
||||
'BACKGROUND="')+LOWER(tcBackground)+'"'
|
||||
ELSE
|
||||
lcBackground = ""
|
||||
ENDIF
|
||||
lcOuttext = "<HTML>"+CHR(13)+CHR(10)+"<HEAD><TITLE>"+tcTitle+ ;
|
||||
"</TITLE></HEAD>"+CHR(13)+CHR(10)+IIF( .NOT. ;
|
||||
EMPTY(thIs.csTylesheet), ;
|
||||
'<LINK rel="stylesheet" type="text/css" href="'+ ;
|
||||
thIs.csTylesheet+'">', "")+CHR(13)+CHR(10)+'<BODY '+ ;
|
||||
lcBackground+'>'+CHR(13)+CHR(10)
|
||||
IF ATC("<", tcHeader)>0 .AND. ATC(">", tcHeader)>0
|
||||
lcOuttext = lcOuttext+thIs.wrIte(tcHeader+CHR(13)+CHR(10),.T.)+ ;
|
||||
CHR(13)+CHR(10)
|
||||
ELSE
|
||||
IF .NOT. EMPTY(tcHeader)
|
||||
lcOuttext = lcOuttext+'<FONT FACE="Verdana"><H1>'+ ;
|
||||
tcHeader+'</H1></Font><HR>'+CHR(13)+CHR(10)
|
||||
ENDIF
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(@lcOuttext,tlNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE HTMLHeaderEx
|
||||
LPARAMETER lvHtmlheader, loHttpheader
|
||||
thIs.coNtenttypeheader(loHttpheader)
|
||||
IF VARTYPE(lvHtmlheader)="O"
|
||||
thIs.wrIte(lvHtmlheader.geToutput())
|
||||
ELSE
|
||||
IF VARTYPE(lvHtmlheader)="C"
|
||||
thIs.wrIte("<html><head><title>"+lvHtmlheader+"</title><body>")
|
||||
ELSE
|
||||
thIs.wrIte("<html><body>")
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDPROC
|
||||
*
|
||||
FUNCTION HTMLFooter
|
||||
LPARAMETER tcText, tlNooutput
|
||||
tcText = IIF(EMPTY(tcText), "", tcText)
|
||||
RETURN thIs.wrIte(tcText+CHR(13)+CHR(10)+"<p></BODY>"+CHR(13)+ ;
|
||||
CHR(10)+"</HTML>"+CHR(13)+CHR(10),tlNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION WriteLn
|
||||
LPARAMETER lcOutput, llNooutput
|
||||
IF EMPTY(lcOutput)
|
||||
lcOutput = ""
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(lcOutput+CHR(13)+CHR(10),llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION Sendln
|
||||
LPARAMETER lcOutput, llNooutput
|
||||
IF EMPTY(lcOutput)
|
||||
lcOutput = ""
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(lcOutput+CHR(13)+CHR(10),llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION ContentTypeHeader
|
||||
LPARAMETER lvContenttype, tlNooutput
|
||||
LOCAL loHeader, lcType, lcOutput
|
||||
lcType = VARTYPE(lvContenttype)
|
||||
DO CASE
|
||||
CASE lcType="O"
|
||||
IF .NOT. lvContenttype.lpAssedhtmlobject
|
||||
RETURN thIs.wrIte(lvContenttype.geToutput(),tlNooutput)
|
||||
ELSE
|
||||
lvContenttype.coMpleteheader()
|
||||
ENDIF
|
||||
RETURN ""
|
||||
CASE lcType="C"
|
||||
lvContenttype = LOWER(lvContenttype)
|
||||
IF lvContenttype="none" .OR. EMPTY(lvContenttype)
|
||||
RETURN ""
|
||||
ENDIF
|
||||
lvContenttype = LOWER(lvContenttype)
|
||||
loHeader = CREATEOBJECT('wwHTTPHeader', thIs)
|
||||
IF lvContenttype="force reload"
|
||||
loHeader.deFaultheader()
|
||||
loHeader.adDforcereload()
|
||||
loHeader.coMpleteheader()
|
||||
RETURN ""
|
||||
ENDIF
|
||||
loHeader.seTprotocol()
|
||||
loHeader.seTcontenttype(lvContenttype)
|
||||
loHeader.coMpleteheader()
|
||||
RETURN ""
|
||||
OTHERWISE
|
||||
loHeader = CREATEOBJECT('wwHTTPHeader', thIs)
|
||||
loHeader.deFaultheader()
|
||||
loHeader.coMpleteheader()
|
||||
RETURN ""
|
||||
ENDCASE
|
||||
RETURN thIs.wrIte(loHeader.geToutput(),tlNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION WriteMemo
|
||||
LPARAMETER lcText, llNooutput
|
||||
LOCAL lcOutput
|
||||
lcOutput = STRTRAN(lcText, CHR(13)+CHR(10), CHR(13))
|
||||
lcOutput = STRTRAN(lcOutput, CHR(13)+CHR(13), "<p>")
|
||||
lcOutput = STRTRAN(lcOutput, CHR(13), "<br>")
|
||||
RETURN thIs.wrIte(@lcOutput,llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION ExpandTemplate
|
||||
LPARAMETER tcPagename, tcContenttype, tlTemplatestring, tlNooutput
|
||||
LOCAL lcOutput, lcOldalias, lnHandle, loEval
|
||||
IF EMPTY(tcPagename)
|
||||
RETURN ""
|
||||
ENDIF
|
||||
thIs.coNtenttypeheader(tcContenttype)
|
||||
lcOutput = ""
|
||||
IF .NOT. tlTemplatestring
|
||||
lnHandle = FOPEN(tcPagename, 0)
|
||||
IF lnHandle<>-1
|
||||
lnSize = FSEEK(lnHandle, 0, 2)
|
||||
FSEEK(lnHandle, 0, 0)
|
||||
lcOutput = FREAD(lnHandle, lnSize)
|
||||
= FCLOSE(lnHandle)
|
||||
loEval = CREATEOBJECT('wwEval')
|
||||
RETURN thIs.wrIte(loEval.meRgetext(@lcOutput),tlNooutput)
|
||||
ELSE
|
||||
RETURN thIs.wrIte(lcOutput+[<h2>Can't find or open page ]+ ;
|
||||
tcPagename+'</h2>',tlNooutput)
|
||||
ENDIF
|
||||
ENDIF
|
||||
loEval = CREATEOBJECT("wwEval")
|
||||
RETURN thIs.wrIte(loEval.meRgetext(@tcPagename),tlNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION ExpandScript
|
||||
LPARAMETER tcPagename, tnMode, tvContenttype, tlTemplatestring, ;
|
||||
llNooutput
|
||||
LOCAL lcOutput, lnHandle, osCript
|
||||
tcPagename = IIF(EMPTY(tcPagename), "", tcPagename)
|
||||
tnMode = IIF(EMPTY(tnMode), 3, tnMode)
|
||||
thIs.coNtenttypeheader(tvContenttype)
|
||||
lcOutput = ""
|
||||
IF llNooutput
|
||||
loResponse = CREATEOBJECT('wwResponseStringNoBuffer')
|
||||
ELSE
|
||||
loResponse = thIs
|
||||
ENDIF
|
||||
osCript = CREATEOBJECT('wwVFPScript', IIF(tlTemplatestring, .F., ;
|
||||
tcPagename), loResponse)
|
||||
osCript.laLwaysunloadscript = .T.
|
||||
IF tnMode=3
|
||||
IF tlTemplatestring
|
||||
lcCode = osCript.coNvertpage(tcPagename,.T.)
|
||||
ELSE
|
||||
lcCode = osCript.coNvertpage(fiLe2var(osCript.cfIlename),.T.)
|
||||
ENDIF
|
||||
osCript.reNderpagefromvar(lcCode)
|
||||
IF llNooutput
|
||||
RETURN loResponse.geToutput()
|
||||
ENDIF
|
||||
RETURN
|
||||
ENDIF
|
||||
IF tnMode=2
|
||||
osCript.reNderpage()
|
||||
ENDIF
|
||||
IF tnMode=1
|
||||
osCript.coNvertpage()
|
||||
osCript.reNderpage()
|
||||
ENDIF
|
||||
IF llNooutput
|
||||
RETURN loResponse.geToutput()
|
||||
ENDIF
|
||||
RETURN
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION ShowCursor
|
||||
LPARAMETER lvHeader, lcTitle, llSumnumbers, llNooutput, lcTabletags
|
||||
LOCAL lcHeader, lnX, laTotals, lcOutput, lnSizeloc, lnSize, lvValue
|
||||
IF EMPTY(ALIAS())
|
||||
RETURN ""
|
||||
ENDIF
|
||||
lcOutput = ""
|
||||
lnFields = AFIELDS(laFields)
|
||||
lnReccount = RECCOUNT()
|
||||
IF llSumnumbers
|
||||
DIMENSION laTotals[1, lnFields]
|
||||
laTotals = 0
|
||||
ENDIF
|
||||
lcTitle = IIF(TYPE("lcTitle")="C", lcTitle, "")
|
||||
IF .NOT. llNooutput
|
||||
loShowcursor = CREATEOBJECT("wwShowCursor", thIs)
|
||||
ELSE
|
||||
loShowcursor = CREATEOBJECT("wwShowCursor")
|
||||
ENDIF
|
||||
loShowcursor.ctAbletitle = lcTitle
|
||||
loShowcursor.lsUmnumerics = llSumnumbers
|
||||
loShowcursor.laLternaterows = .T.
|
||||
IF .NOT. EMPTY(lcTabletags)
|
||||
loShowcursor.ceXtratabletags = lcTabletags
|
||||
ENDIF
|
||||
IF TYPE("lvHeader[1]")<>"U"
|
||||
loShowcursor.buIldfieldlistheader(@lvHeader)
|
||||
ENDIF
|
||||
loShowcursor.shOwcursor()
|
||||
IF llNooutput
|
||||
RETURN loShowcursor.geToutput()
|
||||
ENDIF
|
||||
RETURN ""
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE NoOutput
|
||||
LPARAMETER llNooutput
|
||||
thIs.lnOoutput = .T.
|
||||
ENDPROC
|
||||
*
|
||||
FUNCTION StandardPage
|
||||
LPARAMETER lcHeader, lcBody, lvHeader, lnRefresh, lcRefreshurl, ;
|
||||
llNooutput
|
||||
LOCAL lcOutput
|
||||
lcHeader = IIF( .NOT. EMPTY(lcHeader), lcHeader, "")
|
||||
lcBody = IIF( .NOT. EMPTY(lcBody), lcBody, "")
|
||||
lnRefresh = IIF(EMPTY(lnRefresh), 0, lnRefresh)
|
||||
IF lnRefresh>0
|
||||
lcRefreshurl = IIF(EMPTY(lcRefreshurl), "", lcRefreshurl)
|
||||
ENDIF
|
||||
loHtml = CREATEOBJECT('wwResponseStringNoBuffer')
|
||||
loHtml.coNtenttypeheader(lvHeader)
|
||||
lcOutput = '<table border="0" cellpadding="5" width="100%">'+ ;
|
||||
CHR(13)+CHR(10)+ ;
|
||||
' <tr><td align="center" colspan="2" bgcolor="#000000">'+ ;
|
||||
CHR(13)+CHR(10)+ ;
|
||||
' <font color="#FFFFFF" size="4" face="Verdana"><b>'+ ;
|
||||
CHR(13)+CHR(10)+lcHeader+'</b></font>'+CHR(13)+CHR(10)+ ;
|
||||
' </td></tr>'+CHR(13)+CHR(10)+' <tr><td><br><p>'+ ;
|
||||
CHR(13)+CHR(10)+' <font face="Verdana" size=2>'+CHR(13)+ ;
|
||||
CHR(10)+lcBody+'</font>'+CHR(13)+CHR(10)+' </td></tr>'+ ;
|
||||
CHR(13)+CHR(10)+'</Table>'
|
||||
lcOutput = '<html><head>'+CHR(13)+CHR(10)+'<title>'+lcHeader+ ;
|
||||
'</title>'+CHR(13)+CHR(10)+IIF(lnRefresh>0, ;
|
||||
'<META HTTP-EQUIV="Refresh" CONTENT="'+ ;
|
||||
TRANSFORM(lnRefresh)+'; URL='+lcRefreshurl+'">', '')+ ;
|
||||
CHR(13)+CHR(10)+'</head>'+CHR(13)+CHR(10)+ ;
|
||||
'<body color="#FFFFFF" style="font:normal normal x-small Verdana">'+ ;
|
||||
CHR(13)+CHR(10)+lcOutput
|
||||
loHtml.wrIte(lcOutput)
|
||||
loHtml.htMlfooter()
|
||||
RETURN thIs.wrIte(loHtml.geToutput(),llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION tagtext
|
||||
LPARAMETER lcTag, lcText, llNooutput
|
||||
RETURN thIs.wrIte("<"+lcTag+">"+lcText+"</"+lcTag+">",llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION Authenticate
|
||||
LPARAMETER lcRealm, lcErrormsg, llNooutput
|
||||
LOCAL loHeader, lcOutput
|
||||
loHeader = CREATEOBJECT('wwHTTPHeader')
|
||||
loHeader.auThenticate(lcRealm,lcErrormsg)
|
||||
thIs.clEar()
|
||||
lcOutput = thIs.wrIte(loHeader.geToutput(),llNooutput)
|
||||
thIs.lnOoutput = .T.
|
||||
RETURN lcOutput
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION Redirect
|
||||
LPARAMETER tcUrl, tlNooutput
|
||||
LOCAL loHeader, lcOutput
|
||||
loHeader = CREATEOBJECT('wwHTTPHeader')
|
||||
loHeader.reDirect(tcUrl)
|
||||
thIs.clEar()
|
||||
lcOutput = thIs.wrIte(loHeader.geToutput(),tlNooutput)
|
||||
thIs.lnOoutput = .T.
|
||||
RETURN lcOutput
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION FormHeader
|
||||
LPARAMETER lcAction, lcMethod, lcTarget, lcExtratags, llNooutput
|
||||
IF EMPTY(lcMethod)
|
||||
lcMethod = "POST"
|
||||
ENDIF
|
||||
IF EMPTY(lcExtratags)
|
||||
lcExtratags = ""
|
||||
ENDIF
|
||||
RETURN thIs.wrIte('<FORM ACTION="'+lcAction+'" METHOD="'+lcMethod+ ;
|
||||
'" '+IIF( .NOT. EMPTY(lcTarget), ' TARGET="'+lcTarget+'" ', ;
|
||||
'')+lcExtratags+'>',llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formtextbox
|
||||
LPARAMETER lcName, lcValue, lnWidth, lnMaxwidth, lcCustomtags, llNooutput
|
||||
IF EMPTY(lnWidth)
|
||||
lnWidth = 20
|
||||
ENDIF
|
||||
IF EMPTY(lnMaxwidth)
|
||||
lnMaxwidth = 0
|
||||
ENDIF
|
||||
IF EMPTY(lcCustomtags)
|
||||
lcCustomtags = ""
|
||||
ENDIF
|
||||
lcOutput = '<INPUT TYPE="INPUT" NAME="'+lcName+'" VALUE="'+lcValue+'"'
|
||||
IF .NOT. EMPTY(lnWidth)
|
||||
lcOutput = lcOutput+' SIZE="'+LTRIM(STR(lnWidth, 3))+'"'
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lnMaxwidth)
|
||||
lcOutput = lcOutput+' MAXLENGTH="'+LTRIM(STR(lnMaxwidth, 3))+'"'
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lcCustomtags)
|
||||
lcOutput = lcOutput+' '+lcCustomtags
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(lcOutput+'>',llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formtextarea
|
||||
LPARAMETER lcName, lcValue, lnHeight, lnWidth, lcCustomtags, llNooutput
|
||||
IF EMPTY(lnWidth)
|
||||
lnWidth = 20
|
||||
ENDIF
|
||||
IF EMPTY(lnHeight)
|
||||
lnHeight = 0
|
||||
ENDIF
|
||||
IF EMPTY(lcCustomtags)
|
||||
lcCustomtags = ""
|
||||
ENDIF
|
||||
lcOutput = '<TEXTAREA NAME="'+lcName+'"'
|
||||
IF .NOT. EMPTY(lnWidth)
|
||||
lcOutput = lcOutput+' COLS="'+LTRIM(STR(lnWidth, 3))+'"'
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lnHeight)
|
||||
lcOutput = lcOutput+' ROWS="'+LTRIM(STR(lnHeight, 3))+'"'
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lcCustomtags)
|
||||
lcOutput = lcOutput+' '+lcCustomtags
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(lcOutput+'>'+lcValue+'</TEXTAREA>',llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formhidden
|
||||
LPARAMETER lcName, lcValue, llNooutput
|
||||
RETURN thIs.wrIte('<INPUT TYPE="HIDDEN" NAME="'+lcName+'" VALUE="'+ ;
|
||||
lcValue+'">',llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formcheckbox
|
||||
LPARAMETER lcName, llValue, lcText, lcCustomtags, llNooutput
|
||||
lcCustomtags = IIF(TYPE("lcCustomTags")="C", lcCustomtags, "")
|
||||
lcText = IIF(TYPE("lcText")="C", lcText, "")
|
||||
RETURN thIs.wrIte('<INPUT TYPE="CheckBox" VALUE="ON" NAME="'+ ;
|
||||
lcName+'"'+IIF(llValue, " CHECKED", "")+" "+lcCustomtags+'>'+ ;
|
||||
lcText,llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formradio
|
||||
LPARAMETER lcName, lcValue, lcText, llSelected, lcCustomtags, llNooutput
|
||||
IF EMPTY(lcCustomtags)
|
||||
lcCustomtags = ""
|
||||
ENDIF
|
||||
RETURN thIs.wrIte('<INPUT TYPE="Radio" Value="'+lcValue+'" NAME="'+ ;
|
||||
lcName+'"'+IIF(llSelected, " CHECKED", "")+" "+lcCustomtags+ ;
|
||||
'> '+lcText,llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION formbutton
|
||||
LPARAMETER lcName, lcCaption, lcType, lnWidth, lcCustomtags, llNooutput
|
||||
lnWidth = IIF(VARTYPE(lnWidth)="N", lnWidth, 20)
|
||||
lcCustomtags = IIF(VARTYPE(lcCustomtags)="C", lcCustomtags, "")
|
||||
lcType = IIF(VARTYPE(lcType)="C", lcType, "SUBMIT")
|
||||
lcOutput = '<INPUT TYPE="'+lcType+'" NAME="'+lcName+'" VALUE="'+ ;
|
||||
lcCaption+'"'
|
||||
IF .NOT. EMPTY(lnWidth)
|
||||
lcOutput = lcOutput+' SIZE="'+LTRIM(STR(lnWidth, 3))+'"'
|
||||
ENDIF
|
||||
IF .NOT. EMPTY(lcCustomtags)
|
||||
lcOutput = lcOutput+' '+lcCustomtags
|
||||
ENDIF
|
||||
RETURN thIs.wrIte(lcOutput+'>',llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION HRef
|
||||
LPARAMETER lcLink, lcText, tlNooutput
|
||||
IF EMPTY(lcText)
|
||||
lcText = lcLink
|
||||
ENDIF
|
||||
RETURN thIs.wrIte('<A HREF="'+lcLink+'">'+lcText+'</A>',tlNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION DBFPopup
|
||||
LPARAMETER lcFormvarname, lcCharexpression, lcDefault, lcFirstitem, ;
|
||||
lnHeight, llNooutput, llMultiselect, lcKey
|
||||
LOCAL lnX, lcOutput, lcValue, lcKey, lcInsertkey
|
||||
lcCharexpression = IIF(VARTYPE(lcCharexpression)="C", ;
|
||||
lcCharexpression, FIELD(1))
|
||||
lnHeight = IIF(VARTYPE(lnHeight)="N", lnHeight, 1)
|
||||
lcDefault = IIF(VARTYPE(lcDefault)="C", lcDefault, " xxxx")
|
||||
lcFirstitem = IIF(VARTYPE(lcFirstitem)="C", lcFirstitem, " xxxx")
|
||||
lcKey = IIF(VARTYPE(lcKey)="C", lcKey, "")
|
||||
lcOutput = '<SELECT NAME="'+lcFormvarname+'" SIZE="'+ ;
|
||||
ALLTRIM(STR(lnHeight))+'"'+IIF(llMultiselect, ;
|
||||
' MULTIPLE', '')+'>'
|
||||
lnX = 0
|
||||
IF lcFirstitem<>" xxxx"
|
||||
lnX = 1
|
||||
lcOutput = lcOutput+'<OPTION>'+lcFirstitem+CHR(13)+CHR(10)
|
||||
ENDIF
|
||||
SCAN
|
||||
lnX = lnX+1
|
||||
lcInsertkey = IIF( .NOT. EMPTY(lcKey), ' Value ="'+ ;
|
||||
EVALUATE(lcKey)+'" ', '')
|
||||
lcValue = EVALUATE(lcCharexpression)
|
||||
IF UPPER(lcDefault)=UPPER(TRIM(lcValue))
|
||||
lcOutput = lcOutput+'<OPTION SELECTED'+lcInsertkey+'>'+ ;
|
||||
lcValue+CHR(13)+CHR(10)
|
||||
ELSE
|
||||
lcOutput = lcOutput+'<OPTION '+lcInsertkey+'>'+lcValue+ ;
|
||||
CHR(13)+CHR(10)
|
||||
ENDIF
|
||||
ENDSCAN
|
||||
lcOutput = lcOutput+"</SELECT>"
|
||||
RETURN thIs.wrIte(@lcOutput,llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION IEChart
|
||||
LPARAMETER lcType, lnDatacols, lvWidth, lnHeight, lcLabels, llNooutput
|
||||
LOCAL lnX, y, lnReccount, lnFields, lcOutput, lcWidth
|
||||
lnDatacols = IIF(TYPE("lnDataCols")="N", lnDatacols, 1)
|
||||
lcLabels = IIF(TYPE("lcLabels")="C", lcLabels, "")
|
||||
lcType = IIF(TYPE("lcType")="C", UPPER(lcType), "")
|
||||
lvWidth = IIF(TYPE("lvWidth")<>"L", lvWidth, "100%")
|
||||
lnHeight = IIF(TYPE("lnHeight")="N", lnHeight, 250)
|
||||
IF TYPE("lvWidth")="N"
|
||||
lcWidth = LTRIM(STR(lvWidth))
|
||||
ELSE
|
||||
lcWidth = lvWidth
|
||||
ENDIF
|
||||
DO CASE
|
||||
CASE lcType="BAR"
|
||||
lcType = "12"
|
||||
CASE lcType="LINE"
|
||||
lcType = "5"
|
||||
CASE lcType="AREA"
|
||||
lcType = "8"
|
||||
CASE lcType="PIE"
|
||||
lcType = "1"
|
||||
OTHERWISE
|
||||
IF VAL(lcType)=0
|
||||
lcType = "12"
|
||||
ENDIF
|
||||
ENDCASE
|
||||
lnFields = AFIELDS(laFields)
|
||||
lnReccount = RECCOUNT()
|
||||
lcOutput = ""
|
||||
lcOutput = lcOutput+'<OBJECT'+CHR(13)+CHR(10)+' ID="ocxGraph"'+ ;
|
||||
CHR(13)+CHR(10)+ ;
|
||||
' CLASSID="clsid:FC25B780-75BE-11CF-8B01-444553540000"'+ ;
|
||||
CHR(13)+CHR(10)+ ;
|
||||
' CODEBASE="http://activex.microsoft.com/controls/iexplorer/iechart.ocx#Version=4,70,0,1161"'+ ;
|
||||
CHR(13)+CHR(10)+' TYPE="application/x-oleobject"'+ ;
|
||||
CHR(13)+CHR(10)+' WIDTH='+lcWidth+CHR(13)+CHR(10)+ ;
|
||||
' HEIGHT='+LTRIM(STR(lnHeight))+'>'+CHR(13)+CHR(10)+ ;
|
||||
CHR(13)+CHR(10)
|
||||
lcOutput = lcOutput+' <PARAM NAME="hgridStyle" VALUE="3">'+CHR(13)+ ;
|
||||
CHR(10)+' <PARAM NAME="vgridStyle" VALUE="0">'+CHR(13)+ ;
|
||||
CHR(10)+' <PARAM NAME="colorscheme" VALUE="0">'+CHR(13)+ ;
|
||||
CHR(10)+' <PARAM NAME="BackStyle" VALUE="1">'+CHR(13)+ ;
|
||||
CHR(10)+' <PARAM NAME="BackColor" VALUE="#ffffCC">'+ ;
|
||||
CHR(13)+CHR(10)+ ;
|
||||
' <PARAM NAME="ForeColor" VALUE="#0000ff">'+CHR(13)+ ;
|
||||
CHR(10)+' <PARAM NAME="Scale" VALUE="100">'+CHR(13)+ ;
|
||||
CHR(10)+CHR(13)+CHR(10)
|
||||
lcOutput = lcOutput+IIF(lcType=="1", ;
|
||||
' <PARAM NAME="columns" VALUE="'+LTRIM(STR(lnReccount))+ ;
|
||||
'">', ' <PARAM NAME="rows" VALUE="'+ ;
|
||||
LTRIM(STR(lnReccount))+'">')+CHR(13)+CHR(10)+ ;
|
||||
' <PARAM NAME="ChartType" VALUE="'+lcType+'">'+CHR(13)+CHR(10)
|
||||
lcOutput = lcOutput+' <PARAM NAME="'+IIF(lcType=="1", ;
|
||||
"ColumnNames", "RowNames")+'" VALUE="'
|
||||
SCAN
|
||||
lcOutput = lcOutput+CHRTRAN(ALLTRIM(EVALUATE(laFields(1,1))), ;
|
||||
" ", "_")+" "
|
||||
ENDSCAN
|
||||
lcOutput = TRIM(lcOutput)+'">'+CHR(13)+CHR(10)
|
||||
IF .NOT. EMPTY(lcLabels)
|
||||
lcOutput = lcOutput+ ;
|
||||
' <PARAM NAME="ColumnNames" VALUE="'+ ;
|
||||
lcLabels+'">'+CHR(13)+CHR(10)+ ;
|
||||
' <PARAM NAME="DisplayLegend" VALUE="1'+'">'+ ;
|
||||
CHR(13)+CHR(10)
|
||||
ENDIF
|
||||
lnX = 0
|
||||
IF lcType=="1"
|
||||
SCAN
|
||||
lcOutput = lcOutput+' <PARAM NAME="DATA[0]['+ ;
|
||||
LTRIM(STR(lnX))+']" VALUE="'+ ;
|
||||
LTRIM(STR(EVALUATE(laFields(2,1))))+'">'+ ;
|
||||
CHR(13)+CHR(10)
|
||||
lnX = lnX+1
|
||||
ENDSCAN
|
||||
ELSE
|
||||
SCAN
|
||||
FOR y = 1 TO lnDatacols
|
||||
lcOutput = lcOutput+' <PARAM NAME="DATA['+ ;
|
||||
LTRIM(STR(lnX))+']['+LTRIM(STR(y-1))+ ;
|
||||
']" VALUE="'+ ;
|
||||
LTRIM(STR(EVALUATE(laFields(y+1,1))))+ ;
|
||||
'">'+CHR(13)+CHR(10)
|
||||
ENDFOR
|
||||
lnX = lnX+1
|
||||
ENDSCAN
|
||||
ENDIF
|
||||
lcOutput = lcOutput+ ;
|
||||
'This graph can be viewed with ActiveX enabled browsers only...<p>'+ ;
|
||||
'<A HREF="http://www.microsoft.com/ie/">Download Internet Explorer now!</a>'+ ;
|
||||
CHR(13)+CHR(10)+'</object>'+CHR(13)+CHR(10)
|
||||
RETURN thIs.wrIte(@lcOutput,llNooutput)
|
||||
ENDFUNC
|
||||
*
|
||||
FUNCTION ContentType_Assign
|
||||
LPARAMETER lcValue
|
||||
thIs.coNtenttype = lcValue
|
||||
thIs.coNtenttypeheader(lcValue)
|
||||
RETURN lcValue
|
||||
ENDFUNC
|
||||
*
|
||||
PROCEDURE BinaryWrite
|
||||
LPARAMETER lcText
|
||||
thIs.wrIte(lcText)
|
||||
ENDPROC
|
||||
*
|
||||
ENDDEFINE
|
||||
*
|
||||
Reference in New Issue
Block a user