以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 统计表中月份不以数字显示  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=88478)

--  作者:2900819580
--  发布时间:2016/8/3 16:21:00
--  [求助] 统计表中月份不以数字显示
Dim g As New CrossTableBuilder("业务月份统计", DataTables("订单明细"))
g.HGroups.AddDef("出货日期", "月")
g.VGroups.AddDef("业务员")
g.Totals.AddDef("金额", "金额")
g.Build()
\'MainTable = Tables("统计表4")

这样生成的统计表列中月的是1,2,3,4

可不可以变成1月,2月,3月

--  作者:2900819580
--  发布时间:2016/8/3 16:32:00
--  
顶一下
--  作者:2900819580
--  发布时间:2016/8/3 17:26:00
--  
请大家帮忙
--  作者:大红袍
--  发布时间:2016/8/3 17:26:00
--  
Dim g As New CrossTableBuilder("业务月份统计", DataTables("订单明细"))
g.HGroups.AddDef("出货日期", "月")
g.VGroups.AddDef("业务员")
g.Totals.AddDef("金额", "金额")
g.Build()
Dim t As Table = Tables("业务月份统计")
t.DataTable.DataCols.Add("月份", Gettype(String), 10, "Convert(月,\'System.String\') + \'月\'")
t.cols("月").Visible = False
t.cols("月份").Move(0)

--  作者:2900819580
--  发布时间:2016/8/3 20:01:00
--  
Dim g As New CrossTableBuilder("业务月份统计", DataTables("订单明细"))
g.HGroups.AddDef("业务员")
g.VGroups.AddDef("出货日期", "{0}月")
g.Totals.AddDef("金额", "金额")
g.Build()
\'MainTable = Tables("统计表4")
Tables("统计_统计表").DataSource = DataTables("业务月份统计")
Tables("统计_统计表").AutoSizeCols
Dim Chart As WinForm.Chart = e.Form.Controls("月业绩图表")

Dim de As String = Date.Today.Month -1 & "月"


\'Dim Chart As WinForm.Chart \'定义一个图表变量
Dim Series As WinForm.ChartSeries \'定义一个图系变量
Dim t As Table = Tables("业务月份统计") \'定义一个变量t引用数据表
\'Chart = e.Form.Controls("Chart1") \' 引用窗口中的图表

Chart.ChartType = ChartTypeEnum.Bar \'图表类型改为Bar(条形)
Series = Chart.SeriesList.Add() \'增加一个图系
Series.Length = t.Rows.Count \'设置图系的长度

For r As Integer = 0 To t.Rows.Count - 1
    Series.X(r) = r \' t.Rows(r)("月") & "月"
    \'Series.X(i) = t.Rows(i)("月份") \'指定水平坐标
    Series.Y(r) = t.Rows(r)("7月")
    Chart.AxisX.SetValueLabel(r, t.Rows(r)("业务员")) \'指定字符表示
Next

Chart.AxisX.AnnoWithLabels = True \'启用字符标示
Series.DataLabelText = "{#YVAL}"


为什么会有错误提示,说列“7月”不属于表 业务月份统计。
[此贴子已经被作者于2016/8/3 20:01:53编辑过]

--  作者:大红袍
--  发布时间:2016/8/3 20:06:00
--  

 你看到的不是列名。你可以通过查看表结构看它的列名

 

http://www.foxtable.com/webhelp/scr/0193.htm

 


--  作者:2900819580
--  发布时间:2016/8/4 7:41:00
--  
Dim g As New CrossTableBuilder("业务月份统计", DataTables("订单明细"))
g.HGroups.AddDef("业务员")
g.VGroups.AddDef("出货日期", "{0}月")
g.Totals.AddDef("金额", "金额")
g.Build()
大红袍老师,我看到了,那怎么样可以把标题跟列名一样!

问题2,如何可以查找表中是否存在某列,,
如果不存在的话,
则显示最大的月份列


此主题相关图片如下:4.png
按此在新窗口浏览图片
[此贴子已经被作者于2016/8/4 8:11:22编辑过]

--  作者:Hyphen
--  发布时间:2016/8/4 8:58:00
--  
1.参考http://www.foxtable.com/webhelp/scr/1275.htm


If DataTables("订单").DataCols.Contains("金额") Then
    \'......

End If

--  作者:2900819580
--  发布时间:2016/8/4 9:35:00
--  
主题最新回顾(发布时间:2016/8/4 8:58:00)
--  作者:Hyphen 
--  
1.参考http://www.foxtable.com/webhelp/scr/1275.htm


If DataTables("订单").DataCols.Contains("金额") Then
    \'......

End If

Hyphen 老师,我那个是用统计表生成的,你那代码,我如何再修改过来。问题是列名里会有什么,也得年明细表里的内容。没办法用名称直接替换

Dim de As String = Date.Today.Month -1 & "月"
dim k as string
For Each dc As DataCol In DataTables("业务月份统计").DataCols
  if dc.name = de then
k= dc.name
else
最新月份的列(这里的代码怎么写)
Next

--  作者:大红袍
--  发布时间:2016/8/4 9:41:00
--  

Dim de As String = Date.Today.Month -1 & "月"
Dim k As String = ""
For Each c As Col In Tables("业务月份统计").Cols
    If c.Caption = de Then
        k = dc.name
        Exit For
       
    End If
    k = dc.name
Next

msgbox(k)