Foxtable(狐表)用户栏目专家坐堂 → [求助] 货币转换自动填入


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

主题:[求助] 货币转换自动填入

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 15:01:00 [显示全部帖子]

参考代码

 

Dim t1 As Table = Tables("Shipment")
Dim t2 As Table = Tables("Shipment.GSSInvoice")
Dim dt As DataTable = DataTables("ExchangeRate")
Dim fdr As DataRow = dt.Find("m")
If fdr IsNot Nothing Then
    For Each r As Row In t2.Rows
        r("ExchangeRate") = r("TotalPrice") * fdr("EUR")
    Next
Else
    msgbox("没找到汇率")
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 20:35:00 [显示全部帖子]

1、代码我测试没问题。

 

2、你测试的时候报什么错?你看懂代码的意思了没有?执行代码有什么问题?


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 21:06:00 [显示全部帖子]

改成

 

Dim t1 As Table = Tables("Shipment")
Dim t2 As Table = Tables("Shipment.GSSInvoice")
Dim dt As DataTable = DataTables("ExchangeRate")
Dim fdr As DataRow = dt.Find("month = '" & t1.current("date") & "'")
If fdr IsNot Nothing Then
    For Each r As Row In t2.Rows
        r("ExchangeRate") = r("TotalPrice") * fdr("EUR")
    Next
Else
    msgbox("没找到汇率")
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 22:36:00 [显示全部帖子]

如果提示找不到汇率,就是对应表没有数据。

 

比如你 2018年10月的汇率没有,自然就提示找不到。

 

如果你date日期是2018年11月的话,就能找到和计算的。

 

计算逻辑又可能不是你需要的,你要看懂代码,改成你自己的逻辑。或者说明你需要做到的最后的效果是什么。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/15 22:56:00 [显示全部帖子]

Dim t1 As Table = Tables("Shipment")
Dim t2 As Table = Tables("Shipment.GSSInvoice")
Dim dt As DataTable = DataTables("ExchangeRate")
Dim fdr As DataRow = dt.Find("month = '" & e.form.controls("textbox1").text & "'")
If fdr IsNot Nothing Then

   msgbox(fdr("EUR"))
    For Each r As Row In t2.Rows
        r("ExchangeRate") = r("TotalPrice") * fdr("EUR")
    Next
Else
    msgbox("没找到汇率")
End If


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/30 10:10:00 [显示全部帖子]

代码没问题,修改数据后,请切换主表的行后测试。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/30 10:34:00 [显示全部帖子]

以下是引用sanny在2018/12/30 10:26:00的发言:
是的,版主,重新进入窗口结果就对了,可是有没有动态更新的?

 

代码是写在currentchanged事件,你必须切换你主表的行才会更新啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/30 11:16:00 [显示全部帖子]

Dim t As Table =Tables("Shipment.GSSInvoice")
If t.Rows.Count > 0
    Forms("Mainfrm").Controls("Button14").Enabled = True
    Forms("Mainfrm").Controls("Button1").Enabled = True
    Dim po As String = t.Rows(0)("POCurrency")
    For Each r As Row In t.Rows
        If r("POCurrency") <> po Then Return
    Next
    msgbox(1)
    If po = "CHF"
        Forms("Mainfrm").Controls("Button14").Enabled = False
        msgbox(2)
    ElseIf po = "EUR"
        Forms("Mainfrm").Controls("Button1").Enabled = False
        msgbox(3)
    End If
End If

 回到顶部