摘 要
在系统设计上,综合各种翻译类型网站优缺点,设计出具有任何使用者都可添加术语信息的且只有管理员能够实现术语修改及删除等独特方式的术语查看管理系统。此方式能够使术语量快速增大,并且便于使用者及管理员操作,满足相互之间不断增长的需求,即使用者增加术语量,管理员管理以实现数据信息的合理管理及利用。在查看方式上,使用术语的第一个汉字的中文拼音首字母为索引,并分页显示,用户能够非常方便地找到所需术语名及对应的英、日文翻译。此外,系统还提供术语搜索,更加方便用户查询。管理方式和按首字母分页显示及搜索的查看方式为系统第二个特点。其次,应用Cascading style Sheets(简称CSS,层叠样式表)外部链接方式,界面(UI)较为精致。系统应用CSS自定义样式并在首页应用透明FLASH,具有操作简便、界面友好等特性。
关键词:计算机应用技术;ASP.net 2005;证券术语;解释及翻译;术语管理
3.1 系统功能结构设计
在系统需求分析的基础上,结合系统设计的目标,可将系统划分为4个功能模块:
- 首页:术语添加
- 术语一览:默认术语按ID顺序分页显示;页面上方点击术语中文拼音首字母可按首字母检索分页查看;页面中间提供输入术语名搜索方式查看术语。
- 术语管理:主要包括管理员登陆模块,对术语进行修改和删除操作。
- 其它模块:提供相关业务的服务,如资料下载等。
3.2 开发设计思想
系统开发设计思想有以下3点:
- 系统采用B/S结构,选用ASP.NET2005和SQL2000作为开发工具及开发环境进行系统的设计与开发。系统提供术语应准确全面,符合证券翻译及解释系统用户需求,并达到操作过程中的直观、方便、实用等要求。
- 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于日后的补充和维护。
- 系统应具备数据库维护功能,及时根据用户需求进行术语的添加、删除、修改等操作。
5.1 公用模块及代码
- 定义数据库公用操作方法类DbHelperSQL,用以连接数据库,执行sql语句等数据库操作。
- 定义公共类Glossary,完成添加,修改,删除等操作。
- 定义公共验证类PageValidate。
5.2 首页界面及功能代码
首页为系统门户,是使用者对系统的第一印象,故需精心设计。根据对系统用户群的分析,设计出如下所示的首页界面如下图5所示:
图5 首页
首页中用户有点击添加术语信息的功能,中间运用透明FLASH代码将所制作的图片放为背景图,在代码中加入如下代码,将FLASH变为透明。
<param name="wmode" value="transparent" />
添加功能模块具有添加术语五项信息功能,在Glossary.cs中编写如下代码实现添加功能:
/// 增加一条数据
public int Add()
{
StringBuilder strSql=new StringBuilder();
strSql.Append("insert into Glossary(");
strSql.Append("cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)");
strSql.Append(" values (");
strSql.Append("@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)");
SqlParameter[] parameters = {
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = cGlossaryName;
parameters[1].Value = cChineseSpell;
parameters[2].Value = cGlossaryEnglish;
parameters[3].Value = cGlossaryJapan;
parameters[4].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
return ID;
}
Append方法将sql语句连接起来,整个的语句为
Insert into Glossary
(cGlossaryName,cChineseSpell,cGlossaryEnglish,cGlossaryJapan,cGlossaryInterpret)
Values (@cGlossaryName,@cChineseSpell,@cGlossaryEnglish,@cGlossaryJapan,@cGlossaryInterpret)
定义一个new SqlParameter,执行数据库公用方法DbHelperSQL.cs中定义的ExecuteSql完成与数据库连接,并执行SqlCommand语句,返回ID。
在ADD.cs中,代码如下
Glossary g = new Glossary();
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Add();
Response.Write("<script>alert('添加成功');</script>");
将所要添加的术语信息通过PageValidate.Encode方法增加到数据库中,完成添加功能。
5.3 术语一览界面和主要代码
术语一览界面如下图6所示:
图6 术语一览
- 系统默认为按术语ID分页显示。
- 利用cChineseSpell字段,中文拼音首字母为S的演示结果如下图7所示:
图7 以S为索引分页显示
点击索引S,画面上出现以S为拼音开头的所有术语,分页显示,很容易找到所需术语名。
按术语中文拼音首字母检索浏览方式代码如下:
页面ViewAll.aspx中代码如下:
<td><a href="ViewAll.aspx?spell=A" class="fontview">A</a></td>
后台ViewAll.aspx.cs中代码:
if (Request["spell"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cChineseSpell like '" + Request["spell"].ToString() + "%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
this.gvGlossary.DataSource = g.GetList(" 1=1 order by ID asc");
this.gvGlossary.DataBind();
利用Request["spell"]与cChineseSpell比较,以ID的升序排列来检索分页显示。
- 搜索功能的实现代码如下:
if (Request["search"] != null)
{
this.gvGlossary.DataSource = g.GetList(" cGlossaryName like '"+Request["search"].ToString()+"%' order by ID asc");
this.gvGlossary.DataBind();
return;
}
以所输入的术语名与数据库中cGlossaryName比较,得出搜索结果。
5.4 管理模块
管理模块中首先为管理员登陆、管理员用户验证。输入用户名或密码为空时再label中显示红色提示语:“用户名和密码不能为空!”;当输入有误时在label中显示提示语“您输入的用户名或密码有误!请重新输入。”;清除按钮将账号和密码都清空,如下图8,图9所示:
图8 用户验证(1)
图9 用户验证(2)
当确定为系统管理员后页面将登录到术语管理模块,主要有管理员查看、修改和删除操作。界面如下图10所示:
图10 管理模块
查看操作与术语浏览操作相似,不再赘述。
修改页面如下图11所示:
图11 修改
点击修改成功时弹出“修改成功”提示语。
在Glossary.cs中代码如下:
public void Update(int id)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("update Glossary set ");
strSql.Append("cGlossaryName=@cGlossaryName,");
strSql.Append("cChineseSpell=@cChineseSpell,");
strSql.Append("cGlossaryEnglish=@cGlossaryEnglish,");
strSql.Append("cGlossaryJapan=@cGlossaryJapan,");
strSql.Append("cGlossaryInterpret=@cGlossaryInterpret");
strSql.Append(" where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID",SqlDbType.Int),
new SqlParameter("@cGlossaryName", SqlDbType.NVarChar),
new SqlParameter("@cChineseSpell", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryEnglish", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryJapan", SqlDbType.NVarChar),
new SqlParameter("@cGlossaryInterpret", SqlDbType.NVarChar)};
parameters[0].Value = id;
parameters[1].Value = cGlossaryName;
parameters[2].Value = cChineseSpell;
parameters[3].Value = cGlossaryEnglish;
parameters[4].Value = cGlossaryJapan;
parameters[5].Value = cGlossaryInterpret;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在修改页面Update.aspx.cs中代码如下
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
this.txtName.Text = PageValidate.Decode(g.cGlossaryName);
this.txtChineseSpell.Text = PageValidate.Decode(g.cChineseSpell);
this.txtEnglish.Text = PageValidate.Decode(g.cGlossaryEnglish);
this.txtInterPret.Text = PageValidate.Decode(g.cGlossaryInterpret);
this.txtJapanese.Text = PageValidate.Decode(g.cGlossaryJapan);
}
}
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (Request["id"] != null)
{
Glossary g = new Glossary();
g.GetModel(int.Parse(Request["id"]));
g.cGlossaryName = PageValidate.Encode(this.txtName.Text);
g.cChineseSpell = PageValidate.Encode(this.txtChineseSpell.Text);
g.cGlossaryEnglish = PageValidate.Encode(this.txtEnglish.Text);
g.cGlossaryJapan = PageValidate.Encode(this.txtJapanese.Text);
g.cGlossaryInterpret = PageValidate.Encode(this.txtInterPret.Text);
g.Update(int.Parse(Request["id"]));
Response.Write("<script>alert('修改成功');</script>");
}
}
在PageLoad时用PageValidate.Decode方法获得数据库中原有数据项,然后修改后用PageValidate.Encode方法将修改后的数据项传到数据库中。此处注意必须将Update方法带上参数int id,然后才能修改数据库中数据项。
删除操作,在Glossary.cs中定义如下代码:
public void Delete(int ID)
{
StringBuilder strSql=new StringBuilder();
strSql.Append("delete from Glossary ");
strSql.Append("where ID=@ID" );
SqlParameter[] parameters = {
new SqlParameter("@ID", SqlDbType.Int,4) };
parameters[0].Value = ID;
DbHelperSQL.ExecuteSql(strSql.ToString(),parameters);
}
在Manage.aspx.cs中编写删除代码如下:
Glossary g = new Glossary();
g.Delete(int.Parse(this.gvGlossary.DataKeys[e.RowIndex].Value.ToString()));
Response.Write("<script>alert('删除成功');</script>");
bindALL();
点击删除时出现确认是否要删除,删除成功后显示删除成功提示语。