$PBExportHeader$w_rpt_printpage_value.srw forward global type w_rpt_printpage_value from w_rpt_publ_base end type type cb_1 from uo_imflatbutton within w_rpt_printpage_value end type type cb_yy from uo_imflatbutton within w_rpt_printpage_value end type type cb_ok from uo_imflatbutton within w_rpt_printpage_value end type type ddlb_orientation from dropdownlistbox within w_rpt_printpage_value end type type em_column from editmask within w_rpt_printpage_value end type type st_2 from statictext within w_rpt_printpage_value end type type st_3 from statictext within w_rpt_printpage_value end type type ddlb_size from dropdownlistbox within w_rpt_printpage_value end type type em_column_width from editmask within w_rpt_printpage_value end type type st_5 from statictext within w_rpt_printpage_value end type type em_1 from editmask within w_rpt_printpage_value end type type gb_1 from groupbox within w_rpt_printpage_value end type type st_4 from statictext within w_rpt_printpage_value end type type st_1 from statictext within w_rpt_printpage_value end type type st_6 from statictext within w_rpt_printpage_value end type type st_paperlist from statictext within w_rpt_printpage_value end type type st_papersize from statictext within w_rpt_printpage_value end type type st_7 from statictext within w_rpt_printpage_value end type type em_printrow from editmask within w_rpt_printpage_value end type type st_8 from statictext within w_rpt_printpage_value end type type ddlb_scale from dropdownlistbox within w_rpt_printpage_value end type end forward global type w_rpt_printpage_value from w_rpt_publ_base integer x = 233 integer y = 112 integer width = 2318 integer height = 748 string title = "龙嘉页面设置" boolean minbox = false windowtype windowtype = response! long backcolor = 67108864 cb_1 cb_1 cb_yy cb_yy cb_ok cb_ok ddlb_orientation ddlb_orientation em_column em_column st_2 st_2 st_3 st_3 ddlb_size ddlb_size em_column_width em_column_width st_5 st_5 em_1 em_1 gb_1 gb_1 st_4 st_4 st_1 st_1 st_6 st_6 st_paperlist st_paperlist st_papersize st_papersize st_7 st_7 em_printrow em_printrow st_8 st_8 ddlb_scale ddlb_scale end type global w_rpt_printpage_value w_rpt_printpage_value type prototypes function boolean IsWindowsNT() library "PrintCtrl.dll" SUBROUTINE About() library "PrintCtrl.dll" function boolean GetDefaultPrinter(ref string PrinterName, int BufferLen) library "PrintCtrl.dll" alias for "GetDefaultPrinter;Ansi" function boolean GetPrinterPort(ref string PrinterName, ref string Port, int PortLen, ref string Driver, int DriverLen) library "PrintCtrl.dll" alias for "GetPrinterPort;Ansi" function boolean GetPrinterList(ref string PrinterList, ref long bufferLen) library "PrintCtrl.dll" alias for "GetPrinterList;Ansi" function boolean GetPrinterStatus(ref string Printer, ref long status) library "PrintCtrl.dll" alias for "GetPrinterStatus;Ansi" function boolean GetPaperList(ref string Printer, ref string PaperList, ref long bufferLen) library "PrintCtrl.dll" alias for "GetPaperList;Ansi" function boolean SetPrinterDefault(ref string Printer) library "PrintCtrl.dll" alias for "SetPrinterDefault;Ansi" function boolean AddCustomPaper( ref string Printer, ref string PaperName, long pwidth, long pheight, long left, long right, long top, long bottom) library "PrintCtrl.dll" alias for "AddCustomPaper;Ansi" function boolean DeleteCustomPaper(ref string Printer, ref string PaperName) library "PrintCtrl.dll" alias for "DeleteCustomPaper;Ansi" function boolean SetUserDefinePaper(ref string Printer, ref long pWidth, ref long pHeight) library "PrintCtrl.dll" alias for "SetUserDefinePaper;Ansi" function boolean GetUserDefinePaperMinMax(ref string Printer, ref long minWidth, ref long minHeight, ref long maxWidth, ref long maxHeight) library "PrintCtrl.dll" alias for "GetUserDefinePaperMinMax;Ansi" function boolean GetDefaultPaper(ref string Printer, ref string PaperName, ref int nOrientation) library "PrintCtrl.dll" alias for "GetDefaultPaper;Ansi" function boolean SetDefaultPaper(ref string Printer, ref string PaperName, int nOrientation) library "PrintCtrl.dll" alias for "SetDefaultPaper;Ansi" function boolean GetDefaultPaper(ref string Printer, ref string PaperName,ref long nPapserSize, ref long nOrientation) library "PrintCtrl.dll" alias for "GetDefaultPaper;Ansi" function boolean GetPaperName(ref string Printer, ref string PaperName, int PaperSize) library "PrintCtrl.dll" alias for "GetPaperName;Ansi" function boolean GetPaperSize(ref string Printer, ref string PaperName, ref int PaperSize) library "PrintCtrl.dll" alias for "GetPaperSize;Ansi" function boolean GetBinNameList(ref string Printer, ref string BinNameList) library "PrintCtrl.dll" alias for "GetBinNameList;Ansi" function boolean GetBin(ref string Printer, ref string BinName, ref int Bin) library "PrintCtrl.dll" alias for "GetBin;Ansi" function boolean GetBinName(ref string Printer, ref string BinName, int Bin) library "PrintCtrl.dll" alias for "GetBinName;Ansi" end prototypes type variables datawindow obj_dw string dft_printername long orientation_selected s_rpt_print_value s_print s_rpt_print_msg s_print_msg end variables forward prototypes public subroutine wf_getpapersize () public subroutine wf_getpaperlist () end prototypes public subroutine wf_getpapersize ();String printername String papername Boolean rt if ddlb_size.text = '[默认]' then em_1.Text = '0' return end if printername = dft_printername IF printername = "" THEN st_papersize.Text = "请选择一个打印机!" RETURN END IF papername = ddlb_size.text IF papername = "" THEN st_papersize.Text = "请选择一个纸张!" RETURN END IF Int size = 0 rt = GetPaperSize(REF printername, REF papername, REF size) IF rt THEN em_1.Text = String(size) ELSE st_papersize.Text = "函数调用错误" END IF end subroutine public subroutine wf_getpaperlist ();String printerName String paperList Long bufferlen = 0 Boolean rt Long p1,p2 p1 = 1 p2 = 0 printerName = dft_printername IF printerName = "" THEN st_paperlist.Text = "请选择一个打印机!" RETURN END IF ddlb_size.AddItem('[默认]') rt = GetPaperList(REF printerName, REF paperList, REF bufferlen) If (NOT rt) AND bufferlen > 0 THEN paperList = Space(bufferlen) rt = GetPaperList(REF printerName, REF paperList, REF bufferlen) IF rt THEN p2 = Pos(paperList,"~t",p1) DO WHILE p2 > 0 string ls_papername ls_papername = Mid(paperList,p1,p2 - p1) ddlb_size.AddItem(ls_papername) Int size = 0 boolean lb_rt lb_rt = GetPaperSize(REF printername, REF ls_papername, REF size) if em_1.Text = string(size) then ddlb_size.text = ls_papername end if p1 = p2+1 p2 = Pos(paperList,"~t",p1) LOOP END IF ELSE st_paperlist.Text = "调用函数出错!" END IF end subroutine on w_rpt_printpage_value.create int iCurrent call super::create this.cb_1=create cb_1 this.cb_yy=create cb_yy this.cb_ok=create cb_ok this.ddlb_orientation=create ddlb_orientation this.em_column=create em_column this.st_2=create st_2 this.st_3=create st_3 this.ddlb_size=create ddlb_size this.em_column_width=create em_column_width this.st_5=create st_5 this.em_1=create em_1 this.gb_1=create gb_1 this.st_4=create st_4 this.st_1=create st_1 this.st_6=create st_6 this.st_paperlist=create st_paperlist this.st_papersize=create st_papersize this.st_7=create st_7 this.em_printrow=create em_printrow this.st_8=create st_8 this.ddlb_scale=create ddlb_scale iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.cb_1 this.Control[iCurrent+2]=this.cb_yy this.Control[iCurrent+3]=this.cb_ok this.Control[iCurrent+4]=this.ddlb_orientation this.Control[iCurrent+5]=this.em_column this.Control[iCurrent+6]=this.st_2 this.Control[iCurrent+7]=this.st_3 this.Control[iCurrent+8]=this.ddlb_size this.Control[iCurrent+9]=this.em_column_width this.Control[iCurrent+10]=this.st_5 this.Control[iCurrent+11]=this.em_1 this.Control[iCurrent+12]=this.gb_1 this.Control[iCurrent+13]=this.st_4 this.Control[iCurrent+14]=this.st_1 this.Control[iCurrent+15]=this.st_6 this.Control[iCurrent+16]=this.st_paperlist this.Control[iCurrent+17]=this.st_papersize this.Control[iCurrent+18]=this.st_7 this.Control[iCurrent+19]=this.em_printrow this.Control[iCurrent+20]=this.st_8 this.Control[iCurrent+21]=this.ddlb_scale end on on w_rpt_printpage_value.destroy call super::destroy destroy(this.cb_1) destroy(this.cb_yy) destroy(this.cb_ok) destroy(this.ddlb_orientation) destroy(this.em_column) destroy(this.st_2) destroy(this.st_3) destroy(this.ddlb_size) destroy(this.em_column_width) destroy(this.st_5) destroy(this.em_1) destroy(this.gb_1) destroy(this.st_4) destroy(this.st_1) destroy(this.st_6) destroy(this.st_paperlist) destroy(this.st_papersize) destroy(this.st_7) destroy(this.em_printrow) destroy(this.st_8) destroy(this.ddlb_scale) end on event open;call super::open; s_print = Message.PowerObjectParm s_print_msg = s_print.print_msg obj_dw = s_print.obj_dw dft_printername = s_print.dft_printername if s_print_msg.retr_flag = false then st_7.visible = false em_printrow.visible = false end if IF obj_dw.DataObject = '' THEN RETURN IF dft_printername = '' THEN String printerName Boolean rt String ls_fullstring = PrintGetPrinter() String ls_name, ls_driver, ls_port, ls_temp Long ll_placell_place,ll_place ll_placell_place = Pos (ls_fullstring, "~t") ls_name = Left(ls_fullstring, ll_place -1) ls_temp = Mid(ls_fullstring, ll_place +1) ll_place = Pos (ls_temp, "~t") ls_driver = Left(ls_temp, ll_place -1) ls_port = Mid(ls_temp, ll_place +1) dft_printername = ls_driver END IF Int ls_int_1,ls_int_2 String ls_papername ddlb_scale.text = string(obj_dw.Object.DataWindow.Print.Preview.Zoom) + '%' em_printrow.text = string(s_print.printrow) ls_int_1 = Integer(String( obj_dw.Object.datawindow.Print.orientation )) + 1 ddlb_orientation.SelectItem( ls_int_1 ) ls_int_2 = Integer(String( obj_dw.Object.datawindow.Print.paper.size )) em_1.Text = String( obj_dw.Object.datawindow.Print.paper.size ) wf_getpaperlist() IF ls_int_2 = 0 THEN ddlb_size.SelectItem( 1 ) ELSE END IF em_column.Text = String(obj_dw.Object.datawindow.Print.Columns ) em_column_width.Text = String(obj_dw.Object.datawindow.Print.Columns.Width ) orientation_selected = ls_int_1 end event event close;call super::close;CLOSEWITHRETURN(THIS,s_print_msg) end event type cb_exit from w_rpt_publ_base`cb_exit within w_rpt_printpage_value integer x = 1701 integer y = 548 end type type cb_1 from uo_imflatbutton within w_rpt_printpage_value integer x = 1312 integer y = 548 integer width = 311 integer height = 96 integer taborder = 110 string text = "打印设置" end type event clicked;call super::clicked;PRINTSETUP() end event type cb_yy from uo_imflatbutton within w_rpt_printpage_value integer x = 923 integer y = 548 integer width = 311 integer height = 96 integer taborder = 100 string text = "应用" end type event clicked;call super::clicked; obj_dw.Modify("datawindow.print.orientation="+string(orientation_selected - 1)) obj_dw.Object.datawindow.Print.paper.size = Integer(em_1.Text) obj_dw.object.datawindow.print.columns=integer(em_column.text) obj_dw.object.datawindow.print.columns.width=intEGER(em_column_width.text) obj_dw.Object.DataWindow.Print.Preview.Zoom = INTEGER(LEFT(TRIM(ddlb_scale.text),LEN(TRIM(ddlb_scale.text)) - 1)) obj_dw.object.DataWindow.Print.Preview = 'yes' f_SetProfileString (sys_empid,'REPORT_PRINTPAGESET','PAPER_SIZE',em_1.Text) f_SetProfileString (sys_empid,'REPORT_PRINTPAGESET','ORIENTATION',string(orientation_selected - 1)) s_print_msg.printrow = long(em_printrow.text) if s_print_msg.retr_flag = true then f_retrieve_dw(obj_dw,s_print_msg) else w_rpt_preview.wf_retrdw_dt() end if end event type cb_ok from uo_imflatbutton within w_rpt_printpage_value integer x = 535 integer y = 548 integer width = 311 integer height = 96 integer taborder = 90 boolean default = true end type event clicked;call super::clicked; obj_dw.Modify("datawindow.print.orientation="+String(orientation_selected - 1)) obj_dw.Object.datawindow.Print.paper.size = Integer(em_1.Text) obj_dw.Object.datawindow.Print.Columns = Integer(em_column.Text) obj_dw.Object.datawindow.Print.Columns.Width = Integer(em_column_width.Text) obj_dw.Object.DataWindow.Print.Preview.Zoom = INTEGER(LEFT(TRIM(ddlb_scale.text),LEN(TRIM(ddlb_scale.text)) - 1)) obj_dw.object.DataWindow.Print.Preview = 'yes' f_SetProfileString (sys_empid,'REPORT_PRINTPAGESET','PAPER_SIZE',em_1.Text) f_SetProfileString (sys_empid,'REPORT_PRINTPAGESET','ORIENTATION',String(orientation_selected - 1)) s_print_msg.printrow = long(em_printrow.text) //f_retrieve_dw(obj_dw,s_print_msg) Close(PARENT) end event type ddlb_orientation from dropdownlistbox within w_rpt_printpage_value integer x = 379 integer y = 148 integer width = 306 integer height = 304 integer taborder = 40 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false boolean vscrollbar = true string item[] = {"(默认)","横向","纵向"} borderstyle borderstyle = stylelowered! end type event selectionchanged;orientation_selected=index end event type em_column from editmask within w_rpt_printpage_value integer x = 379 integer y = 336 integer width = 306 integer height = 80 integer taborder = 50 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "1" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "###0" end type event modified;IF LONG(THIS.TEXT)<=0 THEN CB_OK.ENABLED=FALSE ELSE CB_OK.ENABLED=TRUE END IF end event type st_2 from statictext within w_rpt_printpage_value integer x = 55 integer y = 352 integer width = 315 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "打印列数:" alignment alignment = right! boolean focusrectangle = false end type type st_3 from statictext within w_rpt_printpage_value integer x = 55 integer y = 152 integer width = 315 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "纸张放置:" alignment alignment = right! boolean focusrectangle = false end type type ddlb_size from dropdownlistbox within w_rpt_printpage_value integer x = 1083 integer y = 84 integer width = 1093 integer height = 1000 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean sorted = false boolean vscrollbar = true borderstyle borderstyle = stylelowered! end type event selectionchanged;wf_getpapersize() end event type em_column_width from editmask within w_rpt_printpage_value integer x = 379 integer y = 432 integer width = 306 integer height = 80 integer taborder = 20 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "1.0" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "######0" end type event modified;IF LONG(THIS.TEXT)<=0 THEN CB_OK.ENABLED=FALSE ELSE CB_OK.ENABLED=TRUE END IF end event type st_5 from statictext within w_rpt_printpage_value integer x = 795 integer y = 296 integer width = 672 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "[3400单位约A4纸宽(21cm)]" alignment alignment = right! boolean focusrectangle = false end type type em_1 from editmask within w_rpt_printpage_value integer x = 1083 integer y = 168 integer width = 201 integer height = 80 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "none" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "###0" end type type gb_1 from groupbox within w_rpt_printpage_value integer x = 800 integer y = 16 integer width = 1399 integer height = 268 integer taborder = 50 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "纸张参数" end type type st_4 from statictext within w_rpt_printpage_value integer x = 55 integer y = 440 integer width = 315 integer height = 60 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "次列纸边距:" alignment alignment = right! boolean focusrectangle = false end type type st_1 from statictext within w_rpt_printpage_value integer x = 818 integer y = 176 integer width = 247 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "纸张Size" alignment alignment = right! boolean focusrectangle = false end type type st_6 from statictext within w_rpt_printpage_value integer x = 818 integer y = 88 integer width = 247 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 string text = "纸张列表" alignment alignment = right! boolean focusrectangle = false end type type st_paperlist from statictext within w_rpt_printpage_value integer x = 782 integer y = 352 integer width = 1362 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 255 long backcolor = 67108864 alignment alignment = right! boolean focusrectangle = false end type type st_papersize from statictext within w_rpt_printpage_value integer x = 782 integer y = 420 integer width = 1362 integer height = 48 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 255 long backcolor = 67108864 alignment alignment = right! boolean focusrectangle = false end type type st_7 from statictext within w_rpt_printpage_value integer x = 55 integer y = 256 integer width = 315 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "每页行数:" alignment alignment = right! boolean focusrectangle = false end type type em_printrow from editmask within w_rpt_printpage_value integer x = 379 integer y = 244 integer width = 306 integer height = 80 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 string text = "none" alignment alignment = right! borderstyle borderstyle = stylelowered! string mask = "######" end type event modified;if long(trim(this.text))<=2 then this.text='2' end if end event type st_8 from statictext within w_rpt_printpage_value integer x = 55 integer y = 64 integer width = 315 integer height = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 long backcolor = 67108864 boolean enabled = false string text = "打印比例:" alignment alignment = right! boolean focusrectangle = false end type type ddlb_scale from dropdownlistbox within w_rpt_printpage_value integer x = 379 integer y = 52 integer width = 306 integer height = 500 integer taborder = 60 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean autohscroll = true boolean sorted = false boolean hscrollbar = true string item[] = {"100%","150%","200%","75%","50%","25%"} borderstyle borderstyle = stylelowered! end type