static public void PopulateHiPattern(string sql,ref UltraTree utree,string key)
{
DataView dvResults;
utree.BeginUpdate();
dvResults = new DataView(local.FillDT(sql));
string sortstr = "";
UltraTreeNode utn;
int ColumnCount = dvResults.Table.Columns.Count - 1;
int i1;
foreach(DataColumn dc in dvResults.Table.Columns)
{
sortstr += dc.ColumnName + ",";
}
i1 = 0;
int keyloc = -1;
foreach (DataColumn dc in dvResults.Table.Columns)
{
if (key == dc.ColumnName)
keyloc = i1;
i1++;
}
if (keyloc == -1)
throw new Exception("No keymatched");
sortstr = sortstr.Remove(sortstr.Length - 1);
dvResults.Sort = sortstr;
UltraTreeNode [] utna;
utna = new UltraTreeNode[ColumnCount];
string [] prev;
prev = new string[ColumnCount];
for (int i = 0; i < ColumnCount; i++)
{
prev[i] = "init1234init!@#$";
}
foreach (DataRowView drv in dvResults)
{
for (int i = 0; i < ColumnCount; i++)
{
if (drv[i].ToString() != prev[i])
{
if (i == 0)
{
utn = new UltraTreeNode(drv[i].ToString());
utree.Nodes.Add(utn);
utna[i] = utn;
}
else
{
utn = new UltraTreeNode(drv[i].ToString());
if(i+1 == ColumnCount)
{
utn.Tag = drv[i+1].ToString(); //put key in here.
}
utna[i - 1].Nodes.Add(utn);
utna[i] = utn;
}
}
}
for (int i = 0; i < ColumnCount; i++)
{
prev[i] = drv[i].ToString();
}
}
utree.EndUpdate();
}
Thursday, September 20, 2007
Subscribe to:
Posts (Atom)