Foxtable(狐表)用户栏目专家坐堂 → 窗口按钮执行公式的结果不能保存


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

主题:窗口按钮执行公式的结果不能保存

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


加好友 发短信
等级:幼狐 帖子:160 积分:1214 威望:0 精华:0 注册:2015/7/1 17:35:00
窗口按钮执行公式的结果不能保存  发帖心情 Post By:2016/6/3 9:18:00 [只看该作者]

 在窗口某个按钮编写公式代码,最后结果保存不了,请问怎么解决?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/3 9:18:00 [只看该作者]

提示什么?贴出代码?

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


加好友 发短信
等级:幼狐 帖子:160 积分:1214 威望:0 精华:0 注册:2015/7/1 17:35:00
  发帖心情 Post By:2016/6/3 9:23:00 [只看该作者]

 没有错误,只是我重新打开之后,数据就变了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/3 9:24:00 [只看该作者]


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


加好友 发短信
等级:幼狐 帖子:160 积分:1214 威望:0 精华:0 注册:2015/7/1 17:35:00
  发帖心情 Post By:2016/6/3 9:38:00 [只看该作者]

 不是表达式列
项目属性只读在哪里?

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/3 9:40:00 [只看该作者]

 你按钮执行公式,指什么?你写了什么代码,想做什么功能?

 

 不理解你说什么项目属性只读,你可以不允许人家打开项目属性啊


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


加好友 发短信
等级:幼狐 帖子:160 积分:1214 威望:0 精华:0 注册:2015/7/1 17:35:00
  发帖心情 Post By:2016/6/3 9:45:00 [只看该作者]

下面是我的窗口checkbox按钮公式,你刚刚发的那个链接里面的最后一句话有写到项目属性,你可以看看。
然后我再次打开项目运费数值就变了
 Dim f As WinForm.CheckBox = e.Form.Controls("运费")
Dim r As Row = Tables("报价录入_Table1").current
If f.Checked = True Then
    If r("总体积") > 0  Then
        For Each a As Row In Tables("报价录入_Table2").Rows
            If a("QTY") IsNot Nothing Then
                a("运费") = (a("总体积")/r("总体积") * r("运费"))/a("QTY")
            End If
        Next
    Else
        For Each a As Row In Tables("报价录入_Table2").Rows
            a("运费") = Nothing
        Next
    End If
Else
    For Each a As Row In Tables("报价录入_Table2").Rows
        Dim yf As DataRow = DataTables("运费价格").Find("港口名 = '" & r("目的港") & "' and 装箱方式 = '" & r("装箱方式") & "' and 价格条款 = '" & r("价格条款") & "'")
        
        If yf IsNot Nothing AndAlso a("QTY") IsNot Nothing Then
            a("运费") = (a("总体积") * yf("费用1") + yf("费用2"))/a("QTY")
        End If
    Next
End If

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/3 9:48:00 [只看该作者]

 已经修改保存的数据,除非你再次有代码修改其值,不然,是不可能改变数据的。

 

 上传实例说明。


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


加好友 发短信
等级:幼狐 帖子:160 积分:1214 威望:0 精华:0 注册:2015/7/1 17:35:00
  发帖心情 Post By:2016/6/3 10:15:00 [只看该作者]

 我把那个checkbox删掉了,然后在主档datacolchanged那里写代码:(“按体积平摊”是逻辑型)请问怎么修改才正确
Select e.DataCol.name
    Case "目的港","装箱方式","价格条款","总体积","按体积平摊运费"
        Dim yf As DataRow = DataTables("运费价格").Find("港口名 = '" & e.DataRow("目的港") & "' and 装箱方式 = '" & e.DataRow("装箱方式") & "' and 价格条款 = '" & e.DataRow("价格条款") & "'")
        If yf IsNot Nothing AndAlso e.DataRow("按体积平摊运费") = True AndAlso e.DataRow("总体积") > 0 Then  Then
           
            For Each a As DataRow In DataTables("报价明细").Rows
                If a("QTY") IsNot Nothing Then
                    a("运费") = (a("总体积")/e.DataRow("总体积") *( e.DataRow("总体积") * yf("费用1") + yf("费用2")))/a("QTY")
                End If
            Next
        End If
        If e.DataRow("按体积平摊运费") = False AndAlso e.DataRow("总体积") > 0
            For Each a As DataRow In DataTables("报价明细").Rows
                If a("QTY") IsNot Nothing Then
                    a("运费") = (a("总体积") * yf("费用1") + yf("费用2"))/a("QTY")
                End If
            Next
        End If       
End Select


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/6/3 10:19:00 [只看该作者]

Select e.DataCol.name
    Case "目的港","装箱方式","价格条款","总体积","按体积平摊运费"
        Dim yf As DataRow = DataTables("运费价格").Find("港口名 = '" & e.DataRow("目的港") & "' and 装箱方式 = '" & e.DataRow("装箱方式") & "' and 价格条款 = '" & e.DataRow("价格条款") & "'")
        If yf IsNot Nothing AndAlso e.DataRow("按体积平摊运费") = True AndAlso e.DataRow("总体积") > 0 Then
           
            For Each a As DataRow In DataTables("报价明细").dataRows
                If a("QTY") IsNot Nothing Then
                    a("运费") = (a("总体积")/e.DataRow("总体积") *( e.DataRow("总体积") * yf("费用1") + yf("费用2")))/a("QTY")
                End If
            Next
        End If
        If e.DataRow("按体积平摊运费") = False AndAlso e.DataRow("总体积") > 0
            For Each a As DataRow In DataTables("报价明细").dataRows
                If a("QTY") <> Nothing Then
                    a("运费") = (a("总体积") * yf("费用1") + yf("费用2"))/a("QTY")
                End If
            Next
        End If
End Select

 回到顶部