?? dbfunctions.pas
字號:
try
J:=0;
vAllWidth:=0;
for I:=0 to mDBGrid.Columns.Count - 1 do
if mDBGrid.Columns[I].Visible then begin
Inc(J);
SetLength(vWidths, J);
vWidths[J - 1]:=mDBGrid.Columns[I].Width;
Inc(vAllWidth, mDBGrid.Columns[I].Width);
end;
if J <=0 then Exit;
mStrings.Clear;
mStrings.Add(Format('<TABLE BGCOLOR="%s" BORDER=1 WIDTH="100%%">',[ColorToHtml(mDBGrid.Color)]));
if mCaption<> '' then mStrings.Add(Format('<CAPTION>%s</CAPTION>', [StrToHtml(mCaption)]));
vColFormat:='';
vColText:='';
vColFormat:=vColFormat + '<TR>'#13#10;
vColText:=vColText + '<TR>'#13#10;
J:=0;
for I:=0 to mDBGrid.Columns.Count - 1 do
if mDBGrid.Columns[I].Visible then begin
vColFormat:=vColFormat + Format(' <TD BGCOLOR="%s" ALIGN=%s WIDTH="%d%%">DisplayText%d</TD>'#13#10,[ColorToHtml(mDBGrid.Columns[I].Color),
cAlignText[mDBGrid.Columns[I].Alignment],Round(vWidths[J] / vAllWidth * 100), J]);vColText:=vColText + Format(' <TD BGCOLOR="%s" ALIGN=%s WIDTH="%d%%">%s</TD>'#13#10,
[ColorToHtml(mDBGrid.Columns[I].Title.Color),cAlignText[mDBGrid.Columns[I].Alignment],Round(vWidths[J] / vAllWidth * 100),StrToHtml(mDBGrid.Columns[I].Title.Caption,
mDBGrid.Columns[I].Title.Font)]);Inc(J);
end;
vColFormat:=vColFormat + '</TR>'#13#10;
vColText:=vColText + '</TR>'#13#10;
mStrings.Text:=mStrings.Text + vColText;
mDBGrid.DataSource.DataSet.First;
while not mDBGrid.DataSource.DataSet.Eof do begin
J:=0;
vColText:=vColFormat;
for I:=0 to mDBGrid.Columns.Count - 1 do
if mDBGrid.Columns[I].Visible then
begin
vColText:=StringReplace(vColText, Format('>DisplayText%d<',[J]),Format('>%s<', [StrToHtml(mDBGrid.Columns[I].Field.DisplayText,mDBGrid.Columns[I].Font)]),[rfReplaceAll]);
Inc(J);
end;
mStrings.Text:=mStrings.Text + vColText;
mDBGrid.DataSource.DataSet.Next;
end;
mStrings.Add('</TABLE>');
finally
mDBGrid.DataSource.DataSet.Bookmark:=vBookmark;
mDBGrid.DataSource.DataSet.EnableControls;
vWidths:=nil;
end;
Result:=True;
end; ///////////////////////把DBGrid組件內的數據內容導出到HTML網頁文件//////////////////////////////
///////////////////////////////把DBGrid組件內的數據內容導出到TXT文本文件//////////////////////////////
function DBGridToTxt(mDBGrid:TDBGrid;mStrings:TStrings;symbol:string=' ';mCaption:TCaption=''):Boolean;
var //symbol為用來分隔各字段間的字符,mCaption文本標題
TempStr,vBookmark:string;
I:Integer;
begin
Result:=False;
Application.ProcessMessages;
if not Assigned(mStrings) then Exit;
if not Assigned(mDBGrid) then Exit;
if not Assigned(mDBGrid.DataSource) then Exit;
if not Assigned(mDBGrid.DataSource.DataSet) then Exit;
if not mDBGrid.DataSource.DataSet.Active then Exit;
vBookmark:=mDBGrid.DataSource.DataSet.Bookmark;
mDBGrid.DataSource.DataSet.DisableControls;
try
mStrings.Clear;
if mCaption<> '' then mStrings.Add(mCaption);
for I:=0 to mDBGrid.Columns.Count-2 do TempStr:=TempStr+'"'+mDBGrid.Columns[I].Title.Caption+'"'+symbol+'';
TempStr:=TempStr+mDBGrid.Columns[I].Title.Caption+'"';
mStrings.Add(TempStr); //將字段標題存入文本
while not mDBGrid.DataSource.DataSet.Eof do
begin
TempStr:='';
for I:=0 to mDBGrid.Columns.Count-2 do
if mDBGrid.Columns[I].Visible then TempStr:=TempStr+'"'+mDBGrid.Columns[I].Field.DisplayText+'"'+symbol+'';
TempStr:=TempStr+mDBGrid.Columns[I].Field.DisplayText+'"';
mStrings.Add(TempStr); //將列表當然一條數據存入文本
mDBGrid.DataSource.DataSet.Next;
end;
finally
mDBGrid.DataSource.DataSet.Bookmark:=vBookmark;
mDBGrid.DataSource.DataSet.EnableControls;
end;
Result:=True;
end; ///////////////////////把DBGrid組件內的數據內容導出到TXT文本文件//////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//在之前uses ComObj,ActiveX
//=============================================================================
// Procedure: GetTempPathFileName
// Author : ysai
// Date : 2003-01-27
// Arguments: (None)
// Result : string
//=============================================================================
{function GetTempPathFileName():string;
//取得臨時文件名
var
SPath,Sfile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(result));
end;
//=============================================================================
// Procedure: CreateAccessFile
// Author : ysai
// Date : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result : boolean
//=============================================================================
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在則失敗
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
//=============================================================================
// Procedure: CompactDatabase
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,APassWord:string
// Result : boolean
//=============================================================================
function CompactDatabase(AFileName,APassWord:string):boolean;
//壓縮與修復數據庫,覆蓋源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
//=============================================================================
// Procedure: ChangeDatabasePassword
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,AOldPassWord,ANewPassWord:string
// Result : boolean
//=============================================================================
function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
//修改ACCESS數據庫密碼
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
format(SConnectionString,[STempFileName,ANewPassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end; }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -