ufrm_sales_report.pas

来自「完整的进销存系统。 设计文件及完整的源代码。 Delphi6.0」· PAS 代码 · 共 284 行

PAS
284
字号
unit Ufrm_sales_report;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ufrm_level1, ExtCtrls, StdCtrls, Buttons, DB, DBTables, ppDB,
  ppDBPipe, ppDBBDE, ppBands, ppClass, ppCtrls, ppPrnabl, ppCache, ppComm,
  ppRelatv, ppProd, ppReport, dxCntner, dxEditor, dxExEdtr, dxEdLib,
  dxDBELib, ppVar, ppModule, raCodMod, DateUtils;

type
//  Tfrm_sales_report = class(Tfrm_level1)
  Tfrm_sales_report = class(Tfrm_level1)
    Panel2: TPanel;
    Panel1: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    rep: TppReport;
    ppBDEPipeline1: TppBDEPipeline;
    qy_rep: TQuery;
    ds_rep: TDataSource;
    Label4: TLabel;
    dxButtonEdit1: TdxButtonEdit;
    dxButtonEdit2: TdxButtonEdit;
    dxDateEdit1: TdxDateEdit;
    dxDateEdit2: TdxDateEdit;
    Label5: TLabel;
    dxButtonEdit3: TdxButtonEdit;
    dxButtonEdit4: TdxButtonEdit;
    Label6: TLabel;
    qy_repSHIPNO: TStringField;
    qy_repSHIPDATE: TDateTimeField;
    qy_repSALESMAN: TStringField;
    qy_repCUSTNO: TStringField;
    qy_repACTI: TStringField;
    qy_repOWUS: TStringField;
    qy_repGRUP: TStringField;
    qy_repCRET: TDateTimeField;
    qy_repMODU: TStringField;
    qy_repMODT: TDateTimeField;
    qy_repSHIPNO_1: TStringField;
    qy_repSHIPITEM: TIntegerField;
    qy_repGOODSNO: TStringField;
    qy_repSHIPQTY: TFloatField;
    qy_repUNIT: TStringField;
    qy_repPRICE: TFloatField;
    qy_repCURRENCY: TStringField;
    qy_repACTI_1: TStringField;
    qy_repOWUS_1: TStringField;
    qy_repGRUP_1: TStringField;
    qy_repCRET_1: TDateTimeField;
    qy_repMODU_1: TStringField;
    qy_repMODT_1: TDateTimeField;
    qy_repD_SN: TFloatField;
    qy_repAMOUNT: TFloatField;
    ppTitleBand1: TppTitleBand;
    ppLabel1: TppLabel;
    ppHeaderBand1: TppHeaderBand;
    ppLabel2: TppLabel;
    ppLabel4: TppLabel;
    ppLabel5: TppLabel;
    ppLabel6: TppLabel;
    ppLabel8: TppLabel;
    ppLabel9: TppLabel;
    ppLabel10: TppLabel;
    ppLine1: TppLine;
    ppLine2: TppLine;
    ppSystemVariable1: TppSystemVariable;
    ppSystemVariable2: TppSystemVariable;
    ppLabel3: TppLabel;
    ppLabel7: TppLabel;
    ppDetailBand1: TppDetailBand;
    ppDBText1: TppDBText;
    ppDBText2: TppDBText;
    ppDBText3: TppDBText;
    ppDBText4: TppDBText;
    ppDBText5: TppDBText;
    ppDBText6: TppDBText;
    ppDBText7: TppDBText;
    ppDBCalc1: TppDBCalc;
    ppFooterBand1: TppFooterBand;
    ppLine3: TppLine;
    ppSystemVariable3: TppSystemVariable;
    raCodeModule1: TraCodeModule;
    Query1: TQuery;
    procedure dxButtonEdit1ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure BitBtn2Click(Sender: TObject);
    procedure qy_repCalcFields(DataSet: TDataSet);
    procedure BitBtn1Click(Sender: TObject);
    procedure dxButtonEdit2ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure dxButtonEdit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure dxDateEdit1Change(Sender: TObject);
    procedure dxButtonEdit3ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure dxButtonEdit4ButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure dxButtonEdit3Change(Sender: TObject);
//    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
    function select_textone(xCaption,sSQL,xDataBaseName: string;iFindKey:integer; iColWidth: array of Integer):string;
  public
    { Public declarations }
  end;

var
  frm_sales_report: Tfrm_sales_report;

implementation

uses uSelect_Form, ufrm_report, udm;

{$R *.dfm}


function Tfrm_sales_report.select_textOne(xCaption: string;sSQL: string;xDataBaseName: string;iFindKey:integer; iColWidth: array of Integer):string;
var
  i: Integer;
begin
  Result := '';
  Select_Form := TSelect_Form.Create(Application);
  try
    with Select_Form,Select_Form.Query1 do begin
      DatabaseName := xDataBaseName;
      Caption := xCaption;
      SQL.Clear;
      SQL.Add(sSQL);
      Open;

      if Length(iColWidth) > 0 then
      begin
        for i:=0 to High(iColWidth) do
          if iColWidth[i]=0 then
            DBGrid1.Columns[i].Visible := False
          else
            DBGrid1.Columns[i].Width := iColWidth[i];
      end;

      if NOT Query1.CanModify then
        begin
          DBNavPlus1.Width:=Trunc(DBNavPlus1.Width/2);
        end;

      if ShowModal = mrOk then
        result := Query1.fields[ifindKey].AsString;
    end;//end of with
  finally
    Select_Form.Free;
  end;//end of try
end;

procedure Tfrm_sales_report.dxButtonEdit1ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
var s :string ;  
begin
  inherited;
  S := 'SELECT T_SHIPHEAD.SHIPNO SHIPPING_NO FROM T_SHIPHEAD WHERE 0=0 ';
  dxButtonEdit1.Text :=select_textOne('Select ShipNO',s,'JXC_CSD',0,[]);
end;

procedure Tfrm_sales_report.BitBtn2Click(Sender: TObject);
begin
  inherited;
  self.Close ;
end;



procedure Tfrm_sales_report.qy_repCalcFields(DataSet: TDataSet);
begin
  inherited;
  qy_rep.FieldByName('AMOUNT').AsFloat := qy_rep.fieldByname('SHIPQTY').AsFloat * qy_rep.fieldbyname('PRICE').AsFloat ;
end;

procedure Tfrm_sales_report.BitBtn1Click(Sender: TObject);
var  sql:string;
     l_wc1,l_wc2,l_wc3 :string ;
begin
  inherited;
  if (dxButtonEdit1.Text <> '') AND (dxButtonEdit2.Text <> '' ) then
    l_wc1 := ' A.SHIPNO BETWEEN '+#39+ dxButtonEdit1.Text+#39+' AND '+#39+dxButtonEdit2.Text + #39  ;

  if ( dxDateEdit1.Text <> '') and (dxDateEdit2.Text <> '' ) then
    l_wc2 := ' A.SHIPDATE BETWEEN '+#39+dxDateEdit1.Text+#39+' AND '+#39+dxDateEdit2.Text + #39 ;
  if ( dxButtonEdit3.Text <> '') and (dxButtonEdit4.Text <> '' ) then
    l_wc2 := ' A.CUSTNO BETWEEN '+#39+dxButtonEdit3.Text+#39+' AND '+#39+dxButtonEdit4.Text + #39 ;

  sql := ' SELECT * FROM T_SHIPHEAD A ,T_SHIPLIST B WHERE A.SHIPNO = B.SHIPNO ' ;
  if l_wc1 <> '' then
     sql := sql + ' AND '+ l_wc1 ;
  if l_wc2 <> '' then
     sql := sql + ' AND '+ l_wc2 ;
  if l_wc3 <> '' then
     sql := sql + ' AND '+ l_wc3 ;   
  qy_rep.Close ;
  qy_rep.SQL.Clear ;
  qy_rep.SQL.Add(sql) ;
  try qy_rep.Open ;
  except ;
  end ;
  Application.CreateForm(Tfrm_report, frm_report);
  frm_report.ppViewer1.Report:=rep;
  frm_report.ShowModal;
  frm_report.Free;
end;

procedure Tfrm_sales_report.dxButtonEdit2ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
  var s:string;
begin
  inherited;
  S := 'SELECT T_SHIPHEAD.SHIPNO SHIPPING_NO FROM T_SHIPHEAD WHERE 0=0 ';
  dxButtonEdit1.Text :=select_textOne('Select ShipNO',s,'JXC_CSD',0,[]);
end;

procedure Tfrm_sales_report.dxButtonEdit1Change(Sender: TObject);
begin
  inherited;
  if dxButtonEdit2.Text = '' then
     dxButtonEdit2.Text := dxButtonEdit1.Text ;
end;

procedure Tfrm_sales_report.FormCreate(Sender: TObject);
begin
  inherited;
  query1.DatabaseName := dm.connection.DatabaseName;
  query1.SQL.Clear ;
  query1.SQL.Add('SELECT MIN(SHIPDATE) FROM T_SHIPHEAD ');
  try query1.Open ;
    if not query1.Eof then
      dxDateEdit1.date := query1.Fields[0].AsDateTime ;
  except
  end;
  query1.close;
//  dxDateEdit1.Date := today ;
  dxDateEdit2.Date := today ;
  Label1.Caption := Label1.Caption + ' ';
  Label2.Caption := Label2.Caption + ' ';
  Label3.Caption := Label3.Caption + ' ';
end;

procedure Tfrm_sales_report.dxDateEdit1Change(Sender: TObject);
begin
  inherited;
  if (dxDateEdit2.Text = '') or (dxDateEdit1.Date >  dxDateEdit2.Date) then
     dxDateEdit2.Date := dxDateEdit1.Date ;
end;

procedure Tfrm_sales_report.dxButtonEdit3ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
  var s:string;
begin
  inherited;
  S := 'SELECT T_SHIPHEAD.CUSTNO 客户编号 FROM T_SHIPHEAD WHERE 0=0 ';
  dxButtonEdit3.Text :=select_textOne('选择客户编号',s,'JXC_CSD',0,[]);

end;

procedure Tfrm_sales_report.dxButtonEdit4ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
  var s:string ;
begin
  inherited;
 S := 'SELECT T_SHIPHEAD.CUSTNO 客户编号 FROM T_SHIPHEAD WHERE 0=0 ';
  dxButtonEdit4.Text :=select_textOne('选择客户编号',s,'JXC_CSD',0,[]);

end;

procedure Tfrm_sales_report.dxButtonEdit3Change(Sender: TObject);
begin
  inherited;
  if dxButtonEdit4.Text = '' then
     dxButtonEdit4.Text := dxButtonEdit3.Text; 
end;

end.

⌨️ 快捷键说明

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