** ** 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+''+lvHeader(lnX)+ ; '' 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],"_"," ")) + " " + [] + CHR(0x35) +" " + [] + CHR(0x36) +" " + CHR(13)+CHR(10) ELSE lcFieldName = PROPER(CHRTRAN(THIS.afIeldlist(lnX, ; 1), "_", " ")) ENDIF lcHeader = lcHeader+''+lcFieldName+ ; '' ENDFOR ENDIF THIS.chEaderstring = ''+ ; lcHeader+'' 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+""+ ; PADC(THIS.afIeldlist(lnX,1), ; THIS.afIeldlist(lnX,3))+" " ELSE lcHeader = lcHeader+""+ ; PADC(THIS.afIeldlist(lnX,1), ; THIS.afIeldlist(lnX,3))+" " 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+""+PADC(lvHeader(lnX), ; lnSize)+" " ELSE lcHeader = lcHeader+""+PADC(lvHeader(lnX), ; lnSize)+" " 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 = '

'+THIS.ctAbletitle+ ; '

' ELSE lcTitle = "" ENDIF THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '
'+CHR(13)+ ; CHR(10), '')+''+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+"" CASE lcFieldtype="C" lcRow = lcRow+"" CASE lcFieldtype="M" lcRow = lcRow+"" CASE lcFieldtype$"NFBIY" lcRow = lcRow+'' 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+'' CASE lcFieldtype="D" lcRow = lcRow+'' CASE lcFieldtype="T" lcRow = lcRow+'' ENDCASE ENDFOR IF THIS.laLternaterows .AND. llAlternate lcRow = ''+ ; lcRow+"" ELSE lcRow = ''+lcRow+"" 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+"" ELSE lcRow = lcRow+'' ENDIF ELSE lcRow = lcRow+"" ENDIF ENDFOR THIS.ohTml.WRITE(''+lcRow+''+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('') ENDIF ENDIF THIS.ohTml.WRITE("
n/a"+IIF(EMPTY(lvValue), ; "
", TRIM(lvValue))+"
"+IIF(EMPTY(lvValue), ; "
", ; THIS.ohTml.wrItememo(lvValue,.T.))+ ; "
'+ ; LTRIM(STR(lvValue, ; THIS.afIeldlist(lnX,3), ; THIS.afIeldlist(lnX,4)))+''+ ; IIF(lvValue, "True", "False")+''+ ; IIF(EMPTY(lvValue), "
", ; DTOC(lvValue))+'
'+ ; IIF(EMPTY(lvValue), "
", ; LOWER(TTOC(lvValue)))+'
'+STR(lnTotal, ; THIS.afIeldlist(lnX,3)+1, ; THIS.afIeldlist(lnX,4))+'
'+''+THIS.cpAge_linkhtml+ ; '
"+IIF(THIS.lcEntertable, '
', ; '')+CHR(13)+CHR(10)) ELSE THIS.ohTml.WRITE('
'+CHR(13)+CHR(10)+IIF(THIS.lcEntertable,  ;
				'
'+CHR(13)+CHR(10), '')) IF .NOT. EMPTY(THIS.ctAbletitle) lcTitle = '

'+THIS.ctAbletitle+'

' 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(''+lcRow+'') ENDIF THIS.ohTml.faStwrite(IIF(THIS.lcEntertable, '
'+ ; CHR(13)+CHR(10), '')+"
") 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, '
'+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 = '' THIS.afIeldlist[lnX, 11] = lcFieldcaption ENDFOR ELSE FOR lnX = 1 TO THIS.nfIeldcount THIS.afIeldlist[lnX, 11] = '' 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+"" CASE lcFieldtype="C" .OR. lcFieldtype="M" lcRow = lcRow+"" CASE lcFieldtype$"NFBY" lcRow = lcRow+'' CASE lcFieldtype="I" lcRow = lcRow+'' CASE lcFieldtype="L" lcRow = lcRow+'' CASE lcFieldtype="D" lcRow = lcRow+'' CASE lcFieldtype="T" lcRow = lcRow+'' ENDCASE THIS.ohTml.WRITE(lcRow+""+CHR(13)+CHR(10)) ENDFOR THIS.ohTml.WRITE("
'+lcCaption+":"+ ; '
'+ ; PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ; " "))+'n/a"+IIF(EMPTY(lvValue), "
", ; THIS.ohTml.wrItememo(lvValue,.T.))+"
'+LTRIM(STR(lvValue, ; THIS.afIeldlist(lnX,3), THIS.afIeldlist(lnX, ; 4)))+''+TRANSFORM(lvValue)+''+IIF(lvValue, "True", "False")+''+IIF(EMPTY(lvValue), "
", ; DTOC(lvValue))+'
'+IIF(EMPTY(lvValue), "
", ; TTOC(lvValue))+'
"+CHR(13)+CHR(10)+IIF(THIS.lcEntertable, ; '
'+CHR(13)+CHR(10), "")) ENDPROC * PROCEDURE ShowObject LPARAMETER loObject LOCAL lnX, lcFieldcaption, lnFieldcount, lcFieldtype, lcFieldName, lcRow lcOutput = "" THIS.ohTml.WRITE(IIF(THIS.lcEntertable, '
'+CHR(13)+CHR(10), ; '')+'') lnFieldcount = AMEMBERS(laFields, loObject) FOR lnX = 1 TO lnFieldcount lcField = laFields(lnX) lcRow = '' 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+""+CHR(13)+CHR(10)) ENDFOR THIS.ohTml.WRITE(IIF(THIS.lcEntertable, ''+CHR(13)+CHR(10), ; "")+"
'+ ; PROPER(lcField)+":"+'"+lcValue+"
"+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, '
'+CHR(13)+CHR(10), ; '')+''+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 = ''+CHR(13)+CHR(10) THIS.afIeldlist[lnX, 11] = lcFieldcaption ENDFOR ELSE FOR lnX = 1 TO THIS.nfIeldcount THIS.afIeldlist[lnX, 11] = ''+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+'' CASE lcFieldtype="M" lcRow = lcRow+ ; '' CASE lcFieldtype$"NFBIY" lcRow = lcRow+'' CASE lcFieldtype="L" lcRow = lcRow+'' CASE lcFieldtype="D" lcRow = lcRow+'' CASE lcFieldtype="T" lcRow = lcRow+'' ENDCASE THIS.ohTml.WRITE(lcRow+""+CHR(13)+CHR(10)) ENDFOR IF .NOT. EMPTY(lcKeyvalue) THIS.ohTml.WRITE('') ENDIF THIS.ohTml.WRITE("
'+lcCaption+":"+ ; '
'+ ; PROPER(STRTRAN(THIS.afIeldlist(lnX,1), "_", ; " "))+'
"+IIF(THIS.lcEntertable, '
'+ ; 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([
] +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([] +CHR(13)+CHR(10)) ENDIF loResponse.WRITE([] +CHR(13)+CHR(10)) loResponse.WRITE( ; '

' ; ) THIS.EditRecord() loResponse.WRITE( ; '

' ; ) loResponse.WRITE('

'+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('Add a new record

') 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([Show | Edit] + IIF(THIS.laLlowdelete,[ | Delete],[]), 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)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+' '+ ; TRANSFORM(lnX)+' ' ELSE lcOutput = lcOutput+''+ ; TRANSFORM(lnX)+' ' ENDIF ENDFOR lcOutput=lcOutput + [     1] lcOutput=lcOutput + [..] + TRANSFORM(lnPages) + [  ] IF THIS.npAge_prevpage<>0 lcOutput = lcOutput+' Prev' ELSE lcOutput=lcOutput + [   Prev] ENDIF IF THIS.npAge_nextpage<>0 lcOutput=lcOutput + [  Next] ELSE lcOutput=lcOutput + [  Next] ENDIF THIS.cpAge_linkhtml=lcOutput + " " ENDIF RETURN ENDPROC * ENDDEFINE *