$PBExportHeader$w_autoupdate_log.srw forward global type w_autoupdate_log from w_publ_base end type type tab_1 from tab within w_autoupdate_log end type type tabpage_1 from userobject within tab_1 end type type dw_1 from u_dw_rbtnfilter within tabpage_1 end type type tabpage_1 from userobject within tab_1 dw_1 dw_1 end type type tabpage_2 from userobject within tab_1 end type type dw_2 from u_dw_rbtnfilter within tabpage_2 end type type tabpage_2 from userobject within tab_1 dw_2 dw_2 end type type tabpage_3 from userobject within tab_1 end type type dw_3 from u_dw_rbtnfilter within tabpage_3 end type type tabpage_3 from userobject within tab_1 dw_3 dw_3 end type type tabpage_4 from userobject within tab_1 end type type dw_4 from u_dw_rbtnfilter within tabpage_4 end type type tabpage_4 from userobject within tab_1 dw_4 dw_4 end type type tabpage_5 from userobject within tab_1 end type type dw_5 from u_dw_rbtnfilter within tabpage_5 end type type tabpage_5 from userobject within tab_1 dw_5 dw_5 end type type tabpage_6 from userobject within tab_1 end type type dw_6 from u_dw_rbtnfilter within tabpage_6 end type type tabpage_6 from userobject within tab_1 dw_6 dw_6 end type type tab_1 from tab within w_autoupdate_log tabpage_1 tabpage_1 tabpage_2 tabpage_2 tabpage_3 tabpage_3 tabpage_4 tabpage_4 tabpage_5 tabpage_5 tabpage_6 tabpage_6 end type type cb_add from uo_imflatbutton within w_autoupdate_log end type type cb_edit from uo_imflatbutton within w_autoupdate_log end type type cb_delet from uo_imflatbutton within w_autoupdate_log end type type cb_retr from uo_imflatbutton within w_autoupdate_log end type type ln_bar from line within w_autoupdate_log end type type ln_bar2 from line within w_autoupdate_log end type type r_bar from rectangle within w_autoupdate_log end type end forward global type w_autoupdate_log from w_publ_base integer width = 3031 integer height = 1840 string title = "功能升级日志" boolean minbox = false event retr_mx ( ) event retr_zlmx ( ) tab_1 tab_1 cb_add cb_add cb_edit cb_edit cb_delet cb_delet cb_retr cb_retr ln_bar ln_bar ln_bar2 ln_bar2 r_bar r_bar end type global w_autoupdate_log w_autoupdate_log type variables string user_viewed datawindow dw_1,dw_2,dw_3,dw_4,dw_5,dw_6 end variables forward prototypes public subroutine wf_retrieve (integer arg_tab) public function integer wf_refresh_interface () end prototypes public subroutine wf_retrieve (integer arg_tab); end subroutine public function integer wf_refresh_interface ();//wf_refresh_interface Long i IF dw_edit_mode THEN cb_edit.Enabled = TRUE cb_add.Enabled = TRUE cb_edit.Text = "放弃&E" cb_add.Text = "保存&S" cb_edit.normalpicname = 'Undo.bmp' cb_add.normalpicname = 'Save.bmp' FOR i = 1 TO 7 dw_6.SetTabOrder ( i, i*10 ) NEXT ELSE cb_add.Enabled = TRUE cb_edit.Enabled = TRUE cb_edit.Text = "修改&E" cb_add.Text = "新建&S" cb_edit.normalpicname = 'OPEN.bmp' cb_add.normalpicname = 'new.bmp' FOR i = 1 TO 7 dw_6.SetTabOrder ( i,0 ) NEXT END IF cb_edit.of_init_draw() cb_add.of_init_draw() cb_edit.of_paint() cb_add.of_paint() cb_add.TriggerEvent('ue_textchange') cb_edit.TriggerEvent('ue_textchange') RETURN 1 end function on w_autoupdate_log.create int iCurrent call super::create this.tab_1=create tab_1 this.cb_add=create cb_add this.cb_edit=create cb_edit this.cb_delet=create cb_delet this.cb_retr=create cb_retr this.ln_bar=create ln_bar this.ln_bar2=create ln_bar2 this.r_bar=create r_bar iCurrent=UpperBound(this.Control) this.Control[iCurrent+1]=this.tab_1 this.Control[iCurrent+2]=this.cb_add this.Control[iCurrent+3]=this.cb_edit this.Control[iCurrent+4]=this.cb_delet this.Control[iCurrent+5]=this.cb_retr this.Control[iCurrent+6]=this.ln_bar this.Control[iCurrent+7]=this.ln_bar2 this.Control[iCurrent+8]=this.r_bar end on on w_autoupdate_log.destroy call super::destroy destroy(this.tab_1) destroy(this.cb_add) destroy(this.cb_edit) destroy(this.cb_delet) destroy(this.cb_retr) destroy(this.ln_bar) destroy(this.ln_bar2) destroy(this.r_bar) end on event resize;call super::resize;ln_bar.EndX = THIS.Width ln_bar2.EndX = THIS.Width r_bar.Width = THIS.Width tab_1.Width = THIS.Width - tab_1.X - 40 tab_1.Height = THIS.Height - tab_1.Y - 150 end event event open;call super::open;cb_retr.triggerevent(clicked!) end event event ue_before_open;call super::ue_before_open; dw_1 = tab_1.tabpage_1.dw_1 dw_2 = tab_1.tabpage_2.dw_2 dw_3 = tab_1.tabpage_3.dw_3 dw_4 = tab_1.tabpage_4.dw_4 dw_5 = tab_1.tabpage_5.dw_5 dw_6 = tab_1.tabpage_6.dw_6 cb_edit.visible = false cb_add.visible = false cb_delet.visible = false this.title = this.title + ' 本系统版本号:' + sys_cur_version end event event close;call super::close;IF dw_1.RowCount() > 0 THEN f_setProfileString (sys_empid,'autoupdate_log', "user_viewed", dw_1.Object.updatetime[1]) END IF end event event key;call super::key;IF KeyDown(KeyControl!) AND KeyDown(KeyAlt!) AND & (( KeyDown(Key0!) AND DayNumber(Today()) = 1 ) OR & (KeyDown(Key1!) AND DayNumber(Today()) = 2 ) OR & (KeyDown(Key2!) AND DayNumber(Today()) = 3 ) OR & (KeyDown(Key3!) AND DayNumber(Today()) = 4 ) OR & (KeyDown(Key4!) AND DayNumber(Today()) = 5 ) OR & (KeyDown(Key5!) AND DayNumber(Today()) = 6 ) OR & (KeyDown(Key6!) AND DayNumber(Today()) = 7 ) & ) THEN cb_add.Visible = TRUE cb_delet.Visible = TRUE cb_edit.Visible = TRUE ELSEIF KeyDown(KeyControl!) THEN cb_add.Visible = FALSE cb_delet.Visible = FALSE cb_edit.Visible = FALSE END IF end event type cb_func from w_publ_base`cb_func within w_autoupdate_log boolean visible = false integer x = 165 integer width = 306 integer height = 164 string text = "危险功能" end type event cb_func::clicked;open(w_dangus) //Long ll_i //Int rslt = 1 // //Long ll_funcid,ll_parentid //Int li_functype //String ls_treename,ls_menuname // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(256,0,0,'销售管理','销售'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(257,0,0,'生产管理','生产'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(258,0,0,'仓库管理','仓库'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(259,0,0,'采购管理','采购'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(260,0,0,'人事工资','人事工资'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(261,0,0,'财务管理','财务'); // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(262,0,0,'系统维护','系统'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // //INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(263,0,9,'特殊权限','特殊权限'); //IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext //END IF // // // //FOR ll_i = 1 TO 255 // IF s_powerlinfo[ll_i].powerid = 0 THEN CONTINUE // ll_funcid = s_powerlinfo[ll_i].powerid // CHOOSE CASE s_powerlinfo[ll_i].powertype // CASE '销售管理' // ll_parentid = 256 // CASE '生产管理' // ll_parentid = 257 // CASE '仓库管理' // ll_parentid = 258 // CASE '采购管理' // ll_parentid = 259 // CASE '人事工资' // ll_parentid = 260 // CASE '财务管理' // ll_parentid = 261 // CASE '系统维护' // ll_parentid = 262 // CASE '特殊权限' // ll_parentid = 263 // END CHOOSE // ls_treename = s_powerlinfo[ll_i].powername // ls_menuname = s_powerlinfo[ll_i].powername // // INSERT INTO sys_func_pwr // (funcid,parentid,functype,treename,menuname) // Values(:ll_funcid,:ll_parentid,9,:ls_treename,:ls_menuname); // // IF sqlca.SQLCode <> 0 THEN // rslt = 0 // GOTO ext // END IF // //NEXT // //ext : //IF rslt = 0 THEN // ROLLBACK; // MessageBox('','error') //ELSE // COMMIT; // MessageBox('','ok') //END IF // // // // end event type cb_exit from w_publ_base`cb_exit within w_autoupdate_log integer x = 165 integer width = 165 integer height = 164 integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type type tab_1 from tab within w_autoupdate_log integer y = 180 integer width = 3008 integer height = 1560 integer taborder = 30 boolean bringtotop = true integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 134217739 boolean raggedright = true boolean boldselectedtext = true boolean perpendiculartext = true tabposition tabposition = tabsonleft! integer selectedtab = 1 tabpage_1 tabpage_1 tabpage_2 tabpage_2 tabpage_3 tabpage_3 tabpage_4 tabpage_4 tabpage_5 tabpage_5 tabpage_6 tabpage_6 end type on tab_1.create this.tabpage_1=create tabpage_1 this.tabpage_2=create tabpage_2 this.tabpage_3=create tabpage_3 this.tabpage_4=create tabpage_4 this.tabpage_5=create tabpage_5 this.tabpage_6=create tabpage_6 this.Control[]={this.tabpage_1,& this.tabpage_2,& this.tabpage_3,& this.tabpage_4,& this.tabpage_5,& this.tabpage_6} end on on tab_1.destroy destroy(this.tabpage_1) destroy(this.tabpage_2) destroy(this.tabpage_3) destroy(this.tabpage_4) destroy(this.tabpage_5) destroy(this.tabpage_6) end on type tabpage_1 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "未查看" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_1 dw_1 end type on tabpage_1.create this.dw_1=create dw_1 this.Control[]={this.dw_1} end on on tabpage_1.destroy destroy(this.dw_1) end on type dw_1 from u_dw_rbtnfilter within tabpage_1 integer width = 2738 integer height = 1528 integer taborder = 20 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type type tabpage_2 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "一个月" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_2 dw_2 end type on tabpage_2.create this.dw_2=create dw_2 this.Control[]={this.dw_2} end on on tabpage_2.destroy destroy(this.dw_2) end on type dw_2 from u_dw_rbtnfilter within tabpage_2 integer width = 2738 integer height = 1528 integer taborder = 30 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type type tabpage_3 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "三个月" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_3 dw_3 end type on tabpage_3.create this.dw_3=create dw_3 this.Control[]={this.dw_3} end on on tabpage_3.destroy destroy(this.dw_3) end on type dw_3 from u_dw_rbtnfilter within tabpage_3 integer width = 2738 integer height = 1528 integer taborder = 30 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type type tabpage_4 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "六个月" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_4 dw_4 end type on tabpage_4.create this.dw_4=create dw_4 this.Control[]={this.dw_4} end on on tabpage_4.destroy destroy(this.dw_4) end on type dw_4 from u_dw_rbtnfilter within tabpage_4 integer width = 2738 integer height = 1528 integer taborder = 30 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type type tabpage_5 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "一年" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_5 dw_5 end type on tabpage_5.create this.dw_5=create dw_5 this.Control[]={this.dw_5} end on on tabpage_5.destroy destroy(this.dw_5) end on type dw_5 from u_dw_rbtnfilter within tabpage_5 integer width = 2738 integer height = 1528 integer taborder = 30 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type type tabpage_6 from userobject within tab_1 integer x = 251 integer y = 16 integer width = 2738 integer height = 1528 long backcolor = 134217739 string text = "全部" long tabtextcolor = 33554432 long tabbackcolor = 134217739 long picturemaskcolor = 536870912 dw_6 dw_6 end type on tabpage_6.create this.dw_6=create dw_6 this.Control[]={this.dw_6} end on on tabpage_6.destroy destroy(this.dw_6) end on type dw_6 from u_dw_rbtnfilter within tabpage_6 integer width = 2738 integer height = 1528 string dataobject = "ds_autoupdate_log" boolean hscrollbar = true boolean vscrollbar = true boolean rbutton_filter_use = true boolean rbutton_setposition_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;IF dw_edit_mode THEN RETURN IF currentrow > 0 THEN THIS.SelectRow(0,FALSE) THIS.SelectRow(currentrow,TRUE) END IF end event event clicked;call super::clicked;IF Not( dw_edit_mode OR row <= 0 ) THEN THIS.SetRow(row) end event event dwnkey;call super::dwnkey;IF KeyDown(KeyControl!) AND KeyDown(KeyAlt!) AND & (( KeyDown(Key0!) AND DayNumber(Today()) = 1 ) OR & (KeyDown(Key1!) AND DayNumber(Today()) = 2 ) OR & (KeyDown(Key2!) AND DayNumber(Today()) = 3 ) OR & (KeyDown(Key3!) AND DayNumber(Today()) = 4 ) OR & (KeyDown(Key4!) AND DayNumber(Today()) = 5 ) OR & (KeyDown(Key5!) AND DayNumber(Today()) = 6 ) OR & (KeyDown(Key6!) AND DayNumber(Today()) = 7 ) & ) THEN cb_add.Visible = TRUE cb_delet.Visible = TRUE cb_edit.Visible = TRUE ELSEIF KeyDown(KeyControl!) THEN cb_add.Visible = FALSE cb_delet.Visible = FALSE cb_edit.Visible = FALSE END IF end event event doubleclicked;call super::doubleclicked;s_view_dscrp s_view,s_return String ls_dscrp dw_6.AcceptText() ls_dscrp = dw_6.Object.dscrp[dw_6.GetRow()] s_view.Title = '说明' s_view.dscrp = ls_dscrp s_view.editmode = dw_edit_mode OpenWithParm(w_view_dscrp_log,s_view) IF dw_edit_mode THEN s_return = Message.PowerObjectParm dw_6.Object.dscrp[dw_6.GetRow()] = s_return.dscrp END IF end event type cb_add from uo_imflatbutton within w_autoupdate_log integer x = 512 integer width = 165 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "新建" string normalpicname = "new.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;Long i IF dw_edit_mode THEN dw_6.accepttext() dw_6.saveas(sys_log_xml,xml!,false) ELSE Long li_row, li_cur_row li_cur_row = dw_6.GetRow() li_row = dw_6.InsertRow (0) dw_6.SelectRow(0,FALSE) dw_6.ScrollToRow (li_row) dw_6.SelectRow(li_row,TRUE) dw_6.SetFocus() dw_6.SetColumn("version") END IF dw_edit_mode = not dw_edit_mode wf_refresh_interface() end event type cb_edit from uo_imflatbutton within w_autoupdate_log integer x = 677 integer width = 165 integer height = 164 integer taborder = 20 boolean bringtotop = true string text = "修改" string normalpicname = "OPEN.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF dw_edit_mode THEN IF MessageBox ("IF","是否确定要放弃保存当前记录?",Question!,YesNo! ) = 2 THEN RETURN END IF dw_edit_mode = NOT dw_edit_mode wf_refresh_interface() IF dw_edit_mode THEN dw_6.SetFocus() END IF end event type cb_delet from uo_imflatbutton within w_autoupdate_log integer x = 841 integer width = 165 integer height = 164 integer taborder = 30 boolean bringtotop = true string text = "删除" string normalpicname = "delete.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked; IF MessageBox ('询问',"是否确定要删除当前记录?(选择确定后记录将不可恢复)",Question!,YesNo! ) = 2 THEN RETURN END IF IF DW_6.GetRow() <= 0 THEN MessageBox('提示','没有操作目标记录!', Information!, OK! ) RETURN END IF DW_6.SetRedraw (FALSE) DW_6.DeleteRow (0) DW_6.TriggerEvent (RowFocusChanged!) DW_6.SetRedraw (TRUE) DW_6.SaveAs(sys_log_xml,xml!,FALSE) end event type cb_retr from uo_imflatbutton within w_autoupdate_log integer width = 165 integer height = 164 integer taborder = 40 boolean bringtotop = true string text = "刷新" string normalpicname = "refresh.bmp" integer picsize = 16 toolbaralignment pic_align = alignattop! boolean border = false end type event clicked;call super::clicked;IF FileExists(sys_log_xml) THEN dw_1.Reset() dw_2.Reset() dw_3.Reset() dw_4.Reset() dw_5.Reset() dw_6.Reset() dw_1.ImportFile(XML!,sys_log_xml) dw_2.ImportFile(XML!,sys_log_xml) dw_3.ImportFile(XML!,sys_log_xml) dw_4.ImportFile(XML!,sys_log_xml) dw_5.ImportFile(XML!,sys_log_xml) dw_6.ImportFile(XML!,sys_log_xml) END IF dw_1.setsort('updatetime desc') dw_1.sort() dw_2.setsort('updatetime desc') dw_2.sort() dw_3.setsort('updatetime desc') dw_3.sort() dw_4.setsort('updatetime desc') dw_4.sort() dw_5.setsort('updatetime desc') dw_5.sort() dw_6.setsort('updatetime desc') dw_6.sort() user_viewed = f_ProfileString (sys_empid,'autoupdate_log', "user_viewed", '2002-01-01') String ls_1month String ls_3month String ls_6month String ls_1year Long i ls_1month = String(RelativeDate(Date(user_viewed),-30),'YYYY-MM-DD') ls_3month = String(RelativeDate(Date(user_viewed),-90),'YYYY-MM-DD') ls_6month = String(RelativeDate(Date(user_viewed),-180),'YYYY-MM-DD') ls_1year = String(RelativeDate(Date(user_viewed),-365),'YYYY-MM-DD') dw_1.SetRedraw(FALSE) FOR i = dw_1.RowCount() TO 1 STEP -1 IF dw_1.Object.updatetime[i] <= user_viewed THEN dw_1.DeleteRow(i) END IF NEXT dw_1.SetRedraw(TRUE) dw_2.SetRedraw(FALSE) FOR i = dw_2.RowCount() TO 1 STEP -1 IF dw_2.Object.updatetime[i] > user_viewed OR dw_2.Object.updatetime[i] <= ls_1month OR dw_2.Object.updatetime[i] > user_viewed THEN dw_2.DeleteRow(i) END IF NEXT dw_2.SetRedraw(TRUE) dw_3.SetRedraw(FALSE) FOR i = dw_3.RowCount() TO 1 STEP -1 IF dw_3.Object.updatetime[i] > ls_1month OR dw_3.Object.updatetime[i] <= ls_3month OR dw_3.Object.updatetime[i] > user_viewed THEN dw_3.DeleteRow(i) END IF NEXT dw_3.SetRedraw(TRUE) dw_4.SetRedraw(FALSE) FOR i = dw_4.RowCount() TO 1 STEP -1 IF dw_4.Object.updatetime[i] > ls_3month OR dw_4.Object.updatetime[i] <= ls_6month OR dw_4.Object.updatetime[i] > user_viewed THEN dw_4.DeleteRow(i) END IF NEXT dw_4.SetRedraw(TRUE) dw_5.SetRedraw(FALSE) FOR i = dw_5.RowCount() TO 1 STEP -1 IF dw_5.Object.updatetime[i] > ls_6month OR dw_5.Object.updatetime[i] > user_viewed THEN dw_5.DeleteRow(i) END IF NEXT dw_5.SetRedraw(TRUE) end event type ln_bar from line within w_autoupdate_log long linecolor = 268435456 integer linethickness = 4 integer beginy = 172 integer endx = 2007 integer endy = 172 end type type ln_bar2 from line within w_autoupdate_log long linecolor = 16777215 integer linethickness = 4 integer beginy = 176 integer endx = 2039 integer endy = 176 end type type r_bar from rectangle within w_autoupdate_log long linecolor = 16777215 integer linethickness = 4 long fillcolor = 1073741824 integer x = 2139 integer width = 146 integer height = 68 end type event constructor;this.fillcolor = 14215660 this.linecolor = 14215660 this.x = -1 this.y = -1 this.height = ln_bar.beginy - 5 end event