datatool

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值