Страница 1 из 1
Сохранение информации в xml файл
Добавлено: 13 май 2010, 08:53
Наталья
При запуске на формирование отчета запускает форма, на которой предложено в поля типа TextBoxControl ввести некоторый текст. После чего нажимается кнопка Просмотр и отчет строится. Возможно ли как-то сохранить эту введенную информацию, например, в xml файле? Чтобы при следующем запуске этого же отчета из xml файла подгружались ранее сохраненные данные.
Спасибо.
Сохранение информации в xml файл
Добавлено: 13 май 2010, 13:13
Леонид
Какое отношение сохранение введённых данных в компонентах имеет к отчётной системе?!
Абсолютно рабочий пример я набросал Вам, скачайте его и посмотрите.
Если хотите сохранять введённые значения, из полей формы именно отчёта можно использовать, например такой способ:
В форме отчёта на событие LoadForm создаёте следующий код:
// create table
DataTable dtSettings = new DataTable("Settings");
SettingsTable = dtSettings; // save datatable in form tag (to use it in other events)
// create columns
DataColumn col1 = new DataColumn("text_box1");
DataColumn col2 = new DataColumn("text_box2");
DataColumn col3 = new DataColumn("text_box3");
// add columns to datatable
dtSettings.Columns.AddRange(new DataColumn[] { col1, col2, col3 });
// create a row
DataRow rowSettings = dtSettings.NewRow();
dtSettings.Rows.Add(rowSettings); // add the row to the table
// define file name
const string fileName = @"c:\temp\settings.xml";
FileName = fileName; // save file name to variable
if (System.IO.File.Exists(fileName)) // check for file existance
{
dtSettings.Rows.Clear(); // drop rows data
dtSettings.ReadXml(fileName); // read data from xml file
}
if (dtSettings.Rows.Count == 1)
{
DataRow row = dtSettings.Rows[0]; // get row
// fill up the controls with data
TextBox1.Text = row["text_box1"].ToString();
TextBox2.Text = row["text_box2"].ToString();
TextBox3.Text = row["text_box3"].ToString();
}
А на событие Click Вашей кнопки "Просмотр" пишете следующий код:
// get table reference
DataTable dtSettings = (DataTable)SettingsTable;
if (dtSettings.Rows.Count == 1)
{
DataRow row = dtSettings.Rows[0]; // get row
// set row data
row["text_box1"] = TextBox1.Text;
row["text_box2"] = TextBox1.Text;
row["text_box3"] = TextBox1.Text;
// save settings to file
dtSettings.WriteXml(FileName);
}
Промежуточная переменная SettingsTable типа object используется для хранения ссылки на созданный в событии LoadForm объекта DataTable, чтобы, потом использовать эту таблицу в других событиях (в данном случае в событии Click кнопки).
Переменную FileName используем для хранения информации о пути к файлу настроек.
Сохранение информации в xml файл
Добавлено: 14 май 2010, 09:40
Наталья
Спасибо за помощь.
Не могу открыть присланный файл, может быть, различия версий StimulSoft, ошибка
"Value cannot be null.
Parameter name: nullableType"
Сохранение информации в xml файл
Добавлено: 14 май 2010, 10:39
Леонид
Странно, ну может и версия.
В любом случае, проверить можете так. Создайте пустой отчёт. Создайте форму в отчёте. Бросьте на неё 3 TextBox'а с именами TextBox1, TextBox2 и TextBox3 для простоты. Ниже этих трёх элементов создайте кнопку.
В событие FormLoad впишите код (см. предыдущий пост):
// create table
DataTable dtSettings = new DataTable("Settings");
SettingsTable = dtSettings; // save datatable in form tag (to use it in other events)
// create columns
DataColumn col1 = new DataColumn("text_box1");
..................................................................
..................................................................
..................................................................
TextBox2.Text = row["text_box2"].ToString();
TextBox3.Text = row["text_box3"].ToString();
}
В событие Click кнопки впишите код (см. предыдущий пост):
// get table reference
DataTable dtSettings = (DataTable)SettingsTable;
..................................................................
А также создайте две переменные:
1) SettingsTable, тип object, её можно не инициализировать, т.к. она инициализируется в событии FormLoad.
2) FileName, тип string, установите значение какого-нибудь пути, например, "c:\\temp\settings.xml".
Должно работать, попробуйте.
Сохранение информации в xml файл
Добавлено: 17 май 2010, 04:43
Наталья
Да, работает.
Спасибо :biggrin: