Texis Web Script source code for:
/texis/site/demos/acme.vs
Note: Click on links to view the documentation for HTML tags
which are special to the Vortex compiler.
<script language=vortex>
<!--
Notes: Vortex is just HTML extended with programmatic tags and Texis SQL .
Vortex functions are defined with <a name=X> and closed by </a> .
Functions are called by using their name as a tag ie: <X>
The code is auto-compiled at the server into a Java-esque P-code.
A function is invoked by http://texis/script_name/function.html
-->
<export $CUSTID>
<export $PRODID>
<export $ORDERID>
<uses demonav=demonav><!--simple look and feel module-->
<entryfunc=init> <!-- init function for every invocation -->
<!-- --------------------------------------------------------------------- -->
<a name=init private>
<sum "%s" $SERVER_ROOT "/texis"><db = $ret> <!-- set the database -->
</a>
<!-- ---------------------------------------------------------------------- -->
<a name=rpt PUBLIC> <!-- Macro body look and feel -->
<demolook title="Customer/Product Code Example">
</a>
<a name=/rpt PUBLIC>
<p>
</demolook>
</a>
<!-- ----------------------------------------------------------------- -->
<a name=podetail PUBLIC> <!-- Purchase order detail report -->
<$title = "Purchase Order Detail Report">
<rpt>
<center>
<table border=1>
<sql max=1 "select COMPANY,ADDRESS,CITY,REGION,POSTALCODE,COUNTRY,PHONE,ORDERDATE
from customer,orders
where ORDERID=$ORDERID
and orders.CUSTID=customer.CUSTID"
>
<tr><td colspan=2 ><b><a href=$url/cd.html>$COMPANY</a></b><br>$ADDRESS<br>$CITY, $REGION $POSTALCODE<br>$COUNTRY</td><td colspan=2 align=center>Ordered: <fmt "%y/%m/%d" $ORDERDATE><p>Contact: $PHONE</td></tr>
</sql>
<tr><td>PRODNAME</td><td>QUANTITY</td><td>UNITPRICE</td><td>SUBTOTAL</td></tr>
<sql "select PRODNAME,product.PRODID PRODID,QUANTITY,UNITPRICE,UNITPRICE*QUANTITY SUBTOTAL,SHIPWT*QUANTITY MASS
from orders,product
where ORDERID=$ORDERID
and product.PRODID=orders.PRODID
order by DESCRIPT;"
/>
<loop $PRODID $QUANTITY $UNITPRICE $SUBTOTAL $MASS>
<tr><td><a href=$url/pd.html><fmt "%V" $PRODNAME></a></td><td><fmt "%.0f" $QUANTITY></td><td>$$<fmt "%.2kf" $UNITPRICE></td><td>$$<fmt "%.2kf" $SUBTOTAL></td></tr>
</loop>
<tr>
<td align=right colspan=2> Gross Weight: <sum "%.1f" $MASS>$ret</td>
<td align=right colspan=2> Total: $$<sum "%f" $SUBTOTAL><fmt "%.2kf" $ret> </td>
</tr>
</table>
</center>
</rpt>
</a>
<!-- ---------------------------------------------------------------------- -->
<a name="proddetail" PUBLIC> <!-- Who's purchased this product -->
<table border=1>
<tr><td>ORDERID</td><td>ORDERDATE</td><td>COMPANY</td><td>QUANTITY</td><td>$$SUBTOTAL</td></tr>
<sql "select ORDERID,COMPANY,orders.CUSTID,ORDERDATE,QUANTITY,UNITPRICE*QUANTITY SUBTOTAL
from orders,product,customer
where orders.PRODID=$PRODID
and product.PRODID=orders.PRODID
and orders.CUSTID=customer.CUSTID
order by ORDERDATE"
/>
<loop $ORDERID $COMPANY $orders.CUSTID $ORDERDATE $QUANTITY $SUBTOTAL>
<tr><td><a href=$url/podetail.html><fmt "%.0f" $ORDERID></a></td><td><fmt "%y/%m/%d" $ORDERDATE></td><td><a href=$url/cd.html>$COMPANY</a></td><td><fmt "%.0f" $QUANTITY></td><td align=right>$$<fmt "%.2kf" $SUBTOTAL></td></tr>
</loop>
<tr><td align=right colspan=6>Total:
$$<sum "%f" $SUBTOTAL><fmt "%.2kf" $ret>
</td></tr>
</table>
</a>
<!-- ---------------------------------------------------------------------- -->
<a name="Product Detail" PUBLIC> <!-- Shows detail about a single product -->
<$title="Product Detail Report">
<rpt>
<table>
<sql max=1 "select PRODNAME,UNITPRICE,DESCRIPT,SHIPWT
from product
where PRODID=$PRODID"
>
<tr valign=top><td><b>PRODNAME:</b></td> <td><h3><fmt "%V" $PRODNAME></h3></td></tr>
<tr><td><b>DESCRIPT:</b></td> <td>$DESCRIPT</td></tr>
<tr><td><b>UNITPRICE:</b></td> <td>$$<fmt "%.2kf"$UNITPRICE></td></tr>
<tr><td><b>SHIPWT:</b></td> <td><fmt "%.1f" $SHIPWT></td></tr>
</sql>
</table>
<proddetail>
</rpt>
</a>
<a name=pd PUBLIC> <!-- A synonym function so you can call Product Detail from a URL -->
<"Product Detail" >
</a>
<!-- ---------------------------------------------------------------------- -->
<a name="orderdetail" PUBLIC> <!-- Shows what a customer has purchased over time -->
<table border=1>
<tr><td>ORDERID</td><td>ORDERDATE</td><td>PRODNAME</td><td>QUANTITY</td><td>UNITPRICE</td><td>$$SUBTOTAL</td></tr>
<sql "select ORDERID,PRODNAME,product.PRODID,ORDERDATE,UNITPRICE,QUANTITY,UNITPRICE*QUANTITY SUBTOTAL
from orders,product
where CUSTID=$CUSTID
and product.PRODID=orders.PRODID
order by ORDERDATE"
/>
<loop $ORDERID $PRODNAME $product.PRODID $ORDERDATE $UNITPRICE $QUANTITY $SUBTOTAL>
<tr><td><a href=$url/podetail.html><fmt "%.0f" $ORDERID></a></td><td><fmt "%y/%m/%d" $ORDERDATE></td><td><a href=$url/pd.html><fmt "%V" $PRODNAME></a></td><td><fmt "%.0f" $QUANTITY></td><td align=right>$$<fmt "%.2kf" $UNITPRICE></td><td align=right>$$<fmt "%.2kf" $SUBTOTAL></td></tr>
</loop>
<tr><td align=right colspan=6>Total:
$$<sum "%f" $SUBTOTAL><fmt "%.2kf" $ret>
</td></tr>
</table>
</a>
<!-- ---------------------------------------------------------------------- -->
<a name="Customer Detail" PUBLIC> <!-- Shows what a customer details -->
<$title = "Customer Detail Report">
<rpt>
<if $CUSTID eq "">
Please select a customer first!
<else>
<table>
<sql max=1 "select COMPANY,ADDRESS,CITY,REGION,POSTALCODE,COUNTRY,PHONE
from customer
where CUSTID = $CUSTID"
>
<tr valign=top><td><b>COMPANY:</b></td> <td><h3>$COMPANY</h3></td></tr>
<tr><td><b>CUSTID:</b></td> <td>$CUSTID</td></tr>
<tr><td><b>ADDRESS:</b></td> <td>$ADDRESS</td></tr>
<tr><td><b>CITY:</b></td> <td>$CITY</td></tr>
<tr><td><b>REGION:</b></td> <td>$REGION</td></tr>
<tr><td><b>POSTALCODE:</b></td> <td>$POSTALCODE</td></tr>
<tr><td><b>COUNTRY:</b></td> <td>$COUNTRY</td></tr>
<tr><td><b>PHONE:</b></td> <td>$PHONE</td></tr>
</sql>
<sql max=1 "select max(ORDERDATE) LODATE
from orders
where CUSTID = $CUSTID"
>
<tr><td><b>LAST ORDER:</b></td> <td>$LODATE</td></tr>
</sql>
</table>
<orderdetail>
</if>
</a>
<a name=cd PUBLIC> <!-- A synonym function so you can call Customer Detail from a URL -->
<"Customer Detail">
</a>
<!-- ---------------------------------------------------------------------- -->
<a name=custlist PUBLIC> <!-- Enumerate all customers in a list box -->
<sql "select CUSTID CIDS,COMPANY from customer order by COMPANY"/>
<if $CUSTID eq ""> <!-- Nothing selected yet, so pick one for them -->
<randpick $CIDS>
<$CUSTID= $ret>
</if>
<select name=CUSTID size=5>
<options $CIDS $CUSTID $COMPANY>
</select>
</a>
<!-- ---------------------------------------------------------------------- -->
<a name=prodlist PUBLIC> <!-- Enumerate all products in a list box -->
<sql "select PRODID PIDS,stringformat('%V', PRODNAME) PRODNAME from product order by PRODNAME"/>
<if $PRODID eq ""> <!-- Nothing selected yet, so pick one for them -->
<randpick $PIDS>
<$PRODID= $ret>
</if>
<select name=PRODID size=5>
<options $PIDS $PRODID $PRODNAME>
</select>
</a>
<a name=main PUBLIC> <!-- The main entry point for Acme Distribution -->
<$title = "Texis Report Generation Example">
<rpt>
<center>
<form>
<table>
<tr valign=top><td>
Customers:<br>
<custlist><br>
<input type=submit name=cmd value="Customer Detail"><br>
</td><td>
Products:<br>
<prodlist><br>
<input type=submit name=cmd value="Product Detail">
</tr>
</table>
</center>
</form>
This code example shows Texis' ability to perform SQL database
operations by displaying various views against the relationships in a
three table database. The tables are: Customer List, Info, Product list,
and Order List.
<p>
Just select a Customer or Product and click the button. The various reports
contain embedded hyperlinks to other report views.
</form>
</rpt>
</a>
</script>
The Source Viewer is also a Code Example.
Click Here to see its source.
Copyright © 1992-1999 Thunderstone Software