以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 已解决--[求助]三议"临时表增加合计行合计列"之列名问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=38791) |
||||
-- 作者:jnletao -- 发布时间:2013/8/7 10:00:00 -- 已解决--[求助]三议"临时表增加合计行合计列"之列名问题 在表A 为 尺码转换为列名,如果 尺码有数字(比如:100 100# 170/80B )无法有效转换. 请教 1,在本程序中,如何 把 尺码设为列标题,并能赋值 运算 2,如何 指定 列宽,使表格显示紧凑合理.
![]() ![]() [此贴子已经被作者于2013-8-7 11:22:50编辑过]
|
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/8/7 10:06:00 -- 你可以换个思路,列名用顺序号,用列的标题表示尺码,这样就没有限制了。 |
||||
-- 作者:jnletao -- 发布时间:2013/8/7 10:08:00 -- 试了,但后期有赋值,没成功 Dim dtb As New DataTableBuilder("输入") Dim scs As List(of String) = DataTables("OrderColorSize").GetUniqueValues("OrderID = \'ACT201308-004\'","StyleColor") Dim cms As List(of String) = DataTables("OrderColorSize").GetUniqueValues("OrderID = \'ACT201308-004\'","StyleSize") dtb.AddDef("StyleColor", Gettype(String), 16,"","颜色\\规格") Dim cs As String = "" Dim cname As Integer = 0 For Each cm As String In cms dtb.AddDef("Size" & cname, Gettype(Integer), 16,"",cm) If cm = "" Or cm Is Nothing Then cm="0" cs += "isnull(" & cm & ",0,) +" cname += cname + 1 Next cs = cs.Trim("+") dtb.AddDef("合计", Gettype(Integer), cs) Tables("订单录入_TableColorSize").DataSource = dtb .BuildDataSource For Each sc As String In scs Dim rw As Row = Tables("订单录入_TableColorSize").AddNew Dim rs As List(of DataRow) = DataTables("OrderColorSize").Select("StyleColor = \'" & sc & "\' And OrderID = \'ACT201308-004\'") rw("StyleColor") = sc For Each r As DataRow In rs rw(r("StyleSize")) = r("StyleNum") Next Next Tables("订单录入_TableColorSize").AllowEdit = True Dim t As Table = Tables("订单录入_TableColorSize") Dim ndr As Row = t.AddNew ndr(0) = "合计" For i As Integer = 1 To t.Cols.Count - 2 ndr(i) = t.Compute("sum(" & t.Cols(i).Name & ")") Next |
||||
-- 作者:Bin -- 发布时间:2013/8/7 10:13:00 -- .
|
||||
-- 作者:jnletao -- 发布时间:2013/8/7 10:18:00 -- 不完美, 这样的话 # 在列标题中就不显示了.还 有我的尺码中可能有 有 / 比如 170/80B ,110#/65 Dim dtb As New DataTableBuilder("输入") Dim scs As List(of String) = DataTables("表A").GetUniqueValues("订单号 = \'0001\'","颜色") Dim cms As List(of String) = DataTables("表A").GetUniqueValues("订单号 = \'0001\'","尺码") dtb.AddDef("颜色", Gettype(String), 16) Dim cs As String = "" For Each cm As String In cms dtb.AddDef("尺码" & cm.trim("#"), Gettype(Integer), 16) If cm = "" Or cm Is Nothing Then cm="0" cs += "isnull(" & "尺码" & cm.trim("#") & ",0,) +" Next cs = cs.Trim("+") dtb.AddDef("合计", Gettype(Integer), cs) Tables("窗口1_Table1").DataSource = dtb .BuildDataSource For Each sc As String In scs Dim rw As Row = Tables("窗口1_Table1").AddNew Dim rs As List(of DataRow) = DataTables("表A").Select("颜色 = \'" & sc & "\' And 订单号 = \'0001\'") rw("颜色") = sc For Each r As DataRow In rs rw("尺码" & r("尺码").trim("#")) = r("数量") Next Next Tables("窗口1_Table1").AllowEdit = True Dim t As Table = Tables("窗口1_Table1") Dim ndr As Row = t.AddNew ndr(0) = "合计" For i As Integer = 1 To t.Cols.Count - 2 ndr(i) = t.Compute("sum(" & t.Cols(i).Name & ")") Next |
||||
-- 作者:Bin -- 发布时间:2013/8/7 10:21:00 -- 那你不一次性说清楚,老是藏着掖着,做出来了,再说我还有这个情况! 稍等一下吧! |
||||
-- 作者:jnletao -- 发布时间:2013/8/7 10:25:00 -- 老大,是俺不对,可是俺都说清楚了.是您没看清呀. |
||||
-- 作者:Bin -- 发布时间:2013/8/7 10:29:00 -- .
|
||||
-- 作者:Bin -- 发布时间:2013/8/7 10:30:00 -- 指定列宽 Tables("表A").Cols("某列").Width=50 可以这么做. |
||||
-- 作者:jnletao -- 发布时间:2013/8/7 10:35:00 -- ![]() |