当前位置:主页>仓库管理软件> 列表

请教:怎样表示DBGrid里被选中的行

仓库管理软件版1楼: 谢了!

2楼: DBGrid1.SelectedRows; 如进销存管理系统论文

3楼: DBGrid1.SelectedRows;好像不能对数据进行添加删除操作

所以再请教,如何对选中的行进行添加,修改等操作

4楼: 多选并删除所选的内容
设置dbgrideh里的options里的dgmultiselect为true
设置dbgrideh里的options里的dgrowselect为true
删除代码为:
procedure TForm1.Button1Click(Sender: TObject);
begin
dbgrideh1.SelectedRows.Delete;
end;

5楼: 当然是可以修改的
设置dbgrideh里的options里的dgmultiselect为true,其它的按默认的设置,如果把dgrowselect设为True了那就改为了了。

6楼: dbgrideh1.SelectedRows是选择记录的BookMark
要用GoToBookMark 后就可以操作了

仓库管理软件版7楼: 试了一下,GoToBookMark不起作用

且上面大家只谈到Delete

如果要把选中行的某些Feild的值赋给别的变量,又该如何做

请指教!

8楼: for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[i]));


DBGrid1.DataSource.DataSet.Delete;
DBGrid1.DataSource.DataSet.Field...........都成了
end;

9楼: 删除
with DBGridEh1.DataSource.DataSet do
begin
delete;
close;
open;
end;
追加
append;

10楼: 主要进行的操作是把DBGrid中选中的行的某些字段赋给另一个表的某些字段
for i:=0 to (DBG.SelectedRows.Count-1) do
begin
.Append;
.FieldByName('',,,'').AsString:=????.AsString;
.FieldByName(''..'').AsString:=????.AsString;
.FieldByName(_Date'').AsDateTime:=StrToDateTime(formatdatetime(''yyyy/mm/dd'',now));
.Post;
.Next;
end;
等号左边的是另外一个表,不是DBGrid中显示的那个表,而右边是DBGrid中所选中行
的记录的某个字段,
所以问题就是如何表示????中的内容?

请指教

11楼: for i:=0 to (DBG.SelectedRows.Count-1) do
begin
.Append;
.FieldByName('',,,'').AsString:=String(DBGrid1.DataSource.DataSet.FieldValue[''yourfieldname'']);
.FieldByName(''..'').AsString:=String(DBGrid1.DataSource.DataSet.FieldValue[''yourfieldname'']);


.FieldByName(_Date'').AsDateTime:=StrToDateTime(formatdatetime(''yyyy/mm/dd'',now));
.Post;
.Next;
end;

12楼: 试了一下,好像写不进数据,

而且还有个问题:String(DBGrid1.DataSource.DataSet.FieldValue[''yourfieldname'']);
这条语句循环一次后,会不会指向下一个数据. 如教育软件销售技巧

13楼: 哦,还有这条语句
DBGrid1.DataSource.DataSet.next;
执行的是选中行的下一条记录;
还是整个表的下一条记录

仓库管理软件版14楼: 顶一下,问题棘手!

15楼: 注:如设置dbgrid里的options里的dgrowselect为true,
则不能在DBGRIDEH上进行手工编辑

16楼: 首先,要修改的表先要连接到一个Table后或Query,提供数据的连接到DBGrid1,将dgrowselect设为True
for i:=0 to DBGrid1.SelectedRows.Count-1 do
begin
DBGrid1.DataSource.DataSet.GotoBookmark(Pointer(DBGrid1.SelectedRows[i]));
Table1.Append;
Table1.FieldByName(''???'').Value:=DBGrid1.DataSource.DataSet.FieldByName
...


Table1.Post;
end;
这样肯定成

17楼: 接受答案了.