Foxtable(狐表)用户栏目专家坐堂 → 老大,有问题指教,请指明思路!


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

主题:老大,有问题指教,请指明思路!

帅哥哟,离线,有人找我吗?
唐尸三摆手
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
老大,有问题指教,请指明思路!  发帖心情 Post By:2010/9/9 13:50:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目49.table

老大,请看附件,排产优化表,从排产数据表按日期和优先级提取计划号填充到对应的加工单元列中,请教如何书写代码,已有数据为我手工填入,请指教!


 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/9 14:13:00 [只看该作者]

做了一个按钮

Dim f As New Filler
f.SourceTable = DataTables("排产数据") '指定数据来源
f.SourceCols = "排产日期,优先级,计划号" '指定数据来源列
f.datatable = DataTables("排产优化") '指定数据接收表
f.DataCols = "排产日期,优先级,加工单元A" '指定数据接收列
f.Filter="加工单元='010212'"
f.ExcludeNullValue=True
f.Fill() '填充数据

 

 

不能全部填充啊,请帮忙


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


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33957 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2010/9/9 15:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目3.table


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/9/9 15:12:00 [只看该作者]

填充数据,并非必须要用Filler,Fiiler是机械的,只能处理简单的、排除重复的填充。

 

Dim Names1() As String = {"010212","010221","020222","010223","014301","014302","014303","014304","014306"}
Dim Names2() As String = {"A","B","C","D","E","F","G","H","I"}
Dim Arys As List(Of String())
arys = DataTables("排产数据").GetUniqueValues("", "排产日期", "优先级")
For Each ary As String() In Arys
    Dim dr1 As DataRow = DataTables("排产优化").AddNew()
    dr1("排产日期") = ary(0)
    dr1("优先级") = ary(1)
    For n As Integer = 0 To Names1.Length - 1
        Dim dr2 As DataRow = DataTables("排产数据").Find("排产日期 = #" & ary(0) & "# And 优先级 = '" & ary(1) & "' And 加工单元 = '" & Names1(n) & "'")
        If dr2 IsNot Nothing
            dr1("加工单元" & Names2(n)) = dr2("计划号")
        End If
    Next
Next


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/9/9 15:16:00 [只看该作者]

呵呵,我马后炮了,原来C版解决了。

C版动态生成表,我的在原来的表填充,楼主自己选择。

[此贴子已经被作者于2010-9-9 15:15:58编辑过]

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


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2010/9/9 18:15:00 [只看该作者]

挺复杂的,好好研究一下


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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/10 8:51:00 [只看该作者]

C版和老大的代码各有千秋的

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/9/10 8:57:00 [只看该作者]

方法很多,你还可以写得更好。
 
我的代码再优化一下:
 
Dim Arys As List(Of String())
arys = DataTables("排产数据").GetUniqueValues("", "排产日期", "优先级")
For Each ary As String() In Arys
    Dim dr1 As DataRow = DataTables("排产优化").AddNew()
    dr1("排产日期") = ary(0)
    dr1("优先级") = ary(1)
    For Each dc AS DataCol In DataTables("排产优化").DataCols
        Dim dr2 As DataRow = DataTables("排产数据").Find("排产日期 = #" & ary(0) & "# And 优先级 = '" & ary(1) & "' And 加工单元 = '" & dc.Caption & "'")
        If dr2 IsNot Nothing
            dr1(dc.name) = dr2("计划号")
        End If
    Next
Next
[此贴子已经被作者于2010-9-10 9:00:45编辑过]

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


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By:2010/9/17 8:53:00 [只看该作者]

Dim Arys As List(Of String())
arys = DataTables("排产数据").GetUniqueValues("", "排产日期", "优先级")
 

上面这句我想直接改为从后台erp数据库的a1表提取数据,(而"排产数据"是内部表,结构一样的),不知能否做到

Dim cmd As New SQLCommand
Dim dt As datatable
cmd.C
cmd.CommandText = "select distinct inputdate,remark From a1"
dt = cmd.ExecuteReader()
Dim Arys As List(Of String())
Arys =DataTables(dt).GetUniqueValues("","inputdate", "remark")

 

为什么提示错误呢?

 


图片点击可在新窗口打开查看此主题相关图片如下:snap4.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2010-9-17 8:55:27编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/9/17 9:12:00 [只看该作者]

1、应该这样:

Arys =dt.GetUniqueValues("","inputdate", "remark")

 

2、其实你的SQL语句已经排除重复值了,所以dt中并没有重复值了,那么直接使用dt即可,不需要再GetUniqueValues了。

 

For Each dr As DataRow In dt.DataRows
    Dim dr1 As DataRow = DataTables("排产优化").AddNew()
    dr1("排产日期") = dr("排产日期")
    dr1("优先级") = dr("优先级")
    For Each dc AS DataCol In DataTables("排产优化").DataCols
        Dim dr2 As DataRow = DataTables("排产数据").Find("排产日期 = #" & dr("排产日期") & "# And 优先级 = '" & dr("优先级") & "' And 加工单元 = '" & dc.Caption & "'")
        If dr2 IsNot Nothing
            dr1(dc.name) = dr2("计划号")
        End If
    Next
Next


 回到顶部
总数 16 1 2 下一页