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>

Back to the Code Example List

The Source Viewer is also a Code Example.
Click Here to see its source.
Copyright © 1992-1999 Thunderstone Software
Copyright © 2024 Thunderstone Software LLC. All rights reserved.