<!---------------如下是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.
实现动态参数查询
最新推荐文章于 2023-12-20 21:55:24 发布