tcxgrid에서 볼 수있는 것을 얻는 가장 간단한 방법을 알고 싶습니다. 그러면 버튼을 클릭하면 레코드가 xml 파일로 저장됩니다.tcxgrid의 레코드를 xml 파일로 저장 - Delphi XE2
-1
A
답변
2
ExportGridToXML 프로 시저를 사용할 때의 약간의 문제점은 상당히 숨겨진다는 것입니다. cxGridExportLink 장치를 사용 목록에 추가해야합니다.
uses
cxGridExportLink;
procedure TForm1.SaveToXML1;
var
FileName : String;
begin
FileName := IncludeTrailingPathDelimiter(GetEnvironmentVariable('Temp'));
FileName := FileName + 'Grid.XML';
ExportGridToXML(FileName, cxGrid1);
end;
그러면 XML 파일이 \ 사용자 [사용자 이름] \ 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;
알고있는 부분과 알지 못하는 부분은 무엇인가요? 당신은 지금까지 무엇을 시도 했습니까? –
TcxGrid의 설명서를 보셨습니까? 간단한 구글 검색에서 적절한 이름의 ExportGridToXML 함수가있는 것으로 보입니다. 너 그거 해봤 니? 작동하지 않는거야? –
지금까지 나는 버튼과 tcxgrid가있는 폼을 가지고 있는데, 데이터베이스의 테이블을보고있는 tadqueries를 사용하여 데이터베이스와 대화하고있는 데이터 모듈을 가지고있다. tcxgrid는 프로그램을 실행할 때 올바른 데이터를 표시합니다. 이게 도움이된다면 내가 어디 있는지 정확히 알 겠어. 더 이상의 도움을 많이 주시면 감사하겠습니다. – Sharpie