using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.IO; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using SuperMap.RealEstate.Utility; using SuperMap.RealEstate.Web.UI; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.HighWay.Running.Business; namespace SuperMap.RealEstate.HighWay.Compents.OnlineEdit { public partial class Edit : UserControl { Running.Business.HIGHWAYPROINST _HighWayProInst = null; protected override void OnInit(EventArgs e) { Common.PageHelper.CreateHeaderStyle(Page); _HighWayProInst = Running.Business.HIGHWAYPROINST.CreateInstance(Page); //隐藏打印受理单按钮 this.ButtonVisible = false; base.OnInit(e); } protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; if (_HighWayProInst.ProInst.NowActInst.ActInst_Type.ToInt32() == 1 && (ModifyType == ModifyTypeEnum.Edit || ModifyType == ModifyTypeEnum.EditVisible)) { Btn_Edit.Visible = true; td_upload.Visible = true; } else { Btn_Edit.Visible = false; td_upload.Visible = false; } PROINST_ID.Text = _HighWayProInst.HIGHWAYPROINST_ID.ToString(); //绑定对应的控件 BindRepick(); } //载入数据 public override bool LoadData() { //默认返回值,工作流组件返回True,功能模块返回False。 return (WorkFlowPage != null); } protected void Btn_Edit_CallBackClick(object sender, Web.UI.WebControls.ClientSetEventArgs e) { string username = this.Page.PassportInfo.Name; Running.Business.PROINSTCOMPACT _PROINSTCOMPACT = new Running.Business.PROINSTCOMPACT(_HighWayProInst); _PROINSTCOMPACT.AddSearchParameter("HIGHWAYPROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); if (_PROINSTCOMPACT.Search()) { e.ClientScript = Page.GetOpenPopDialogClientScript("/HighWay/CreateWord/word-lists.aspx?Prodef_ID=" + _HighWayProInst.ProInst.ProDef_ID.ToEncrypt() + "&Contract_Type=" + _PROINSTCOMPACT.COMPACT_TYPE.ToEncrypt() + "&username=" + username.ToEncrypt() + "&Proinst_ID=" + _HighWayProInst.Proinst_ID.ToEncrypt() + "&HWPronist_ID=" + _HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + "&NowActInst_ID=" + Request["NowActInst_ID"] + "&Module_ID=" + Request["Module_ID"], "word-lists", 1040, 895, true, false, true); } else { throw new Exception("请先填写合同内容!"); } } protected void Btn_OnlineEdit_CallBackClick(object sender, Web.UI.WebControls.ClientSetEventArgs e) { string username = this.Page.PassportInfo.Name; Running.Business.ATTACHMENT _ATTACHMENT = new Running.Business.ATTACHMENT(_HighWayProInst); _ATTACHMENT.AddSearchParameter("PROINST_ID", _HighWayProInst.HIGHWAYPROINST_ID); if (_ATTACHMENT.Search()) { e.ClientScript = Page.GetOpenPopDialogClientScript( "/HighWay/CreateWord/word-lists2.aspx?PROINST_ID=" + _HighWayProInst.HIGHWAYPROINST_ID.ToEncrypt() + "&username=" + username.ToEncrypt() + "", "word-lists2", 1040, 895, true, false, true); } else { throw new Exception("请先选择模板生成合同!"); } } private void BindRepick() { //绑定对应的控件 Repeater1.DataSource = (new Business.ATTACHMENT(this.Transaction)).ExecuteDataTable( "SELECT * FROM T_ATTACHMENT where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID); Repeater1.DataBind(); } public byte[] StreamToBytes(Stream stream) { byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); // 设置当前流的位置为流的开始 stream.Seek(0, SeekOrigin.Begin); return bytes; } protected void LinkButton_Click(object sender, EventArgs e) { LinkButton LinkButton = sender as LinkButton; //下载内容 Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(this.Transaction); _ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"]; if (_ATTACHMENT.Select()) { System.IO.MemoryStream ms = new System.IO.MemoryStream(); //string uploadPath = HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + "\\" + // _ATTACHMENT.ATTACHMENT_NAME; string uploadPath = HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + (string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME) ? _ATTACHMENT.ATTACHMENT_NAME : _ATTACHMENT.PRESONNAME + "/" + _ATTACHMENT.ATTACHMENT_DESC); HttpContext.Current.Response.Clear(); HttpContext.Current.Response.Buffer = true; HttpContext.Current.Response.Charset = "utf-8"; HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");//设置输出流为简体中文 HttpContext.Current.Response.AddHeader("Content-Disposition", string.Format("attachment; filename=" + (string.IsNullOrEmpty(_ATTACHMENT.ATTACHMENT_DESC) ? _ATTACHMENT.ATTACHMENT_NAME : _ATTACHMENT.ATTACHMENT_DESC), DateTime.Now.ToString("yyyyMMddHHmmssfff"))); HttpContext.Current.Response.BinaryWrite(System.IO.File.ReadAllBytes(uploadPath)); HttpContext.Current.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 HttpContext.Current.Response.End(); ms.Close(); ms.Dispose(); } } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == System.Web.UI.WebControls.ListItemType.Item || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.AlternatingItem || e.Item.ItemType == System.Web.UI.WebControls.ListItemType.SelectedItem) { DataRowView _DataRowView = (DataRowView)e.Item.DataItem; LinkButton LinkButton = e.Item.FindControl("LinkButton") as LinkButton; LinkButton.ToolTip = string.IsNullOrEmpty(_DataRowView["ATTACHMENT_DESC"].ToString()) ? _DataRowView["ATTACHMENT_NAME"].ToString() : _DataRowView["ATTACHMENT_DESC"].ToString(); LinkButton.Text = "" + (LinkButton.ToolTip.Length > 30 ? LinkButton.ToolTip.Substring(0, 25) + "..." : LinkButton.ToolTip) + ""; LinkButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt(); if (_HighWayProInst.ProInst.NowActInst.ActInst_Type.ToInt32() == 1 && (ModifyType == ModifyTypeEnum.Edit || ModifyType == ModifyTypeEnum.EditVisible)) { LinkButton DelButton = e.Item.FindControl("DelButton") as LinkButton; DelButton.Text = ""; DelButton.Attributes["base-code"] = _DataRowView["ATTACHMENT_ID"].ToEncrypt(); } } } protected void DelButton_Click(object sender, EventArgs e) { try { LinkButton LinkButton = sender as LinkButton; Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(Transaction); _ATTACHMENT.ATTACHMENT_ID_Encrypt = LinkButton.Attributes["base-code"].ToString(); if (_ATTACHMENT.Select()) { if (!string.IsNullOrEmpty(_ATTACHMENT.PRESONNAME)) { if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + _ATTACHMENT.PRESONNAME)) { Directory.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + _ATTACHMENT.PRESONNAME, true); } } else { if (Directory.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile")) && File.Exists(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + _ATTACHMENT.ATTACHMENT_NAME)) { File.Delete(HttpContext.Current.Server.MapPath("~/UploadImageDir/CompactFile/") + _ATTACHMENT.ATTACHMENT_NAME); } } _ATTACHMENT.Delete(); } BindRepick(); string _TENDER_DESC = ""; switch (_HighWayProInst.__ProInst.Operation_Type_BaseValue) { case 350100: case 350200: case 350300: foreach (Business.ATTACHMENT _Attachment in new Business.ATTACHMENT(this.Transaction).FillCollection( "where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID)) { _TENDER_DESC += _Attachment.ATTACHMENT_NAME + "\r\n"; } Business.TENDER _TENDER = new Business.TENDER(Transaction); _TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID); if (_TENDER.Search()) { _TENDER.TENDER_DESC = _TENDER_DESC; _TENDER.Update(); } //刷新父页 Page.ExecClientScript("$('#pop-dialog-frame-WorkFlowWorkPlatform',parent.parent.document).attr('src'," + " '/WorkFlow/Transact/Common/ProcessPage.aspx?NowActInst_ID=" + Request["NowActInst_ID"] + "&ProInst_ID=" + Request["ProInst_ID"] + "&Module_ID=" + Request["Module_ID"] + "&PopDialogPageName=F_R_GridPageEx1&PopDialogName=WorkFlowWorkPlatform&r=0.8500934960320592')"); break; default: break; } //if (_HighWayProInst.__ProInst.Operation_Type_BaseValue == int.Parse("350100")) //{ //foreach (Business.ATTACHMENT _ATTACHMENT in new Business.ATTACHMENT(this.Transaction).FillCollection( // "where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID)) //{ // _TENDER_DESC += _ATTACHMENT.ATTACHMENT_NAME + "\r\n"; //} //Business.TENDER _TENDER = new Business.TENDER(Transaction); //_TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID); //if (_TENDER.Search()) //{ // _TENDER.TENDER_DESC = _TENDER_DESC; // _TENDER.Update(); //} //} } catch (Exception ex) { //回滚事务 Transaction.Rollback(); //记录日志 ErrorLogHelper.Write(ex); } } protected void CallBackButton1_Click(object sender, EventArgs e) { string _TENDER_DESC = ""; switch (_HighWayProInst.__ProInst.Operation_Type_BaseValue) { case 350100: case 350200: case 350300: foreach (Business.ATTACHMENT _ATTACHMENT in new Business.ATTACHMENT(this.Transaction).FillCollection( "where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID)) { _TENDER_DESC += _ATTACHMENT.ATTACHMENT_NAME + "\r\n"; } Business.TENDER _TENDER = new Business.TENDER(Transaction); _TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID); if (_TENDER.Search()) { _TENDER.TENDER_DESC = _TENDER_DESC; _TENDER.Update(); } //刷新父页 Page.ExecClientScript("$('#pop-dialog-frame-WorkFlowWorkPlatform',parent.parent.document).attr('src'," + " '/WorkFlow/Transact/Common/ProcessPage.aspx?NowActInst_ID=" + Request["NowActInst_ID"] + "&ProInst_ID=" + Request["ProInst_ID"] + "&Module_ID=" + Request["Module_ID"] + "&PopDialogPageName=F_R_GridPageEx1&PopDialogName=WorkFlowWorkPlatform&r=0.8500934960320592')"); break; default: break; } //if (_HighWayProInst.__ProInst.Operation_Type_BaseValue == int.Parse("350100")) //{ // foreach (Business.ATTACHMENT _ATTACHMENT in new Business.ATTACHMENT(this.Transaction).FillCollection( // "where PROINST_ID = " + this._HighWayProInst.HIGHWAYPROINST_ID)) // { // _TENDER_DESC += _ATTACHMENT.ATTACHMENT_NAME + "\r\n"; // } // Business.TENDER _TENDER = new Business.TENDER(Transaction); // _TENDER.AddSearchParameter("HIGHWAYPROINST_ID", this._HighWayProInst.HIGHWAYPROINST_ID); // if (_TENDER.Search()) // { // _TENDER.TENDER_DESC = _TENDER_DESC; // _TENDER.Update(); // } //} BindRepick(); } public override bool Save(bool AutoBindData = true) { //判断附件是否已经上传,未上传返回false Business.ATTACHMENT _ATTACHMENT = new Business.ATTACHMENT(this.Transaction); if (_ATTACHMENT.GetCount("where PROINST_ID =" + _HighWayProInst.HIGHWAYPROINST_ID) == 0) { throw new Exception("请上传对应的附件!"); } return true; //return base.Save(AutoBindData); } } }