tcxgrid に表示されているものを取得し、ボタンをクリックするだけでレコードを xml ファイルに保存する最も簡単な方法を知りたいです。
1 に答える
2
ExportGridToXML プロシージャを使用する際の唯一の小さな問題は、かなりうまく隠されていることです。 cxGridExportLink ユニットを uses リストに追加する必要があります。
uses
cxGridExportLink;
procedure TForm1.SaveToXML1;
var
FileName : String;
begin
FileName := IncludeTrailingPathDelimiter(GetEnvironmentVariable('Temp'));
FileName := FileName + 'Grid.XML';
ExportGridToXML(FileName, cxGrid1);
end;
これにより、XML ファイルが \users[your name]\appdata\local\Temp に保存されます。グリッドに列を持つデータセット フィールドのみが含まれることに注意してください。
次の手順は、データセットを XML に保存する別の方法を示しています。これは、グリッドをバイパスし、cxGrid に列があるかどうかに関係なく、データセットのすべてのフィールドのデータ値を保存します。これは、TDataSetProvider を介してデータセットのデータを一時的な TClientDataSet にコピーし、TClientDataSet の組み込み機能を使用してそのデータを XML に保存することによって機能します。渡されたデータセットが設定している可能性のあるすべてのフィルターを尊重します。
procedure TForm1.SaveToXML2(DataSet : TDataSet);
var
FileName : String;
DSP : TDataSetProvider;
CDS : TClientDataSet;
begin
FileName := IncludeTrailingPathDelimiter(GetEnvironmentVariable('Temp'));
FileName := FileName + 'Grid2.XML';
DSP := TDataSetProvider.Create(Self);
CDS := TClientDataSet.Create(Self);
try
DSP.DataSet := DataSet;
DSP.Name := 'TempProvider';
CDS.ProviderName := DSP.Name;
DataSet.DisableControls; // otherwise you will see the source dataset scrolling
// if it's shown in a grid
CDS.Open;
CDS.SaveToFile(FileName, dfXML);
finally
DataSet.EnableControls;
CDS.Free;
DSP.Free;
end;
end;
于 2014-11-25T17:19:30.163 に答える