Foxtable(狐表)用户栏目专家坐堂 → 网络环境下,记录窗口下拉列表中如何获取新最数据


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

主题:网络环境下,记录窗口下拉列表中如何获取新最数据

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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/6 23:55:00 [只看该作者]

以下是引用jinruan在2012-11-6 20:09:00的发言:
DataTables("付款期").LoadFilter = ""
DataTables("付款期").Load
此方法放在发下事件中,都取不到最新的记录,应该应在哪件事件中呢:
PrepareEdit
StartEdit
click


可以取到最新数据的,你一个客户端新增或者修改完数据的时候,记得DataTables().Save或者Tables().Save或者Tables().Rows().Save

这样才会把数据保存入数据库的。

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/7 9:01:00 [只看该作者]

DataTables().Save
此方法同台电脑上操作时,下拉列表也没看到最新记录
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下获取新最数据2.rar


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


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/11/7 9:06:00 [只看该作者]

 楼主,事件放在prepareEdit事件里,然后,代码如下

If e.Col.Name = "付款期ID"  Then

    DataTables("付款期").LoadFilter = ""
    DataTables("付款期").Load
   
    Dim dmp As New TableDataMap
    dmp.DataTable = "付款期"
    dmp.ValueCol = "付款期ID" '指定取值列
    dmp.DisplayCol = "付款期" '指定显示列
    '指定下拉列表时显示哪些列的数据
    dmp.ListCols = "付款期ID,付款期,付款天数"
    dmp.Sort = "付款期ID" '指定排序方式
    Tables("订单").Cols("付款期ID").DataMap = dmp.CreateDataMap() '生成并设置DataMap
End If

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/7 9:08:00 [只看该作者]

我再试下

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/7 15:22:00 [只看该作者]

谢谢,可以了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下获取新最数据3.rar


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/11/7 15:26:00 [只看该作者]

最好加上一个判断:
 
 
If e.Col.Name = "付款期ID"  Then
    If e.IsFocusCell Then
        DataTables("付款期").LoadFilter = ""
        DataTables("付款期").Load
        Dim dmp As New TableDataMap
        dmp.DataTable = "付款期"
        dmp.ValueCol = "付款期ID" '指定取值列
        dmp.DisplayCol = "付款期" '指定显示列
        '指定下拉列表时显示哪些列的数据
        dmp.ListCols = "付款期ID,付款期,付款天数"
        dmp.Sort = "付款期ID" '指定排序方式
        Tables("订单").Cols("付款期ID").DataMap = dmp.CreateDataMap() '生成并设置DataMap
    End If
End If


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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/11/7 15:35:00 [只看该作者]

 

Dim cmd As New SQLCommand
Dim
dt As DataTable
Dim
cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls(
"ComboBox1")
cmb.ComboList= dt.GetComboListString(
"客户"
)

 

 

貌似 这个也可以做到的吧


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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/7 15:55:00 [只看该作者]

这个做  列表项目  可以,但是需要保存的是  客户id,

ComboList只取到了 客户  值


Dim cmd As New SQLCommand
Dim
 dt As DataTable
Dim
 cmb As WinForm.ComboBox
cmd.CommandText = "SELECT DISTINCT 客户 From {订单}"
dt = cmd.ExecuteReader()
cmb = e.Form.Controls(
"ComboBox1")
cmb.ComboList= dt.GetComboListString(
"客户"
) 

要不变通这下,用ComboList取  客户id  值做 列表项目 的实际值,表中显示列就用  客户

我试下



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


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57596 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/11/7 15:58:00 [只看该作者]

你可以变通的做做试试!

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


加好友 发短信
等级:幼狐 帖子:198 积分:1448 威望:0 精华:0 注册:2011/8/23 17:38:00
  发帖心情 Post By:2012/11/7 16:35:00 [只看该作者]

这样设置有冲突:ComboList取的就是 列表项目 的 显示值;
还是要用第一种方法
但第一种方法:动态数据字典,存在数据更新问题:
就是刚打项目时:都显示的是实际列的值,而不是  显示值列的值,除非,编辑单元格后才显示正常

 回到顶部
总数 21 上一页 1 2 3 下一页