以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 什么鬼,下面的代码在全局表事件中,菜单不能切换 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77088) |
||||
-- 作者:hbhb -- 发布时间:2015/11/10 21:26:00 -- 什么鬼,下面的代码在全局表事件中,菜单不能切换 大师:什么代码耗时? If e.Table.DataTable.Name.Contains("附注表") Then Dim r As Row \'---项目行--- If Vars("fzToTal").count > 0 Then Dim d As Double \'-----格式数据--- If Double.TryParse(e.text.replace(",",""), d) Then e.text = format(d, "n") End If Dim sum(Vars("fzToTal").count - 1) As object \'---合计数组 Dim sum2(Vars("fzToTal").count - 1) As object \'----财务报表数组 e.Table.DataTable.AddUserStyle("abc",Color.LightBLue,Color.blue) If e.Row(e.Table.Cols(0).name) = "合计" Then e.Style = "abc" For n As Integer = 0 To e.Row.Index -1 r = e.Table.Rows(n) If r(e.Table.Cols(0).name) <> "合计" Then For i As Integer = 1 To sum.length - 1 Dim d1 As Double \'If r.IsNull(Vars("fzToTal")(i)) = False Then If str(r(Vars("fzToTal")(i))).contains("%") = False Then If Double.TryParse(r(Vars("fzToTal")(i)),d1) Then sum(i) += val(d1) If Format(val(sum(i)),"n") <> 0 And Format(val(sum(i)),"n") <> "0" And Format(val(sum(i)),"n") IsNot Nothing Then e.Row(Vars("fzToTal")(i)) = Format(val(sum(i)),"n") Else e.Row(Vars("fzToTal")(i)) = Nothing End If Else \' e.Row(Vars("fzToTal")(i)) = Format(val(sum(i)),"n") End If Else If Double.TryParse(r(Vars("fzToTal")(i)).replace("%",""),d1) Then sum(i) += val(d1)/100 If Format(val(sum(i)),"n") <> 0 And Format(val(sum(i)),"n") <> "0" And Format(val(sum(i)),"n") IsNot Nothing Then e.Row(Vars("fzToTal")(i)) = Format(sum(i),"Percent") Else e.Row(Vars("fzToTal")(i)) = Nothing End If Else e.Row(Vars("fzToTal")(i)) = Format(sum(i),"Percent") End If End If \'End If Next End If Next End If If e.Row(e.Table.Cols(0).name) = "差异" Then Dim idx1 As Integer = e.Table.FindRow(e.Table.Cols(0).name & " = \'财务报表数\'") Dim idx2 As Integer = e.Table.FindRow(e.Table.Cols(0).name & " = \'合计\'") For i As Integer = 1 To sum2.length - 1 If str(e.Table.Rows(idx2)(Vars("fzToTal")(i))).contains("%") = False Then If val(str(e.Table.Rows(idx1)(Vars("fzToTal")(i))).replace(",","")) <> 0 Then If format((val(str(e.Table.Rows(idx1)(Vars("fzToTal")(i))).replace(",","")) - e.Table.Rows(idx2)(Vars("fzToTal")(i))),"n") <> 0 And format((val(str(e.Table.Rows(idx1)(Vars("fzToTal")(i))).replace(",","")) - e.Table.Rows(idx2)(Vars("fzToTal")(i))),"n") <> "0" Then e.Row(Vars("fzToTal")(i)) = format((val(str(e.Table.Rows(idx1)(Vars("fzToTal")(i))).replace(",","")) - e.Table.Rows(idx2)(Vars("fzToTal")(i))),"n") Else e.Row(Vars("fzToTal")(i)) = Nothing End If End If End If Next End If End If End If |
||||
-- 作者:hbhb -- 发布时间:2015/11/10 21:44:00 -- 整整三天,就是以上的鸟代码搞得我头昏脑胀,一会儿死机,一会儿不能切换菜单。一个自动计算如此简单地功能,官方就不能来个成熟的实例?什么鸟玩意? 什么统计查询?刻板、死板!进销存的木乃伊!
|
||||
-- 作者:大红袍 -- 发布时间:2015/11/10 21:46:00 -- Dim r As Row If e.Row(e.Table.Cols(0).name) = "合计" Then |
||||
-- 作者:大红袍 -- 发布时间:2015/11/10 21:47:00 -- 要改东西太多,做个简单例子上来吧。 |
||||
-- 作者:hbhb -- 发布时间:2015/11/10 22:10:00 -- 搞个什么鸟合计模式。用的多的的随意小计,合计,总计。加减运算等。你就不能告诉合计的设计是怎么搞的? 不在方便、快捷、实用的小模块上面下功夫,简直就是扯淡。 如果没有袍大师的指导,靠木乃伊的八股文帮助,能写出像样的实用的软件来?胡扯+胡闹。 |
||||
-- 作者:大红袍 -- 发布时间:2015/11/10 22:11:00 -- 上传项目测试啊。 |
||||
-- 作者:hbhb -- 发布时间:2015/11/10 22:31:00 -- 如实例,就这么简单地要求: 1、自动计算出合计,如果输入的是%,合计自动合计为% 2、自动计算出差异 3、空及0不显示
4、格式为保留小数位2位的带千位符的数字格式 5、如果是数字靠右停靠,如果不是靠左停靠 6、合计行颜色单独设置
|
||||
-- 作者:大红袍 -- 发布时间:2015/11/10 23:04:00 -- Dim r As Row Dim d As Double If e.Row(e.Table.Cols(0).name) = "合计" Then If e.Row(e.Table.Cols(0).name) = "差异" Then |
||||
-- 作者:hbhb -- 发布时间:2015/11/10 23:36:00 -- 放在表a的dracell事件中出错? |
||||
-- 作者:hbhb -- 发布时间:2015/11/11 0:02:00 -- |