Cxgrid seçme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Cxgrid seçme
Merhaba arkadaşlar, cx grid ile yalnızca seçtiğim hücreleri toplu olarak değiştirme işlemini beceremedim, sadece seçtiğim satırları yakaıyorum ama sutunlarda tümünü değiştiriyor onları kısıtlayamadım bir türlü yardımcı olabilecek misiniz
Re: Cxgrid seçme
Yazdığın kodu gönderebilirmisin. Değiştirme işlemini nasıl yapıyorsun. Ona göre yardımcı olalım.
Re: Cxgrid seçme
haklısınız, kod aşağıdaki gibi
For i := 0 To cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRowCount - 1 Do Begin
With cxgrdbtblvwcxgrd1DBTableView1.DataController Do Begin
xRow := cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows.Index;
For xCol := 0 To cxgrdbtblvwcxgrd1DBTableView1.ColumnCount - 1 Do Begin
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'StartTime') Then Begin
// if AViewInfo.Selected=False then Continue;
// cxGridDBTableView1.DataController.IsRowSelected(i)
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['StartTime']:=(cxdtdt1.Text);
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=(cxdtdt1.Text);
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'FinishedTime') Then Begin
// if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['FinishedTime']:=cxdtdt2.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxdtdt2.Text;
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'Tip') Then Begin
// if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['Tip']:=cxComboBox1.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxComboBox1.Text;
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'RootFolder') Then Begin
//if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['RootFolder']:=cxtxtdt1.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxtxtdt1.Text;
//showmessage(xEmirData);
End
End;
End;
End;
For i := 0 To cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRowCount - 1 Do Begin
With cxgrdbtblvwcxgrd1DBTableView1.DataController Do Begin
xRow := cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows.Index;
For xCol := 0 To cxgrdbtblvwcxgrd1DBTableView1.ColumnCount - 1 Do Begin
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'StartTime') Then Begin
// if AViewInfo.Selected=False then Continue;
// cxGridDBTableView1.DataController.IsRowSelected(i)
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['StartTime']:=(cxdtdt1.Text);
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=(cxdtdt1.Text);
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'FinishedTime') Then Begin
// if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['FinishedTime']:=cxdtdt2.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxdtdt2.Text;
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'Tip') Then Begin
// if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['Tip']:=cxComboBox1.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxComboBox1.Text;
//showmessage(xEmirData);
End else
If (cxgrdbtblvwcxgrd1DBTableView1.Columns[xCol].DataBinding.FieldName = 'RootFolder') Then Begin
//if AViewInfo.Selected=False then Continue;
ShowMessage('Xcol: '+booltostr(cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol))+': '+cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]);
if cxgrdbtblvwcxgrd1DBTableView1.DataController.IsRowSelected(xCol)=False then Continue;
cxgrdbtblvwcxgrd1DBTableView1.Controller.FocusedRow:=cxgrdbtblvwcxgrd1DBTableView1.Controller.SelectedRows;
dxmdt1.Edit;
dxmdt1.FieldValues['RootFolder']:=cxtxtdt1.Text;
dxmdt1.Post;
cxgrdbtblvwcxgrd1DBTableView1.ViewData.Rows[xRow].Values[xCol]:=cxtxtdt1.Text;
//showmessage(xEmirData);
End
End;
End;
End;
Re: Cxgrid seçme
Sadece grid görüntüsünde değiştirecekseniz
Ama verileri değiştirecekseniz
Yaptığım denemelerin videosu
Sadece görüntüde değiştiriyor. İsteğe bağlı olarak kaydet butonu konulup, basıldığında değiştirilen verileri veritabanına güncelleyebilirsiniz.
https://www.youtube.com/watch?v=hMwxt-iXRlE
https://youtu.be/Eb4hklfR_aQ
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
i,RecIdx,ColIdx : Integer;
OutputVal : Variant;
begin
for i := 0 to cxGrid1DBTableView1.Controller.SelectedRecordCount-1 do
begin
RecIdx := cxGrid1DBTableView1.Controller.SelectedRecords[i].RecordIndex;
ColIdx := cxGrid1DBTableView1.DataController.GetItemByFieldName('KolonIsmi').Index;
OutputVal := cxGrid1DBTableView1.DataController.Values[RecIdx, ColIdx];
cxGrid1DBTableView1.DataController.Values[RecIdx,ColIdx] := Edit1.Text;
end;
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
begin
For Index := 0 To cxGrid1DBTableView1.Controller.SelectedRowCount-1 Do
Begin
cxGrid1DBTableView1.Controller.SelectedRows[Index].Focused := True;
ADOQuery1.FieldByName('KolonIsmi').Value := 'Değeriniz';
//yada
ADOQuery1.SQL.Text := 'Insert Into felanfişmekan';
ADOQuery1.ExecSQL;
End;
end;
Sadece görüntüde değiştiriyor. İsteğe bağlı olarak kaydet butonu konulup, basıldığında değiştirilen verileri veritabanına güncelleyebilirsiniz.
https://www.youtube.com/watch?v=hMwxt-iXRlE
https://youtu.be/Eb4hklfR_aQ