以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 窗口中添加上一单按钮 (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=169270) |
-- 作者:采菊东篱下 -- 发布时间:2021/6/9 16:39:00 -- 窗口中添加上一单按钮 在窗口中添加上一单按钮,这样写报错: .NET Framework 版本:4.0.30319.17929 Foxtable 版本:2021.5.29.1 错误所在事件:窗口,收款凭证,Button1,Click 详细错误信息: Object reference not set to an instance of an object. DataTables("收款凭证_Table1").deletefor( "[凭证号] Is Null") DataTables("收款凭证_Table1").loadfilter = "1=2" DataTables("收款凭证_Table1").load Dim dr As DataRow = DataTables("财务数据源").SQLFind("[日期] = #" & (e.Form.Controls("rq").Value).Month & "# And [字号] = \'" & e.Form.Controls("TextBox2").Value & "\' And [凭证号] = \'" & e.Form.Controls("dh").text + 1 & "\'") Dim dr1 As DataRow = DataTables("财务数据源").SQLFind("[日期] = #" & (e.Form.Controls("rq").Value).Month & "# And [字号] = \'" & e.Form.Controls("TextBox2").Value & "\' And [凭证号] = \'" & e.Form.Controls("dh").text + 1 & "\' And [借或贷] = \'借\'") Forms("收款凭证").Controls("ComboBox3").text = dr1("会计科目") Forms("收款凭证").Controls("rq").text = dr1("日期") Forms("收款凭证").Controls("dh").text = dr1("凭证号") Forms("收款凭证").Controls("dh1").text = dr1("安日期生成单号辅助列") Forms("收款凭证").Controls("TextBox2").text = dr1("字号") Forms("收款凭证").Controls("RadioButton1").Checked = dr1("已审核") Forms("收款凭证").Controls("shr").text = dr1("审核人") Forms("收款凭证").Controls("TextBox1").text = dr1("附件张数") With Tables("收款凭证_Table1") Dim Filter As String = "安日期生成单号辅助列 = \'" & dr("安日期生成单号辅助列") & "\' And [字号] =\'" & dr("字号") & "\' And [凭证号] = \'" & dr("凭证号") & "\' And [借或贷] = \'贷\'" DataTables("收款凭证_Table1").LoadFilter = Filter \'设置加载条件 DataTables("收款凭证_Table1").Load() \'加载数据 If dr.IsNull("外币金额") And dr.IsNull("数量") Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(0) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(0) .SetColVisibleWidth("摘要|300|贷方总账科目|100|明细科目|250|金额|100") ElseIf dr.IsNull("外币金额") And dr.IsNull("数量") = False Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(0) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(1) .SetColVisibleWidth("摘要|300|贷方总账科目|100|明细科目|180|数量|60|单价|50|金额|60") ElseIf dr.IsNull("外币金额") = False And dr.IsNull("数量") Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(1) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(0) .SetColVisibleWidth("摘要|250|贷方总账科目|100|明细科目|160|币种|60|汇率|60|外币金额|60|金额|60") .Cols("外币金额").GrandTotal = True ElseIf dr.IsNull("外币金额") = False And dr.IsNull("数量") = False Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(1) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(1) .SetColVisibleWidth("摘要|130|贷方总账科目|100|明细科目|110|数量|60|单价|60|币种|60|汇率|50|外币金额|60|外币金额|60|金额|60") .Cols("外币金额").GrandTotal = True End If .Cols("贷方总账科目").DropForm = "科目" .Cols("金额").GrandTotal = True .GrandTotal = True \'If e.Col.Name = "摘要" Or e.Col.Name = "贷方总账科目" Or e.Col.Name = "明细科目" Then \'.AutoSizeRow(e.Row.Index) \'End If Dim r As Row For i As Integer = 0 To .Rows.Count(True) - 1 \'Count加上参数True r = .Rows(i,True) \'Rows也需要加上参数True If r.Level Then \'如果是合计行 .Cols("摘要").TextAlign = TextAlignEnum.Center End If Next If .Rows.Count < 10 Then .AddNew(10 - .Rows.Count) End If End With
|
-- 作者:有点蓝 -- 发布时间:2021/6/9 16:41:00 -- 调试技巧:http://www.foxtable.com/webhelp/scr/1485.htm,看哪一句代码出错 |
-- 作者:采菊东篱下 -- 发布时间:2021/6/9 17:05:00 -- 我加入这语句连弹窗都没有,表上没加载任何数据! MessageBox.Show(Filter)
|
-- 作者:有点蓝 -- 发布时间:2021/6/9 17:28:00 -- DataTables("收款凭证_Table1").deletefor( "[凭证号] Is Null") msgbox(1) DataTables("收款凭证_Table1").loadfilter = "1=2" msgbox(2) DataTables("收款凭证_Table1").load msgbox(3) Dim dr As DataRow = DataTables("财务数据源").SQLFind("[日期] = #" & (e.Form.Controls("rq").Value).Month & "# And [字号] = \'" & e.Form.Controls("TextBox2").Value & "\' And [凭证号] = \'" & e.Form.Controls("dh").text + 1 & "\'") msgbox(4) Dim dr1 As DataRow = DataTables("财务数据源").SQLFind("[日期] = #" & (e.Form.Controls("rq").Value).Month & "# And [字号] = \'" & e.Form.Controls("TextBox2").Value & "\' And [凭证号] = \'" & e.Form.Controls("dh").text + 1 & "\' And [借或贷] = \'借\'") msgbox(5) Forms("收款凭证").Controls("ComboBox3").text = dr1("会计科目") msgbox(6) ……
|
-- 作者:有点蓝 -- 发布时间:2021/6/9 17:37:00 -- http://www.foxtable.com/webhelp/topics/2911.htm,看看示例三的说明。这种问题经常性的错误就没有必要了 |
-- 作者:采菊东篱下 -- 发布时间:2021/6/9 17:46:00 -- 前面三行是删除窗口表上的行,第四、第五行是定义财务数据源符合条件的行,都不会有数据弹出,第6行也没有数据弹出,说明没找到定义的行,可查找的行日期等于窗口日期控件的月份,字号等于e.Form.Controls("TextBox2").Value,单号等于e.Form.Controls("dh").text - 1,应怎么写? |
-- 作者:有点蓝 -- 发布时间:2021/6/10 8:41:00 -- 认真看5楼帮助,一遍看不懂,看10遍 |
-- 作者:采菊东篱下 -- 发布时间:2021/6/10 11:43:00 -- 红色标注代码报错 DataTables("收款凭证_Table1").deletefor( "[凭证号] Is Null") DataTables("收款凭证_Table1").loadfilter = "1=2" DataTables("收款凭证_Table1").load With Tables("收款凭证_Table1") Dim drs As List(Of DataRow) = DataTables("财务数据源").Select("year([日期]) = #" & e.Form.Controls("rq").Value.year & "# And Month([日期]) = #" & e.Form.Controls("rq").Value.Month & "# And [字号] = \'" & e.Form.Controls("TextBox2").Value & "\' And [凭证号] = \'" & e.Form.Controls("dh").text - 1 & "\'") For Each dr As DataRow In drs If dr IsNot Nothing Then If dr("借或贷") = "借" Then Forms("收款凭证").Controls("ComboBox3").text = dr("会计科目") Forms("收款凭证").Controls("rq").text = dr("日期") Forms("收款凭证").Controls("dh").text = dr("凭证号") Forms("收款凭证").Controls("dh1").text = dr("安日期生成单号辅助列") Forms("收款凭证").Controls("TextBox2").text = dr("字号") Forms("收款凭证").Controls("RadioButton1").Checked = dr("已审核") Forms("收款凭证").Controls("shr").text = dr("审核人") Forms("收款凭证").Controls("TextBox1").text = dr("附件张数") ElseIf dr("借或贷") = "贷" Then Dim Filter As String = "安日期生成单号辅助列 = \'" & dr("安日期生成单号辅助列") & "\' And [字号] =\'" & dr("字号") & "\' And [凭证号] = \'" & dr("凭证号") & "\' And [借或贷] = \'贷\'" DataTables("收款凭证_Table1").LoadFilter = Filter \'设置加载条件 DataTables("收款凭证_Table1").Load() \'加载数据 If dr.IsNull("外币金额") And dr.IsNull("数量") Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(0) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(0) .SetColVisibleWidth("摘要|300|贷方总账科目|100|明细科目|250|金额|100") ElseIf dr.IsNull("外币金额") And dr.IsNull("数量") = False Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(0) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(1) .SetColVisibleWidth("摘要|300|贷方总账科目|100|明细科目|180|数量|60|单价|50|金额|60") ElseIf dr.IsNull("外币金额") = False And dr.IsNull("数量") Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(1) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(0) .SetColVisibleWidth("摘要|250|贷方总账科目|100|明细科目|160|币种|60|汇率|60|外币金额|60|金额|60") .Cols("外币金额").GrandTotal = True ElseIf dr.IsNull("外币金额") = False And dr.IsNull("数量") = False Then Forms("收款凭证").Controls("ComboBox2").text = Forms("收款凭证").controls("combobox2").items(1) Forms("收款凭证").Controls("ComboBox1").text = Forms("收款凭证").controls("combobox1").items(1) .SetColVisibleWidth("摘要|130|贷方总账科目|100|明细科目|110|数量|60|单价|60|币种|60|汇率|50|外币金额|60|外币金额|60|金额|60") .Cols("外币金额").GrandTotal = True End If End If End If Next .Cols("贷方总账科目").DropForm = "科目" .Cols("金额").GrandTotal = True .GrandTotal = True If e.Col.Name = "摘要" Or e.Col.Name = "贷方总账科目" Or e.Col.Name = "明细科目" Then \'自动行高报错 .AutoSizeRow(e.Row.Index) End If Dim r As Row For i As Integer = 0 To .Rows.Count(True) - 1 \'Count加上参数True r = .Rows(i,True) \'Rows也需要加上参数True If r.Level Then \'如果是合计行 .Cols("摘要").TextAlign = TextAlignEnum.Center End If Next If .Rows.Count < 10 Then .AddNew(10 - .Rows.Count) End If End With
|
-- 作者:有点蓝 -- 发布时间:2021/6/10 11:54:00 -- 日期问题看:http://www.foxtable.com/webhelp/topics/1284.htm 表达式中的日期用符号#括起来,数值则不需要任何符号括起来,这些和代码中的格式是一样的,唯一不同的是字符串用单引号括起来。 例如: Tables("订单").Filter = "[产品] = \'PD01\'" \'字符用单引号括起来 年份是一个完整的日期值吗?!! 行高看:http://www.foxtable.com/webhelp/topics/0604.htm,http://www.foxtable.com/webhelp/topics/0732.htm;多理解一下帮助的说明吧
|
-- 作者:采菊东篱下 -- 发布时间:2021/6/10 13:24:00 -- 哦,代码做在按钮上不能用e参数! |