PDA

View Full Version : بروزآوری کوئری متصل به dbgridEH با استفاده از چک باکس گرید



khoshblagh
پنج شنبه 28 تیر 1397, 00:25 صبح
با سلام خدمت دوستان
میخواهم از طریق چک باکس مربوط به dbgrideh ردیفهایی که چک باکس آنها تیک خورده به صورت گروهی فیلد خاصی را بروزآوری نمایم. احتمالا باید از SelectedRows در این مورد استفاده نمود. ولی تلاش من نتیجه نداد. دوستان در صورت امکان راهنمایی بفرمایند. متشکرم

حسین خانی
جمعه 05 مرداد 1397, 21:26 عصر
با نمونه کد زیر میشه مقادیر فیلد Name سطرهای انتخاب شده با چک باکس و نمایش داد. میتونید تو بدنه این نمونه کد بجای نمایش مقادیر، عمل بروزرسانی و انجام بدید.

vari: Integer;
KeyValue: Variant;
msg:string;

begin
msg := '[';
KeyValue := VarArrayCreate([0, DBGridEh1.SelectedRows.Count-1], varVariant);
for i := 0 to DBGridEh1.SelectedRows.Count-1 do
begin
MemTableEh1.Bookmark := DBGridEh1.SelectedRows[i];
msg := msg + MemTableEh1Name.AsString;
if i < DBGridEh1.SelectedRows.Count-1 then
msg := msg + ',';
KeyValue[i] := MemTableEh1id.Value;
end;
msg := msg + ']';
ShowMessage(msg);
end;

khoshblagh
شنبه 06 مرداد 1397, 02:01 صبح
ضمن تشکر از جناب حسین خانی
این نمونه را در نت پیدا و برای نیازم آنرا اصلاح نمودم .


if dbgDastorKarOK.SelectedRows.Count>0 then
with dbgDastorKarOK.DataSource.DataSet do
for i:=0 to dbgDastorKarOK.SelectedRows.Count-1 do
begin
GotoBookmark(pointer(dbgDastorKarOK.SelectedRows.I tems[i]));
qrydbgDastorKarOK.Edit;
qrydbgDastorKarOK.FieldByName('IsRedySorVaz').Valu e:=True ;
qrydbgDastorKarOK.Post;
intRecNumber:=qrydbgDastorKarOK.RecNo;
end;