|
|
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Нужен совет. Как все это проще (точнее правильнее) сделать. Есть обработчик, который формирует отчет, но мне не нравится код. Как это можно сделать правильно, а не через такие костыли? Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. Результат: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 19:38 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, накати вотки или форматтер кода используй, и попустит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 19:49 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
КотовасияВалерий666, накати вотки или форматтер кода используй, и попустит. Да и так попустило) Вышел на результат, но что-то внутри подсказывает, что лупить запросы внутри цикла - это жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 19:52 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Мне почему-то кажется что этими "SELECT count(*) FROM" вы имитируете операция GROUP BY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 23:15 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Судя по тому, что отчёты у вас лежат в папочке, программа - однопользовательская ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2018, 23:39 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrМне почему-то кажется что этими "SELECT count(*) FROM" вы имитируете операция GROUP BY Если есть предложения, с удовольствием выслушаю) Программа сетевая. Отчеты у каждого свои. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 08:26 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666Программа сетевая. Отчеты у каждого свои. И если нужно исправить один отчёт у всех, то бежим к каждому на комп ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 08:33 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, зачем уже полученный курсор (набор данных) загонять в ("временную") табличку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 08:38 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrВалерий666Программа сетевая. Отчеты у каждого свои. И если нужно исправить один отчёт у всех, то бежим к каждому на комп ? Нет, зачем, есть апдейтер. Смотрятся хэши, если не совпадают то перед стартом все сливается с сервера. авторзачем уже полученный курсор (набор данных) загонять в ("временную") табличку? Набор данных строиться в цикле. Если подскажите как полностью его получить без временной таблички буду благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 09:06 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
так ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 09:11 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBr так ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. Благодарю! Все получилось! Немного пришлось повозится с представлениями и синтаксисом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 10:20 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Может подскажите еще один момент? Это уже немного другой отчет. Есть номенклатурный справочник. На его основе хотелось бы видеть отчет с результирующими полями по группам. Рисунок ниже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 11:42 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Рисую вот такой запрос, как получить сумму по группе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 11:45 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
В отчёте - GroopFooter, где группу нужно как то выделить по номеру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 12:09 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrВ отчёте - GroopFooter, где группу нужно как то выделить по номеру Немного не то, мне результат нужен ДО подвала и уже в таблице датасета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:30 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Это не ПОДВАЛ, а ПОДВАЛ ГРУППЫ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:43 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Хотите данные в запросе - пристыкуйте второй запрос (на суммы) через UNION ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2018, 15:57 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrХотите данные в запросе - пристыкуйте второй запрос (на суммы) через UNION Вобщем получилось так, но это не совсем то что надо, удалил пункты ("в том числе") и итоги закинул в футер груп. Для этой формы сойдет, но есть другая такая же только без периода, и там строгая форма, и все цифры должны идти по порядку. Была мысль сделать в репорте переприсваивание значения из подвала, а подвал невидимым, но почемуто такая манипуляция даже с двойным проходом работает правильно только на первых двух группах бэндов… Вобщем я сгруппировал полем в таблице эти пункты(группа 1,2,3,4,5,6,7 и тп), с запросами я далеко на вы, и про join и пр. прочитал только на прошлой неделе, уже не говоря про агрегатные ф-ии. Можно ли сделать еще одно поле, суммирующее по группе? т.е. чтобы было все то что есть сейчас + поле, в котором будет сумма всех записей группы 1, где группа 1, 2 где группа 2 и тп. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 08:46 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
У вас репорта есть отдельный компонент для составления итоговых таблиц (такой мини-олап) -- на оде подается список данных, а он сам группирует их по различным разрезам и считает цифры. Если к дизайну претензий не будет, то вполне себе вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 08:54 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Можно ли сделать еще одно поле, суммирующее по группе? т.е. чтобы было все то что есть сейчас + поле, в котором будет сумма всех записей группы 1, где группа 1, 2 где группа 2 и тп. Повторяю ещё раз, для суммирования по группе существует GROUP FOOTER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 09:00 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666Можно ли сделать еще одно поле, суммирующее по группе? https://www.fastreport.ru/public_download/docs/vcl/FR6/HTML_RU/index.html?report_with_groups.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 09:39 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrМожно ли сделать еще одно поле, суммирующее по группе? т.е. чтобы было все то что есть сейчас + поле, в котором будет сумма всех записей группы 1, где группа 1, 2 где группа 2 и тп. Повторяю ещё раз, для суммирования по группе существует GROUP FOOTER Да при чем тут GROUP FOOTER? На картинке нарисовал как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 10:32 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, а на groupheader'е не получается разместить компоненты? Если не получается, то можно и дополнительной строкой в наборе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 10:51 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
"но при таком раскладе замена идёт только на 2-е первые группы, а дальше цифры не совпадают" - если честно, то ничего не понял Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 11:19 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBr"но при таком раскладе замена идёт только на 2-е первые группы, а дальше цифры не совпадают" - если честно, то ничего не понял Код: pascal 1. <DS."TOREP">=0, поле в таблице, 0 - замена значения на Memo36.Value Memo36.Value - сумма по группе DS."All0" - значение из таблицы. груп футер , либо скрытый, либо уменьшенный, в котором будут результаты. Вобщем нужно Во так что бы было в итоге. Дизайн таблицы регламентирован, это отчетная форма, вы водить итоги или еще какие либо цифры в "неустановленные" места нельзя. Отсюда и вопрос как это реализовать. Я вижу 2 выхода, подмена значений и расчет в самом репорте сумм(что пока не очень получается). Либо по тому же условию отображения, к запросу: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Добавить еще 10 полей и суммами, в которых будет сумма по группе, чтобы выглядело это так как на табличке в скриншоте Т.е. в SUM_All0,SUM_All1.....SUM_view0,SUM_view1 - собирались бы соответствено суммы из All0, All1.... view0,view1 в разрезе группы. Т.е. берем итем смотрим группу, считаем количество итемов в этой группе в нужном разрезе по датам и условиям записываем в SumИМЯПОЛЯ (к примеру SUM_All0). А в репорте уже вставить условие в поле для отображения: [IIF(<DS."TOREP">=0, <DS."SumAll0">, <DS."All0">)] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 12:40 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, ну ты попробуй потрудиться и представить, что вот такие вопросы задают тебе: Валерий666Есть обработчик, который формирует отчет, но мне не нравится код. Как это можно сделать правильно, а не через такие костыли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 13:49 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
1. Если вам нужны ИТОГИ ПО ГРУППАМ в виде отдельной таблички, то реализуйте это отдельным запросом. 2. Если вам нужны ИТОГИ ПО ГРУППАМ в виде "Итого" по окончанию группы - то для этого есть GROUP FOOTER ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2018, 13:54 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBr1. Если вам нужны ИТОГИ ПО ГРУППАМ в виде отдельной таблички, то реализуйте это отдельным запросом. 2. Если вам нужны ИТОГИ ПО ГРУППАМ в виде "Итого" по окончанию группы - то для этого есть GROUP FOOTER Мне нужно ИТОГО ПО ГРУППАМ в начале группы в одной таблице, все же вроде нарисовано на картинке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 14:30 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Если вам нужен ИТОГО в начале группы, то изучайте это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 15:10 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, Если у вас FR6, то смотрите отчет 131.fr3 из \Demos\Main. Кладете мемо с агрегатом на футер(если футер не нужен, то можно скрыть его установив нулевую высоту, он нужен для агрегата ) и заголовок, после, у мемо на заголовке с агрегатом, установите св-во Processing.ProcessAt = paGroupFinished. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2018, 19:49 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
_Den_ZВалерий666, Если у вас FR6, то смотрите отчет 131.fr3 из \Demos\Main. Кладете мемо с агрегатом на футер(если футер не нужен, то можно скрыть его установив нулевую высоту, он нужен для агрегата ) и заголовок, после, у мемо на заголовке с агрегатом, установите св-во Processing.ProcessAt = paGroupFinished. К сожалению у меня 5.4 версия. 6-ую не нашел. Читал про такие свойства, но в ранних версиях их нет( З.Ы. Я вот действительно не могу понять, то ли не отображаются рисунки, то ли я настолько не умею изложить суть что меня невозможно понять. Мне не надо итого по группам в футере или еще где-то, я через if пытаюсь сделать вывод суммы по группам в фиксированной таблице, которую менять нельзя, и в которой по запросу(который имеется) выводятся данные из dataset'a. Ну приложил уже рисунок с таблицей, и решение, но в SQL я нуль, поэтому спрашиваю можно ли это организовать одним запросом или нет. Если нет, то буду делать костыли с временными запросами и пересчетом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.10.2018, 22:26 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666то ли не отображаются рисунки, то ли я настолько не умею изложить суть что меня невозможно понять. К сожалению, второе, поскольку чут выше вы писали что "Мне нужно ИТОГО ПО ГРУППАМ в начале группы в одной таблице" Валерий666я через if пытаюсь сделать вывод суммы по группам в фиксированной таблице, которую менять нельзя, и в которой по запросу(который имеется) выводятся данные из dataset'a. Опять тоже самое, ничего не понятно. Что конкретно не получается ? Сделайте тестовый пример и на нём покажите чего хотите добиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 02:26 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Покажите набор данных и картинку готового отчёта, которую хотите получить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.10.2018, 02:28 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
DimaBrПокажите набор данных и картинку готового отчёта, которую хотите получить. Вобщем есть вот такой справочник, и в итоге нужен такой результат: Вы мне скидывали запрос на предыдущий вопрос, я его немного переделал Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. и получил вот такой результат: Мне надо в строках с номенклатурой 1,1.8,2,6,7 получить итоги по группе в той таблице(отчете) что на рисунке сверху. Группа определяется двумя полями group_parent - родительская группа, groupid - вложенная группа. Загвоздочка в том, что мне надо в 1 получить сумму 1.1-1.10 (включительно 1.8, т.е. сумму по 1.8.1 - 1.8.2 - второй уровень вложенности) Сейчас я вижу выход из ситуации следующий: дописать к тому запросу, что сверху, еще 20 полей с суммами по группам, соответственно 1 - го и 2 - го уровня вложенности. Реально ли это сделать? Что бы получилось грубо говоря вот так: Возможно не самое эстетичное решение, но подобный результирующий набор данных позволит выводить итоги по группам, где угодно, менять номенклатуру в произвольном порядке и не вносить изменения нив запрос, ни в файл отчета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 10:56 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Чет с картинками не вышло, вот увеличенные копии: https://radikal.ru/big/qt3nf5fyr7g0k][img] https://d.radikal.ru/d02/1810/5e/8ccd1b56a2dat.jpg [/img] https://radikal.ru/big/kg0ptpcxhwrc8][img] https://d.radikal.ru/d18/1810/30/e6f8a19118a7t.jpg [/img] https://radikal.ru/big/k321els6tyoci][img] https://b.radikal.ru/b15/1810/83/68b980bcee12t.jpg [/img] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 10:59 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
Валерий666, если форма не для печати/контроля, то рекомендую убрать нули из таблицы (у фаста есть в свойствах полей такое) -- пользователям будет НАМНОГО удобнее смотреть и проверять цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 12:04 |
|
||
|
Delphi+MySQL+FastReport.
|
|||
|---|---|---|---|
|
#18+
JaDiВалерий666, если форма не для печати/контроля, то рекомендую убрать нули из таблицы (у фаста есть в свойствах полей такое) -- пользователям будет НАМНОГО удобнее смотреть и проверять цифры. Как раз таки она самая, я предлагал свернуть пустые значения, но сказали что нужно именно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2018, 13:00 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2040253]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
141ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 420ms |

| 0 / 0 |
