Unit datatool;
Interface
Uses
Windows, Messages, SysUtils, Variants, Graphics, Classes, Controls, Forms,
Dialogs, ComCtrls, DBGrids, DBGridEhImpExp,DB, DBGridEh;
Type
datatools = Class(TObject)
Public
Class Procedure GetSelectedRecord
(DataSet: TDataSet; FieldName: String;
BookmarkList: TBookmarkList; Strings: TStrings); Overload;
Class Procedure GetSelectedRecord
(DataSet: TDataSet; FieldName: String;
BookmarkList: TBookmarkListEH; Strings: TStrings); Overload;
Class Procedure addValue(dg1: TDBGridEh; col, row: Integer; staticText: String);
Class Procedure addSum(dg1: TDBGridEh; col, row: Integer; FieldName: String);
Class Procedure insertValue(dg1: TDBGridEh; col, row: Integer; staticText: String);
Class Procedure addCount(dg1: TDBGridEh; col, row: Integer; FieldName: String);
class procedure saveto(dbgrid1:TDBGridEh;savedialog1:TSaveDialog);
End;
Const thisyearsumfj = 'SELECT SUM(DS_XH.JE) FROM DS_XH,BM_YSKX WHERE DS_XH.KMBM=BM_YSKX.YSKXBM and BM_YSKX.SZBM=:aa ';
lastyearsumfj = 'SELECT SUM(DS_XH.JE) FROM DS_XH,BM_YSKX WHERE DS_XH.KMBM=BM_YSKX.YSKXBM and BM_YSKX.SZBM=:aa ';
// 'SELECT SUM(KP_KPMX.KPSJ_KPMX) FROM KP_KPZB,KP_KPMX WHERE KP_KPZB.WDH_KPZB=KP_KPMX.WDH_KPZB AND KP_KPMX.SZBM=:AA ';
Implementation
Class Procedure datatools.GetSelectedRecord
(DataSet: TDataSet; FieldName: String;
BookmarkList: TBookmarkListEH; Strings: TStrings);
//GetSelectedRecord(Table1, `NAME`, DBGrid1.SelectedRows, Form2.ListBox1.Items);
// 这个过程中的参数分别为 : 数据表、字段名称、书签、用来保存所选字段内容的
// 字符串 ( 用于将内容传递到另一个单独窗体中的 TLIST 控件中 )
Var
i: Integer;
bm: TBookMark;
Begin
Strings.Clear;
With DataSet Do
Begin
DisableControls;
bm := GetBookMark;
Try
// 每个选择的记录都有一个书签标志,这就为处理它们提供了条件
For i := 0 To BookmarkList.Count - 1 Do
Begin
Bookmark := BookmarkList[i];
Strings.Add(DataSet.FindField(FieldName).AsString);
End;
Finally
GotoBookMark(bm);
FreeBookMark(bm);
EnableControls;
End;
End;
End;
Class Procedure datatools.GetSelectedRecord
(DataSet: TDataSet; FieldName: String;
BookmarkList: TBookmarkList; Strings: TStrings);
//GetSelectedRecord(Table1, `NAME`, DBGrid1.SelectedRows, Form2.ListBox1.Items);
// 这个过程中的参数分别为 : 数据表、字段名称、书签、用来保存所选字段内容的
// 字符串 ( 用于将内容传递到另一个单独窗体中的 TLIST 控件中 )
Var
i: Integer;
bm: TBookMark;
Begin
Strings.Clear;
With DataSet Do
Begin
DisableControls;
bm := GetBookMark;
Try
// 每个选择的记录都有一个书签标志,这就为处理它们提供了条件
For i := 0 To BookmarkList.Count - 1 Do
Begin
Bookmark := BookmarkList[i];
Strings.Add(DataSet.FindField(FieldName).AsString);
End;
Finally
GotoBookMark(bm);
FreeBookMark(bm);
EnableControls;
End;
End;
End;
Class Procedure datatools.addValue(dg1: TDBGridEh; col, row: Integer; staticText: String);
Begin
dg1.columns[col].Footers.Add;
dg1.columns[col].Footers[row].Value := staticText;
dg1.columns[col].Footers[row].ValueType := fvtStaticText;
End;
Class Procedure datatools.insertValue //本列后面的项,会自动后移
(dg1: TDBGridEh; col, row: Integer; staticText: String);
Begin
dg1.columns[col].Footers.Insert(row);
dg1.columns[col].Footers[row].Value := staticText;
dg1.columns[col].Footers[row].ValueType := fvtStaticText;
End;
Class Procedure datatools.addSum(dg1: TDBGridEh; col, row: Integer; FieldName: String);
Begin
dg1.columns[col].Footers.Add;
dg1.columns[col].Footers[row].Value := FieldName;
dg1.columns[col].Footers[row].ValueType := fvtSum;
End;
Class Procedure datatools.addCount(dg1: TDBGridEh; col, row: Integer; FieldName: String);
Begin
dg1.columns[col].Footers.Add;
dg1.columns[col].Footers[row].Value := FieldName;
dg1.columns[col].Footers[row].ValueType := fvtCount;
End;
class procedure datatools.saveto(dbgrid1:TDBGridEh;savedialog1:TSaveDialog);
Var
ExpClass: TDBGridEhExportClass;
Ext: String;
Begin
SaveDialog1.FileName := 'file1';
// if (ActiveControl is TDBGridEh) then
If SaveDialog1.Execute Then
Begin
Case SaveDialog1.FilterIndex Of
1:
Begin
ExpClass := TDBGridEhExportAsText;
Ext := 'txt';
End;
// 2: begin ExpClass := TDBGridEhExportAsCSV; Ext := 'csv'; end;
2:
Begin
ExpClass := TDBGridEhExportAsHTML;
Ext := 'htm';
End;
3:
Begin
ExpClass := TDBGridEhExportAsRTF;
Ext := 'rtf';
End;
4:
Begin
ExpClass := TDBGridEhExportAsXLS;
Ext := 'xls';
End;
Else
ExpClass := Nil;
Ext := '';
End;
If ExpClass <> Nil Then
Begin
If UpperCase(Copy(SaveDialog1.FileName, length(SaveDialog1.FileName) - 2, 3)) <>
UpperCase(Ext) Then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
SaveDBGridEhToExportFile(ExpClass, DBGrid1, SaveDialog1.FileName, true);
End;
End;
End;
End.