아래의 코딩은 dbgrid 에서 특정 항목 선택시 옆의 스트링 그리드에 내용뿌려주는 내용입니다.
procedure TPj_value_Form.DBAdvSGrd_aptDblClick(Sender: TObject); --> 정상적으로 수행됩니다
ADvSgrd_init.Cells[10,ADvSgrd_init.Rowcount] := 'APT 항목'; -> 스트링그리드에 찍고
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1; -> 한줄 추가시키고
선택된 내용을 정상적으로 스트링그리드에 뿌려줍니다. 문제는 다음의 코딩에 있습니다.
procedure TPj_value_Form.DBAdvStringGrid1DblClick(Sender: TObject); 를 실행할때 문제입니다.
스트링 그리드 로우하나타 추가되며 'man power항목'이라고 찍히고 다시 로우하타를 추가하여 더블클릭으로 선택된 내용을 뿌려줘야 하는데 'man power항목'이라는 타이틀만 로우가 추가되어 나타나고 실제 선택된내용은 로우가 추가되지도 않고 나타나지도 안습니다.
그상태에서 procedure TPj_value_Form.DBAdvStringGrid9DblClick(Sender: TObject); 를 실행시키면
이때 man power항목에서 선택된 내용이 스트링 그리드에 나타납니다.
그리고 '서비스항목'은 로우가 추가된후 타이틀만 찍힌후 로우가 추가되지도, 내용도 나타나지 안습니다
왜그런지 정말 모르겠습니다. 제발 방법 왜그런지 알려주시면 고맙겠습니다.
procedure TPj_value_Form.DBAdvSGrd_aptDblClick(Sender: TObject);
var
i : integer;
begin
ADvSgrd_init.Cells[10,ADvSgrd_init.Rowcount] := 'APT 항목';
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
with ADvSgrd_init do begin
Cells[0,Rowcount] := Copy(Query_apt.FieldByName('apt_cd4').AsString, 1, 2);
Cells[1,Rowcount] := Copy(Query_apt.FieldByName('apt_cd4').AsString, 1, 4);
Cells[2,Rowcount] := Copy(Query_apt.FieldByName('apt_cd4').AsString, 1, 6);
Cells[3,Rowcount] := Query_apt.FieldByName('apt_cd4').AsString;
Cells[4,Rowcount] := Edit_pj.Text;
Cells[5,Rowcount] := Edit_spj.Text;
Cells[10,Rowcount] := Query_apt.FieldByName('apt_name').AsString;
Cells[11,Rowcount] := Query_apt.FieldByName('apt_code').AsString;
Cells[21,Rowcount] := Query_apt.FieldByName('apt_csrent_w').AsString;
Cells[22,Rowcount] := Query_apt.FieldByName('apt_csrent_s').AsString;
Cells[23,Rowcount] := Query_apt.FieldByName('apt_depo').AsString;
Cells[24,Rowcount] := Query_apt.FieldByName('apt_depo_s').AsString;
with Query_tmp do begin
Close;
SQL.Clear;
SQL.ADD('sp_pjinit @option=:option, @seekcode=:seekcode');
SQL.ADD(' ,@cd3=:cd3');
ParamByName('option').AsString := 'S';
ParamByName('seekcode').AsString := '2';
ParamByName('cd3').AsString := '110506';
Open;
Query_tmp.First;
for i := 0 to RecordCount do
begin
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
Cells[3,Rowcount] := FieldByName('cd4').AsString;
Cells[11,Rowcount] := FieldByName('cd4_rmk').AsString;
Next;
end;
end;
AdvSGrd_RowClear(Self);
end;
end;
procedure TPj_value_Form.AdvSGrd_RowClear(Sender: TObject);
var
i : integer;
begin
for i := 0 to ADvSGrd_init.ColCount do
begin
ADvSGrd_init.Cells[i,ADvSGrd_init.Rowcount] := ' ';
end;
end;
procedure TPj_value_Form.DBAdvStringGrid1DblClick(Sender: TObject);
begin
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
AdvSGrd_RowClear(Self);
AdvSGrd_init.Cells[10,ADvSgrd_init.Rowcount] := 'ManPower 항목';
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
AdvSGrd_RowClear(Self);
with ADvSgrd_init do begin
Cells[10,Rowcount] := 'aaa';
Cells[11,Rowcount] := 'aaa;
end;
end;
procedure TPj_value_Form.DBAdvStringGrid9DblClick(Sender: TObject);
begin
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
AdvSGrd_init.Cells[10,ADvSgrd_init.Rowcount] := '서비스 물품 항목';
ADvSgrd_init.Rowcount := (ADvSgrd_init.RowCount)+1;
AdvSGrd_RowClear(Self);
with ADvSgrd_init do begin
Cells[10,Rowcount] := 'bbb';
Cells[11,Rowcount] := 'bbb';
end;
end;
procedure TPj_value_Form.AdvSGrd_RowClear(Sender: TObject);
var
i : integer;
begin
for i := 0 to ADvSGrd_init.ColCount do
begin
ADvSGrd_init.Cells[i,ADvSGrd_init.Rowcount] := ' ';
end;
end;
여기에서요 ADvSGrd_init.Cells[i,ADvSGrd_init.Rowcount - 1] := ' ';
로 해야 하는거 아닌가요?