Exemplo n.º 1
0
 /// <summary>
 /// 添加获取到的数据到泛型变量
 /// </summary>
 /// <param name="tab">包含指定格式的数据表</param>
 /// <param name="l">将数据填写到的泛型变量</param>
 private void AddSupplierListItem(
     DataSetMaterialSupplier.t_material_supplierDataTable tab,
     ref List<SupplierLiItem> l
 )
 {
     //li内容
     foreach (DataSetMaterialSupplier.t_material_supplierRow row in tab.Rows)
     {
         //实例化li项目类
         var itm = new SupplierLiItem();
         //设置实例的值
         //代码
         itm.SupplierCode = row.supplier_code;
         //名称
         itm.SupplierName = row.supplier_name;
         //将实例加入泛型变量
         l.Add(itm);
     }
 }
Exemplo n.º 2
0
        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);
        }