vb.net – 如何将大量表格数据拆分为较小的相关表? (不是数据库问题)

我真的希望我能以一种可以理解的方式描述这个问题.这是一个我无法开始解决的难题,即使我(大多数)理解它.我只是不确定从哪里开始,我真的希望有人可以让我朝着正确的方向前进.

我有一个大的数据表.它描述了对象之间的关系.假设Y轴具有编号为1-1000的项目,并且X轴也具有项目1-1000.如果Y轴上的项目#234与X上的项目#791相关,则表格中将有一个标记,其中行和列交叉.在某些行业中,这被称为真值表.人们可以一眼就看出系统中有多少项相互关联.表中的标记有助于识别趋势和模式.

这是关于表格性质的一些其他有用的东西:

>任一轴上每个项目的关系数(r)的整个范围可以是1< = r< = axisTotal.
> X轴和Y轴将共享公共项目,但每个轴也将具有另一个轴不具有的项目.
>每个项目每个轴只存在一次.它可以在X和Y上,但它只会在每一次上.
>每个轴上的项目总数很可能不相等.每个轴可以有50到1000个项目.

最终结果是这将是一个需要打印的报告.我们已经成功地在11英寸X 17英寸纸上打印了一张桌子,每个轴上有大约100-150个项目.除此之外,它开始变得如此之小,以至于难以理解.

我想要做的是将超大表拆分成更小的表,但相关点需要保持在一起.如果我在X上抓取项目1-100,那么我将需要与Y相关的每个项目.

我已经生成了许多这些表,虽然关系数量可以是任意的,但我从未见过项目与所有其他项目相关.因此在实际操作中,范围更像是1< = r< =(10%* axisTotal).如果项目的关系超出此范围,则可以将其拆分为多个表格,但这根本不是最优的. 在一天结束时,我认为如果将1000×1000项目表分成8到10个较小的相关表格的打印页面,我们和我们的客户会很高兴. 任何指导都将是一个很大的帮助!谢谢. – -编辑 – –
另外值得注意的是,表中没有空行或列. x轴和y轴上的每个项目都与相对轴上的至少一个项目相关.

– -编辑 – –
这是我正在描述的一个小真值表的例子:.每行和每列至少有一个关系.

– -编辑 – –
2011年5月18日
对于它的价值,我在这个项目上的表现相当不错,我被拉了几个星期.所以在我回到这个问题之前会有一段时间.但这是我必须尽快解决的问题.

– -编辑 – –
2011年7月11日
游民.好吧,看起来我现在无法解决这个问题.我真的希望能够弄明白这一点.通过讨论,我们决定在Excel电子表格中将真值表作为主报表的附加资源. Excel 2007及更高版本将处理1000多列,这些就足够了.另外,我们添加了一些VBA,允许观众双击列标题.此操作会将行减少到仅存在交互的行.然后它删除空列.通过这种方式,他们可以根据他们想要查看的项目看到一个小的子表,并且可以根据需要进行打印.

解决方法

这不是一个答案,我只想尝试更好地可视化您的数据.它看起来像这样吗?

Alice  Bob  Charlie ... Zelda
Shoes     X            X
Hats            X                 X
Gloves                 X
...
Pants           X

编辑

是否需要以表格格式显示数据?或者你可以列出每一个?就像是:

>爱丽丝

>鞋子

>鲍勃

>帽子
>裤子

>查理

>鞋子
>手套

>塞尔达

>帽子

或者另一种方式:

>鞋子

>爱丽丝
>查理

>帽子

>鲍勃
>塞尔达

>手套

>查理

>裤子

>鲍勃

编辑2

好的,我已经制作了另一个更大的真值表,希望能够更好地理解你想要如何分裂:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
 1 x   x     x                             x
 2   x x     x             x         x     x
 3 x               x             x             x
 4         x             x     x
 5   x           x                 x
 6               x             x           x
 7   x             x             x
 8         x               x               x

为了论证,我们可以说你只能在一个页面上放置4行(因为我不想在早上打出一张巨大的表格)所以我们将把它分成两页.首先,显示每一行都很重要,对吧?其次,您是否需要显示从不具有值的列.例如,Y和Z在此表中从不具有第1行到第8行的值,它们是否可以从报告中排除,还是它们仍然需要存在?三,行的顺序重要吗?

如果显示完全空列并不重要,那么我们可以从上面的表中删除10列并将其压缩到:

A B C E F H I L M O P Q R U V W
 1 x   x   x                 x
 2   x x   x       x       x x
 3 x           x       x         x
 4       x       x   x
 5   x       x           x
 6           x       x       x
 7   x         x       x
 8       x         x         x

然后,如果行顺序不重要,您可以通过采用最佳行排列(此处未必显示)进一步压缩它.下面的两个表格进一步压缩为11和10列:

A B C F H I M P Q R U
1 x   x x             x
2   x x x     x     x x
5   x     x       x
7   x       x   x

  A E H I L M O P U W
3 x     x       x   x
4   x     x   x
6     x       x   x
8   x       x     x

我在这里走错了路吗?这些都是帮助我更好地理解您的数据和输出要求的问题.

而且,严肃地说,是否可以选择更大的打印机/绘图仪?此外,是否可以选择生成PDF并使用Acrobat的打印磁贴选项?

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...