以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 垂直转换水平表百分比设置问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=99869) |
-- 作者:douglas738888 -- 发布时间:2017/4/28 11:21:00 -- 垂直转换水平表百分比设置问题 请教老师,以下代码怎样设置增加列的百分比,和表头某列的百分比
Dim dtb As New DataTableBuilder("表D") |
-- 作者:有点色 -- 发布时间:2017/4/28 11:49:00 -- Dim dtb As New DataTableBuilder("表D") dtb.AddDef("目标产值",Gettype(String),10) dtb.AddDef("奖金提取比例",Gettype(Double)) dtb.AddDef("总奖金",Gettype(String),10) For Each v As String In DataTables("表B").GetValues("净利润率") dtb.AddDef(v, Gettype(Double), "", Format(v, "0.00%")) Next dtb.Build() For Each v As String() In DataTables("表B").GetValues("目标产值|奖金提取比例|总奖金") Dim dr1 As DataRow = DataTables("表D").AddNew() dr1("目标产值") = v(0) dr1("奖金提取比例") = v(1) dr1("总奖金") = v(2) For Each dr2 As DataRow In DataTables ("表B").Select("目标产值 = \'" & v(0) & "\' And 奖金提取比例 = \'" & v(1) & "\' And 总奖金 = \'" & v(2) & "\'") dr1(dr2("净利润率")) = dr2("奖金额") Next Next Tables("总因子_Table1").DataSource = DataTables("表D") DataTables("总因子_Table1").DataCols("奖金提取比例").SetFormat("0.00%") 这个部分是增加列,这个代码无法生成0.00%,现在显示的是0.15 |
-- 作者:douglas738888 -- 发布时间:2017/4/28 12:13:00 -- 感谢老师,第一个问题,我忽略把DOUBLE写成了STRING,自然不能转换为0.00%, 第二额问题, For Each v As String In DataTables("表B").GetValues("净利润率") 原来净利润率的列是DOUBLE属性,现在转换过来是标题,您指导的代码转换后标题全部显示0.00%,不会GETVALUES得到量,比如3.00% 4.00% 我把 For Each v As String 改成 For Each v As DOUBLE报错 采用以下方法可生成,但是不是随V的动态,也有问题 With DataTables("表D") [此贴子已经被作者于2017/4/28 12:23:24编辑过]
|
-- 作者:有点色 -- 发布时间:2017/4/28 12:14:00 -- 哦,改成
dtb.AddDef(v, Gettype(Double), "", Format(val(v), "0.00%")) |
-- 作者:douglas738888 -- 发布时间:2017/4/28 12:26:00 -- 感谢老师,应该就是帮助中的 最常见的转换应该是将字符转换为数字,对于这种转换,有更直接的方法。 例如: Dim s1 As String = "abc"Dim s2 As String = "123.12" Output.Show(Val(s1) + 100) \'等于100 Output.Show(Val(s2) + 100) \'等于223.12 |