大大的问题!!!! 如下:现在已经在dbgrid 中用shift 选择了连续的三条数据,用control 选择了五条不连续的数据,现在要把这八条数据插入到另外一个空的表中,怎么办? 关键是怎样得到选择的每一条数据呢????? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己已经解决:如下://以下基本思想:var i : integer; bm : book; //pointerwith dataset dobegindisablecontrols;bm := getbook;try for i := 0 to booklist.count-1 do begin book := booklist[i]; do sth; end;finally gotobook(bm); freebook(bm); enablecontrols;end;end;//以下具体点的实现:procedure TfmMainForm.PrintReClick(Sender: TObject);var i : Integer; bm : Pointer; CorpName : String; Manager : String; Address : String; Tel : String; Zip : String;begin if DM.QueryRe.CanModify = True then begin DM.QueryRe.First; DM.QueryRe.Edit; while not DM.QueryRe.Eof do begin DM.QueryRe.Delete; // DM.QueryRe.Next; end; end; with DM.Query do //important begin DM.Query.DisableControls; //accelerate bm := DM.Query.GetBook; //get book try for i := 0 to DataTable.SelectedRows.Count-1 do //important begin DM.Query.Book := DataTable.SelectedRows[i]; //important CorpName := vartostr(DM.Query.FieldValues['CorpName']); Manager := vartostr(DM.Query.FieldValues['Manager']); Address := vartostr(DM.Query.FieldValues['Address']); Zip := vartostr(DM.Query.FieldValues['MailNum']); Tel := vartostr(DM.Query.FieldValues['Tel']); DM.QueryRe.Append; DM.QueryRe.FieldByName('CorpName').AsString := CorpName; DM.QueryRe.FieldByName('Manager').AsString := Manager; DM.QueryRe.FieldByName('Address').AsString := Address; DM.QueryRe.FieldByName('MailNum').AsString := Zip; DM.QueryRe.FieldByName('Tel').AsString := Tel; DM.QueryRe.Post; end; finally //important DM.Query.GotoBook(bm); DM.Query.FreeBook(bm); DM.Query.EnableControls; end; end; fmNorMalPrint.QuickRepN.DataSet := DM.QueryRe; fmNormalPrint.NCorpName.DataSet := DM.QueryRe; fmNormalPrint.NAddress.DataSet := DM.QueryRe; fmNormalPrint.NZip.DataSet := DM.QueryRe; fmNormalPrint.NTel.DataSet := DM.QueryRe; fmMailPrint.QuickRepA.DataSet := DM.QueryRe; fmMailPrint.AZip.DataSet := DM.QueryRe; fmMailPrint.AAddress.DataSet := DM.QueryRe; fmMailPrint.ACorpName.DataSet := DM.QueryRe; fmMailPrint.AManager.DataSet := DM.QueryRe;end; 求救:SQL和单引号的问题。 救命呀!急 不98不兼容问题 DBLookupComboBox如何在得到焦点时,自动弹出选项菜单? 树形控件添加节点(送100分,不够再加) 三层结构的问题!急急! TClientDataSet分布式读取数据时出现错误(cds.open时成员不存在) 关于字体的问题 请问怎么样改变文件夹的外观(就像金山毒霸的文件夹一样) 请问如何实现用数组控件?比如在窗口上摆100个按纽?谢谢!!! Help! 组件奇怪的消失了 delphi中访问oracle数据库,不安装oracle client,要怎么做?
//以下基本思想:
var
i : integer;
bm : book; //pointer
with dataset do
begin
disablecontrols;
bm := getbook;
try
for i := 0 to booklist.count-1 do
begin
book := booklist[i];
do sth;
end;
finally
gotobook(bm);
freebook(bm);
enablecontrols;
end;
end;//以下具体点的实现:
procedure TfmMainForm.PrintReClick(Sender: TObject);
var
i : Integer;
bm : Pointer;
CorpName : String;
Manager : String;
Address : String;
Tel : String;
Zip : String;
begin
if DM.QueryRe.CanModify = True then
begin
DM.QueryRe.First;
DM.QueryRe.Edit;
while not DM.QueryRe.Eof do
begin
DM.QueryRe.Delete;
// DM.QueryRe.Next;
end;
end; with DM.Query do //important
begin
DM.Query.DisableControls; //accelerate
bm := DM.Query.GetBook; //get book
try
for i := 0 to DataTable.SelectedRows.Count-1 do //important
begin
DM.Query.Book := DataTable.SelectedRows[i]; //important CorpName := vartostr(DM.Query.FieldValues['CorpName']);
Manager := vartostr(DM.Query.FieldValues['Manager']);
Address := vartostr(DM.Query.FieldValues['Address']);
Zip := vartostr(DM.Query.FieldValues['MailNum']);
Tel := vartostr(DM.Query.FieldValues['Tel']); DM.QueryRe.Append;
DM.QueryRe.FieldByName('CorpName').AsString := CorpName;
DM.QueryRe.FieldByName('Manager').AsString := Manager;
DM.QueryRe.FieldByName('Address').AsString := Address;
DM.QueryRe.FieldByName('MailNum').AsString := Zip;
DM.QueryRe.FieldByName('Tel').AsString := Tel;
DM.QueryRe.Post;
end;
finally //important
DM.Query.GotoBook(bm);
DM.Query.FreeBook(bm);
DM.Query.EnableControls;
end;
end; fmNorMalPrint.QuickRepN.DataSet := DM.QueryRe;
fmNormalPrint.NCorpName.DataSet := DM.QueryRe;
fmNormalPrint.NAddress.DataSet := DM.QueryRe;
fmNormalPrint.NZip.DataSet := DM.QueryRe;
fmNormalPrint.NTel.DataSet := DM.QueryRe; fmMailPrint.QuickRepA.DataSet := DM.QueryRe;
fmMailPrint.AZip.DataSet := DM.QueryRe;
fmMailPrint.AAddress.DataSet := DM.QueryRe;
fmMailPrint.ACorpName.DataSet := DM.QueryRe;
fmMailPrint.AManager.DataSet := DM.QueryRe;
end;