分类
信息系统的快速开发之数据信息的提取‖
以及其他数据库更新的来源
整个DBForm的构架拆分为Fo
SqlBuilder类的作用以及申
,比如说Office 2003中InfoPat
rmInfo类和SqlBuilder两个基类
明
h,以及WebService等等),我将
,下面分别描述FormInfo类和
| FormInfo主要负责整个 | 数据库Field信息的抓取,主要 | 包括了以下两个方法: |
| /// 添加将要进行遍历的容器、 |
| public virtual void | AppendContainer(object ACont | ainer) |
| /// 添加单个控件 |
| public virtual void AppendContro | l(object AControl) |
| /// 清除先前已经配置好的Form信息 |
| public void ClearFormInfo() |
| 主要提供了两个虚方法,一个公开的 得很清楚了,整个FormInfo可以根据容器 我的DBForm架构中针对Winform和WebForm 分别继承自FormInfo,实现WinForm和WebF | ClearFormInfo方法,从方法名称上面的含义大家看 和单独的控件进行添加,在这里,我有必要说明一下 的扩展,因为下面的WinFormInfo类和WebFormInfo类 orm的信息提取 |
| 再WinFormInfo和WebFo AppendContainer实现 | rmInfo中,主要是一个针对Cont | ainer的循环,以及通过重写 |
| /// 添加将要进行遍历的容器 |
| public override void AppendConta | iner(object AContainer) |
| { |
| System.Web.UI.Contro | l Container = (System.Web.UI | .Control)AContainer; |
| foreach(Control ACon | trol in Container.Controls) |
| { |
| this.DoAppendControl(AControl); |
| } |
| } |
| 在下面的WebQueryForm 用这么多类的继承呢?我觉 | 和WebModifyForm中,就是实现 得这样的视线,主要有以下几点 | 具体的Form信息提取了。为什么要 好处 |
| 1.FormInfo类主要提供最公开的接 方法,用于将分析出的Form信息填充入Fo | 口,以及一些基础的方法(提供了一个protected的 rmInfoEntity中(窗体信息的描述类) |
| 2.WinFormInfo和WebFormInfo类主 WebControl,并且调用相应的控件信息解 | 要是把容器Object转换成为具体的WinContrl和 析器,实现数据的提取。 |
| 3.接下来的ModifyFor 根据具体的控件和具体的任 QueryFormInfo中需要加入 | mInfo和QueryFormInfo主要就提 务(Modify呢还是Query)分别 相关操作符号的信息(LIKE,= | 供了控件的信息解析器具体实现, 解析出控件的信息,比如说 等等) |
| 下面是具体控件的添加操作 |
| private void DoAppen | dControl(System.Web.UI.Contr | ol AControl) |
| { |
| if (AControl is SmisNet.WebContr | ol.SmisDropDown) |
| { |
| this.DoAppendDropDow | nList(AControl as SmisNet.We | bControl.SmisDropDown); |
| } |
| else if (AControl is | System.Web.UI.WebControls. | TextBox) |
| { |
| this.DoAppendTextBox(AControl as | SmisNet.WebControl.SmisTextBox); |
| } |
| else if (AControl is | System.Web.UI.WebControls.L | istBox) |
| { |
| this.DoAppendListBox((System.Web | .UI.WebControls.ListBox)AControl); |
| } |
| } |
| 其实这部分代码写得并 不少代码的臭味到。其实不 ,不过我想包括了大多数信 AControl is xxx,然后天 | 不算优美,包括DoAppendDropDo 应该这样的,只是因为我们现在 息系统开发的情况)如果您使用 加上自己的控件的处理方法,Fo | wnList等方法都写成了虚方法,有 的工作比较简单(只有这三种窗体 了其他的控件,可以考虑修改 rmInfo就支持了新的控件的解析。 |
| 这一系列的类的具体操 取出来的数据,转换成为Sq | 作,就实现了窗体数据的信息提 l | 取,接下来我们应该考虑怎么把提 |