Foxtable(狐表)用户栏目专家坐堂 → [原创]菜鸟也能用foxtable开发自己的应用程序,图文视频教程[连载结束,整理至1楼]


  共有613372人关注过本帖平板打印复制链接

主题:[原创]菜鸟也能用foxtable开发自己的应用程序,图文视频教程[连载结束,整理至1楼]

帅哥哟,离线,有人找我吗?
夕然
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 12:48:00 [只看该作者]

这个部分介绍保存的时候发生的变化以及需要的事件


首先,

我们点击表属性,看看涉及保存的事件有哪些?

其次,

看看哪些属性适用于我们的系统?


此主题相关图片如下:444.png
按此在新窗口浏览图片

我们看到这里只见到有一个属性,beforesavedatarow

BeforeSaveDataRow

在保存某一数据行之前执行,可以在此对数据进行最终的验证。

e参数属性:
 
DataTable:
返回正在保存的数据表。
DataRow:  
返回正在保存的数据行。
Cancel
   逻辑型,设为True,取消正在进行的保存。

而我们需要些什么呢?

 

需求:

<!--[if !supportLists]-->1.   <!--[endif]-->保存的时候,需要部分列字段不能为空,否则就不能保存;

<!--[if !supportLists]-->2.   <!--[endif]-->被编辑的行如果状态不是保存状态,那么不能离开下一行;

<!--[if !supportLists]-->3.   <!--[endif]-->如果离开,那么对该行数据的操作就会被撤销;

 

我们一个个的来解决!

第一个问题:部分列字段不能为空,否则就不能保存;

 

假设,会员姓名和手机号码列不能为空,那么我们可以这样做

If e.DataRow("会员姓名") = "" Then  '假设-正在保存的数据行-的列为空值

    MessageBox.Show("会员姓名必须输入")  '那么弹出一个消息

Else

    e.Cancel = True   '逻辑型,设为True,取消正在进行的保存.

End If

 

目前阶段我们还不会用更复杂的语句先用这些吧

接下来,我们设置手机号码不能为空

If e.DataRow("手机号码") = "" Then  '假设-正在保存的数据行-的列为空值

    MessageBox.Show("手机号码必须输入")  '那么弹出一个消息

Else

    e.Cancel = True   '逻辑型,设为True,取消正在进行的保存.

End If

 

这样做了之后,是不是已经完成了这样的目标呢?

 

第二个问题:被编辑的行如果状态不是保存状态,那么不能离开下一行;

 

 

这个时候,我们关注的是:数据行的状态

在帮助中搜索关键词“行的状态”

我们来模拟一下,如果该行状态没有发生变化,那么就新增一行。

If  e.DataRow.RowState =DataRowState.Unchanged Then  '如果该行的状态为  unchanged

    Return                                '终止执行下面的程序

Else

    Dim Result As DialogResult   '否则,定义一个对话框

    Result = MessageBox.Show("你是否需要增加一行?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

    If Result = DialogResult.no Then

        Return

    Else

        e.DataTable.AddNew()

    End If

End If

 

 

第三个问题:如果离开,那么对该行数据的操作就会被撤销;

 

上一节中,我们接触到对话框,当点击确定的时候就增加,否则就撤销

帮助文件中搜索关键词“撤销”

Reject

撤销自打开文件或最近一次保存以来,对该行做出的修改。
如果是新增加的行,执行此方法,会删除行。

这样的描述很清楚。

我们只需要加一条

e.datarow.reject()

即可完成任务!

 

 

关于保存相关的事件,是不是很简单?

你也可以操作一下,遇到不熟悉的,就翻翻帮助


此主题相关图片如下:image003.gif
按此在新窗口浏览图片


知识链接:

在帮助文件中搜索“保存”,你得到哪些结果呢?是不是有您需要的?

更为复杂的不能为空的操作,先给出思路,先做一下,不懂再发问吧

<!--[if !supportLists]-->1)          <!--[endif]-->定义多个不能为空的字段集

<!--[if !supportLists]-->2)          <!--[endif]-->定义一个数据行

<!--[if !supportLists]-->3)          <!--[endif]-->在保存的时候遍历这个数据行,如果某列为空,就提示


[此贴子已经被作者于2013-1-21 21:56:54编辑过]

 回到顶部
总数 1776 1 2 3 4 5 6 7 8 9 10 下一页 ..178