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

📄 main_query_lskccx.pas

📁 pos商场、超市管理系统
💻 PAS
字号:
unit MAIN_QUERY_LSKCCX;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, MAIN_QUERY, DB, DBTables, ComCtrls, StdCtrls, TFlatComboBoxUnit,
  TFlatSpeedButtonUnit, Grids, DBGrids, DsFancyButton, ExtCtrls,myself,frmmain;

type
  TFrm_main_query_lskccx = class(TFrm_main_query)
    Query_add: TQuery;
    procedure FormCreate(Sender: TObject);
    procedure CB_depotChange(Sender: TObject);
    procedure FormShow(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
  Frm_main_query_lskccx: TFrm_main_query_lskccx;

implementation

uses PROGRASS, PRINT_LSKCCX, PRINT_TEMP;

{$R *.dfm}

procedure TFrm_main_query_lskccx.FormCreate(Sender: TObject);
var
   B_find:Boolean;
   I_temp:integer;
begin
  inherited;
   self.Caption :='历史库存查询';
   B_create:=true;
   query_add.DatabaseName :=HWSHOPDATA;
   with query_temp do
   begin
      close;
      sql.Clear ;
      sql.Text :='select name from depot where setid=999';
      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 goodsmessage 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 TFrm_main_query_lskccx.CB_depotChange(Sender: TObject);
begin
  inherited;
   query_data.Close;
   sb_query.Enabled:=true;
end;

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

procedure TFrm_main_query_lskccx.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, Goodsmessage.NAME goodsname, Goodsmessage.TYPE, SUM( Temp.NUMBER ) number,'
               +' Goodsmessage.UNIT, 0 price FROM Temp'
               +' INNER JOIN Depot ON  (Temp.DEPOTID = Depot.ID)'
               +' INNER JOIN Goodsmessage ON  (Temp.GOODSID = Goodsmessage.ID)'
               +' where depot.name like "'+S_depotname+'" and goodsmessage.name like "'
               + S_goodsname+'" and temp.mydate <= "'+S_date+'"'
               +' GROUP BY Depot.NAME, Goodsmessage.NAME, Goodsmessage.TYPE, Goodsmessage.UNIT';
      try
         open;
      except
         messagedlg(Errormsg0001+'0027',mtError,[mbok],0);
         close;
      end;
   end;
end;

function TFrm_main_query_lskccx.User_readdata():boolean;
begin
   application.CreateForm (TFrm_prograss,Frm_prograss);
   Frm_prograss.P_message.Caption :='系统正在处理历史数据,请稍候……';
   frm_prograss.FormStyle :=fsStayOnTop;
   frm_prograss.show;
   frm_prograss.Update ;
   result:=true;
   with query_temp do
   begin
      close;
      sql.Clear ;
      sql.text:='delete from Temp';
      try
         execsql;
      except
         messagedlg(Errormsg0005+'0027',mtError,[mbok],0);
         close;
         frm_prograss.Free;
         result:=false;
         exit;
      end;
      //读入期初明细
      close;
      sql.Clear ;
      sql.Text :='SELECT * FROM startrecord';
      try
         open;
      except
         messagedlg(Errormsg0001+'0017',mtError,[mbok],0);
         close;
         frm_prograss.Free;
         result:=false;
         EXIT;
      end;
      //写入期初明细
      first;
      while not eof do
      begin
         with query_add do
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into temp (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;
               frm_prograss.Free;
               result:=false;
               exit;
            end;
         end;
         next;
      end;
      //读入进货明细
      close;
      sql.Clear ;
      sql.Text :='SELECT * from Stockrecord';
      try
         open;
      except
         messagedlg(Errormsg0001+'0020',mtError,[mbok],0);
         close;
         frm_prograss.Free;
         result:=false;
         exit;
      end;
      //写入进货明细
      first;
      while not eof do
      begin
         with query_add do
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into temp (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;
               frm_prograss.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;
         frm_prograss.Free;
         result:=false;
         exit;
      end;
      //写入进货退货明细
      first;
      while not eof do
      begin
         with query_add do
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into temp (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;
               frm_prograss.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;
         frm_prograss.Free;
         result:=false;
         exit;
      end;
      //写入销售明细
      first;
      while not eof do
      begin
         with query_add do
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into temp (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;
               frm_prograss.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;
         frm_prograss.Free;
         result:=false;
         exit;
      end;
      //写入销售退货明细
      first;
      while not eof do
      begin
         with query_add do
         begin
            close;
            sql.Clear ;
            sql.Text :='insert into temp (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;
               frm_prograss.Free;
               result:=false;
               exit;
            end;
         end;
         next;
      end;
   end;
   cb_depotchange(self);
   frm_prograss.Free ;
end;

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

procedure TFrm_main_query_lskccx.SB_printClick(Sender: TObject);
begin
  inherited;
   try
      Application.CreateForm(TFrm_print_lskccx, Frm_print_lskccx);
      Application.CreateForm(TFrm_print_temp, Frm_print_temp);
   except
      messagedlg(Errormsg0011,mtError,[mbok],0);
      exit;
   end;
   Frm_print_lskccx.QuickRep_lskccx.preview;
   Frm_print_lskccx.Free ;
   Frm_print_temp.Free ;
end;

end.

⌨️ 快捷键说明

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