$PBExportHeader$uo_task_detail.sru forward global type uo_task_detail from tab end type type tabpage_1 from userobject within uo_task_detail end type type dw_1 from u_dw_rbtnfilter within tabpage_1 end type type tabpage_1 from userobject within uo_task_detail dw_1 dw_1 end type type tabpage_2 from userobject within uo_task_detail end type type dw_2 from u_dw_rbtnfilter within tabpage_2 end type type tabpage_2 from userobject within uo_task_detail dw_2 dw_2 end type type tabpage_3 from userobject within uo_task_detail end type type dw_3 from u_dw_rbtnfilter within tabpage_3 end type type tabpage_3 from userobject within uo_task_detail dw_3 dw_3 end type type tabpage_4 from userobject within uo_task_detail end type type dw_4 from u_dw_rbtnfilter within tabpage_4 end type type tabpage_4 from userobject within uo_task_detail dw_4 dw_4 end type type tabpage_5 from userobject within uo_task_detail end type type dw_5 from u_dw_rbtnfilter within tabpage_5 end type type tabpage_5 from userobject within uo_task_detail dw_5 dw_5 end type type tabpage_6 from userobject within uo_task_detail end type type cb_1 from commandbutton within tabpage_6 end type type mle_1 from multilineedit within tabpage_6 end type type tabpage_6 from userobject within uo_task_detail cb_1 cb_1 mle_1 mle_1 end type end forward global type uo_task_detail from tab integer width = 2661 integer height = 1552 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long backcolor = 16777215 boolean raggedright = true boolean focusonbuttondown = true 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 event ue_resize ( ) event ue_fjchanged ( ) end type global uo_task_detail uo_task_detail type variables datawindow dw_1, dw_2, dw_3, dw_4, dw_5 long ins_status = 0 long ins_taskid = 0 end variables forward prototypes public subroutine uof_retrieve (long arg_taskid) public subroutine wf_gettasklog () end prototypes event ue_resize();dw_1.width = tabpage_1.width dw_1.height = tabpage_1.height dw_2.width = tabpage_2.width dw_2.height = tabpage_2.height dw_3.width = tabpage_3.width dw_3.height = tabpage_3.height dw_4.width = tabpage_4.width dw_4.height = tabpage_4.height dw_5.width = tabpage_5.width dw_5.height = tabpage_5.height tabpage_6.mle_1.width = tabpage_6.width tabpage_6.mle_1.height = tabpage_6.height - tabpage_6.mle_1.y end event public subroutine uof_retrieve (long arg_taskid);// 获取订单明细 ins_taskid = arg_taskid oleobject parms, lo_rslt, lo_fjs, lo_fjbacks, lo_orders, lo_wkps, lo_barcodes, lo_item, lo_task String arg_msg = '' parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', arg_taskid) lo_fjs = AppCom.GetTaskFJs(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF Long ll_cnt, i, row ll_cnt = lo_fjs.Count dw_1.Reset() dw_1.SetRedraw(False) FOR i = 1 To ll_cnt lo_item = lo_fjs.GetItem(i - 1) row = dw_1.InsertRow(0) dw_1.SetItem(row, 'taskid', lo_item.GetInt('taskid')) dw_1.SetItem(row, 'printid', lo_item.GetInt('printid')) dw_1.SetItem(row, 'mxcode', lo_item.GetString('mxcode')) dw_1.SetItem(row, 'price_ls', lo_item.GetDouble('price_ls')) dw_1.SetItem(row, 'price_jm', lo_item.GetDouble('price_jm')) dw_1.SetItem(row, 'mtrltype', lo_item.GetString('mtrltype')) dw_1.SetItem(row, 'fjname', lo_item.GetString('fjname')) dw_1.SetItem(row, 'fjdscrp', lo_item.GetString('fjdscrp')) NEXT dw_1.SetRedraw(True) lo_rslt = AppCom.GetTaskDetail(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF lo_task = lo_rslt.GetPBDictionary('task') ins_status = lo_task.GetInt('status') tabpage_6.mle_1.Text = lo_task.GetString('oplog') lo_fjbacks = lo_rslt.GetArrOfPBDictionary('fjbacks') ll_cnt = lo_fjbacks.Count dw_2.Reset() dw_2.SetRedraw(False) FOR i = 1 To ll_cnt lo_item = lo_fjbacks.GetItem(i - 1) row = dw_2.InsertRow(0) dw_2.SetItem(row, 'taskid', lo_item.GetInt('taskid')) dw_2.SetItem(row, 'printid', lo_item.GetInt('printid')) dw_2.SetItem(row, 'fjname', lo_item.GetString('fjname')) dw_2.SetItem(row, 'fjdscrp', lo_item.GetString('fjdscrp')) dw_2.SetItem(row, 'withprice', lo_item.GetInt('withprice')) NEXT dw_2.SetRedraw(True) lo_orders = lo_rslt.GetArrOfPBDictionary("orders") ll_cnt = lo_orders.Count dw_3.Reset() dw_3.SetRedraw(False) FOR i = 1 To ll_cnt lo_item = lo_orders.GetItem(i - 1) row = dw_3.InsertRow(0) dw_3.SetItem(row, 'taskid', lo_item.GetInt('taskid')) dw_3.SetItem(row, 'orderid', lo_item.GetInt('orderid')) dw_3.SetItem(row, 'scid', lo_item.GetInt('scid')) dw_3.SetItem(row, 'ordercode', lo_item.GetString('ordercode')) dw_3.SetItem(row, 'pordercode', lo_item.GetString('pordercode')) dw_3.SetItem(row, 'status', lo_item.GetInt('status')) dw_3.SetItem(row, 'mtrlcode', lo_item.GetString('mtrlcode')) dw_3.SetItem(row, 'mtrlname', lo_item.GetString('mtrlname')) dw_3.SetItem(row, 'mtrlmode', lo_item.GetString('mtrlmode')) dw_3.SetItem(row, 'ifpack', lo_item.GetInt('ifpack')) dw_3.SetItem(row, 'orderqty', lo_item.GetDouble('orderqty')) dw_3.SetItem(row, 'acmpqty', lo_item.GetDouble('acmpqty')) dw_3.SetItem(row, 'ifpban', lo_item.GetInt('ifpban')) dw_3.SetItem(row, 'ifupban', lo_item.GetInt('ifupban')) dw_3.SetItem(row, 'ifqiban', lo_item.GetInt('ifqiban')) dw_3.SetItem(row, 'ordermtrlcode', lo_item.GetString('ordermtrlcode')) dw_3.SetItem(row, 'ordermtrlname', lo_item.GetString('ordermtrlname')) dw_3.SetItem(row, 'upmtrlcode', lo_item.GetString('upmtrlcode')) dw_3.SetItem(row, 'upmtrlname', lo_item.GetString('upmtrlname')) NEXT dw_3.SetRedraw(True) lo_wkps = lo_rslt.GetArrOfPBDictionary('wkps') ll_cnt = lo_wkps.Count dw_4.Reset() dw_4.SetRedraw(False) FOR i = 1 To ll_cnt lo_item = lo_wkps.GetItem(i - 1) row = dw_4.InsertRow(0) dw_4.SetItem(row, 'taskid', lo_item.GetInt('taskid')) dw_4.SetItem(row, 'orderid', lo_item.GetInt('orderid')) dw_4.SetItem(row, 'scid', lo_item.GetInt('scid')) dw_4.SetItem(row, 'wrkgrpid', lo_item.GetInt('wrkgrpid')) dw_4.SetItem(row, 'owrkgrpid', lo_item.GetInt('owrkgrpid')) dw_4.SetItem(row, 'wkpname', lo_item.GetString('wkpname')) dw_4.SetItem(row, 'workgroupid', lo_item.GetInt('workgroupid')) dw_4.SetItem(row, 'begindate', lo_item.GetDateTime('begindate')) dw_4.SetItem(row, 'requiredate', lo_item.GetDateTime('requiredate')) dw_4.SetItem(row, 'orderqty', lo_item.GetDouble('orderqty')) dw_4.SetItem(row, 'taskqty', lo_item.GetDouble('taskqty')) dw_4.SetItem(row, 'finishqty', lo_item.GetDouble('finishqty')) dw_4.SetItem(row, 'stopqty', lo_item.GetDouble('stopqty')) dw_4.SetItem(row, 'acceptqty', lo_item.GetDouble('acceptqty')) dw_4.SetItem(row, 'ordercode', lo_item.GetString('ordercode')) dw_4.SetItem(row, 'mtrlcode', lo_item.GetString('mtrlcode')) dw_4.SetItem(row, 'mtrlname', lo_item.GetString('mtrlname')) dw_4.SetItem(row, 'mtrlmode', lo_item.GetString('mtrlmode')) dw_4.SetItem(row, 'wrkgrpname', lo_item.GetString('wrkgrpname')) dw_4.SetItem(row, 'owrkgrpname', lo_item.GetString('owrkgrpname')) dw_4.SetItem(row, 'workgroupname', lo_item.GetString('workgroupname')) NEXT dw_4.SetRedraw(True) lo_barcodes = lo_rslt.GetArrOfPBDictionary('barcodes') ll_cnt = lo_barcodes.Count dw_5.Reset() dw_5.SetRedraw(False) FOR i = 1 To ll_cnt lo_item = lo_barcodes.GetItem(i - 1) row = dw_5.InsertRow(0) dw_5.SetItem(row, 'taskid', lo_item.GetInt('taskid')) dw_5.SetItem(row, 'barcode', lo_item.GetString('barcode')) dw_5.SetItem(row, 'inflag', lo_item.GetInt('inflag')) dw_5.SetItem(row, 'outflag', lo_item.GetInt('outflag')) dw_5.SetItem(row, 'cmgflag', lo_item.GetInt('cmgflag')) dw_5.SetItem(row, 'sjflag', lo_item.GetInt('sjflag')) dw_5.SetItem(row, 'ordercode', lo_item.GetString('ordercode')) dw_5.SetItem(row, 'mtrlcode', lo_item.GetString('mtrlcode')) dw_5.SetItem(row, 'mtrlname', lo_item.GetString('mtrlname')) dw_5.SetItem(row, 'mtrlmode', lo_item.GetString('mtrlmode')) dw_5.SetItem(row, 'packqty', lo_item.GetDouble('packqty')) dw_5.SetItem(row, 'qty', lo_item.GetDouble('qty')) NEXT dw_5.SetRedraw(True) end subroutine public subroutine wf_gettasklog (); String arg_msg = '', ls_rslt oleobject parms parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', ins_taskid) ls_rslt = AppCom.GetTaskLog(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF tabpage_6.mle_1.Text = ls_rslt end subroutine on uo_task_detail.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 uo_task_detail.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 event constructor;dw_1 = tabpage_1.dw_1 dw_2 = tabpage_2.dw_2 dw_3 = tabpage_3.dw_3 dw_4 = tabpage_4.dw_4 dw_5 = tabpage_5.dw_5 end event type tabpage_1 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "询价明细" long tabtextcolor = 33554432 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 = 2459 integer height = 1340 boolean bringtotop = true string dataobject = "dw_saletask_detail_fj" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0, false) if currentrow > 0 then this.selectrow(currentrow, true) end if end event event clicked;call super::clicked;IF row <= 0 THEN RETURN This.SetRow(row) String ls_name ls_name = dwo.Name Long taskid, printid, i String Filename, Pathname, FileType oleobject parms String arg_msg = '' IF ls_name = 'btn' Or ls_name = 'btn1' THEN taskid = This.Object.taskid[row] printid = This.Object.printid[row] Filename = This.Object.fjname[row] IF MessageBox('提问', '是否要打开文件'+Filename+'?', Question!, YesNo!, 1) <> 1 THEN RETURN Pathname = GetCurrentDirectory() + "\" + "fjtemp" IF Not DirectoryExists(Pathname) THEN CreateDirectory(Pathname) END IF Filename = Pathname + "\" + Filename IF FileExists(Filename) THEN FileDelete(Filename) END IF parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', taskid) parms.SetInt('printid', printid) parms.SetString('filename', Filename) IF ins_status = 2 THEN AppCom.EditFjDataAsync(parms, Ref arg_msg) ELSE AppCom.OpenFjDataAsync(parms, Ref arg_msg) END IF IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF RETURN // 使用异步打开文件,下面的同步打开文件 AppCom.GetFjData(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF oleobject FM FM = Create oleobject uo_reghelper ll_reghelper ll_reghelper = Create uo_reghelper Boolean changed = False IF ll_reghelper.ConnectToNewObject("LJCom.FileHelper", "LJCom.FileHelper.dll", FM, arg_msg) <> 1 THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '连接LJCom.FileHelper失败,' + arg_msg) GOTO ext END IF // DONE: 如果当前状态可以修改 IF ins_status = 2 THEN IF Not FM.EditFile(Filename, Ref changed, Ref arg_msg) THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '编辑文件失败,' + arg_msg) GOTO ext END IF ELSE IF Not FM.OpenFile(Filename, Ref arg_msg) THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '打开文件失败,' + arg_msg) GOTO ext END IF END IF Destroy ll_reghelper Destroy FM IF changed THEN IF MessageBox('提问', '文件已被修改,是否提交?(修改后订单可以重新询价)', Question!, YesNo!, 1) <> 1 THEN GOTO ext parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', taskid) parms.SetInt('printid', printid) parms.SetString('filename', Filename) AppCom.SaveFJ(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) GOTO ext END IF MessageBox('OK', '文件提交完成') Parent.GetParent().TriggerEvent('ue_fjchanged') END IF ext: FileDelete(Filename) // Pathname = Filename // FileType = '所有文件,*.*' // i = GetFileSaveName("请选择文件", Pathname,Filename, "All", FileType) // // IF i = 1 And Trim(Pathname) <> '' And Trim(Filename) <> "" THEN // IF FileExists(Pathname) THEN // IF MessageBox('提问', '文件'+Pathname+'已存在是否要覆盖?', Question!, YesNo!, 1) <> 1 THEN RETURN // END IF // // parms = AppCom.CreatePbDictionary() // parms.SetString('token', app_token) // parms.SetInt('taskid', taskid) // parms.SetInt('printid', printid) // parms.SetString('filename', Pathname) // AppCom.GetFjData(parms, Ref arg_msg) // IF arg_msg <> '' THEN // MessageBox('ERROR', arg_msg) // RETURN // END IF // END IF END IF end event type tabpage_2 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "报价明细" long tabtextcolor = 33554432 long tabbackcolor = 16777215 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 = 2459 integer height = 1340 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_saletask_detail_fjback" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0, false) if currentrow > 0 then this.selectrow(currentrow, true) end if end event event clicked;call super::clicked;IF row <= 0 THEN RETURN This.SetRow(row) String ls_name ls_name = dwo.Name Long taskid, printid, i String Filename, Pathname, FileType oleobject parms String arg_msg = '' IF ls_name = 'btn' Or ls_name = 'btn1' THEN taskid = This.Object.taskid[row] printid = This.Object.printid[row] Filename = This.Object.fjname[row] IF MessageBox('提问', '是否要打开文件'+Filename+'?', Question!, YesNo!, 1) <> 1 THEN RETURN Pathname = GetCurrentDirectory() + "\" + "fjtemp" IF Not DirectoryExists(Pathname) THEN CreateDirectory(Pathname) END IF Filename = Pathname + "\" + Filename IF FileExists(Filename) THEN FileDelete(Filename) END IF parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', taskid) parms.SetInt('printid', printid) parms.SetString('filename', Filename) //messageBox('', Filename) IF ins_status = 1 OR ins_status = 8 THEN AppCom.EditFjBackDataAsync(parms, Ref arg_msg) ELSE AppCom.OpenFjBackDataAsync(parms, Ref arg_msg) END IF IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF RETURN // 使用异步打开文件,下面的同步打开文件 AppCom.GetFjBackData(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF oleobject FM FM = Create oleobject uo_reghelper ll_reghelper ll_reghelper = Create uo_reghelper Boolean changed = False IF ll_reghelper.ConnectToNewObject("LJCom.FileHelper", "LJCom.FileHelper.dll", FM, arg_msg) <> 1 THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '连接LJCom.FileHelper失败,' + arg_msg) goto ext END IF // DONE: 如果当前状态可以修改 if ins_status = 1 OR ins_status = 8 then IF Not FM.EditFile(Filename, Ref changed, Ref arg_msg) THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '编辑文件失败,' + arg_msg) goto ext END IF else IF Not FM.OpenFile(Filename, Ref arg_msg) THEN Destroy ll_reghelper Destroy FM MessageBox('ERROR', '打开文件失败,' + arg_msg) goto ext END IF end if Destroy ll_reghelper Destroy FM IF changed THEN IF MessageBox('提问', '文件已被修改,是否提交?(修改后订单只能重新询价,不能审核)', Question!, YesNo!, 1) <> 1 THEN goto ext parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', taskid) parms.SetInt('printid', printid) parms.SetString('filename', Filename) AppCom.SaveFJBack(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) goto ext END IF MessageBox('OK', '文件提交完成') parent.getparent().triggerevent('ue_fjchanged') END IF ext: FileDelete(Filename) // Pathname = Filename // FileType = '所有文件,*.*' // i = GetFileSaveName("请选择文件", Pathname,Filename, "All", FileType) // // IF i = 1 And Trim(Pathname) <> '' And Trim(Filename) <> "" THEN // IF FileExists(Filename) THEN // IF MessageBox('提问', '文件已存在是否要覆盖?', Question!, YesNo!, 1) <> 1 THEN RETURN // END IF // // parms = AppCom.CreatePbDictionary() // parms.SetString('token', app_token) // parms.SetInt('taskid', taskid) // parms.SetInt('printid', printid) // parms.SetString('filename', Filename) // AppCom.GetFjBackData(parms, Ref arg_msg) // IF arg_msg <> '' THEN // MessageBox('ERROR', arg_msg) // RETURN // END IF // END IF END IF end event type tabpage_3 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "指令单" long tabtextcolor = 33554432 long tabbackcolor = 16777215 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 = 2459 integer height = 1340 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_saletask_detail_order" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0, false) if currentrow > 0 then this.selectrow(currentrow, true) end if end event type tabpage_4 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "工组进度" long tabtextcolor = 33554432 long tabbackcolor = 16777215 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 = 2459 integer height = 1340 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_saletask_detail_order_wkp" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0, false) if currentrow > 0 then this.selectrow(currentrow, true) end if end event type tabpage_5 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "条码" long tabtextcolor = 33554432 long tabbackcolor = 16777215 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 = 2459 integer height = 1340 integer taborder = 20 boolean bringtotop = true string dataobject = "dw_saletask_detail_order_barcode" boolean hscrollbar = true boolean vscrollbar = true boolean hsplitscroll = true boolean rbutton_filter_use = true boolean titleclick_sort_use = true end type event rowfocuschanged;call super::rowfocuschanged;this.selectrow(0, false) if currentrow > 0 then this.selectrow(currentrow, true) end if end event type tabpage_6 from userobject within uo_task_detail event create ( ) event destroy ( ) integer x = 18 integer y = 96 integer width = 2624 integer height = 1440 long backcolor = 16777215 string text = "日志" long tabtextcolor = 33554432 long tabbackcolor = 16777215 long picturemaskcolor = 536870912 cb_1 cb_1 mle_1 mle_1 end type on tabpage_6.create this.cb_1=create cb_1 this.mle_1=create mle_1 this.Control[]={this.cb_1,& this.mle_1} end on on tabpage_6.destroy destroy(this.cb_1) destroy(this.mle_1) end on type cb_1 from commandbutton within tabpage_6 integer width = 251 integer height = 112 integer taborder = 20 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" string text = "留言" end type event clicked;S_INPUTBOX s_input s_input.Title = '留言' s_input.OLD_TEXT = '' OpenWithParm(w_inputbox, s_input) String rslt rslt = Message.StringParm IF rslt = '' THEN RETURN oleobject parms parms = AppCom.CreatePbDictionary() parms.SetString('token', app_token) parms.SetInt('taskid', ins_taskid) parms.SetString('opemp', app_username) parms.SetString('logmsg', rslt) String arg_msg = '' AppCom.AddTaskLog(parms, Ref arg_msg) IF arg_msg <> '' THEN MessageBox('ERROR', arg_msg) RETURN END IF wf_gettasklog() end event type mle_1 from multilineedit within tabpage_6 integer y = 116 integer width = 2331 integer height = 1296 integer taborder = 20 integer textsize = -9 integer weight = 400 fontcharset fontcharset = gb2312charset! fontpitch fontpitch = variable! string facename = "宋体" long textcolor = 33554432 boolean hscrollbar = true boolean vscrollbar = true boolean autohscroll = true boolean autovscroll = true boolean displayonly = true borderstyle borderstyle = stylelowered! boolean hideselection = false end type