1 (edited by annihillator 2018-11-07 14:36:06)

Topic: Отображение данных из поля таблицы в форме My Visual DB

Доброго времени суток.
Кропаю небольшую БД при помощи MyVisualDataBase. Возникла трудность, прошу помощи.
В общем имеем несколько таблиц:
1. Инфо об автомобиле (поля: марка, модель, год выпуска, объем двигателя, ВИН код, регистрационный номер, Единицы измерения пробега (мили / км));
2. Инфо о владельце (поля: Имя, Фамилия, телефон 1, телефон 2);
3. Инфо о сервисных работах (поля: Дата, пробег,  наименование работ);
4. Справочник единиц измерения пробега (поля: наименование, обозначение);

Сделал в форме заполнения данных об автомобиле выбор единиц измерения об авто в виде ComboBox, чтоб не вводить каждый раз единицы вручную. Т.е. был создан справочник единиц измерения, создана связь в таблица Авто на этот справочник. Через ComboBox прикручена связь.
Требуется вывод этой информации в форме ввода данных о сервисном обслуживании авто (в целях справочной информации).

Не могу понять, как это реализовывать.

Скрины:

https://d.radikal.ru/d13/1811/1d/9bd8351e7ae2t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://b.radikal.ru/b21/1811/23/10e0a7f962e5t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://b.radikal.ru/b17/1811/0f/936325b0e850t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://c.radikal.ru/c39/1811/77/f588c03652e5t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://b.radikal.ru/b16/1811/31/a70880dd78f0t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://c.radikal.ru/c23/1811/11/a0cdc5128cd6t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

Скрины

https://c.radikal.ru/c25/1811/db/74f768f4ff54t.jpg

Re: Отображение данных из поля таблицы в форме My Visual DB

прикрутите проект, и вам помогут wink

9 (edited by annihillator 2018-11-09 07:30:33)

Re: Отображение данных из поля таблицы в форме My Visual DB

Вот  ссылка на проект.

https://www.dropbox.com/sh/t6k3kf8im5xk … q4HVa?dl=0

10 (edited by zc13569 2018-11-09 11:39:51)

Re: Отображение данных из поля таблицы в форме My Visual DB

annihillator wrote:

Вот  ссылка на проект.

https://www.dropbox.com/sh/t6k3kf8im5xk … q4HVa?dl=0

На скринах ничего не видно. Если правильно понял проблему то:


procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Memo2.Text := SQLExecute('SELECT Unit FROM TBLSprMillUnits WHERE id=' + IntToStr(FrmCardAuto.ComboBox1.dbItemID) );
end;

Re: Отображение данных из поля таблицы в форме My Visual DB

либо можно просто скопировать текст из комбобокса в Memo2

procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Memo2.Text := FrmCardAuto.ComboBox1.Text;
end;
Dmitry.

12 (edited by annihillator 2018-12-03 12:33:35)

Re: Отображение данных из поля таблицы в форме My Visual DB

Подскажите в чем проблема:
вставляю код в тело скрипта, выдает ошибку 'BEGIN' expected at 5:1. Что я делаю не так?

Пожалуйста, если не трудно, напишите весь скрипт.

Re: Отображение данных из поля таблицы в форме My Visual DB

Скопируйте пожалуйста сюда весь скрипт из вашего проекта.

Dmitry.

14 (edited by annihillator 2018-12-03 13:51:07)

Re: Отображение данных из поля таблицы в форме My Visual DB

DriveSoft wrote:

Скопируйте пожалуйста сюда весь скрипт из вашего проекта.

procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Memo2.Text := FrmCardAuto.ComboBox1.Text;
end;

Re: Отображение данных из поля таблицы в форме My Visual DB

скорей всего вы удалили обязательную секцию begin end. которая расположена в самом низу, т.е. должно быть так


procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Memo2.Text := FrmCardAuto.ComboBox1.Text;
end;

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

Re: Отображение данных из поля таблицы в форме My Visual DB

DriveSoft wrote:

скорей всего вы удалили обязательную секцию begin end. которая расположена в самом низу, т.е. должно быть так


procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Memo2.Text := FrmCardAuto.ComboBox1.Text;
end;

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

Спасибо. Ошибок нет. Однако в поле так и не появилось значение.

17 (edited by annihillator 2018-12-04 08:16:58)

Re: Отображение данных из поля таблицы в форме My Visual DB

Кстати возник вопрос:

А можно ли не используя поле Memo вывести требуемый текст в виде Надписи? Полагаю, что скрипт в таком случае будет иметь следующий вид:

procedure FrmService_OnShow (Sender: TObject; Action: string);
begin
  FrmService.Label4.Caption := FrmCardAuto.ComboBox1.Text;
end;

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

Re: Отображение данных из поля таблицы в форме My Visual DB

Можно, только вы не сможете сохранить текст в базу данных используя компонент Label.

Dmitry.

Re: Отображение данных из поля таблицы в форме My Visual DB

DriveSoft wrote:

Можно, только вы не сможете сохранить текст в базу данных используя компонент Label.

Этот Label нужен только для информации.

Кстати еще вопрос:
Задумал сделать такую вещь:
В таблице добавить поля:
"Замена масла", тип поля "ДА/НЕТ"
"Наименование продукта", тип поля "ТЕКСТ".

На форме разместить:
CheckBox (связанный с полем "Замена масла")
Edit (связанный с полем "Наименование продукта").
Edit при Unchecked CheckBox имеет следующие параметры: BgColor = clInactiveBorder; Enabled = False; (т.е. Поле для ввода неактивное и его нельзя выбрать.)
При Checked CheckBox параметры Edit меняются на: BgColor = clWindow; Enabled = True; (Поле становится активным)
Процедуру вешаю на frmWorks_CheckBox1_OnClick.
Не могу понять, как собрать скрипт.
BgColor не работает так как Undeclared Identifier.

В общем и целом скрипт выглядит так:

procedure frmWorks_CheckBox1_OnClick (Sender: TObject);
begin
    if frmWorks.CheckBox1.Checked = False then
       frmWorks.Edit2.Enabled := False and frmWorks.Edit2.BgColor := clInactiveBorder;
    if frmWorks.CheckBox1.Checked = True then
       frmWorks.Edit2.Enabled := True and frmWorks.Edit2.BgColor := clWindow;
end;

Но почему то он не работает. Что я делаю не так?

20 (edited by sibprogsistem 2018-12-13 08:50:52)

Re: Отображение данных из поля таблицы в форме My Visual DB

procedure frmWorks_CheckBox1_OnClick (Sender: TObject);
begin
 if frmWorks.CheckBox1.Checked then begin
    frmWorks.Edit2.Enabled := False;
    frmWorks.Edit2.Color := clInactiveBorder;
 end else begin frmWorks.Edit2.Enabled:=True;
          frmWorks.Edit2.Color := clWindow;
      end;
end;

Re: Отображение данных из поля таблицы в форме My Visual DB

sibprogsistem wrote:
procedure frmWorks_CheckBox1_OnClick (Sender: TObject);
begin
 if frmWorks.CheckBox1.Checked then begin
    frmWorks.Edit2.Enabled := False;
    frmWorks.Edit2.Color := clInactiveBorder;
 end else begin frmWorks.Edit2.Enabled:=True;
          frmWorks.Edit2.Color := clWindow;
      end;
end;

Спасибо. Все работает, однако после выполнения скрипта я не могу получить доступ к вводу текста (как будто Enabled = False). Поле фокус не получает.

22 (edited by sibprogsistem 2018-12-13 10:20:23)

Re: Отображение данных из поля таблицы в форме My Visual DB

annihillator wrote:

Спасибо. Все работает, однако после выполнения скрипта я не могу получить доступ к вводу текста (как будто Enabled = False). Поле фокус не получает.

снимите галочку и поле будет TRUE

23 (edited by annihillator 2018-12-13 10:34:32)

Re: Отображение данных из поля таблицы в форме My Visual DB

sibprogsistem wrote:
annihillator wrote:

Спасибо. Все работает, однако после выполнения скрипта я не могу получить доступ к вводу текста (как будто Enabled = False). Поле фокус не получает.

снимите галочку и поле будет TRUE

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

Сделал такой скрипт:

procedure frmWorks_CheckBox1_OnClick (Sender: TObject);
begin
 if frmWorks.CheckBox1.Checked then
     begin
        frmWorks.Edit2.Enabled := True;
        frmWorks.Edit2.Color := clWindow;
        frmWorks.Edit2.SetFocus;
     end
 else begin
        frmWorks.Edit2.Enabled := False;
        frmWorks.Edit2.Color := clInactiveBorder;
      end;
end;

После активации Чекбокса выдает сообщение "Cannot focus are disabled or invisible vindow". Не могу понять в чем дело.

24 (edited by sibprogsistem 2018-12-13 12:04:46)

Re: Отображение данных из поля таблицы в форме My Visual DB

annihillator wrote:

После активации Чекбокса выдает сообщение "Cannot focus are disabled or invisible vindow". Не могу понять в чем дело.

procedure frmWorks_CheckBox1_OnClick (Sender: TObject);
begin
 if frmWorks.CheckBox1.Checked then begin
    frmWorks.Edit2.Enabled := True;
    frmWorks.Edit2.Color := clInactiveBorder;
    frmWorks.Edit2.SetFocus;
 end else begin frmWorks.Edit2.Enabled:=False;
          frmWorks.Edit2.Color := clWindow;
      end;
end;

все работает
Cannot focus are disabled or invisible vindow -- Невозможно сфокусировать отключенное или невидимое окно
Вы его свойства случайно не меняли?

Re: Отображение данных из поля таблицы в форме My Visual DB

annihillator
Должно работать. Приложите ваш проект, протестирую.

Dmitry.