📄 unitplan.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 + -