diff options
Diffstat (limited to 'src/bin/pgaccess/lib/reports.tcl')
-rw-r--r-- | src/bin/pgaccess/lib/reports.tcl | 599 |
1 files changed, 599 insertions, 0 deletions
diff --git a/src/bin/pgaccess/lib/reports.tcl b/src/bin/pgaccess/lib/reports.tcl new file mode 100644 index 00000000000..c526ca9b569 --- /dev/null +++ b/src/bin/pgaccess/lib/reports.tcl @@ -0,0 +1,599 @@ +namespace eval Reports { + + +proc {new} {} { +global PgAcVar + Window show .pgaw:ReportBuilder + tkwait visibility .pgaw:ReportBuilder + init + set PgAcVar(report,reportname) {} + set PgAcVar(report,justpreview) 0 + focus .pgaw:ReportBuilder.e2 +} + + +proc {open} {reportname} { +global PgAcVar CurrentDB + Window show .pgaw:ReportBuilder + #tkwait visibility .pgaw:ReportBuilder + Window hide .pgaw:ReportBuilder + Window show .pgaw:ReportPreview + init + set PgAcVar(report,reportname) $reportname + loadReport + tkwait visibility .pgaw:ReportPreview + set PgAcVar(report,justpreview) 1 + preview +} + + +proc {design} {reportname} { +global PgAcVar + Window show .pgaw:ReportBuilder + tkwait visibility .pgaw:ReportBuilder + init + set PgAcVar(report,reportname) $reportname + loadReport + set PgAcVar(report,justpreview) 0 +} + + +proc {drawReportAreas} {} { +global PgAcVar +foreach rg $PgAcVar(report,regions) { + .pgaw:ReportBuilder.c delete bg_$rg + .pgaw:ReportBuilder.c create line 0 $PgAcVar(report,y_$rg) 5000 $PgAcVar(report,y_$rg) -tags [subst {bg_$rg}] + .pgaw:ReportBuilder.c create rectangle 6 [expr $PgAcVar(report,y_$rg)-3] 12 [expr $PgAcVar(report,y_$rg)+3] -fill black -tags [subst {bg_$rg mov reg}] + .pgaw:ReportBuilder.c lower bg_$rg +} +} + +proc {toggleAlignMode} {} { +set bb [.pgaw:ReportBuilder.c bbox hili] +if {[.pgaw:ReportBuilder.balign cget -text]=="left"} then { + .pgaw:ReportBuilder.balign configure -text right + .pgaw:ReportBuilder.c itemconfigure hili -anchor ne + .pgaw:ReportBuilder.c move hili [expr [lindex $bb 2]-[lindex $bb 0]-3] 0 +} else { + .pgaw:ReportBuilder.balign configure -text left + .pgaw:ReportBuilder.c itemconfigure hili -anchor nw + .pgaw:ReportBuilder.c move hili [expr [lindex $bb 0]-[lindex $bb 2]+3] 0 +} +} + +proc {getBoldStatus} {} { + if {[.pgaw:ReportBuilder.lbold cget -relief]=="raised"} then {return Medium} else {return Bold} +} + +proc {getItalicStatus} {} { + if {[.pgaw:ReportBuilder.lita cget -relief]=="raised"} then {return R} else {return O} +} + +proc {toggleBold} {} { + if {[getBoldStatus]=="Bold"} { + .pgaw:ReportBuilder.lbold configure -relief raised + } else { + .pgaw:ReportBuilder.lbold configure -relief sunken + } + setObjectFont +} + + +proc {toggleItalic} {} { + if {[getItalicStatus]=="O"} { + .pgaw:ReportBuilder.lita configure -relief raised + } else { + .pgaw:ReportBuilder.lita configure -relief sunken + } + setObjectFont +} + + +proc {setFont} {} { + set temp [.pgaw:ReportBuilder.bfont cget -text] + if {$temp=="Courier"} then { + .pgaw:ReportBuilder.bfont configure -text Helvetica + } else { + .pgaw:ReportBuilder.bfont configure -text Courier + } + setObjectFont +} + + +proc {getSourceFields} {} { +global PgAcVar CurrentDB + .pgaw:ReportBuilder.lb delete 0 end + if {$PgAcVar(report,tablename)==""} return ; + #setCursor CLOCK + wpg_select $CurrentDB "select attnum,attname from pg_class,pg_attribute where (pg_class.relname='$PgAcVar(report,tablename)') and (pg_class.oid=pg_attribute.attrelid) and (attnum>0) order by attnum" rec { + .pgaw:ReportBuilder.lb insert end $rec(attname) + } + #setCursor DEFAULT +} + + +proc {hasTag} {id tg} { + if {[lsearch [.pgaw:ReportBuilder.c itemcget $id -tags] $tg]==-1} then {return 0 } else {return 1} +} + + +proc {init} {} { +global PgAcVar + set PgAcVar(report,xl_auto) 10 + set PgAcVar(report,xf_auto) 10 + set PgAcVar(report,regions) {rpthdr pghdr detail pgfoo rptfoo} + set PgAcVar(report,y_rpthdr) 30 + set PgAcVar(report,y_pghdr) 60 + set PgAcVar(report,y_detail) 90 + set PgAcVar(report,y_pgfoo) 120 + set PgAcVar(report,y_rptfoo) 150 + set PgAcVar(report,e_rpthdr) [intlmsg {Report header}] + set PgAcVar(report,e_pghdr) [intlmsg {Page header}] + set PgAcVar(report,e_detail) [intlmsg {Detail record}] + set PgAcVar(report,e_pgfoo) [intlmsg {Page footer}] + set PgAcVar(report,e_rptfoo) [intlmsg {Report footer}] + drawReportAreas +} + +proc {loadReport} {} { +global PgAcVar CurrentDB + .pgaw:ReportBuilder.c delete all + wpg_select $CurrentDB "select * from pga_reports where reportname='$PgAcVar(report,reportname)'" rcd { + eval $rcd(reportbody) + } + getSourceFields + drawReportAreas +} + + +proc {preview} {} { +global PgAcVar CurrentDB +Window show .pgaw:ReportPreview +.pgaw:ReportPreview.fr.c delete all +set ol [.pgaw:ReportBuilder.c find withtag ro] +set fields {} +foreach objid $ol { + set tags [.pgaw:ReportBuilder.c itemcget $objid -tags] + lappend fields [string range [lindex $tags [lsearch -glob $tags f-*]] 2 64] + lappend fields [lindex [.pgaw:ReportBuilder.c coords $objid] 0] + lappend fields [lindex [.pgaw:ReportBuilder.c coords $objid] 1] + lappend fields $objid + lappend fields [lindex $tags [lsearch -glob $tags t_*]] +} +# Parsing page header +set py 10 +foreach {field x y objid objtype} $fields { + if {$objtype=="t_l"} { + .pgaw:ReportPreview.fr.c create text $x [expr $py+$y] -text [.pgaw:ReportBuilder.c itemcget $objid -text] -font [.pgaw:ReportBuilder.c itemcget $objid -font] -anchor nw + } +} +incr py [expr $PgAcVar(report,y_pghdr)-$PgAcVar(report,y_rpthdr)] +# Parsing detail group +set di [lsearch $PgAcVar(report,regions) detail] +set y_hi $PgAcVar(report,y_detail) +set y_lo $PgAcVar(report,y_[lindex $PgAcVar(report,regions) [expr $di-1]]) +wpg_select $CurrentDB "select * from \"$PgAcVar(report,tablename)\"" rec { + foreach {field x y objid objtype} $fields { + if {($y>=$y_lo) && ($y<=$y_hi)} then { + if {$objtype=="t_f"} { + .pgaw:ReportPreview.fr.c create text $x [expr $py+$y] -text $rec($field) -font [.pgaw:ReportBuilder.c itemcget $objid -font] -anchor [.pgaw:ReportBuilder.c itemcget $objid -anchor] + } + if {$objtype=="t_l"} { + .pgaw:ReportPreview.fr.c create text $x [expr $py+$y] -text [.pgaw:ReportBuilder.c itemcget $objid -text] -font [.pgaw:ReportBuilder.c itemcget $objid -font] -anchor nw + } + } + } + incr py [expr $PgAcVar(report,y_detail)-$PgAcVar(report,y_pghdr)] +} +.pgaw:ReportPreview.fr.c configure -scrollregion [subst {0 0 1000 $py}] +} + + +proc {print} {} { + set bb [.pgaw:ReportPreview.fr.c bbox all] + .pgaw:ReportPreview.fr.c postscript -file "pgaccess-report.ps" -width [expr 10+[lindex $bb 2]-[lindex $bb 0]] -height [expr 10+[lindex $bb 3]-[lindex $bb 1]] + tk_messageBox -title Information -parent .pgaw:ReportBuilder -message "The printed image in Postscript is in the file pgaccess-report.ps" +} + + +proc {save} {} { +global PgAcVar +set prog "set PgAcVar(report,tablename) \"$PgAcVar(report,tablename)\"" +foreach region $PgAcVar(report,regions) { + set prog "$prog ; set PgAcVar(report,y_$region) $PgAcVar(report,y_$region)" +} +foreach obj [.pgaw:ReportBuilder.c find all] { + if {[.pgaw:ReportBuilder.c type $obj]=="text"} { + set bb [.pgaw:ReportBuilder.c bbox $obj] + if {[.pgaw:ReportBuilder.c itemcget $obj -anchor]=="nw"} then {set x [expr [lindex $bb 0]+1]} else {set x [expr [lindex $bb 2]-2]} + set prog "$prog ; .pgaw:ReportBuilder.c create text $x [lindex $bb 1] -font [.pgaw:ReportBuilder.c itemcget $obj -font] -anchor [.pgaw:ReportBuilder.c itemcget $obj -anchor] -text {[.pgaw:ReportBuilder.c itemcget $obj -text]} -tags {[.pgaw:ReportBuilder.c itemcget $obj -tags]}" + } +} +sql_exec noquiet "delete from pga_reports where reportname='$PgAcVar(report,reportname)'" +sql_exec noquiet "insert into pga_reports (reportname,reportsource,reportbody) values ('$PgAcVar(report,reportname)','$PgAcVar(report,tablename)','$prog')" +} + + +proc {addField} {} { +global PgAcVar + set fldname [.pgaw:ReportBuilder.lb get [.pgaw:ReportBuilder.lb curselection]] + set newid [.pgaw:ReportBuilder.c create text $PgAcVar(report,xf_auto) [expr $PgAcVar(report,y_rpthdr)+5] -text $fldname -tags [subst {t_l mov ro}] -anchor nw -font $PgAcVar(pref,font_normal)] + .pgaw:ReportBuilder.c create text $PgAcVar(report,xf_auto) [expr $PgAcVar(report,y_pghdr)+5] -text $fldname -tags [subst {f-$fldname t_f rg_detail mov ro}] -anchor nw -font $PgAcVar(pref,font_normal) + set bb [.pgaw:ReportBuilder.c bbox $newid] + incr PgAcVar(report,xf_auto) [expr 5+[lindex $bb 2]-[lindex $bb 0]] +} + + +proc {addLabel} {} { +global PgAcVar + set fldname $PgAcVar(report,labeltext) + set newid [.pgaw:ReportBuilder.c create text $PgAcVar(report,xl_auto) [expr $PgAcVar(report,y_rpthdr)+5] -text $fldname -tags [subst {t_l mov ro}] -anchor nw -font $PgAcVar(pref,font_normal)] + set bb [.pgaw:ReportBuilder.c bbox $newid] + incr PgAcVar(report,xl_auto) [expr 5+[lindex $bb 2]-[lindex $bb 0]] +} + + +proc {setObjectFont} {} { +global PgAcVar + .pgaw:ReportBuilder.c itemconfigure hili -font -Adobe-[.pgaw:ReportBuilder.bfont cget -text]-[getBoldStatus]-[getItalicStatus]-Normal--*-$PgAcVar(report,pointsize)-*-*-*-*-*-* +} + + +proc {deleteObject} {} { + if {[tk_messageBox -title [intlmsg Warning] -parent .pgaw:ReportBuilder -message "Delete current report object?" -type yesno -default no]=="no"} return; + .pgaw:ReportBuilder.c delete hili +} + + +proc {dragMove} {w x y} { +global PgAcVar + # Showing current region + foreach rg $PgAcVar(report,regions) { + set PgAcVar(report,msg) $PgAcVar(report,e_$rg) + if {$PgAcVar(report,y_$rg)>$y} break; + } + set temp {} + catch {set temp $PgAcVar(draginfo,obj)} + if {"$temp" != ""} { + set dx [expr $x - $PgAcVar(draginfo,x)] + set dy [expr $y - $PgAcVar(draginfo,y)] + if {$PgAcVar(draginfo,region)!=""} { + set x $PgAcVar(draginfo,x) ; $w move bg_$PgAcVar(draginfo,region) 0 $dy + } else { + $w move $PgAcVar(draginfo,obj) $dx $dy + } + set PgAcVar(draginfo,x) $x + set PgAcVar(draginfo,y) $y + } +} + + +proc {dragStart} {w x y} { +global PgAcVar +focus .pgaw:ReportBuilder.c +catch {unset draginfo} +set obj {} +# Only movable objects start dragging +foreach id [$w find overlapping $x $y $x $y] { + if {[hasTag $id mov]} { + set obj $id + break + } +} +if {$obj==""} return; +set PgAcVar(draginfo,obj) $obj +set taglist [.pgaw:ReportBuilder.c itemcget $obj -tags] +set i [lsearch -glob $taglist bg_*] +if {$i==-1} { + set PgAcVar(draginfo,region) {} +} else { + set PgAcVar(draginfo,region) [string range [lindex $taglist $i] 3 64] +} +.pgaw:ReportBuilder configure -cursor hand1 +.pgaw:ReportBuilder.c itemconfigure [.pgaw:ReportBuilder.c find withtag hili] -fill black +.pgaw:ReportBuilder.c dtag [.pgaw:ReportBuilder.c find withtag hili] hili +.pgaw:ReportBuilder.c addtag hili withtag $PgAcVar(draginfo,obj) +.pgaw:ReportBuilder.c itemconfigure hili -fill blue +set PgAcVar(draginfo,x) $x +set PgAcVar(draginfo,y) $y +set PgAcVar(draginfo,sx) $x +set PgAcVar(draginfo,sy) $y +# Setting font information +if {[.pgaw:ReportBuilder.c type hili]=="text"} { + set fnta [split [.pgaw:ReportBuilder.c itemcget hili -font] -] + .pgaw:ReportBuilder.bfont configure -text [lindex $fnta 2] + if {[lindex $fnta 3]=="Medium"} then {.pgaw:ReportBuilder.lbold configure -relief raised} else {.pgaw:ReportBuilder.lbold configure -relief sunken} + if {[lindex $fnta 4]=="R"} then {.pgaw:ReportBuilder.lita configure -relief raised} else {.pgaw:ReportBuilder.lita configure -relief sunken} + set PgAcVar(report,pointsize) [lindex $fnta 8] + if {[hasTag $obj t_f]} {set PgAcVar(report,info) "Database field"} + if {[hasTag $obj t_l]} {set PgAcVar(report,info) "Label"} + if {[.pgaw:ReportBuilder.c itemcget $obj -anchor]=="nw"} then {.pgaw:ReportBuilder.balign configure -text left} else {.pgaw:ReportBuilder.balign configure -text right} +} +} + +proc {dragStop} {x y} { +global PgAcVar +# when click Close, ql window is destroyed but event ButtonRelease-1 is fired +if {![winfo exists .pgaw:ReportBuilder]} return; +.pgaw:ReportBuilder configure -cursor left_ptr +set este {} +catch {set este $PgAcVar(draginfo,obj)} +if {$este==""} return +# Erase information about object beeing dragged +if {$PgAcVar(draginfo,region)!=""} { + set dy 0 + foreach rg $PgAcVar(report,regions) { + .pgaw:ReportBuilder.c move rg_$rg 0 $dy + if {$rg==$PgAcVar(draginfo,region)} { + set dy [expr $y-$PgAcVar(report,y_$PgAcVar(draginfo,region))] + } + incr PgAcVar(report,y_$rg) $dy + } +# .pgaw:ReportBuilder.c move det 0 [expr $y-$PgAcVar(report,y_$PgAcVar(draginfo,region))] + set PgAcVar(report,y_$PgAcVar(draginfo,region)) $y + drawReportAreas +} else { + # Check if object beeing dragged is inside the canvas + set bb [.pgaw:ReportBuilder.c bbox $PgAcVar(draginfo,obj)] + if {[lindex $bb 0] < 5} { + .pgaw:ReportBuilder.c move $PgAcVar(draginfo,obj) [expr 5-[lindex $bb 0]] 0 + } +} +set PgAcVar(draginfo,obj) {} +PgAcVar:clean draginfo,* +} + + +proc {deleteAllObjects} {} { + if {[tk_messageBox -title [intlmsg Warning] -parent .pgaw:ReportBuilder -message [intlmsg "All report information will be deleted.\n\nProceed ?"] -type yesno -default no]=="yes"} then { + .pgaw:ReportBuilder.c delete all + init + drawReportAreas + } +} + +} + +################################################################ + + +proc vTclWindow.pgaw:ReportBuilder {base} { +global PgAcVar + if {$base == ""} { + set base .pgaw:ReportBuilder + } + if {[winfo exists $base]} { + wm deiconify $base; return + } + toplevel $base -class Toplevel + wm focusmodel $base passive + wm geometry $base 652x426+96+120 + wm maxsize $base 1009 738 + wm minsize $base 1 1 + wm overrideredirect $base 0 + wm resizable $base 0 0 + wm deiconify $base + wm title $base [intlmsg "Report builder"] + label $base.l1 \ + -borderwidth 1 \ + -relief raised -text [intlmsg {Report fields}] + listbox $base.lb \ + -background #fefefe -foreground #000000 -borderwidth 1 \ + -selectbackground #c3c3c3 \ + -highlightthickness 1 -selectborderwidth 0 \ + -yscrollcommand {.pgaw:ReportBuilder.sb set} + bind $base.lb <ButtonRelease-1> { + Reports::addField + } + canvas $base.c \ + -background #fffeff -borderwidth 2 -height 207 -highlightthickness 0 \ + -relief ridge -takefocus 1 -width 295 + bind $base.c <Button-1> { + Reports::dragStart %W %x %y + } + bind $base.c <ButtonRelease-1> { + Reports::dragStop %x %y + } + bind $base.c <Key-Delete> { + Reports::deleteObject + } + bind $base.c <Motion> { + Reports::dragMove %W %x %y + } + button $base.bt2 \ + -command Reports::deleteAllObjects \ + -text [intlmsg {Delete all}] + button $base.bt4 \ + -command Reports::preview \ + -text [intlmsg Preview] + button $base.bt5 \ + -borderwidth 1 -command {Window destroy .pgaw:ReportBuilder} \ + -text [intlmsg Close] + scrollbar $base.sb \ + -borderwidth 1 -command {.pgaw:ReportBuilder.lb yview} -orient vert + label $base.lmsg \ + -anchor w \ + -relief groove -text [intlmsg {Report header}] -textvariable PgAcVar(report,msg) + entry $base.e2 \ + -background #fefefe -borderwidth 1 -highlightthickness 0 \ + -textvariable PgAcVar(report,tablename) + bind $base.e2 <Key-Return> { + Reports::getSourceFields + } + entry $base.elab \ + -background #fefefe -borderwidth 1 -highlightthickness 0 \ + -textvariable PgAcVar(report,labeltext) + button $base.badl \ + -borderwidth 1 -command Reports::addLabel \ + -text [intlmsg {Add label}] + label $base.lbold \ + -borderwidth 1 -relief raised -text B + bind $base.lbold <Button-1> { + Reports::toggleBold + } + label $base.lita \ + -borderwidth 1 \ + -font $PgAcVar(pref,font_italic) \ + -relief raised -text i + bind $base.lita <Button-1> { + Reports::toggleItalic + } + entry $base.eps \ + -background #fefefe -highlightthickness 0 -relief groove \ + -textvariable PgAcVar(report,pointsize) + bind $base.eps <Key-Return> { + Reports::setObjectFont + } + label $base.linfo \ + -anchor w \ + -relief groove -text {Database field} -textvariable PgAcVar(report,info) + label $base.llal \ + -borderwidth 0 -text Align + button $base.balign \ + -borderwidth 0 -command Reports::toggleAlignMode \ + -relief groove -text right + button $base.savebtn \ + -borderwidth 1 -command Reports::save \ + -text [intlmsg Save] + label $base.lfn \ + -borderwidth 0 -text Font + button $base.bfont \ + -borderwidth 0 \ + -command Reports::setFont \ + -relief groove -text Courier + button $base.bdd \ + -borderwidth 1 \ + -command {if {[winfo exists .pgaw:ReportBuilder.ddf]} { + destroy .pgaw:ReportBuilder.ddf +} else { + create_drop_down .pgaw:ReportBuilder 405 22 200 + focus .pgaw:ReportBuilder.ddf.sb + foreach tbl [Database::getTablesList] {.pgaw:ReportBuilder.ddf.lb insert end $tbl} + bind .pgaw:ReportBuilder.ddf.lb <ButtonRelease-1> { + set i [.pgaw:ReportBuilder.ddf.lb curselection] + if {$i!=""} {set PgAcVar(report,tablename) [.pgaw:ReportBuilder.ddf.lb get $i]} + destroy .pgaw:ReportBuilder.ddf + Reports::getSourceFields + break + } +}} \ + -highlightthickness 0 -image dnarw + label $base.lrn \ + -borderwidth 0 -text [intlmsg {Report name}] + entry $base.ern \ + -background #fefefe -borderwidth 1 -highlightthickness 0 \ + -textvariable PgAcVar(report,reportname) + bind $base.ern <Key-F5> { + loadReport + } + label $base.lrs \ + -borderwidth 0 -text [intlmsg {Report source}] + label $base.ls \ + -borderwidth 1 -relief raised + entry $base.ef \ + -background #fefefe -borderwidth 1 -highlightthickness 0 \ + -textvariable PgAcVar(report,formula) + button $base.baf \ + -borderwidth 1 \ + -text [intlmsg {Add formula}] + place $base.l1 \ + -x 5 -y 55 -width 131 -height 18 -anchor nw -bordermode ignore + place $base.lb \ + -x 5 -y 70 -width 118 -height 121 -anchor nw -bordermode ignore + place $base.c \ + -x 140 -y 75 -width 508 -height 345 -anchor nw -bordermode ignore + place $base.bt2 \ + -x 5 -y 365 -width 64 -height 26 -anchor nw -bordermode ignore + place $base.bt4 \ + -x 70 -y 365 -width 66 -height 26 -anchor nw -bordermode ignore + place $base.bt5 \ + -x 70 -y 395 -width 66 -height 26 -anchor nw -bordermode ignore + place $base.sb \ + -x 120 -y 70 -width 18 -height 122 -anchor nw -bordermode ignore + place $base.lmsg \ + -x 142 -y 55 -width 151 -height 18 -anchor nw -bordermode ignore + place $base.e2 \ + -x 405 -y 4 -width 129 -height 18 -anchor nw -bordermode ignore + place $base.elab \ + -x 5 -y 225 -width 130 -height 18 -anchor nw -bordermode ignore + place $base.badl \ + -x 5 -y 243 -width 132 -height 26 -anchor nw -bordermode ignore + place $base.lbold \ + -x 535 -y 55 -width 18 -height 18 -anchor nw -bordermode ignore + place $base.lita \ + -x 555 -y 55 -width 18 -height 18 -anchor nw -bordermode ignore + place $base.eps \ + -x 500 -y 55 -width 30 -height 18 -anchor nw -bordermode ignore + place $base.linfo \ + -x 295 -y 55 -width 91 -height 18 -anchor nw -bordermode ignore + place $base.llal \ + -x 575 -y 56 -anchor nw -bordermode ignore + place $base.balign \ + -x 610 -y 54 -width 35 -height 21 -anchor nw -bordermode ignore + place $base.savebtn \ + -x 5 -y 395 -width 64 -height 26 -anchor nw -bordermode ignore + place $base.lfn \ + -x 405 -y 56 -anchor nw -bordermode ignore + place $base.bfont \ + -x 435 -y 54 -width 65 -height 21 -anchor nw -bordermode ignore + place $base.bdd \ + -x 535 -y 4 -width 15 -height 20 -anchor nw -bordermode ignore + place $base.lrn \ + -x 5 -y 5 -anchor nw -bordermode ignore + place $base.ern \ + -x 80 -y 4 -width 219 -height 18 -anchor nw -bordermode ignore + place $base.lrs \ + -x 320 -y 5 -anchor nw -bordermode ignore + place $base.ls \ + -x 5 -y 30 -width 641 -height 2 -anchor nw -bordermode ignore + place $base.ef \ + -x 5 -y 280 -width 130 -height 18 -anchor nw -bordermode ignore + place $base.baf \ + -x 5 -y 298 -width 132 -height 26 -anchor nw -bordermode ignore +} + +proc vTclWindow.pgaw:ReportPreview {base} { + if {$base == ""} { + set base .pgaw:ReportPreview + } + if {[winfo exists $base]} { + wm deiconify $base; return + } + toplevel $base -class Toplevel + wm focusmodel $base passive + wm geometry $base 495x500+230+50 + wm maxsize $base 1009 738 + wm minsize $base 1 1 + wm overrideredirect $base 0 + wm resizable $base 1 1 + wm title $base "Report preview" + frame $base.fr \ + -borderwidth 2 -height 75 -relief groove -width 125 + canvas $base.fr.c \ + -background #fcfefe -borderwidth 2 -height 207 -relief ridge \ + -scrollregion {0 0 1000 824} -width 295 \ + -yscrollcommand {.pgaw:ReportPreview.fr.sb set} + scrollbar $base.fr.sb \ + -borderwidth 1 -command {.pgaw:ReportPreview.fr.c yview} -highlightthickness 0 \ + -orient vert -width 12 + frame $base.f1 \ + -borderwidth 2 -height 75 -width 125 + button $base.f1.button18 \ + -borderwidth 1 -command {if {$PgAcVar(report,justpreview)} then {Window destroy .pgaw:ReportBuilder} ; Window destroy .pgaw:ReportPreview} \ + -text [intlmsg Close] + button $base.f1.button17 \ + -borderwidth 1 -command Reports::print \ + -text Print + pack $base.fr \ + -in .pgaw:ReportPreview -anchor center -expand 1 -fill both -side top + pack $base.fr.c \ + -in .pgaw:ReportPreview.fr -anchor center -expand 1 -fill both -side left + pack $base.fr.sb \ + -in .pgaw:ReportPreview.fr -anchor center -expand 0 -fill y -side right + pack $base.f1 \ + -in .pgaw:ReportPreview -anchor center -expand 0 -fill none -side top + pack $base.f1.button18 \ + -in .pgaw:ReportPreview.f1 -anchor center -expand 0 -fill none -side right + pack $base.f1.button17 \ + -in .pgaw:ReportPreview.f1 -anchor center -expand 0 -fill none -side left +} |