📄 findsellproductfrm.pas
字号:
unit FindSellProductFrm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, ADODB, StdCtrls, Buttons, ComCtrls, Grids, DBGridEh, ExtCtrls;
type
TFindSellProductForm = class(TForm)
Panel3: TPanel;
DBGridEh1: TDBGridEh;
Panel1: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DTPBegin: TDateTimePicker;
DTPEnd: TDateTimePicker;
ComboBox1: TComboBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
ADOQuery1: TADOQuery;
DataSource1: TDataSource;
ADOQuery2: TADOQuery;
ADOQuery1DSDesigner: TWideStringField;
ADOQuery1DSDesigner2: TWideStringField;
ADOQuery1DSDesigner3: TDateTimeField;
ADOQuery1DSDesigner4: TWideStringField;
ADOQuery1DSDesigner5: TWideStringField;
ADOQuery1DSDesigner6: TWideStringField;
ADOQuery1DSDesigner7: TFloatField;
ADOQuery1DSDesigner8: TFloatField;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure FormActivate(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
FindSellProductForm: TFindSellProductForm;
implementation
uses Umain, U_DM;
{$R *.DFM}
procedure TFindSellProductForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
frmmain.LTitle.Caption := '';
Frmmain.Outlook1.Visible :=true;
frmmain.Panel1.Visible:=true;
Frmmain.Panel2.Visible:=True;
frmmain.Label1.Caption:='';
Action := caFree;
end;
procedure TFindSellProductForm.FormDestroy(Sender: TObject);
begin
FindSellProductForm := nil;
end;
procedure TFindSellProductForm.FormActivate(Sender: TObject);
begin
frmmain.Outlook1.Visible:=False;
frmmain.Panel1.Visible:=true;
frmmain.Panel2.Visible:=false;
frmmain.LTitle.Caption := '产品销售统计';
end;
procedure TFindSellProductForm.DBGridEh1TitleBtnClick(Sender: TObject;
ACol: Integer; Column: TColumnEh);
begin
ColumnIndex := ACol;
end;
procedure TFindSellProductForm.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 TFindSellProductForm.FormCreate(Sender: TObject);
var
i: integer;
begin
DTPBegin.DateTime := BeforeMonthDate(Date);
DTPEnd.DateTime := Date;
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add(' SELECT DISTINCT ProductCode ');
SQL.Add(' FROM xs_dailyDetail ');
SQL.Add(' ORDER BY productCode ');
Open;
end;
ComboBox1.Items.Clear;
for i:=0 to ADOQuery2.RecordCount-1 do
begin
ComboBox1.Items.Add(ADOQuery2['productCode']);
ADOQuery2.Next;
end;
end;
procedure TFindSellProductForm.BitBtn1Click(Sender: TObject);
begin
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' select xs_dailyMaster.dailyCode ''日报编码'', ');
SQL.Add(' xs_store.storeName ''分销店名称'', ');
SQL.Add(' xs_dailyMaster.DateTime ''上报时间'', ');
SQL.Add(' xs_dailyDetail.productCode ''产品编码'', ');
SQL.Add(' js_shoeskind1.s_name ''样式'', ');
SQL.Add(' js_shoeskind2.s_name ''鞋别'', ');
SQL.Add(' xs_dailyDetail.Total ''数量'', ');
SQL.Add(' xs_dailyDetail.Amount ''金额'' ');
SQL.Add(' from xs_dailyMaster inner join xs_dailyDetail ');
SQL.Add(' on Xs_dailyMaster.DailyCode = Xs_dailyDetail.DailyCode ');
SQL.Add(' Left outer join xs_store on ');
SQL.Add(' xs_dailyMaster.StoreCode = xs_store.StoreCode ');
SQL.Add(' inner join js_product1 on ');
SQL.Add(' js_product1.shoes_num = xs_dailyDetail.productCode ');
SQL.Add(' inner join js_shoeskind1 on ');
SQL.Add(' js_product1.shoes1_num = js_shoeskind1.s_number ');
SQL.Add(' inner join js_shoeskind2 on ');
SQL.Add(' js_product1.shoes2_num = js_shoeskind2.s_number ');
SQL.Add(' WHERE xs_dailyMaster.DateTime>=:a AND xs_dailyMaster.DateTime<=:b ');
SQL.Add(' AND xs_dailyDetail.productCode LIKE '''+ComboBox1.Text+'''');
Parameters[0].Value := DTPBegin.Date;
Parameters[1].Value := DTPEnd.Date;
Open;
end;
end;
procedure TFindSellProductForm.DTPBeginChange(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
DTPBegin.Color := clsilver
else
DTPBegin.Color := clWindow;
end;
procedure TFindSellProductForm.DTPBeginCloseUp(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
begin
DTPBegin.Color := clWindow;
DTPBegin.Date := DTPEnd.Date;
end;
end;
procedure TFindSellProductForm.DTPEndChange(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
DTPEnd.Color := clsilver
else
DTPEnd.Color := clWindow;
end;
procedure TFindSellProductForm.DTPEndCloseUp(Sender: TObject);
begin
if DTPBegin.Date>DTPEnd.Date then
begin
DTPEnd.Color := clWindow;
DTPEnd.Date := DTPBegin.Date;
end;
end;
function TFindSellProductForm.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 + -