Ejemplo n.º 1
0
        /// <summary>
        /// Пишет записи (данные) в Group 
        /// Если при этом указана агрегатная функция, то она тоже пищется
        /// </summary>
        /// <param name="sql">SQL -схема 1 группировки</param>
        /// <param name="all">Флаг ALL</param>
        /// <param name="from">Параметр откуда будут браться данные</param>
        /// <param name="VarGroupName">Имя переменной (group_) из которой группируются данные</param>
        /// <param name="TrName">Имя узла xsl:value-of select="$" + VarGroupName + "/" + TrName </param>
        /// <param name="t">Тип группировки</param>
		public void GroupValueRec(GroupClassOnce sql, bool all, string from, string VarGroupName, string TrName, TypeFH t)
		{
			int CountValueRec = 0;
			if (t == TypeFH.FOOTER)
				CountValueRec = sql.CountValueRecFooter;
			else
				CountValueRec = sql.CountValueRecHeader;
						
			//Пишем все агрегаты...
			for (int j=0;j< CountValueRec;j++)
			{
				string defTemplate = "#.##";
				//string node = (string) sql.group[idGroup].array[j];
				string node = sql.ValueRec(j,t);
				string node_value = node;
				string func = sql.Func(j,t);
				string fullName = sql.FullName(j,t);

				/*if (sql.FullName!= null && sql.FullName != "")
					node_value = fullName;*/
				
				//tw.WriteLine("<" + node + "><xsl:value-of select=\"" + func + "(current()/" + node + ")\"/></" + node + ">");
				if (all)
					if (fullName!= null && fullName != "")
					{
						if (func != null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "($"+ fullName + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + fullName + "\"/></" + node + ">");
					}
					else
					{
						if (func != null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "("+ from + "/" + TrName + "" + node_value + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"" + from + "/" + TrName + "" + node_value + "\"/></" + node + ">");
					}
				else
				{
					if (fullName!= null && fullName != "")
					{
						if (func!=null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "($" + fullName + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" +  fullName + "\"/></" + node + ">");
					}
					else
					{
						if (func!=null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "(current-group()/" + node_value + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + VarGroupName + "_key_" + node + "\"/></" + node + ">");
					}
				}
			}
		}
Ejemplo n.º 2
0
        /// <summary>
        /// Пишет записи (данные) в Group 
        /// Если при этом указана агрегатная функция, то она тоже пищется
        /// </summary>
        /// <param name="sql">SQL -схема 1 группировки</param>
        /// <param name="all">Флаг ALL</param>
        /// <param name="VarGroupName">Имя переменной (group_) из которой группируются данные</param>
        /// <param name="TrName">Имя узла xsl:value-of select="$" + VarGroupName + "/" + TrName </param>
        /// <param name="t">Тип группировки</param>
		public void GroupValueRec2(GroupClassOnce sql, bool all, string VarGroupName, string TrName, TypeFH t)
		{
						
			//Пишем все агрегаты...
			int CountValueRec = 0;
			if (t == TypeFH.FOOTER)
				CountValueRec = sql.CountValueRecFooter;
			else
				CountValueRec = sql.CountValueRecHeader;

			for (int j=0;j< CountValueRec;j++)
			{
				string defTemplate = "#.##";
				//string node = (string) sql.group[idGroup].array[j];
				string node = sql.ValueRec(j, t);
				string node_value = node;
				string func = sql.Func(j, t);
				string fullName = sql.FullName(j, t);
				if ((fullName == null || fullName == "") && !all)
				{
					//Провереям надохится ли в текущем гроупе все колонки
					int idGroup = sql.IdGroup(j,t);
					if (idGroup!=-1)
					{
                        fullName = "group_" + idGroup.ToString() + "_key_" + node;
					}
				}
				
				if (all)
					if (fullName!= null && fullName != "")
					{
						if (func != null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "($"+ fullName + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + fullName + "\"/></" + node + ">");
					}
					else
					{
						if (func != null && func != "")
							tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "($"+ VarGroupName + "/" + TrName + "" + node_value + "),'" + defTemplate + "')\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + VarGroupName + "/" + TrName + "" + node_value + "\"/></" + node + ">");
						//int uu=0;
					}
				else
				{
					if (fullName!= null && fullName != "")
					{
						if (func!=null && func != "")
                            if (func.ToLower() !="val")
							    tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "($" + fullName + "),'" + defTemplate + "')\"/></" + node + ">");
                            else
                                tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + fullName + "\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" +  fullName + "\"/></" + node + ">");
					}
					else
					{
						if (func!=null && func != "")
                            if (func.ToLower() != "val")
							    tw.WriteLine("<" + node + "><xsl:value-of select=\"format-number(" + func + "(current-group()/" + node_value + "),'" + defTemplate + "')\"/></" + node + ">");
                            else
                                tw.WriteLine("<" + node + "><xsl:value-of select=\"current-group()/" + node_value + "\"/></" + node + ">");
						else
							tw.WriteLine("<" + node + "><xsl:value-of select=\"$" + VarGroupName + "_key_" + node + "\"/></" + node + ">");
					}
				}
			}
		}