第五章[完善各表的事件以及设置简单的查询表]其实系统做到这里,基本的框架是出来了,但是还有很多问题,不知道大家有没有发现。
我们一张张的表进行改进和完善。
第一张表:会员表
我希望完成更高级的功能有:
1,希望输入会员的时候,一旦选择会员等级,就立即自动调用折扣
2,对会员信息进行修改的时候,只要等级发生变化,那么折扣也应该发生变化
3,原来基于会员表的信息,不再进行计算,即新的折扣只对新的消费信息起作用;老的还是保持不变;
4,手机号码列应该为11位,按照格式输入,如果不是固定格式,那么就不让他输入
5,推荐人字段,应该为公司员工,系统默认为公司客户,按照需要进行选择
各列的功能,我能想到的就这些了额,不知道您还有没有其他的想法呢?
我们先来解决这些问题。
问题1,2,根据输入的等级,引用折扣,修改的时候,自动引用折扣
这个问题涉及两个知识点,这个折扣在哪里引用?(重新创建一张等级表);从这个等级表中引用数据(跨表引用);
创建新的等级表,这个就不再讲了。主要说一下,跨表引用的问题。
跨表引用,有两个基本的实现方式,第一,设置关联,直接用parent(表名)引用关联的数据,第二,不用设置关联,直接用find查找对应的条件,然后显示数据;
代码如下
If e.DataCol.Name = "会员等级"
Then '如果更改的是会员等级列
If e.DataRow.IsNull("会员等级")
Then '会员等级是否为空
e.DataRow("折扣")
= Nothing '如果为空,则折扣清零
Else
Dim dr As DataRow
dr = DataTables("等级设置").Find("会员等级 = '"
& e.DataRow("会员等级")
& "'")
If
dr IsNot Nothing Then
e.DataRow("折扣") = dr("折扣")
End If
End If
End If
这个代码接近于自然语言了,很容易理解。