Foxtable(狐表)用户栏目专家坐堂 → 代码问题


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

主题:代码问题

美女呀,离线,留言给我吧!
qinlao666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
代码问题  发帖心情 Post By:2015/9/22 10:05:00 [显示全部帖子]

老师请问上面的代码中  Dim t As Table = Args(0)这句是什么意思?

有如何定义Args呢?

请老师指导,谢谢!

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 10:06:00 [显示全部帖子]

 

一般系统开发过程中,用户都有刷新数据表功能,但是使用系统自带的刷新功能(load),会使表格回到第一行,这样严重影响了客户使用。

虽然可以使用dataRow.load,但不能刷新整张表。

 

另有很多狐友会使用窗口表,并且使用fill进行加载,之后即使刷新表也会使用fill重新加载。其实这不需要,应该使用Load进行加载。

不过因为load的特性,如果表本身没有设置加载条件loadFilter,load后会导致把后台所有数据加载,可能会导致一些权限问题。

 

下面分享一个简单的刷新功能,代码非常简单,有需要的朋友拿去,有不足的地方请不吝斧正

(一定要先设置该表的LoadFilter,因为本人使用的是窗口表,第一次加载时已经设置完成)

 

Dim t As Table = Args(0)
Dim flt As String = t.Filter       '获取过滤条件
Dim Int As Integer = t.Position    '获取行位置
Dim p As point = t.ScrollPosition  '获取行在屏幕中位置
t.StopRedraw
t.DataTable.Load(False)
t.Filter = flt
t.Position = Int
t.ScrollPosition = p
t.ResumeRedraw

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 10:27:00 [显示全部帖子]

大红袍老师,根据上面的功能 能帮我定义个Args(0)的函数吗?


 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 10:52:00 [显示全部帖子]

老师,太难了。理解不了哦图片点击可在新窗口打开查看。求函数定义


 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 11:28:00 [显示全部帖子]

输入执行命令Functions.Execute("t"),提示错误:索引超出数组界限

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 12:13:00 [显示全部帖子]

Dim t As Table = Args(0)
Dim flt As String = t.Filter       '获取过滤条件
Dim Int As Integer = t.Position    '获取行位置
Dim p As point = t.ScrollPosition  '获取行在屏幕中位置
t.StopRedraw
t.DataTable.Load(False)
t.Filter = flt
t.Position = Int
t.ScrollPosition = p
t.ResumeRedraw

老师如何修改代码,只刷新已经保存的数据,修改未保存的或者是新增未保存的不要自动保存刷新

 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 15:20:00 [显示全部帖子]

以下是引用大红袍在2015/9/22 12:18:00的发言:

t.DataTable.Load(False)

 

改成

 

For Each dr As DataRow In t.DataTable.DataRows
    If dr.RowState = DataRowState.Unchanged Then
        dr.Load
    End If
Next


改后运行速度要慢很多,这是为什么?


 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 16:27:00 [显示全部帖子]

Dim t As Table = Args(0)
Dim flt As String = t.Filter       '获取过滤条件
Dim Int As Integer = t.Position    '获取行位置
Dim p As point = t.ScrollPosition  '获取行在屏幕中位置
t.StopRedraw
t.DataTable.Load(False)
t.Filter = flt
t.Position = Int
t.ScrollPosition = p
t.ResumeRedraw

老师在计划管理里中执行上面的内部函数,出现如图问题
此主题相关图片如下:qq截图20150922162219.jpg
按此在新窗口浏览图片

上个简例请老师帮忙修改下,谢谢
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.rar


 回到顶部
美女呀,离线,留言给我吧!
qinlao666
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3766 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2015/9/22 17:23:00 [显示全部帖子]

老师还是不行呢,你改完后是什么都不显示了,跟刚才恰好是相反了

 回到顶部