/// <summary> /// 添加获取到的数据到泛型变量 /// </summary> /// <param name="tab">包含指定格式的数据表</param> /// <param name="billType">单据类型</param> /// <param name="l">将数据填写到的泛型变量</param> private void AddMaterialListItem( DataSetMaterialLose.t_material_lose_contentDataTable tab, BillType billType, ref List<MaterialLiItem> l ) { //li内容 foreach (DataSetMaterialLose.t_material_lose_contentRow row in tab.Rows) { //实例化li项目类 var itm = new MaterialLiItem(); //设置实例的值 //单据类型 itm.BillType = billType; //供应商代码 itm.SupplierCode = row.supplier_code; //供应商名称 itm.SupplierName = row.supplier_name; //物料代码 itm.MaterialCode = row.material_code; //物料名称 itm.MaterialName = row.material_name; //物料规格 if (!row.Ismaterial_sizeNull()) { itm.MaterialSize = row.material_size; } //数量 itm.Qty = row.qty; //物料单位 itm.MaterialUnit = row.unit; //物料单价 itm.Price = isShowPrice ? (decimal?)row.price : null; //将实例加入泛型变量 l.Add(itm); } }
public void ProcessRequest(HttpContext context) { //清空之前数据 context.Response.Clear(); //检测是否含有session if (context.Session.Count < 5) { //跳转 context.Response.Redirect("/Account/Login", true); //停止加载后续内容 context.Response.End(); //直接返回 return; } //执行基类的方法 if (!base.CheckIsLogin(context)) { return; } //当前用户所在部门 string procName = context.Session["proc_name"].ToString(); //检测部门必须为指定部门 if (procName != mustProcName) { throw new Exception(string.Format("当前部门必须为{0}才能获取物料信息!", mustProcName)); } //当前角色id Int16 roleId = Convert.ToInt16(context.Session["role_id"]); //检测是否有权限 if (roleId >= 0 && roleId <= 5) { //允许显示单价 isShowPrice = true; } //当前使用的查询参数类型 var parField = ParameterType.None; //用户传入的参数 string bType = context.Request["btype"]; if (bType == null || bType.Length <= 0) { throw new Exception("未提供单据类型参数btype!"); } bType = bType.ToLower(); BillType billType; if (bType == "in") { billType = BillType.In; } else if (bType == "out") { billType = BillType.Out; } else if (bType == "lose") { billType = BillType.Lose; } else if (bType == "back") { billType = BillType.Back; } else if (bType == "other") { billType = BillType.Other; } else { throw new Exception("未提供正确的单据类型参数btype!"); } string supplierCode = context.Request["scode"]; string supplierName = context.Request["sname"]; string materialCode = context.Request["mcode"]; string materialName = context.Request["mname"]; string materialSize = context.Request["msize"]; string materialUnit = context.Request["munit"]; //检测物料参数 if (supplierCode != null && supplierCode.Length > 0) { //查询字段类型为供应商代码 parField = ParameterType.SupplierCode; //去掉空格 supplierCode = supplierCode.Trim().Replace("*", "%") + "%"; } else if (supplierName != null && supplierName.Length > 0) { //查询字段类型为供应商名称 parField = ParameterType.SupplierName; //设置参数值 supplierName = "%" + supplierName.Trim().Replace("*", "%") + "%"; } else if (materialCode != null && materialCode.Length > 0) { //查询字段类型为供应商名称物料代码 parField = ParameterType.MaterialCode; //设置参数值 materialCode = materialCode.Trim().Replace("*", "%") + "%"; } else if (materialName != null && materialName.Length > 0) { //查询字段类型为物料名称 parField = ParameterType.MaterialName; //设置参数值 materialName = "%" + materialName.Trim().Replace("*", "%") + "%"; } else if (materialSize != null && materialSize.Length > 0) { //查询字段类型为物料规格 parField = ParameterType.MaterialSize; //设置参数值 materialSize = "%" + materialSize.Trim().Replace("*", "%") + "%"; } else if (materialUnit != null && materialUnit.Length > 0) { //查询字段类型为物料单位 parField = ParameterType.MaterialUnit; //设置参数值 materialUnit = "%" + materialUnit.Trim().Replace("*", "%") + "%"; } //当前未使用特定的三种字段类型之一进行查询则不输出值直接退出 if (parField == ParameterType.None) { return; } //待输出到浏览器的数据 string strResult = string.Empty; //检测单据类型 //入仓单 if (billType == BillType.In || billType == BillType.Other) { //在供应商清单记录中查询 if (parField == ParameterType.SupplierCode || parField == ParameterType.SupplierName) { //将查询到的结果保存到泛型变量中 var lSupplier = new List<SupplierLiItem>(); //数据适配器 using (var da = new t_material_supplierTableAdapter()) { //获取数据使用的表 DataSetMaterialSupplier.t_material_supplierDataTable tab; //通过代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过名称查询 else { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //获取单据数据 AddSupplierListItem(tab, ref lSupplier); } //如果在清单中查询到数据 if (lSupplier.Count > 0) { //将泛型变量各项目放入数组 var itms = new SupplierLiItem[lSupplier.Count]; //复制泛型变量的内容到数组 lSupplier.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } else { //在物料清单中查询 //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //在物料结存清单中查询 if (billType == BillType.In) { //数据适配器 using (var da = new t_material_balanceTableAdapter()) { //获取数据使用的表 DataSetMaterialBalance.t_material_balanceDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } } //出仓单 //盘亏单 else if (billType == BillType.Out || billType == BillType.Lose) { //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //在物料结存清单中查询 //数据适配器 using (var da = new t_material_balanceTableAdapter()) { //获取数据使用的表 DataSetMaterialBalance.t_material_balanceDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } //盘盈单 else if (billType == BillType.Back) { //在物料盘亏清单中查询 //将查询到的结果保存到泛型变量中 var lMaterial = new List<MaterialLiItem>(); //数据适配器 using (var da = new t_material_lose_contentTableAdapter()) { //获取数据使用的表 DataSetMaterialLose.t_material_lose_contentDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //在物料清单中查询 //数据适配器 using (var da = new t_material_nameTableAdapter()) { //获取数据使用的表 DataSetMaterialName.t_material_nameDataTable tab; //通过供应商代码查询 if (parField == ParameterType.SupplierCode) { //取得数据 tab = da.GetDataLikeSupplierCode(supplierCode); } //通过供应商名称查询 else if (parField == ParameterType.SupplierName) { //取得数据 tab = da.GetDataLikeSupplierName(supplierName); } //通过物料代码查询 else if (parField == ParameterType.MaterialCode) { //取得数据 tab = da.GetDataLikeMaterialCode(materialCode); } //通过物料名称查询 else if (parField == ParameterType.MaterialName) { //取得数据 tab = da.GetDataLikeMaterialName(materialName); } //通过物料规格查询 else if (parField == ParameterType.MaterialSize) { //取得数据 tab = da.GetDataLikeMaterialSize(materialSize); } //通过物料名称查询 else if (parField == ParameterType.MaterialUnit) { //取得数据 tab = da.GetDataLikeMaterialUnit(materialUnit); } else { throw new Exception("检测到错误的参数名称类型!"); } //获取单据数据 AddMaterialListItem(tab, billType, ref lMaterial); } //如果在清单中查询到数据 if (lMaterial.Count > 0) { //将泛型变量各项目放入数组 var itms = new MaterialLiItem[lMaterial.Count]; //复制泛型变量的内容到数组 lMaterial.CopyTo(itms); //循环重新设置单只数 foreach (var itm in itms) { //将实例加入li strResult += itm.ToString(); } } } else { throw new Exception("提供的单据类型错误!"); } //加入ul头尾 strResult = "<ul>\n" + strResult + "</ul>\n"; //写入数据 context.Response.Write(strResult); }