以文本方式查看主题

-  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