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

📄 querylskccxunit.pas

📁 一个用delphi 开发的商场销售系统 涵盖很多功能
💻 PAS
字号:
unit QuerylskccxUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, QueryBassUnit, DB, DBTables, StdCtrls, ComCtrls, Buttons, Grids,
  DBGrids, ExtCtrls;

type
  TQuerylskccxForm = class(TQueryBassForm)
    Query_add: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure CB_DepotChange(Sender: TObject);
    procedure SB_queryClick(Sender: TObject);
    function User_readdata: boolean;
    procedure FormPaint(Sender: TObject);
    procedure SB_printClick(Sender: TObject);

  private
    B_create: boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  QuerylskccxForm: TQuerylskccxForm;

implementation

uses FunctionUnit, MainUnit, PrograssUnit, PrintlskcUnit, PrintBassUnit;

{$R *.dfm}

procedure TQuerylskccxForm.FormCreate(Sender: TObject);
var
  B_find: Boolean;
  I_temp: integer;
begin
  inherited;
  self.Caption := '历史库存查询';
  B_create := true;
  query_add.DatabaseName := 'CPXSGL';
  with query_temp do
  begin
    close;
    sql.Clear;
    sql.Text := 'select name from depot';
    open;
    CB_depot.Items.Clear;
    CB_depot.Style := csDropDownList;
    CB_depot.Items.add('所有');
    while not eof do
    begin
      CB_depot.Items.add(fieldbyname('name').asstring);
      next;
    end;
    close;
    sql.Clear;
    sql.text := 'select * from goods order by name';
    open;
    CB_goods.Items.Clear;
    CB_goods.Style := csDropDownList;
    CB_goods.Items.add('所有');
    while not eof do
    begin
      B_find := false;
      for I_temp := 0 to CB_goods.items.Count - 1 do
      begin
        if CB_goods.Items[I_temp] = fieldbyname('name').asstring then
          B_find := true; //找到相同名称
      end;
      if not B_find then //没有找到时增加
        CB_goods.Items.add(fieldbyname('name').asstring);
      next;
    end;
    close;
  end;
end;

procedure TQuerylskccxForm.FormShow(Sender: TObject);
begin
  inherited;
  if User_readdata then
  begin
    B_create := true;
    SB_query.Click;
  end
  else
    B_create := false;
end;

procedure TQuerylskccxForm.CB_DepotChange(Sender: TObject);
begin
  inherited;
  query_data.Close;
  sb_query.Enabled := true;
end;

procedure TQuerylskccxForm.SB_queryClick(Sender: TObject);
var
  S_depotname, S_goodsname, S_date: string;
begin
  inherited;
  if not Checkrights(USERRIGHTS, '查看') then
  begin
    messagedlg(Errormsg0006 + '0007', mterror, [mbok], 0);
    exit;
  end;
  S_depotname := cb_depot.Text;
  S_goodsname := cb_goods.Text;
  S_date := formatdatetime('yyyy-mm-dd', DTP_begin.Date);
  if (S_depotname = '') or (S_depotname = '所有') then
    S_depotname := '%';
  if (S_goodsname = '') or (S_goodsname = '所有') then
    S_goodsname := '%';
  with query_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'SELECT Depot.NAME depotname, goods.NAME goodsname, goods.TYPE, SUM( JXCrecord.NUMBER ) number,'
      + ' goods.UNIT, 0 price FROM JXCrecord'
      + ' INNER JOIN Depot ON  (JXCrecord.DEPOTID = Depot.ID)'
      + ' INNER JOIN goods ON  (JXCrecord.GOODSID = goods.ID)'
      + ' where depot.name like "' + S_depotname + '" and goods.name like "'
      + S_goodsname + '" and JXCrecord.mydate <= "' + S_date + '"'
      + ' GROUP BY Depot.NAME, goods.NAME, goods.TYPE, goods.UNIT';
    try
      open;
    except
      messagedlg(Errormsg0001 + '0027', mtError, [mbok], 0);
      close;
    end;
  end;
end;


function TQuerylskccxForm.User_readdata: boolean;
begin
  application.CreateForm(TPrograssForm, PrograssForm);
  PrograssForm.P_message.Caption := '系统正在处理历史数据,请稍候……';
  PrograssForm.FormStyle := fsStayOnTop;
  PrograssForm.show;
  PrograssForm.Update;
  result := true;
  with query_temp do
  begin
    close;
    sql.Clear;
    sql.text := 'delete from JXCrecord';
    try
      execsql;
    except
      messagedlg(Errormsg0005 + '0027', mtError, [mbok], 0);
      close;
      PrograssForm.Free;
      result := false;
      exit;
    end;

     //读入进货明细
    close;
    sql.Clear;
    sql.Text := 'SELECT * from Stockrecord';
    try
      open;
    except
      messagedlg(Errormsg0001 + '0020', mtError, [mbok], 0);
      close;
      PrograssForm.Free;
      result := false;
      exit;
    end;
      //写入进货明细
    first;
    while not eof do
    begin
      with query_add do
      begin
        close;
        sql.Clear;
        sql.Text := 'insert into JXCrecord (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)' +
          ' values ("' + query_temp.fieldbyname('depotid').AsString + '","'
          + query_temp.fieldbyname('mydate').AsString + '","'
          + '进货' + '","' + query_temp.fieldbyname('goodsid').AsString
          + '",' + query_temp.fieldbyname('number').AsString + ',' + query_temp.fieldbyname('price').AsString
          + ',"","' + query_temp.fieldbyname('memo').AsString + '")';
        try
          execsql;
        except
          messagedlg(Errormsg0004 + '0027', mtError, [mbok], 0);
          close;
          PrograssForm.Free;
          result := false;
          exit;
        end;
      end;
      next;
    end;
      //读入进货退货明细
    close;
    sql.Clear;
    sql.text := 'SELECT * from Threcord';
    try
      open;
    except
      messagedlg(Errormsg0001 + '0025', mtError, [mbok], 0);
      close;
      PrograssForm.Free;
      result := false;
      exit;
    end;
      //写入进货退货明细
    first;
    while not eof do
    begin
      with query_add do
      begin
        close;
        sql.Clear;
        sql.Text := 'insert into JXCrecord (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)' +
          ' values ("' + query_temp.fieldbyname('depotid').AsString + '","'
          + query_temp.fieldbyname('mydate').AsString + '","'
          + '进货退货' + '","' + query_temp.fieldbyname('goodsid').AsString
          + '",-' + query_temp.fieldbyname('number').AsString + ',' + query_temp.fieldbyname('price').AsString
          + ',"","' + query_temp.fieldbyname('memo').AsString + '")';
        try
          execsql;
        except
          messagedlg(Errormsg0004 + '0027', mtError, [mbok], 0);
          close;
          PrograssForm.Free;
          result := false;
          exit;
        end;
      end;
      next;
    end;
      //读入销售明细
    close;
    sql.Clear;
    sql.text := 'SELECT * from Sellrecord';
    try
      open;
    except
      messagedlg(Errormsg0001 + '0018', mtError, [mbok], 0);
      close;
      PrograssForm.Free;
      result := false;
      exit;
    end;
      //写入销售明细
    first;
    while not eof do
    begin
      with query_add do
      begin
        close;
        sql.Clear;
        sql.Text := 'insert into JXCrecord (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)' +
          ' values ("' + query_temp.fieldbyname('depotid').AsString + '","'
          + query_temp.fieldbyname('mydate').AsString + '","'
          + '销售' + '","' + query_temp.fieldbyname('goodsid').AsString
          + '",-' + query_temp.fieldbyname('number').AsString + ',0,"'
          + query_temp.fieldbyname('PEOPLEID').AsString + '","' + query_temp.fieldbyname('memo').AsString + '")';
        try
          execsql;
        except
          messagedlg(Errormsg0004 + '0027', mtError, [mbok], 0);
          close;
          PrograssForm.Free;
          result := false;
          exit;
        end;
      end;
      next;
    end;
      //读入销售退货明细
    close;
    sql.Clear;
    sql.text := 'SELECT * from XSTHRECORD';
    try
      open;
    except
      messagedlg(Errormsg0001 + '0023', mtError, [mbok], 0);
      close;
      PrograssForm.Free;
      result := false;
      exit;
    end;
      //写入销售退货明细
    first;
    while not eof do
    begin
      with query_add do
      begin
        close;
        sql.Clear;
        sql.Text := 'insert into JXCrecord (depotid,mydate,jxc,goodsid,number,price,PEOPLEID,memo)' +
          'values ("' + query_temp.fieldbyname('depotid').AsString + '","'
          + query_temp.fieldbyname('mydate').AsString + '","'
          + '销售退货' + '","' + query_temp.fieldbyname('goodsid').AsString
          + '",' + query_temp.fieldbyname('number').AsString + ',0,"'
          + query_temp.fieldbyname('peopleid').AsString + '","' + query_temp.fieldbyname('memo').AsString + '")';
        try
          execsql;
        except
          messagedlg(Errormsg0004 + '0027', mtError, [mbok], 0);
          close;
          PrograssForm.Free;
          result := false;
          exit;
        end;
      end;
      next;
    end;
  end;
  cb_depotchange(self);
  PrograssForm.Free;
end;

procedure TQuerylskccxForm.FormPaint(Sender: TObject);
begin
  if not B_create then self.Close; //数据查询不成功
end;

procedure TQuerylskccxForm.SB_printClick(Sender: TObject);
begin
  inherited;
  try
    Application.CreateForm(TPrintlskcForm, PrintlskcForm);
    Application.CreateForm(TprintBassForm, printBassForm);
  except
    messagedlg(Errormsg0011, mtError, [mbok], 0);
    exit;
  end;
  PrintlskcForm.QuickRep_lskccx.preview;
  PrintlskcForm.Free;
  printBassForm.Free;
end;

end.

⌨️ 快捷键说明

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