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

📄 urep.pas

📁 delphi 源码 小型企业管理软件
💻 PAS
字号:
unit uRep;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, se_controls, KsSkinTabs, KsSkinPanels, Grids, DBGrids,
  JvExDBGrids, JvDBGrid, KsSkinComboBoxs, KsSkinLabels, ComCtrls,
  KsSkinButtons, DB, ADODB, StdCtrls, frxClass, frxDBSet, ExtCtrls,
  JvExControls, JvComponent, JvDBLookup, wwdblook;

type
  TfrmRep = class(TForm)
    SeSkinPageControl1: TSeSkinPageControl;
    SeCustomTabSheet1: TSeCustomTabSheet;
    JvDBGrid1: TJvDBGrid;
    SeSkinPanel1: TSeSkinPanel;
    SeSkinLabel21: TSeSkinLabel;
    SeSkinComboBox1: TSeSkinComboBox;
    SeSkinLabel1: TSeSkinLabel;
    DateTimePicker1: TDateTimePicker;
    SeSkinLabel2: TSeSkinLabel;
    DateTimePicker2: TDateTimePicker;
    SeSkinLabel3: TSeSkinLabel;
    SeSkinComboBox2: TSeSkinComboBox;
    SeSkinButton18: TSeSkinButton;
    SeSkinButton1: TSeSkinButton;
    SeSkinButton2: TSeSkinButton;
    Query1: TADOQuery;
    SeCustomTabSheet3: TSeCustomTabSheet;
    Memo1: TMemo;
    DataSource1: TDataSource;
    frxDBDataset1: TfrxDBDataset;
    Memo2: TMemo;
    Memo3: TMemo;
    SeCustomTabSheet2: TSeCustomTabSheet;
    SeCustomTabSheet4: TSeCustomTabSheet;
    JvDBGrid2: TJvDBGrid;
    SeSkinPanel2: TSeSkinPanel;
    SeSkinLabel8: TSeSkinLabel;
    SeSkinButton3: TSeSkinButton;
    SeSkinButton4: TSeSkinButton;
    SeSkinButton5: TSeSkinButton;
    wwDBLookupCombo7: TwwDBLookupCombo;
    Memo4: TMemo;
    JvDBGrid3: TJvDBGrid;
    SeSkinPanel3: TSeSkinPanel;
    SeSkinLabel4: TSeSkinLabel;
    SeSkinButton6: TSeSkinButton;
    SeSkinButton7: TSeSkinButton;
    SeSkinButton8: TSeSkinButton;
    wwDBLookupCombo1: TwwDBLookupCombo;
    SeCustomTabSheet5: TSeCustomTabSheet;
    JvDBGrid4: TJvDBGrid;
    SeSkinPanel4: TSeSkinPanel;
    SeSkinLabel5: TSeSkinLabel;
    SeSkinComboBox3: TSeSkinComboBox;
    SeSkinButton9: TSeSkinButton;
    SeSkinButton10: TSeSkinButton;
    SeSkinButton11: TSeSkinButton;
    SeCustomTabSheet6: TSeCustomTabSheet;
    JvDBGrid5: TJvDBGrid;
    SeSkinPanel5: TSeSkinPanel;
    SeSkinLabel7: TSeSkinLabel;
    SeSkinLabel9: TSeSkinLabel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    SeSkinButton12: TSeSkinButton;
    SeSkinButton13: TSeSkinButton;
    SeSkinButton14: TSeSkinButton;
    Memo5: TMemo;
    SeSkinLabel6: TSeSkinLabel;
    SeSkinComboBox4: TSeSkinComboBox;
    SeCustomTabSheet7: TSeCustomTabSheet;
    JvDBGrid6: TJvDBGrid;
    SeSkinPanel6: TSeSkinPanel;
    SeSkinLabel10: TSeSkinLabel;
    SeSkinLabel11: TSeSkinLabel;
    SeSkinLabel12: TSeSkinLabel;
    SeSkinLabel13: TSeSkinLabel;
    SeSkinComboBox5: TSeSkinComboBox;
    DateTimePicker5: TDateTimePicker;
    DateTimePicker6: TDateTimePicker;
    SeSkinComboBox6: TSeSkinComboBox;
    SeSkinButton15: TSeSkinButton;
    SeSkinButton16: TSeSkinButton;
    SeSkinButton17: TSeSkinButton;
    Memo6: TMemo;
    SeCustomTabSheet8: TSeCustomTabSheet;
    SeSkinPanel7: TSeSkinPanel;
    SeSkinLabel16: TSeSkinLabel;
    SeSkinButton19: TSeSkinButton;
    SeSkinButton20: TSeSkinButton;
    SeSkinButton21: TSeSkinButton;
    SeSkinComboBox7: TSeSkinComboBox;
    Memo7: TMemo;
    JvDBGrid7: TJvDBGrid;
    SeCustomTabSheet9: TSeCustomTabSheet;
    JvDBGrid8: TJvDBGrid;
    SeSkinPanel8: TSeSkinPanel;
    SeSkinLabel14: TSeSkinLabel;
    SeSkinButton22: TSeSkinButton;
    SeSkinButton23: TSeSkinButton;
    SeSkinButton24: TSeSkinButton;
    SeSkinComboBox8: TSeSkinComboBox;
    Memo8: TMemo;
    frxReport1: TfrxReport;
    procedure FormShow(Sender: TObject);
    procedure SeSkinButton2Click(Sender: TObject);
    procedure SeSkinButton18Click(Sender: TObject);
    procedure SeSkinButton1Click(Sender: TObject);
    procedure frxReport1GetValue(const VarName: String;
      var Value: Variant);
    procedure SeSkinButton3Click(Sender: TObject);
    procedure SeSkinButton6Click(Sender: TObject);
    procedure SeSkinButton9Click(Sender: TObject);
    procedure SeSkinButton10Click(Sender: TObject);
    procedure SeSkinButton12Click(Sender: TObject);
//    procedure wwDBLookupCombo2Change(Sender: TObject);
//    procedure wwDBLookupCombo3Change(Sender: TObject);
    procedure SeSkinButton13Click(Sender: TObject);
    procedure SeSkinButton15Click(Sender: TObject);
    procedure SeSkinButton16Click(Sender: TObject);
    procedure SeSkinButton19Click(Sender: TObject);
    procedure SeSkinButton20Click(Sender: TObject);
    procedure SeSkinButton22Click(Sender: TObject);
    procedure SeSkinButton23Click(Sender: TObject);

  private
    pageCap,khname: string;
    procedure PreparePage;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmRep: TfrmRep;
  curPageIndex: integer;

implementation

uses uFunc, uDM;

{$R *.dfm}

procedure TfrmRep.FormShow(Sender: TObject);
begin
  HidePageTabs(SeSkinPageControl1);

  SeSkinPageControl1.ActivePage := SeSkinPageControl1.Pages[curPageIndex];
  PreparePage;

  Caption := Caption + ' - ' + SeSkinPageControl1.ActivePage.Caption ;
end;

procedure TfrmRep.PreparePage;
begin
  pageCap := SeSkinPageControl1.ActivePage.Caption ;
  if pageCap='业务对帐单' then begin
    FillItems(SeSkinComboBox1.Items, 'select khname from kh where khType=0 order by khname');
    FillItems(SeSkinComboBox2.Items, 'select poid from poHead order by 1 desc');
    DateTimePicker2.DateTime := Date;
    DateTimePicker1.DateTime := Date-30;
    SeSkinComboBox1.ItemIndex := 0;

    JvDBGrid1.DataSource := DataSource1;
  end
  else
  if pageCap='采购对帐单' then begin
    DateTimePicker6.DateTime := Date;
    DateTimePicker5.DateTime := Date-30;
    FillItems(SeSkinComboBox5.Items, 'select khname from kh where khType=1 order by khname');

    JvDBGrid6.DataSource := DataSource1;
  end
  else
  if pageCap='仓库日报表' then begin
    DateTimePicker4.DateTime := Date;
    DateTimePicker3.DateTime := Date;
    FillItems(SeSkinComboBox4.Items, 'select poid from poHead order by 1 desc');

    JvDBGrid5.DataSource := DataSource1;
  end
  else
  if pageCap='料件库存统计' then begin
    JvDBGrid3.DataSource := DataSource1;
    SeSkinButton6Click(nil);
  end
  else
  if pageCap='成品库存统计' then begin
    JvDBGrid2.DataSource := DataSource1;
    SeSkinButton3Click(nil);
  end
  else
  if pageCap='生产备料情况表' then begin
    JvDBGrid7.DataSource := DataSource1;
    FillItems(SeSkinComboBox7.Items, 'select poid from poHead order by 1 desc');
  end
  else
  if pageCap='生产进度表' then begin
    JvDBGrid8.DataSource := DataSource1;
    FillItems(SeSkinComboBox8.Items, 'select poid from poHead order by 1 desc');
  end
  else
  if pageCap='订单欠货情况表' then begin
    FillItems(SeSkinComboBox3.Items, 'select khname from kh where khType=0 or khType=2 order by khname');
    SeSkinComboBox3.ItemIndex := 0;

    JvDBGrid4.DataSource := DataSource1;
  end
end;

procedure TfrmRep.SeSkinButton2Click(Sender: TObject);
begin
  Close;
end;

procedure TfrmRep.SeSkinButton18Click(Sender: TObject);
begin
  if SeSkinComboBox1.ItemIndex = -1 then
    AbortMsg('请选择正确的客户名称!');

  DropTempTables;
  ExecQuery(Memo1.Text
    ,[SeSkinComboBox1.Text
     ,FormatDateTime('YYYY-MM-DD',DateTimePicker1.DateTime)
     ,FormatDateTime('YYYY-MM-DD',DateTimePicker2.DateTime)
     ,SeSkinComboBox2.Text
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp1 order by poid,spno,invDate';
    Open;
  end;

  khname := SeSkinComboBox1.Text;
end;

procedure TfrmRep.SeSkinButton1Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'业务对帐单模板.fr3');
end;

procedure TfrmRep.frxReport1GetValue(const VarName: String;
  var Value: Variant);
begin
  if VarName='khname' then Value := khname
  else if VarName='startDate' then Value := FormatDateTime('YYYY-MM-DD',DateTimePicker3.DateTime)
  else if VarName='endDate'   then Value := FormatDateTime('YYYY-MM-DD',DateTimePicker4.DateTime)
end;


procedure TfrmRep.SeSkinButton3Click(Sender: TObject);
var
  spno: string;
begin
  spno := trim(wwDBLookupCombo7.Text);

  //重算
  if spno = '' then begin
    DropTempTables;
    ExecQuery(Memo4.Text,[spno]);
  end;

  with Query1 do begin
    Close;
    if spno = '' then
      SQL.Text := 'select * from sp where spType=1 and invQty<>0 order by spno'
    else
      SQL.Text := 'select * from sp where spType=1 and invQty<>0 and spno='+ QuotedStr(spno) +' order by spno' ;

    Open;
  end;
end;

procedure TfrmRep.SeSkinButton6Click(Sender: TObject);
var
  spno: string;
begin
  spno := trim(wwDBLookupCombo1.Text);

  //重算
  if spno = '' then begin
    DropTempTables;
    ExecQuery(Memo4.Text,[spno]);
  end;

  with Query1 do begin
    Close;
    if spno = '' then
      SQL.Text := 'select * from sp where spType=0 and invQty<>0 order by spno'
    else
      SQL.Text := 'select * from sp where spType=0 and invQty<>0 and spno='+ QuotedStr(spno) +' order by spno' ;

    Open;
  end;
end;

procedure TfrmRep.SeSkinButton9Click(Sender: TObject);
begin
  if SeSkinComboBox3.ItemIndex = -1 then
    AbortMsg('请选择正确的客户名称!');

  DropTempTables;
  ExecQuery(Memo3.Text
    ,[SeSkinComboBox3.Text
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp3 order by id';
    Open;
  end;

  khname := SeSkinComboBox3.Text;
end;

procedure TfrmRep.SeSkinButton10Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'订单欠货统计模板.fr3');
end;

procedure TfrmRep.SeSkinButton12Click(Sender: TObject);
begin

  DropTempTables;
  ExecQuery(Memo5.Text
    ,[FormatDateTime('YYYY-MM-DD 00:00:00',DateTimePicker3.DateTime)
     ,FormatDateTime('YYYY-MM-DD 23:59:59',DateTimePicker4.DateTime)
     ,SeSkinComboBox4.Text 
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp2 order by poid, spno, invDate';
    Open;
  end;

  khname := SeSkinComboBox1.Text;
end;

var
  GWorking: Boolean=False;

//procedure TfrmRep.wwDBLookupCombo2Change(Sender: TObject);
//begin
//  if GWorking then exit;
//  GWorking := True;
//
//  try
//    wwDBLookupCombo3.Text := '';
//  finally
//    GWorking := False;
//  end;
//
//end;
//
//procedure TfrmRep.wwDBLookupCombo3Change(Sender: TObject);
//begin
//  if GWorking then exit;
//  GWorking := True;
//
//  try
//    wwDBLookupCombo2.Text := '';
//  finally
//    GWorking := False;
//  end;
//
//end;

procedure TfrmRep.SeSkinButton13Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'仓库日报表模板.fr3');
end;

procedure TfrmRep.SeSkinButton15Click(Sender: TObject);
begin
  if SeSkinComboBox5.ItemIndex = -1 then
    AbortMsg('请选择正确的供应商名称!');

  DropTempTables;
  ExecQuery(Memo6.Text
    ,[SeSkinComboBox5.Text
     ,FormatDateTime('YYYY-MM-DD',DateTimePicker5.DateTime)
     ,FormatDateTime('YYYY-MM-DD',DateTimePicker6.DateTime)
     ,SeSkinComboBox6.Text
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp1 order by poid,spno,invDate';
    Open;
  end;

  khname := SeSkinComboBox1.Text;
end;

procedure TfrmRep.SeSkinButton16Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'采购对帐单模板.fr3');
end;

procedure TfrmRep.SeSkinButton19Click(Sender: TObject);
begin
  DropTempTables;
  ExecQuery(Memo7.Text
    ,[SeSkinComboBox7.Text
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp3';
    Open;
  end;

end;

procedure TfrmRep.SeSkinButton20Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'生产备料情况表模板.fr3');
end;

procedure TfrmRep.SeSkinButton22Click(Sender: TObject);
begin
  DropTempTables;
  ExecQuery(Memo8.Text
    ,[SeSkinComboBox8.Text
     ]);

  with Query1 do begin
    Close;
    SQL.Text := 'select * from #temp3';
    Open;
  end;

end;

procedure TfrmRep.SeSkinButton23Click(Sender: TObject);
begin
  if not Query1.Active then
     AbortMsg('请先查询后再打印!');

  PrintFr3(frxReport1,'生产进度表模板.fr3');
end;

end.

⌨️ 快捷键说明

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