Пример #1
0
        /// <summary>
        /// 更新销售计划
        /// </summary>
        /// <returns></returns>
        public static bool Update(Hashtable ht,SellPlanModel sellPlanModel, SellPlanDetailModel sellPlanDetailModel, string strDetailAction, out string strMsg)
        {
            bool isSucc = false;//是否添加成功
            strMsg = "";
            if (IsUpdate(sellPlanModel.PlanNo))
            {

                TransactionManager tran = new TransactionManager();
                tran.BeginTransaction();
                try
                {

                    UpdateOrder(sellPlanModel, tran);

                    #region 拓展属性
                    GetExtAttrCmd(sellPlanModel, ht, tran);
                    #endregion

                    //明细操作的类型
                    switch (strDetailAction)
                    {
                        case "1"://无操作
                            break;
                        case "2"://添加新明细
                            InsertOrderDetail(sellPlanDetailModel, tran);
                            break;
                        case "3"://更新明细
                            UpdateOrderDetail(sellPlanDetailModel, tran);
                            break;
                        case "4"://删除明细
                            DelOrderDetail(sellPlanDetailModel, tran);
                            break;
                        default:
                            break;
                    }

                    tran.Commit();
                    strMsg = "保存成功!";
                    isSucc = true;
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    strMsg = "保存失败,请联系系统管理员!";
                    throw ex;
                }
            }
            else
            {
                isSucc = false;
                strMsg = "非制单状态的未提交审批、审批未通过或撤销审批计划不可修改!";
            }
            return isSucc;
        }
Пример #2
0
    protected void btnImport_Click(object sender, ImageClickEventArgs e)
    {
        //设置行为参数
        string orderString = hiddExpOrder.Value.Trim();//排序
        string order = "desc";//排序:降序
        string orderBy = (!string.IsNullOrEmpty(orderString)) ? orderString.Substring(0, orderString.Length - 2) : "ModifiedDate";//要排序的字段,如果为空,默认为"ID"
        if (orderString.EndsWith("_a"))
        {
            order = "asc";//排序:升序
        }
        int pageCount = int.Parse(hiddExpTotal.Value);//每页显示记录数
        int pageIndex = 1;//当前页     
        int TotalCount = 0;//总记录数
        string ord = orderBy + " " + order;//排序字段
        DataTable dt = new DataTable();
        string strPlanNo = hiddExpOrderNo.Value.Trim();
        string strTitle = hiddExpTitle.Value.Trim();
        string strPlanType = hiddExpFromType.Value.Trim();
        string strBillStatus = hiddExpBillStatus.Value.Trim();   
        string strFlowStatus = hiddExpFlowStatus.Value.Trim();

        string OfferNo = strPlanNo.Length == 0 ? null : strPlanNo;
        string Title = strTitle.Length == 0 ? null : strTitle;
        string PlanType = strPlanType.Length == 0 ? null : strPlanType;
        string BillStatus = strBillStatus.Length == 0 ? null : strBillStatus;
        int? FlowStatus = strFlowStatus.Length == 0 ? null : (int?)Convert.ToInt32(strFlowStatus);

        string EFIndex = hidEFIndex.Value;
        string EFDesc = hidEFDesc.Value;

        SellPlanModel model = new SellPlanModel();
        model.BillStatus = BillStatus;
        model.PlanType = PlanType;
        model.PlanNo = strPlanNo;
        model.Title = Title;
        dt = SellPlanBus.GetOrderList(EFIndex,EFDesc, model, FlowStatus, pageIndex, pageCount, ord, ref TotalCount);

        //导出标题
        string headerTitle = "计划编号|计划名称|计划类型|计划时期|最低计划额(元)|计划总金额(元)|单据状态|审批状态";
        //string headerTitle = "建档日期|启用状态";
        string[] header = headerTitle.Split('|');

        //导出标题所对应的列字段名称
        string columnFiled = "PlanNo|Title|PlanTypeText|PlanDate|MinPlanTotal|PlanTotal|BillStatusText|FlowInstanceText";
        string[] field = columnFiled.Split('|');

        XBase.Common.OutputToExecl.ExportToTable(this.Page, dt, header, field, "销售计划列表");
    }
Пример #3
0
        /// <summary>
        /// 保存销售计划
        /// </summary>
        /// <returns></returns>
        public static bool Save(Hashtable ht,SellPlanModel sellPlanModel, SellPlanDetailModel sellPlanDetailModel, out string strMsg)
        {
            bool isSucc = false;//是否添加成功
            strMsg = "";
            //判断计划编号是否存在
            if (NoIsExist(sellPlanModel.PlanNo))
            {
                TransactionManager tran = new TransactionManager();
                tran.BeginTransaction();
                try
                {
                    InsertOrder(sellPlanModel, tran);

                    #region 拓展属性                  
                    GetExtAttrCmd(sellPlanModel, ht, tran);
                    #endregion

                    if (sellPlanDetailModel.PlanNo != null)
                    {
                        InsertOrderDetail(sellPlanDetailModel, tran);
                    }
                    tran.Commit();
                    isSucc = true;
                    strMsg = "保存成功!";
                }
                catch (Exception ex)
                {
                    tran.Rollback();
                    strMsg = "保存失败,请联系系统管理员!";
                    throw ex;
                }
            }
            else
            {
                isSucc = false;
                strMsg = "该编号已被使用,请输入未被使用的编号!";
            }
            return isSucc;
        }
Пример #4
0
        /// <summary>
        /// 更新销售发货单
        /// </summary>
        /// <returns></returns>
        public static bool Update(Hashtable ht,SellPlanModel sellPlanModel, SellPlanDetailModel sellPlanDetail, string strDetailAction, out string strMsg)
        {
            bool isSucc = false;//是否添加成功
            //定义变量
            string remark = string.Empty;
            strMsg = "";
            try
            {
                isSucc = SellPlanDBHelper.Update(ht,sellPlanModel, sellPlanDetail,  strDetailAction, out  strMsg);
                //设置操作成功标识
                remark = ConstUtil.LOG_PROCESS_SUCCESS;
            }
            catch (Exception ex)
            {
                //输出日志
                SellLogCommon.WriteSystemLog(ex, LogInfo.LogType.SYSTEM, LogInfo.SystemLogKind.SYSTEM_ERROR, "2031001");
                //设置操作成功标识 
                remark = ConstUtil.LOG_PROCESS_FAILED;
            }
            SellLogCommon.InsertLog(sellPlanModel.PlanNo, "2031001", "officedba.SellPlan", remark, ConstUtil.LOG_PROCESS_UPDATE);
            return isSucc;

        }
Пример #5
0
        /// <summary>
        /// 获取计划列表 
        /// </summary>
        /// <param name="sellContractModel">sellContractModel表实体</param>
        /// <param name="FlowStatus">审批状态</param>
        /// <returns></returns>
        public static DataTable GetOrderList(string EFIndex,string EFDesc,SellPlanModel sellPlanModel, int? FlowStatus, int pageIndex, int pageCount, string ord, ref int TotalCount)
        {
            StringBuilder strSql = new StringBuilder();

            int eid = 0;

          
            eid = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).EmployeeID;
            strSql.Append("select * from (  SELECT so.ID,so.PlanNo, so.Title, so.PlanTotal,case so.PlanType ");
            strSql.Append(" when '1' then '月'  when '3' then '年'  when '2' then '季'       ");
            strSql.Append(" when '4' then '日'  when '5' then '周'  when '6' then '半年'       ");
            strSql.Append(" when '7' then '其他'   end as PlanTypeText,      ");
            strSql.Append(" so.MinPlanTotal,  so.ModifiedDate,                                                               ");
            strSql.Append(" (CASE so.PlanType WHEN '1' THEN PlanYear + '年  ' + so.PlanTime + '月' WHEN '2'  ");
            strSql.Append(" THEN PlanYear + '年  ' + (CASE so.PlanTime WHEN '1' THEN '第一季度' WHEN '2' THEN ");
            strSql.Append(" '第二季度' WHEN '3' THEN '第三季度' WHEN '4' THEN '第四季度' END) WHEN '3' THEN PlanYear + '年  '   ");
            strSql.Append("WHEN '4'  THEN PlanYear WHEN '5'  THEN PlanYear +'年  ' +'第'+PlanTime+'周'  WHEN '6'  ");
            strSql.Append(" THEN PlanYear + '年  ' + (CASE so.PlanTime WHEN '1' THEN '上半年' WHEN '2' THEN  ");
            strSql.Append(" '下半年' end) WHEN '7' THEN PlanYear + '年  ' END) AS PlanDate,  ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) AS FlowStatus,                                                       ");
            strSql.Append(" CASE so.BillStatus WHEN 1 THEN '制单' WHEN 2 THEN '执行' WHEN 4                                  ");
            strSql.Append(" THEN '手工结单' WHEN 5 THEN '自动结单'  END AS BillStatusText,                                   ");
            strSql.Append(" CASE WHEN (SELECT TOP 1 FlowStatus                                                               ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) IS NULL THEN '' WHEN                                                 ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) = 1 THEN '待审批' WHEN                                               ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) = 2 THEN '审批中' WHEN                                               ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) = 3 THEN '审批通过' WHEN                                             ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) = 4 THEN '审批不通过' WHEN                                           ");
            strSql.Append(" (SELECT TOP 1 FlowStatus                                                                         ");
            strSql.Append(" FROM officedba.FlowInstance                                                                      ");
            strSql.Append(" WHERE BillID = so.ID AND BillTypeFlag = 5 AND BillTypeCode = 8                                   ");
            strSql.Append(" ORDER BY ModifiedDate DESC) = 5 THEN '撤销审批' END AS FlowInstanceText                          ");
            strSql.Append(" FROM officedba.SellPlan as so where 1=1     and so.CompanyCD=@CompanyCD                          ");
            strSql.Append( " AND (CHARINDEX('," + eid + ",',','+so.CanViewUser+',')>0  OR so.CanViewUser='' or so.CanViewUser is null OR  so.Creator=" + eid + ") ");
            string strCompanyCD = string.Empty;//单位编号

            strCompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;

            ArrayList arr = new ArrayList();
            arr.Add(new SqlParameter("@CompanyCD", strCompanyCD));
            if (sellPlanModel.BillStatus != null)
            {
                strSql.Append(" and so.BillStatus= @BillStatus");

                arr.Add(new SqlParameter("@BillStatus", sellPlanModel.BillStatus));
            }

            if (sellPlanModel.PlanType != null)
            {
                strSql.Append(" and so.PlanType=@PlanType");
                arr.Add(new SqlParameter("@PlanType", sellPlanModel.PlanType));
            }

            if (sellPlanModel.PlanNo != null)
            {
                strSql.Append(" and so.PlanNo like @PlanNo");
                arr.Add(new SqlParameter("@PlanNo", "%" + sellPlanModel.PlanNo + "%"));
            }

            if (sellPlanModel.Title != null)
            {
                strSql.Append(" and so.Title like @Title");
                arr.Add(new SqlParameter("@Title", "%" + sellPlanModel.Title + "%"));
            }

            if (!string.IsNullOrEmpty(EFIndex) && !string.IsNullOrEmpty(EFDesc))
            {
                strSql.AppendLine(" and so.ExtField" + EFIndex + " LIKE @EFDesc");
                arr.Add(new SqlParameter("@EFDesc", "%" + EFDesc + "%"));
                //comm.Parameters.Add(SqlHelper.GetParameterFromString("@EFDesc", "%" + EFDesc + "%"));
            }

            strSql.Append(" ) as f  where 1=1 ");
            if (FlowStatus != null)
            {
                if (FlowStatus != 0)
                {
                    strSql.Append(" and f.FlowStatus=@FlowStatus");
                    arr.Add(new SqlParameter("@FlowStatus", FlowStatus));
                }
                else
                {
                    strSql.Append(" and f.FlowStatus is null ");
                }

            }

            return SqlHelper.CreateSqlByPageExcuteSqlArr(strSql.ToString(), pageIndex, pageCount, ord, arr, ref TotalCount);
        }
Пример #6
0
        /// <summary>
        /// 为主表插入数据
        /// </summary>
        /// <param name="sellPlanModel"></param>
        /// <param name="tran"></param>
        private static void InsertOrder(SellPlanModel model, TransactionManager tran)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("insert into officedba.SellPlan(");
            strSql.Append("CompanyCD,PlanNo,Title,PlanType,PlanYear,PlanTime,PlanTotal,StartDate,EndDate,MinPlanTotal,Hortation,CanViewUser,CanViewUserName,Remark,BillStatus,Creator,CreateDate,ModifiedDate,ModifiedUserID)");
            strSql.Append(" values (");
            strSql.Append("@CompanyCD,@PlanNo,@Title,@PlanType,@PlanYear,@PlanTime,@PlanTotal,@StartDate,@EndDate,@MinPlanTotal,@Hortation,@CanViewUser,@CanViewUserName,@Remark,@BillStatus,@Creator,@CreateDate,@ModifiedDate,@ModifiedUserID)");

            #region 参数
            SqlParameter[] parameters = {
					new SqlParameter("@CompanyCD", SqlDbType.VarChar,8),
					new SqlParameter("@PlanNo", SqlDbType.VarChar,50),
					new SqlParameter("@Title", SqlDbType.VarChar,100),
					new SqlParameter("@PlanType", SqlDbType.Char,1),
					new SqlParameter("@PlanYear", SqlDbType.VarChar,10),
					new SqlParameter("@PlanTime", SqlDbType.VarChar,2),
					new SqlParameter("@PlanTotal", SqlDbType.Decimal,13),
					new SqlParameter("@StartDate", SqlDbType.DateTime),
					new SqlParameter("@EndDate", SqlDbType.DateTime),
					new SqlParameter("@MinPlanTotal", SqlDbType.Decimal,13),
					new SqlParameter("@Hortation", SqlDbType.VarChar,1024),
					new SqlParameter("@CanViewUser", SqlDbType.VarChar,2048),
					new SqlParameter("@CanViewUserName", SqlDbType.VarChar,2048),
					new SqlParameter("@Remark", SqlDbType.VarChar,1024),
					new SqlParameter("@BillStatus", SqlDbType.Char,1),
					new SqlParameter("@Creator", SqlDbType.Int,4),
					new SqlParameter("@CreateDate", SqlDbType.DateTime),
					new SqlParameter("@ModifiedDate", SqlDbType.DateTime),
					new SqlParameter("@ModifiedUserID", SqlDbType.VarChar,50)};
            parameters[0].Value = model.CompanyCD;
            parameters[1].Value = model.PlanNo;
            parameters[2].Value = model.Title;
            parameters[3].Value = model.PlanType;
            parameters[4].Value = model.PlanYear;
            parameters[5].Value = model.PlanTime;
            parameters[6].Value = model.PlanTotal;
            parameters[7].Value = model.StartDate;
            parameters[8].Value = model.EndDate;
            parameters[9].Value = model.MinPlanTotal;
            parameters[10].Value = model.Hortation;
            parameters[11].Value = model.CanViewUser;
            parameters[12].Value = model.CanViewUserName;
            parameters[13].Value = model.Remark;
            parameters[14].Value = "1";
            parameters[15].Value = model.Creator;
            parameters[16].Value = model.CreateDate;
            parameters[17].Value = model.ModifiedDate;
            parameters[18].Value = model.ModifiedUserID;
            foreach (SqlParameter para in parameters)
            {
                if (para.Value == null)
                {
                    para.Value = DBNull.Value;
                }
            }
            #endregion
            SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, strSql.ToString(), parameters);
        }
Пример #7
0
        /// <summary>
        /// 跟新主表数据
        /// </summary>
        /// <param name="sellBackModel"></param>
        /// <param name="tran"></param>
        private static void UpdateOrder(SellPlanModel model, TransactionManager tran)
        {
            StringBuilder strSql = new StringBuilder();
            strSql.Append("update officedba.SellPlan set ");
            strSql.Append("Title=@Title,");
            strSql.Append("PlanType=@PlanType,");
            strSql.Append("PlanYear=@PlanYear,");
            strSql.Append("PlanTime=@PlanTime,");
            strSql.Append("PlanTotal=@PlanTotal,");
            strSql.Append("StartDate=@StartDate,");
            strSql.Append("EndDate=@EndDate,");
            strSql.Append("MinPlanTotal=@MinPlanTotal,");
            strSql.Append("Hortation=@Hortation,");
            strSql.Append("CanViewUser=@CanViewUser,");
            strSql.Append("CanViewUserName=@CanViewUserName,");
            strSql.Append("Remark=@Remark,");
            strSql.Append("ModifiedDate=@ModifiedDate,");
            strSql.Append("ModifiedUserID=@ModifiedUserID");
            strSql.Append(" where ID=@ID ");

            #region 参数
            SqlParameter[] parameters = {
					new SqlParameter("@ID", SqlDbType.Int,4),
					new SqlParameter("@Title", SqlDbType.VarChar,100),
					new SqlParameter("@PlanType", SqlDbType.Char,1),
					new SqlParameter("@PlanYear", SqlDbType.VarChar,10),
					new SqlParameter("@PlanTime", SqlDbType.VarChar,2),
					new SqlParameter("@PlanTotal", SqlDbType.Decimal,13),
					new SqlParameter("@StartDate", SqlDbType.DateTime),
					new SqlParameter("@EndDate", SqlDbType.DateTime),
					new SqlParameter("@MinPlanTotal", SqlDbType.Decimal,13),
					new SqlParameter("@Hortation", SqlDbType.VarChar,1024),
					new SqlParameter("@CanViewUser", SqlDbType.VarChar,2048),
					new SqlParameter("@CanViewUserName", SqlDbType.VarChar,2048),
					new SqlParameter("@Remark", SqlDbType.VarChar,1024),
					new SqlParameter("@ModifiedDate", SqlDbType.DateTime),
					new SqlParameter("@ModifiedUserID", SqlDbType.VarChar,50)};
            parameters[0].Value = model.ID;
            parameters[1].Value = model.Title;
            parameters[2].Value = model.PlanType;
            parameters[3].Value = model.PlanYear;
            parameters[4].Value = model.PlanTime;
            parameters[5].Value = model.PlanTotal;
            parameters[6].Value = model.StartDate;
            parameters[7].Value = model.EndDate;
            parameters[8].Value = model.MinPlanTotal;
            parameters[9].Value = model.Hortation;
            parameters[10].Value = model.CanViewUser;
            parameters[11].Value = model.CanViewUserName;
            parameters[12].Value = model.Remark;
            parameters[13].Value = model.ModifiedDate;
            parameters[14].Value = model.ModifiedUserID;


            foreach (SqlParameter para in parameters)
            {
                if (para.Value == null)
                {
                    para.Value = DBNull.Value;
                }
            }
            #endregion


            SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, strSql.ToString(), parameters);
        }
Пример #8
0
        /// <summary>
        /// 扩展属性保存操作
        /// </summary>
        /// <returns></returns>
        private static void GetExtAttrCmd(SellPlanModel model, Hashtable htExtAttr, TransactionManager tran)
        {
            try
            {
                string strSql = string.Empty;
                strSql = "UPDATE officedba.SellPlan set ";

                SqlParameter[] parameters = new SqlParameter[htExtAttr.Count+2];
                int i = 0;
                
                foreach (DictionaryEntry de in htExtAttr)// de为一个Hashtable实例
                {
                    strSql += de.Key.ToString().Trim() + "=@" + de.Key.ToString().Trim() + ",";                   
                    parameters[i] = SqlHelper.GetParameter("@" + de.Key.ToString().Trim(),de.Value.ToString().Trim());
                    i++;                   
                }
                int iLength = strSql.Length - 1;
                strSql = strSql.Substring(0, iLength);
                strSql += " where CompanyCD = @CompanyCD  AND PlanNo = @PlanNo";
                parameters[i] = SqlHelper.GetParameter("@CompanyCD", model.CompanyCD);
                parameters[i + 1] = SqlHelper.GetParameter("@PlanNo", model.PlanNo);
                //cmd.Parameters.AddWithValue("@CompanyCD", model.CompanyCD);
                //cmd.Parameters.AddWithValue("@PlanNo", model.PlanNo);
                SqlHelper.ExecuteNonQuery(tran.Trans, CommandType.Text, strSql.ToString(), parameters);
                //cmd.CommandText = strSql;
            }
            catch (Exception ex)
            {
                string ss = ex.Message;
            }
        }
Пример #9
0
 /// <summary>
 /// 获取单据列表 
 /// </summary>
 /// <param name="sellOfferModel">sellOfferModel表实体</param>
 /// <param name="FlowStatus">审批状态</param>
 /// <returns></returns>
 public static DataTable GetOrderList(string EFIndex,string EFDesc,SellPlanModel sellPlanModel, int? FlowStatus, int pageIndex, int pageCount, string ord, ref int TotalCount)
 {
     return SellPlanDBHelper.GetOrderList(EFIndex, EFDesc, sellPlanModel, FlowStatus, pageIndex, pageCount, ord, ref TotalCount);
 }
Пример #10
0
    protected void LoadPrintInfo()
    {
        PrintParameterSettingModel model = new PrintParameterSettingModel();
        model.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;
        model.BillTypeFlag = int.Parse(ConstUtil.BILL_TYPEFLAG_SALE);
        model.PrintTypeFlag = ConstUtil.PRINTBILL_SELLPLAN;

        SellPlanModel modelMRP = new SellPlanModel();
        modelMRP.CompanyCD = ((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD;
        modelMRP.ID = this.intMrpID;

        /*此处需注意在模板设置表里的字段和取基本信息的字段是否一致*/
        string[,] aBase = { 
                                { "{ExtField1}", "ExtField1"},
                                { "{ExtField2}", "ExtField2"},
                                { "{ExtField3}", "ExtField3"},
                                { "{ExtField4}", "ExtField4"},
                                { "{ExtField5}", "ExtField5"},
                                { "{ExtField6}", "ExtField6"},
                                { "{ExtField7}", "ExtField7"},
                                { "{ExtField8}", "ExtField8"},
                                { "{ExtField9}", "ExtField9"},
                                { "{ExtField10}", "ExtField10"},

                                { "计划编号", "PlanNo"}, 
                                { "计划名称", "Title"}, 
                                { "计划类型", "PlanType" },

                                { "计划时期", "PlanTime" },
                                { "开始时间", "StartDate"},
                                { "结束时间", "EndDate"},

                                { "最低计划额(元)", "MinPlanTotal"},
                                { "计划总金额(元)", "PlanTotal"},

                                { "激励方案", "Hortation"},

                                { "可查看人员", "CanViewUserName"},

                                { "单据状态", "BillStatus"},
                                { "制单人", "Creator"},
                                { "制单日期 ", "CreateDate"},

                                { "确认人", "Confirmor"},
                                { "确认日期", "ConfirmDate"},
                                { "结单人", "Closer"},

                                { "结单日期", "CloseDate"},
                                { "最后更新人", "ModifiedUserID"},
                                { "最后更新日期", "ModifiedDate"},

                                { "备注", "Remark"},
                          };

        string[,] aDetail = {
                                { "部门/物品/人员", "DetailTypeName"}, 
                                { "名称", "DetailName"}, 
                                { "最低目标额(元)", "MinDetailotal"}, 
                                { "目标额(元)", "DetailTotal" },
                                { " 完成情况", "AddOrCutText2" },
                                { "目标达成率", "CompletePercent"},
                           };

        #region 1.扩展属性
        int countExt = 0;
        DataTable dtExtTable = TableExtFieldsBus.GetAllList(((UserInfoUtil)SessionUtil.Session["UserInfo"]).CompanyCD, "", "officedba.SellPlan");
        if (dtExtTable.Rows.Count > 0)
        {
            for (int i = 0; i < dtExtTable.Rows.Count; i++)
            {
                for (int x = 0; x < (aBase.Length / 2) - 15; x++)
                {
                    if (x == i)
                    {
                        aBase[x, 0] = dtExtTable.Rows[i]["EFDesc"].ToString();
                        countExt++;
                    }
                }
            }
        }
        #endregion


        DataTable dbPrint = XBase.Business.Common.PrintParameterSettingBus.GetPrintParameterSettingInfo(model);
        DataTable dtMRP = SellPlanBus.GetRepOrder(PlanNo); //主表 MRPBus.GetMRPInfo(modelMRP);
        DataTable dtDetail = SellPlanBus.GetOrderDetail(PlanNo); //明细表 MRPBus.GetMRPDetailInfo(modelMRP);
        string strBaseFields = "";
        string strDetailFields = "";

        if (dbPrint.Rows.Count > 0)
        {
            isSeted.Value = "1";
            strBaseFields = dbPrint.Rows[0]["BaseFields"].ToString();
            strDetailFields = dbPrint.Rows[0]["DetailFields"].ToString();           
        }
        else
        {
            isSeted.Value = "0";
            strBaseFields = "PlanNo|Title|PlanType|PlanTime|StartDate|EndDate|MinPlanTotal|PlanTotal|Hortation|CanViewUserName|BillStatus|Creator|CreateDate|Confirmor|ConfirmDate|Closer|CloseDate|ModifiedUserID|ModifiedDate|Remark";
            /*基本信息字段+扩展信息字段*/
            if (countExt > 0)
            {
                for (int i = 0; i < countExt; i++)
                {
                    strBaseFields = strBaseFields + "|" + "ExtField" + (i + 1);
                }
            }

            strDetailFields = "DetailTypeName|DetailName|MinDetailotal|DetailTotal|AddOrCutText2|CompletePercent";           
        }

        #region 主表信息
        if (!string.IsNullOrEmpty(strBaseFields))
        {
            tableBase.InnerHtml = WritePrintPageTable("销售计划", strBaseFields, strDetailFields, aBase, aDetail, dtMRP, dtDetail, true);
        }
        #endregion

        #region 明细信息
        if (!string.IsNullOrEmpty(strDetailFields))
        {
            tableDetail.InnerHtml = WritePrintPageTable("销售计划", strBaseFields, strDetailFields, aBase, aDetail, dtMRP, dtDetail, false);
        }
        #endregion

    }