以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  生成的统计表和查询表  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=123454)

--  作者:susu312
--  发布时间:2018/8/15 11:28:00
--  生成的统计表和查询表


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

老师,如上图,有两个问题请教:

1、您 看生成的统计表,那个黄色那块,可以不让选定么?就不出现黄色那块,应该在哪里设置了?

2、我发现每次新生成一个查询表或统计表 ,都要在一个新的窗口生成貌似,它可以就在当前窗口生成么,与当前窗口并列?

 

麻烦老师了?


--  作者:有点甜
--  发布时间:2018/8/15 11:39:00
--  

1、Tables("表A").Select(-1,-1)

 

2、加一个窗口,放入table,设置datasource

 

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

 


--  作者:susu312
--  发布时间:2018/8/15 16:42:00
--  
以下是引用有点甜在2018/8/15 11:39:00的发言:

1、Tables("表A").Select(-1,-1)

 

2、加一个窗口,放入table,设置datasource

 

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

 

窗口一:点击确定生成统计表1


此主题相关图片如下:1.png
按此在新窗口浏览图片

窗口二:新建的窗口,里面放一个表,这个表的datasource是窗口1生成的统计表1


此主题相关图片如下:2.png
按此在新窗口浏览图片

 

窗口二中按钮的代码如下:

Tables("窗口1_Table1").DataSource = DataTables(vars(“tableName"))

 

老师,我想实现,窗口点击确定后,生成的统计表1在窗口二中显示?

 

我是不是得在窗口1中的确定按钮中加入代码,把”统计表1“传给vars, 然后触发窗口二中的按钮点击

 

老师,您看我的思路对着不?那个触发是怎么实现的?



--  作者:有点甜
--  发布时间:2018/8/15 16:49:00
--  

Tables("窗口1_Table1").DataSource = 交叉统计.buildDataSource


--  作者:susu312
--  发布时间:2018/8/15 17:04:00
--  
以下是引用有点甜在2018/8/15 16:49:00的发言:

Tables("窗口1_Table1").DataSource = 交叉统计.buildDataSource

Tables("统计1").Select(-1,-1)
b.Build \'生成统计表
Tables("窗口1_Table1").DataSource = b.BuildDataSource()

 

老师,我在交叉统计的代码里,生成统计表后,写了上面这句话,但在生成表后,提示不存在 名称为:窗口1_Table1的表

 

我有窗口1,里面放了一个表:Table1,  我把表名改为:窗口1_Table1,也不对?

 

老师,我这交叉统计窗口里面,它是不是找不到外面的窗口 ,应当根据这个表名也是没问题的呀?

不知道我那里想错了?

请老师指点一下?


--  作者:有点甜
--  发布时间:2018/8/15 17:09:00
--  

删除这两句

 

Tables("统计1").Select(-1,-1)
b.Build \'生成统计表

 

改成


forms("窗口1").controls("Table1").Table.DataSource = b.BuildDataSource()

forms("窗口1").controls("Table1").Table.select(-1,-1)


--  作者:susu312
--  发布时间:2018/8/15 17:28:00
--  
以下是引用有点甜在2018/8/15 17:09:00的发言:

删除这两句

 

Tables("统计1").Select(-1,-1)
b.Build \'生成统计表

 

改成


forms("窗口1").controls("Table1").Table.DataSource = b.BuildDataSource()

forms("窗口1").controls("Table1").Table.select(-1,-1)

  老师,这是我统计窗口中确定按钮的所有代码:

 

\'\'定义数据三个统计1\\2\\3的数据字典,便于引用显示值
Dim dmp1 = Tables("统计1").cols("分组列").DataMap
Dim dmp2 = Tables("统计2").cols("分组列").DataMap
Dim dmp3 = Tables("统计3").cols("统计列").DataMap
Dim b As New SQLCrossTableBuilder("统计表1","person")
\'\'数据库指定
b.C
\'\'设置水平分组
For Each r As Row In Tables("统计1").Rows
   If r.IsNull("分组列")=False Then
        If r.IsNull("日期分组")=False Then
           If r("日期分组") = "年" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Year,  r("标题") )
            ElseIf r("日期分组") = "月" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Month, r("标题") )
            End If
        Else
            b.HGroups.AddDef(r("分组列"),r("标题") )\'添加列用于水平分组
        End If
   End If
Next
\'\'设置垂直分组
For Each r As Row In Tables("统计2").Rows
  If r.IsNull("分组列")=False Then
        If r.IsNull("日期分组")=False And  r.IsNull("模式")=False  Then
            If r("日期分组") = "年" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Year, r("模式"))
            ElseIf r("日期分组") = "月" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Month, r("模式"))
            End If

        ElseIf  r.IsNull("日期分组")=False And  r.IsNull("模式")=True  Then

           If r("日期分组") = "年" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Year )
           ElseIf r("日期分组") = "月" Then
                b.VGroups.AddDef(r("分组列"), DateGroupEnum.Month )
           End If

        ElseIf  r.IsNull("日期分组")=True And  r.IsNull("模式")=False  Then
               b.VGroups.AddDef( r("分组列"), r("模式"))
        Else
               b.VGroups.AddDef(r("分组列"))   \'添加列用于垂直分组
        End If
   End If
Next
\'\'设置统计
For Each r As Row In Tables("统计3").Rows
  If r.IsNull("统计列")=False Then
      b.Totals.AddDef(r("统计列"), AggregateEnum.Count,r("标题")) \'添加列用于统计
  End If
Next
\'
\'\'设置统计选项
If e.Form.Controls("CheckBox1").Checked = True Then   \'水平方向生成汇总
    b.HorizontalTotal = True
End If
If e.Form.Controls("CheckBox2").Checked = True Then   \'垂直方向生成汇总
    b.VerticalTotal = True
    b.Horiz
End If
If e.Form.Controls("CheckBox3").Checked = True Then   \'水平占比
    b.HorizontalProportion=True
End If

If e.Form.Controls("CheckBox4").Checked = True Then   \'水平占比
    b.OrderByTotal=True
End If
\'\'获取统计条件
b.Filter=vars("filter")
\'Tables("统计1").Select(-1,-1)
\'b.Build \'生成统计表
forms("窗口1").controls("Table1").Table.DataSource = b.BuildDataSource()
forms("窗口1").controls("Table1").Table.Select(-1,-1)

e.Form.Close

 

 

这次我填入分组列相关的,点击确定按钮时提示:未将对象引用到对象实例

 

麻烦老师了

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


--  作者:有点甜
--  发布时间:2018/8/15 17:47:00
--  

1、不写红色代码不报错?

 

2、你窗口1打开了没有?

 

3、自己不会排除错误就上传实例。


--  作者:susu312
--  发布时间:2018/8/15 17:54:00
--  
以下是引用有点甜在2018/8/15 17:47:00的发言:

1、不写红色代码不报错?

 

2、你窗口1打开了没有?

 

3、自己不会排除错误就上传实例。

 

老师,我会了, 是我窗口1么打开,谢谢老师


--  作者:susu312
--  发布时间:2018/8/15 20:09:00
--  
以下是引用有点甜在2018/8/15 17:47:00的发言:

1、不写红色代码不报错?

 

2、你窗口1打开了没有?

 

3、自己不会排除错误就上传实例。

老师, 真的不好意思啊,关于这个问题我再问一下哈?

 

forms("窗口1").Open
forms("窗口1").controls("Table1").Table.DataSource = b.BuildDataSource()
forms("窗口1").controls("Table1").Table.Select(-1,-1)

 

我在生成统计表之前打开窗口,但是这样窗口打开后,就不在执行后面两句了好像?

 

我想的是,点击统计窗口的确定按钮后,直接 打开一个窗口,这个窗口里面有生成的统计表?

 

您看这个可行不,实在不可行,我就放弃这个想法