Foxtable(狐表)用户栏目专家坐堂 → Filter


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

主题:Filter

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
Filter  发帖心情 Post By:2014/12/1 15:30:00 [显示全部帖子]

Dim Filter As String
Dim kehu As String = e.Form.Controls("guke1").Value
Filter = Filter &  " 客户名称 = '" & kehu & "'"
Dim f As New Filler
f.SourceTable = DataTables("产品目录") '指定数据来源
f.SourceCols = "客户名称,零件图号,零件名称,单价" '指定数据来源列
f.DataTable = DataTables("fa piao记录") '指定数据接收表
f.Filter = Filter
f.Fill() '填充数

 

"fa piao记录"表有日期列,Filter"产品目录"表相应数据后,怎么用代码将窗口日期控件的值写入"fa piao记录"表日期列?

 


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/1 15:44:00 [显示全部帖子]

不太会用遍历:

 

Dim lbl As WinForm.DateTimePicker

lbl = e.Form.Controls("日期")

Dim b As Table = Tables("fa piao记录")

For r As Integer = 0 To b.Rows.Count - 1

   b.Current("日期") = lb1

  Next

For r As Integer = b.rows.Count - 1 To 0 Step -1

Next

 

这样对不?不会把fa piao记录表原有数据行日期覆盖吧?


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/1 16:12:00 [显示全部帖子]

 

Dim Filter As String

Dim kehu As String = e.Form.Controls("guke1").Value

Filter = Filter &  " 客户名称 = '" & kehu & "'"

Dim f As New Filler

f.SourceTable = DataTables("产品目录") '指定数据来源

f.SourceCols = "客户名称,零件图号,零件名称,单价" '指定数据来源列

f.DataTable = DataTables("fa piao记录") '指定数据接收表

f.Filter = Filter

f.Fill() '填充数

 

Dim b As Table = Tables("fa piao记录")

For r As Integer = 0 To b.Rows.Count - 1

    b.Current("日期") = new Date(e.Form.Controls("日期"))

Next

For r As Integer = b.rows.Count - 1 To 0 Step -1

Next

 

试了上面代码,倒没有覆盖问题,就是数据数据类型转换又迷糊了:

 

从类型“DateTimePicker”到类型“Long”的转换无效。


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/1 16:16:00 [显示全部帖子]

以下是引用有点甜在2014-12-1 15:35:00的发言:


Dim sCols() As String = {"客户名称","零件图号","零件名称","单价"}
Dim dCols() As String = {"客户名称","零件图号","零件名称","单价"}
Dim dt1 As DataTable = DataTables("产品目录") '指定数据来源
Dim dt2 As DataTable = DataTables("fa piao记录") '指定数据接收表
Dim kehu As String = e.Form.Controls("guke1").Value
Dim riqi As String = e.Form.Controls("日期").Value
Dim Filter As String = " 客户名称 = '" & kehu & "'"
For Each dr As DataRow In dt1.Select(filter)
    Dim nr As DataRow = dt2.AddNew()
    For i As Integer =0 To sCols.Length -1
        nr(dCols(i)) = dr(sCols(i))
    Next
    nr("日期") = riqi
Next

 

似乎这是唯一正确办法.

 

[此贴子已经被作者于2014-12-1 16:17:05编辑过]

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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/1 16:22:00 [显示全部帖子]

 b.Rows(r)("日期") = e.Form.Controls("日期").Text

哦,还是可以有两个用法.

谢谢!


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/2 12:23:00 [显示全部帖子]

数据接收表是关联表的情况下怎么办?DataTable和Table问题怎么处理?

 

Dim Filter As String
Dim kehu As String = e.Form.Controls("DropBox1").Value
Filter = Filter &  " 收货仓 = '" & kehu & "'"

Dim f As New Filler
f.SourceTable = DataTables("装箱参数") '指定数据来源
f.SourceCols = "零件编码,零件图号,零件名称,装箱数量,单位" '指定数据来源列
f.DataTable = DataTables("销售出库.销售明细") '指定数据接收表
f.Filter = Filter
f.Fill() '填充数
Dim b As Table = Tables("销售出库.销售明细")
For r As Integer = 0 To b.Rows.Count - 1   
    b.Rows(r)("出库单号") = e.Form.Controls("TextBox1").Text   
Next
For r As Integer = b.rows.Count - 1 To 0 Step -1
Next


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


加好友 发短信
等级:四尾狐 帖子:972 积分:7048 威望:0 精华:0 注册:2013/3/31 10:33:00
  发帖心情 Post By:2014/12/2 14:58:00 [显示全部帖子]

可以了,因窗口表为关联表,之前以为表名写子表行不通呢.

 回到顶部