⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unitplan.pas

📁 delphi做的名片管理软件
💻 PAS
字号:
unit UnitPlan;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, ComCtrls, UnitPageCut,
  DBCtrls,DateUtils, Mask, GridsEh, DBGridEh;

type
  TPlanFrm = class(TForm)
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    RadioGroup1: TRadioGroup;
    DBGridEh1: TDBGridEh;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Memo1: TMemo;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure DBGrid1Exit(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
     function split(src,dec : string):TStringList;
     function rscount(sqlstr: string):integer;
  public
    { Public declarations }
      UnitPageCut: TUnitPageCut;
    function GridFill(condition:string):string;
    procedure PageCut(pageIndex:integer;pageSize:integer);
  end;

var
  PlanFrm: TPlanFrm;

implementation
 uses UnitDataModule;
{$R *.dfm}

procedure TPlanFrm.Button2Click(Sender: TObject);
var nowdate:string;
begin
  try
    // DBNavigator1.BtnClick(nbInsert);
     DataModule1.ADOQuery4.Insert;
     nowdate:=DateToStr(self.DateTimePicker2.Date);
     DataModule1.ADOQuery4.FieldValues['dsdate']:=nowdate;
     DataModule1.ADOQuery4.FieldValues['detail']:=nowdate;
     DataModule1.ADOQuery4.Post;
  except
     showmessage('error!');
  end;
end;

procedure TPlanFrm.Button4Click(Sender: TObject);
begin
    self.Close;
end;


 //拆分字符串函数
function TPlanFrm.split(src,dec : string):TStringList;
var
  i : integer;
  str : string;
begin
  result := TStringList.Create;
  repeat
    i := pos(dec,src);
    str := copy(src,1,i-1);
    if (str='') and (i>0) then
    begin
      delete(src,1,length(dec));
        continue;
    end;
    if i>0 then
    begin
      result.Add(str);
      delete(src,1,i+length(dec)-1);
    end;
  until i<=0;
  if src<>'' then
    result.Add(src);
end;
function TPlanFrm.GridFill(condition:string):string;
begin
   with DataModule1.ADOQuery4 do
   begin
     Close;
     SQL.Clear;
     SQL.Add(condition);
     Open;
     First;
   end;
   if DataModule1.ADOQuery4.RecordCount>0 then
   begin
     DBGridEh1.DataSource:=DataModule1.DataSource3;
     Button3.Enabled:=True;
   end else
   begin
     Button3.Enabled:=false;
   end;
end;
function TPlanFrm.rscount(sqlstr: string):integer;
begin
    {Result:=0;
    with DataModule1.ADOQuery1 do //查询数据库来判断用户合法性
    begin
        Close;
        SQL.Clear;
        SQL.add(sqlstr);
        open;
        First;
    end;
    Result:=DataModule1.ADOQuery1.FieldValues['totalcount'];}

end;
procedure TPlanFrm.PageCut(pageIndex:integer;pageSize:integer);
{var
  sqlstr:string;

  //pageSize:integer;    //每页要显示的记录的数目。
  recordCount:integer;//数据表中的记录总数。
  pageCount:integer;   //总页数

  tableName : string;    //要查询的数据表。
  queryFields:string;    //要查询的字段。
  primaryKey:string;     //主键字段。
  ascending:Boolean;    //是否为升序排列。
  condition:string;     //查询的筛选条件。}
begin
    {primaryKey:='ID';
    tableName:='PersonInfo';
    ascending:=True;
    queryFields:='*';
    condition:='status=1';
    pageSize:=StrToInt(Edit2.Text);

    recordCount:=self.rscount('select count('+primaryKey+') as totalcount from PersonInfo where '+condition);
    pageCount:=UnitPageCut.GetPageCount(recordCount,pagesize);
    //check
    
    sqlstr:=UnitPageCut.getSQLStr(pageIndex,recordcount,pagesize,
            queryFields,tablename,primaryKey,ascending,condition);

    DBGridFill(sqlstr);

   // Edit1.Text:=IntToStr(pageIndex);
    //Edit2.Text:=IntToStr(pageSize);
    //Edit3.Text:=IntToStr(pagecount);}
end;

procedure TPlanFrm.Button3Click(Sender: TObject);
begin
  //DBNavigator1.BtnClick(nbDelete);
  DataModule1.ADOQuery4.Delete;
end;

procedure TPlanFrm.Button8Click(Sender: TObject);
var
    recordCount:integer;
    pageCount:integer;
    pagesize:integer;
begin
    pagesize:=2;
    recordCount:=self.rscount('select count(ID) as totalcount from PersonInfo where status=1');
    pageCount:=UnitPageCut.GetPageCount(recordCount,pagesize);
    PageCut(pageCount,pagesize);
end;

procedure TPlanFrm.FormShow(Sender: TObject);
begin
     DateTimePicker1.Date:=date;
     DateTimePicker2.Date:=date;
     Memo1.Text:='我的新建计划在';
end;

procedure TPlanFrm.Button5Click(Sender: TObject);
var
  strsql,str:string;
  n:integer;
begin

  case RadioGroup1.ItemIndex of
   0:
   str:='dsdate between #'+datetostr(EncodeDate(YearOf(DateTimePicker1.Date),1,1))+
        '# and #'+datetostr(EncodeDate(YearOf(DateTimePicker1.Date)+1,12,31))+'#';
  1:
  begin
   n:=DateUtils.DaysInMonth(DateTimePicker1.Date);
   str:='dsdate between #'+datetostr(EncodeDate(YearOf(DateTimePicker1.Date),MonthOf(DateTimePicker1.Date),1))+
        '# and #'+datetostr(EncodeDate(YearOf(DateTimePicker1.Date),MonthOf(DateTimePicker1.Date),n))+'#';
  end;
  2:
   str:='dsdate=#'+datetostr(DateTimePicker1.Date)+'#';
  end;
  strsql:='select * from dgdate where '+str+' Order by dsdate DESC';
  GridFill(strsql);
end;

procedure TPlanFrm.DBGrid1Exit(Sender: TObject);
begin
    DataModule1.ADOQuery4.Next;
    DataModule1.ADOQuery4.Prior;
end;

procedure TPlanFrm.RadioGroup1Click(Sender: TObject);
begin
    case  self.RadioGroup1.ItemIndex of
    0:
     begin
     DateTimePicker1.Format:='yyyy';
     DateTimePicker1.DateMode:=dmUpDown;
     end;
    1:
    begin
      DateTimePicker1.Format:='yyyy/MM';
      DateTimePicker1.DateMode:=dmUpDown;
    end;
    2:
    begin
      DateTimePicker1.Format:='';
      DateTimePicker1.DateMode:=dmComboBox;
    end;
   end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -