以文本方式查看主题

-  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,如何 指定 列宽,使表格显示紧凑合理.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:颜色尺码 (2) (1).table


图片点击可在新窗口打开查看此主题相关图片如下:列名为数字时.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于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
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:颜色尺码 (2) (1).table


--  作者: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
--  
.
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:颜色尺码 (2) (1).table


--  作者:Bin
--  发布时间:2013/8/7 10:30:00
--  
指定列宽 Tables("表A").Cols("某列").Width=50  可以这么做.
--  作者:jnletao
--  发布时间:2013/8/7 10:35:00
--  
图片点击可在新窗口打开查看老大真牛X,我对老大的崇拜如黄河之水滔滔不绝,…………………………………………