<!--#include file="../aspfunction/DBParameter.ASP"-->
<%
'-------------------------------------------------
'定义本文件的名称，在显示目录的文件(MenuFun.ASP)内，当目录的连接为此文件时，用黑体字表示该目录正在浏览
MenuFile="Help064"
'-------------------------------------------------
'建立对象
Set BaseOB=Server.Createobject("JFOA_Base.Base")
Set Conn=BaseOB.ConnDB(DBServerName,DBName,DBUid,DBPassword)
Set InterfaceOB=Server.CreateObject("JFOA_Interface.Interface")
'--------------------------------------------------
'显示web头
response.write InterfaceOB.webtitle(Conn, 0, 1, 0, "", 0, 5)
'---------------------------------------------------
%>
<table border=0 width="100%">
<tr>
<td width=200>
<%
'显示目录的界面
HaveWorkZoom=InterfaceOB.WorkZoomDisplayInApply(Conn, 0, HeadStr, MidStr, EndStr)
response.write HeadStr
'--------------------------------------------------
%>
<B>帮助目录</B>
<%
'---------------------------------------------------
response.write Midstr
'---------------------------------------------------
%>
<!--#include file="MenuFun.ASP"-->
<%
'----------------------------------------------------
response.write EndStr
'---------------------------------------------------
%>
</td>
<td valign="top">


<br>
<center>
<table width="95%">
<tr>
<td>


<b>参数的传递及数据关联</b><br><br>

简单的模块只有一张流程表单和一张流程页面，是不需要传递参数的；复杂的模块可能包括多张流程页面和多张流程表单，当需要把多张表单或多张页面的数据按一定条件关联时
就需要传递参数，使他们之间保持某种关联。<br><br>

一次可以传递多个参数，每个参数用英文逗号分隔开。要传递参数需要事先设置好，参数的传递有下面几种方式：<br><br>

<ul>
<li>菜单传递参数给所连接的流程页面，从菜单传出的参数是一段文字，不会是(Param0)、DataID、H0L0S0等特殊文字。</li>
<li>流程页面传递参数到本页面上的“增加”按钮，再传递给所关联表单的输入界面。页面传参数给增加按钮时，可以把固定的一段文字传过去，也可以把其他页面传给本页面
    的参数转传给增加按钮，转传其他页面的参数时，用(Param*)来表示要传的是第几个参数，其中*号是正整数，(Param0)表示要转传第一个参数，(Param1)表示要转传第二个
    参数，依次类推。</li>
<li>流程页面传递参数到本页面上的“连接”按钮，再传递给所连接的流程页面。“连接”按钮就是由流程页面的“连接”属性控制的按钮。页面传参数给连接按钮时，可以把
    固定的一段文字传过去，也可以把其他页面传给本页面的参数转传给连接按钮，转传其他页面的参数时，用(Param*)来表示要传的是第几个参数，其中*号是正整数，
    (Param0)表示要转传第一个参数，(Param1)表示要转传第二个参数，依次类推。</li>
<li>流程表单的数据连接属性所控制的连接按钮传递参数给所连接的流程页面。这种情况下可以传递多种参数，可以传递固定文字（直接把要传递的文字作为参数）、
    数据的ID（用DataID表示）、数据填写人（用Name表示）、数据填写时间（用InputTime表示）、某个单元的值（用H*L*S*表示）。</li>
<li>流程表单的单元式样是“流程页面链接”时，该单元传递参数给所连接的流程页面。这种情况下也可以传递多种参数，可以传递固定文字（直接把要传递的文字作为参数）、
    数据的ID（用DataID表示）、数据填写人（用Name表示）、数据填写时间（用InputTime表示）、某个单元的值（用H*L*S*表示）。</li>
</ul>












举个例子来说明什么时候需要传递参数以及如何把两个不同表单内的数据关联起来会更容易理解：<br><br>

假设，我们想建一个通讯录模块，通过通讯录模块我们可以查到我所记录的朋友通讯资料。那么我们可以这样做：<br><br>

1、建立流程表单“朋友的通讯录表单”，里面包含朋友的姓名、性别、电话、邮箱这几个单元；<br><br>

2、建立一张流程页面“朋友的通讯录页面”，关联表单为“朋友的通讯录表单”，页面类型为“显示多行数据”，数据显示为“跟本人有关的数据”。在列表属性内添加适当的表
头。<br><br>

3、增加一个菜单，连接到“朋友的通讯录页面”。<br><br>

这样，一个简单的通讯录模块就做好了，显然，我们不用传递任何参数就能实现上面的功能。
但如果我们还想在通讯录模块内增加另一张表单记录“朋友的家庭情况表单”时，我们就需要
用传递参数来关联“朋友的通讯录表单”和“朋友的家庭情况表单”了。<br><br>


在讲解关联之前，我们介绍一下“数据识别”。本系统中的表单是用来保存记录的，当我们在表单的输入界面输入了数据后，这些数据就保存在表单中。每张表单内最多可以保存10多亿条记录，每条记录都有一个唯一的识别
号，用来标示不同的数据。数据识别号是由系统自动生成的，不用我们干预。<br><br>

当我们在“朋友的通讯录表单”的输入界面输入了朋友的通讯资料后，这张表单内就增加了一条记录，这条记录包含有朋友姓名、性别、电话、邮箱和数据识别号。<br><br>

我们在“朋友的家庭情况表单”中设置这样几个单元：朋友姓名、家庭情况、关联ID。其中关联ID单元用来保存从“朋友的通讯录表单”传递过来的数据识别号。<br><br>
如果关联ID单元的值等于“朋友的通讯录表单”中的某条数据的识别号，说明这两条记录是同一个朋友的资料。这样的关系就是数据的关联。



我们带领大家来搭建这个模块，使大家领悟到参数的传递和数据关联。<br><br>


1、先建立流程表单“朋友的家庭情况表单”，里面包含朋友姓名、家庭情况、关联ID三个单元，其中朋友姓名单元的默认值设置为“(Param0)”，关联ID单元用隐藏单元式样，
其默认值为“(Param1)”。“(Param0)”、“(Param1)”分别表示用页面传递过来的第一和第二个参数作为这两个单元的默认值，我们将在设置流程页面时，把这两个参数传递
到该表单的输入界面，其中第一个参数是朋友的姓名，第二个参数是“朋友的通讯录表单”中数据的识别号，每条数据都有一个不同的识别号。
当用户填写了朋友的 家庭情况时，默认值也一并保存在“朋友的家庭情况表单”中，“朋友的家庭情况表单”中关联ID单元内的值等于“朋友的通讯录表单”的数据识别号说明
这两条数据是关联的，是同一个朋友的资料。下面的第2步骤将
建立一张流程页面，我们将看到他是如何把参数传递到“朋友的家庭情况表单”的输入界面的。下图为“朋友的家庭情况表单”的示例图：<br><br>

<img border="0" src="Images/Param03.gif"><br><br>

<img border="0" src="Images/Param04.gif"><br><br>

<img border="0" src="Images/Param05.gif"><br><br>

2、建立一张流程页面“朋友的家庭情况页面”，关联表单为“朋友的家庭情况表单”，在这个页面中，我们通过设置“增加”按钮所传递的参数，来把“(Param0)”、“(Param1)”两个参数传递到“朋友的家庭情况
表单”的输入界面。在本页面，也就是“朋友的家庭情况页面”，“(Param0)”、“(Param1)”这两个参数是从哪里生成的呢？他们也是从其他地方传递过来的，说具体点，这两
个参数是从“朋友的通讯录表单”数据中发出的，最后传递到“朋友的家庭情况表单”的输入界面，并被用户输入到“朋友的家庭情况表单”的朋友姓名、关联ID两个单元中。
由于这两个单元是有默认值，所以用户不用动手输入，系统会自动填上。在“朋友的家庭情况页面”页面，我们设置其页面类型为“显示最新的数据”，并设置显示条件为
“H0L1S1=Param1”，这条表达式我们解释一下，H0L1S1是“朋友的家庭情况表单”中的“关联ID”单元，Param1是从“朋友的通讯录表单”数据中发出的第二个参数，也就是“朋友的通讯录表单”中数据的识别号，
“H0L1S1=Param1”表示要显示“关联ID”单元的值等于“朋友的通讯录表单”数据识别的数据。第3步骤将建立“朋友的通讯录表单”，我们将看到“(Param0)”、“(Param1)”
两个参数是如何从“朋友的通讯录表单”中发出并传递给本页面的。<br><br>

<img border="0" src="Images/Param06.gif"><br><br>

3、建立流程表单“朋友的通讯录表单”，里面包含朋友的姓名、性别、电话、邮箱这几个单元，其中姓名输入的单元识别为H0L1S0，在数据连结属性中增加一个数据连结，
这个连结的连结文字文“家庭情况”，连结的页面为“朋友的家庭情况页面”，传递的参数为“H0L1S0,DataID”。这里“H0L1S0,DataID”的含义是把H0L1S0的单元值（也就是
朋友的姓名）和数据的识别号（DataID表示数据的识别号）传递给所连结的页面（即“朋友的家庭情况页面”）。设置示例如图；<br><br>

<img border="0" src="Images/Param01.gif"><br><br>

<img border="0" src="Images/Param02.gif"><br><br>

<img border="0" src="Images/Param07.gif"><br><br>


4、我们再建立“朋友的通讯录页面”用来显示通讯录列表。设置示例如图：<br><br>

<img border="0" src="Images/Param08.gif"><br><br>

5、建立一个菜单，连结到“朋友的通讯录页面”。设置示例如图：<br><br>

<img border="0" src="Images/Param09.gif"><br><br>

朋友通讯录模块就完成了，你可以刷新一下系统，然后到该模块增加一条朋友的通讯录，在该朋友的通讯录资料窗口上可以看到“家庭情况”的按钮，在里面可以增加并查看该朋友的家庭情况记录。



</td>
</tr>
</table>
</center>












</td>
</tr>
</table>



<%
'显示web尾
response.write InterfaceOB.webend()
'--------------------------------------------------
Set BaseOB=Nothing
Set Conn=Nothing
Set InterfaceOB=Nothing
%>