|
|
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Имеем DelphiXE, FastReport 5. Пользователь выбирает список товара, для которого будут печататься ценники. Внутри отчета лежит frxFIBQuery такого плана: Код: sql 1. 2. 3. 4. 5. 6. переменная запроса ID_LIST связана с переменной отчета report_param_list. Вопрос знатокам, какого типа должны быть переменные report_param_list и ID_LIST чтобы в отчет можно было передать список значений в виде строки '1, 2, 3', либо динамического/вариантного массива [1, 2, 3]. В виде строки более предпочтительно. Было бы идеально, чтобы в текст запроса передаваемая строка "внедрилась" "... where t.ID IN (1, 2, 3)" как substitute, а не как строковый параметр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 16:26:27 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
romano105, никакого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 16:30:56 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
asviridenkovromano105, никакого. Передаю список из 3-х значений: 1, 2, 3 Если я определяю тип переменной для внутреннего запроса ID_LIST следующими значениями Unknown, String, Array, Bytes, VarBytes, и передаю не обрамляя апострофами, возникает ошибка "qQuery: Ошибка в выражении '1, 2, 3': ';' expected" при обрамлении апострофами - ошибка: SelectQuery: Incompatible column/host variable data type. Dynamic SQL Error. SQL error code = -303. Conversion error from string "1. 2. 3". Пока что остается дальше перебирать перечень типов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 16:51:18 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
romano105Здравствуйте! Имеем DelphiXE, FastReport 5. Пользователь выбирает список товара, для которого будут печататься ценники. Ну динамически можно построить как-то так наверное. Код: plsql 1. 2. 3. 4. 5. 6. 7. Можно макросы в FireDac юзать..... да еще наверное чего можно делать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 17:03:44 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Попробуйте просто передать шестую строчку запроса в TfrxFIBQuery.SQL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 19:25:32 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
gpiПопробуйте просто передать шестую строчку запроса в TfrxFIBQuery.SQL Да, это пока единственный работающий способ. Благодарю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2015, 21:32:56 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Побуду некропостером. Возможно кому-то пригодится мое решение. Оно подходит в тех случаях когда нельзя динамически формировать SQL запрос, но можно задать значения переменных. В этом примере я выбираю несколько филиалов, коды которых передаю в строковом параметре :BRANCH_LIST Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Строка, которая содержит список филиалов выглядит так: "-1-3-66-99-", и в ней 4 филиала с кодами 1,3,66 и 99. Не забывайте, что строковые переменные передаются в FR с кавычками. Остальное думаю и так понятно. Для больших выборок способ будет не эффективен, но в некоторых случаях может подойти. P.S. containing - это фишка Firebird-а, но в других реализациях можно заменить ее на like ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 00:08:45 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
iVaRelaвыглядит так: "-1-3-66-99-" совет стар, как мир :) Лучше вместо тире-дефиса параметры разделять тильдой "~" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 10:36:26 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Дучше диалоговую форму выбора запихнуть в отчёт, тогда и передавать ничего не нужно в отчёт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 10:43:25 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
> Док> совет стар, как мир :) Лучше вместо тире-дефиса параметры разделять тильдой "~" Привет! Я неособый фастрепортист, так, школота. А почему тильде вместо дефиса/минуса? Оно ж - тупо разделитель. Да, тильда много реже минуса применяется. Или в FR только односимвольный разделитель возможен? Почему не использовать свой шаблон а ля #№#, и применять его по усмотрению? _________ Просто ради интереса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 15:38:46 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Gator> Да, тильда много реже минуса применяется. Или в FR Да, из-за редкости, и к FR это отношения не имеет. Хотя для целочисленных без разницы, что тильда, что дефис, да хоть точка, запятая - что угодно. А вот для строк имеет значение. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 15:46:21 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Так и понял. Я например в качестве разделителя [полей] использую редко встречающуюся комбинацию символов (не один). И для строк особого значения не имеет Не как CSV, а когда вордовый текст от нуба надо разобрать по шаблону. И где цифирь - суть строки - не числа. Или даты... Фигня вобщем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 16:25:03 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Gator> редко встречающуюся комбинацию символов (не один) Зачем, если есть экранирование? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 16:39:05 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам> Зачем, если есть экранирование? Поясни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 16:45:16 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
ДокiVaRelaвыглядит так: "-1-3-66-99-" совет стар, как мир :) Лучше вместо тире-дефиса параметры разделять тильдой "~" Я делаю так: Код: plsql 1. 2. 3. 4. 5. 6. parse_list - процедура разбирающая список с разделителями. Для большого количества элементов в списке/большой таблицы работает существенно быстрее т.к. цепляется индекс по tbl.id. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 16:52:12 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Gator> Поясни Ну экранирование символов. Как в С++ и пр. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2017, 17:41:46 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамGator> Поясни Ну экранирование символов. Как в С++ и пр.____ Офф топик не по теме и масло масляное, конечно Мне показалось у меня похожая (на X11) задача. Кратко - есть установленный бланк и есть человечий текст (суть отсебятина), где есть необходимые данные. - вот это необходимое мне надо вычислить-выципить из текста и поля бланка заполнить. Напр. Дата рождения, ДР, родилась... - суть одно и то же. - На разных языках. ___ Ну я тупо ищу "ключевые" слова перед и после. Т.е. "префикс"."постфикс" Тупо текстово. Без регулярок. И (поверьте мне) номер паспорта никогда не спутаю с номером телефона или почтоиндексом. ))) И я не понимаю, как можно почтовый индекс перепутать с номером телефона. Уж номер можно отдельно разобрать, что это: мобилка, стациоарка или IMO/ === Резюме. Т.е. на входе я работаю с текстом. На выходе - с полями. Да! Скажут все. Сделай форму, пусть поля заполняют. А я отвечу; Хрен вам! Форма есть давно, но, например, sms, email проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2017, 00:06:11 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Миль пардон! как-то связались во мне эти вопросы Дока и Х11. И тут и там разделители, У Дока хоть регулярок нет :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2017, 00:14:11 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Сорри, Док! Вопрос не твой, ясен пень. Но тильда - от тебя! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2017, 00:19:05 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
GatorНо тильда - от тебя! от "Деда", ЕМНИП :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2017, 09:28:40 |
|
||
|
Передать список значений в Query FastReport-у
|
|||
|---|---|---|---|
|
#18+
Па сабжу: для мсскл юзаю врем.таблицы. Например в фильтре отчета есть ЧекЛистбокс. Выставляем нужные "чеки". Перед выполнением запроса пробегаем по чеками и заполняем врем. табличку значениями ключей. (профит) Таких фильтров может быть много. Это заложено в репортовом движке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2017, 10:43:36 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39517631&tid=2041847]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
156ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 502ms |

| 0 / 0 |
