| begin
Result := _asFieldName.Count;
end;
function TXlsExpAdapter.GetXlsTitle(const iniIndex : Integer) : string;
begin
if (iniIndex >= 0) and (iniIndex <= _aDataType.Count-1) then
begin
Result := _asXlsTitle[iniIndex];
end;
end;
function TXlsExpAdapter.GetFieldName(const iniIndex : Integer) : string;
begin
if (iniIndex >= 0) and (iniIndex <= _aDataType.Count-1) then
begin
Result := _asFieldName[iniIndex];
end;
end;
function TXlsExpAdapter.GetDataType(const iniIndex : Integer) : TDataType;
begin
if (iniIndex >= 0) and (iniIndex <= _aDataType.Count-1) then
begin
Result := TDataType(_aDataType[iniIndex]);
end;
end;
procedure TXlsExpAdapter.GetInfoFromDBGrid(const ingrid : TDBGrid);
var
i, j : Integer;
dt : TDataType;
begin
for i := 0 to ingrid.Columns.Count-1 do
begin
if ingrid.Columns[i].Visible then
begin
dt := ftUnknown;
for j := 0 to ingrid.FieldCount-1 do
begin
if ingrid.Columns[i].FieldName = ingrid.Fields[j].FieldName then
begin
dt := ingrid.Fields[j].DataType;
Break;
end;
end;
Self.AddField(ingrid.Columns[i].FieldName, ingrid.Columns[i].Title.Caption, dt);
end;
end;
end;
procedure TXlsExpAdapter.AddField(const insFieldName, insCaption : string; const intype : TDataType = ftUnKnown);
var
iIndex : Integer;
begin
iIndex := _asFieldName.IndexOf(insFieldName);
if iIndex = -1 then
begin
_asFieldName.Add(insFieldName);
_asXlsTitle.Add(insCaption);
_aDataType.Add(TObject(intype));
end
else begin
_asFieldName[iIndex] := insFieldName;
_asXlsTitle[iIndex] := insCaption;
_aDataType[iIndex] := TObject(intype);
end;
end;
constructor TXlsExpAdapter.Create();
begin
_asFieldName := TStringList.Create();
_asXlsTitle := TStringList.Create();
_aDataType := TObjectList.Create();
end;
destructor TXlsExpAdapter.Destroy();
begin
end;
function TManagedDataSet.ExportToXls(const inadapter : TXlsExpAdapter) : Boolean;
var
excelobj : OleVariant;
i : Integer;
begin
Result := False;
if not Self.Active then
Exit;
&nb 上一页 [1] [2] [3] [4] 下一页 |