Tk::DBI::Table - Megawidget to display a sql-Statement in HList.


        use Tk;
        use Tk::DBI::Table;
        my $top = MainWindow->new;
        my $tkdbi = $top->DBITable(
                        -sql            => 'select * from table',
                        -dbh            => $dbh,
                        -display_id     => 0,
                    )->pack(expand => 1, -fill => 'both');


This is a megawidget that enables you to display sql statements from a database. The features are:

each column has a ResizeButton for flexible width
The user can activate any Button to sort the column in the directions 'ASC', 'Desc' or 'None'.
Sorted column can display with a extra style


-dbh => $dbh

A database handle, this will return a error if not defined.

-sql => 'select * from table'

A sql statement, this will return an error if not defined.

-debug [0|1]

This is a switch that turns on debug output to the normal console (STDOUT).

-display_id [Off|On]

This is a switch for displaying the index column.

-columnWidths [colWidth_0, colWidth_1, colWidth_2, ...]

Default field column width.

-maxchars number or {col1 => number}

Maximum displaying chars in the cells. Global or only in named columns.

-maxcols number

Maximum columns in this table, this replace the count of fields in sql-statment.

-srtColumnStyle(option => value)

Column sort style.


These are the methods you can use with this Widget.

$dbitable->sql( new_sql_statement );

Set a new SQL-Statement and will display this.

$DBITree->info('anchor, bbox, children, data, dragsite, dropsite ...', $id);

This is a wrapper to the HList Method ->info. The default method is info('data', ...). Please read the manual from Tk::HList.

$dbitable->refresh( [to_sort_col_number] );

Refresh the table and sort (optional) the col number.

$dbitable->sortcol( to_sort_col_number );

Refresh the table and sort the col number or return the actually col sort number.

$dbitable->direction( ['NONE', 'ASC' or 'DESC'] );

Set a new sorting direction. no parameter will return the actual sort direction.


'table' => HList-Widget

This is a normal HList widget. I.e.:

                -command = sub{ printf "This is id: %s\n", $_[0] },

'HB_<column number>' => Button-Widget

This is a (Resize)Button widget. This displays a Compound image with text and image.


$Log:,v $ Revision 1.13 2003/11/06 17:55:52 xpix ! bugfixes in refresh_id * not hudge load for tree

Revision 1.11 2003/07/17 14:59:53 xpix ! many little bugfixes

Revision 1.8 2003/04/29 16:25:58 xpix * reformat

Revision 1.6 2003/04/29 16:22:52 xpix * chnages tag


Copyright (C) 2003 , Frank (xpix) Herrmann. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Tk::DBI::*, Tk::ResizeButton, Tk::HList