XML文件的格式如下
<?xml version="1.0" standalone="yes"?>
<DATAPACKET Version="2.0">
<MetaDATA>
<FIELDS>
<FIELD attrname="aaa" fieldtype="string" WIDTH="20"/>
</FIELDS>
<PARAMS/>
</MetaDATA>
<ROWDATA>
<ROW RowState="4" aaa="aaa"/>
<ROW RowState="4" aaa="bbbb"/>
<ROW RowState="4" aaa="cccc"/>
</ROWDATA>
</DATAPACKET>
在 delphi 中,ClientDataSet 可以读取 xml 文件,并将它转换成数据集,要完成这一点,必须在 xml 文件中拥有 dataPacket,也就是根节点的名称必须是 DATAPACKET,并且版本为 2.0
MetaData 用于指出表的字段及参数,字段用 Fields 标识出,格式如
rowData 用于指出实际的数据,它必须与 Fields 中所指示的字段对应起来
做完这些以后,就能够用 ClientDataSet 读写了
ClientDataSet1.FileName := <xml文件名>
配置TClientDataSet
ClientDataSet,DataSource,DBGrid
三者数据源相互绑定,而且ClientDataSet的FileName指向被发现的Xml文档即可!!
而且要配置ClientDataSet的Active为True才能实现数据查看,也可以在代码里面实现Active为True
ClientDataSet 排序
在 DBGRID表格编辑器里面点击OnTitleClick事件,在事件里面写
procedure TForm1.dbgrd1TitleClick(Column: TColumn);
begin
ds1.IndexFieldNames:=Column.FieldName;//表示按照字段名称默认排序
end;
ClientDataSet 筛选
procedure TForm1.btn5Click(Sender: TObject); begin ds1.Filter:='aaa='+ QuotedStr('bbb'); //aaa表示字段名,bbb表示字段的某数据 ds1.Filtered := True;//表示执行筛选过程 end;