Esempio n. 1
0
		public void Split(string fieldName, string captionName, params string[] args)
		{
			DataSlot dataset = new DataSlot();
			DataSlotCollection rows = this["rows"] as DataSlotCollection;
			if (rows == null || rows.Count < 1)
			{
				return;
			}
			DataSlot prevRow = rows[0];
			object prevValue = prevRow[fieldName];
			DataSlotCollection temp = new DataSlotCollection();
			foreach (DataSlot i in rows)
			{
				object v = i[fieldName];
				if (!Equals(v, prevValue))
				{
					AddPreviousCategory(captionName, dataset, prevRow, temp, args);
					temp = new DataSlotCollection();
					prevRow = i;
					prevValue = v;
				}
				temp.Add(i);
			}
			AddPreviousCategory(captionName, dataset, prevRow, temp, args);
			this["dataset"] = dataset;
			Remove("rows");
		}
Esempio n. 2
0
		private static void AddPreviousCategory(string captionName, DataSlot dataset, DataSlot prevRow, DataSlotCollection temp, params string [] args)
		{
			DataSlot data = dataset.Set<DataSlot>(Convert.ToString(prevRow[captionName]));
			foreach (string i in args)
			{
				string[] item = i.Split('=');
				if (item.Length == 1 && prevRow.ContainsKey(item[0]))
				{
					data[i] = prevRow[item[0]];
				}
				else if (item.Length > 1)
				{
					string key = item[0];
					item[0] = string.Empty;
					data[key] = string.Join("=", item).Substring(1);
				}
			}
			data["rows"] = temp;
		}