Foxtable(狐表)用户栏目专家坐堂 → [求助]求代码,单价*数量 然后填进 复价


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

主题:[求助]求代码,单价*数量 然后填进 复价

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


加好友 发短信
等级:幼狐 帖子:113 积分:1344 威望:0 精华:0 注册:2014/11/12 16:55:00
[求助]求代码,单价*数量 然后填进 复价  发帖心情 Post By:2015/1/15 20:55:00 [只看该作者]

求代码,不想用表达式例,因为我用过,后面进行合并表的时候出错。

谢谢各位了


图片点击可在新窗口打开查看此主题相关图片如下:表a.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/15 20:57:00 [只看该作者]

 编写datacolchanged事件代码

 

http://www.foxtable.com/help/topics/1469.htm

 


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


加好友 发短信
等级:幼狐 帖子:113 积分:1344 威望:0 精华:0 注册:2014/11/12 16:55:00
  发帖心情 Post By:2015/1/15 21:34:00 [只看该作者]

可以了,感谢

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


加好友 发短信
等级:幼狐 帖子:113 积分:1344 威望:0 精华:0 注册:2014/11/12 16:55:00
  发帖心情 Post By:2015/1/15 22:37:00 [只看该作者]

有点甜老师你好,

DataColChanged事件写上了:

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "单价","数量"
        dr("复价") = dr("单价") * dr("数量")
   End Select

以上代码重置列时能正常执行,现在有这样的问题,表A要经常合并进新数据,在执行合并代码的时候就提示【从字符串“”到类型“Decimal”的转换无效。】
请教一下,以上的代码可否写在其他事件中,或怎么改一下才能正常。谢谢啦

以下是合并代码:

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
    Dim c As Integer = 0
    Dim Book As New XLS.Book(dlg.FileName)
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Tables("表A").StopRedraw()


'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim nms() As String = {"序号","名称","单价","数量","复价"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
 For n As Integer = 2 To Sheet.Rows.Count -1 
   Dim xh As String = sheet(n,1).Text '定义
    If DataTables("表A").Find("序号 = '" & xh & "'") Is Nothing Then '如果不存在同编号的
        Dim r As Row = Tables("表A").AddNew()
        c=c+1
        For m As Integer = 0 To nms.Length - 1
            r(nms(m)) = Sheet(n,m).Value
        Next
    End If
Next

 Tables("表A").ResumeRedraw()
 DataTables("表A").Save
 MessageBox.Show("合并完成,共" & c & "条记录")
End If
[此贴子已经被作者于2015-1-15 22:39:37编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/15 22:41:00 [只看该作者]

 试试改改这句

 

 

[此贴子已经被作者于2015-1-15 22:41:10编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/15 22:43:00 [只看该作者]

r(nms(m)) = Sheet(n,m).Value

 

改成

 

If DataTables("表A").DataCols(nms(m)).IsNumeric Then
    r(nms(m)) = Val(Sheet(n,m).Value)
Else
    r(nms(m)) = Sheet(n,m).Value
End If


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


加好友 发短信
等级:幼狐 帖子:113 积分:1344 威望:0 精华:0 注册:2014/11/12 16:55:00
  发帖心情 Post By:2015/1/16 9:04:00 [只看该作者]

调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。


关闭一次次的异常提示后,数据也合并进来了,只是复价那例没计算,现全部显示0

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/16 9:06:00 [只看该作者]

dr("复价") = dr("单价") * dr("数量")

 

改成

 

dr("复价") = val(dr("单价")) * val(dr("数量"))


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2015/1/16 9:07:00 [只看该作者]

如果改成8楼没问题,就是你的单价和数量列的类型弄错了,不要弄成字符列

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


加好友 发短信
等级:幼狐 帖子:113 积分:1344 威望:0 精华:0 注册:2014/11/12 16:55:00
  发帖心情 Post By:2015/1/16 9:16:00 [只看该作者]

哦,好,我试一下,辛苦啦

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