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


  共有682912人关注过本帖树形打印复制链接

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

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
[原创]菜鸟也能用foxtable开发自己的应用程序,图文视频教程[连载结束,整理至1楼]  发帖心情 Post By:2013/1/21 11:04:00 [显示全部帖子]

您无权查看精华帖子

[本帖被加为精华]
 回到顶部
帅哥哟,离线,有人找我吗?
夕然
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:05:00 [显示全部帖子]

以下是开场的ppt,请大家下载

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:3.png
图片点击可在新窗口打开查看



以下是下载地址,请大家支持

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:菜鸟学习foxtable开发.part1.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:菜鸟学习foxtable开发.part2.rar


[此贴子已经被作者于2013-1-21 11:30:49编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:05:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:4.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:5.png
图片点击可在新窗口打开查看



[此贴子已经被作者于2013-1-21 11:09:48编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:05:00 [显示全部帖子]

以下是软件截图及下载

图片点击可在新窗口打开查看此主题相关图片如下:01.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:02.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:03.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2013-1-21 11:14:02编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:06:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:04.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:05.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:06.png
图片点击可在新窗口打开查看


软件下载地址


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员管理系统.part1.rar


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员管理系统.part2.rar

 
开发者密码已经不重要了,大家只需要将34阶段的主文件替换掉这个文件夹中的文件即可。
由于U盘和狗丢失,所有的文件都是重新做过的,所以建议大家下载第34阶段的文件覆盖

[此贴子已经被作者于2013-3-15 10:26:40编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:08:00 [显示全部帖子]

软件下载
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员管理系统.part3.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员管理系统.part4.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:会员管理系统.part5.rar


[此贴子已经被作者于2013-1-21 11:23:49编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:09:00 [显示全部帖子]

以下是教程的第一部分所需要的文件及讲解提纲

图片点击可在新窗口打开查看此主题相关图片如下:001.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:002.png
图片点击可在新窗口打开查看


图片点击可在新窗口打开查看此主题相关图片如下:003.png
图片点击可在新窗口打开查看



以下内容只有回复后才可以浏览



[此贴子已经被作者于2013-1-21 11:28:24编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:46:00 [显示全部帖子]

占位编辑

1.  创建我们的第一张表——会员表

参见会员系统第一阶段文件

表结构如下图


图片点击可在新窗口打开查看此主题相关图片如下:111.png
图片点击可在新窗口打开查看

同时设置字段的类型,其他的暂时不要考虑;

2.分析我们的第一张表,看看是否有什么事件会发生?

可以按照以下的思路去分析


图片点击可在新窗口打开查看此主题相关图片如下:222.png
图片点击可在新窗口打开查看

这样,一个一个部分的来做

1)增加的时候是否有什么动作发生?

当添加一个新会员的时候,各个字段的状态

 会员卡号,默认为会员编号; 

会员等级,默认为普通; 

卡片状态,默认为正常; 

过期时间,默认为今天+一年; 

卡片余额,默认为0; 

积分数量,默认为0; 

折扣字段怎么操作呢?

这些分析完毕之后,想想怎么达成你的目的呢?

既然是新增的时候发生的事情,那么就找到表事件

如图


图片点击可在新窗口打开查看此主题相关图片如下:333.png
图片点击可在新窗口打开查看


当我们点击 datarowadding的时候,就会看到帮助的动态提示

DataRowAdding

增加一行时执行,此时新增行(DataRow)已经创建,但并未真正增加到DataTable中,通常在此处对新增行进行默认值的设置。

e参数属性: 

DataTable:返回增加行的数据表。
DataRow:  返回新增加的行。

示例一

例如希望新增行的日期设为当前系统日期,姓名设为当前登录用户名,可以将DataRowAdding事件的代码设置为:

e.DataRow("日期") = Date.Today()
e.
DataRow("姓名"
) = User.Name

有了这个提示,以上的内容是不是就迎刃而解了呢?


是不是觉得其实弄这个也挺简单的嘛!


代码如下:


e.DataRow("会员等级") = "普通"

e.DataRow("会员卡状态")= "正常"

e.DataRow("登记时间")= Date.today

e.DataRow("过期日期") = e.DataRow("登记时间").AddDays(365)

e.DataRow("卡片余额") = 0

e.DataRow("会员积分") = 0


这里面仅有一个地方需要解释一下

e.DataRow("过期日期") = e.DataRow("登记时间").AddDays(365)

这里是什么意思呢?


过期日期是需要自动填充的,什么时候呢?

是登记日期后的365天,那么我们怎么获得这个addday呢?

e.DataRow("登记时间")= Date.today

后面点一个·,按tab立即就出来帮助了

这个是不是很方便













[此贴子已经被作者于2013-1-21 12:45:04编辑过]

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


加好友 发短信
等级:三尾狐 帖子:619 积分:3656 威望:0 精华:1 注册:2012/6/13 22:00:00
  发帖心情 Post By:2013/1/21 11:47:00 [显示全部帖子]

这个部分介绍一下修改的时候发生的事情,以及如何解决

1.进入单元格的时候希望通过窗口操作,其他操作一律取消;
2.双击单元格,打开一个窗口 默认情况下激活编辑功能,一旦编辑功能受限,那么激活doubleclick功能
3.希望此表作为副本表或者其他表的时候,怎么双击都可以弹出一个窗口; 


我们查看一下表的属性,观察事件

此主题相关图片如下:43.png
按此在新窗口浏览图片
这些事件,主要涉及的是编辑的控制,我们需要的是双击单元格的时候,取消其默认的编辑功能,同时打开某个窗口。方法如下:

取消默认的编辑:

当我们打开prepareedit的时候,自动弹出帮助文件

PrepareEdit

准备编辑单元格的时候执行。

e参数属性:

Table:       准备编辑的表
Row:         准备编辑的行
Col:         准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格   
Cancel:      逻辑型,默认为False,设为True取消编辑。

重要提示:千万不要在PrepareEdit事件显示Messagebox这样的对话框,因为每次进入单元格就会出现提示,这样会导致死循环的出现。


prepareedit中,写入: e.Cancel = True



     双击一个单元格,打开一个窗口:
     

DoubleClick事件代码设为:Forms("窗口1").Open()

[此贴子已经被作者于2013-1-21 23:18:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
夕然
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

 回到顶部
总数 74 1 2 3 4 5 6 7 8 下一页