From: <tiv...@ca...> - 2003-07-07 16:39:22
|
Hi Gurus, I am trying to use Grid.pm to display rows after rows of data I retrieve from a DB2 database. The problem is that I don't know how many rows I am going to be displaying ahead of time I need to do it dynamically. So I declare teh grid like this: my $Grid = $W->AddGrid ( -name => "Grid", -pos => [70,80], -width => 890, -height => 490, -editable => 0, ) or die "new Grid"; $Grid->Hide; And much later. I create the output headings, ie the very first rows of the database has the column names of the databae table. as in. SECTIONA -------- # codes to extract fieldnames(ie columns) from DB2 # blah blah blah. # now enter those field names into Grid my $i=0; $Grid->InsertRow($fieldnames[$i],$i); for( $icol = $i++; $icol <= $#fieldnames; $icol++ ) { $Grid->InsertColumn($fieldnames[$icol],$icol); } SECTIONB -------- Then I start reading in from the database into an array @arraydata each loop I would read in a row of data into @arraydata and I then try to insert into the grid this row using the following methods. IT DOES NOT WORK!! my $rowcnt=1; while( @arrayData = $sth->fetchrow_array() ) { $node_name = shift @arrayData; my $subitemcnt=1; $Grid->InsertRow($node_name,$rowcnt); foreach my $fieldData (@arrayData) { $Grid->SetCellText($rowcnt,$subitemcnt,$fieldData); $Grid->Refresh(); $subitemcnt++; } $rowcnt++; } # endwhile The only things that gets displayed is just one single row from the sectionA of the codes above. SEction B data doesn't seem to get displayed at all :( What is the trick to doing dynamic data with Grid? What am I doing wrong?? :( |
From: Laurent R. <Lau...@ce...> - 2003-07-08 11:59:08
Attachments:
test7.zip
|
Hi, I think the problem in your sample is InsertColumn. InsertColumn (strHeading, [nFormat = DT_CENTER|DT_VCENTER|DT_SINGLELINE], [nColumn = -1]) => return icol You set Laurent. > > I am trying to use Grid.pm to display rows after rows > of data I retrieve from a DB2 database. The problem is > that I don't know how many rows I am going to be > displaying ahead of time I need to do it dynamically. > So I declare teh grid like this: > > my $Grid = $W->AddGrid ( > -name => "Grid", > -pos => [70,80], > -width => 890, > -height => 490, > -editable => 0, > ) or die "new Grid"; > $Grid->Hide; > > And much later. I create the output headings, ie the > very first rows of the database has the column names of > the databae table. as in. > SECTIONA > -------- > # codes to extract fieldnames(ie columns) from DB2 > # blah blah blah. > > # now enter those field names into Grid > my $i=0; > $Grid->InsertRow($fieldnames[$i],$i); > for( $icol = $i++; $icol <= $#fieldnames; $icol++ ) { > $Grid->InsertColumn($fieldnames[$icol],$icol); > } > > SECTIONB > -------- > Then I start reading in from the database into an > array @arraydata each loop I would read in a row of > data into @arraydata and I then try to insert into the > grid this row using the following methods. IT DOES NOT > WORK!! > > my $rowcnt=1; > while( @arrayData = $sth->fetchrow_array() ) { > $node_name = shift @arrayData; > my $subitemcnt=1; > $Grid->InsertRow($node_name,$rowcnt); > foreach my $fieldData (@arrayData) { > > $Grid->SetCellText($rowcnt,$subitemcnt,$fieldData); > $Grid->Refresh(); > $subitemcnt++; > } > $rowcnt++; > } # endwhile > > The only things that gets displayed is just one single > row from the sectionA of the codes above. SEction B > data doesn't seem to get displayed at all :( > What is the trick to doing dynamic data with Grid? > What am I doing wrong?? :( |