|
|
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Есть некая прога в которой надо генерировать некие реестры. Поля в табличке допустим такие: Правовая форма( Юр. лицо, ИП, Физ лицо); Имя; Отчество; Фамилия. В отчете упрощенно есть три колонки. Юр ФИО, ИП ФИО, Физ ФИО. То есть, в зависимости от поля "Правовая форма", в соответствующую Колонку пишутся объединенные поля Имя; Отчество; Фамилия. В проге соответственно есть запрос, который достает инфу, есть DBGrid который отображает инфу и есть отчет в FastReport который печатает инфу. Есть два пути. 1. В запросе объединяем по условию поля и в итоге у нас, возвращается три поля допустим ЮРФИО, ИПФИО и ФИЗФИО. 2. Запрос простой, а поля объединяем при выводе в гриде и в отчете. Вот думаю на каком варианте остановиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 16:28 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Пока писал, запутался сам ) В общем проблема вот в чем. Есть две проги. Обе должны выдавать идентичный отчет. Первая прога с простым гридом с двумя полями (условно) Правовая форма и ФИО. Работает по второму способу, т.е. Простой запрос и логика в отчете. Вторая прога со сложным гридом, идентичным отчету, т.е. три колонки. Юр ФИО, ИП ФИО, Физ ФИО и работает по первому способу, т.е. логика в запросе, а в гриде и отчете просто поля. Соответственно внесение изменений при сохранении идентичности в обеих прогах стало несколько напряжно. Надо привести к общему знаменателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 16:43 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
didgik Вот думаю на каком варианте остановиться На первом. А если не хочешь на первом - тогда на втором. Код больше, меньше "ля-ля". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 16:55 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
ъъъъъ didgik Вот думаю на каком варианте остановиться На первом. А если не хочешь на первом - тогда на втором. Код больше, меньше "ля-ля". Я пока остановился на двух. А надо на одном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 16:56 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
didgik Я пока остановился на двух. А надо на одном. Буриданов осёл умер, не написав ни строчки кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 17:04 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
didgik, авторЕсть два пути. 1. В запросе объединяем по условию поля и в итоге у нас, возвращается три поля допустим ЮРФИО, ИПФИО и ФИЗФИО. 2. Запрос простой, а поля объединяем при выводе в гриде и в отчете. Если отталкиваться от стандартных контролов: Лично я предпочитаю получать конечные данные на сервере, то бишь первый вариант. При втором варианте, в зависимости от поставленной задачи придется использовать либо ADODataset1.FieldByName('NameField').OnGetText либо вычисляемое поле, либо писать доп код в DrawColumnCell + заморачиваться на экспорт куда нибудь: что ни есть хорошо. Вы же не в StringGrid выводить будите результаты запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 17:32 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
didgik> Я пока остановился на двух. А надо на одном. А зачем (и кому?) надо? Чтобы код идентичный поддерживать проще было или о чём речь? P.S. В отчёте "объединять" можно и нужно, а в гриде - нельзя. Правда, можно в датасете вычисляемое поле, но тут уже возникают вопросы типа почему вообще 3 колонки вместо одной (как выглядело бы логичнее). Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 20:58 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам didgik> Я пока остановился на двух. А надо на одном. А зачем (и кому?) надо? Чтобы код идентичный поддерживать проще было или о чём речь? P.S. В отчёте "объединять" можно и нужно, а в гриде - нельзя. Правда, можно в датасете вычисляемое поле, но тут уже возникают вопросы типа почему вообще 3 колонки вместо одной (как выглядело бы логичнее). Надо мне. Поддерживать идентичность отчетов в двух прогах. Попробую сделать общий модуль для этого. А три колонки, ну такое ТЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.04.2020, 21:20 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
didgik, конечно первый вариант. Запрос он и есть запрос. А грид - сегодня этот грид, завтра другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 11:24 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Любые объединения на как можно более позднем этапе. Потому что объединять легко, разделять трудно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 12:37 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Сейчас в своей работе (именно для FastReport) выбираю второй вариант - вся логика в отчете. Специфика такая, что ранее сделанные отчеты уже не должны отображаться по другому, и сложно изменить запрос, приходится хранить все эти ранее сделанные объединенные поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 14:44 |
|
||
|
Где объединять поля, в отчете или в запросе?
|
|||
|---|---|---|---|
|
#18+
Vlad074 Сейчас в своей работе (именно для FastReport) выбираю второй вариант - вся логика в отчете. Специфика такая, что ранее сделанные отчеты уже не должны отображаться по другому, и сложно изменить запрос, приходится хранить все эти ранее сделанные объединенные поля. Да, еслиб не надо было выводить тоже самое в гриде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.04.2020, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39953078&tid=2038365]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
206ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 493ms |

| 0 / 0 |
