有个单据表, 我象在明细里插一条记录(adodataset.insert) 可是一post后就跑到最后一条去了
该怎么弄才能让这条数据在插入的那个位置?
该怎么弄才能让这条数据在插入的那个位置?
解决方案 »
- 求救生成xml用ADOQuery_Bind.SaveToFile('aaa.xml',pfXML)速度很快,能否直接导入stream不生成临时文件aaa.xml
- 请教大侠,这种打印报表delphi怎么做呢?
- dll的两个问题!!!在线等!!!!!
- Activex弹出窗口问题
- 大家帮我看看这样的if---then对不??
- 作一个小的程序,应不应该叫做c/s,怎么作?
- 急!!!!倾家荡产求一DLL,大家帮忙!!!BOSS催的紧,在线等答!!!
- 一个小问题:如何使一个子控件脱离它的父控件.
- 請問'事務'中的'raise'語句是是麼意思??( 小問題)謝謝
- 多线程读写文件的问题。
- vclskin 只要一用 opendialog或savedialog 就出现内存 "read of address 00000000" 错误
- 服装销售系统项目方案
可是不管是append还是insert 只要post后就跑到最后一行去了, 有办法解决吗?(除UpdateBatch后再调整的方法外,这样对我来讲没有意义)
我是说在录单据还没提交到数据库那时候的顺序 用adodataset.insert是可以在中间插一条记录 可以一post就跑到网格的最后一行了
用table控件的insert试试
你要先用locate定位到你要插入的地方,
然后insert
在post
即可!
Var
lfd_FieldDef: TFieldDef;
Begin
ds := TClientDataSet.Create(Nil);
lfd_FieldDef := ds.FieldDefs.AddFieldDef;
lfd_FieldDef.Name := 'ID';
lfd_FieldDef.DataType := ftString;
lfd_FieldDef.Size := 8;
ds.CreateDataSet; ds.Append;
ds.FieldByName('ID').AsString := '1';
ds.Post; ds.Append;
ds.FieldByName('ID').AsString := '2';
ds.Post; If ds.Locate('ID', VarArrayOf(['1']), []) Then
Begin
ds.Insert;
ds.FieldByName('ID').AsString := '0';
ds.Post;
End; DataSource1.DataSet := ds;
End;