磁带条码管理软件技术工作报告
};
//??
Label3.Text = \已导入:\ + this.FileUpload1.FileName + \,共计:\ + tb.Rows.Count.ToString() + \条记录\;
查询磁带信息时,我们根据页面提交的查询条件动态生成SQL查询命令,支持多条件联合查询,文本字段支持模糊查询。磁带状态查询与磁带管理页面均可实施查询,而后者提供的查询条件更加全面。
4.1.2 磁带调拨的记录和查询
如前所述,磁带入库、送带和退带均产生一条磁带调拨记录放入Tape_Transfer数据表中。而在执行磁带调拨操作时,程序获取当前访问的IP地址,并在ClientAddress数据表(包含客户端IP地址及对应调拨位置)内查找相应条目,查到以后再与下拉列表中当前用户有权限调拨的的地点对照,若找到匹配项目则直接指定目的,部分实现代码如下:
HttpRequest Request = HttpContext.Current.Request; //获取客户端请求信息 string loc = \;
DataSet ds = CmdExecute.ExecuteDataSet(\* from ClientAddress where IPAddress='\ + Request.UserHostAddress + \, \); //在数据库中查找与当前请求的IP地址相同的记录
if (ds.Tables[0].Rows.Count == 1) //找到有效记录 ds.Dispose(); //??
Regex r = new Regex(\ + sLoca + \); //sLoca为找到的地点信息 if (r.Match(ManageTapeLocation).Success) {//匹配成功,表明有调拨权限 DropDownList1.Text = sLoca;
DropDownList1.Enabled = false;//设置下拉列表
}
loc = ds.Tables[0].Rows[0][\].ToString().Trim();
若查不到与当前请求IP相符的记录,或调拨权限不符,也可以手动选择调拨目的。
退带时若在服务器端核对发现磁带处于保留期,需提示用户确认后才将其加入退带列表,这表明中操作可能需要触发一次额外的用户交互,用户确认后再返
~ 18 ~
磁带条码管理软件技术工作报告
回服务器端执行。这里我们使用了一个隐藏的按钮控件HiddenButton来简化执行。触发用户确认的客户端脚本为:
function show_confirm() {
if (!confirm('该磁带尚在保留期,是否确认调出?')) {
document.getElementById(\).click(); } }
而触发HiddenButton的Click事件后,返回服务器端执行的部分代码如下:
DataTable tb = (DataTable)ViewState[\]; if (tb != null) {
tb.Rows[tb.Rows.Count-1].Delete(); tb.AcceptChanges(); ViewState[\] = tb; Bind(); tb.Dispose(); }
ScriptManager.RegisterClientScriptBlock(UpdatePanel1,
typeof(UpdatePanel), \, \, true);
查询调拨记录时,如图九所示,可以按照调拨的源位置、目的位置及节目名关键字查找,以便跟踪追查调拨状况。
4.1.3 非调拨操作的记录和管理
对于除调拨以外的磁带相关操作,如审核、修改、标记问题带、删除等,我们将其记录进入TapeOPLog数据表。
可以在操作日志查询页面对此类记录进行查询。
在日志清理页面,如图十七所示,可以通过选择操作数据类型为“非调拨操作”对过期记录进行清理,清理前会将之前的查询条件放入网页ViewState暂存,用于对比清理前后的记录状态。查询按钮调用的函数代码如下:
protected void Btn_Query_Click(object sender, EventArgs e)
{//点击“查询”按钮
ViewState[\] = DpType.SelectedIndex; string chn = DropDownList1.Text.Trim(); string reserved = txtAirDate.Text.Trim();
~ 19 ~
磁带条码管理软件技术工作报告
Lbl1.Text = DpType.Text + \列表\; ViewState[\ string sqlstr = \ if (chn != \全部频道\)
sqlstr = \ + chn + \; if (!string.IsNullOrEmpty(reserved)) {
if (string.IsNullOrEmpty(sqlstr))
sqlstr = \ + reserved + \; else
sqlstr += \ + reserved + \; };
ViewState[\] = datyp[0][DpType.SelectedIndex] + sqlstr; Bind(); }
4.1.4 系统管理
系统管理模块提供了较为完善的查询、编辑功、删除磁带信息的功能,对用户与频道信息的增删和编辑功能,以及灵活全面的用户角色管理功能。
其中,频道管理页面使用了.NET 3.5版新引入的ListView控件,与DataPager控件配合实现了如图十五所示的紧凑、直观的分页编辑界面,简化了开发,其中部分网页代码如下:
DataSourceID=\ InsertItemPosition=\ OnItemDataBound = \
~ 20 ~
磁带条码管理软件技术工作报告
ConnectionString=\<%$ ConnectionStrings:TapeManageConnectionString %>\
DeleteCommand=\
InsertCommand=\(@strChnName, @strChnID)\ >
~ 21 ~
磁带条码管理软件技术工作报告
通过AlternatingItemTemplate、LayoutTemplate、InsertItemTemplate、SelectedItemTemplate等标签为列表提供了完整的
4.2 关键技术介绍 4.2.1 AJAX
AJAX是“Asynchronous JavaScript XML”(异步的JavaScript与XML技术)的缩写,由Jesse James Garrett所提出,它是一种广泛应用在浏览器的网页开发技术。类似于DHTML或LAMP,AJAX不是指一种单一的技术,而是多项技术的综合应用:
? 运用XHTML+CSS来表达信息;
? 运用JavaScript操作DOM(Document Object Model)运行动态效果; ? 运用XML和XSLT进行数据交换及操作;
? 运用XMLHttpRequest为Agent与网页服务器进行异步数据交换; ? 运用JavaScript技术实现。
AJAX的应用使用支持以上技术的Web浏览器作为运行平台,这些浏览器目前包括:Internet Explorer、Mozilla、Firefox、Opera、Konqueror及Mac OS的Safari等。
与传统的Web应用比较如下:
传统的Web应用 1、 允许用户填写表单(FORM),当提交表单时就向Web服务器发送一个请求,服务器接收并处理传来的表单,然后送回一个新的网页,但这个做法浪费了许多带宽,因AJAX应用 1、 AJAX应用可以仅向服务器发送并取回必需的数据,它使用SOAP或其他一些基于XML的页面服务接口,并在客户端采用JavaScript处理来自服务器的回应,因~ 22 ~