Добрый день.
1. Я хочу запоминать изменения, которые пользователь делает в режиме "Редактирование". Для этого я подписался на событие TextEditorClose.
Новое значение текста можно получить без проблемы: string newText = e.TextBox.Text в событии private void stiViewerControl1_TextEditorOpen(object sender, Stimulsoft.Report.Viewer.StiTextEditorEventArgs e)
Но как получить название текстового поля, в котором произошло это событие?
e.TextBox.Name возвр. пустое значение
2. Перешел на версию 2011.3.1200.0
Перестал работать след. код:
stiReport1.Compile();
stiReport1["Period"]= "Мой текст";
stiReport1.Render(true);
Ошибки не происходит, но значение в отчете не меняется
Обошел проблему таким образом:
stiReport1.Compile();
stiReport1.Dictionary.Variables["Period"].Value = "Мой текст";
stiReport1.Render(true);
Работаю на Windows 7 Prof x64
StiTextEditorEventArgs
StiTextEditorEventArgs
Здравствуйте.
изменяет значение переменной в откомпилированном отчёте. Если после изменения вызывать метод Show(), ты вы увидите новое значение. Однако метод Design() перекомпилирует отчёт, когда вы его просматриваете, и использует значение переменной по умолчанию.
Изменяет значение по умолчанию, и данный вариант сработает в любом случае.
Спасибо.
Мы исправили данную проблему. В нашем следующем билде на следующей неделе e.TextBox.Name будет возвращать имя компонента.Trv писал(а):1. Я хочу запоминать изменения, которые пользователь делает в режиме "Редактирование". Для этого я подписался на событие TextEditorClose.
Новое значение текста можно получить без проблемы: string newText = e.TextBox.Text в событии private void stiViewerControl1_TextEditorOpen(object sender, Stimulsoft.Report.Viewer.StiTextEditorEventArgs e)
Но как получить название текстового поля, в котором произошло это событие?
e.TextBox.Name возвр. пустое значение
Trv писал(а):2. Перешел на версию 2011.3.1200.0
Перестал работать след. код:
stiReport1.Compile();
stiReport1["Period"]= "Мой текст";
stiReport1.Render(true);
Ошибки не происходит, но значение в отчете не меняется
Обошел проблему таким образом:
stiReport1.Compile();
stiReport1.Dictionary.Variables["Period"].Value = "Мой текст";
stiReport1.Render(true);
Работаю на Windows 7 Prof x64
Код: Выделить всё
stiReport1["Period"]= "Мой текст";
Код: Выделить всё
stiReport1.Dictionary.Variables["Period"].Value = "Мой текст";
Спасибо.
StiTextEditorEventArgs
Спасибо. Буду ждать.Мы исправили данную проблему. В нашем следующем билде на следующей неделе e.TextBox.Name будет возвращать имя компонента.
Я вызываю метод stiReport1.Render(true), а не Design()изменяет значение переменной в откомпилированном отчёте. Если после изменения вызывать метод Show(), ты вы увидите новое значение. Однако метод Design() перекомпилирует отчёт, когда вы его просматриваете, и использует значение переменной по умолчанию.
в любом случае, тогда поправьте в Stimulsoft_Reports.Net_FAQ.En.chm:
How to send parameters for an SQL query by application?
1. You can use an expression to form any part in an SQL query. First, you add variables to the SQL query:
select * from customers where code = {myvariable}
2. You need to create a variable in the Report Dictionary.
3. You need to initialize the variable before report running:
C#
StiReport report = new StiReport();
rreport.Load("Variables.mrt");
report.Compile();
//Set Variable
report["myvariable"] = 123;
report.Render();
StiTextEditorEventArgs
Здравствуйте.
Спасибо.
Извините, перепутал методы. Ваш первый вариант проверили, всё работает.Trv писал(а):Я вызываю метод stiReport1.Render(true), а не Design()
Спасибо.