922 lines
29 KiB
Plaintext
922 lines
29 KiB
Plaintext
**
|
|
** wwshowcursor.fxp
|
|
**
|
|
EXTERNAL ARRAY lvHeader
|
|
ENDPROC
|
|
*
|
|
DEFINE CLASS aShowCursor AS CUSTOM
|
|
DIMENSION afIeldlist[1]
|
|
nfIeldcount = 0
|
|
ctAbletitle = ""
|
|
chEaderstring = ""
|
|
chEaderbgcolor = "DarkBlue"
|
|
chEadercolor = "White"
|
|
chEaderfont = "Verdana,Helvetica"
|
|
ctAblebgcolor = "#EEEEEE"
|
|
caLternatingbgcolor = "#B0DAFF"
|
|
laLternaterows = .F.
|
|
ctAblewidth = "98%"
|
|
ctAbleborder = "2"
|
|
ceXtratabletags = 'style="font:normal normal 10pt Verdana;border-collapse: collapse;border-color:black" bordercolor="darkgray"'
|
|
ccEllpadding = "3"
|
|
ccEllspacing = "0"
|
|
naSciileftcolumns = 20
|
|
nmEmowidth = 25
|
|
lcEntertable = .T.
|
|
lsUmnumerics = .F.
|
|
lsHowastable = .T.
|
|
lsOrtable = .F.
|
|
npAge_itemsperpage = 0
|
|
npAge_showpage = 0
|
|
npAge_totalpages = 0
|
|
npAge_nextpage = 0
|
|
npAge_prevpage = 0
|
|
cpAge_pageurl = ""
|
|
cpAge_linkhtml = ""
|
|
cpAge_oldalias = ""
|
|
nfOrcetoprelist = 40000
|
|
ohTml = .NULL.
|
|
cbAseurl = ""
|
|
ckEyfield = ""
|
|
ckEytype = "N"
|
|
ctAblefieldlist = ""
|
|
ctAbleeditfieldlist = ""
|
|
ctAblerecordfieldlist = ""
|
|
ctAblesortcolumn = ""
|
|
laLlowadd = .T.
|
|
laLlowdelete = .T.
|
|
coLdalias = ""
|
|
cnEwalias = ""
|
|
cSumLista= ""
|
|
lSumLista = .F.
|
|
*
|
|
PROCEDURE INIT
|
|
LPARAMETER loHtml
|
|
IF VARTYPE(loHtml)<>"O"
|
|
THIS.ohTml = CREATEOBJECT('wwResponseStringNoBuffer')
|
|
ELSE
|
|
THIS.ohTml = loHtml
|
|
ENDIF
|
|
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
|
|
|
|
|
ENDPROC
|
|
*
|
|
PROCEDURE SetCursor
|
|
LPARAMETER lcDbf
|
|
lcDbf = IIF(TYPE("lcDBF")="C", lcDbf, "")
|
|
lcStem = JUSTSTEM(lcDbf)
|
|
IF .NOT. USED(lcStem)
|
|
THIS.coLdalias = ALIAS()
|
|
USE (lcDbf) IN 0
|
|
ENDIF
|
|
SELECT (lcStem)
|
|
ENDPROC
|
|
*
|
|
PROCEDURE DESTROY
|
|
IF .NOT. EMPTY(THIS.coLdalias) .AND. USED(THIS.coLdalias)
|
|
USE IN (THIS.cnEwalias)
|
|
IF .NOT. EMPTY(THIS.coLdalias)
|
|
SELECT (THIS.coLdalias)
|
|
ENDIF
|
|
THIS.coLdalias = ""
|
|
THIS.cnEwalias = ""
|
|
ENDIF
|
|
ENDPROC
|
|
*
|
|
PROCEDURE BuildFieldListHeader
|
|
LPARAMETER lvHeader, llPrelist
|
|
LOCAL lcHeader, lnX
|
|
lcHeader = ""
|
|
IF .NOT. EMPTY(THIS.chEaderstring)
|
|
RETURN
|
|
ENDIF
|
|
IF THIS.lsOrtable .AND. EMPTY(THIS.cbAseurl)
|
|
THIS.cbAseurl = REQUEST.geTcurrenturl()+"&"
|
|
ENDIF
|
|
IF .NOT. llPrelist
|
|
IF TYPE("lvHeader[1]")<>"U"
|
|
lcHeader = ""
|
|
THIS.nfIeldcount = ALEN(lvHeader, 1)
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcHeader = lcHeader+'<TH><font FACE="'+ ;
|
|
THIS.chEaderfont+'" color="'+ ;
|
|
THIS.chEadercolor+'">'+lvHeader(lnX)+ ;
|
|
'</font></TH>'
|
|
ENDFOR
|
|
ELSE
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
IF THIS.afIeldlist(lnX,2)="M"
|
|
THIS.afIeldlist[lnX, 3] = THIS.nmEmowidth
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="T"
|
|
THIS.afIeldlist[lnX, 3] = 20
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="I"
|
|
THIS.afIeldlist[lnX, 3] = 9
|
|
ENDIF
|
|
IF THIS.lsOrtable .AND. THIS.afIeldlist(lnX,2)$"CNIL"
|
|
lcFieldName = PROPER(CHRTRAN(THIS.afIeldlist[lnX,1],"_"," ")) + " " + [<a href="] + THIS.cbAseurl + [Sorted=] + TRANSFORM(lnX) +[" ] + [style="color:]+THIS.chEadercolor+[;font:normal normal 12pt WebDings;text-decoration:none" title="Sort Ascending">] + CHR(0x35) +"</a> " + [<a href="] + THIS.cbAseurl + [Sorted=] + TRANSFORM(lnX) +[&SortDescending=True" ] + [style="color:]+THIS.chEadercolor+[;font:normal normal 12pt WebDings;text-decoration:none" title="Sort Descending">] + CHR(0x36) +"</a> " + CHR(13)+CHR(10)
|
|
ELSE
|
|
lcFieldName = PROPER(CHRTRAN(THIS.afIeldlist(lnX, ;
|
|
1), "_", " "))
|
|
ENDIF
|
|
lcHeader = lcHeader+'<TH><font FACE="'+ ;
|
|
THIS.chEaderfont+'" color="'+ ;
|
|
THIS.chEadercolor+'">'+lcFieldName+ ;
|
|
'</font></TH>'
|
|
ENDFOR
|
|
ENDIF
|
|
THIS.chEaderstring = '<TR BGCOLOR="'+THIS.chEaderbgcolor+'">'+ ;
|
|
lcHeader+'</TR>'
|
|
ELSE
|
|
IF TYPE("lvHeader[1]")="U"
|
|
lcHeader = ""
|
|
FOR lnX = 1 TO lnFields
|
|
IF LEN(TRIM(THIS.afIeldlist(lnX,1)))> ;
|
|
THIS.afIeldlist(lnX,3)
|
|
THIS.afIeldlist[lnX, 3] = ;
|
|
LEN(TRIM(THIS.afIeldlist(lnX,1)))
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="M"
|
|
THIS.afIeldlist[lnX, 3] = THIS.nmEmowidth
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="T"
|
|
THIS.afIeldlist[lnX, 3] = 20
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="I"
|
|
THIS.afIeldlist[lnX, 3] = 9
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)$"NFBIY"
|
|
lcHeader = lcHeader+"<b>"+ ;
|
|
PADC(THIS.afIeldlist(lnX,1), ;
|
|
THIS.afIeldlist(lnX,3))+"</b> "
|
|
ELSE
|
|
lcHeader = lcHeader+"<b>"+ ;
|
|
PADC(THIS.afIeldlist(lnX,1), ;
|
|
THIS.afIeldlist(lnX,3))+"</b> "
|
|
ENDIF
|
|
ENDFOR
|
|
ELSE
|
|
lcHeader = ""
|
|
FOR lnX = 1 TO ALEN(lvHeader, 1)
|
|
IF LEN(TRIM(lvHeader(lnX)))>THIS.afIeldlist(lnX,3)
|
|
THIS.afIeldlist[lnX, 3] = ;
|
|
LEN(TRIM(THIS.afIeldlist(lnX,1)))
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="M"
|
|
THIS.afIeldlist[lnX, 3] = 20
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)="T"
|
|
THIS.afIeldlist[lnX, 3] = 20
|
|
ENDIF
|
|
lnSizeloc = ATC(":", lvHeader(lnX))
|
|
IF lnSizeloc>0
|
|
lnSize = VAL(SUBSTR(ALLTRIM(lvHeader(lnX)), ;
|
|
lnSizeloc+1))
|
|
lvHeader[lnX] = SUBSTR(lvHeader(lnX), 1, lnSizeloc-1)
|
|
ELSE
|
|
lnSize = THIS.afIeldlist(lnX,3)
|
|
ENDIF
|
|
IF THIS.afIeldlist(lnX,2)$"NFBIY"
|
|
lcHeader = lcHeader+"<b>"+PADC(lvHeader(lnX), ;
|
|
lnSize)+"</b> "
|
|
ELSE
|
|
lcHeader = lcHeader+"<b>"+PADC(lvHeader(lnX), ;
|
|
lnSize)+"</b> "
|
|
ENDIF
|
|
ENDFOR
|
|
ENDIF
|
|
THIS.chEaderstring = lcHeader
|
|
ENDIF
|
|
ENDPROC
|
|
*
|
|
FUNCTION ShowCursor
|
|
LOCAL lcHeader, lnX, laTotals, lcOutput, lnSizeloc, lnSize, lvValue
|
|
IF EMPTY(ALIAS())
|
|
RETURN ""
|
|
ENDIF
|
|
IF THIS.lsOrtable
|
|
lnSort = VAL(REQUEST.quErystring("Sorted"))
|
|
IF lnSort>0
|
|
THIS.ctAblesortcolumn = TRANSFORM(lnSort)
|
|
IF .NOT. EMPTY(REQUEST.quErystring("SortDescending"))
|
|
THIS.ctAblesortcolumn = THIS.ctAblesortcolumn+ ;
|
|
" DESCENDING"
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
IF .NOT. EMPTY(THIS.ctAblefieldlist)
|
|
lcFields = THIS.ctAblefieldlist
|
|
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), "ORDER BY "+ ;
|
|
THIS.ctAblesortcolumn, "")
|
|
SELECT &lcFields FROM ALIAS() &lcOrder INTO CURSOR __TQuery
|
|
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
|
ELSE
|
|
IF .NOT. EMPTY(THIS.ctAblesortcolumn)
|
|
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), ;
|
|
"ORDER BY "+THIS.ctAblesortcolumn, "")
|
|
SELECT * FROM ( ALIAS() ) &lcOrder INTO CURSOR __TQuery
|
|
ENDIF
|
|
ENDIF
|
|
lcOutput = ""
|
|
lnFields = THIS.nfIeldcount
|
|
lnReccount = RECCOUNT()
|
|
IF THIS.npAge_itemsperpage<>0
|
|
THIS.paGefilter()
|
|
lnReccount = RECCOUNT()
|
|
ENDIF
|
|
* IF thIs.lsUmnumerics
|
|
DIMENSION laTotals[1, lnFields]
|
|
laTotals = 0
|
|
* ENDIF
|
|
|
|
IF THIS.lSumLista
|
|
LOCAL lalistacol
|
|
DIMENSION lalistacol[1, lnFields]
|
|
|
|
lista2array(THIS.cSumLista,@lalistacol)
|
|
|
|
ENDIF
|
|
|
|
IF THIS.lsHowastable .AND. lnReccount*lnFields<=THIS.nfOrcetoprelist+1
|
|
IF .NOT. EMPTY(THIS.ctAbletitle)
|
|
lcTitle = '<TR><TH COLSPAN='+ALLTRIM(STR(lnFields))+ ;
|
|
' ALIGN="CENTER"><H2>'+THIS.ctAbletitle+ ;
|
|
'</H2></TH></TR>'
|
|
ELSE
|
|
lcTitle = ""
|
|
ENDIF
|
|
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+ ;
|
|
CHR(10), '')+'<TABLE BGCOLOR="'+ ;
|
|
THIS.ctAblebgcolor+'" CELLPADDING="'+ ;
|
|
THIS.ccEllpadding+'" CELLSPACING="'+ ;
|
|
THIS.ccEllspacing+'" BORDER="'+ ;
|
|
THIS.ctAbleborder+'" '+IIF( .NOT. ;
|
|
EMPTY(THIS.ctAblewidth), ' WIDTH="'+ ;
|
|
THIS.ctAblewidth+'"', "")+' '+ ;
|
|
THIS.ceXtratabletags+'>'+CHR(13)+CHR(10)+IIF( ;
|
|
.NOT. EMPTY(lcTitle), lcTitle+CHR(13)+CHR(10), ""))
|
|
THIS.BuildFieldListHeader()
|
|
THIS.ohTml.WRITE(THIS.chEaderstring)
|
|
llAlternate = .T.
|
|
SCAN
|
|
lcRow = ""
|
|
FOR lnX = 1 TO lnFields
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
lvValue = EVALUATE(lcFieldName)
|
|
DO CASE
|
|
CASE ISNULL(lvValue)
|
|
lcRow = lcRow+"<TD>n/a</TD>"
|
|
CASE lcFieldtype="C"
|
|
lcRow = lcRow+"<TD>"+IIF(EMPTY(lvValue), ;
|
|
"<BR>", TRIM(lvValue))+"</TD>"
|
|
CASE lcFieldtype="M"
|
|
lcRow = lcRow+"<TD >"+IIF(EMPTY(lvValue), ;
|
|
"<BR>", ;
|
|
THIS.ohTml.wrItememo(lvValue,.T.))+ ;
|
|
"</TD>"
|
|
CASE lcFieldtype$"NFBIY"
|
|
lcRow = lcRow+'<TD ALIGN=RIGHT>'+ ;
|
|
LTRIM(STR(lvValue, ;
|
|
THIS.afIeldlist(lnX,3), ;
|
|
THIS.afIeldlist(lnX,4)))+'</TD>'
|
|
IF THIS.lsUmnumerics OR (THIS.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))>0)
|
|
laTotals[1, lnX] = laTotals(1,lnX)+lvValue
|
|
ENDIF
|
|
|
|
CASE lcFieldtype="L"
|
|
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
|
IIF(lvValue, "True", "False")+'</TD>'
|
|
CASE lcFieldtype="D"
|
|
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
|
IIF(EMPTY(lvValue), "<BR>", ;
|
|
DTOC(lvValue))+'</TD>'
|
|
CASE lcFieldtype="T"
|
|
lcRow = lcRow+'<TD ALIGN=CENTER>'+ ;
|
|
IIF(EMPTY(lvValue), "<BR>", ;
|
|
LOWER(TTOC(lvValue)))+'</TD>'
|
|
ENDCASE
|
|
ENDFOR
|
|
IF THIS.laLternaterows .AND. llAlternate
|
|
lcRow = '<TR style="background:'+ ;
|
|
THIS.caLternatingbgcolor+'" VALIGN=TOP>'+ ;
|
|
lcRow+"</TR>"
|
|
ELSE
|
|
lcRow = '<TR VALIGN=TOP>'+lcRow+"</TR>"
|
|
ENDIF
|
|
llAlternate = .NOT. llAlternate
|
|
THIS.ohTml.WRITE(lcRow+CHR(13)+CHR(10))
|
|
ENDSCAN
|
|
IF THIS.lsUmnumerics OR THIS.lSumLista &&
|
|
lcRow = ""
|
|
FOR lnX = 1 TO lnFields
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
IF lcFieldtype$"NFBIY"
|
|
lnTotal = laTotals(1,lnX)
|
|
IF this.lsumlista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))<=0
|
|
lcRow = lcRow+"<TD></TD>"
|
|
ELSE
|
|
lcRow = lcRow+'<TD ALIGN=RIGHT><font color="'+ ;
|
|
THIS.chEadercolor+'"><B>'+STR(lnTotal, ;
|
|
THIS.afIeldlist(lnX,3)+1, ;
|
|
THIS.afIeldlist(lnX,4))+'</b></font></TD>'
|
|
ENDIF
|
|
ELSE
|
|
lcRow = lcRow+"<TD></TD>"
|
|
ENDIF
|
|
|
|
ENDFOR
|
|
THIS.ohTml.WRITE('<TR BGCOLOR="'+THIS.chEaderbgcolor+ ;
|
|
'"><B>'+lcRow+'</B></TR>'+CHR(13)+CHR(10))
|
|
ENDIF
|
|
IF THIS.npAge_itemsperpage<>0
|
|
IF USED("_TXQuery")
|
|
USE IN _TXQuery
|
|
ENDIF
|
|
IF USED(THIS.cpAge_oldalias)
|
|
SELECT (THIS.cpAge_oldalias)
|
|
ENDIF
|
|
IF .NOT. EMPTY(THIS.cpAge_linkhtml)
|
|
THIS.ohTml.faStwrite('<tr bgcolor="'+ ;
|
|
THIS.chEaderbgcolor+'"><td align="right" colspan="'+ ;
|
|
TRANSFORM(lnFields)+'">'+'<font color="'+ ;
|
|
THIS.chEadercolor+'">'+THIS.cpAge_linkhtml+ ;
|
|
'</font></td></tr>')
|
|
ENDIF
|
|
ENDIF
|
|
THIS.ohTml.WRITE("</TABLE>"+IIF(THIS.lcEntertable, '</CENTER>', ;
|
|
'')+CHR(13)+CHR(10))
|
|
ELSE
|
|
THIS.ohTml.WRITE('<PRE>'+CHR(13)+CHR(10)+IIF(THIS.lcEntertable, ;
|
|
'<CENTER>'+CHR(13)+CHR(10), ''))
|
|
IF .NOT. EMPTY(THIS.ctAbletitle)
|
|
lcTitle = '<H2>'+THIS.ctAbletitle+'</H2>'
|
|
ELSE
|
|
lcTitle = ""
|
|
ENDIF
|
|
THIS.chEaderstring = ""
|
|
THIS.BuildFieldListHeader( ,.T.)
|
|
THIS.ohTml.faStwrite(THIS.chEaderstring+CHR(13)+CHR(10))
|
|
SCAN
|
|
lcRow = ""
|
|
FOR lnX = 1 TO lnFields
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
lvValue = EVALUATE(lcFieldName)
|
|
DO CASE
|
|
CASE ISNULL(lvValue)
|
|
lcRow = lcRow+PADC("n/a", ;
|
|
THIS.afIeldlist(lnX,3))
|
|
CASE lcFieldtype="C"
|
|
lcRow = lcRow+PADR(lvValue, ;
|
|
THIS.afIeldlist(lnX,3))
|
|
CASE lcFieldtype="M"
|
|
lcRow = lcRow+PADR(MLINE(lvValue, 1), 25)
|
|
CASE lcFieldtype$"NFBIY"
|
|
lcRow = lcRow+STR(lvValue, ;
|
|
THIS.afIeldlist(lnX,3), ;
|
|
THIS.afIeldlist(lnX,4))
|
|
IF THIS.lsUmnumerics OR (THIS.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))>0)
|
|
laTotals[1, lnX] = laTotals(1,lnX)+lvValue
|
|
ENDIF
|
|
CASE lcFieldtype="L"
|
|
lcRow = lcRow+PADR(IIF(lvValue, "True ", ;
|
|
"False"), THIS.afIeldlist(lnX,3))
|
|
CASE lcFieldtype="D"
|
|
lcRow = lcRow+DTOC(lvValue)
|
|
CASE lcFieldtype="T"
|
|
lcRow = lcRow+TTOC(lvValue)
|
|
ENDCASE
|
|
lcRow = lcRow+" | "
|
|
ENDFOR
|
|
THIS.ohTml.faStwrite(lcRow+CHR(13)+CHR(10))
|
|
ENDSCAN
|
|
IF THIS.lsUmnumerics OR THIS.lSumLista
|
|
lcRow = ""
|
|
FOR lnX = 1 TO lnFields
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
IF lcFieldtype$"NFBIY"
|
|
lnTotal = laTotals(1,lnX) &&
|
|
IF this.lSumLista AND ASCAN(lalistacol,ALLTRIM(STR(lnX)))<=0
|
|
lcRow = lcRow+SPACE(THIS.afIeldlist(lnX,3)+3)
|
|
ELSE
|
|
lcRow = lcRow+STR(lnTotal, THIS.afIeldlist(lnX, ;
|
|
3), THIS.afIeldlist(lnX,4))+" "
|
|
ENDIF
|
|
ELSE
|
|
lcRow = lcRow+SPACE(THIS.afIeldlist(lnX,3)+3)
|
|
ENDIF
|
|
|
|
ENDFOR
|
|
THIS.ohTml.faStwrite('<b>'+lcRow+'</b>')
|
|
ENDIF
|
|
THIS.ohTml.faStwrite(IIF(THIS.lcEntertable, '</CENTER>'+ ;
|
|
CHR(13)+CHR(10), '')+"</PRE>")
|
|
ENDIF
|
|
IF .NOT. EMPTY(THIS.ctAblefieldlist)
|
|
IF USED("__TQuery")
|
|
USE IN __TQuery
|
|
ENDIF
|
|
ENDIF
|
|
RETURN
|
|
ENDFUNC
|
|
*
|
|
PROCEDURE ShowASCIIRecord
|
|
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
|
lcOutput = ""
|
|
lcFieldcaption = ""
|
|
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
|
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcFieldcaption = PROPER(PADL(DBGETPROP(ALIAS()+"."+ ;
|
|
THIS.afIeldlist(lnX,1), "FIELD", ;
|
|
"Caption"), 25))+": "
|
|
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
|
ENDFOR
|
|
ELSE
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
THIS.afIeldlist[lnX, 11] = ;
|
|
PADL(PROPER(THIS.afIeldlist(lnX,1)), ;
|
|
THIS.naSciileftcolumns)+": "
|
|
ENDFOR
|
|
ENDIF
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
|
lvValue = EVALUATE(lcFieldName)
|
|
lcRow = lcFieldcaption
|
|
DO CASE
|
|
CASE ISNULL(lvValue)
|
|
lcRow = lcRow+"n/a"
|
|
CASE lcFieldtype="C"
|
|
lcRow = lcRow+TRIM(lvValue)
|
|
CASE lcFieldtype="M"
|
|
lcRow = lcRow+THIS.ohTml.wrItememo(TRIM(lvValue),.T.)
|
|
CASE lcFieldtype$"NFBIY"
|
|
lcRow = lcRow+LTRIM(STR(lvValue, THIS.afIeldlist(lnX, ;
|
|
3), THIS.afIeldlist(lnX,4)))
|
|
CASE lcFieldtype="L"
|
|
lcRow = lcRow+IIF(lvValue, "True", "False")
|
|
CASE lcFieldtype="D"
|
|
lcRow = lcRow+DTOC(lvValue)
|
|
CASE lcFieldtype="T"
|
|
lcRow = lcRow+TTOC(lvValue)
|
|
ENDCASE
|
|
THIS.ohTml.WRITE(lcRow+CHR(13)+CHR(10))
|
|
ENDFOR
|
|
ENDPROC
|
|
*
|
|
PROCEDURE ShowRecord
|
|
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
|
lcOutput = ""
|
|
lcFieldcaption = ""
|
|
lcFieldlist = THIS.ctAblerecordfieldlist
|
|
IF .NOT. EMPTY(lcFieldlist)
|
|
lcFields = lcFieldlist
|
|
lnRecno = RECNO()
|
|
SELECT &lcFields FROM ALIAS() WHERE RECNO() = lnRecno INTO CURSOR __TQuery
|
|
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
|
ENDIF
|
|
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
|
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
|
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
|
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
|
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+'>')
|
|
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
|
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcCaption = DBGETPROP(ALIAS()+"."+THIS.afIeldlist(lnX,1), ;
|
|
"FIELD", "Caption")
|
|
lcCaption = IIF( .NOT. EMPTY(lcCaption), lcCaption, ;
|
|
PROPER(THIS.afIeldlist(lnX,1)))
|
|
lcCaption = PROPER(STRTRAN(lcCaption, "_", " "))
|
|
lcFieldcaption = '<TR><TD VALIGN=TOP BGCOLOR='+ ;
|
|
THIS.chEaderbgcolor+'><b><font color="'+ ;
|
|
THIS.chEadercolor+'">'+lcCaption+":"+ ;
|
|
'</font></b></TD>'
|
|
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
|
ENDFOR
|
|
ELSE
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
THIS.afIeldlist[lnX, 11] = '<TR><TD VALIGN=TOP BGCOLOR='+ ;
|
|
THIS.chEaderbgcolor+'><b><font color="'+ ;
|
|
THIS.chEadercolor+'">'+ ;
|
|
PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ;
|
|
" "))+'</font></b></TD>'
|
|
ENDFOR
|
|
ENDIF
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
|
lvValue = EVALUATE(lcFieldName)
|
|
lcRow = lcFieldcaption
|
|
DO CASE
|
|
CASE ISNULL(lvValue)
|
|
lcRow = lcRow+"<TD>n/a</TD>"
|
|
CASE lcFieldtype="C" .OR. lcFieldtype="M"
|
|
lcRow = lcRow+"<TD>"+IIF(EMPTY(lvValue), "<BR>", ;
|
|
THIS.ohTml.wrItememo(lvValue,.T.))+"</TD>"
|
|
CASE lcFieldtype$"NFBY"
|
|
lcRow = lcRow+'<TD>'+LTRIM(STR(lvValue, ;
|
|
THIS.afIeldlist(lnX,3), THIS.afIeldlist(lnX, ;
|
|
4)))+'</TD>'
|
|
CASE lcFieldtype="I"
|
|
lcRow = lcRow+'<TD>'+TRANSFORM(lvValue)+'</TD>'
|
|
CASE lcFieldtype="L"
|
|
lcRow = lcRow+'<TD>'+IIF(lvValue, "True", "False")+'</TD>'
|
|
CASE lcFieldtype="D"
|
|
lcRow = lcRow+'<TD>'+IIF(EMPTY(lvValue), "<BR>", ;
|
|
DTOC(lvValue))+'</TD>'
|
|
CASE lcFieldtype="T"
|
|
lcRow = lcRow+'<TD>'+IIF(EMPTY(lvValue), "<BR>", ;
|
|
TTOC(lvValue))+'</TD>'
|
|
ENDCASE
|
|
THIS.ohTml.WRITE(lcRow+"</TR>"+CHR(13)+CHR(10))
|
|
ENDFOR
|
|
THIS.ohTml.WRITE("</TABLE>"+CHR(13)+CHR(10)+IIF(THIS.lcEntertable, ;
|
|
'</CENTER>'+CHR(13)+CHR(10), ""))
|
|
ENDPROC
|
|
*
|
|
PROCEDURE ShowObject
|
|
LPARAMETER loObject
|
|
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName, lcRow
|
|
lcOutput = ""
|
|
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
|
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
|
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
|
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
|
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+'>')
|
|
lnFieldcount = AMEMBERS(laFields, loObject)
|
|
FOR lnX = 1 TO lnFieldcount
|
|
lcField = laFields(lnX)
|
|
lcRow = '<TR><TD VALIGN=TOP BGCOLOR='+THIS.chEaderbgcolor+ ;
|
|
'><b><font color="'+THIS.chEadercolor+'">'+ ;
|
|
PROPER(lcField)+":"+'</font></b></TD>'
|
|
lvValue = EVALUATE("loObject."+lcField)
|
|
lcType = VARTYPE(lvValue)
|
|
DO CASE
|
|
CASE ISNULL(lvValue)
|
|
lcValue = "null"
|
|
CASE lcType="C"
|
|
IF EMPTY(lvValue)
|
|
lcValue = " "
|
|
ELSE
|
|
lcValue = diSplaymemo(lvValue)
|
|
ENDIF
|
|
CASE lcType="D"
|
|
lcValue = TRANSFORM(lvValue)
|
|
CASE lcType="T"
|
|
lcValue = tiMetoc(lvValue)
|
|
CASE lcType="L"
|
|
lcValue = IIF(lvValue, "True", "False")
|
|
CASE lcType="O"
|
|
lcValue = "Object"
|
|
CASE lcType="U"
|
|
lcValue = "Undefined"
|
|
OTHERWISE
|
|
lcValue = TRANSFORM(lvValue)
|
|
ENDCASE
|
|
THIS.ohTml.WRITE(lcRow+"<td>"+lcValue+"</td></tr>"+CHR(13)+CHR(10))
|
|
ENDFOR
|
|
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '</CENTER>'+CHR(13)+CHR(10), ;
|
|
"")+"</TABLE>"+CHR(13)+CHR(10))
|
|
ENDPROC
|
|
*
|
|
PROCEDURE EditRecord
|
|
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName, ;
|
|
lcKeyvalue
|
|
lcOutput = ""
|
|
lcFieldcaption = ""
|
|
lcFieldlist = THIS.ctAbleeditfieldlist
|
|
IF .NOT. EMPTY(THIS.ckEyfield)
|
|
lcKeyvalue = EVALUATE(THIS.ckEyfield)
|
|
ELSE
|
|
lcKeyvalue = ""
|
|
ENDIF
|
|
IF .NOT. EMPTY(lcFieldlist)
|
|
lcFields = lcFieldlist
|
|
lnRecno = RECNO()
|
|
SELECT &lcFields FROM ALIAS() WHERE RECNO() = lnRecno INTO CURSOR __TQuery
|
|
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
|
ENDIF
|
|
THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '<CENTER>'+CHR(13)+CHR(10), ;
|
|
'')+'<TABLE BGCOLOR="'+THIS.ctAblebgcolor+ ;
|
|
'" CELLPADDING='+THIS.ccEllpadding+' CELLSPACING='+ ;
|
|
THIS.ccEllspacing+' BORDER='+THIS.ctAbleborder+ ;
|
|
' WIDTH='+THIS.ctAblewidth+' '+THIS.ceXtratabletags+ ;
|
|
'>'+CHR(13)+CHR(10))
|
|
IF .NOT. EMPTY(DBC()) .AND. INDBC(ALIAS()+'.'+THIS.afIeldlist(1,1), ;
|
|
'Field') .AND. TYPE(ALIAS()+"."+THIS.afIeldlist(1,1))<>"U"
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcCaption = DBGETPROP(ALIAS()+"."+THIS.afIeldlist(lnX,1), ;
|
|
"FIELD", "Caption")
|
|
lcCaption = IIF( .NOT. EMPTY(lcCaption), lcCaption, ;
|
|
PROPER(THIS.afIeldlist(lnX,1)))
|
|
lcCaption = PROPER(STRTRAN(lcCaption, "_", " "))
|
|
lcFieldcaption = '<TR><TD VALIGN=TOP BGCOLOR="'+ ;
|
|
THIS.chEaderbgcolor+'"><b><font color="'+ ;
|
|
THIS.chEadercolor+'">'+lcCaption+":"+ ;
|
|
'</font></b></TD>'+CHR(13)+CHR(10)
|
|
THIS.afIeldlist[lnX, 11] = lcFieldcaption
|
|
ENDFOR
|
|
ELSE
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
THIS.afIeldlist[lnX, 11] = '<TR><TD VALIGN=TOP BGCOLOR="'+ ;
|
|
THIS.chEaderbgcolor+'"><b><font color="'+ ;
|
|
THIS.chEadercolor+'">'+ ;
|
|
PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ;
|
|
" "))+'</font></b></TD>'+CHR(13)+CHR(10)
|
|
ENDFOR
|
|
ENDIF
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
lnFieldwidth = THIS.afIeldlist(lnX,3)
|
|
lcFieldcaption = THIS.afIeldlist(lnX,11)
|
|
lvValue = EVALUATE(lcFieldName)
|
|
lcRow = lcFieldcaption
|
|
DO CASE
|
|
CASE lcFieldtype="C"
|
|
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
|
lcFieldName+'" size='+ ;
|
|
TRANSFORM(lnFieldwidth)+' value="'+lvValue+ ;
|
|
'"></td>'
|
|
CASE lcFieldtype="M"
|
|
lcRow = lcRow+ ;
|
|
'<TD><textArea wrap=virtual cols=55 rows=5 name="'+ ;
|
|
lcFieldName+'">'+lvValue+'</textarea></TD>'
|
|
CASE lcFieldtype$"NFBIY"
|
|
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
|
lcFieldName+'" size='+TRANSFORM(lnFieldwidth+ ;
|
|
1)+' value="'+TRANSFORM(lvValue)+'"></td>'
|
|
CASE lcFieldtype="L"
|
|
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
|
lcFieldName+'" size=1 value="'+IIF(lvValue, ;
|
|
"T", "F")+'"></td>'
|
|
CASE lcFieldtype="D"
|
|
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
|
lcFieldName+'" size=10 value="'+ ;
|
|
TRANSFORM(lvValue)+'"></td>'
|
|
CASE lcFieldtype="T"
|
|
lcRow = lcRow+'<td><input type="text" name="'+ ;
|
|
lcFieldName+'" size=15 value="'+ ;
|
|
LOWER(TRANSFORM(lvValue))+'"></td>'
|
|
ENDCASE
|
|
THIS.ohTml.WRITE(lcRow+"</tr>"+CHR(13)+CHR(10))
|
|
ENDFOR
|
|
IF .NOT. EMPTY(lcKeyvalue)
|
|
THIS.ohTml.WRITE('<input type="hidden" name="'+THIS.ckEyfield+ ;
|
|
'" value="'+TRANSFORM(lcKeyvalue)+'">')
|
|
ENDIF
|
|
THIS.ohTml.WRITE("</TABLE>"+IIF(THIS.lcEntertable, '</CENTER>'+ ;
|
|
CHR(13)+CHR(10), "")+CHR(13)+CHR(10))
|
|
ENDPROC
|
|
*
|
|
PROCEDURE SaveRecord
|
|
LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName
|
|
FOR lnX = 1 TO THIS.nfIeldcount
|
|
lcFieldName = THIS.afIeldlist(lnX,1)
|
|
lcFieldtype = THIS.afIeldlist(lnX,2)
|
|
IF .NOT. REQUEST.isFormvar(lcFieldName)
|
|
LOOP
|
|
ENDIF
|
|
lvValue = REQUEST.FORM(lcFieldName)
|
|
DO CASE
|
|
CASE lcFieldtype="C" .OR. lcFieldtype="M"
|
|
REPLACE &lcFieldName WITH lvValue
|
|
CASE lcFieldtype$"NFBIY"
|
|
REPLACE &lcFieldName WITH VAL(lvValue)
|
|
CASE lcFieldtype="L"
|
|
REPLACE &lcFieldName WITH IIF(lvValue="T",.T.,.F.)
|
|
CASE lcFieldtype="D"
|
|
REPLACE &lcFieldName WITH CTOD(lvValue)
|
|
CASE lcFieldtype="T"
|
|
REPLACE &lcFieldName WITH CTOT(lvValue)
|
|
ENDCASE
|
|
ENDFOR
|
|
ENDPROC
|
|
*
|
|
PROCEDURE EditTable
|
|
LOCAL lcFields
|
|
lcAction = UPPER(REQUEST.quErystring("Action"))
|
|
lcId = REQUEST.quErystring("ID")
|
|
DO CASE
|
|
CASE lcAction="EDIT" .OR. lcAction="ADD"
|
|
IF .NOT. THIS.laLlowadd
|
|
THIS.ohTml.WRITE( ;
|
|
"Sorry! Adding is not allowed at this time..." ;
|
|
)
|
|
RETURN
|
|
ENDIF
|
|
IF lcAction="ADD"
|
|
llAdd = .T.
|
|
ELSE
|
|
llAdd = .F.
|
|
ENDIF
|
|
loResponse = THIS.ohTml
|
|
lcKeyfield = THIS.ckEyfield
|
|
IF llAdd
|
|
LOCATE FOR .F.
|
|
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=SaveNew&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
|
ELSE
|
|
IF THIS.ckEytype="N"
|
|
LOCATE FOR &lcKeyfield = VAL(lcId)
|
|
ELSE
|
|
LOCATE FOR &lcKeyfield = lcId
|
|
ENDIF
|
|
IF .NOT. FOUND()
|
|
loResponse.stAndardpage( ;
|
|
"Couldn't edit record. Invalid Key Field...", , ;
|
|
"NONE")
|
|
RETURN
|
|
ENDIF
|
|
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=Save&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
|
ENDIF
|
|
loResponse.WRITE([<form action="] + THIS.cbAseurl + [&Action=SaveNew&ID=] + lcId + [" method="POST">] +CHR(13)+CHR(10))
|
|
loResponse.WRITE( ;
|
|
'<input type="submit" name="btnSubmit" value=" Save " ACCESSKEY="S"><p>' ;
|
|
)
|
|
THIS.EditRecord()
|
|
loResponse.WRITE( ;
|
|
'<p><input type="submit" name="btnSubmit" value=" Save ">' ;
|
|
)
|
|
loResponse.WRITE('</form>'+CHR(13)+CHR(10))
|
|
CASE lcAction="SHOW"
|
|
loResponse = THIS.ohTml
|
|
lcKeyfield = THIS.ckEyfield
|
|
IF THIS.ckEytype="N"
|
|
LOCATE FOR &lcKeyfield = VAL(lcId)
|
|
ELSE
|
|
LOCATE FOR &lcKeyfield = lcId
|
|
ENDIF
|
|
IF .NOT. FOUND()
|
|
loResponse.stAndardpage( ;
|
|
"Couldn't edit record. Invalid Key Field...", ,"NONE")
|
|
RETURN
|
|
ENDIF
|
|
THIS.ShowRecord()
|
|
CASE lcAction="SAVE"
|
|
loResponse = THIS.ohTml
|
|
lcKeyfield = THIS.ckEyfield
|
|
IF lcAction="SAVENEW"
|
|
APPEND BLANK
|
|
ELSE
|
|
IF THIS.ckEytype="N"
|
|
LOCATE FOR &lcKeyfield = VAL(lcId)
|
|
ELSE
|
|
LOCATE FOR &lcKeyfield = lcId
|
|
ENDIF
|
|
IF .NOT. FOUND()
|
|
loResponse.erRormsg( ;
|
|
"Couldn't edit record. Invalid Key Field...")
|
|
RETURN
|
|
ENDIF
|
|
ENDIF
|
|
THIS.SaveRecord()
|
|
reSponse.reDirect(THIS.cbAseurl)
|
|
CASE lcAction="DELETE"
|
|
lcKeyfield = THIS.ckEyfield
|
|
IF .NOT. THIS.laLlowdelete
|
|
THIS.ohTml.WRITE( ;
|
|
"Sorry! Deleting is not allowed at this time..." ;
|
|
)
|
|
RETURN
|
|
ENDIF
|
|
IF THIS.ckEytype="N"
|
|
LOCATE FOR &lcKeyfield = VAL(lcId)
|
|
ELSE
|
|
LOCATE FOR &lcKeyfield = lcId
|
|
ENDIF
|
|
IF .NOT. FOUND()
|
|
THIS.ohTml.stAndardpage( ;
|
|
"Couldn't delete record. Invalid Key Field...")
|
|
RETURN
|
|
ENDIF
|
|
DELETE
|
|
reSponse.reDirect(THIS.cbAseurl)
|
|
OTHERWISE
|
|
IF THIS.laLlowadd
|
|
THIS.ohTml.WRITE('<a href="'+THIS.cbAseurl+ ;
|
|
'Action=Add">Add a new record</a><p>')
|
|
ENDIF
|
|
lcKeyfield = THIS.ckEyfield
|
|
IF EMPTY(THIS.ctAblefieldlist)
|
|
lcFields = "*"
|
|
ELSE
|
|
lcFields = THIS.ctAblefieldlist
|
|
ENDIF
|
|
lcOrder = IIF( .NOT. EMPTY(THIS.ctAblesortcolumn), ;
|
|
"ORDER BY "+THIS.ctAblesortcolumn, "")
|
|
SELECT &lcFields, PADR([<a href="] + THIS.cbAseurl + [Action=SHOW&ID=]+TRANS(&lcKeyfield)+[">Show</a> | <a href="] + THIS.cbAseurl + [Action=EDIT&Id=]+TRANS(&lcKeyfield)+[">Edit</a>] + IIF(THIS.laLlowdelete,[ | <a href="] + THIS.cbAseurl + [Action=DELETE&Id=]+TRANS(&lcKeyfield)+[">Delete</a>],[]), 254) AS Action FROM ALIAS() &lcOrder INTO CURSOR __TxQuery
|
|
THIS.nfIeldcount = AFIELDS(THIS.afIeldlist)
|
|
lcOldtablefieldlist = THIS.ctAblefieldlist
|
|
THIS.ctAblefieldlist = ""
|
|
THIS.ShowCursor()
|
|
THIS.ctAblefieldlist = lcOldtablefieldlist
|
|
USE IN __TxQuery
|
|
ENDCASE
|
|
ENDPROC
|
|
*
|
|
FUNCTION GetOutput
|
|
IF .NOT. ISNULL(THIS.ohTml)
|
|
RETURN THIS.ohTml.GetOutput()
|
|
ENDIF
|
|
RETURN ""
|
|
ENDFUNC
|
|
*
|
|
PROCEDURE paGefilter
|
|
LOCAL lnX, lcOutput, lcStyle, lnPages, lnReclow, lnHighrec, ;
|
|
lnEndpage, lnStartpage, lcNolinkstyle, lnReccount
|
|
IF EMPTY(THIS.npAge_showpage)
|
|
THIS.npAge_showpage = VAL(REQUEST.quErystring("PAGE"))
|
|
IF THIS.npAge_showpage<1
|
|
THIS.npAge_showpage = 1
|
|
ENDIF
|
|
ENDIF
|
|
lnReccount = RECCOUNT()
|
|
IF lnReccount<=THIS.npAge_itemsperpage
|
|
RETURN
|
|
ENDIF
|
|
THIS.cpAge_oldalias = ALIAS()
|
|
lnPages = lnReccount/THIS.npAge_itemsperpage
|
|
IF INT(lnPages)<lnPages
|
|
lnPages = INT(lnPages)+1
|
|
THIS.npAge_totalpages = lnPages
|
|
ELSE
|
|
THIS.npAge_totalpages = INT(lnPages)
|
|
ENDIF
|
|
IF THIS.npAge_showpage<lnPages
|
|
THIS.npAge_nextpage = THIS.npAge_showpage+1
|
|
ELSE
|
|
THIS.npAge_nextpage = 0
|
|
ENDIF
|
|
IF THIS.npAge_showpage>1
|
|
THIS.npAge_prevpage = THIS.npAge_showpage-1
|
|
ELSE
|
|
THIS.npAge_prevpage = 0
|
|
ENDIF
|
|
IF THIS.npAge_showpage=0
|
|
THIS.npAge_showpage = 1
|
|
ENDIF
|
|
IF THIS.npAge_showpage<=lnPages
|
|
lnReclow = (THIS.npAge_showpage-1)*THIS.npAge_itemsperpage+1
|
|
lnHighrec = THIS.npAge_showpage*THIS.npAge_itemsperpage
|
|
SELECT * FROM (THIS.cpAge_oldalias) WHERE RECNO()>=lnReclow ;
|
|
AND RECNO()<=lnHighrec INTO CURSOR _TXQuery
|
|
ENDIF
|
|
IF .NOT. EMPTY(THIS.cpAge_pageurl)
|
|
IF lnPages<=10
|
|
lnStartpage = 1
|
|
lnEndpage = lnPages
|
|
ELSE
|
|
lnStartpage = THIS.npAge_showpage-4
|
|
IF lnStartpage<1
|
|
lnStartpage = 1
|
|
ENDIF
|
|
lnEndpage = THIS.npAge_showpage+5
|
|
IF lnEndpage>lnPages
|
|
lnEndpage = lnPages
|
|
ENDIF
|
|
ENDIF
|
|
lcOutput="Pages: "
|
|
lcStyle = ' STYLE="color:'+THIS.chEadercolor+ ;
|
|
';text-decoration:none underline"'
|
|
lcNolinkstyle = ' STYLE="color:'+THIS.chEadercolor+';"'
|
|
FOR lnX = lnStartpage TO lnEndpage
|
|
IF lnX=THIS.npAge_showpage
|
|
lcOutput = lcOutput+' <b '+lcNolinkstyle+'>'+ ;
|
|
TRANSFORM(lnX)+'</b> '
|
|
ELSE
|
|
lcOutput = lcOutput+'<a href="'+THIS.cpAge_pageurl+ ;
|
|
'Page='+TRANSFORM(lnX)+'"'+lcStyle+'>'+ ;
|
|
TRANSFORM(lnX)+'</a> '
|
|
ENDIF
|
|
ENDFOR
|
|
lcOutput=lcOutput + [<b> <a href="] + THIS.cpAge_pageurl + [Page=1"] +lcStyle + [>1</a>]
|
|
lcOutput=lcOutput + [..<a href="] + THIS.cpAge_pageurl + [Page=] +TRANSFORM(lnPages) + ["] +lcStyle + [>] + TRANSFORM(lnPages) + [</a> ]
|
|
IF THIS.npAge_prevpage<>0
|
|
lcOutput = lcOutput+' <a href="'+THIS.cpAge_pageurl+ ;
|
|
'Page='+TRANSFORM(THIS.npAge_prevpage)+'"'+ ;
|
|
lcStyle+'>Prev</a>'
|
|
ELSE
|
|
lcOutput=lcOutput + [ </b><span ] +lcNolinkstyle + [>Prev</span><b>]
|
|
ENDIF
|
|
IF THIS.npAge_nextpage<>0
|
|
lcOutput=lcOutput + [ <a href="] + THIS.cpAge_pageurl + [Page=] +TRANSFORM(THIS.npAge_nextpage) + ["] +lcStyle + [>Next</a>]
|
|
ELSE
|
|
lcOutput=lcOutput + [ </b><span ] +lcNolinkstyle + [>Next</span><b>]
|
|
ENDIF
|
|
THIS.cpAge_linkhtml=lcOutput + " </b>"
|
|
ENDIF
|
|
RETURN
|
|
ENDPROC
|
|
*
|
|
ENDDEFINE
|
|
*
|