Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Заполнение Edit из DBGrid


Автор: Иван09 2.6.2011, 15:25
вот такой код: сейчас  первую строку из БД  не выдает, а так все правильно мне кажется надо   HalcyonDataSet1.Next; куда то в другое место перенести?
ставил его так:
for n:=0 to ZKStrOD do
  begin
  ZSKOD:=HalcyonDataSet1.FieldByName('K').AsString;
  HalcyonDataSet1.Next;
выдает вообще не те значения строк.
сейчас стоит так, но первую строку не читает: 
for n:=0 to ZKStrOD do
  begin
  HalcyonDataSet1.Next;
  ZSKOD:=HalcyonDataSet1.FieldByName('K').AsString;
не читает потому что присваивает а потом смещает   HalcyonDataSet1.Next-ом

procedure TForm4.ZPol;
Var n:Integer;
    ZSKOD:String;
    ZKStrOD:Integer;
begin
Edit10.Text:=Form2.VKPac;
Edit11.Text:=Form2.VFamPac;
EdtClr;
HalcyonDataSet1.First;
ZKStrOD:=HalcyonDataSet1.RecordCount;
for n:=0 to ZKStrOD do
  begin
  HalcyonDataSet1.Next;
  ZSKOD:=HalcyonDataSet1.FieldByName('K').AsString;
    If Form2.VKPac=ZSKOD then
      begin
      if HalcyonDataSet1.FieldByName('POL').AsString ='1' then RadioButton1.Checked:=True
      else RadioButton2.Checked:=True;
      DateTimePicker1.Date:=HalcyonDataSet1.FieldByName('DATA').AsDateTime;
      Edit1.Text:=HalcyonDataSet1.FieldByName('RAION').AsString;
      Edit2.Text:=HalcyonDataSet1.FieldByName('NPUNKT').AsString;
      Edit3.Text:=HalcyonDataSet1.FieldByName('UL').AsString;
      Edit4.Text:=HalcyonDataSet1.FieldByName('DOM').AsString;
      Edit5.Text:=HalcyonDataSet1.FieldByName('KV').AsString;
      Edit6.Text:=HalcyonDataSet1.FieldByName('TEL').AsString;
      Edit7.Text:=HalcyonDataSet1.FieldByName('MRAB').AsString;
      Edit8.Text:=HalcyonDataSet1.FieldByName('DOL').AsString;
      ComboBox1.Text:=HalcyonDataSet1.FieldByName('OBRAZ').AsString;
      ComboBox2.Text:=HalcyonDataSet1.FieldByName('SPOL').AsString;
      Edit9.Text:=HalcyonDataSet1.FieldByName('FIOROD').AsString;
      If HalcyonDataSet1.FieldByName('METSOOBR').AsString='1' then RadioButton3.Checked:=True
      else RadioButton4.Checked:=True;
    exit;
    end;
  end;
end;
 
Как поправить код, что бы выдавал в edit-ы ту выбраную строку из DbGrid(В данном случае HalcyonDataSet1)?

Автор: 14SatanA88 2.6.2011, 16:35
пользуйся компонентами DBEdit из вкладки Data Controls
связываешь его с датасетом, указываешь привязку к конкретному полю. 
в итоге в эдит будет выведено содержаимое текущей записи по полю, с которым связан эдит

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)