Topic: Вывод информации из Grid в Edit при условии

Всем добрый вечер!

Не подскажите где ошибка в запросе

procedure frmOP_OnShow (Sender: string; Action: string);
var
    i,c: integer;
begin
    c := frmOP.TableGrid1.RowCount - 1;
    for i := 0 to c do
begin
        if  Pos('BK', frmOP.TableGrid1.Cells[2,i])>0 then frmOP.TableGrid1.SelectedRow:=i;
    frmOP.EditFB.Text := SQLExecute ('SELECT Famyli FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditNB.Text := SQLExecute ('SELECT Name FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditOB.Text := SQLExecute ('SELECT Otchestvo FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditFIOB.Text := SQLExecute ('SELECT FIO FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
begin
    if  Pos('PBK', frmOP.TableGrid1.Cells[2,i])>0 then frmOP.TableGrid1.SelectedRow:=i;
    frmOP.EditFPB.Text := SQLExecute ('SELECT Famyli FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditNPB.Text := SQLExecute ('SELECT Name FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditOPB.Text := SQLExecute ('SELECT Otchestvo FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditFIOPB.Text := SQLExecute ('SELECT FIO FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
begin
     if  Pos('U', frmOP.TableGrid1.Cells[2,i])>0 then frmOP.TableGrid1.SelectedRow:=i;
    frmOP.EditFU.Text := SQLExecute ('SELECT Famyli FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditNU.Text := SQLExecute ('SELECT Name FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditOU.Text := SQLExecute ('SELECT Otchestvo FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditFIOU.Text := SQLExecute ('SELECT FIO FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
begin
    if  Pos('R', frmOP.TableGrid1.Cells[2,i])>0 then frmOP.TableGrid1.SelectedRow:=i;
    frmOP.EditFR.Text := SQLExecute ('SELECT Famyli FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditNR.Text := SQLExecute ('SELECT Name FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditOR.Text := SQLExecute ('SELECT Otchestvo FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
    frmOP.EditFIOR.Text := SQLExecute ('SELECT FIO FROM UserOP WHERE id='+frmOP.TableGrid1.sqlValue);
end;
end;
end;
end;
end;


begin

end.

Хотелось бы чтобы при обнаружении в указанном столбце Grid комбинации букв - происходил вывод информации из найденной строки, в определенные поля Edit. Есть несколько условий не знаю как правильно реализовать.
Ну и второй вопрос как вывести из Grid информацию в Edit, если имеется связь между таблицами. Сколько не пытался выводит только ID?
Прилагаю к сообщению тестовый проект с описанными выше вопросами.

За ранее спасибо

Post's attachments

Attachment icon TestSotr-2.7z 352.83 kb, 462 downloads since 2015-09-03 

Re: Вывод информации из Grid в Edit при условии

Поправил проект:

Post's attachments

Attachment icon TestSotr-2_fixed.zip 85.17 kb, 482 downloads since 2015-09-03 

Dmitry.

3 (edited by Igor 2015-09-03 18:55:37)

Re: Вывод информации из Grid в Edit при условии

Дмитрий, спасибо за исправления, но желаемый результат не достигнут.
Запрос успешно справляется со своей задачей но своеобразно ))
Т.е. есть условия поиска в Grid 'BK' , 'PBK' , 'U' , 'R'  скрипт находит допустим значения BK и U данные с этих строк он отправляет в нужные поля Edit , но если в Grid отсутствуют остальные значения условий поиска PBK и R , то скрипт просто дублирует вывод в поля Edit ранее найденные .

Post's attachments

Attachment icon Результат скрипта.png 14.42 kb, 373 downloads since 2015-09-03 

Re: Вывод информации из Grid в Edit при условии

Igor
Скорей всего у вас просто сохранены данные в этих полях, поэтому они там и появляются, просто удалите их и сохраните запись.

Dmitry.

Re: Вывод информации из Grid в Edit при условии

DriveSoft wrote:

Igor
Скорей всего у вас просто сохранены данные в этих полях, поэтому они там и появляются, просто удалите их и сохраните запись.

Дмитрий, вы  оказались правы. Спасибо за подсказку