% # options example... % # % # #listrefs... % # 'header' => [ '#', 'Item' ], % # 'fields' => [ % # 'column', % # sub { my ($row,$param) = @_; $param->{"column$row"}; }, % # ], % # 'sizes' => [], # sizes ignored for immutable % # 'types' => ['immutable', ''], # immutable or ''/text % # 'param' => { column0 => 1 }, # preset column of row 0 to 1 % # % foreach my $header ( @{$opt{header}} ) { % } % my $row = 0; % for ( $row = 0; exists($param->{"custnum$row"}); $row++ ) { % my $col = 0; % foreach my $field ( @{$opt{fields}} ) { % my $value; % if ( ref($field) eq 'CODE' ) { % $value = &{$field}($row,$param); % } else { % $value = $param->{"$field$row"}; % } % my $name = (ref($field) eq 'CODE') ? "column${col}_$row" : "$field$row"; % my $size = $sizes->[$col] || 10; % $col++; % } % }
Cust # Customer<% $header %>
" rownum="<% $row %>"> " rownum="<% $row %>"> % if (! $types->[$col] || $types->[$col] eq 'text') { % } elsif ($types->[$col] eq 'immutable') { <% $value %> % } else { Cannot represent unknown type: <% $types->[$col] %> % }
<% include('/elements/xmlhttp.html', 'url' => $p. 'misc/xmlhttp-cust_main-search.cgi', 'subs' => [qw( custnum_search smart_search )], ) %> <%init> my(%opt) = @_; $opt{prefix} = '' unless defined $opt{prefix}; $opt{prefix} .= '_' if $opt{prefix}; my $types = $opt{'types'} ? [ @{$opt{'types'}} ] : []; my $sizes = $opt{'sizes'} ? [ @{$opt{'sizes'}} ] : []; my $param = $opt{param}; $param = $cgi->Vars if $cgi->param('error');