Замещение значений
Замещение значений
День добрый - проблема такая.
Мне нужно, в каждом поле отчета, где выводится "-1" вместо этого выводить строку "неизвестно"
Cуществует ли способ сделать это, неважно в отчете или в коде, без переписывания запросов
и внесения изменений в каждый текстбокс отчета.
Что-то вроде - получили доступ через код к ячейке с текстом-взяли ее данные - проверили - при необходимости заменили
Спасибо
Мне нужно, в каждом поле отчета, где выводится "-1" вместо этого выводить строку "неизвестно"
Cуществует ли способ сделать это, неважно в отчете или в коде, без переписывания запросов
и внесения изменений в каждый текстбокс отчета.
Что-то вроде - получили доступ через код к ячейке с текстом-взяли ее данные - проверили - при необходимости заменили
Спасибо
Замещение значений
Здравствуйте,
Можно использовать такое выражение:
Спасибо.
Можно использовать такое выражение:
Код: Выделить всё
{MyDataSource.Column == -1 ? "Неизвестно" : MyDataSource.Column.ToString()}
Замещение значений
Jan писал(а):Здравствуйте,
Можно использовать такое выражение:
Спасибо.Код: Выделить всё
{MyDataSource.Column == -1 ? "Неизвестно" : MyDataSource.Column.ToString()}
а как сделать это через код приложения?
Column имеет тип StiDataColumn, и присвоить ему string невозможно;
DataSources объявлены в самом отчете.
Замещение значений
Здравствуйте,
Это невозможно сделать для колонок в источнике данных. В приведенном примере замена осуществляется в самом текстовом выражении. Как вариант можно сделать так. В коде отчета (закладка Код в дизайнере) создайте функцию, например:
После этого эту функцию можно использовать в выражении:
а переменная MyVariableAllow будет являться условием, которое включает/выключает необходимое преобразование. Вам остается только установить значение этой переменной перед запуском отчета:
Спасибо.
Это невозможно сделать для колонок в источнике данных. В приведенном примере замена осуществляется в самом текстовом выражении. Как вариант можно сделать так. В коде отчета (закладка Код в дизайнере) создайте функцию, например:
Код: Выделить всё
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Data;
using Stimulsoft.Controls;
using Stimulsoft.Base.Drawing;
using Stimulsoft.Report;
using Stimulsoft.Report.ReportControls;
using Stimulsoft.Report.Components;
namespace Reports
{
public class SimpleList : Stimulsoft.Report.StiReport
{
public string Convert(int value)
{
if (!MyVariableAllow)return value.ToString();
if (value == -1)return "Неизвестно";
return value.ToString();
}
Код: Выделить всё
{Convert(MyDataSource.Column)}
Код: Выделить всё
StiReport report = new StiReport();
report.Load("MyReport.mrt");
report.RegData(myDataSet);
report.Compile();
report["MyVariableAllow"] = true;
report.Show();
Спасибо.
Замещение значений
А, я немного неверно вас понял.Jan писал(а):Здравствуйте,
Можно использовать такое выражение:
Спасибо.Код: Выделить всё
{MyDataSource.Column == -1 ? "Неизвестно" : MyDataSource.Column.ToString()}
Но такой блок кода придется использовать в каждой databound ячейке.
Вопрос - можно ли сделать что-то вроде
foreach(var textField in )
{
if(textField.Text="-1" textField.Text="-";
}
Замещение значений
Здравствуйте,
Нет. К сожалению, так не получится.
Спасибо.
Нет. К сожалению, так не получится.
Спасибо.
Замещение значений
Жаль, очень жаль.Jan писал(а):Здравствуйте,
Нет. К сожалению, так не получится.
Спасибо.
Хотелось бы увидеть такой функционал