Foxtable(狐表)用户栏目专家坐堂 → [求助]生成批量统计图


  共有2417人关注过本帖树形打印复制链接

主题:[求助]生成批量统计图

帅哥哟,离线,有人找我吗?
sunion
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2569 威望:0 精华:0 注册:2018/1/11 14:52:00
[求助]生成批量统计图  发帖心情 Post By:2019/6/9 11:35:00 [只看该作者]

以下代码根据表A生成统计表,问题是所有的产品的折线图都是显示在同一个统计图中
能不能实现——每一个产品都生成一个独立的折线统计图,比如5个产品,就生成5个统计图,然后把5个图全部插入报表word中
以下代码在哪里修改呢?
请老师们指教,感谢!

'制作报表
Dim doc As New PrintDoc '定义一个报表
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 15 '设置上边距
Doc.PageSetting.BottomMargin = 15 '设置下边距


Dim Chart  As WinForm.Chart  '定义一个图表变量
Dim Series As WinForm.ChartSeries '定义一个图系变量
Dim t As Table =  Tables("表A") '定义一个变量t引用数据表
Chart = e.Form.Controls("Chart1") ' 引用窗口中的图表
Chart.VisualEffect = False
Chart.SeriesList.Clear() '清除图表原来的图系
For r As Integer = 0 To t.Rows.count - 1
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = t.rows(r)("产品")  '设置图系的标题
    Series.Length = t.Cols.Count - 1  '设置图系的长度
    For c As Integer = 1 To t.Cols.count -1
        Series.X(c - 1) = c - 1
        Series.Y(c - 1) = t.Rows(r)(c)
        Chart.AxisX.SetValueLabel(c - 1, t.Cols(c).caption) '指定字符表示
    Next
Next
Chart.AxisX.AnnoWithLabels = True '启用字符标示
Chart.LegendVisible = True '显示图列
Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)

'-----------引用插入统计图
Dim rm As New prt.RenderImage
rm.Image = Chart.Image()
rm.Width = "Parent.Width"
rm.Height = "Auto" '高度由图片大小自动决定
rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
rm.Style.ImageAlign.StretchHorz = True '禁止拉伸
'rm.Style.ImageAlign.StretchVert = False
rm.Style.Spacing.Top = 5
doc.Body.Children.Add(rm) '将图片对象加入报表

Doc.Preview() '预览报表
[此贴子已经被作者于2019/6/9 11:39:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/9 11:51:00 [只看该作者]

'制作报表
Dim doc As New PrintDoc '定义一个报表
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 15 '设置上边距
Doc.PageSetting.BottomMargin = 15 '设置下边距

Dim t As DataTable =  DataTables("表A") '定义一个变量t引用数据表
For Each cp As String In t.GetValues("第一列")
    Dim drs = t.Select("第一列='" & cp & "'")
    Dim Chart  As WinForm.Chart  '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
   
    Chart = new ChartBuilder
    Chart.VisualEffect = False
    Chart.SeriesList.Clear() '清除图表原来的图系
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = drs.count
    Series.Text = cp
    For r As Integer = 0 To drs.count - 1
        Series.X(r) = r
        Series.Y(r) = drs(r)("第三列")
        Chart.AxisX.SetValueLabel(r, drs(r)("第一列")) '指定字符表示
    Next
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)
   
   
    '-----------引用插入统计图
    Dim rm As New prt.RenderImage
    rm.Image = Chart.Image()
    rm.Width = "Parent.Width"
    rm.Height = "Auto" '高度由图片大小自动决定
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
    rm.Style.ImageAlign.StretchHorz = True '禁止拉伸
    'rm.Style.ImageAlign.StretchVert = False
    rm.Style.Spacing.Top = 5
    doc.Body.Children.Add(rm) '将图片对象加入报表
Next

Doc.Preview() '预览报表


 回到顶部
帅哥哟,离线,有人找我吗?
sunion
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:241 积分:2569 威望:0 精华:0 注册:2018/1/11 14:52:00
  发帖心情 Post By:2019/6/9 12:13:00 [只看该作者]

老师你好

红色部分绑定时每个图只有一个点,能不能设置成绑定第2列、第3列、第4列、第6列、第7列?

这样每个图生成的就是一条折线(根据第2列、第3列、第4列、第6列、第7列取值

谢谢!


'制作报表
Dim doc As New PrintDoc '定义一个报表
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 15 '设置上边距
Doc.PageSetting.BottomMargin = 15 '设置下边距

Dim t As DataTable =  DataTables("表A") '定义一个变量t引用数据表
For Each cp As String In t.GetValues("第一列")
    Dim drs = t.Select("第一列='" & cp & "'")
    Dim Chart  As WinForm.Chart  '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    
    Chart = new ChartBuilder
    Chart.VisualEffect = False
    Chart.SeriesList.Clear() '清除图表原来的图系
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Length = drs.count
    Series.Text = cp
    For r As Integer = 0 To drs.count - 1
        Series.X(r) = r
        Series.Y(r) = drs(r)("第三列")      ‘能不能设置成绑定第2列、第3列、第4列、第6列、第7列?
        Chart.AxisX.SetValueLabel(r, drs(r)("第一列")) '指定字符表示
    Next
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)
    
    
    '-----------引用插入统计图
    Dim rm As New prt.RenderImage
    rm.Image = Chart.Image()
    rm.Width = "Parent.Width"
    rm.Height = "Auto" '高度由图片大小自动决定
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
    rm.Style.ImageAlign.StretchHorz = True '禁止拉伸
    'rm.Style.ImageAlign.StretchVert = False
    rm.Style.Spacing.Top = 5
    doc.Body.Children.Add(rm) '将图片对象加入报表
Next

Doc.Preview() '预览报表

[此贴子已经被作者于2019/6/9 12:22:02编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/9 17:26:00 [只看该作者]

Dim doc As New PrintDoc '定义一个报表
Doc.PageSetting.LeftMargin = 15 '设置左边距
Doc.PageSetting.RightMargin = 15 '设置右边距
Doc.PageSetting.TopMargin = 15 '设置上边距
Doc.PageSetting.BottomMargin = 15 '设置下边距


Dim t As Table =  Tables("表A") '定义一个变量t引用数据表
For r As Integer = 0 To t.Rows.count - 1
    Dim Chart  As WinForm.Chart  '定义一个图表变量
    Dim Series As WinForm.ChartSeries '定义一个图系变量
    Chart = new ChartBuilder
    Chart.VisualEffect = False
    Chart.SeriesList.Clear() '清除图表原来的图系
    Series = Chart.SeriesList.Add() '增加一个图系
    Series.Text = t.rows(r)("产品")  '设置图系的标题
    Series.Length = t.Cols.Count - 1  '设置图系的长度
    For c As Integer = 1 To t.Cols.count -1
        Series.X(c - 1) = c - 1
        Series.Y(c - 1) = t.Rows(r)(c)
        Chart.AxisX.SetValueLabel(c - 1, t.Cols(c).caption) '指定字符表示
    Next
    Chart.AxisX.AnnoWithLabels = True '启用字符标示
    Chart.LegendVisible = True '显示图列
    Chart.LegendCompass= CompassEnum.South  '图列显示在南方(底端)
   
   
    '-----------引用插入统计图
    Dim rm As New prt.RenderImage
    rm.Image = Chart.Image()
    rm.Width = "Parent.Width"
    rm.Height = "Auto" '高度由图片大小自动决定
    rm.Style.ImageAlign.AlignHorz = prt.ImageAlignHorzEnum.Center '居中显示
    rm.Style.ImageAlign.StretchHorz = True '禁止拉伸
    'rm.Style.ImageAlign.StretchVert = False
    rm.Style.Spacing.Top = 5
    doc.Body.Children.Add(rm) '将图片对象加入报表
   
   
Next

Doc.Preview() '预览报表


 回到顶部
帅哥哟,离线,有人找我吗?
kaituozhe
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:九尾狐 帖子:2236 积分:15335 威望:0 精华:0 注册:2015/7/18 10:10:00
  发帖心情 Post By:2019/6/9 18:40:00 [只看该作者]

怎么能设置上述分析图的字体及大小

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/6/10 9:27:00 [只看该作者]

以下是引用kaituozhe在2019/6/9 18:40:00的发言:
怎么能设置上述分析图的字体及大小

 

请截图具体说明哪里的字体,哪里的大小。

 

 


 回到顶部