$PBExportHeader$w_sheet.srw forward global type w_sheet from window end type type dw_report from u_datawindow within w_sheet end type end forward global type w_sheet from window integer width = 2711 integer height = 1592 boolean titlebar = true string title = "Untitled" string menuname = "m_sheet" boolean controlmenu = true boolean minbox = true boolean maxbox = true boolean resizable = true long backcolor = 67108864 string icon = "AppIcon!" boolean center = true event printreport ( boolean ab_chooseprinter ) event m_sort ( ) event m_filter ( ) event m_zoom ( ) event m_firstpage ( ) event m_nextpage ( ) event m_priorpage ( ) event m_lastpage ( ) event m_saveas ( ) dw_report dw_report end type global w_sheet w_sheet type prototypes end prototypes type variables String is_filename end variables forward prototypes public subroutine wf_recentfiles () public subroutine wf_saveas (string as_saveastype) end prototypes event printreport(boolean ab_chooseprinter);// Print the report If ab_ChoosePrinter Then dw_report.Print(False, True) Else dw_report.Print() End If end event event m_sort();// Sort the report String ls_null Integer li_rc SetNull(ls_null) li_rc = dw_report.SetSort(ls_null) If li_rc = 1 Then this.SetRedraw(False) dw_report.Sort() dw_report.GroupCalc() this.SetRedraw(True) End If end event event m_filter();// Filter the report String ls_null Integer li_rc SetNull(ls_null) li_rc = dw_report.SetFilter(ls_null) If li_rc = 1 Then this.SetRedraw(False) dw_report.Filter() dw_report.Sort() dw_report.GroupCalc() this.SetRedraw(True) End If end event event m_zoom();// Zoom the report Integer li_zoom li_zoom = Integer(dw_report.Describe("DataWindow.Zoom")) OpenWithParm(w_zoom, li_zoom) li_zoom = Message.DoubleParm If li_zoom > 0 Then dw_report.Modify("DataWindow.Zoom=" + String(li_zoom)) End If end event event m_firstpage();// First Page dw_report.ScrollToRow(1) end event event m_nextpage();// Next Page dw_report.ScrollNextPage() end event event m_priorpage();// Prior Page dw_report.ScrollPriorPage() end event event m_lastpage();// Last Page dw_report.ScrollToRow(dw_report.RowCount()) end event event m_saveas();// Save As dw_report.SaveAs() end event public subroutine wf_recentfiles ();// populate the recent files menu m_sheet lm_menu Menu lm_item String ls_value // reset the menu this.ChangeMenu(m_sheet) // get reference to the menu lm_menu = this.MenuID // get reference to the menu item lm_item = lm_menu.m_file.m_recentfiles // set the parent window gn_dyn.of_SetParent(this) // update recent files menu item gn_mru.of_RecentFiles(lm_item) // update toolbar size ls_value = gn_app.of_GetReg("Window", "ToolbarText", "false") If ls_value = "true" Then lm_menu.mf_BigToolbarButtons(True) Else lm_menu.mf_BigToolbarButtons(False) End If end subroutine public subroutine wf_saveas (string as_saveastype);// Save report to a file Integer li_rc, li_fnum String ls_title, ls_extn, ls_filter, ls_initdir String ls_pathname, ls_filename, ls_data ls_initdir = gn_app.of_GetFolderPath("PERSONAL") ls_title = "Save As " + as_SaveAsType choose case Lower(as_SaveAsType) case "excel8" ls_extn = "xls" ls_filter = "Excel Files (*.xls),*.xls" case "excel12" MessageBox("Save As", "The Excel12 format requires PowerBuilder 12 and higher!", StopSign!) Return ls_extn = "xlsx" ls_filter = "Excel Files (*.xlsx),*.xlsx" case "html" ls_extn = "html" ls_filter = "HTML Files (*.html),*.html" case "json" ls_extn = "json" ls_filter = "JSON Files (*.json),*.json" case "pdf" ls_extn = "pdf" ls_filter = "PDF Files (*.pdf),*.pdf" case "psr" ls_extn = "psr" ls_filter = "PSR Files (*.psr),*.psr" case "text" ls_extn = "txt" ls_filter = "Text Files (*.txt),*.txt" case "xml" ls_extn = "xml" ls_filter = "XML Files (*.xml),*.xml" end choose li_rc = GetFileSaveName(ls_title, ls_pathname, & ls_filename, ls_extn, ls_filter, ls_initdir) If li_rc = 1 Then choose case Lower(as_SaveAsType) case "excel8" dw_report.SaveAs(ls_pathname, Excel8!, True) Return case "excel12" // dw_report.SaveAs(ls_pathname, XLSX!, True) Return case "html" ls_data = dw_report.of_ExportHTML() case "json" ls_data = dw_report.of_ExportJSON() case "pdf" dw_report.SaveAs(ls_pathname, PDF!, True) Return case "psr" dw_report.SaveAs(ls_pathname, PSReport!, True) Return case "text" ls_data = dw_report.of_ExportText() case "xml" ls_data = dw_report.of_ExportXML() case else Return end choose li_fnum = FileOpen(ls_pathname, LineMode!, Write!, Shared!, Replace!) If li_fnum > 0 Then FileWriteEx(li_fnum, ls_data) FileClose(li_fnum) End If End If end subroutine on w_sheet.create if this.MenuName = "m_sheet" then this.MenuID = create m_sheet this.dw_report=create dw_report this.Control[]={this.dw_report} end on on w_sheet.destroy if IsValid(MenuID) then destroy(MenuID) destroy(this.dw_report) end on event open;w_sheet lw_sheet is_filename = Message.StringParm // set dataobject to be file dw_report.SetRedraw(False) dw_report.DataObject = is_filename dw_report.Modify("DataWindow.Print.Preview=Yes") dw_report.SetRedraw(True) dw_report.SetFocus() this.Title = is_filename // add file to list gn_mru.of_AddToList(is_filename) // add items to menu gw_frame.wf_RecentFiles() this.wf_RecentFiles() // reset recent files on all sheets lw_sheet = gw_frame.GetFirstSheet() do while IsValid(lw_sheet) lw_sheet.wf_RecentFiles() lw_sheet = gw_frame.GetNextSheet(lw_sheet) loop SetPointer(Arrow!) end event event resize;dw_report.Resize(newwidth, newheight) end event event close;// update the menu items gw_frame.Post wf_RecentFiles() end event type dw_report from u_datawindow within w_sheet integer width = 2528 integer height = 1284 integer taborder = 10 boolean vscrollbar = true boolean border = false end type event constructor;this.SetTransObject(sqlca) end event
File: w_sheet.srw
Size: 6264
Date: Tue, 02 Aug 2022 15:58:12 +0200
Size: 6264
Date: Tue, 02 Aug 2022 15:58:12 +0200
- window w_sheet(srw)
- close
- m_filter()
- m_firstpage()
- m_lastpage()
- m_nextpage()
- m_priorpage()
- m_saveas()
- m_sort()
- m_zoom()
- open
- printreport(boolean ab_chooseprinter)
- resize
- u_datawindow dw_report