Topic: Дублирование строк при формировании отчета в компоненте MasterData

Здравствуйте, народ. Ситуация следующая. Решил сформировать небольшую БД для учета оборудования, подлежащего ремонту (пока черновой вариант). В принципе, все что нужно сделал, кроме одной детали. Когда в дизайнере отчетов вставляю компонент MasterData, заполняю его данными и открываю предварительный просмотр, то строки в таблице начинают дублироваться. Например, по инструменту А (номер записи) выполнены работы Раб1 и Раб2, а также заменены запчасти Зап1 и Зап2. Хочу вывести следующую таблицу:

Номер записи                 Наименование работы                                Сумма, руб
4                                            Раб1                                                            100
4                                            Раб2                                                            250

По факту же выходит:

Номер записи                 Наименование работы                                Сумма, руб
4                                            Раб1                                                            100
4                                            Раб2                                                            250
4                                            Раб1                                                            100
4                                            Раб2                                                            250


Хотелось бы узнать, почему так происходит? Прошу не судить строго, если неправильно применил терминологию, с БД и СУБД знаком весьма отдаленно. База собиралась после ночного штудирования книги "Базы данных и My Visual Database" и чтения Интернет-статей, разумеется. К сообщению приложил скрины и файлы БД. Решить за меня не прошу, но хотя бы указать в каком направлении копать. Пытался тыкать наугад по различным настройкам, однако добиться желаемого не смог.

То же самое и с запчастями.

Post's attachments

Attachment icon 1.jpg 432.5 kb, 134 downloads since 2019-08-21 

2 (edited by mvf2408 2019-08-21 12:59:45)

Re: Дублирование строк при формировании отчета в компоненте MasterData

Облом, как загрузить все скрины и БД? слишком большой файл пишет

Post's attachments

Attachment icon 2.jpg 428.07 kb, 132 downloads since 2019-08-21 

3 (edited by mvf2408 2019-08-21 12:59:31)

Re: Дублирование строк при формировании отчета в компоненте MasterData

Третий скрин

Post's attachments

Attachment icon 3.jpg 404.97 kb, 121 downloads since 2019-08-21 

4 (edited by mvf2408 2019-08-21 13:48:11)

Re: Дублирование строк при формировании отчета в компоненте MasterData

Четвертый скрин

Post's attachments

Attachment icon 4.jpg 497.61 kb, 139 downloads since 2019-08-21 

Re: Дублирование строк при формировании отчета в компоненте MasterData

Пятый скрин

Post's attachments

Attachment icon 5.jpg 205.54 kb, 136 downloads since 2019-08-21 

Re: Дублирование строк при формировании отчета в компоненте MasterData

я тоже столкнулся с этой проблемой, все ни как не могк решить

Re: Дублирование строк при формировании отчета в компоненте MasterData

Короче, я так понимаю, либо эта проблема очень сложная и никто не может решить, либо она очень простая и всем лень решать smile

8 (edited by mvf2408 2019-08-24 16:34:40)

Re: Дублирование строк при формировании отчета в компоненте MasterData

Короче, немного прояснил ситуацию. Проблема в следующем. У меня в отчете идут следующие блоки в указанном порядке:

Header 1
MasterData 1 (берет данные из таблицы WORKS - это у нас работы)
Footer 1

Header 2
MasterData 2 (берет данные из таблицы SPAREPARTS - это у нас запчасти)
Footer2

Проблема в том, что когда я добавляю новую запись в какую-либо из таблиц (WORKS или SPAREPARTS), то в дизайнере отчетов количество строк одной из MasterData начинает подстраиваться под другую. Например, я создаю в таблице WORKS новую запись:

№-------Тип работы---------------------------------------Сумма, руб
1---------Диагностика-------------------------------------300
2---------Замена запчастей-----------------------------200

И тут интересное... В отчете в MasterData1 отобразиться:

№-------Тип работы---------------------------------------Сумма, руб
1---------Диагностика-------------------------------------300
2---------Замена запчастей-----------------------------200

А в MasterData2 отобразиться:

№-------------Запчасть------------Кол-во----------------Цена-------------------Сумма, руб
ПУСТО---------ПУСТО-------------ПУСТО-------------- ПУСТО--------------------ПУСТО
ПУСТО---------ПУСТО-------------ПУСТО-------------- ПУСТО--------------------ПУСТО

Т. е. система взяла и самостоятельно добавила две новые строки в MasterData2, хотя в таблице SPAREPARTS (из которой она берет данные) я не создавал ни одной записи о запчастях.

НО И ЭТО ЕЩЕ НЕ ВСЕ!!!!! Допустим я решил добавить помимо работ еще и запчасти. Делаю в таблице SPAREPARTS следующую запись:

№-------------Запчасть------------Кол-во----------------Цена-------------------Сумма, руб
1--------------Транзистор-------------2----------------- 300--------------------600




Теперь картина станет еще более странной. В отчете я получу следующее:

В MasterData1 отобразиться:

№-------Тип работы---------------------------------------Сумма, руб
1---------Диагностика-------------------------------------300
2---------Замена запчастей-----------------------------200

А в MasterData2 отобразиться:

№-------------Запчасть------------Кол-во----------------Цена-------------------Сумма, руб
1--------------Транзистор-------------2----------------- 300--------------------600
1--------------Транзистор-------------2----------------- 300--------------------600

Т. е. запись о запчасти продублировалась на все строки MasterData2. Ели бы я создал 10 работ, а потом 1 запчасть, то дублей было бы 10. То же самое случиться, если действовать наоборот (т. е. сначала заполнить таблицу запчастей, а потом таблицу работ, тут разницы никакой). Единственный случай, когда визуально все смотрится красиво - это когда изначально одинаковое количество записей в каждой таблице (например, 6 работ и 6 запчастей) или одна заполнена а другая пустая (с пустыми строками я еще могу смириться). Что делать с этими дублями?

P.S. Допустил небольшую неточность. Записи о работах и запчастях я заношу в соответствующие таблицы WORKS и SPAREPARTS не напрямую, а через кнопку "Новая запись", расположенную на форме заполнения карточки оборудования. Там же есть 2 TableGrid-а, через которые сразу в карточке оборудования я могу увидеть дочерние записи по работам и запчастям, касающимся именно этой записи. Не знаю, может в этом проблема

Post's attachments

Attachment icon 2.jpg 428.07 kb, 125 downloads since 2019-08-24 

Re: Дублирование строк при формировании отчета в компоненте MasterData

Скорей всего вам необходимо выполнить отчет как в данном примере
http://myvisualdatabase.com/forum/viewtopic.php?id=1665


Если не получиться, приложите пожалуйста ваш проект (zip файл без exe и dll)

Dmitry.

10 (edited by mvf2408 2019-08-29 18:04:30)

Re: Дублирование строк при формировании отчета в компоненте MasterData

DriveSoft wrote:

Скорей всего вам необходимо выполнить отчет как в данном примере
http://myvisualdatabase.com/forum/viewtopic.php?id=1665


Если не получиться, приложите пожалуйста ваш проект (zip файл без exe и dll)


Спасибо за помощь. Присланный Вами файл я просмотрел, но боюсь моего уровня знаний программирования недостаточно, чтобы разобраться в скриптах. Я думал, что есть возможность решить эту проблему на уровне "ЛЕГО", просто перетаскивая нужные компоненты в дизайнере, выставляя им правильные свойства. Время чуток поджимало, поэтому, в конечном итоге, решил не заморачиваться и объединить работы и запчасти в одну таблицу, просто дополнительно добавив чекбокс "Наименование является работой"))) Вышло проще и, в принципе, довольно сносно.

Что касается внешнего вида отчета, в которой я его хотел видеть изначально, то он на скриншоте.

Касательно заливки базы, то у меня не вышло, ибо файл большой по размеру даже без dll и exe файлов. Дело в том, что изначально я туда картинки загружал, вот его и раздуло))) Но она есть на моем Яндекс.Диске, могу дать ссылку на него, правда не знаю каким образом... Скрин наверное выслать.

И еще вопрос. Как в личку написать? Я бы хотел обсудить вопрос, касающийся покупки и лицензии, но с глазу на глаз с автором.

Post's attachments

Attachment icon Скрин.jpg 163.63 kb, 122 downloads since 2019-08-29 

Re: Дублирование строк при формировании отчета в компоненте MasterData

А вот так этот отчет выглядит у меня в дизайнере отчетов

Post's attachments

Attachment icon в дизайнере.jpg 485.83 kb, 107 downloads since 2019-08-29 

12 (edited by mvf2408 2019-08-29 18:06:34)

Re: Дублирование строк при формировании отчета в компоненте MasterData

https://yadi.sk/d/sX68HQKxDPRoUQ

Это вот ссылка на файлы базы в ЯД

Re: Дублирование строк при формировании отчета в компоненте MasterData

Доработал ваш проект, на форме MainFormNew, расположил новую кнопку Акт работ 2


Проект:
https://www.dropbox.com/s/qi7wa6k9hs9ru … d.zip?dl=0


Также не рекомендую хранить изображения в базе, лучше в отдельной папке, для этого достаточно установить свойство у компонента DBImage
Type = LinkFile
CopyTo = photos


таким образом все фотки будут сохраняться в папке photos в папке проекта, подробней
http://myvisualdatabase.com/help_ru/com … opyto.html

Dmitry.