1 (edited by BBDragon 2021-03-24 20:28:49)

Topic: Привязка данных в связанных таблицах

Добрый день, уважаемые коллеги)
Делаю небольшую БД для кадровика, посоветовали использовать MVDB, удобная штука! Для удобства восприятия разбил данные по людям на несколько таблиц - Man (основные личные данные), Characteristics (навыки, умения, достижения и т.п.), Education (данные по образованию) и Work (по прошлым работам). Данные в таблицу Man сохраняются нормально, а вот в Characteristics уже нет, отсутствует персональная привязка к человеку. Связь с таблицей Man вроде бы настроена, есть поле id_Man. Однако при открытии формы frmCharacteristics выходят все записи этой таблицы, без привязки к конкретному человеку, а если я в настройках TableGrid ставлю галочку на "Показывать дочерние записи", то вообще ничего не выходит.  Как правильно настроить эту привязку?


P.S. Администратор, нельзя ли разрешить выкладывать ссылки на скриншоты или хотя бы прикреплять их? Я приложил главный скрин, но было бы лучше все 4, а то одним сложно пояснить всю ситуацию.

Post's attachments

Attachment icon frmCharacteristics_список.png 13.16 kb, 109 downloads since 2021-03-24 

Re: Привязка данных в связанных таблицах

проект прикрепите

Re: Привязка данных в связанных таблицах

Прикладываю проект

Post's attachments

Attachment icon Проект.zip 10.65 kb, 181 downloads since 2021-03-24 

4 (edited by k245 2021-03-25 10:01:09)

Re: Привязка данных в связанных таблицах

BBDragon wrote:

P.S. Администратор, нельзя ли разрешить выкладывать ссылки на скриншоты или хотя бы прикреплять их? Я приложил главный скрин, но было бы лучше все 4, а то одним сложно пояснить всю ситуацию.

Ссылки выкладываются легко:

Вот, например, ссылка на вашу картинку:

http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=7601&download=0

Или любую другую:

http://i.mycdn.me/i?r=AzEPZsRbOZEKgBhR0XGMT1RkyxgvXHzhbcOeMcxWY2AiDKaKTM5SRkZCeTgDn6uOyic

Делается это так:


1. Вставили ссылку
2. Выделили ссылку
3. Нажали кнопочку "img"


http://myvisualdatabase.com/forum/misc.php?action=pun_attachment&item=7605&download=0

Post's attachments

Attachment icon как публиковать картинки.png 32.27 kb, 104 downloads since 2021-03-25 

Визуальное программирование: блог и телеграм-канал.

Re: Привязка данных в связанных таблицах

BBDragon wrote:

Добрый день, уважаемые коллеги)
Делаю небольшую БД для кадровика, посоветовали использовать MVDB, удобная штука! Для удобства восприятия разбил данные по людям на несколько таблиц - Man (основные личные данные), Characteristics (навыки, умения, достижения и т.п.), Education (данные по образованию) и Work (по прошлым работам). Данные в таблицу Man сохраняются нормально, а вот в Characteristics уже нет, отсутствует персональная привязка к человеку. Связь с таблицей Man вроде бы настроена, есть поле id_Man. Однако при открытии формы frmCharacteristics выходят все записи этой таблицы, без привязки к конкретному человеку, а если я в настройках TableGrid ставлю галочку на "Показывать дочерние записи", то вообще ничего не выходит.  Как правильно настроить эту привязку?

Что это у вас за форма на картинке? Форма просмотра табличных данных с фильтрами? Но зачем тогда кнопка "Сохранить"?  Или это форма редактирования с детализацией?


В любом случае не советую совмещать формы редактирования и формы отображения табличных данных, кроме случаев, когда другие способы отображения детализации неприемлемы заказчиком.

Визуальное программирование: блог и телеграм-канал.

Re: Привязка данных в связанных таблицах

Данные в таблицу Man сохраняются нормально, а вот в Characteristics уже нет, отсутствует персональная привязка к человеку

все потому, что Вы не создаете запись в поле id_Man (id записи таблицы Man)..

а если я в настройках TableGrid ставлю галочку на "Показывать дочерние записи", то вообще ничего не выходит.

Man - это главная таблица, в ней не может быть дочерних записей

Учеба и работа - нужно записывать в отдельные таблицы

вот переделал немного Ваш проект для примера..

Post's attachments

Attachment icon Проект.rar 8.21 kb, 203 downloads since 2021-03-25 

7 (edited by BBDragon 2021-03-25 13:51:44)

Re: Привязка данных в связанных таблицах

k245, sibprogsistem
спасибо огромное!! Теперь дело сдвинулось с мертвой точки, работаю над дальнейшим развитием проекта smile

k245
да, Form1 по идее главная форма с основными данными по людям, оттуда должен быть переход на остальные таблицы, а также желательно реализовать функцию поиска тоже. Но пока она вообще не работает..
Сейчас хочу доработать все оставшиеся разделы, тогда уже займусь и поиском

Re: Привязка данных в связанных таблицах

sibprogsistem
Я изначально неправильно задумал, нажатие на строку не должно открывать какую-то конкретную форму, лучше сделать иначе. Я доработал оставшиеся формы и вывел на главную форму 4 кнопки - Характеристики, Учеба, Работа, Компания. Теперь хотелось бы реализовать следующее: если курсор установлен на строку с конкретным человеком, то нажатие одной из этих кнопок должно открывать соответствующую форму с данными по этому человеку. Подскажите, пожалуйста, как это можно реализовать?

Прикладываю архив с проектом

Post's attachments

Attachment icon Проект_2503.zip 13.46 kb, 173 downloads since 2021-03-25 

Re: Привязка данных в связанных таблицах

Через скрипты.

var
   idUser: integer;
   procedure Form1_TableGrid1_OnClick (Sender: TObject);
begin
        idUser := Form1.TableGrid1.dbItemID;
end;

Дальше работать с кнопками.

Re: Привязка данных в связанных таблицах

BBDragon wrote:

sibprogsistem
если курсор установлен на строку с конкретным человеком, то нажатие одной из этих кнопок должно открывать соответствующую форму с данными по этому человеку. Подскажите, пожалуйста, как это можно реализовать?

Прикладываю архив с проектом

if ( Form1.TableGrid1.SelectedColumn = 3 ) then Form1.Button2.Click;

где 3 - это номер колонки
счет начинается с нуля

11 (edited by BBDragon 2021-03-29 14:59:46)

Re: Привязка данных в связанных таблицах

Переделал проект согласно советов Андрея, нужные формы по нажатию соответствующих клавиш открываются, но есть и глюки - при обычном нажатии на строку в Form1 открывается какая-то из форм, а после закрытия ее, по кругу открываются все остальные формы.
Вопросы:

1) как отключить реакцию по нажатию на строку?
2) есть вычисляемое поле Man.Итоги вещественного типа, однако в результате всегда выводится целое число, как можно настроить правильный вывод?
3) есть ли возможность сделать вывод заголовков таблицы в 2 строки?

Проект прикладываю

Post's attachments

Attachment icon Проект_2903.zip 15.38 kb, 174 downloads since 2021-03-29 

Re: Привязка данных в связанных таблицах

BB Dragon,
На мой взгляд, весь ваш подход слишком сложен для того, что является очень основным требованием.
1. вы не используете свои данные реляционно - это не проблема, но зачем хранить их в разных таблицах, если все ваши данные могут храниться только в одной таблице. Тот факт, что вы хотите видеть "рабочие" данные в одной форме, "характеристики" данные в одной форме, данные "компании" в одной форме, не означает, что вы должны хранить их в отдельных таблицах.
2. если вы хотите отображать группы данных вместе («образование», «работа» и т. Д.), Возможно, самый простой способ - использовать листы вкладок вместо дискретных форм.
Если вы не сделаете больше этого, вы решите большинство проблем, с которыми столкнулись.
Я также предлагаю вам изучить учебные пособия / руководство пользователя, прежде чем идти дальше, иначе вы не увидите всех преимуществ MVD.
Взгляните на приложение, которое является быстрой доработкой вашего проекта.
Derek.
(с переводчиком Google)
.
In my opinion, your whole approach is far too complicated for what is a very basic requirement.
1.  you are not using your data relationally - that is not a problem but why store it in different tables when all of your data could be stored in just one table.  Just because you want to see "work" data on one form, "characteristics" data on one form, "company" data on one form doesn't mean that you have to hold it in separate tables.
2.  if you want to display groups of data together ("education", "work" etc) the simplest way is probably to use tab sheets instead of discrete forms
If you do no more than this, you will resolve most of the problems you have encountered.
I would also suggest you study the tutorials / user guide before you go any further otherwise you will not see all the benefits of MVD.
Have a look at the attachment which is a quick reworking of your project.
Derek

Post's attachments

Attachment icon project 2903.zip 347.33 kb, 204 downloads since 2021-03-29 

Re: Привязка данных в связанных таблицах

derek
Thank you, brother, awesome job!!