using System; using System.Data; using System.Web.UI.WebControls; using SuperMap.RealEstate.CoreFrameWork; using SuperMap.RealEstate.Web.UI.WebControls; using SuperMap.RealEstate.Web.Utility; using Business = SuperMap.RealEstate.SendRec.Storage.Business; using HighWayBusiness = SuperMap.RealEstate.HighWay.Storage.Business; namespace SuperMap.RealEstate.SendRec.Modules.SearchCommodity { public partial class ObjectPage : BasePage { private double CurrPage = 0.0, CurrPagePrice = 0.00; private string CommodityTypeString = ""; private string ShowString = ""; private const string ShowTemplate = ",当前类别合计:含税{0}元," + "除税{1}元,当前服务区合计:含税{2}元," + "除税{3}元,库存总数:{4}"; #region 方法 -> 页面加载 protected void Page_Load(object sender, EventArgs e) { if (IsPostBack) return; //初始化并加载列表 InitWebControls(); InitTitle(null); GridViewEx1.SelectingWithInit(ObjectDataSource1, GridPageEx1, DictionaryHelper.GetDictionary(Transaction, "COMMODITYGRADE").AsNewKeys("COMMODITY_GRADE")); //设置回车焦点按钮 SetControlClientAction(ButtonSearch); LblTitle.Text = LblTitle.Text + ShowString; } private void InitWebControls() { SERVERPART_ID.Clear(); ListItemEx _ListItemEx = new ListItemEx(); if (PassportInfo.UserName == "system" || PassportInfo.UserName == "admin") { _ListItemEx.Text = "所有服务区"; _ListItemEx.Value = ""; SERVERPART_ID.Items.Add(_ListItemEx); } foreach (HighWayBusiness.SERVERPART _SERVERPART in (new HighWayBusiness.SERVERPART(Transaction)).GetPassportServerPart(PassportInfo.CityAuthority, "1000,1001")) { _ListItemEx = new ListItemEx(); _ListItemEx.Text = _SERVERPART.SERVERPART_NAME; _ListItemEx.Value = _SERVERPART.SERVERPART_ID.ToString(); SERVERPART_ID.Items.Add(_ListItemEx); } if (Session["SERVERPART_ID"] != null && Session["SERVERPART_ID"].ToString() != "") { SERVERPART_ID.SelectedValue = Session["SERVERPART_ID"].ToString(); } } #endregion #region 方法 -> 加载合计信息 private void InitTitle(ClientSetEventArgs e) { try { double TypeTaxCount = 0; //类型含税金额 double TypeCount = 0; //类型除税金额 double ServerTaxCount = 0; //服务区含税金额 double ServerCount = 0; //服务区除税金额 double StockCount = 0; //库存总数 Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction); if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1") { string OutTypeString = Request["ID"].ToDecrypt(); HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true); CommodityTypeString = OutTypeString; DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue, CommodityTypeString, OVERPLUSCOUNT.SelectedValue).Rows[0]; double.TryParse(dataRow[0].ToString(), out TypeTaxCount); double.TryParse(dataRow[1].ToString(), out TypeCount); } else if (Request["ID"] == "-1") { DataRow dataRow = _SERVERPARTSTOCK.GetTotalDTByType(SERVERPART_ID.SelectedValue, "", OVERPLUSCOUNT.SelectedValue).Rows[0]; double.TryParse(dataRow[0].ToString(), out TypeTaxCount); double.TryParse(dataRow[1].ToString(), out TypeCount); } DataRow dataRows = _SERVERPARTSTOCK.GetTotalDTByServerPart(SERVERPART_ID.SelectedValue, OVERPLUSCOUNT.SelectedValue).Rows[0]; double.TryParse(dataRows[0].ToString(), out ServerTaxCount); double.TryParse(dataRows[1].ToString(), out ServerCount); double.TryParse(dataRows[2].ToString(), out StockCount); ShowString = string.Format(ShowTemplate, TypeTaxCount.ToString("F2"), TypeCount.ToString("F2"), ServerTaxCount.ToString("F2"), ServerCount.ToString("F2"), StockCount.ToString("F2")); } catch { ShowString = string.Format(ShowTemplate, 0, 0, 0, 0, 0); } } #endregion #region 方法 -> 列表事件 //查询 protected void ButtonSearch_CallBackClick(object sender, ClientSetEventArgs e) { GridViewEx1.Selecting(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); e.SetValue(GridPageEx1); InitTitle(e); e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")"); } //翻页事件 protected void GridPageEx1_CallBackPageChanged(object src, ClientSetEventArgs e) { GridViewEx1.Pagging(ObjectDataSource1, GridPageEx1); //设置UI变化 e.SetValue(GridViewEx1); InitTitle(e); e.ExcuteClientScript("setData(\"" + LblTitle.Text + ShowString + "\")"); } //查询SQL设置 protected void GridViewEx1_SelectMethodParameters(object sender, SelectMethodParametersArgs e) { //搜索选项的搜索条件过滤 if (!string.IsNullOrEmpty(TextBox_Search.Text)) e.AddOrParams(GridViewSearch1, TextBox_Search.Text); if (!IsPostBack && string.IsNullOrEmpty(Request["ID"])) { e.AddAndParams("1", 2); } //添加服务区选项 //if (string.IsNullOrEmpty(SERVERPART_ID.SelectedValue)) //{ // e.AddAndParams("SERVERPART_ID", 0); //} if (!string.IsNullOrEmpty(SERVERPART_ID.SelectedValue) && SERVERPART_ID.SelectedValue != "1=1") { e.AddAndParams("SERVERPART_ID", SERVERPART_ID.SelectedValue); } else { e.SetOtherUserCustomWhereSqlString += (e.SetOtherUserCustomWhereSqlString == "" ? "" : " AND ") + "SERVERPART_ID IN (" + (new HighWayBusiness.SERVERPART(this.Transaction)).GetPassportServerPartID(this.PassportInfo.CityAuthority) + ")"; } //添加商品类别过滤 if (!string.IsNullOrEmpty(Request["ID"]) && Request["ID"] != "-1") { string OutTypeString = Request["ID"].ToDecrypt(); HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.GetSubCommodityType(ref OutTypeString, Request["ID"].ToDecrypt(), "", true); e.SetOtherUserCustomWhereSqlString = "COMMODITYTYPE_ID in(" + OutTypeString + ")"; CommodityTypeString = OutTypeString; } //else // e.AddAndParams("COMMODITYTYPE_ID", -1); if (OVERPLUSCOUNT.SelectedValue == "1") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT > 0" : " AND OVERPLUSCOUNT > 0"; } else if (OVERPLUSCOUNT.SelectedValue == "0") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "NVL(OVERPLUSCOUNT,0) = 0" : " AND NVL(OVERPLUSCOUNT,0) = 0"; } else if (OVERPLUSCOUNT.SelectedValue == "-1") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT < 0" : " AND OVERPLUSCOUNT < 0"; } else if (OVERPLUSCOUNT.SelectedValue == "exist") { e.SetOtherUserCustomWhereSqlString += e.SetOtherUserCustomWhereSqlString == "" ? "OVERPLUSCOUNT IS NOT NULL" : " AND OVERPLUSCOUNT IS NOT NULL"; } //排序 e.AddOrderByParams(GridViewOrderBy1); } #endregion #region 方法 -> 行绑定事件 protected void GridViewEx1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { LblTitle.Text = "当前页金额:含税0元,除税0元"; //InitTitle(null); } else if (e.Row.RowType == DataControlRowType.DataRow) { try { HighWayBusiness.COMMODITYTYPE _COMMODITYTYPE = new HighWayBusiness.COMMODITYTYPE(this.Transaction); _COMMODITYTYPE.COMMODITYTYPE_ID_Encrypt = e.Row.Cells[2].Text.ToEncrypt(); if (_COMMODITYTYPE.Select()) { e.Row.Cells[2].Text = _COMMODITYTYPE.COMMODITYTYPE_NAME; } } catch { } //进货明细--领用明细 string _SERVERPARTSTOCK_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["SERVERPARTSTOCK_ID"].ToEncrypt(); string _COMMODITY_ID = GridViewEx1.DataKeys[e.Row.RowIndex].Values["COMMODITY_ID"].ToEncrypt(); LinkButton LinkButton_Proinst = (LinkButton)e.Row.FindControl("LinkButton_Proinst"); LinkButton LB_RunningProinst = (LinkButton)e.Row.FindControl("LB_RunningProinst"); LinkButton_Proinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript( "Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" + _COMMODITY_ID, 1000, 600) + " return false;"; Business.SERVERPARTSTOCK _SERVERPARTSTOCK = new Business.SERVERPARTSTOCK(this.Transaction); _SERVERPARTSTOCK.SERVERPARTSTOCK_ID_Encrypt = _SERVERPARTSTOCK_ID; if (_SERVERPARTSTOCK_ID != "" && _SERVERPARTSTOCK.Select()) { e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable("SELECT " + _SERVERPARTSTOCK.OVERPLUSCOUNT + @" + NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0) FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A, (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B, SENDREC_STORAGE.T_SERVERPARTSTOCK C WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND C.COMMODITY_ID = " + _SERVERPARTSTOCK.COMMODITY_ID).Rows[0][0].ToString(); } else if (_SERVERPARTSTOCK.ExecuteDataTable("SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING " + "WHERE COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows.Count > 0) { e.Row.Cells[7].Text = _SERVERPARTSTOCK.ExecuteDataTable(@"SELECT NVL(SUM(A.TOTAL_COUNT),0) - NVL(SUM(B.TOTAL_COUNT),0) FROM (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE = 2000)A, (SELECT * FROM SENDREC_STORAGE.V_ALLPROINST_RUNNING WHERE APPLYPROINST_TYPE > 2000)B, SENDREC_STORAGE.V_UNIQUECOMMODITY C WHERE C.COMMODITY_ID = A.COMMODITY_ID(+) AND C.COMMODITY_ID = B.COMMODITY_ID(+) AND C.COMMODITY_ID = " + _COMMODITY_ID.ToDecrypt()).Rows[0][0].ToString(); } if (e.Row.Cells[6].Text.Replace(" ", "") != e.Row.Cells[7].Text.Replace(" ", "")) { if (e.Row.Cells[6].Text.Replace(" ", "") == "" && e.Row.Cells[7].Text.Replace(" ", "") == "0") { LB_RunningProinst.Visible = false; } else { LB_RunningProinst.OnClientClick = GridViewEx1.GetOpenPopDialogClientScript( "Proinst/APPLYPROINSTList.aspx?SERVERPARTSTOCK_ID=" + _SERVERPARTSTOCK_ID + "&COMMODITY_ID=" + _COMMODITY_ID + "&type=0", 1000, 600) + " return false;"; } } else { LB_RunningProinst.Visible = false; } try { CurrPage += double.Parse(e.Row.Cells[8].Text); CurrPagePrice += double.Parse(e.Row.Cells[9].Text); LblTitle.Text = "当前页金额:含税" + CurrPage + "元,除税" + CurrPagePrice + "元" + ShowString; } catch { } } } #endregion protected void SERVERPART_ID_CallBackSetControl(object sender, ClientSetEventArgs e) { Session["SERVERPART_ID"] = SERVERPART_ID.SelectedValue; //刷新数据 ButtonSearch_CallBackClick(ButtonSearch, e); } protected void ButtonPrintBill_Click(object sender, EventArgs e) { if (GridViewEx1.Rows.Count == 0) { Alert("请先查询列表后再导出excel!"); return; } DataTable _DataTable = new DataTable(); _DataTable.Columns.Add("序号"); _DataTable.Columns.Add("物资类型"); _DataTable.Columns.Add("物资名称"); _DataTable.Columns.Add("物资条码"); _DataTable.Columns.Add("物资规格"); _DataTable.Columns.Add("物资进价"); _DataTable.Columns.Add("剩余库存"); _DataTable.Columns.Add("预估库存"); _DataTable.CaseSensitive = false; int RowCount = 1; foreach (GridViewRow _GridViewRow in GridViewEx1.Rows) { if (_GridViewRow.RowType == DataControlRowType.DataRow) { DataRow _DataRow = _DataTable.NewRow(); _DataRow["序号"] = RowCount.ToString(); _DataRow["物资类型"] = _GridViewRow.Cells[2].Text.Trim().Replace(" ", ""); _DataRow["物资名称"] = _GridViewRow.Cells[4].Text.Trim().Replace(" ", ""); _DataRow["物资条码"] = _GridViewRow.Cells[5].Text.Trim().Replace(" ", ""); _DataRow["物资规格"] = _GridViewRow.Cells[11].Text.Trim().Replace(" ", ""); _DataRow["物资进价"] = _GridViewRow.Cells[12].Text.Trim().Replace(" ", ""); _DataRow["剩余库存"] = _GridViewRow.Cells[6].Text.Trim().Replace(" ", ""); _DataRow["预估库存"] = _GridViewRow.Cells[7].Text.Trim().Replace(" ", ""); _DataTable.Rows.Add(_DataRow); RowCount++; } } HZQR.Common.ExcelHelper _ExcelHelper = new HZQR.Common.ExcelHelper(); _ExcelHelper.DataTableToExcel("库存数据导出", _DataTable, "库存数据", true); } } }