这是我如何将数据输入数据库的非常简短的描述。
procedure TMain_Form.AdvGlowButton1Click(Sender: TObject);
begin
MYQUERY.Close;
MYQUERY.SQL.Clear;
MYQUERY.SQL.Add('INSERT INTO MYTABLE (FOR_DATE,SOMETEXT) VALUES(:a1,:a2)');
MYQUERY.Params.ParamByName('a1').asDate :=PlannerCalendar1.Date;
MYQUERY.Params.ParamByName('a2').Value :=cxMemo1.Lines.Text ;
MYQUERY.ExecSQL;
end;
这工作正常。数据被插入。它显示在 cxGrid1 中。
现在,我想做的是从这个 cxGrid1 复制整个记录(仅选定的记录)并将其粘贴(插入)到不同的日期,即在 PlannerCalendar1 中选定的日期。
我使用“发送到所选日期”选项实现了 cxgridpopup 菜单,但我不知道如何从 cxGrid1 复制基础数据。
目标是在日历中选择一个日期,然后转到 cxGrid1,选择一条记录,右键单击它并(使用弹出菜单选项),然后将整个选定的记录插入到新选择的日期。基本上是克隆记录但到不同的日期。我怎样才能做到这一点 ?
(PlannerCalendar1 是一个 TMS 组件)
编辑:在这里找到一些信息https://www.devexpress.com/Support/Center/Question/Details/A302 但不确定它是否适合我的情况。
编辑:我试过这种方式,它不会工作:
Procedure CopyTableRecord(View: TcxGridTableView; IndexToCopy : Integer);
var i:integer;
PlannerCalendar1:TPlannerCalendar;
Begin
View.DataController.Insert;
For I := 0 To Pred(View.ColumnCount) Do
View.Columns[I].EditValue := view.DataController.Values[1, I];
View.Columns[1].EditValue := PlannerCalendar1.Date;
View.DataController.Post(True);
End;
procedure TMain_Form.Sendto1Click(Sender: TObject);
begin
CopyTableRecord(cxGrid1DBTableView1, cxGrid1DBTableView1.DataController.FocusedRecordIndex);
end;