以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SQLGroupTableBuilder提示输出别名错误  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79608)

--  作者:chnfo
--  发布时间:2016/1/5 22:29:00
--  [求助]SQLGroupTableBuilder提示输出别名错误
内部表A和B。
新建一个窗口,放一个button,一个Normal型的表,不绑定任何表。
button事件如下:

Dim tbl As Table = e.Form.Controls("Table1").Table

Dim g As New SQLGroupTableBuilder("KK", "A")
g.AddTable("A","BID","B","ID")
g.Groups.AddDef("Mon")
g.Groups.AddDef("BC")
g.Totals.AddExp("X","WC - WL")
g.Totals.AddExp("Y","EC - EL ")
g.Build()        ‘-----------注意到如果不加这一句,就没有问题

tbl.DataSource  = g.BuildDataSource()

运行的结果报出错误如下:
统计错误,错误原因:
输出别名“X”重复。

如果把这一句注释掉就没有问题。
g.Build()        ‘-----------注意到如果不加这一句,就没有问题

这是为什么呢?因为我想用KK表来定制模板输出报表。

--  作者:大红袍
--  发布时间:2016/1/5 22:39:00
--  

不要重复build,重复肯定会报错。

 

你可以这样写

 

tbl.DataSource  = DataTables("KK")

 

或者去掉 g.Build(),你可以用副本表来定制模板嘛,和直接用KK是一样的意思。


--  作者:chnfo
--  发布时间:2016/1/5 23:05:00
--  
本来是想如此,但我试之后,发现在窗口表加载事件中的字体设置就失效了。比如用了dim fnt as new font(currenttable.font.name,12,tbl.font.style) tbl.font =fnt,里示出来的还是9号字
--  作者:大红袍
--  发布时间:2016/1/5 23:15:00
--  

这样写,绝对有效

 

tbl.DataSource  = DataTables("KK")

dim fnt as new font(tbl.font.name,12,tbl.font.style)

tbl.font =fnt


--  作者:chnfo
--  发布时间:2016/1/7 17:09:00
--  
Dim tbl As Table = e.Form.Controls("Table1").Table

Dim jb As new SQLJoinTableBuilder("cs","A")
jb.ConnectionName 等于 "连接名" \'---如果用=,显示出来就是ab.c了,代替一下
jb.AddTable("A","BID","B","ID")
jb.AddCols("AA", "AB","AC","{B}.ID")
jb.AddExp("SaveA","表达式一")
jb.AddExp("SaveB","表达式二")

Dim g As new GroupTableBuilder("TempABC",jb.BuildSQL)
jb.ConnectionName 等于 "连接名"
g.Groups.AddDef("AA")
g.Groups.AddDef("AB")
g.Totals.AddDef("SaveA")
g.Totals.AddDef("SaveB")
g.Build() \'生成统计表

\'tbl.DataSource = g.BuildDataSource()    \'--如果用这一行,窗口表显示的就是12的字体
tbl.DataSource = DataTables("TempABC")  ‘--如果有管一行,窗口显示的还是9的字体
Dim fnt As New Font(tbl.Font.Name, 12, tbl.Font.Style)
tbl.Font = fnt


另外,袍兄说
或者去掉 g.Build(),你可以用副本表来定制模板嘛,和直接用KK是一样的意思
这个用副本表来定制模板,要咋个整法?

这么神奇?
[此贴子已经被作者于2016/1/7 17:14:33编辑过]

--  作者:大红袍
--  发布时间:2016/1/7 17:11:00
--  
不,可,能,上传例子。
--  作者:chnfo
--  发布时间:2016/1/7 17:19:00
--  
哈哈,晚上回去整个你看
--  作者:chnfo
--  发布时间:2016/1/7 20:45:00
--  
袍兄,窗口中把12号字的按钮多点两次,表中的字就成9号了。右边是不设字体的表
--  作者:chnfo
--  发布时间:2016/1/7 21:09:00
--  
袍兄,这是附件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目9.zip


--  作者:大红袍
--  发布时间:2016/1/7 21:34:00
--  
Dim fnt As New Font(tbl.Font.Name, 12, tbl.Font.Style)
Tables("KKK").Font = fnt
tbl.DataSource = DataTables("KKK")
tbl.Font = fnt