<?xml version="1.0"?>
<!--
 -  
 -  $Id$
 -
 -  This file is part of the OpenLink Software Virtuoso Open-Source (VOS)
 -  project.
 -  
 -  Copyright (C) 1998-2018 OpenLink Software
 -  
 -  This project is free software; you can redistribute it and/or modify it
 -  under the terms of the GNU General Public License as published by the
 -  Free Software Foundation; only version 2 of the License, dated June 1991.
 -  
 -  This program is distributed in the hope that it will be useful, but
 -  WITHOUT ANY WARRANTY; without even the implied warranty of
 -  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 -  General Public License for more details.
 -  
 -  You should have received a copy of the GNU General Public License along
 -  with this program; if not, write to the Free Software Foundation, Inc.,
 -  51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 -  
 -  
-->
<html>
  <head>
    <link href="../demo.css" type="text/css" rel="stylesheet"/>
  </head>
  <body>
    <v:page name="data_set_page" xmlns:v="http://www.openlinksw.com/vspx/">
      <font color="red">
        <b>
          <v:error-summary/>
        </b>
      </font>
      <v:data-set name="ds" sql="select CustomerID, CompanyName, Phone from Demo.demo.Customers" nrows="10" scrollable="1" cursor-type="keyset" edit="1" width="80">
        <v:template name="template1" type="simple" name-to-remove="table" set-to-remove="bottom">
          <h4>
            <v:label name="label03" value="--'Data-set VSPX control demo'" format="%s" width="80"/>
          </h4>
          <table width="400" border="2" cellspacing="0" cellpadding="0" class="tableentry">
            <tr>
              <td align="center">
                <b>Action</b>
              </td>
              <td align="center">
                <b>
                  <v:label name="label1" value="'CustomerID'" format="%s" width="80"/>
                </b>
              </td>
              <td align="center">
                <b>
                  <v:label name="label2" value="'CompanyName'" format="%s" width="80"/>
                </b>
              </td>
              <td align="center">
                <b>
                  <v:label name="label3" value="'Phone'" format="%s" width="80"/>
                </b>
              </td>
            </tr>
          </table>
        </v:template>
        <v:template name="template2" type="repeat" name-to-remove="" set-to-remove="">
          <v:template name="template7" type="if-not-exists" name-to-remove="table" set-to-remove="both">
            <table width="400" border="2" cellspacing="0" cellpadding="0">
              <tr>
                <td align="center" colspan="5">
                  <b>No rows selected</b>
                </td>
              </tr>
            </table>
          </v:template>
          <v:hidden width="0" height="0">
            <v:template name="template5" type="edit" name-to-remove="" set-to-remove="">
              <v:form name="upf" type="update" table="Demo.demo.Customers" if-not-exists="insert">
                <v:key column="CustomerID" value="--((self.vc_find_control('ds') as vspx_data_set).ds_current_row.te_rowset[0])" default="null"/>
                <v:template name="template6" type="simple" name-to-remove="table" set-to-remove="both">
                  <table width="400" border="1" cellspacing="2" cellpadding="0">
                    <tr>
                      <td nowrap="nowrap">
                        <v:button name="upd_button" action="simple" value="Update"/>
                        <input type="submit" name="ds_cancel" value="Cancel"/>
                      </td>
                      <td nowrap="nowrap">
                        <v:text name="c_id" column="CustomerID" error-glyph="*" xhtml_size="10%">
                          <v:validator name="c_id_len" test="length" min="5" max="5" message="The CustomerID should be 5 chars long."/>
                        </v:text>
                      </td>
                      <td>
                        <v:text name="c_name" column="CompanyName" xhtml_size="50%"/>
                      </td>
                      <td>
                        <v:text name="c_phone" column="Phone"  xhtml_size="15%"/>
                      </td>
                    </tr>
                  </table>
                </v:template>
              </v:form>
            </v:template>
          </v:hidden>
          <v:template name="template8" type="add" name-to-remove="" set-to-remove="">
            <v:form name="add" type="update" table="Demo.demo.Customers" if-not-exists="insert">
               <v:validator
                name="custormer_id_validator"
                test="sql"
                message="Customer exists already"
                empty-allowed="0" >
                <![CDATA[
		   if (not control.vc_focus)
                     return 0;
                   if (exists (select * from Demo.demo.Customers where 
			CustomerID = (control.vc_find_descendant_control('c_id2') as vspx_field).ufl_value))
			return 1;
                   return 0;
                 ]]>
                </v:validator>
              <v:key column="CustomerID" value="--''" default="null"/>
              <v:template name="template9" type="simple" name-to-remove="table" set-to-remove="both">
                <table width="400" border="1" cellspacing="2" cellpadding="0">
                  <tr>
                    <td nowrap="nowrap">
                      <v:button name="add_button" action="simple" value="Add"/>
                    </td>
                    <td nowrap="nowrap">
                      <v:text name="c_id2" column="CustomerID" error-glyph="*" xhtml_size="10%">
                        <v:validator name="c_id_len2" test="length" min="5" max="5" message="The CustomerID should be 5 chars long."/>
                      </v:text>
                    </td>
                    <td>
                      <v:text name="c_name2" column="CompanyName" xhtml_size="50%"/>
                    </td>
                    <td>
                      <v:text name="c_phone2" column="Phone" xhtml_size="15%"/>
                    </td>
                  </tr>
                </table>
              </v:template>
            </v:form>
          </v:template>
          <v:template name="template4" type="browse" name-to-remove="table" set-to-remove="both">
            <table width="400" border="1" cellspacing="2" cellpadding="0">
              <tr>
                <td nowrap="1">
                  <v:button name="ds_edit" action="simple" value="Edit"/>
                  <v:button name="ds_delete" action="simple" value="Delete">
                    <v:on-post>
                      <v:script><![CDATA[
		    {
		      declare exit handler for sqlstate '*' {
		        self.vc_is_valid := 0;
			control.vc_error_message := __SQL_MESSAGE;
			return;
		      };
                      declare ds vspx_data_set;
                      ds := self.vc_find_parent(control, 'vspx_data_set');
                      delete from Demo.demo.Customers where CustomerID = ds.ds_current_row.te_rowset[0];
                      ds.vc_data_bind(e);
                    }
                  ]]></v:script>
                    </v:on-post>
                  </v:button>
                </td>
                <td align="left" nowrap="1">
                  <v:label name="label5" value="--(control.vc_parent as vspx_row_template).te_rowset[0]" format="%s" width="80"/>
                </td>
                <td align="left" nowrap="1">
                  <v:label name="label6" value="--(control.vc_parent as vspx_row_template).te_rowset[1]" format="%s" width="80"/>
                </td>
                <td align="left" nowrap="1">
                  <v:label name="label7" value="--(control.vc_parent as vspx_row_template).te_rowset[2]" format="%s" width="80"/>
                </td>
              </tr>
            </table>
          </v:template>
        </v:template>
        <v:template name="template3" type="simple" name-to-remove="table" set-to-remove="top">
          <table width="400" border="1" cellspacing="2" cellpadding="0">
            <tr>
              <td>
        </td>
              <td align="right">
                <v:button name="ds_prev" action="simple" value="&lt;&lt;" xhtml:size="10pt"/>
              </td>
              <td align="left">
                <v:button name="ds_next" action="simple" value="&gt;&gt;" xhtml:size="10pt"/>
              </td>
              <td align="right">
              </td>
            </tr>
	    <tr>
		<td colspan="4" align="right"><i>
                <v:label name="label4" value="--'VSPX Tutorials (C) '||cast(year(now()) as varchar)||' OpenLink Software'" format="%s" width="80"/></i>
		</td>
	    </tr>
          </table>
        </v:template>
      </v:data-set>
    </v:page>
  </body>
</html>
