以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  组合框代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=80514)

--  作者:爱相随
--  发布时间:2016/1/25 11:48:00
--  组合框代码

老师,我在窗口中增加了组合框,自定义项目内容,比如自定义项目的内容为年度:2015、2016。。。。。当组合框内选定是2015时,让当前表的年度列全部填充为2015,当选定其他值时,表内的年度列改为其他值,请问老师代码怎么写,谢谢。


--  作者:Hyphen
--  发布时间:2016/1/25 12:04:00
--  
组合框SelectedIndexChanged 事件

For Each dr As Row In Tables("表A").Rows
    dr("年度") = e.Sender.Text
Next

--  作者:爱相随
--  发布时间:2016/1/25 12:09:00
--  
谢谢老师
--  作者:爱相随
--  发布时间:2016/1/25 14:33:00
--  

还需要请老教老师,我有表A、表B、表C

表A 是汇总表,有“年度”列,合同号列,年初余额列,表B是贷款下放表,有年度列,放款金额列,表C是贷款还本表,有年度列和还本金额列,现在在表A的年初余额写代码,要求年初余额列根据表A的年度列的值自动计算。就是当表A的年度列为2015年时,表A的年初余额的值应是表B相同合同号的2014年及以前年度累计放款金额减去表C相同合同号的2014年及以前年度累计还本金额,再请教老师代码怎么写啊,请老师再指导,谢谢!!

[此贴子已经被作者于2016/1/25 14:49:59编辑过]

--  作者:爱相随
--  发布时间:2016/1/25 14:57:00
--  
或者有其他方法能表达这个计算。表A有“年度”“合同号”“年初余额”“本年增加”“本年减少”“本年余额”列,现在其他列的值都能取得,就是“年初余额”无法计算。当表A的“年度”比如为2015年时,其“年初余额”就是2014年的余额。理论是上是表B的2014年及以前累计放款减去表C2014年及以前累计还款,就是2014年的余额,就是2015年的年初余额,但不知道这个代码怎么写啊,还有其他的表达方法没有,请老师指导,谢谢!!
--  作者:爱相随
--  发布时间:2016/1/25 15:01:00
--  

我的代码是这样的,但红色的是错的,不能表达年初的意思。

If e.DataCol.Name = "HTBH" Then
   Dim filter As String = "HTBH = \'" & e.DataRow("HTBH")  & "\'And 年度 = \'" & e.DataRow("年度") & "\'"
    e.DataRow("本金年初余额") = DataTables("DKFKB").Compute("sum(XFJE)",filter) - DataTables("HBFX").Compute("sum(BJ)",filter)
    e.DataRow("本金本年增加") = DataTables("DKFKB").Compute("sum(XFJE)",filter)
    e.DataRow("本金本年减少") = DataTables("HBFX").Compute("sum(BJ)",filter)

End If

还有执行时,出现下列错误,也看不懂。。。

.NET Framework 版本:2.0.50727.3655
Foxtable 版本:2015.11.2.1
错误所在事件:表,DKHTB, DataColChanged
详细错误信息:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.EvaluateException: Cannot find column [lx].
   at System.Data.AggregateNode.Bind(DataTable table, List`1 list)
   at System.Data.DataExpression.Bind(DataTable table)
   at System.Data.DataExpression..ctor(DataTable table, String expression, Type type)
   at System.Data.DataTable.Compute(String expression, String filter)
   at Foxtable.DataTable.Compute(String Expression, String Filter)
   at UserCode.DataColChanged(DataColEventArgs e)
   --- End of inner exception stack trace ---
   at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at Foxtable.DataTable.oo0_o_o_(DataCol A_0)


--  作者:blsu33
--  发布时间:2016/1/25 15:07:00
--  
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.Data.EvaluateException: Cannot find column [lx].没找到这个列
--  作者:爱相随
--  发布时间:2016/1/25 15:12:00
--  
年度列有时需要进行比较,这样的情况下一般是设置为字符列还是整数列呢?
--  作者:爱相随
--  发布时间:2016/1/25 15:29:00
--  
列名改过来了,但年初余额数据不合
--  作者:爱相随
--  发布时间:2016/1/25 15:30:00
--  

怎样表达年初余额啊老师,有什么办法没有