<!---------------如下是HTML语句--------------->
html>
<body>
<h4><b><i>查询某地的客户信息</i></b></h4>
<form action="/scripts/PQuery_Client_Area.DLL/runquery" method="get">
<!---------------如下用于定义国内客户的地--------------->
<p><select name="mc">
<option value="1">北京市</option>
<option value="2">上海市</option>
<option value="3">天津市</option>
<option value="4">重庆市</option>
<option value="5">内蒙古自治区</option>
<option value="6">山西省</option>
<option value="7">河北省</option>
<option value="8">辽宁省</option>
<option value="9">吉林省</option>
<option value="10">黑龙江省</option>
<option value="11">江苏省</option>
<option value="12">安徽省</option>
<option value="13">山东省</option>
<option value="14">浙江省</option>
<option value="15">江西省</option>
<option value="16">福建省</option>
<option value="17">湖南省</option>
<option value="18">湖北省</option>
<option value="19">河南省</option>
<option value="20">广东省</option>
<option value="21">海南省</option>
<option value="22">广西壮族自治区</option>
<option value="23">贵州省</option>
<option value="24">四川省</option>
<option value="25">云南省</option>
<option value="26">陕西省</option>
<option value="27">甘肃省</option>
<option value="28">宁夏回族自治区</option>
<option value="29">青海省</option>
<option value="30">新疆维吾尔自治区</option>
<option value="31">西藏自治区</option>
</select>
<input type="submit" value="确认"> </p>
</FORM>
</body>
</html>
unit Uquery_Client_Area;
interface
uses
//说明使用系统的单元文件
Windows, Messages, SysUtils, Classes, HTTPApp, Db, DBTables, DBWeb,
HTTPProd;
type
//如下是Web模块上所包含组件的相关描述
TWebModule1 = class(TWebModule)
KehuQry: TQuery;
//查询客户信息的查询组件
FirstPageProducer: TPageProducer;
//形成网页的页面生成组件
//如下是在网页显示的客户信息内容的字段和数据类型
KehuQryBDEDesigner: TSmallintField;
KehuQryBDEDesigner2: TStringField;
KehuQryBDEDesigner3: TStringField;
KehuQryBDEDesigner4: TStringField;
KehuQryBDEDesigner5: TStringField;
KehuQryBDEDesigner6: TStringField;
KehuQryBDEDesigner7: TStringField;
procedure WebModule1RootAction(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
//定义缺省动作项的事件处理过程
procedure WebModule1QueryKehuAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
//定义查询动作项的事件处理过程
private
{ Private declarations }
public
{ Public declarations }
end;
var
WebModule1: TWebModule1;
implementation
{$R *.DFM}
procedure TWebModule1.WebModule1QueryKehuAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
//查询动作项的事件处理过程,它根据用户选择的地区作为查询参数,然后形成响应用户的Web页面。
var
i,j,k:integer;
string1,str1,str3:string;
begin
KehuQry.close;
KehuQry.sql.clear;
//由于采用动态查询,其SQL语句必须动态产生,所以先清楚原有的SQL语句
string1:=Request.Query;
j:=length(Request.Query);
//获取Web客户请求参数长度
i:=pos('=',Request.Query);
//确定“=”在请求参数中的位置
str1:=copy(Request.Query,i+1,j-i);
//获取“=”号右边的内容,即地区编号
k:=StrToInt(str1);
//将Web客户选择省、市、自治区的序号转换为数值类型,并作为查询的参数
//如下各省市自治区的排序不一定准确,且不包括特别行政区,只是个示例
case k of
//根据用户选择的序号,产生相应的省市、自治区名称,作为动态查询参数的值
1:str3:='北京市';
2:str3:='上海市';
3:str3:='天津市';
4:str3:='重庆市';
5:str3:='内蒙古自治区';
6:str3:='山西省';
7:str3:='河北省';
8:str3:='辽宁省';
9:str3:='吉林省';
10:str3:='黑龙江省';
11:str3:='江苏省';
12:str3:='安徽省';
13:str3:='山东省';
14:str3:='浙江省';
15:str3:='江西省';
16:str3:='福建省';
17:str3:='湖南省';
18:str3:='湖北省';
19:str3:='河南省';
20:str3:='广东省';
21:str3:='海南省';
22:str3:='广西壮族自治区';
23:str3:='贵州省';
24:str3:='四川省';
25:str3:='云南省';
26:str3:='陕西省';
27:str3:='甘肃省';
28:str3:='宁夏回族自治区';
29:str3:='青海省';
30:str3:='新疆维吾尔自治区';
31:str3:='西藏自治区';
end;
KehuQry.sql.add('select 客户号,工作省市,公司名称,联系人,职务,移动电话,通信地址 from kehu where 工作省市=:mc');
{重新生成查询组件的SQL语句,其中Request.Query是用户在主页中输入的客户所在的地区,这样就可以根据用户的选择,实现不同条件的数据库查询}
KehuQry.Params[0].Asstring:=str3;
{将用户确定的省、市、自治区作为条件,查出其相关地区的客户,即为查询参数赋值。}
Response.content:='<HTML><HEAD><TITLE>客户查询</TITLE></HEAD><BODY>'#13+
'<H3 ALIGN="CENTER"><FONT COLOR="#97694F">查询所在区域的客户名单
</FONT></H3>'#13+'<table border>'#13;
//产生Web表格和标题
Response.content:=Response.content+'<TR BgColor="White"><TH>客户号
</TH><TH>地 域</TH><TH>公司名称</TH><TH>联系人</TH><TH>职务</TH>
<TH>移动电话</TH><TH>通信地址</TH></TR>';
//指定Web表格每列的标题
KehuQry.Open;
//查询满足用户指定地区的客户
KehuQry.First;
while not KehuQry.EOF do
//本循环填写Web表格的内容,每次填写一行,直至所有记录填写完成
begin
Response.content:=Response.content+Format('<tr><td>%d</td><td>%s</td>
<td>%s</td><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>'#13,
[KehuQryBDEDesigner.AsInteger,KehuQryBDEDesigner2.AsString,
KehuQryBDEDesigner3.AsString,KehuQryBDEDesigner4.AsString,
KehuQryBDEDesigner5.AsString,KehuQryBDEDesigner6.AsString,
KehuQryBDEDesigner7.AsString]);
//填写Web表格每一列的内容,一次填写一行
KehuQry.Next;
//获取下一个记录
end;
Response.content:=Response.content+'</table></BODY></HTML>'#13;
//形成作为HTTP响应消息的内容,并赋给TWebResponse对象的Content属性
end;
procedure TWebModule1.WebModule1RootAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
//缺省动作项的事件处理过程
begin
Response.content:=FirstPageProducer.content;
//第一个动作项用于产生Web客户主页,供用户选择地区
//在用户选择后,指向第二个动作项,完成客户信息的查询
end;
end.