该示例程序演示如何在办公系统中使用Text Control。办公系统的主要功能就是根据数据库中的数据来创建所需的文档。例如,根据地址信息数据库和商品信息数据库来创建一个订单。
示例程序分两步完成,第一步只包含从地址信息数据库中取的数据,第二步中才添加其它的功能。
本章节相应的源代码可以在TX Text Control.NET的安装目录中找到:
Samples\WinForms\VB.NET\ Quote Generator
Samples\WinForms\CSharp\ Quote Generator
第一步:创建报价单
程序启动时,DataGrid中显示了所以的地址信息,示例中使用的数据来自于XML文件。
1 [C#]
2 DataSet dsAddress = new DataSet ("address");
3 dsAddress.ReadXml("..\\..\\address.xml");
4 gridAddress.DataSource = dsAddress;
5 gridAddress.DataMember = "address_record";
选择File/New Quote菜单,会根据当前DataGrid的选中行来创建一个文档,具体方法如下:
打开一个包含Text Control的窗体,同时加载所需的样式表,该样式表将作为最终文档的模板,其中包含所有文档中相同部分的文本,例如:为了答复贵方的询价并根据我们的一半业务处理流程,我们很高兴... ...;并且插入一些需要从数据库中取值的占位字符,例如:地址、日期等等;同时定义字体的大小、公司Logo、文档布局,所以,最终生成的文档都有相同的显示样式。
当加载该样式表、占位字符也用数据库中的数据替换之后,我们就得到了一个包含真是地址、名字、客户号和日期的报价单:
第二步:添加产品信息
在你阅读实际代码之前,你可能想运行程序了解它的具体功能,下面将简单介绍一下它的基本功能:
1. 启动程序后看到的是一个主窗体,窗体中显示了一些客户的地址信息,选择其中的一条信息
2. 点击File/New Quote菜单项,将会根据选择的客户信息来创建一个报价单
3. 点击Insert/Article 菜单项,选择一个商品,点击OK按钮,该产品的信息将会自动添加到报价单中
4. 输入需要产品数据,系统会自动总价格
5. 重复步骤三中的操作,添加更多的产品信息添加到报价单中。如果需要删除报价当中某一产品的信息,只需将光标停放在该行,然后点击Edit/Delete菜单项。
6. 最后,点击File/Print菜单项打印该的报价单。
为了添加产品的相关信息,我们需要添加一个名为Article的数据库,Article中的数据与Address中的数据一块显示在主窗体中。
产品信息列表最好以表格形式显示,Text Control提供了表格操作相关的功能,可以输入产品ID、描述和价格,同时还可以对表格中的数据进行计算操作。为此,我们添加一个表格,调整列宽、文字间距和表头信息。最终效果如下:
在Advanced菜单中添加一个插入表格的菜单项,通过该菜单项在文档中插入表格。同时可以通过Format/Table菜单项来调用Text Control的表格属性设置对话框,可以在对话框中调整表格线,背景色等属性。
接下来就可以将Article中的数据添加到表中。示例程序中的ArticleTable类演示了如何操纵表格、行、列和单元格等对象。当用户选中Article中的一个产品时,程序将进行以下操作:
1. 检查当前输入位置是否在Article表格的数据行,如果不在数据行,程序将第一个数据行作为将要插入数据的行。
2. 将选中的产品编号、描述和价格插入到第一步中得到的行中。
3. 在表格中触发Changed事件之后,程序会自动计算总金额。