Сортировка с одной таблицей
Извините, если уже обсуждалось.
1) Имеем одну таблицу с полями R1,R2,R3 и т.д. Создаем новый диалог в дизайнере, тащим на него R1 для выбора фильтра
Все работает, но когда в поле R1, например присутствует 30 значений "пример", 40 значений "пример2" , в диалоге показываются все 70 значений.
Как показать в списке фильтра 2 значения - "пример" и "пример2"? Типа сгруппировать
2) Имеем одну таблицу с полями R1,R2,R3 и т.д.
R2-Date
R3-string
R4-string
.....
R55 string
Как правильно передать в отчет несколько параметров для фильтра и в самом отчете это указать,
если нужно чтобы R2 попадал в диапазон дат (от и до включительно), R3 было равно некой строке?
3)По принудительной локализации видел тему, для VB.NET подскажите плиз кусок кода
1) Имеем одну таблицу с полями R1,R2,R3 и т.д. Создаем новый диалог в дизайнере, тащим на него R1 для выбора фильтра
Все работает, но когда в поле R1, например присутствует 30 значений "пример", 40 значений "пример2" , в диалоге показываются все 70 значений.
Как показать в списке фильтра 2 значения - "пример" и "пример2"? Типа сгруппировать
2) Имеем одну таблицу с полями R1,R2,R3 и т.д.
R2-Date
R3-string
R4-string
.....
R55 string
Как правильно передать в отчет несколько параметров для фильтра и в самом отчете это указать,
если нужно чтобы R2 попадал в диапазон дат (от и до включительно), R3 было равно некой строке?
3)По принудительной локализации видел тему, для VB.NET подскажите плиз кусок кода
Комментарии
По принудительной локализации:
Res.LoadLocale("Russian.frl");
Imports FastReport.Utils
и
Res.LoadLocale("Russian.frl")
получилось, спасибо!
Визуально - получается и работает.
Мне кодом нужно.
Ну и вдогонку - какой символ в фильтре поставить, чтобы все значения попали.
Чтобы попали все значения, фильтр надо отключить. Можно поставить контролу Enabled = false.
R2-Date
R3-string
R4-string
.....
R55 string
Как правильно передать в отчет несколько параметров для фильтра и в самом отчете это указать,
если нужно чтобы R2 попадал в диапазон дат (от и до включительно), R3 было равно некой строке?
Т.е.
в коде программы, вызывающей отчет я пишу примерно так
report1.load
Report1.SetParameterValue("ParamR3", "test")
задаю параметры для дат
в отчете у меня есть переменные ParamR3 и т.п.
как в самом отчете это указать,
если нужно чтобы R2 попадал в диапазон дат (от и до включительно), R3 было равно некой строке
фактически - выражение фильтрации для бэнда "Данные"
но есть момент: для R3 может указываться конкретное значение или все данные
[Table.R2] >= [ParamR2Start] && [Table.R2] <= [ParamR2End] && (bool)IIf(String.IsNullOrEmpty([ParamR3]), true, [Table.R3] == [ParamR3])
(если для отчета выбран язык VB, это надо переписать на VB)
Если ParamR3 пустой, будут выбраны все данные.
бум пробовать
спасибо за оперативность!
приятно работать с Вами и Вашим продуктом
[Table.R2] >= [ParamR2Start] && [Table.R2] <= [ParamR2End] && (bool)IIf(String.IsNullOrEmpty([ParamR3]), true, [Table.R3] == [ParamR3])
Более подробно - имеем простую таблицу с полями [P1],[P2],[P3],[P4],[P5]
[Param1] = или "*" или значение, если "*" - то выбрать все значения по полю [P1]
[Param2] - если False, то берем все значения по полям [P3] и [P4]
если True, то выбираем по параметру [Param3] поля [P3]
и по параметру [Param4] поля [P4]
[Date1] - просто дата начала по полю [P5]
[Date2] - просто дата окончания по полю [P5]
Все это выражение могу передать из программы, но пока не воспринимает.
По 1 вопросу хотелось бы увидеть изменения.
Просто очень много однотипных баз, с одинаковыми таблицами,
добавление еще одной таблицы ради отчета не хотелось бы.
А с виртуальной таблицей, содержащей группировку - выводит на форме, но не фильтрует в отчете
Спасибо.
Прежде чем запостить это в форум, я проверил работу на отчете из демо. Все работает как положено.
Используйте ф-ю IIf для проверки таких условий, по аналогии с тем что написал я:
(bool)IIf([Param1] == "*", true, [Table.P1] == [Param1]) && (bool)IIf([Param2] == false, true, [Table.P3] == [Param3] && [Table.P4] == [Param4]) && [Table.P5] >= [Date1] && [Table.P5] <= [Date2]
Версия, в которой это исправлено, соберется через 20 минут.
Первый вопрос снят окончательно - все работает, огромное спасибо!
А реально из программы добраться до
Data Sources - Connection - Table -SelectCommand, и поменять SelectCommand ?
Когда в таблице колтчество записей больше миллиона, предварительный фильтр сыграл бы свою роль
TableDataSource table = report.GetDataSource("MyTable") as TableDataSource;
table.SelectCommand = "...";
все отлично работает и скорость теперь нормальная.
Спасибо
с миллионами записей работает нормально!