Topic: Нужна помощь...

Всем привет!!!
1) как сделать:  если в гриде есть пустые поля , чтоб они горели красным???
2)

if MessageDlg(  'мое сообщение  ', mtInformation, mbYes+mbNo, 0) = mrYes then

как поменять Yes....на Да, а No...на Нет???

Re: Нужна помощь...

Приветствую,


1. Все пустые поля во всех столбцах? или в каких то определенных столбцах?

2. К сожалению пока нет такой возможности.

Dmitry.

Re: Нужна помощь...

в определенных столбцах пустые поля...

Re: Нужна помощь...

RZ-007 wrote:

в определенных столбцах пустые поля...

procedure Form1_GridEmployees_OnChange (Sender: string);
var
   i,c: integer;
begin
     c := Form1.GridEmployees.RowCount - 1;
     for i := 0 to c do
     begin
         if Form1.GridEmployees.Cells[0,i] = '' then Form1.GridEmployees.Cell[0,i].Color := clRed; // для первого столбца
         if Form1.GridEmployees.Cells[2,i] = '' then Form1.GridEmployees.Cell[2,i].Color := clRed; // для третьего столбца
     end;
end;
Dmitry.

5 (edited by RZ-007 2016-04-15 01:27:16)

Re: Нужна помощь...

Ок!!! Нормуль...
А что надо сделать с поиском чтоб показать  строчки, где пустые  поля в гриде???

Re: Нужна помощь...

RZ-007 wrote:

Ок!!! Нормуль...
А что надо сделать с поиском чтоб показать  строчки, где пустые  поля в гриде???

Кнопка с действием "Поиск" к сожалению не поддерживает поиск по пусттым строкам, для его реализации придеться использовать кнопку "SQL запрос"

Dmitry.

Re: Нужна помощь...

Кнопка с действием "Поиск" к сожалению не поддерживает поиск по пусттым строкам, для его реализации придеться использовать кнопку "SQL запрос"

Подскажите..."SQL запрос" к примеру по двум полям???

Re: Нужна помощь...

RZ-007

SELECT lastname, firstname FROM tablename
WHERE 
lastname is NULL or
firstname is NULL
Dmitry.

Re: Нужна помощь...

ОК!!! это РАБОТАЕТ...
СПАСИБО!!!

Re: Нужна помощь...

Здравствуйте!!!
Из Вашего примера Дмитрий взял скрипт...

procedure Form2_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sid: string;
begin
     if (Form2.ComboBox1.dbItemID = -1) and (Form2.ComboBox1.Text <> '') then
     begin
          // проверить, если оценка уже существует...
          sid := SQLExecute ('SELECT id FROM AAA WHERE aaa LIKE "'+Form2.ComboBox1.Text+'"');
          if ValidInt(sid) then
             Form2.ComboBox1.dbItemID := StrToInt(sid)
          // если оценка не существует, предложить...
          else begin
               if 6 = MessageDlg('Добавить  запись ??? "..... ' + Form2.ComboBox1.Text, mtConfirmation, mbYes + mbNo, 0) then
               begin
                    SQLExecute('INSERT INTO AAA (aaa) VALUES ("'+Form2.ComboBox1.Text+'")');
                    UpdateDatabase('AAA');
                    Form2.ComboBox1.dbItemID := Last_Insert_id('aaa');
               end else
               begin  // если Нет...делаем:
                Cancel := True;
               end;
          end;
     end;
end;

Этот скрипт делает проверку в таблице "ААА" в поле "ааа" используя "ComboBox1" и если такой записи НЕТ предлагает её сделать!!!
Скрипт РАБОЧИЙ...ОК!!!
ВОПРОС:
Таблица "ААА" имеет два поля "ааа" и "id_BBB"
Как к данному скрипту прикрутить...
сделать проверку в таблице "ААА" в поле "ааа" и  "id_BBB" используя "ComboBox1" и теперь уже "ComboBox2" ...
и если такой записи НЕТ предложить её сделать используя "ComboBox1" и "ComboBox2" ...
P./S. Таблица "ВВВ" имеет поле "bbb"
Заранее благодарен за любую помощь!!!

Re: Нужна помощь...

RZ-007
К сожалению я уже не помню подробностей данного примера, по данному описанию сложно посоветовать что то конкретное.

Dmitry.

12 (edited by RZ-007 2016-05-18 01:06:51)

Re: Нужна помощь...

пост № 10

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

Дмитрий я нашёл ваш пример...
Помогите дописать ваш скрипт...(надо к существующему скрипту добавить и проверку и запись с "ComboBox1"...
P./S. т.е. с формы "frmEmployee" используя "cbGroup" и "ComboBox1"
сделать проверку для таблицы "groups" с полем "groupname" и "id_AAA"....
И если такой записи НЕТ в поле "groupname" и "id_AAA"...
тогда сделать запись СКРИПТОМ...в таблицу "groups" в поле "groupname" из "cbGroup"(скрипт уже готовый есть)
и выбрав значения из "ComboBox1" в поле "id_AAA"...(что надо дописать???)
Проект для теста прилагается...

Post's attachments

Attachment icon тест.zip 342.14 kb, 536 downloads since 2016-05-18 

Re: Нужна помощь...

Увы, я могу помочь только с конкретным вопросом либо простым примером, ваш вопрос сформулирован довольно запутано.

Dmitry.

Re: Нужна помощь...

Ок....ещё проще...
есть две таблицы: "ААА" с полем "ааа" и "ВВВ"с  полем "id_AAA"
Как сделать скриптом запись  в таблицу   "ВВВ" с  полем "id_AAA"
используя ComboBox1, который берёт значения из  таблицы: "ААА" с полем "ааа"???

Re: Нужна помощь...

RZ-007 wrote:

Ок....ещё проще...
есть две таблицы: "ААА" с полем "ааа" и "ВВВ"с  полем "id_AAA"
Как сделать скриптом запись  в таблицу   "ВВВ" с  полем "id_AAA"
используя ComboBox1, который берёт значения из  таблицы: "ААА" с полем "ааа"???

SQLExecute('INSERT INTO BBB (id_AAA) VALUES ('+Form1.ComboBox1.sqlValue+')');
Dmitry.

Re: Нужна помощь...

Ок....
делаем так:

SQLExecute('INSERT INTO BBB (id_AAA) VALUES ('+Form3.ComboBox1.sqlValue+')');
SQLExecute('INSERT INTO BBB (bbb) VALUES ('+Form3.Edit1.sqlValue+')');

запись делается в разные строчки,
как объеденить скрипт, что бы запись в таблице была в одной строчке???

Re: Нужна помощь...

SQLExecute('INSERT INTO BBB (id_AAA, bbb) VALUES ('+Form3.ComboBox1.sqlValue+', '+Form3.Edit1.sqlValue+')');
Dmitry.

Re: Нужна помощь...

Спасибо!!!
То что надо...

Re: Нужна помощь...

Эта часть скрипта :делает проверку в таблицы "ААА" с полем "ааа"  используя ComboBox1...

var
   sid: string;
begin
     if (Form2.ComboBox1.dbItemID = -1) and
        (Form2.ComboBox1.Text <> '')        and
    //  (Form2.ComboBox2.dbItemID = -1) and
     // (Form2.ComboBox2.Text <> '')        then
begin
          // проверить, если оценка уже существует
  sid := SQLExecute ('SELECT id FROM AAA WHERE aaa LIKE "'+Form2.ComboBox1.Text+'"');
//sid := SQLExecute ('SELECT id FROM AAA WHERE aaa,id_BBB LIKE "'+Form2.ComboBox1.Text+','+Form2.ComboBox2.Text+' "');
          if ValidInt(sid) then
          Form2.ComboBox1.dbItemID := StrToInt(sid)

Вопрос:
Как изменить скрипт..., что бы используя ComboBox2 сделать проверку в таблицы "ААА" с полем "id_BBB" в этой же строчке таблицы???

20 (edited by RZ-007 2016-05-19 04:17:03)

Re: Нужна помощь...

Всем привет!!!
1.) как заставить CheckBox запомнить своё значение...???
открыли проект установили значение в CheckBox закрыли проект...
при новом открытии проекта....в CheckBox осталось значение какое было при закрытии...
2.) + пост №19

Re: Нужна помощь...

RZ-007 wrote:

Всем привет!!!
1.) как заставить CheckBox запомнить своё значение...???
открыли проект установили значение в CheckBox закрыли проект...
при новом открытии проекта....в CheckBox осталось значение какое было при закрытии...

где вы планируете хранить значение CheckBox? в базе данных или в реестре?

Dmitry.

Re: Нужна помощь...

где вы планируете хранить значение CheckBox? в базе данных или в реестре?

1.)просто на форме ...он не к чему не подключен!!!
2.) взгляните пожалуйста пост №19...?

Re: Нужна помощь...

RZ-007
1. Сделал для вас проект с примером.
2. С данной формулировкой вопроса я не могу посоветовать что то конкретное.

Post's attachments

Attachment icon Registry save and load value.zip 3.67 kb, 545 downloads since 2016-05-20 

Dmitry.

Re: Нужна помощь...

Всем хорошего настроения!!!

DriveSoft пишет:
1. Сделал для вас проект с примером.

Огромное СПАСИБО!!! это то, что мне надо...

Re: Нужна помощь...

посты № 10,19...

DriveSoft пишет:
2. С данной формулировкой вопроса я не могу посоветовать что то конкретное.

ОК!!!...попробую изложить суть вопроса в другом формате...

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

procedure frmEmployee_bSave_OnClick (Sender: string; var Cancel: boolean);
var
   sid: string;
begin
     if (frmEmployee.cbGroup.dbItemID = -1) and (frmEmployee.cbGroup.Text <> '') then
     begin
          // проверьте, если группа уже существует
          sid := SQLExecute ('SELECT id FROM groups WHERE groupname LIKE "'+frmEmployee.cbGroup.Text+'"');
          if ValidInt(sid) then
             frmEmployee.cbGroup.dbItemID := StrToInt(sid)
          // если группа не существует, предложить добавить новую группу
          else begin
               if 6 = MessageDlg('Вы действительно хотите добавить новую группу: ' + frmEmployee.cbGroup.Text, mtConfirmation, mbYes + mbNo, 0) then
               begin
                    SQLExecute('INSERT INTO groups (groupname) VALUES ("'+frmEmployee.cbGroup.Text+'")');
                    UpdateDatabase('groups');
                    frmEmployee.cbGroup.dbItemID := Last_Insert_id('groups');
               end;
          end;
     end;
end;

это РАБОТАЕТ!!! ОК...

я пытаюсь Ваш скрипт отредактировать для своей задачи...
это мой скрипт:

procedure Form3_Button1_OnClick (Sender: string; var Cancel: boolean);
var
   sid: string;
begin
//---1 часть----------что сдесь надо изменить???----------------------------------------------------------

if (frmEmployee.cbGroup.dbItemID = -1) and (frmEmployee.cbGroup.Text <> '') then
     begin
          // проверьте, если группа уже существует
          sid := SQLExecute ('SELECT id FROM groups WHERE groupname LIKE "'+frmEmployee.cbGroup.Text+'"');
          if ValidInt(sid) then
             frmEmployee.cbGroup.dbItemID := StrToInt(sid)

//---2 часть "методом научного тыка"  работает  ОК!!!-----------------------------------------------------------------------------------

          // если оценка не существует, предложить  добавления
          else begin
               if 6 = MessageDlg('Добавить запись' + Form3.ComboBox2.Text, mtConfirmation, mbYes + mbNo, 0) then
               begin
       SQLExecute('INSERT INTO BBB (id_AAA,bbb) VALUES ('+Form3.ComboBox1.sqlValue+',"'+Form3.ComboBox2.Text+'")');

       Form3.Combobox2.DoOnChange;   //дал понять, что у него значение обновилось...
       UpdateDatabase('BBB');
       Form3.ComboBox2.dbItemID := Last_Insert_id('bbb');


               end else
               begin  // если Нет...делаем:

                Cancel := True;
                Form3.ComboBox2.dbItemID:= -1;
                Form3.ComboBox2.Text := '';
               end;
          end;
     end;
end;

Суть ВОПРОСА постарался изложить в рисунке , который прикрепил ниже...

Post's attachments

Attachment icon Скриншот 23-05-2016 231359.png 116.58 kb, 361 downloads since 2016-05-23