以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]请教能设置共享代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153040)

--  作者:沪上游客
--  发布时间:2020/7/29 15:58:00
--  [求助]请教能设置共享代码
老师您好!
下面这段代码能正常使用,里面这行代码         DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
多处重复,请问能否把这段代码做成一个共享代码(有个命令名称),这样我修改时就不需要每行都,改一处就行了。不知道怎么做?
谢谢老师!
If e.DataCol.Name = "金额" Or e.DataCol.Name = "类别" Then
    Dim dr = e.DataRow
    If e.DataRow("类别") = "借入" Or e.DataRow("类别") = "垫付资金" Then
        Dim jl As Decimal
        Dim zjdf As Decimal
        Dim dzsl As Decimal
        jl = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'借入\'")
        zjdf = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'垫付资金\'")
        dzsl = jl + zjdf
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金借入数",dzsl,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金借款余额","IsNull([项目资金借入数],0) - IsNull([项目资金还款数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "还款" Or e.DataRow("类别") = "垫付返回" Then
        Dim hk As Decimal
        Dim dffh As Decimal
        Dim dzhk As Decimal
        hk = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'还款\'")
        dffh = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'垫付返回\'")
        dzhk = hk + dffh
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金还款数",dzhk,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金借款余额","IsNull([项目资金借入数],0) - IsNull([项目资金还款数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "税金报销支付" Then
        Dim sjbxzc As Decimal
        sjbxzc = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'税金报销支付\'")
        DataTables("工程合同基础数据").SQLReplaceFor("税费报销支出",sjbxzc,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("税费报销余额","IsNull([税费报销数],0) - IsNull([税费报销支出],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "工资支付" Then
        Dim gzzf As Decimal
        gzzf = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'工资支付\'")
        DataTables("工资表").SQLReplaceFor("工资已付总数",gzzf,"主合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工资表").SQLReplaceFor("工资发放余额","IsNull([工资总额],0) - IsNull([工资已付总数],0)","主合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("工资支付数",gzzf,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("工资单支付余额","IsNull([工资单],0) - IsNull([工资支付数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "报销支付" Then
        Dim bxzc As Decimal
        bxzc = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'报销支付\'")
        DataTables("工程合同基础数据").SQLReplaceFor("其他成本支出数",bxzc,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("其他成本余额","IsNull([其他成本_总计],0) - IsNull([其他成本支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "折旧资金支出" Then
        Dim gdzczjzc As Decimal
        gdzczjzc = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'折旧资金支出\'")
        DataTables("工程合同基础数据").SQLReplaceFor("固定资产_折旧资金支出",gdzczjzc,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("固定资产_折旧资金余额","IsNull([固定资产_折旧数],0) + IsNull([进项税汇总_固定资产],0) - IsNull([固定资产_折旧资金支出],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "工抵房" Then
        Dim gdf As Decimal
        gdf = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'工抵房\'")
        DataTables("工程合同基础数据").SQLReplaceFor("工抵房",gdf,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("工抵房余额","IsNull([工抵房],0) - IsNull([工抵房回款],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "工抵房回款" Then
        Dim gdfhk As Decimal
        gdfhk = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'工抵房回款\'")
        DataTables("工程合同基础数据").SQLReplaceFor("工抵房回款",gdfhk,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("工抵房余额","IsNull([工抵房],0) - IsNull([工抵房回款],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "税后列支" Then
        Dim shlz As Decimal
        shlz = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'税后列支\'")
        DataTables("工程合同基础数据").SQLReplaceFor("税后列支_支出数",shlz,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("税后列支_资金余额","IsNull([税后列支_合计],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    ElseIf e.DataRow("类别") = "超成本资金" Then
        Dim ccbzj As Decimal
        ccbzj = DataTables("项目借款数据").Compute("Sum(金额)","主合同编号 = \'" & dr("主合同编号") & "\'And [类别] = \'超成本资金\'")
        DataTables("工程合同基础数据").SQLReplaceFor("超成本资金",ccbzj,"合同编号 = \'" & dr("主合同编号") & "\'")
        DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额","IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)","合同编号 = \'" & dr("主合同编号") & "\'",True)
    End If
End If


--  作者:有点蓝
--  发布时间:2020/7/29 16:04:00
--  
这样?

dim s as string = "IsNull([应收款收入数],0) + IsNull([项目资金借入数],0) + IsNull([工抵房回款],0) + IsNull([超成本资金],0) - IsNull([建安发票开票数],0) - IsNull([项目资金还款数],0) - IsNull([支出合同应付款_已付数],0) - IsNull([工资支付数],0) - IsNull([其他成本支出数],0) - IsNull([税费报销支出],0) - IsNull([总部申报数],0) - IsNull([印花税_支出合同],0) - IsNull([印花税_固定资产],0) - IsNull([管理费汇总_合计],0) - IsNull([企业所得税_总部预交],0) - IsNull([固定资产_折旧资金支出],0) - IsNull([工抵房],0) - IsNull([税后列支_支出数],0)"

dim filter as string = "合同编号 = \'" & dr("主合同编号") & "\'"

DataTables("工程合同基础数据").SQLReplaceFor("项目资金当前余额" ,,filter ,True)

--  作者:沪上游客
--  发布时间:2020/7/29 16:17:00
--  
谢谢老师!