示例#1
0
        public static DataTable GetAllQueryData(string sourceName, FieldGroupDetailCollection fieldGroupDetails)
        {
            string strSql = GridManager.GetQuerySql(sourceName, fieldGroupDetails);
            List<SqlParameter> listParames = new List<SqlParameter>();
            string strWhere = GetWhereSqlPermission(listParames);

            if (strWhere != "")
            {
                strSql += " WHERE 1= 1" + strWhere;
            }
            return DbHelperSQL.Query(strSql, listParames.ToArray()).Tables[0];
        }
示例#2
0
文件: GroupData.cs 项目: rivernli/SGP
        public static string GetExportData(HttpRequestBase request, FieldGroup fieldGroup)
        {
            DataSet ds = new DataSet();
            FieldGroupDetailCollection fields = fieldGroup.GetFieldsByUser(AccessControl.CurrentLogonUser.Uid);
            FieldGroupDetailCollection mainFields = new FieldGroupDetailCollection();
            Dictionary<string, FieldGroupDetailCollection> subFields = new Dictionary<string, FieldGroupDetailCollection>();

            string strSql = GridManager.GetQuerySql(fieldGroup.SourceName, fieldGroup.GetFieldsByUser(AccessControl.CurrentLogonUser.Uid));

            FieldGroupDetailCollection relationFields = new FieldGroupDetailCollection();
            if (!String.IsNullOrEmpty(fieldGroup.SubRelationFields))
            {
                string[] rfa = fieldGroup.SubRelationFields.Split(',');
                if (rfa != null && rfa.Length > 0)
                {
                    foreach (string rf in rfa)
                    {
                        FieldGroupDetail rfd = fields.Find(t => String.Compare(t.FieldName, rf.Trim(), true) == 0);
                        if (rfd != null)
                        {
                            relationFields.Add(rfd);
                        }
                    }
                }
            }

            foreach (FieldGroupDetail f in fields)
            {
                if (String.IsNullOrEmpty(f.SubDataType))
                {
                    mainFields.Add(f);
                }
                else
                {
                    if (!subFields.ContainsKey(f.SubDataType))
                    {
                        subFields.Add(f.SubDataType, new FieldGroupDetailCollection());
                    }
                    subFields[f.SubDataType].Add(f);
                }
            }

            List<SqlParameter> lstParams = new List<SqlParameter>();
            string strWhere = GridManager.GetWhereSql(request, fieldGroup.GroupName, mainFields, lstParams);

            if (fieldGroup.Authority)
            {
                strWhere += GridManager.GetWhereSqlPermission(lstParams);
            }

            StringBuilder mainSql = new StringBuilder("SELECT ");
            foreach (FieldGroupDetail field in mainFields)
            {
                mainSql.AppendFormat("[{0}] AS [{1}],", field.FieldName, field.DisplayName);
            }
            mainSql.Remove(mainSql.Length - 1, 1);
            mainSql.AppendFormat(" FROM {0} AS t", fieldGroup.SourceName);
            mainSql.Append(" WHERE 1=1 ").Append(strWhere);
            if (AccessControl.IsVendor() &&
                (fieldGroup.GroupName.ToUpper() == "VENDORRFQREPORTGRID" ||
                fieldGroup.GroupName.ToUpper() == "SUPPLIERRFQGRID"))
            {
                string uId = AccessControl.CurrentLogonUser.Uid;
                mainSql.Append(" AND RIGHT(NVARCHAR1, CHARINDEX('-', REVERSE(NVARCHAR1)) - 1) = @UserId");
                lstParams.Add(new SqlParameter("@UserId", uId));
            }

            DataTable mainTable = DbHelperSQL.Query(mainSql.ToString(), lstParams.ToArray()).Tables[0].Copy();
            mainTable.TableName = "Primary";
            ds.Tables.Add(mainTable);

            StringBuilder subSql = new StringBuilder();
            foreach (KeyValuePair<string, FieldGroupDetailCollection> kv in subFields)
            {
                subSql.Clear();
                subSql.Append("SELECT ");
                foreach (FieldGroupDetail field in relationFields)
                {
                    subSql.AppendFormat("t1.[{0}] AS [{1}],", field.FieldName, field.DisplayName);
                }
                foreach (FieldGroupDetail field in kv.Value)
                {
                    subSql.AppendFormat("t2.[{0}] AS [{1}],", field.FieldName, field.DisplayName);
                }
                subSql.Remove(subSql.Length - 1, 1);
                subSql.AppendFormat(" FROM {0} t1, SGP_SubData t2 WHERE t1.{1}=t2.EntityID AND EntityName = '{2}' {3}", fieldGroup.SourceName, fieldGroup.SourceKey, kv.Key, strWhere);
                DataTable subTable = DbHelperSQL.Query(subSql.ToString(), lstParams.ToArray()).Tables[0].Copy();
                subTable.TableName = kv.Key;
                ds.Tables.Add(subTable);
            }

            RenderType rt = request.QueryString["renderType"] == "2" ? RenderType.Vertical : RenderType.Horizontal;

            return ExcelHelper.DataSetToExcel(ds, rt);
        }
示例#3
0
文件: GroupData.cs 项目: rivernli/SGP
        public static string GetExportDataForVVI(HttpRequestBase request, FieldGroup fieldGroup)
        {
            DataSet ds = new DataSet();
            FieldGroupDetailCollection fields = fieldGroup.GetFieldsByUser(AccessControl.CurrentLogonUser.Uid);
              //  FieldGroupDetailCollection mainFields = new FieldGroupDetailCollection();
            FieldGroupDetailCollection allFields = new FieldGroupDetailCollection();
               // Dictionary<string, FieldGroupDetailCollection> subFields = new Dictionary<string, FieldGroupDetailCollection>();

            string strSql = GridManager.GetQuerySql(fieldGroup.SourceName, fieldGroup.GetFieldsByUser(AccessControl.CurrentLogonUser.Uid));

            FieldGroupDetailCollection relationFields = new FieldGroupDetailCollection();
            if (!String.IsNullOrEmpty(fieldGroup.SubRelationFields))
            {
                string[] rfa = fieldGroup.SubRelationFields.Split(',');
                if (rfa != null && rfa.Length > 0)
                {
                    foreach (string rf in rfa)
                    {
                        FieldGroupDetail rfd = fields.Find(t => String.Compare(t.FieldName, rf.Trim(), true) == 0);
                        if (rfd != null)
                        {
                            relationFields.Add(rfd);
                        }
                    }
                }
            }

            foreach (FieldGroupDetail f in fields)
            {
                allFields.Add(f);
            }

            List<SqlParameter> lstParams = new List<SqlParameter>();
            string strWhere = GridManager.GetWhereSql(request, fieldGroup.GroupName, allFields, lstParams);

            if (fieldGroup.Authority)
            {
                strWhere += GridManager.GetWhereSqlPermission(lstParams);
            }

            StringBuilder mainSql = new StringBuilder("SELECT ");
            foreach (FieldGroupDetail field in allFields)
            {
                mainSql.AppendFormat("[{0}] AS [{1}],", field.FieldName, field.DisplayName);
            }
            mainSql.Remove(mainSql.Length - 1, 1);
            mainSql.AppendFormat(" FROM {0} AS t", fieldGroup.SourceName);
            mainSql.Append(" WHERE 1=1 ").Append(strWhere);
            DataTable mainTable = DbHelperSQL.Query(mainSql.ToString(), lstParams.ToArray()).Tables[0].Copy();
            mainTable.TableName = "Primary";
            ds.Tables.Add(mainTable);

            //StringBuilder subSql = new StringBuilder();
            //foreach (KeyValuePair<string, FieldGroupDetailCollection> kv in subFields)
            //{
            //    subSql.Clear();
            //    subSql.Append("SELECT ");
            //    foreach (FieldGroupDetail field in relationFields)
            //    {
            //        subSql.AppendFormat("t1.[{0}] AS [{1}],", field.FieldName, field.DisplayName);
            //    }
            //    foreach (FieldGroupDetail field in kv.Value)
            //    {
            //        subSql.AppendFormat("t2.[{0}] AS [{1}],", field.FieldName, field.DisplayName);
            //    }
            //    subSql.Remove(subSql.Length - 1, 1);
            //    subSql.AppendFormat(" FROM {0} t1, SGP_SubData t2 WHERE t1.{1}=t2.EntityID AND EntityName = '{2}' {3}", fieldGroup.SourceName, fieldGroup.SourceKey, kv.Key, strWhere);
            //    DataTable subTable = DbHelperSQL.Query(subSql.ToString(), lstParams.ToArray()).Tables[0].Copy();
            //    subTable.TableName = kv.Key;
            //    ds.Tables.Add(subTable);
            //}

            RenderType rt = request.QueryString["renderType"] == "2" ? RenderType.Vertical : RenderType.Horizontal;

            return ExcelHelper.DataSetToExcel(ds, rt);
        }
示例#4
0
        public static string GetWhereSql(HttpRequestBase request, string groupName, FieldGroupDetailCollection fields, List<SqlParameter> listParames)
        {
            string strWhere = "";
            foreach (FieldGroupDetail field in fields)
            {
                strWhere += GetWhereOperational(request.QueryString, field, listParames, groupName);
            }

            strWhere += GetWhereSqlExt(request, groupName, listParames);

            return strWhere;
        }
示例#5
0
        public static string GetQuerySql(string sourceName, FieldGroupDetailCollection fieldGroupDetails, params string[] extFields)
        {
            StringBuilder sqlBuilder = new StringBuilder("SELECT ");

            if (extFields != null)
            {
                foreach (string extField in extFields)
                {
                    if (!String.IsNullOrEmpty(extField) && fieldGroupDetails[extField] == null)
                    {
                        sqlBuilder.AppendFormat("{0},", extField);
                }
            }
            }

            foreach (FieldGroupDetail field in fieldGroupDetails)
            {
                if (String.IsNullOrEmpty(field.SubDataType))
                {
                    if (field.DataType == FieldInfo.DATATYPE_SUMMARY)
                    {
                        sqlBuilder.AppendFormat("({0}) AS {1},", field.KeyValueSource, field.FieldName);
                    }
                    else
                    {
                        sqlBuilder.AppendFormat("{0},", field.FieldName);
                    }

                }
            }
            sqlBuilder.Remove(sqlBuilder.Length - 1, 1);
            sqlBuilder.AppendFormat(" FROM {0} AS t", sourceName);
            return sqlBuilder.ToString();
        }
示例#6
0
        /// <summary>
        /// Get filtered RFQ data for supplier 
        /// </summary>
        /// <param name="request"></param>
        /// <param name="strSql"></param>
        /// <param name="auth"></param>
        /// <param name="fields"></param>
        /// <returns></returns>
        public static GridData GetGridData(HttpRequestBase request, string strSql, bool auth, FieldGroupDetailCollection fields)
        {
            string strWhere = "";
            List<SqlParameter> listParames = new List<SqlParameter>();
            string searchGroupName = request.QueryString["searchGroup"];
            if (!String.IsNullOrEmpty(searchGroupName))
            {
                strWhere += GetWhereSql(request, searchGroupName, listParames);
            }

            if (auth)
            {
                strWhere += GetWhereSqlPermission(listParames);
            }

            ///
            foreach (FieldGroupDetail field in fields)
            {
                if (field.DisplayName.ToUpper() == "RFQ NUMBER")
                {
                    string fieldName = field.FieldName;
                    string uId = AccessControl.CurrentLogonUser.Uid;
                    strWhere += string.Format(" AND RIGHT({0}, CHARINDEX('-', REVERSE({0})) - 1) = @UserId",
                                                fieldName);
                    listParames.Add(new SqlParameter("@UserId", uId));
                    break;
                }
            }

            if (strWhere != "")
            {
                strSql += " WHERE 1= 1" + strWhere;
            }
            return GetGridData(request, strSql, listParames.ToArray());
        }