机房收费系统之基本信息维护优化篇(组合控件基础上卡号、姓名不同操作符的变更)

 

      小伙伴们在做机房收费系统组合查询时,字段名控件和操作符控件都会采用组合控件的方法吧,这样可以减少很多代码量、减少代码的冗余。但我们会遇到一个问题,那就是如何通过组合控件让字段名内容与操作符内容相对应呢?所谓相对应是指:当我们字段名为卡号时操作符内显示的可选项为四个符号(大于,等于,小于,不等于),而当字段名为姓名或性别时操作符就要只显示两个符号(等于,不等于),我们设计的软件在逻辑上要与实际生活相符嘛,比如通过姓名来查询的话,那我们的条件就是要么叫路飞,要么就不叫路飞,没有说大于路飞或小于路飞这一说的哈,所以在此就显示两个操作符),我刚开始的想法是利用循环的方式来进行判断,代码如下:

Private Sub combField_Click(Index As Integer)

    For i = 0 To 2
        If combField(i).Text = "姓名" Or combField(i).Text = "性别" Then    '如果combo控件内容为姓名、性别则调整运算符
            combOperator(i).Clear
            combOperator(i).AddItem "="
            combOperator(i).AddItem "<>"
        Else
            combOperator(i).Clear
            combOperator(i).AddItem "="
            combOperator(i).AddItem ">"
            combOperator(i).AddItem "<"
            combOperator(i).AddItem "<>"
        End If
    Next i

End Sub

      但这样会出现一个问题,那就是当选择第二个字段名时第一条查询内容中的操作符会被清除,这样就会出现查询错误,那要如何解决这个问题呢,方法很简单,仅需两步,可行的代码如下:


Private Sub combField_Click(Index As Integer)

        Dim i As Integer
        i = Index
        If combField(i).Text = "姓名" Or combField(i).Text = "性别" Then    '如果combo控件内容为姓名、性别则调整运算符
            combOperator(i).Clear
            combOperator(i).AddItem "="
            combOperator(i).AddItem "<>"
        Else
            combOperator(i).Clear
            combOperator(i).AddItem "="
            combOperator(i).AddItem ">"
            combOperator(i).AddItem "<"
            combOperator(i).AddItem "<>"
        End If

End Sub

      可执行的代码中去掉了for循环结构,直接采用变量来判断,变量的值来自于index的值。以上小小总结希望可以帮助到遇到此问题的小伙伴们,下一站走起^_^

 

 

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Elsa~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值