设为首页 加入收藏

TOP

机房收费系统之组合查询――窗体的继承(一)
2015-11-21 01:58:26 来源: 作者: 【 】 浏览:0
Tags:机房 收费系统 组合 查询 窗体 继承

还记得第一次做机房的时候做组合查询功能吗?那时候的我从刚开始的一个一个判断,到后面的先是让关系框和后面的条件框不能用,根据条件框的填充情况来决定关系框是否能用。这样一步步的走过来的……

到了第二次的机房重构,我发现之前好多的代码都是重复的,做了那么多的无用功!作为一个优秀的程序员,我们要尽可能的减少自己的代码量,让我们的代码能够复用。这里我们要明白复用可不是复制哦!

在机房中,我们的基本学生信息维护、查看上机状态、上机信息统计和操作员工作记录四个窗体除了字段名不一样以外,几乎一样的,所以我们在做组合查询功能的时候用到了窗体的继承。

窗体的继承就是在父窗体中写好公共的部分,不一致的地方可以写一个虚方法,然后让子类们进行重写这个虚方法。这样,我们就只需要一个U层、一个B层、一个接口和一个抽象工厂,一个D层就可以实现四个窗体各自的功能了。

U层主要用来判断一下各个输入框和选择框是否为空,给实体参数和B层方法传值,定义转换数据库字段的虚方法和获取表名的虚方法。

?

/************************************************* 
'作者:邢玉
'小组:  
'说明:组合查询模板
'创建日期:2015.8.9
'版本号:
'**********************************************/
Imports System.Windows.Forms
Public Class frmGroupQuery
    '定义一个保护类型的变量,子窗体也可以访问,以下是另一种写法
    'Protected groupcheck As JFEntity.GroupEntity = New JFEntity.GroupEntity()
    Protected groupcheck As New JFEntity.GroupEntity


    Private Sub frmGroupQuery_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        '操作符部分,因为操作符不变,所以在父窗体中加载
        cmbOperator1.Items.Add(">")
        cmbOperator1.Items.Add("<")
        cmbOperator1.Items.Add("=")
        cmbOperator1.Items.Add("<>")

        cmbOperator2.Items.Add(">")
        cmbOperator2.Items.Add("<")
        cmbOperator2.Items.Add("=")
        cmbOperator2.Items.Add("<>")

        cmbOperator3.Items.Add(">")
        cmbOperator3.Items.Add("<")
        cmbOperator3.Items.Add("=")
        cmbOperator3.Items.Add("<>")

        '关系

        cmbRelations1.Items.Add("与")
        cmbRelations1.Items.Add("或")

        cmbRelations2.Items.Add("与")
        cmbRelations2.Items.Add("或")
  '当选中datagridview控件就选中行
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        Dim i As Integer
        For i = 0 To DataGridView1.Columns.Count - 1
            DataGridView1.Columns(i).Width = DataGridViewAutoSizeColumnMode.AllCells

        Next
    End Sub
    '''  ''' 清空查询条件和结果 ''' 
    '''
    '''
    ''' 
   
    Private Sub btnclear_Click(sender As Object, e As EventArgs) Handles btnclear.Click

        cmbFiled1.Text = ""
        cmbFiled2.Text = ""
        cmbFiled3.Text = ""

        cmbOperator1.Text = ""
        cmbOperator2.Text = ""
        cmbOperator3.Text = ""

        txtContent1.Text = ""
        txtContent2.Text = ""
        txtContent3.Text = ""

        cmbRelations1.Text = ""
        cmbRelations2.Text = ""

        DataGridView1.DataSource = ""
    End Sub
    '''  ''' 退出 ''' 
    '''
    '''
    ''' 
   
    Private Sub btncancel_Click(sender As Object, e As EventArgs) Handles btncancel.Click
        Me.Dispose()
    End Sub

    Private Sub btninquire_Click(sender As Object, e As EventArgs) Handles btninquire.Click
        '判断组合框不为空
        If cmbRelations1.Text = "" Then '如果第一个组合关系框为空
            If cmbFiled1.Text = "" Or cmbOperator1.Text = "" Or txtContent1.Text = "" Then
                MsgBox("第一行查询条件不能为空!", , "提示")
                Exit Sub

            End If
        End If

        If cmbRelations1.Text <> "" Then '如果选择了第一个组合关系
            If cmbFiled2.Text = "" Or cmbOperator2.Text = "" Or txtContent2.Text = "" Then
                MsgBox("第二行查询条件不能为空!", , "提示")
                Exit Sub

            End If

        Else
            If cmbRelations2.Text <> "" Then '选择了第二个组合关系
                If cmbFiled1.Text = "" Or cmbOperator1.Text = "" Or txtContent1.Text = "" Or
                    cmbFiled2.Text = "" Or cmbFiled2.Text = "" Or txtContent2.Text = "" Or
                    cmbFiled3.Text = "" Or cmbFiled3.Text = "" Or txtContent3.Text = "" Then
                    MsgBox("第三行查询条件不能为空", , "提示")
                    Exit Sub
                End If
            End If
        End If
 '给实体赋值
        groupcheck.GetTable = GetTable()

        groupcheck.cmbField1 = GetDBName(cmbFiled1.Text.Trim())
        groupcheck.cmbField2 = GetDBName(cmbFiled2.Text.Trim())
        groupcheck.cmbField3 = GetDBName(cmbFiled3.Text.Trim())

        groupcheck.cmbOperator1 = cmbOperator1.Text.Trim()
        groupcheck.cmbOperator2 = cmbOperator2.Text.Trim()
        groupcheck.cmbOper
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇SQL必知必会笔记第十九章使用存储.. 下一篇csharp: MongoDB

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: