DBIx-DBStag
view release on metacpan or search on metacpan
scripts/ubiq view on Meta::CPAN
}
sub set_dbname {
my $set = shift;
$dbname = $set;
my $res = $resources_hash->{$dbname};
if ($res) {
$schema = $res->{schema} || '';
$loc = $res->{loc} || '';
if ($schema) {
$templates = $sdbh->find_templates_by_schema($schema);
}
else {
$templates = $sdbh->template_list;
}
}
else {
$cui->dialog("Unknown $dbname");
}
$dbh = DBIx::DBStag->connect($dbname);
my $w = $cui->getobj('window_select_template');
my $chooser = $w->getobj('chooser_select_template');
my @tnames = map {$_->name} @$templates;
$chooser->values(\@tnames);
update_varwin();
}
sub update_varwin {
my $label = $w1->getobj('label_varwin');
$label->text(sprintf("DBNAME:%-20s SCHEMA:%-20s\nLOC:%-20s TMPL:%-20s",
$dbname || '', $schema, $loc,
$template ? $template->name : ''));
$w1->intellidraw;
}
sub setup_query_options {
for (my $i=0; $i<@$varnames; $i++) {
my $y = $i;
my $vn = $varnames->[$i];
# replace_widg($w{query},
# "query_label$i", 'TextViewer',
# -readonly => 1,
# -singleline => 1,
# -x => 1,
# -y => $y,
# -text => $vn,
# -width => 20,
# -sbborder => 1,
# );
my $label =
replace_widg($w{query},
"query_label$i", 'Label',
-x => 1,
-y => $y,
-width => 40,
-height => 1,
-bold => 1,
);
$label->text($vn);
replace_widg($w{query},
"query_val_popup$i", 'TextEntry',
-x => 42,
-y => $y,
-width => 30,
-sbborder => 1,
-onchange=> sub {
my $v = shift->get;
$exec_argh{$vn} = $v;
if (!$v) {
delete $exec_argh{$vn};
}
}
);
}
}
sub execute_query {
$qr_obj =
$dbh->selectall_stag(-template=>$template,
-bind=>\%exec_argh);
show_qr();
}
sub show_qr {
my $txt = $qr_obj->xml;
open(F, ">z");
print F $txt;
close(F);
# $txt = substr($txt, 0, 100);
replace_widg($w{qr},
"qr_textviewer", "TextViewer",
-sbborder=>1,
# -text=>"x\ny\n z\n 123\n",
-text=>$txt,
-wrapping=>1,
-showoverflow=>0,
);
$w{qr}->draw;
$w{qr}->focus;
}
sub setup_complex_query_options {
for (my $i=0; $i<10; $i++) {
my $y = $i;
replace_widg($w{cquery},
"cquery_att_popup$i", 'Popupmenu',
-y => $y,
-sbborder => 1,
-values => $varnames,
);
replace_widg($w{cquery},
"cquery_val_popup$i", 'TextEntry',
-x => 20,
-y => $y,
-width => 20,
-sbborder => 1,
);
replace_widg($w{cquery},
"cquery_bool_popup$i", 'Popupmenu',
-x => 50,
-y => $y,
-sbborder => 1,
-values => [ qw(AND OR) ],
);
}
}
sub replace_widg {
my $w = shift;
my $id = shift;
my @args = @_;
my $obj = $w->getobj($id);
if ($obj) {
$w->delete($id);
}
$w->add($id, @args);
return $w->getobj($id);
}
sub select_screen {
my $screen = shift;
$w{$screen}->focus;
}
sub dialog_template {
my $pop = shift;
my $tn = $pop->get_active_value;
my $t = $sdbh->find_template($tn);
if ($t) {
$cui->dialog("TEMPLATE: $tn\n");
}
else {
$cui->dialog("No data");
}
}
}
( run in 2.028 seconds using v1.01-cache-2.11-cpan-364913b4093 )