1# Example of Tk::TableMatrix::SpreadsheetHideRows widget:
2#   Table display with hidden detail data
3#
4# This example displays made-up average temperature data
5#  for different time periods (quarter and months), and regions.
6
7# Updated to have more spans. 3/8/06. Fully expanding Row 2 and the
8#    lower level Rows should look ok, with the spans restoring back
9#    to where they were.
10
11use Tk;
12
13use Tk::TableMatrix::SpreadsheetHideRows;
14
15my $top = MainWindow->new;
16
17my $arrayVar = {};
18
19my @rawdata = (qw/
20Quarter	Month	Region	State	AvgTemp
211	--	South	--	39
222	--	South	--	61
233	--	South	--	65
244	--	South	--	45
25/);
26
27
28
29foreach my $row  (0..4){
30	foreach my $col (0..5){
31		next if( $col == 0);
32
33		$arrayVar->{"$row,$col"} = shift @rawdata;
34	}
35}
36
37
38my $expandData = {
39	1 => { data => [ [ '','','Jan', 'South','--',33],
40	                 [ '','','Feb', 'South','--',38],
41	                 [ '','','Mar', 'South','--',45],
42			 ],
43	       tag => 'detail',
44	       expandData => {
45	       			1 => { data => [ [ '','','', '','Texas',35],
46				        	  [ '','','', '','Ok',36],
47				        	  [ '','','', '','Ark',37],
48						 ],
49				       tag => 'detail2',
50				       },
51	       			2 => { data => [ [ '','','', '','Texas',41],
52				        	  [ '','','', '','Ok',42],
53				        	  [ '','','', '','Ark',43],
54						 ],
55				       tag => 'detail2',
56				       },
57	       			3 => { data => [ [ '','','', '','Texas',51],
58				        	  [ '','','', '','Ok',52],
59				        	  [ '','','', '','Ark',53],
60						 ],
61				       tag => 'detail2',
62				       },
63			      },
64	       },
65
66	2 => { data => [ [ '','','Apr', 'South','--',55],
67	        	 [ '','','May', 'South','--',61],
68	        	 [ '','','Jun', 'South','--',68],
69	        	 ],
70	       tag => 'detail',
71	       spans => [ 1 => '0,1'],
72	       expandData => {
73	       			2 => { data => [ [ '','','', '','Texas',58],
74				        	  [ '','','', '','Ok',65],
75				        	  [ '','','', '','Ark',60],
76						 ],
77				       tag => 'detail2',
78				       }
79			      }
80	       },
81	 4 => { data => [['','Sorry, Detail Data Not Available Until Next month']],
82	 	tag => 'detail',
83		spans => [ 1 => '0,3']
84		},
85
86	};
87
88my $t = $top->Scrolled('SpreadsheetHideRows', -rows => 5, -cols => 6,
89                              -width => 6, -height => 6,
90			      -titlerows => 1, -titlecols => 1,
91			      -variable => $arrayVar,
92			      -selectmode => 'extended',
93			      -resizeborders => 'both',
94			      -selectorCol => 0,
95			      -expandData => $expandData
96			     #  -state => 'disabled'
97			    #  -colseparator => "\t",
98			    #  -rowseparator => "\n"
99                    );
100
101# Tags for the detail data:
102$t->tagConfigure('detail', -bg => 'palegreen', -relief => 'sunken');
103$t->tagConfigure('detail2', -bg => 'lightskyblue1', -relief => 'sunken');
104
105
106
107$t->pack(-expand => 1, -fill => 'both');
108
109Tk::MainLoop;
110