📄 finddailyfrm.pas
字号:
unit FindDailyFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGridEh, Db, ADODB, StdCtrls, Buttons, ComCtrls, ExtCtrls,
DBCtrls, Mask;
type
TFindDailyForm = class(TForm)
Panel1: TPanel;
Panel3: TPanel;
DTPBegin: TDateTimePicker;
DTPEnd: TDateTimePicker;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
DBGridEh1: TDBGridEh;
BitBtn3: TBitBtn;
ADOQuery2: TADOQuery;
ADOQuery2storeCode: TWideStringField;
DBEdit1: TDBEdit;
DataSource2: TDataSource;
ADOQuery3: TADOQuery;
ADOQuery2storename: TStringField;
DBLookupComboBox1: TDBLookupComboBox;
ADOQuery1DSDesigner: TWideStringField;
ADOQuery1DSDesigner2: TWideStringField;
ADOQuery1DSDesigner3: TDateTimeField;
ADOQuery1DSDesigner4: TFloatField;
ADOQuery1DSDesigner5: TFloatField;
ADOQuery1DSDesigner6: TWideStringField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure DBGridEh1TitleBtnClick(Sender: TObject; ACol: Integer;
Column: TColumnEh);
procedure DBGridEh1SortMarkingChanged(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure DTPBeginChange(Sender: TObject);
procedure DTPBeginCloseUp(Sender: TObject);
procedure DTPEndChange(Sender: TObject);
procedure DTPEndCloseUp(Sender: TObject);
private
{ Private declarations }
ColumnIndex: integer;
function BeforeMonthDate(consultDate: TDateTime): TDateTime;
public
{ Public declarations }
end;
var
FindDailyForm: TFindDailyForm;
implementation
uses Umain, U_DM;
{$R *.DFM}
procedure TFindDailyForm.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Frmmain.Outlook1.Visible :=true;
frmmain.Panel1.Visible:=true;
Frmmain.Panel2.Visible:=True;
frmmain.Label1.Caption:='';
frmmain.LTitle.Caption := '';
Action := caFree;
end;
procedure TFindDailyForm.FormDestroy(Sender: TObject);
begin
FindDailyForm := nil;
end;
procedure TFindDailyForm.FormActivate(Sender: TObject);
begin
frmmain.LTitle.Caption := '日报查询统计';
frmmain.Outlook1.Visible:=False;
frmmain.Panel1.Visible:=true;
frmmain.Panel2.Visible:=false;
end;
procedure TFindDailyForm.BitBtn2Click(Sender: TObject);
begin
Close;
end;
procedure TFindDailyForm.DBGridEh1TitleBtnClick(Sender: TObject;
ACol: Integer; Column: TColumnEh);
begin
ColumnIndex := ACol;
end;
procedure TFindDailyForm.DBGridEh1SortMarkingChanged(Sender: TObject);
var
OrderStr: string;
begin
if DBGridEh1.Columns[ColumnIndex].Title.SortMarker = smUpEh then
OrderStr := 'ASC'
else
OrderStr := 'DESC';
ADOQuery1.Open;
ADOQuery1.Sort := DBGridEh1.Columns[ColumnIndex].Title.Caption+OrderStr;
end;
procedure TFindDailyForm.FormCreate(Sender: TObject);
begin
DTPBegin.Date := BeforeMonthDate(Date);
DTPEnd.Date := Date;
end;
procedure TFindDailyForm.BitBtn1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' SELECT xs_DailyMaster.DailyCode AS 日报编号, ');
SQL.Add(' xs_store.StoreName AS 分销店名称, ');
SQL.Add(' xs_store.type AS 分销店类型, ');
SQL.Add(' xs_DailyMaster.DateTime AS 上报时间, ');
SQL.Add(' sum(xs_Dailydetail.Total) AS 总数量, ');
SQL.Add(' sum(xs_Dailydetail.Amount) AS 总金额, ');
SQL.Add(' xs_DailyMaster.InputPerson AS 录入人 ');
SQL.Add(' FROM xs_DailyMaster Left outer join ');
SQL.Add(' xs_store on xs_dailyMaster.storecode = xs_store.storecode ');
SQL.Add(' join xs_DailyDetail on xs_dailymaster.dailyCode = xs_dailydetail.dailycode ');
SQL.Add(' WHERE xs_DailyMaster.DateTime >=:a AND xs_DailyMaster.DateTime <=:b ');
SQL.Add(' AND xs_DailyMaster.StoreCode LIKE '''+DBEdit1.Text+''' ');
SQL.Add(' group by xs_DailyMaster.DailyCode,xs_store.StoreName, ');
SQL.Add(' xs_store.type,xs_DailyMaster.DateTime,InputPerson ');
Parameters[0].Value := DTPBegin.Date;
Parameters[1].Value := DTPEnd.Date;
Open;
end;
end;
procedure TFindDailyForm.DTPBeginChange(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
DTPBegin.Color := clsilver
else
DTPBegin.Color := clWindow;
end;
procedure TFindDailyForm.DTPBeginCloseUp(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
begin
DTPBegin.Color := clWindow;
DTPBegin.Date := DTPEnd.Date;
end;
end;
procedure TFindDailyForm.DTPEndChange(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
DTPEnd.Color := clsilver
else
DTPEnd.Color := clWindow;
end;
procedure TFindDailyForm.DTPEndCloseUp(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
begin
DTPEnd.Color := clWindow;
DTPEnd.Date := DTPBegin.Date;
end;
end;
function TFindDailyForm.BeforeMonthDate(consultDate: TDateTime): TDateTime;
var
year,month,day,year_1,month_1: word;
days,days1,days2: integer;
begin
decodeDate(consultDate,year,month,day);
if month <> 1 then
begin
month_1 := month-1;
year_1 := year;
end
else
begin
month_1 := 12;
year_1 := year-1;
end;
days1 := DateTimeToTimeStamp(encodeDate(year,month,1)).Date;
days2 := DateTimeToTimeStamp(encodeDate(year_1,month_1,1)).Date;
days := days1-days2;
if day < days then
result := encodeDate(year_1,month_1,day)
else
result := encodeDate(year_1,month_1,days);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -