1 (edited by Bolat 2017-05-25 15:46:40)

Topic: Показать информацию в удобном виде по разным панелям

Я только вникаю в My Visual Database. очень удобно. но не все понятно.Решил сделать один проект.
Имеются  Базы данных:
1) справочник парк самолетов
2) справочник типов самолетов
3) справочник двигателей
4) справочник типов двигателей
на каждом самолете навешаны по 2 двигателя. связи между таблицами установлены.

сделал Grid по справочнику самолетов .  и отдельные Grid(ы) по двигателю № 1 и №2.
как сделать так, чтобы когда выбирал самолет - автоматически менялись номера и типы двигателей . Видимо как-от надо делать фильтры  в Grid двигателей. но никак не получается.
Если был бы только 1 двигатель - проблем бы не было. но когда их больше чем 1, то не пойму как их свзяать.
Прошу помощи.
Или если есть пример - дать ссылку.
Во вложении - проект.
спасибо заранее
Запуск--> Справочники-->Парк ВС

Post's attachments

Attachment icon Samolety.zip 11.25 kb, 310 downloads since 2017-05-25 

Re: Показать информацию в удобном виде по разным панелям

Здравствуйте.


К сожалению проекта во вложении нет.
Приложите пожалуйста проект как zip файл без exe и dll, либо отправьте его на support@drive-software.com со ссылкой на данную тему.

Dmitry.

Re: Показать информацию в удобном виде по разным панелям

Добавил файл.

P.S.
Как-то неоднозначно понимается что файл загружен или нет.
Думаю что надо написать на кнопке не "Add File" , предлагаю лучше "Upload file".
А то я думал, что после того как файл выбрал и если нажать  "Add File" - то можно добавить еще один файл для загрузки ( а не загружается выбранный файл).

Re: Показать информацию в удобном виде по разным панелям

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


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


Поправил ваш пример, добавив в него необходимые вычисляемые поля.

Post's attachments

Attachment icon Samolety_fixed.zip 11.7 kb, 294 downloads since 2017-05-26 

Dmitry.

Re: Показать информацию в удобном виде по разным панелям

Отлично, спасибо большое.
Вот только несколько вопросов :
1) Почему вычисляемое поле  - calc_Tipy_lat-  [ тип двигателя №1 ]  - прописывается  я в таблице tbl_FLEET_DWIG
     а для двигателя №2 вычисляемое поле  - calc_Tipy_lat1  - прописывается в другой таблице tbl_FLEET_WS ? -
     причем самолетной ( а не двигательной)

2) Почему в панели TableGrid1  формы frm_WS_FLEET  - для отображения Заводской № двигателя №1 - берется обычное поле tbl_FLEET_DWIG.txt_DWIG_ZAW_NO , а для отображения аналогичного поля Заводской № двигателя №2 - берется вычисляемое поле tbl_FLEET_WS.calc_DWIG1 ?

3)  Почему такая дискриминация ( почему нельзя сделать вычисляемое поле для первого двигателя ) ?

4) а если бы было 3 или 4 двигателя - то тогда как делать ?

Re: Показать информацию в удобном виде по разным панелям

Bolat
1-2-3. Выч. поле в таблице tbl_FLEET_WS для второго двигателя создается, так как нет другого способа вывести информацию, если используется два внешних ключа на одну и туже таблицу.


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



4. Если количество двигателей может быть различным, тогда необходимо завести отдельную таблицу для двигателей, как в этом примере
https://www.youtube.com/watch?v=cNnEXexH1dk


Только вместо абонентов будет воздушное судно, а вместо телефонов, будут двигатели воздушного судна.

Dmitry.

Re: Показать информацию в удобном виде по разным панелям

Подскажите, а как на форме сделать так, чтобы при изменении комбобокса - менялась бы информация связанная с ним.
Например при изменении номера двигателя - менялся бы автоматически тип двигателя ( из справочника) - для удобства - сделал снимок экрана с описанием.
так не не смог загрузить два файла - 1) проект и 2) снимок экрана - ->  сохранил картинку в проекте (можно его там посмотреть) и заархивировал проект

Post's attachments

Attachment icon NEW_SAMOLETY.ZIP 359.42 kb, 297 downloads since 2017-05-31 

Re: Показать информацию в удобном виде по разным панелям

procedure frm_WS_FLEET_NEW_OnShow (Sender: string; Action: string);
begin
    frm_WS_FLEET_NEW_cmb_DWIG_1_ZAW_NO_OnChange('');
end;

procedure frm_WS_FLEET_NEW_cmb_DWIG_1_ZAW_NO_OnChange (Sender: string);
begin
    frm_WS_FLEET_NEW.ed_TP_DWIG_01.Text := SQLExecute('SELECT tbl_TIPY_DWIG.txt_TIP_DWIG_RUS FROM tbl_FLEET_DWIG LEFT OUTER JOIN tbl_TIPY_DWIG ON tbl_TIPY_DWIG.id=tbl_FLEET_DWIG.id_tbl_TIPY_DWIG WHERE tbl_FLEET_DWIG.id='+frm_WS_FLEET_NEW.cmb_DWIG_1_ZAW_NO.sqlValue);
end;
Dmitry.

Re: Показать информацию в удобном виде по разным панелям

Супер, спасибо большое !!!!

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

ну и сразу еще вопрос. потом я хочу привязать таблицу с наработками по каждому двигателю. т.е. дата /рейс/ сколько наработал по времени.
Как лучше сделать :
  1) одной таблицей на все двигатели и делать в таблице фильтр , чтобы вытаскивалась информация по конкретному двигателю.
  2) разными таблицами по каждому двигателю отлдельно. но как тогда выбирать именно эту таблицу при выборе двигателя в панели ? отдельные таблицы по двигателю было бы конечно проще  контролировать данные . хотя и не факт.

Спасибо за помощь .

Post's attachments

Attachment icon NEW_SAMOLETY.ZIP 594.7 kb, 302 downloads since 2017-06-02 

Re: Показать информацию в удобном виде по разным панелям

Bolat

Думаю грид с типами двигателей на форме frm_WS_FLEET не нужен. Сделал небольшой скрипт, чтобы показывалось двигатель и его тип.


Также на форму Form1 добавил кнопку "Наработка", где можете ввести рейс, дату и наработку двигателя.

Post's attachments

Attachment icon NEW_SAMOLETY_fixed.zip 15.79 kb, 318 downloads since 2017-06-05 

Dmitry.

Re: Показать информацию в удобном виде по разным панелям

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

RunningTime.id_tbl_FLEET_DWIG = NNNN

вместо NNNN - надо установить значение взятой из таблицы tbl_FLEET_WS.id_tbl_FLEET_DWIG    ( для двигателя № 1).
из строки на которой стоит   курсор.

не могу понять как вытащить данные tbl_FLEET_WS.id_tbl_FLEET_DWIG .
когда просто тупо ставлю вместо  NNNN = цифру 7 например , то отрабатывается отлично. но это только для конкретного двигателя.
а нужно в зависимости от выбранного.  .

Уже даже вытащил tbl_FLEET_WS.id_tbl_FLEET_DWIG в виде лэйбла, думал его поставить в фильтр- дает ошибку.
Хотя конечно лучше не пользоваться промежуточной переменной.

Помогите пожалуйста. как правильно прописать фильтр ? Спасибо заранее

Post's attachments

Attachment icon NEW_SAMOLETY.ZIP 596.42 kb, 308 downloads since 2017-06-05