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

📄 findsellproductfrm.pas

📁 相关的销售服务管理行业的一个软件
💻 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 + -