Глюк при программном добавлении переменных в отчёт
Добавлено: 27 дек 2010, 12:10
Глюк при программном добавлении переменных в отчёт.
При передаче переменных в отчёт и назначении им категорий, категории и переменные не отображаются в словаре (flash-дизайнер). Но если сохранить этот отчёт на диске и открыть его windows-дизайнером всё отображается как нужно.
Если это не глюк, то как правильно назначать категории.
Код для примерно такой:
При передаче переменных в отчёт и назначении им категорий, категории и переменные не отображаются в словаре (flash-дизайнер). Но если сохранить этот отчёт на диске и открыть его windows-дизайнером всё отображается как нужно.
Если это не глюк, то как правильно назначать категории.
Код для примерно такой:
Код: Выделить всё
protected void Page_Load(object sender, EventArgs e)
{
StiReport r = new StiReport();
if (!IsPostBack)
{
if (TokenReport == null)
return;
if (TokenReport.Report.ID != Guid.Empty)
r.Load(GetReport());
int counter = 0;
r.Dictionary.Variables.Clear();
foreach (AB.Step s in TokenReport.Template.Steps)
{
foreach (AB.Control c in s.Controls)
{
Page p = new Page();
Control loadedControl = p.LoadControl(c.Path);
Hashtable ht = (Hashtable)loadedControl.GetType().GetMethod("GetFieldData").Invoke(loadedControl, new object[] { });
IDictionaryEnumerator de = ht.GetEnumerator();
while (de.MoveNext())
{
StiVariable v = new StiVariable();
v.Type = typeof(String);
v.Description = "Описание";
v.Alias = "Алиас";
v.ReadOnly = false;
string category = "Шаг " + (s.Number).ToString();
v.Category = category;
if (de.Key.ToString()[0] == '_')
v.Name = c.ControlID + de.Key.ToString();
else
v.Name = de.Key.ToString();
r.Dictionary.Variables.Add(v);
}
}
}
try
{
StiWebDesigner1.Design(r);
}
catch (Exception ex)
{
}
}
}