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

StiTextEditorEventArgs

Добавлено: 05 дек 2011, 07:57
Trv
Добрый день.
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

Добавлено: 05 дек 2011, 12:03
HighAley
Здравствуйте.
Trv писал(а):1. Я хочу запоминать изменения, которые пользователь делает в режиме "Редактирование". Для этого я подписался на событие TextEditorClose.
Новое значение текста можно получить без проблемы: string newText = e.TextBox.Text в событии private void stiViewerControl1_TextEditorOpen(object sender, Stimulsoft.Report.Viewer.StiTextEditorEventArgs e)
Но как получить название текстового поля, в котором произошло это событие?
e.TextBox.Name возвр. пустое значение
Мы исправили данную проблему. В нашем следующем билде на следующей неделе 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"]= "Мой текст";
изменяет значение переменной в откомпилированном отчёте. Если после изменения вызывать метод Show(), ты вы увидите новое значение. Однако метод Design() перекомпилирует отчёт, когда вы его просматриваете, и использует значение переменной по умолчанию.

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

stiReport1.Dictionary.Variables["Period"].Value = "Мой текст";
Изменяет значение по умолчанию, и данный вариант сработает в любом случае.

Спасибо.

StiTextEditorEventArgs

Добавлено: 05 дек 2011, 13:40
Trv
Мы исправили данную проблему. В нашем следующем билде на следующей неделе e.TextBox.Name будет возвращать имя компонента.
Спасибо. Буду ждать.
изменяет значение переменной в откомпилированном отчёте. Если после изменения вызывать метод Show(), ты вы увидите новое значение. Однако метод Design() перекомпилирует отчёт, когда вы его просматриваете, и использует значение переменной по умолчанию.
Я вызываю метод stiReport1.Render(true), а не 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

Добавлено: 06 дек 2011, 10:21
HighAley
Здравствуйте.
Trv писал(а):Я вызываю метод stiReport1.Render(true), а не Design()
Извините, перепутал методы. Ваш первый вариант проверили, всё работает.

Спасибо.