Еще вопрос. Подскажите пожалуйста что добавить в скрипт на проверку дубликатов, чтобы он не считал за дубликаты пустые ячейки?

DriveSoft wrote:

Пожалуйста опишите поподробней, на форме frmCardAuto нет вкладки "Сведения о владельце", есть "Информация о владельцах"
Также я не вижу на форме CheckBox, речь о какой то другой форме?

В общих чертах так:

Я через Form1 хочу добавить новый автомобиль: Нажимаю кнопку "Новое авто".
Открывается форма "frmCardAuto", я заполняю поля в графах "Общая информация". Не нажимая кнопку "Ок" внизу формы, хочу добавить информацию о влдельце автомобиля, для чего выбираю вкладку "Информация о владельцах" и нажимаю кнопку "Добавить". При вызове фомы "frmOwners" я вижу как информация из раздела "Общая информация" сохраняется в БД. Я добавляю владельца нажимаю "Ок". И теперь при нажатии "Ок" система сообщает мне о наличии дубликата в БД. Т.Е. произошло сохранение в БД данных из формы, вне зависимости от моего желания сохранить инфо. Видимо это связано с тем что для ввода данных о владельце в таблицу добавляется id автомобиля.

Как то так.

Дмитрий, хотел вас попросить объяснить мне один момент.

В приложенном проекте, в форме frmCardAuto, при запуске проекта, если я добавляю новое авто, а затем перехожу на вкладку "Сведения о владельце", информация из TextBox и CheckBox несанкционированно сохраняется в таблице. А после того, как я добавил сведения о владельце программа не сохраняет данные, так как видит дубликат. В чем здесь дело???

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

https://www.dropbox.com/sh/xlwmsnoqrqi5 … g2PSa?dl=0

DriveSoft wrote:

В принципе это стандартный функционал, реализуется без скриптов, просто настройте кнопку с действием Поиск, в первый список добавьте данный ComboBox. В свойстве Increm.Search данного комбобокса выберите кнопку, которую ранее настроили с действием Поиск и готово, таким образом данная кнопка будет автоматически нажиматься при изменении в ComboBox. Саму кнопку можете скрыть, установив ее свойство Visible = False

Огромное спасибо,  все заработало.

Ошибся. Не Checkbox, а Combobox. Прошу прощения.

Добрый день. Хочу сделать форму в которой будет CheckBox и TableGrid при выборе значения в CheckBox в TableGrid отображаются выборочные данные. Как это реализовать?

sibprogsistem wrote:

готово
1. для onShow не нужно было капировать условия чекбокса.. В с войствах установил начальные значения
2. В свойствах групбокса (Жидкость и смазка) было Enbled=False, это и создавало ошибку..

Архив поврежден или имеет неизвестный формат

DriveSoft wrote:

К сожалению проект не приложен, возможно слишком большой размер. Создайте ZIP архив без exe и dll файлов.


Вот ссылка:

https://www.dropbox.com/s/za7zezqr86z4xwa/DBa.zip?dl=0

DriveSoft wrote:

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

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". Не могу понять в чем дело.

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). Поле фокус не получает.

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;

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

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

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

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

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

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


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

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

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

DriveSoft wrote:

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

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

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

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

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

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

Скрины

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

Скрины

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

Скрины

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

Скрины

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

Скрины

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

Скрины

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

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

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

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

Скрины:

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