|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
fastreport v4.0 передача списка параметров
Вообщем нужно реализовать в запросе
Код:
select * from table where T_field in (:param) тут я пытаюсь передать в качестве параметра список типа 1,2,45,7 проблема в том, что при вставке параметра FastReport, руководствуясь какими-то своими побуждениями превращает ее в '1.2.45.7' (ладно '' , но , в . зачем превращать - тайна покрытая мраком),что трактуется в последствии не как список целых чисел, а как неизвестная хрень. Пытался менять тип параметра, менять запрос в скрипте(может не на том событии пытался...хотя на каком только не пытался) и много других извращений. Думаю, как вариант, попробовать в самой программе до формирования отчета создать для каждого запроса в нем по отдельной выборке,или даже попытатся заставить отчет юзать запросы самой програмы но стремно как то пихать лишних 10 элементов на форму. Мучаюсь с проблемой хоть и время от времени, но довольно давно, так что было бы здорово почитать чьи-нибудь идеи по этому поводу. |
#2
|
|||
|
|||
Параметр воспринимается как число, и в настройках, скорее всего, в качестве разделителя дробной части чисел стоит '.', поэтому запятые автоматически преобразуются в точки.
Таким образом передать в параметр запроса множество не получится. Попробуйте вот так: PHP код:
|
#3
|
||||
|
||||
Ну вот это в делфи да, будет текстом запроса, отлично работающим, а проблема именно в глумлении Fastreport над передаваемыми ему параметрами.
|
#4
|
||||
|
||||
Up ^^ а то бида)
|
#5
|
||||
|
||||
Может в Excel тогда раз FastReport не робит?
Глаза боятся - Руки делают... А еще я не внимательный... |
#6
|
||||
|
||||
Эксель не прокатит, в проекте на fr4 все отчеты.
|
#7
|
||||
|
||||
ВНЕЗАПНО.
ап. |
#8
|
||||
|
||||
сохранить в виде строки '1,2,3' и потом вызвать:
Код:
Add('Select * From Table where TField In ('+:param +')'); |
#9
|
||||
|
||||
Правильно, зачем читать текст вопроса)
|
#10
|
||||
|
||||
Правильно, зачем читать текст ответа. Если вы передаете СТРОКУ, то она вообщем- то никак не должна модифицироваться. Покажите, как вы передаете список типа 1,2,45,7.
|
#11
|
||||
|
||||
В кавычках строка передавалась тоже. А вообще фр ставит их автоматически для параметров соответствующего типа.
|
#12
|
||||
|
||||
Только что специально проверил- так как я сказал, работает. Где ваш код?
|
#13
|
||||
|
||||
А смысл, если код на делфи, а проблема в ФР?)
А вот юзание этого вашего ADD в скрипте отчета по событию BeforePrint, конечно дает результат... Код:
worckdays.sql.Add('and g_otd In ('+<otdelz>+')group by g_rid'); ...правда тогда придется перелопачивать все запросы в отчетах и писать намного больше, чем если бы удалось настроить там нормальную передачу родных параметров.Но на крайняк, вариант. а вообще по хорошему параметры туда передаются как то так: Код:
report.variables['var']:=''''+s+''''; И передаются в один из внутренних запросов как параметр Код:
where blablabla in (:var) только при их чтении и возникают описанные выше ошибки. Последний раз редактировалось anonymous, 27.05.2011 в 18:21. |