Foxtable(狐表)用户栏目专家坐堂 → [求助]老师您好,询问一个比较基础的问题。


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

主题:[求助]老师您好,询问一个比较基础的问题。

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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
[求助]老师您好,询问一个比较基础的问题。  发帖心情 Post By:2017/1/22 13:57:00 [显示全部帖子]

Dim f As New Filler
If e.Form.Controls("ComboBox1").text = "赊欠"
    f.SourceTable = DataTables("销售明细")
    f.SourceCols ="时间,单据编号,客户"
    f.DataTable = DataTables("客户赊销明细")
    f.DataCols = "时间,单据编号,客户"
    f.ExcludeExistValue= True
    f.Fill()
End If


f.SourceTable = DataTables("销售明细") '指定数据来源
f.SourceCols = "产品名称_通用名,价格,客户,包装规格,剂型,产品名称_商品名" '指定数据来源列
f.DataTable = DataTables("客户价目表") '指定数据接收表
f.DataCols = "产品名称_通用名,价格,客户,包装规格,剂型,产品名称_商品名"
f.Filter="客户 Is Not Null"
f.ExcludeExistValue= True
f.Fill()


f.SourceTable = DataTables("销售明细") '指定数据来源
f.SourceCols = "时间,单据编号,产品名称_通用名,价格,数量,客户,包装规格,剂型,产品名称_商品名,批发,成本,类型,合计,利润,供货商" '指定数据来源列
f.DataTable = DataTables("销售明细统计") '指定数据接收表
f.DataCols = "时间,单据编号,产品名称_通用名,价格,数量,客户,包装规格,剂型,产品名称_商品名,批发,成本,类型,合计,利润,供货商" '指定数据接收列
f.Filter="产品名称_商品名 Is Not Null"
f.ExcludeExistValue= True
f.Fill()


f.SourceTable = DataTables("销售明细")
f.SourceCols = "时间,单据编号,客户"
f.DataTable = DataTables("统计")
f.DataCols = "时间,单据编号,客户"
f.ExcludeExistValue = True
f.Fill()

 

Dim find As DataRow
find = DataTables("统计").Find("单据编号 = '"& Forms("销售").Controls("Label单据编号").text &"'")
find("实收")= e.Form.Controls("TextBox1").text

 

添加了这段代码后,运行时总提示 “未将对象引用设置到对象的实例。”请问一下老师,我是哪里出的问题?

这个是窗口的 按钮 click 事件


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 14:09:00 [显示全部帖子]

补充一下。  

 在 fill 完 ‘统计’ 表后,统计增加了一行, 但是我想将增加行中的 ‘实收’ 这列的数据,由我当前 form 的 textbox1 中写入。  所以有了最下面红字的那行 代码, 但是程序运行到这行代码的时候老是报错。

所以我想问问,到底是哪里出错了。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 14:49:00 [显示全部帖子]

那么老师,不用find 用什么呢、。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 16:22:00 [显示全部帖子]

嗯,加了判断语句,虽然不会报错了, 但是实际上还是找不到这行的存在。

刚才我又在这个事件里面加了好几个 find 语句, 但是全部找不到内容。

是不是我用法有问题?   用Select又直接报错。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 17:03:00 [显示全部帖子]

是把 textbox 的值赋予 实收列

 

“实收”是接收列。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 18:33:00 [显示全部帖子]

以下是引用有点色在2017/1/22 17:41:00的发言:

参考

 

For Each dr As DataRow In DataTables("统计").Select("")
    If dr.RowState = DataRowState.Added Then
        dr("实收")=  e.Form.Controls("TextBox1").text
    End If
Next

 

 

For Each sel As DataRow In DataTables("统计").Select("单据编号 = '" & Forms("销售").Controls("Label3").text & "'")
    If sel.RowState = DataRowState.Added Then
        sel("实收")=  e.Form.Controls("TextBox1").text
    End If
Next

 

老师,用for each 后,还是赋值不了。

然后我讲 if 判断语句删除后,虽然不报错。 但是同样的‘统计’下的‘实收’列还是收不到数据。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 19:38:00 [显示全部帖子]

老师我知道错了。。。

 

If DataTables("销售明细").DataRows("产品名称_商品名") IsNot Nothing
    Dim Cols1() As String = { "时间","单据编号","客户" }
    Dim Cols2() As String = { "时间","单据编号","客户" }
    Dim dr1 As DataRow = DataTables("销售明细").DataRows(0)
    Dim dr2 As DataRow = DataTables("统计").AddNew()
    For c As Integer = 0 To Cols1.Length -1
        dr2(Cols2(c)) = dr1(Cols1(c))
        dr2("实收")=e.Form.Controls("TextBox1").text
    Next
End If

 

我给整串全改了。


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


加好友 发短信
等级:幼狐 帖子:100 积分:925 威望:0 精华:0 注册:2016/12/5 10:41:00
  发帖心情 Post By:2017/1/22 19:56:00 [显示全部帖子]

老师不行呀, 到‘统计’只要第一条信息, 如果用For Each   datatables.select。就所有信息都过去了。

原来用fill就是因为几条信息都一样的,可以省略所以才用的。


 回到顶部