以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]求大侠们帮忙写个代码,万分感激 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27374) |
-- 作者:yupoco -- 发布时间:2012/12/29 18:33:00 -- [求助]求大侠们帮忙写个代码,万分感激 有表A和表B两个表,表A是用来统计表B的数据 两表中都有日期列和商品编号,这两列作为分组列 当表B中新增行,填入日期和商品编号后, 如果表A中没有相同的行,就自动增加一行,并且将表B中的日期和商品编号自动填入 如果表A中有相同的行,就不执行 哪位大侠帮帮忙,我用数组和字典想了半天,还是搞不出来
|
-- 作者:关键下一秒 -- 发布时间:2012/12/29 18:55:00 -- 建议:1.关联两个表,B为左表,A为右表,选择同步更新、同步删除数据。 2.在B表中的商品编号列的AfterDataRowChanged事件中增加代码 tables("表A").addnew
|
-- 作者:yupoco -- 发布时间:2012/12/29 19:07:00 -- 我是要进行分组统计,你这方法应该不行的!不过还是谢谢你 |
-- 作者:even0898 -- 发布时间:2012/12/29 19:33:00 -- 把表B中所有的字段添加到表A当中去 表A中所有需要统计表B的字段设为表达式列 在表A里加一列,数据类型设置为整数 然后用这一列和表B的_Identify做关联 OVER...不需要代码 |
-- 作者:狐狸爸爸 -- 发布时间:2012/12/29 21:00:00 -- 看看这个: http://www.foxtable.com/help/topics/2490.htm
|
-- 作者:yupoco -- 发布时间:2012/12/29 22:40:00 -- 狐爸,你的这个是对的,但是我的代码时间转换错误,find 语句里面的StrFind 参数,好像是字符型 Select Case e.DataCol.name Case "日期","商品编号" Dim dr As DataRow = DataTables("每日清单").Find("日期 = #" & e.DataRow("日期") & "# " And "商品编号 = \'" & e.OldValue & "\'") If dr Is Nothing Then dr = DataTables("库存").AddNew() dr("日期") = e.DataRow("日期") dr("商品编号") = e.DataRow("商品编号") End If End Select 错误提示: 详细错误信息: System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.InvalidCastException: 从字符串“日期 = #2012/12/27# ”到类型“Long”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。 |
-- 作者:yupoco -- 发布时间:2012/12/29 22:40:00 -- 这个应该怎么解决呢 |
-- 作者:程兴刚 -- 发布时间:2012/12/29 23:15:00 -- 有时间浪费精力,为何没时间做个示例文件? |
-- 作者:狐狸爸爸 -- 发布时间:2012/12/30 23:39:00 -- Select Case e.DataCol.name Case "日期","商品编号" Dim dr As DataRow = DataTables("每日清单").Find("日期 = #" & e.DataRow("日期") & "# " And "商品编号 = \'" & e.DataRow("商品编号") & "\'") If dr Is Nothing Then dr = DataTables("库存").AddNew() dr("日期") = e.DataRow("日期") dr("商品编号") = e.DataRow("商品编号") End If End Select |