Страница 1 из 1

Как правильно передать значения переменных в дизайнер?

Добавлено: 10 авг 2009, 10:36
fantomus
Здравствуйте.

Мне нужно передать в дизайнер из внешней формы значения переменных.

Делаю так:

Код: Выделить всё

stiReport1.Load("..\\..\\Variables.mrt");
stiReport1.Dictionary.Variables["Name"].Value = tbName.Text;
stiReport1.Dictionary.Variables["Sex"].ValueObject = rbMale.Checked;
stiReport1.Dictionary.Variables["BirthDay"].ValueObject = dtBirthDay.Value; // Ошибка
stiReport1.Design();
В данном случае неправильно работает переменная типа DateTime.
Как правильно это сделать?


Спасибо.

Как правильно передать значения переменных в дизайнер?

Добавлено: 10 авг 2009, 11:10
Ivan
Здравствуйте.
fantomus писал(а):Мне нужно передать в дизайнер из внешней формы значения переменных.
Делаю так:

Код: Выделить всё

stiReport1.Load("..\\..\\Variables.mrt");
stiReport1.Dictionary.Variables["Name"].Value = tbName.Text;
stiReport1.Dictionary.Variables["Sex"].ValueObject = rbMale.Checked;
stiReport1.Dictionary.Variables["BirthDay"].ValueObject = dtBirthDay.Value; // Ошибка
stiReport1.Design();
В данном случае неправильно работает переменная типа DateTime.
Как правильно это сделать?
Опишите пожалуйста подробнее, что именно не работает или работает неправильно?
Какое сообщение об ошибке появляется?
Может быть вы в словаре не указали тип переменной (datetime) ?

Спасибо.

Как правильно передать значения переменных в дизайнер?

Добавлено: 10 авг 2009, 11:31
fantomus
Я использовал ваш пример "Variables".
В словаре тип переменной datetime указан.

Полный вариант обработчика для кнопки "Design":

Код: Выделить всё

private void button1_Click(object sender, System.EventArgs e)
{
  stiReport1.Load("..\\..\\Variables.mrt");

  stiReport1.Dictionary.Variables["Name"].Value = tbName.Text;
  stiReport1.Dictionary.Variables["Surname"].Value = tbSurname.Text;
  stiReport1.Dictionary.Variables["Email"].Value = tbEmail.Text;
  stiReport1.Dictionary.Variables["Address"].Value = tbAddress.Text;
  stiReport1.Dictionary.Variables["Sex"].ValueObject = rbMale.Checked;
  stiReport1.Dictionary.Variables["BirthDay"].ValueObject = dtBirthDay.Value;

  stiReport1.Design();
}
Запускаю программу. Нажимаю "Design". Нажимаю в дизайнере предварительный просмотр.
Текст ошибки: c:\WINDOWS\Temp\ftgzvo9k.0.cs(162,39) : error CS1002: ; expected

Вот что в коде отчета:

Код: Выделить всё

        private void InitializeComponent()
        {
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "Name", "Name", typeof(string), "Name", false, false));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "Surname", "Surname", typeof(string), "Surname", false, false));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "Email", "E-mail", typeof(string), "name@domain.com", false, false));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "Address", "Address", typeof(string), "Address", false, false));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "BirthDay", "BirthDay", typeof(DateTime), "8/10/2009 3:27:47 PM", false, true));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "Sex", "Sex", typeof(bool), "true", false, false));
            this.Dictionary.Variables.Add(new Stimulsoft.Report.Dictionary.StiVariable("Category", "DecimalVar", "DecimalVar", typeof(decimal), "125.35", false, false));
            this.NeedsCompiling = false;
            // Variables init
            // Variables init
            this.Name = "Name";
            this.Surname = "Surname";
            this.Email = "name@domain.com";
            this.Address = "Address";
            this.BirthDay = 8/10/2009 3:27:47 PM; // ОШИБКА
            this.Sex = true;
            this.DecimalVar = 125.35m;
            this.EngineVersion = Stimulsoft.Report.Engine.StiEngineVersion.EngineV1;
...

Как правильно передать значения переменных в дизайнер?

Добавлено: 10 авг 2009, 11:53
fantomus
Извиняюсь!

Просмотрел, что в примере в свойствах поля BirthDay стоит галочка "Function".
Убрал. Работает.

Как правильно передать значения переменных в дизайнер?

Добавлено: 10 авг 2009, 12:38
Ivan
Здравствуйте.

Дайте нам знать, если вам понадобится ещё какая-нибудь помощь.

Спасибо.