<%@ Language=VFP %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> </head> <% timeofday() if len(database())=0 open database southwind endif // get the column descriptions use example in 0 current astore(afieldList, fldlist(), ',') declare afieldDesc[ fldcount() ] adesc(afieldDesc) use // perform the query tmpfile = sys(2015) select * from example order by state save as [&tmpfile] use [&tmpfile] in 0 current declare afieldList[ fldcount() ] // declare some special symbols (html uses ampersand so do we) amp = chr(38) nbsp = amp + "nbsp;" // generate the html output ? ('<table width="100%" height="100%" cellpadding="5" cellspacing="0" bgcolor="white" border=0px>') ? ('<tr bgcolor="gray">') ? ('<td align="center" colspan="&(fldcount())">') ? ('</td>') ? ('</tr>') // display column headings ? ('<tr bgcolor="#eaeaea">') for j=1 to fldcount() ? ('<td halign=center valign=top>') ? ('<b><font color="gray">' + afieldDesc[j] + '</font></b>') ? ('</td>') next ? ('</tr>') ? ('<tr bgcolor="darkgray" height="1px">' + replicate('<td></td>', fldcount()) + '</tr>') // group subtotals by the STATE field last_state = state declare subtotals[3] subtotals[1] = 0.0 // limit subtotals[2] = 0.0 // balance subtotals[3] = 0.0 // available m_limit = 0.0 m_balance = 0.0 m_available = 0.0 // scan through the records generating the table rows and columns goto top // for all records... for i=1 to reccount()+2 if mod(i,2) = 0 rowcolor = "#f9f9f9" altcolor = "#FFFFFF" else rowcolor = "#FFFFFF" altcolor = "#f9f9f9" endif // check for subtotal break if (state != last_state and i > 1) or (i > reccount()) ? ('<tr bgcolor="lightgray" height="1px">' + replicate('<td></td>', fldcount()) + '</tr>') // display subtotals ? ('<tr bgcolor="#f5f5f5" color="gray">') if i <= reccount()+1 ? ('<td colspan="3" halign=left><b><font color="gray">Sub-total for state: ' + last_state + '</font></b>') ? (replicate('<td>&(nbsp)</td>', 5)) elseif i = reccount()+2 ? ('<td color="gray" halign=left><b>Totals:</b>') ? (replicate('<td>&(nbsp)</td>', 7)) endif ? ('<td align=right>') tmpfld = currency(subtotals[1]) fld = 'tmpfld' ? ('<b><font color="gray">' + etos(&fld)+'&(nbsp)&(nbsp)' + '</font><b>') ? ('</td>') ? ('<td align=right>') tmpfld = currency(subtotals[2]) fld = 'tmpfld' ? ('<b><font color="gray">' + etos(&fld)+'&(nbsp)&(nbsp)' + '</font><b>') ? ('</td>') ? ('<td align=right>') tmpfld = currency(subtotals[3]) fld = 'tmpfld' ? ('<b><font color="gray">' + etos(&fld)+'&(nbsp)&(nbsp)' + '</font><b>') ? ('</td>') ? (replicate('<td>&(nbsp)</td>', 1)) ? ('</tr>') ? ('<tr bgcolor="white" height="1px">' + replicate('<td></td>', fldcount()) + '</tr>') if i > reccount()+1 ? ('<tr bgcolor="white" height="1px">' + replicate('<td></td>', fldcount()) + '</tr>') ? ('<tr bgcolor="black" height="1px">' + replicate('<td></td>', fldcount()) + '</tr>') endif ? ('<tr colspan="&(fldcount())" bgcolor="&altcolor">') ? (replicate('<td>&(nbsp)</td>', fldcount())) ? ('</tr>') if i = reccount()+1 subtotals[1] = m_limit // limit subtotals[2] = m_balance // balance subtotals[3] = m_available // available loop endif subtotals[1] = 0.0 // limit subtotals[2] = 0.0 // balance subtotals[3] = 0.0 // available if i > reccount()+1 exit endif endif // save subtotal values last_state = state subtotals[1] = subtotals[1] + limit subtotals[2] = subtotals[2] + balance subtotals[3] = subtotals[3] + available m_limit = m_limit + limit m_balance = m_balance + balance m_available = m_available + available // for all columns... ? ('<tr bgcolor="&rowcolor">') for j=1 to fldcount() fld = afieldlist(j) if (upper(fld) = 'LIMIT' or upper(fld) = 'BALANCE' or upper(fld) = 'AVAILABLE') tmpfld = currency(&fld) fld = 'tmpfld' ? ('<td valign=top align=right>') else ? ('<td valign=top align=left>') endif ? (etos(&fld)+"&(nbsp)&(nbsp)") ? ('</td>') next ? ('</tr>') skip next ? ('</table>') ? ('** End of report elapsed time '+timeofday(4)+' seconds **') erase '&tmpfile..dbf' erase '&tmpfile..dbt' %> </body> </html>
https://www.lianja.com/doc/index.php/Example_webview_gadget_rsp_script
PHP:
// Lianja PHP WebView // echo '<html>'; echo '<head>'; echo '<style>'; echo '.tablecaption { background: gray; font-weight: bold; color: white; height:26px; }'; echo '.smallfont { font-size:small; }'; echo 'body { padding: 0px; margin: 0px; border: 1px solid lightgray; border-top: 1px solid white;}'; echo '</style>'; echo '</head>'; echo '<body>'; // open the southwind database $db = Lianja::openDatabase("southwind"); // Open a recordset $rs = $db->openRecordSet("select * from example"); // main table echo '<table cellpadding="5">'; echo '<caption class="tablecaption">Example PHP Report</caption>'; // print table headings $rs->movefirst(); echo '<tr bgcolor="lightgray" class="smallfont">'; for ($j=0; $j<$rs->fcount(); ++$j) { echo '<th><font color="white">' . $rs->fields($j)->name . '</font></th>'; } echo "</tr>"; // Traverse the recordset and write the output into the Webview section. for ($i=0; $i<$rs->reccount(); ++$i) { if (($i%2) == 0) { $rowcolor = "#f1f6fe"; $altcolor = "#FFFFFF"; } else { $rowcolor = "#FFFFFF"; $altcolor = "#f1f6fe"; } echo '<tr bgcolor="' . $rowcolor . '" color="darkgray" class="smallfont" valign="top">'; for ($j=0; $j<$rs->fcount(); ++$j) { $name = $rs->fields($j)->name; $value = $rs->fields($j)->value; if (in_array($name, array('LIMIT', 'AVAILABLE', 'BALANCE'))) { echo '<td align="right">$' . sprintf("%-8.2f", $value) . '</td>'; } else { echo '<td>' . $value . '</td>'; } } echo '</tr>'; $rs->movenext(); } // end of table echo '</table>'; // Close the recordset $rs->close(); // end of report echo '<hr />Report complete at <b>' . date("r", time()) . '</b>'; // Close off HTML tags echo '</body>'; echo '</html>';
Python:
# # Lianja Custom Python WebView # # import Lianja import time # The output of the "print" command will be redirected into the WebView. print "<html>" print "<head>" print "<style>" print ".tablecaption { background: gray; font-weight: bold; color: white; \ height:26px; }" print ".smallfont { font-size:small; }" print "body { padding: 0px; margin: 0px; border: 1px solid lightgray; \ border-top: 1px solid white;}" print "</style>" print "</head>" print "<body>" # open a database db = Lianja.openDatabase("southwind") # open a recordset rs = db.openRecordSet("select * from example") # main table print "<table cellpadding=\"5\">" print "<caption class=\"tablecaption\">Example Python Report</caption>" # column headings rs.movefirst() print "<tr bgcolor=\"lightgray\" class=\"smallfont\">" for j in range( rs.fcount() ): print "<th><font color=\"white\">" + rs.fields(j).name + "</font></th>" print "</tr>" # Traverse the recordset and write the output into the Webview section. for i in range( rs.reccount() ): if ((i%2) == 0): rowcolor = "#f1f6fe" altcolor = "#FFFFFF" else: rowcolor = "#FFFFFF" altcolor = "#f1f6fe" print "<tr bgcolor=\"" + rowcolor + "\" color=\"darkgray\" class=\"smallfont\" valign=top>" for j in range( rs.fcount() ): if rs.fields(j).name in [ "LIMIT", "BALANCE", "AVAILABLE" ]: print "<td align=right>$%.2f</td>" % rs.fields(j).value else: print "<td>%s</td>" % rs.fields(j).value print "</tr>" rs.movenext() # end of table print "</table>" # Close the RecordSet rs.close() # End of report print "<hr>Report complete at <b>" + time.asctime() + "</b>" # Close off HTML tags print "</body>" print "</html>"
https://www.lianja.com/doc/index.php/Example_webview_gadget_Python_script
JS:
<%@ Language=JavaScript %> <html> <head> <style> .tablecaption { background: gray; font-weight: bold; color: white; height:26px; } .smallfont { font-size:small; } body { padding: 0px; margin: 0px; border: 1px solid lightgray; border-top: 1px solid white;} </style> </head> <body> <% db = Lianja.openDatabase("southwind"); // Open a recordset rs = db.openRecordSet("select * from example"); // main table print("<table cellpadding=\"5\">"); print("<caption class=\"tablecaption\">Example JavaScript Report</caption>"); // print table headings rs.moveFirst(); print("<tr bgcolor=\"lightgray\" class=\"smallfont\">"); for (j=0; j < rs.fieldcount; ++j) { print("<th><font color=\"white\">" + rs.fields(j).name + "</font></th>"); } print("</tr>"); // Traverse the recordset and write the output into the Webview section. for (i=0; i < rs.reccount; ++i) { if ((i%2) == 0) { rowcolor = "#f1f6fe"; altcolor = "#FFFFFF"; } else { rowcolor = "#FFFFFF"; altcolor = "#f1f6fe"; } print("<tr bgcolor=\"" + rowcolor + "\" color=\"darkgray\" class=\"smallfont\" valign=top>"); for (j=0; j < rs.fieldcount; ++j) { name = rs.fields(j).name; value = rs.fields(j).value; if (['LIMIT', 'AVAILABLE', 'BALANCE'].indexOf(name) >= 0) { print("<td align=right>$" + value.toFixed(2) + "</td>"); } else { print("<td>" + value + "</td>"); } } print("</tr>"); rs.moveNext(); } // end of table print("</table>"); // Close the recordset rs.close(); // end of report print("<hr>Report complete at <b>" + new Date() + "</b>"); %> </body> </html>