コード例 #1
0
 protected override string BuilderTempTableOrderBySQL(IRptParams filter)
 {
     return(base.BuilderTempTableOrderBySQL(filter));
 }
コード例 #2
0
        /// <summary>
        /// 向报表临时表,插入报表数据
        /// </summary>
        /// <param name="filter"></param>
        /// <param name="tableName"></param>
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);

            // 拼接过滤条件 : filter
            // 略
            temTableName = AppServiceContext.DBService.CreateTemporaryTableName(this.Context);
            DynamicObject dyFilter = filter.FilterParameter.CustomFilter;

            string FilterString = filter.FilterParameter.FilterString;
            string SupperId     = "";

            string OrgId = "";

            string sWhere = "";

            if (dyFilter["F_SZXY_OrgId"] is DynamicObject OrgDo)
            {
                OrgId   = Convert.ToString(OrgDo["Id"]);
                sWhere += $" and t0.F_SZXY_ORGID={OrgId} ";
            }
            if (dyFilter["F_SZXY_GX"] is string GX)
            {
                sWhere += $" and t0.F_SZXY_GX={GX} ";
            }

            if (dyFilter["F_SZXY_SDate"] is DateTime Sdate && dyFilter["F_SZXY_EDate"] is DateTime Edate)
            {
                if (Sdate != DateTime.MinValue && Sdate != null && Edate != DateTime.MinValue && Edate != null)
                {
                    string sdate = dyFilter["F_SZXY_SDate"].ToString();
                    string edate = dyFilter["F_SZXY_EDate"].ToString();
                    sWhere += $" and   CONVERT(date,T0.F_SZXY_Date, 23) between CONVERT(date, '{sdate}', 23) and CONVERT(date,  '{edate}', 23) ";
                }
            }


            // 默认排序字段:需要从filter中取用户设置的排序字段
            string seqFld = string.Format(base.KSQL_SEQ, " T0.FEntryId ");


            string sql2 = string.Format(@" /*dialect*/SELECT CASE F_SZXY_GX
		                                WHEN 'SZXY_XYFQ'
			                                THEN '分切'
		                                WHEN 'SZXY_XYBZ'
			                                THEN '包装'
		                                END '工序'
	                                ,F_SZXY_ReCordCode '打印记录号'
	                                ,T1.FNAME '打印人N'
	                                ,T0.F_SZXY_Recorder '打印人'
	                                ,F_SZXY_Date '日期'
	                                ,F_SZXY_PLy '厚度'
	                                ,F_SZXY_Width '宽度'
	                                ,F_SZXY_Len '长度'
	                                ,F_SZXY_Area '面积'
	                                ,F_SZXY_MoNO '生产订单号'
	                                ,F_SZXY_MoLineNo '生产订单行号'
	                                ,F_SZXY_CustID '客户'
	                                ,T2.FNAME '客户N'
	                                ,{0}
                                INTO {1}
                                FROM SZXY_t_PrintRecordEntry T0
                                LEFT JOIN T_HR_EMPINFO_L T1 ON T1.FID = T0.F_SZXY_Recorder
	                                AND T1.FLOCALEID = '2052'
                                LEFT JOIN T_BD_CUSTOMER_L T2 ON t2.FCUSTID = T0.F_SZXY_CustID
                                 ",
                                        seqFld, tableName, sWhere);

            DBUtils.ExecuteDynamicObject(this.Context, sql2);
        }
コード例 #3
0
 protected override System.Data.DataTable GetReportData(IRptParams filter)
 {
     return(base.GetReportData(filter));
 }
コード例 #4
0
        protected override string CreateGroupSummaryData(IRptParams filter, string tablename)
        {
            string result = base.CreateGroupSummaryData(filter, tablename);

            return(result);
        }
コード例 #5
0
        public override List <long> GetOrgIdList(IRptParams filter)
        {
            var result = base.GetOrgIdList(filter);

            return(result);
        }
コード例 #6
0
        public override int GetRowsCount(IRptParams filter)
        {
            var result = base.GetRowsCount(filter);

            return(result);
        }
コード例 #7
0
        protected override string BuilderSelectFieldSQL(IRptParams filter)
        {
            string result = base.BuilderSelectFieldSQL(filter);

            return(result);
        }
コード例 #8
0
        /// <summary>
        /// 向报表临时表,插入报表数据
        /// </summary>
        /// <param name="filter">过滤信息</param>
        /// <param name="tableName">临时表名</param>
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);

            //默认排序字段:需要从filter中取用户设置的排序字段
            //KSQL_SEQ: ROW_NUMBER() OVER(ORDER BY  {0} ) FIDENTITYID
            if (filter.FilterParameter.SortString.IsNullOrEmptyOrWhiteSpace())
            {
                KSQL_SEQ = string.Format(KSQL_SEQ, " t1.FMATERIALID asc");
            }
            else
            {
                KSQL_SEQ = string.Format(KSQL_SEQ, filter.FilterParameter.SortString);
            }

            string sql = string.Format(
                @"
SELECT  t0.FID ,
        t1.FENTRYID ,
        t1.FMATERIALID ,
        t1M_L.FNAME AS FMATERIALNAME ,
        t1.FQTY ,        
        t1U_L.FNAME AS FUNITNAME ,
        t1f.FTAXPRICE ,
        t1f.FALLAMOUNT ,     
        t1f.FTAXRATE ,
        t0.FBILLNO ,
        t0.FDATE ,
        0 AS FPRICE , 
        {0}
INTO {1}
FROM    T_PUR_POORDER t0
        INNER JOIN T_PUR_POORDERENTRY t1 ON ( t0.FID = t1.FID )      
        INNER JOIN T_PUR_POORDERENTRY_F t1F ON ( t1.FENTRYID = t1f.FENTRYID )
        LEFT JOIN T_BD_MATERIAL_L t1M_L on (t1.FMATERIALID = t1m_l.FMATERIALID and t1M_L.FLOCALEID = 2052)
        LEFT JOIN T_BD_UNIT t1U ON ( t1f.FPRICEUNITID = t1u.FUNITID )
        LEFT JOIN T_BD_UNIT_L t1U_L ON ( t1U.FUNITID = t1U_L.FUNITID AND t1U_L.FLOCALEID = 2052 )
WHERE   1 = 1 ", KSQL_SEQ, tableName);

            //添加快捷过滤
            if (filter.FilterParameter.CustomFilter != null &&
                filter.FilterParameter.CustomFilter.Contains("FMATERIAL"))
            {
                var material = filter.FilterParameter.CustomFilter["FMATERIAL"] as DynamicObject;
                if (material != null)
                {
                    var quickStr = string.Format("t1.FMATERIALID='{0}'", material[0]);
                    sql += string.Format("AND {0}", quickStr);
                }
            }

            //添加条件过滤
            string conditionStr = filter.FilterParameter.FilterString;

            if (!conditionStr.IsNullOrEmptyOrWhiteSpace())
            {
                sql += string.Format("AND {0}", conditionStr);
            }

            DBUtils.Execute(Context, sql);
        }
コード例 #9
0
        //反写报表过滤信息
        public override ReportTitles GetReportTitles(IRptParams filter)
        {
            var           result   = base.GetReportTitles(filter);
            DynamicObject dyFilter = filter.FilterParameter.CustomFilter;

            if (dyFilter != null)
            {
                if (result == null)
                {
                    result = new ReportTitles();
                }
                //反写过滤条件
                //起始日期
                if (dyFilter["F_QSNC_StartDateFilter"] == null)
                {
                    result.AddTitle("F_QSNC_StartDate", "");
                }
                else
                {
                    result.AddTitle("F_QSNC_StartDate", Convert.ToString(dyFilter["F_QSNC_StartDateFilter"]));
                }

                //截止日期
                if (dyFilter["F_QSNC_EndDateFilter"] == null)
                {
                    result.AddTitle("F_QSNC_EndDate", "");
                }
                else
                {
                    result.AddTitle("F_QSNC_EndDate", Convert.ToString(dyFilter["F_QSNC_EndDateFilter"]));
                }

                //销售部门
                if (dyFilter["F_QSNC_DeptFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_DeptFilter"]).Count > 0)
                {
                    StringBuilder           deptName = new StringBuilder();
                    DynamicObjectCollection cols     = (DynamicObjectCollection)dyFilter["F_QSNC_DeptFilter"];
                    foreach (DynamicObject dept in cols)
                    {
                        String tmpName = Convert.ToString(((DynamicObject)dept["F_QSNC_DeptFilter"])["Name"]);
                        deptName.Append(tmpName + "; ");
                    }

                    result.AddTitle("F_QSNC_Department", deptName.ToString());
                }
                else
                {
                    result.AddTitle("F_QSNC_Department", "全部");
                }

                //销售员
                if (dyFilter["F_QSNC_SalerFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_SalerFilter"]).Count > 0)
                {
                    StringBuilder           salerName = new StringBuilder();
                    DynamicObjectCollection cols      = (DynamicObjectCollection)dyFilter["F_QSNC_SalerFilter"];
                    foreach (DynamicObject saler in cols)
                    {
                        String tmpName = Convert.ToString(((DynamicObject)saler["F_QSNC_SalerFilter"])["Name"]);
                        salerName.Append(tmpName + "; ");
                    }

                    result.AddTitle("F_QSNC_Saler", salerName.ToString());
                }
                else
                {
                    result.AddTitle("F_QSNC_Saler", "全部");
                }
            }

            return(result);
        }
コード例 #10
0
 public override List <Kingdee.BOS.Core.Metadata.TreeNode> GetTreeNodes(IRptParams filter)
 {
     return(base.GetTreeNodes(filter));
 }
コード例 #11
0
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);

            IDBService dbservice = ServiceHelper.GetService <IDBService>();

            userTempTable = dbservice.CreateTemporaryTableName(this.Context, 1);
            string tempTable1 = userTempTable[0];

            DynamicObject customFilter           = filter.FilterParameter.CustomFilter;
            string        customerIndustryID     = String.Empty;
            string        customerRelationshipID = String.Empty;
            string        endUserID   = String.Empty;
            string        salesDeptID = String.Empty;
            string        fromDate    = String.Empty;
            string        toDate      = String.Empty;

            if (customFilter["F_xy_CustomerIndustry"] != null)
            {
                customerIndustryID = customFilter["F_xy_CustomerIndustry_Id"].ToString();
            }
            if (customFilter["F_xy_CustomerRelationship"] != null)
            {
                customerRelationshipID = customFilter["F_xy_CustomerRelationship_Id"].ToString();
            }
            if (customFilter["F_xy_EndUser"] != null)
            {
                endUserID = customFilter["F_xy_EndUser_Id"].ToString();
            }
            if (customFilter["F_xy_SalesDept"] != null)
            {
                salesDeptID = customFilter["F_xy_SalesDept_Id"].ToString();
            }
            if (customFilter["F_xy_FromDate"] != null)
            {
                fromDate = string.Format("{0:yyyy-MM-dd}", customFilter["F_xy_FromDate"]);
            }
            if (customFilter["F_xy_ToDate"] != null)
            {
                toDate = string.Format("{0:yyyy-MM-dd}", customFilter["F_xy_ToDate"]);
            }

            Boolean hasCustomerIndustry     = !String.IsNullOrEmpty(customerIndustryID);
            Boolean hasCustomerRelationship = !String.IsNullOrEmpty(customerRelationshipID);
            Boolean hasEndUser  = !String.IsNullOrEmpty(endUserID);
            Boolean hasSaleDept = !String.IsNullOrEmpty(salesDeptID);

            if (hasEndUser)
            {
                String s = String.Format(" select distinct fid into {0} from T_CRM_OpportunityProduct where F_PEJK_FINALU='{1}' ", tempTable1, endUserID);
                DBUtils.ExecuteDynamicObject(this.Context, s);
            }

            StringBuilder sql = new StringBuilder();

            sql.Append(" select ROW_NUMBER() over(order by customerNO) FIDENTITYID, ");
            sql.Append("        customerNo,customerName,oppTotalCount,oppWinBillCount,oppLostBillCount, ");
            sql.Append("        oppTotalCount-oppWinBillCount-oppLostBillCount oppUnfinishedCount, ");
            sql.Append(" 	    oppWinBillIncome,oppTotalIncome ");
            sql.Append(" into " + tableName);
            sql.Append(" from ( ");
            sql.Append(" 	select  cust.FNUMBER customerNO,cust_l.FNAME customerName, ");
            sql.Append(" 			count(opp.FID) oppTotalCount, ");
            sql.Append(" 			sum(case when opp.FDOCUMENTSTATUS='E' then 1 else 0 end) oppWinBillCount, ");
            sql.Append(" 			sum(case when opp.FDOCUMENTSTATUS='F' then 1 else 0 end) oppLostBillCount, ");
            sql.Append(" 			sum(case when opp.FDOCUMENTSTATUS='E' then opp.FESTIMATEINCOME else 0 end) oppWinBillIncome, ");
            sql.Append(" 			sum(opp.FESTIMATEINCOME) oppTotalIncome ");
            sql.Append(" 	from T_CRM_OPPORTUNITY opp ");
            sql.Append(" 	inner join T_BD_CUSTOMER cust on opp.FCUSTOMERID=cust.FCUSTID  ");
            sql.Append(" 	inner join T_BD_CUSTOMER_L cust_l on opp.FCUSTOMERID=cust_l.FCUSTID ");
            if (hasEndUser)
            {
                sql.Append(" 	inner join "+ tempTable1 + " prod on prod.FID=opp.FID ");
            }

            sql.Append(" 	where opp.FDOCUMENTSTATUS >='C' ");
            sql.Append(" 	and opp.F_PEJK_AUDITDATE between '"+ fromDate + "' and '" + toDate + "' ");

            if (hasCustomerIndustry)
            {
                sql.Append(" 	and opp.F_PEJK_CUSTINDUSTRY='"+ customerIndustryID + "' ");
            }
            if (hasCustomerRelationship)
            {
                sql.Append(" 	and opp.F_PEJK_CUSTSHIP='"+ customerRelationshipID + "' ");
            }
            if (hasSaleDept)
            {
                sql.Append(" 	and opp.FSALEDEPTID='"+ salesDeptID + "' ");
            }

            sql.Append(" 	group by cust.FNUMBER,cust_l.FNAME ");
            sql.Append(" ) tt ");


            DBUtils.ExecuteDynamicObject(this.Context, sql.ToString());
        }
コード例 #12
0
 public override List <long> GetOrgIdList(IRptParams filter)
 {
     return(base.GetOrgIdList(filter));
 }
コード例 #13
0
 public override System.Data.DataTable GetList(IRptParams filter)
 {
     return(base.GetList(filter));
 }
コード例 #14
0
 protected override string CreateGroupSummaryData(IRptParams filter, string tablename)
 {
     return(base.CreateGroupSummaryData(filter, tablename));
 }
コード例 #15
0
        protected override System.Data.DataTable GetReportData(IRptParams filter)
        {
            var result = base.GetReportData(filter);

            return(result);
        }
コード例 #16
0
        //执行查询sql 按时间 销售员 销售部门进行过滤
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);

            // 根据当前用户的UserId  查询出其personId
            StringBuilder sql0 = new StringBuilder();

            sql0.AppendFormat(@"/*dialect*/ SELECT FLINKOBJECT FROM T_SEC_USER WHERE FUSERID = {0} ", this.Context.UserId);
            DynamicObjectCollection collection = DBUtils.ExecuteDynamicObject(this.Context, sql0.ToString());
            StringBuilder           salerLimit = new StringBuilder();
            Boolean flag = false;

            if (collection.Count > 0)
            {
                //获取当前用户personId
                DynamicObject personIdObj = (DynamicObject)collection[0];
                int           personId    = Convert.ToInt32(personIdObj["FLINKOBJECT"]);

                //获取当前用户权限内的销售数据
                if (CRMServiceHelper.getSalerPersonids(this.Context, personId) != null)
                {
                    //获取当前用户可见的销售员集合
                    List <long> salerList = CRMServiceHelper.getSalerPersonids(this.Context, personId);
                    int         len       = 0;
                    flag = true;

                    if (salerList.Count >= 1)
                    {
                        salerLimit.Append(" IN ( ");
                    }

                    foreach (long salerId in salerList)
                    {
                        len++;
                        if (len == salerList.Count)
                        {
                            salerLimit.Append(" " + salerId + " ) ");
                        }
                        else
                        {
                            salerLimit.Append(" " + salerId + ", ");
                        }
                    }
                }
            }


            //生成中间临时表
            IDBService dbservice = ServiceHelper.GetService <IDBService>();

            materialRptTableNames = dbservice.CreateTemporaryTableName(this.Context, 10);
            string tmpTable1 = materialRptTableNames[0];
            string tmpTable2 = materialRptTableNames[1];
            string tmpTable3 = materialRptTableNames[2];
            string tmpTable4 = materialRptTableNames[3];
            string tmpTable5 = materialRptTableNames[4];
            string tmpTable6 = materialRptTableNames[5];

            //过滤条件:起始日期/截至日期/部门/业务员
            DynamicObject dyFilter  = filter.FilterParameter.CustomFilter;
            String        startDate = ""; //起始日期
            String        endDate   = ""; //截至日期

            //销售员
            StringBuilder salerSql = new StringBuilder();

            if (dyFilter["F_QSNC_SalerFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_SalerFilter"]).Count > 0)
            {
                //获取到多选基础资料中所有选中项
                DynamicObjectCollection cols1 = (DynamicObjectCollection)dyFilter["F_QSNC_SalerFilter"];
                int salerNum = 0;

                if (cols1.Count >= 1)
                {
                    salerSql.Append(" IN (");
                }

                foreach (DynamicObject saler in cols1)
                {
                    String salerNumber = Convert.ToString(((DynamicObject)saler["F_QSNC_SalerFilter"])["Id"]);
                    salerNum++;

                    if (cols1.Count == salerNum)
                    {
                        salerSql.Append(salerNumber + ") ");
                    }
                    else
                    {
                        salerSql.Append(salerNumber + ", ");
                    }
                }
            }

            //部门
            StringBuilder deptSql = new StringBuilder();

            if (dyFilter["F_QSNC_DeptFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_DeptFilter"]).Count > 0)
            {
                //获取到多选基础资料中所有选中项
                DynamicObjectCollection cols2 = (DynamicObjectCollection)dyFilter["F_QSNC_DeptFilter"];
                int deptNum = 0;

                if (cols2.Count >= 1)
                {
                    deptSql.Append(" IN (");
                }

                foreach (DynamicObject dept in cols2)
                {
                    String deptNumber = Convert.ToString(((DynamicObject)dept["F_QSNC_DeptFilter"])["Id"]);
                    deptNum++;

                    if (cols2.Count == deptNum)
                    {
                        deptSql.Append(deptNumber + ") ");
                    }
                    else
                    {
                        deptSql.Append(deptNumber + ", ");
                    }
                }
            }

            //报表sql

            String yearFilter = "(";

            if (dyFilter["F_QSNC_StartDateFilter"] != null)
            {
                String year1 = Convert.ToDateTime(dyFilter["F_QSNC_StartDateFilter"]).Year.ToString();
                yearFilter += "'" + year1 + "',";
            }
            if (dyFilter["F_QSNC_EndDateFilter"] != null)
            {
                String year2 = Convert.ToDateTime(dyFilter["F_QSNC_EndDateFilter"]).Year.ToString();
                yearFilter += "'" + year2 + "',";
            }
            if (dyFilter["F_QSNC_StartDateFilter"] != null || dyFilter["F_QSNC_EndDateFilter"] != null)
            {
                yearFilter = yearFilter.TrimEnd(',');
            }
            yearFilter += ")";

            // ---------------------------------------------------------------------------------
            // tmpTable1中存放所有进行合同指标规划的 销售部门、销售员、合同指标
            StringBuilder sql1 = new StringBuilder();

            sql1.AppendFormat(@"/*dialect*/ SELECT  F_PEJK_SALEDEPT, SQE.F_PEJK_SALER, SUM(F_PEJK_CONTRACTQUNTA) YEARQUOTA INTO {0} FROM PEJK_SALERQUNTAENTRY SQE LEFT JOIN PEJK_SALERQUNTA SQH ON SQE.FID = SQH.FID WHERE SQH.FDOCUMENTSTATUS = 'C' AND SQH.F_PEJK_SALEDEPT != 0 ", tmpTable1);

            if (dyFilter["F_QSNC_StartDateFilter"] != null || dyFilter["F_QSNC_EndDateFilter"] != null)
            {
                sql1.AppendFormat(" AND datepart(yyyy,F_PEJK_YEAR) IN {0} ", yearFilter);
            }

            sql1.AppendLine(" GROUP BY F_PEJK_SALEDEPT, SQE.F_PEJK_SALER ");

            DBUtils.ExecuteDynamicObject(this.Context, sql1.ToString());

            // ---------------------------------------------------------------------------------
            // tmpTable2存放所有进行销售合同分解的中销售员、合同分解金额
            StringBuilder sql2 = new StringBuilder();

            sql2.AppendFormat(@"/*dialect*/ SELECT F_PEJK_SALER, SUM(F_PEJK_DETAILLAMOUNT) FINISHAMOUNT INTO {0} FROM PEJK_SALECONTRACTENTRY E LEFT JOIN PEJK_SALECONTRACTS H ON E.FID = H.FID WHERE F_PEJK_SALER != 0 AND FDOCUMENTSTATUS = 'C' GROUP BY F_PEJK_SALER ", tmpTable2);


            if (dyFilter["F_QSNC_StartDateFilter"] != null)
            {
                startDate = Convert.ToDateTime(dyFilter["F_QSNC_StartDateFilter"]).ToString("yyyy-MM-dd 00:00:00");
                sql1.AppendFormat(" AND H.F_PEJK_DATE >= '{0}' ", startDate);
            }
            if (dyFilter["F_QSNC_EndDateFilter"] != null)
            {
                endDate = Convert.ToDateTime(dyFilter["F_QSNC_EndDateFilter"]).ToString("yyyy-MM-dd 23:59:59");
                sql1.AppendFormat(" AND H.F_PEJK_DATE <= '{0}' ", endDate);
            }
            DBUtils.ExecuteDynamicObject(this.Context, sql2.ToString());

            // ---------------------------------------------------------------------------------
            // tmpTable3
            StringBuilder sql3 = new StringBuilder();

            sql3.AppendFormat(@"/*dialect*/ SELECT TMP1.F_PEJK_SALEDEPT, TMP1.F_PEJK_SALER, TMP1.YEARQUOTA QUOTA, ISNULL(TMP2.FINISHAMOUNT, 0) COMPLETEAMOUNT INTO {0} FROM {1} TMP1 LEFT JOIN {2} TMP2 ON TMP1.F_PEJK_SALER = TMP2.F_PEJK_SALER ", tmpTable3, tmpTable1, tmpTable2);
            DBUtils.ExecuteDynamicObject(this.Context, sql3.ToString());

            // ---------------------------------------------------------------------------------
            // tmpTable4
            StringBuilder sql4 = new StringBuilder();

            sql4.AppendFormat(@"/*dialect*/ SELECT DEPTL.FNAME DEPTNAME, SALESMANL.FNAME SALERNAME, QUOTA, COMPLETEAMOUNT, CASE WHEN QUOTA = 0 THEN '0 %' ELSE CAST(CONVERT(FLOAT, ROUND((COMPLETEAMOUNT * 1.00 / (QUOTA * 1.00)) * 100, 3)) as varchar)+' %' END AS COMPLETERATE INTO {0} FROM {1} TMP1
                                            LEFT JOIN V_BD_SALESMAN_L SALESMANL ON SALESMANL.FID = TMP1.F_PEJK_SALER
                                            LEFT JOIN T_BD_DEPARTMENT_L DEPTL ON DEPTL.FDEPTID = TMP1.F_PEJK_SALEDEPT
                                            LEFT JOIN T_BD_DEPARTMENT DEPT ON DEPTL.FDEPTID = DEPT.FDEPTID WHERE SALESMANL.FNAME IS NOT NULL ", tmpTable4, tmpTable3);

            //判断销售员条件
            if (dyFilter["F_QSNC_SalerFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_SalerFilter"]).Count > 0)
            {
                sql1.AppendLine(" AND TMP1.F_PEJK_SALER ").Append(salerSql);
            }

            //销售员数据隔离
            if (flag)
            {
                sql1.AppendLine(" AND TMP1.F_PEJK_SALER ").Append(salerLimit);
            }

            //判断销售部门条件
            if (dyFilter["F_QSNC_DeptFilter"] != null && ((DynamicObjectCollection)dyFilter["F_QSNC_DeptFilter"]).Count > 0)
            {
                sql1.AppendLine(" AND TMP1.F_PEJK_SALEDEPT ").Append(deptSql);
            }
            DBUtils.ExecuteDynamicObject(this.Context, sql4.ToString());


            StringBuilder sql5 = new StringBuilder();

            sql5.AppendFormat(@"/*dialect*/INSERT INTO {0} SELECT '最终合计' DEPTNAME, '' SALERNAME, ISNULL(TOTALQUOTA, 0) TOTALQUOTA1, ISNULL(TOTALCOMPLETEAMOUNT, 0) TOTALCOMPLETEAMOUNT1, CASE WHEN TOTALQUOTA IS NULL THEN '0 %' ELSE CAST(CONVERT(FLOAT, ROUND((TOTALCOMPLETEAMOUNT * 1.00 / (TOTALQUOTA * 1.00)) * 100, 3)) as varchar) + ' %' END AS COMPLETERATE
            FROM 
            (SELECT SUM(QUOTA) TOTALQUOTA, SUM(COMPLETEAMOUNT) TOTALCOMPLETEAMOUNT FROM {1}) TMP  ", tmpTable4, tmpTable4);
            DBUtils.ExecuteDynamicObject(this.Context, sql5.ToString());

            StringBuilder sql6 = new StringBuilder();

            sql6.AppendFormat(@"/*dialect*/ SELECT ROW_NUMBER() OVER (ORDER BY DEPTNAME) AS FSeq, DEPTNAME, SALERNAME, CONVERT(FLOAT, ROUND(QUOTA, 2)) AS TOTALQUOTA, CONVERT(FLOAT, ROUND(COMPLETEAMOUNT, 2)) AS TOTALAMOUNT, COMPLETERATE INTO {0} ", tableName);
            sql6.AppendFormat(" FROM {0}  ", tmpTable4);
            DBUtils.ExecuteDynamicObject(this.Context, sql6.ToString());
        }
コード例 #17
0
        protected override System.Data.DataTable GetReportData(string tablename, IRptParams filter)
        {
            var result = base.GetReportData(tablename, filter);

            return(result);
        }
コード例 #18
0
        //构建报表列
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = new ReportHeader();
            //通知单厂家
            var tzdcj = header.AddChild("通知单厂家", new Kingdee.BOS.LocaleValue("通知单/厂家"));

            tzdcj.ColIndex = 0;

            //工序说明
            var gxsm = header.AddChild("工序说明", new Kingdee.BOS.LocaleValue("工序说明"));

            gxsm.ColIndex = 1;

            //生产车间
            var sccj = header.AddChild("生产车间", new Kingdee.BOS.LocaleValue("生产车间"));

            sccj.ColIndex = 2;

            //型号规格
            var xhgg = header.AddChild("型号规格", new Kingdee.BOS.LocaleValue("型号规格"));

            xhgg.ColIndex = 3;

            //计划产量
            var quota = header.AddChild("计划产量", new Kingdee.BOS.LocaleValue("计划产量"));

            quota.ColIndex = 4;

            //交货日期
            var jhrq = header.AddChild("交货日期", new Kingdee.BOS.LocaleValue("交货日期"));

            jhrq.ColIndex = 5;
            //延长米
            var ycm = header.AddChild("延长米", new Kingdee.BOS.LocaleValue("延长米"));

            ycm.ColIndex = 6;
            //子物料名称
            var zwlmc = header.AddChild("子物料名称", new Kingdee.BOS.LocaleValue("子物料名称"));

            zwlmc.ColIndex = 7;
            //原纸规格
            var yzgg = header.AddChild("原纸规格", new Kingdee.BOS.LocaleValue("原纸规格"));

            yzgg.ColIndex = 8;
            //原纸数量
            var yzsl = header.AddChild("原纸数量", new Kingdee.BOS.LocaleValue("原纸数量"));

            yzsl.ColIndex = 9;
            //布板规格
            var bbgg = header.AddChild("布板规格", new Kingdee.BOS.LocaleValue("布板规格"));

            bbgg.ColIndex = 10;
            //布板数量
            var bbsl = header.AddChild("布板数量", new Kingdee.BOS.LocaleValue("布板数量"));

            bbsl.ColIndex = 11;
            //包材规格
            var bcgg = header.AddChild("包材规格", new Kingdee.BOS.LocaleValue("包材规格"));

            bcgg.ColIndex = 12;
            //包材数量
            var bcsl = header.AddChild("包材数量", new Kingdee.BOS.LocaleValue("包材数量"));

            bcsl.ColIndex = 13;
            //开始时间
            var kssj = header.AddChild("开始时间", new Kingdee.BOS.LocaleValue("开始时间"));

            kssj.ColIndex = 14;
            //结束时间
            var jssj = header.AddChild("结束时间", new Kingdee.BOS.LocaleValue("结束时间"));

            jssj.ColIndex = 15;
            //计划工时
            var jhgs = header.AddChild("计划工时", new Kingdee.BOS.LocaleValue("计划工时"));

            jhgs.ColIndex = 16;
            //包装方式
            var bzfs = header.AddChild("包装方式", new Kingdee.BOS.LocaleValue("包装方式"));

            bzfs.ColIndex = 17;
            //备注
            var bz = header.AddChild("备注", new Kingdee.BOS.LocaleValue("备注"));

            bz.ColIndex = 18;
            return(header);
        }
コード例 #19
0
        protected override string BuilderFromWhereSQL(IRptParams filter)
        {
            string result = base.BuilderFromWhereSQL(filter);

            return(result);
        }
コード例 #20
0
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);
            DynamicObject dyFilter = filter.FilterParameter.CustomFilter;

            StringBuilder sql = new StringBuilder();

            sql.AppendFormat(@"/*dialect*/SELECT * INTO {0} ", tableName).Append("\n");
            sql.AppendLine(" FROM (").Append("\n");
            sql.AppendLine(" SELECT TOP 100 PERCENT ROW_NUMBER() OVER (ORDER BY 通知单号,通知单厂家) AS FSeq,").Append("\n");
            sql = sql.AppendFormat(@"tmp.通知单号,tmp.通知单厂家,tmp.工序说明,tmp.生产车间,tmp.型号规格,tmp.计划产量,tmp.交货日期,tmp.延长米,tmp.子物料名称,tmp.原纸规格,tmp.原纸数量,tmp.布板规格,tmp.布板数量,tmp.包材规格,tmp.包材数量,tmp.开始时间,tmp.结束时间,tmp.计划工时,tmp.包装方式,tmp.备注 
FROM (SELECT tmp0.FMONUMBER 通知单号,tmp1.FCREATEDATE 创建日期,tmp1.FNAME 生产车间,tmp0.FOPERDESCRIPTION 工序说明,tmp1.FMOBILLNO + '-' + CONVERT (CHAR, tmp1.khbm) 通知单厂家,tmp1.FSPECIFICATION 型号规格,tmp0.FOPERQTY 计划产量,tmp1.F_SCFG_DATETIME1 交货日期,tmp1.F_scfg_Qty1 延长米,tmp1.wlbm 子物料编码,tmp1.wlmc 子物料名称,tmp1.yzgg 原纸规格,tmp2.yzsl 原纸数量,tmp3.bbgg 布板规格,tmp4.bbsl 布板数量,tmp5.bcgg 包材规格,tmp6.bcsl 包材数量,NULL 开始时间,NULL 结束时间,NULL 计划工时,tmp1.fdatavalue 包装方式,NULL 备注
FROM
(
SELECT a.FMONUMBER,a.FMOENTRYSEQ,cl.FOPERDESCRIPTION,FOPERQTY
FROM 
	T_SFC_OPERPLANNING a
INNER JOIN T_SFC_OPERPLANNINGSEQ b ON a.fid = b.fid
INNER JOIN T_SFC_OPERPLANNINGDETAIL c ON b.FENTRYID = c.FENTRYID
INNER JOIN T_SFC_OPERPLANNINGDETAIL_L cl on c.FDETAILID = cl.FDETAILID
WHERE 1=1
--and a.FMONUMBER='12105'
) tmp0
INNER JOIN(
--原纸规格
		SELECT
			tpp.FMOBILLNO,tbml0.FSPECIFICATION,tpp.FWORKSHOPID,tpdl.FNAME,tbm.FNUMBER wlbm,tbml.FNAME wlmc,tbml.FSPECIFICATION AS yzgg,CONVERT (CHAR, tbc.FNUMBER) khbm,tpp.F_SCFG_DATETIME1,tpp.F_scfg_Qty1,tbal.fdatavalue,tpp.FCREATEDATE
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
      LEFT JOIN T_BD_MATERIAL tbm0 ON tpp.FMATERIALID = tbm0.FMATERIALID
      INNER JOIN T_BD_MATERIAL_L tbml0 ON tbm0.FMATERIALID = tbml0.FMATERIALID
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			INNER JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
      LEFT JOIN T_BD_CUSTOMER tbc --客户
      ON tbc.FCUSTID = tpp.F_SCFG_BASE
      LEFT JOIN T_BAS_ASSISTANTDATAENTRY_L tbal --辅助资料
      ON tpp.F_SCFG_ASSISTANT = tbal.fentryid
      INNER JOIN T_BD_DEPARTMENT_L tpdl
      ON tpp.FWORKSHOPID=tpdl.FDEPTID
			WHERE
				tbm.FNUMBER LIKE '01.01%' 
     --   and tpp.FMOBILLNO ='12105'
) tmp1 
ON tmp0.FMONUMBER=tmp1.FMOBILLNO
INNER JOIN
--数量
	(SELECT
				tpp.FMOBILLNO,
				SUM (tppe.FMUSTQTY) yzsl
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			LEFT JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
			WHERE
				tbm.FNUMBER LIKE '01.01%' 
     --   and tpp.FMOBILLNO ='12105'
			GROUP BY
				tpp.FMOBILLNO) tmp2
ON tmp1.FMOBILLNO=tmp2.FMOBILLNO

INNER JOIN(
--布板规格
		SELECT
			tpp.FMOBILLNO,tbml.FSPECIFICATION AS bbgg
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			INNER JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
			WHERE
				tbm.FNUMBER LIKE '01.02%' 
     --   and tpp.FMOBILLNO ='12105'
) tmp3 
ON tmp2.FMOBILLNO=tmp3.FMOBILLNO
LEFT JOIN
--布板数量
	(SELECT
				tpp.FMOBILLNO,
				SUM (tppe.FMUSTQTY) bbsl
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			LEFT JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
			WHERE
				tbm.FNUMBER LIKE '01.02%' 
    --    and tpp.FMOBILLNO ='12105'
			GROUP BY
				tpp.FMOBILLNO) tmp4
ON tmp3.FMOBILLNO=tmp4.FMOBILLNO

INNER JOIN(
--包材规格
		SELECT
			tpp.FMOBILLNO,tbml.FSPECIFICATION AS bcgg
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			INNER JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
			WHERE
				tbm.FNUMBER LIKE '03%' 
   --     and tpp.FMOBILLNO ='12105'
) tmp5 
ON tmp4.FMOBILLNO=tmp5.FMOBILLNO
INNER JOIN
--包材数量
	(SELECT
				tpp.FMOBILLNO,
				SUM (tppe.FMUSTQTY) bcsl
			FROM
				T_PRD_PPBOM tpp
			LEFT JOIN T_PRD_PPBOMENTRY tppe ON tpp.fid = tppe.fid
			LEFT JOIN T_BD_MATERIAL tbm ON tppe.FMATERIALID = tbm.FMATERIALID
			LEFT JOIN T_BD_MATERIAL_L tbml ON tbm.FMATERIALID = tbml.FMATERIALID
			WHERE
				tbm.FNUMBER LIKE '03%' 
    --    and tpp.FMOBILLNO ='12105'
			GROUP BY
				tpp.FMOBILLNO) tmp6
ON tmp5.FMOBILLNO=tmp6.FMOBILLNO
WHERE 1=1
");
            if (dyFilter["F_scfg_prodIdFilterStr"] != null)
            {
                string prodId = Convert.ToString(dyFilter["F_scfg_prodIdFilterStr"]);//生产通知单号
                sql.AppendFormat(" and tmp0.FMONUMBER='{0}'", prodId);
            }
            if (dyFilter["F_scfg_DeptIdFilter"] != null)
            {
                string deptId = Convert.ToString(dyFilter["F_scfg_DeptIdFilter_Id"]);//生产车间
                sql.AppendFormat(" and tmp1.FWORKSHOPID='{0}'", deptId);
            }
            //判断统计日期是否有效
            if (dyFilter["F_scfg_CreateDateFilter"] != null)
            {
                string createDateStart = Convert.ToDateTime(dyFilter["F_scfg_CreateDateFilter"]).ToString("yyyy-MM-dd 00:00:00");
                string createDateEnd   = Convert.ToDateTime(dyFilter["F_scfg_CreateDateFilter"]).ToString("yyyy-MM-dd 23:59:59");
                sql.AppendFormat(" AND tmp1.FCREATEDATE >= '{0}' ", createDateStart);
                sql.AppendFormat(" AND tmp1.FCREATEDATE <= '{0}' ", createDateEnd);
            }
            sql.AppendLine(") tmp");
            sql.AppendLine(" ORDER BY tmp.通知单号,tmp.通知单厂家 DESC");
            sql.AppendLine(") A");
            DBUtils.Execute(this.Context, sql.ToString());
        }
コード例 #21
0
        protected override string BuilderTempTableOrderBySQL(IRptParams filter)
        {
            string result = base.BuilderTempTableOrderBySQL(filter);

            return(result);
        }
コード例 #22
0
        //构建报表列
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            ReportHeader header = new ReportHeader();

            //首次录入时间
            var firstDate = header.AddChild("firstDate", new Kingdee.BOS.LocaleValue("首次录入时间"));

            firstDate.ColIndex = 0;
            firstDate.Width    = 100;

            //更新日期
            var updateDate = header.AddChild("updateDate", new Kingdee.BOS.LocaleValue("更新日期"));

            updateDate.ColIndex = 1;
            updateDate.Width    = 100;

            //区域
            var area = header.AddChild("area", new Kingdee.BOS.LocaleValue("区域"));

            area.ColIndex = 2;
            area.Width    = 150;

            //负责人
            header.AddChild("saler", new Kingdee.BOS.LocaleValue("负责人")).ColIndex = 3;

            //部门
            header.AddChild("department", new Kingdee.BOS.LocaleValue("部门")).ColIndex = 4;

            //代理商
            header.AddChild("agent", new Kingdee.BOS.LocaleValue("代理商")).ColIndex = 5;

            //最终用户
            header.AddChild("user", new Kingdee.BOS.LocaleValue("最终用户")).ColIndex = 6;

            //设备使用地址
            var address = header.AddChild("address", new Kingdee.BOS.LocaleValue("设备使用地址"));

            address.ColIndex = 7;
            address.Width    = 150;

            //产品类别
            var category = header.AddChild("category", new Kingdee.BOS.LocaleValue("产品类别"));

            category.ColIndex = 8;
            category.Width    = 150;

            //产品型号
            var model = header.AddChild("model", new Kingdee.BOS.LocaleValue("产品型号"));

            model.ColIndex = 9;
            model.Width    = 150;

            //特殊参数要求
            var special = header.AddChild("special", new Kingdee.BOS.LocaleValue("特殊参数要求"));

            special.ColIndex = 10;
            special.Width    = 150;
            //台数
            header.AddChild("count", new Kingdee.BOS.LocaleValue("台数")).ColIndex = 11;

            //单价
            header.AddChild("price", new Kingdee.BOS.LocaleValue("单价(万元)")).ColIndex = 12;

            //总金额
            header.AddChild("amount", new Kingdee.BOS.LocaleValue("总金额(万元)")).ColIndex = 13;

            //项目进展
            var progress = header.AddChild("progress", new Kingdee.BOS.LocaleValue("项目进展"));

            progress.ColIndex = 14;
            progress.Width    = 150;

            //丢单原因
            var reason = header.AddChild("reason", new Kingdee.BOS.LocaleValue("丢单原因"));

            reason.ColIndex = 15;
            reason.Width    = 150;

            //下一步计划
            var plan = header.AddChild("plan", new Kingdee.BOS.LocaleValue("下一步计划"));

            plan.ColIndex = 16;
            plan.Width    = 150;

            //主要竞争对手
            var rival = header.AddChild("rival", new Kingdee.BOS.LocaleValue("主要竞争对手"));

            rival.ColIndex = 17;
            rival.Width    = 150;

            //竞争对手产品型号
            var rivalModel = header.AddChild("rivalModel", new Kingdee.BOS.LocaleValue("竞争对手产品型号"));

            rivalModel.ColIndex = 18;
            rivalModel.Width    = 150;

            //竞争型号单价
            header.AddChild("rivalPrice", new Kingdee.BOS.LocaleValue("竞争型号单价(万元)")).ColIndex = 19;

            //预计下单时间
            var orderDate = header.AddChild("orderDate", new Kingdee.BOS.LocaleValue("预计下单时间"));

            orderDate.ColIndex = 20;
            orderDate.Width    = 100;

            //备注
            var remark = header.AddChild("remark", new Kingdee.BOS.LocaleValue("备注"));

            remark.ColIndex = 21;
            remark.Width    = 150;

            return(header);
        }
コード例 #23
0
        public override System.Data.DataTable GetList(IRptParams filter)
        {
            var result = base.GetList(filter);

            return(result);
        }
コード例 #24
0
        //向临时表中插入报表数据
        public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
        {
            base.BuilderReportSqlAndTempTable(filter, tableName);

            // 根据当前用户的UserId  查询出其personId
            StringBuilder sql0 = new StringBuilder();

            sql0.AppendFormat(@"/*dialect*/ SELECT FLINKOBJECT FROM T_SEC_USER WHERE FUSERID = {0} ", this.Context.UserId);
            DynamicObjectCollection collection = DBUtils.ExecuteDynamicObject(this.Context, sql0.ToString());

            StringBuilder salerLimit = new StringBuilder();
            Boolean       flag       = false;

            if (collection.Count > 0)
            {
                //获取当前用户personId
                DynamicObject personIdObj = (DynamicObject)collection[0];
                int           personId    = Convert.ToInt32(personIdObj["FLINKOBJECT"]);

                //销售员数据隔离
                if (CRMServiceHelper.getSalerPersonids(this.Context, personId) != null)
                {
                    List <long> salerList = CRMServiceHelper.getSalerPersonids(this.Context, personId);
                    int         len       = 0;
                    flag = true;

                    if (salerList.Count >= 1)
                    {
                        salerLimit.Append(" IN ( ");
                    }

                    foreach (long salerId in salerList)
                    {
                        len++;
                        if (len == salerList.Count)
                        {
                            salerLimit.Append(" " + salerId + " ) ");
                        }
                        else
                        {
                            salerLimit.Append(" " + salerId + ", ");
                        }
                    }
                }
            }


            DynamicObject customFilter = filter.FilterParameter.CustomFilter;

            //部门
            StringBuilder deptSql = new StringBuilder();

            if (customFilter["F_QSNC_DeptFilter"] != null && ((DynamicObjectCollection)customFilter["F_QSNC_DeptFilter"]).Count > 0)
            {
                //获取到多选基础资料中所有选中项
                DynamicObjectCollection cols2 = (DynamicObjectCollection)customFilter["F_QSNC_DeptFilter"];
                int deptNum = 0;

                if (cols2.Count >= 1)
                {
                    deptSql.Append(" IN (");
                }

                foreach (DynamicObject dept in cols2)
                {
                    String deptNumber = Convert.ToString(((DynamicObject)dept["F_QSNC_DeptFilter"])["Number"]);
                    deptNum++;

                    if (cols2.Count == deptNum)
                    {
                        deptSql.Append("'" + deptNumber + "')");
                    }
                    else
                    {
                        deptSql.Append("'" + deptNumber + "', ");
                    }
                }
            }

            StringBuilder sql = new StringBuilder();

            sql.AppendLine(@"/*dialect*/ SELECT ROW_NUMBER() OVER (ORDER BY CLUE.FCREATEDATE) AS FSeq, CONVERT(varchar(100), CLUE.FCREATEDATE, 23) AS 'firstDate', "); //首次录入时间
            sql.AppendLine(" CONVERT(varchar(100), OPP.FMODIFYDATE, 23) AS 'updateDate', ");                                                                           //更新日期
            sql.AppendLine(" (SELECT (ASS1.FDATAVALUE + ' ' + ASS2.FDATAVALUE) ");
            sql.AppendLine(" FROM T_BD_CUSTOMEREXT CUSTEXT ");
            sql.AppendLine(" LEFT JOIN T_BAS_ASSISTANTDATAENTRY_L ASS1 ");
            sql.AppendLine(" ON ASS1.FENTRYID = CUSTEXT.FPROVINCE ");
            sql.AppendLine(" LEFT JOIN T_BAS_ASSISTANTDATAENTRY_L ASS2 ");
            sql.AppendLine(" ON ASS2.FENTRYID = CUSTEXT.FCITY ");
            sql.AppendLine(" WHERE ASS1.FLOCALEID = 2052 AND ASS2.FLOCALEID = 2052 AND CUSTEXT.FCUSTID = OPP.FCUSTOMERID) AS 'area', "); // CRM客户--区域
            sql.AppendLine(" EMPL.FNAME AS 'saler', ");                                                                                  //负责人
            sql.AppendLine(" DEPTL.FNAME AS 'department', ");                                                                            //部门
            sql.AppendLine(" CUST.F_PEJK_AGENT AS 'agent', ");                                                                           //代理商
            sql.AppendLine(" FINUSER.FNAME AS 'user', ");                                                                                //最终用户
            sql.AppendLine(" F_PEJK_SBSYDZ AS 'address', ");                                                                             //设备使用地址
            sql.AppendLine(" F_PEJK_CRMPRONAME AS 'category', ");                                                                        //产品类别
            sql.AppendLine(" F_PEJK_GGXH AS 'model', ");                                                                                 //产品型号
            sql.AppendLine(" F_PEJK_SPECPARAM AS 'special', ");                                                                          //特殊参数要求
            sql.AppendLine(" CAST(F_PEJK_QTY AS INT) AS 'count', ");                                                                     //台数(整数)
            sql.AppendLine(" (CONVERT(FLOAT, F_PEJK_PRICE, 2) / 10000) AS 'price', ");                                                   //单价
            sql.AppendLine(" (CONVERT(FLOAT, F_PEJK_AMOUNT, 2) / 10000) AS 'amount', ");                                                 //总金额
            sql.AppendLine(" PROJECTPRO.FNAME AS 'progress', ");                                                                         //项目进展
            sql.AppendLine(" F_PEJK_DDRESON AS 'reason', ");                                                                             //丢单原因
            sql.AppendLine(" F_PEJK_XYBJH AS 'plan', ");                                                                                 //下一步计划
            sql.AppendLine(" F_PEJK_ZZJZDS AS 'rival',	 ");                            //主要竞争对手
            sql.AppendLine(" F_PEJK_JZDSCPXH AS 'rivalModel', ");                                                                        //竞争对手产品型号
            sql.AppendLine(" (CONVERT(FLOAT, F_PEJK_JZPRICE, 2) / 10000) AS 'rivalPrice', ");                                            //竞争型号单价
            sql.AppendLine(" F_PEJK_DATE AS 'orderDate', ");                                                                             //预计下单时间
            sql.AppendLine(" F_PEJK_REMARKDETAIL AS 'remark' ");                                                                         //备注
            sql.AppendFormat(" INTO {0} ", tableName);
            sql.AppendLine(" FROM T_CRM_OpportunityProduct OPPPRO ");
            sql.AppendLine(" LEFT JOIN T_CRM_Opportunity OPP ");
            sql.AppendLine(" ON OPPPRO.FID = OPP.FID ");
            sql.AppendLine(" LEFT JOIN PEJK_PROJECTPROCESS_L PROJECTPRO	");
            sql.AppendLine(" ON PROJECTPRO.FID = OPPPRO.F_PEJK_PROPROCESS ");
            sql.AppendLine(" LEFT JOIN PEJK_FINALU_L FINUSER ");
            sql.AppendLine(" ON FINUSER.FID = OPPPRO.F_PEJK_FINALU ");
            sql.AppendLine(" LEFT JOIN T_CRM_Clue CLUE ");
            sql.AppendLine(" ON OPP.FSOURCEBILLNO = CLUE.FBILLNO ");
            sql.AppendLine(" LEFT JOIN T_CRM_Clue_Cust CUST ");
            sql.AppendLine(" ON CLUE.FID = CUST.FID ");
            sql.AppendLine(" LEFT JOIN V_BD_SALESMAN SALESMAN ");
            sql.AppendLine(" ON SALESMAN.FID = OPP.FBEMPID ");
            sql.AppendLine(" LEFT JOIN T_BD_STAFF STAFF ");
            sql.AppendLine(" ON STAFF.FSTAFFID = SALESMAN.FSTAFFID ");
            sql.AppendLine(" INNER JOIN T_HR_EMPINFO EMP ");
            sql.AppendLine(" ON STAFF.FEMPINFOID = EMP.FID ");
            sql.AppendLine(" LEFT JOIN T_HR_EMPINFO_L EMPL ");
            sql.AppendLine(" ON  EMPL.FID = EMP.FID ");
            sql.AppendLine(" LEFT JOIN T_BD_DEPARTMENT_L DEPTL ");
            sql.AppendLine(" ON DEPTL.FDEPTID = SALESMAN.FDEPTID ");
            sql.AppendLine(" LEFT JOIN T_BD_DEPARTMENT DEPT ON DEPTL.FDEPTID = DEPT.FDEPTID ");
            sql.AppendLine(" where EMPL.FLOCALEID = 2052 AND DEPTL.FLOCALEID = 2052 AND PROJECTPRO.FLOCALEID = 2052 AND FINUSER.FLOCALEID = 2052 ");
            //判断销售部门条件
            if (customFilter["F_QSNC_DeptFilter"] != null && ((DynamicObjectCollection)customFilter["F_QSNC_DeptFilter"]).Count > 0)
            {
                sql.AppendLine(" AND DEPT.FNUMBER").Append(deptSql);
            }
            if (flag)
            {
                sql.AppendLine(" and SALESMAN.FID ").Append(salerLimit);
            }

            DBUtils.ExecuteDynamicObject(this.Context, sql.ToString());
        }
コード例 #25
0
        public override List <Kingdee.BOS.Core.Metadata.TreeNode> GetTreeNodes(IRptParams filter)
        {
            var result = base.GetTreeNodes(filter);

            return(result);
        }
コード例 #26
0
        /// <summary>
        /// 构建出报表列
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        /// <remarks>
        /// // 如下代码,演示如何设置同一分组的分组头字段合并
        /// // 需配合Initialize事件,设置分组依据字段(PrimaryKeyFieldName)
        /// ReportHeader header = new ReportHeader();
        /// header.Mergeable = true;
        /// int width = 80;
        /// ListHeader headChild1 = header.AddChild("FBILLNO", new LocaleValue("应付单号"));
        /// headChild1.Width = width;
        /// headChild1.Mergeable = true;
        ///
        /// ListHeader headChild2 = header.AddChild("FPURMAN", new LocaleValue("采购员"));
        /// headChild2.Width = width;
        /// headChild2.Mergeable = true;
        /// </remarks>
        public override ReportHeader GetReportHeaders(IRptParams filter)
        {
            DynamicObject dyFilter = filter.FilterParameter.CustomFilter;

            ReportHeader header = new ReportHeader();

            // 序号
            var FID = header.AddChild("FIDENTITYID", new LocaleValue("序号"));

            FID.ColIndex = 0;

            // 单据编码
            var billNo = header.AddChild("工序", new LocaleValue("工序"));

            billNo.ColIndex = 1;

            // 打印记录号
            var FSTOCKORGID = header.AddChild("打印记录号", new LocaleValue("打印记录号"));

            FSTOCKORGID.ColIndex = 2;

            // 打印人
            var FMaterialCode = header.AddChild("打印人N", new LocaleValue("打印人"));

            FMaterialCode.ColIndex = 3;

            // 日期
            var FMaterialName = header.AddChild("日期", new LocaleValue("日期"), SqlStorageType.SqlDatetime);

            FMaterialName.ColIndex = 4;

            // 厚度
            var FSpecification = header.AddChild("厚度", new LocaleValue("厚度"), SqlStorageType.SqlDecimal);

            FSpecification.ColIndex = 5;

            // 宽度
            var FSTOCKID = header.AddChild("宽度", new LocaleValue("宽度"), SqlStorageType.SqlDecimal);

            FSTOCKID.ColIndex = 6;

            //长度
            var FSTOCKNAME = header.AddChild("长度", new LocaleValue("长度"), SqlStorageType.SqlDecimal);

            FSTOCKNAME.ColIndex = 7;

            // 面积
            var FLOT = header.AddChild("面积", new LocaleValue("面积"), SqlStorageType.SqlDecimal);

            FLOT.ColIndex = 8;


            // 生产订单号
            var FOWNERID = header.AddChild("生产订单号", new LocaleValue("生产订单号"));

            FOWNERID.ColIndex = 9;

            // 生产订单行号
            var FMINDATE = header.AddChild("生产订单行号", new LocaleValue("生产订单行号"), SqlStorageType.SqlDecimal);

            FMINDATE.ColIndex = 10;

            // 客户
            var FSTOCKQTY = header.AddChild("客户", new LocaleValue("客户"));

            FSTOCKQTY.ColIndex = 13;



            return(header);
        }
コード例 #27
0
 protected override string AnalyzeDspCloumn(IRptParams filter, string tablename)
 {
     return(base.AnalyzeDspCloumn(filter, tablename));
 }
コード例 #28
0
        protected override string AnalyzeDspCloumn(IRptParams filter, string tablename)
        {
            string result = base.AnalyzeDspCloumn(filter, tablename);

            return(result);
        }
コード例 #29
0
 protected override System.Data.DataTable GetReportData(string tablename, IRptParams filter)
 {
     return(base.GetReportData(tablename, filter));
 }
コード例 #30
0
 protected override string BuilderSelectFieldSQL(IRptParams filter)
 {
     return(base.BuilderSelectFieldSQL(filter));
 }