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

📄 zdpk.pas

📁 集成酒店桑拿食管管理的完整程序
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit zdpk;

interface

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

type
  TzdpkForm = class(TForm)
    kfname: TTabControl;
    DBGrid1: TDBGrid;
    DataSource1: TDataSource;
    Panel1: TPanel;
    cwsys: TComboBox;
    kfh: TComboBox;
    Query1: TQuery;
    Panel2: TPanel;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Panel3: TPanel;
    Label1: TLabel;
    pksj: TComboBox;
    jsr: TLabel;
    GroupBox1: TGroupBox;
    Label3: TLabel;
    Edit1: TEdit;
    Label4: TLabel;
    Edit2: TEdit;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    dm: TComboBox;
    xzpksj: TDateTimePicker;
    Label5: TLabel;
    begtime: TDateTimePicker;
    BitBtn7: TBitBtn;
    Button1: TButton;
    Query2: TQuery;
    Table1: TTable;
    Table1cysl: TFloatField;
    procedure FormShow(Sender: TObject);
    procedure kfnameChange(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
    procedure Edit1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit1Exit(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2Exit(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn7Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  zdpkForm: TzdpkForm;

implementation
uses dataproc,zdpkprintunit, zdbb;
{$R *.DFM}

procedure TzdpkForm.FormShow(Sender: TObject);
var i:integer;
begin
   shortdateformat:='yyyy-mm-dd';
   xzpksj.DateTime:=now;
   begtime.Time:=now;
  // begtime.Time:=strtotime('00:00');
   Panel1.Caption:=curper.sydw+curper.workjsj+'站点库存盘点表';
   kfh.Items.Clear;
   kfname.Tabs.Clear;
   cwsys.Items.Clear;
   try
     cwsys.Items.LoadFromFile(curper.workpath+'\cwsys.dll');
   except
   end;
   for i:=2 to cwsys.Items.Count-1 do
   begin
     if trim(copy(cwsys.Items[i],5,10))<>'' then
     begin
       kfh.Items.Add(trim(copy(cwsys.Items[i],5,10)));
       dm.Items.Add(trim(copy(cwsys.Items[i],1,4)));
       kfname.Tabs.Add(trim(copy(cwsys.Items[i],45,30)));
     end;
   end;
   fm.Query2.Active:=false;
   fm.Query2.SQL.Clear;
   fm.Query2.SQL.Add('select distinct regtime from zdpk where jsj='''+curper.workjsj+''' order by regtime DESC');
   fm.Query2.Open;
   pksj.Items.Clear;
   while not fm.Query2.Eof do
   begin
     pksj.Items.Add(fm.Query2.Fields[0].AsString);
     fm.Query2.Next;
   end;
   fm.Query2.Active:=false;
   fm.Query2.SQL.Clear;
   if pksj.Items.Count>0 then pksj.ItemIndex:=0;
   if kfname.Tabs.Count>0 then kfnameChange(nil);

end;

procedure TzdpkForm.kfnameChange(Sender: TObject);
begin
  pksj.Text:=formatdatetime('yyyy-MM-dd',xzpksj.Date)+' '+formatdatetime('hh:mm:ss',begtime.Time);
  if pksj.Enabled then
  begin
    table1.Active:=FALSE;
    table1.Filter:='  jsj='''+curper.workjsj+''' and kf='''+kfh.Items[kfname.TabIndex]+''' and regtime='''+pksj.Text+'''';
    table1.Open;
   { Query1.Active:=false;
    Query1.SQL.Clear;
    Query1.SQL.Add('select * from zdpk  where jsj=:pjsj and kf=:pkf and regtime=:psj');
    Query1.ParamByName('pkf').asstring:=kfh.Items[kfname.TabIndex];
    Query1.ParamByName('psj').asstring:=pksj.Text;
    Query1.ParamByName('pjsj').asstring:=curper.workjsj;
    Query1.Open;}
    DataSource1.DataSet:=table1;
  end else
  begin
    table1.Active:=FALSE;
    table1.TableName:='zdpkls';
    {Query2.Active:=false;
    Query2.SQL.Clear;
    Query2.SQL.Add('select  spcode,cuscode,name,dw,dj,innum,outnum,outnumwj,xsnum,num,');
    Query2.SQL.Add('sjnum,xsje,(sjnum-num) as cysl ,regtime,jsj,kf,jsr,czy,cbj from zdpkls  where jsj='''+curper.workjsj+''' and kf='''+kfh.Items[kfname.TabIndex]+'''');
    Query2.Open;
    DataSource1.DataSet:=Query2;}
    table1.Filter:=' jsj='''+curper.workjsj+''' and kf='''+kfh.Items[kfname.TabIndex]+'''';
    table1.Open;
 //    table1.FieldByName('cysl').asfloat:=table1.FieldByName('sjnum').asfloat-table1.FieldByName('num').asfloat;
    DataSource1.DataSet:=table1;
  end;
end;

procedure TzdpkForm.BitBtn4Click(Sender: TObject);
begin
  close;
end;

procedure TzdpkForm.BitBtn1Click(Sender: TObject);
var i:integer;cuscode,cusname,dw:string;cusnum,cusnumwj,dj,cusje:Currency;
begin
 if messagedlg('盘库时间是否正确?',mtInformation, [mbYes, mbNo], 0) = mrno then
   exit;
  pksj.Enabled:=false;
  pksj.Text:=formatdatetime('yyyy-mm-dd',xzpksj.Date)+' '+formatdatetime('hh:mm:ss',begtime.Time);
  fm.Query2.Active:=false;
  fm.Query2.SQL.Clear;
  fm.Query2.SQL.Add('delete from zdpkls where jsj='''+curper.workjsj+'''');
  fm.Query2.ExecSQL;
  for i:=0 to dm.Items.Count-1 do
  begin
    fm.Query2.SQL.Clear;
    fm.Query2.SQL.Add('select Cuscode,Cusname,Unit,Price,spcode from Cusitem where ');
    fm.Query2.SQL.Add('substring(custype,1,2)='''+trim(dm.Items[i])+''' and isnull(spcode,'''')<>''''');
    fm.Query2.Open;
    while not fm.Query2.Eof do
    begin
      fm.Query3.Active:=false;
      fm.Query3.SQL.Clear;
      fm.Query3.SQL.Add('select 现有数量,(select sum(num) from 调拨表 where spcode=数量表.商品编号 and xkcode=数量表.仓库编号 and rq>=:pbeg and rq<=:pend) as innum,');
      fm.Query3.SQL.Add('(select sum(数量) from 销售明细 where 商品ID=数量表.商品编号 and 仓库=数量表.仓库编号 and 销售单ID in (select ID from 销售单 where 销售日期>=:pbeg and 销售日期<=:pend)) as outnum,(select 最新进价 from 商品表 where 商品编号=数量表.商品编号) as cbj ');
      fm.Query3.SQL.Add(' from 数量表 where 仓库编号='''+kfh.Items[i]+''' and 商品编号='''+fm.Query2.fieldbyname('spcode').asstring+''' ');
      if pksj.Items.Count=0 then
        fm.Query3.ParamByName('pbeg').asdatetime:=strtodatetime('2000-01-01 00:00:00')
      else
        fm.Query3.ParamByName('pbeg').asdatetime:=strtodatetime(pksj.Items[0]);
      fm.Query3.ParamByName('pend').asdatetime:=strtodatetime(pksj.Text);
      fm.Query3.Open;
      Query1.Active:=false;
      Query1.SQL.Clear;
      Query1.SQL.Add('select sum(CusNum) from custom where Regtime>:pbeg and Regtime<=:pend and jsj='''+trim(curper.workjsj)+''' and Cuscode='''+fm.Query2.fieldbyname('cuscode').asstring+''' ');
      if pksj.Items.Count=0 then
        Query1.ParamByName('pbeg').asdatetime:=strtodatetime('2000-01-01 00:00:00')
      else
        Query1.ParamByName('pbeg').asdatetime:=strtodatetime(pksj.Items[0]);
      Query1.ParamByName('pend').asdatetime:=strtodatetime(pksj.Text);
      Query1.Open;
      cusnumwj:=Query1.Fields[0].AsCurrency;
      Query1.Active:=false;
      Query1.SQL.Clear;
      Query1.SQL.Add('select sum(CusNum),sum(Money) from qbcustom where Regtime>:pbeg and Regtime<=:pend and jsj='''+trim(curper.workjsj)+''' and Cuscode='''+fm.Query2.fieldbyname('cuscode').asstring+''' ');
      if pksj.Items.Count=0 then
        Query1.ParamByName('pbeg').asdatetime:=strtodatetime('2000-01-01 00:00:00')
      else
        Query1.ParamByName('pbeg').asdatetime:=strtodatetime(pksj.Items[0]);
      Query1.ParamByName('pend').asdatetime:=strtodatetime(pksj.Text);
      Query1.Open;
      cusnum:=Query1.Fields[0].AsCurrency;
      cusje:=Query1.Fields[1].AsCurrency;
      Query1.SQL.Clear;
      Query1.SQL.Add('insert into zdpkls values(:pspcode,:pcuscode,:pname,:pdw,:pdj,:pinnum,:poutnum,:poutnumwj,:pxsnum,:pnum,:pnum,:pje,:pregtime,:pjsj,:pkf,:pjsr,:pczy,:pcbj)');
      Query1.ParamByName('pspcode').asstring:=fm.Query2.Fieldbyname('spcode').AsString;
      Query1.ParamByName('pcuscode').asstring:=fm.Query2.Fieldbyname('cuscode').AsString;
      Query1.ParamByName('pdw').asstring:=fm.Query2.Fieldbyname('unit').AsString;
      Query1.ParamByName('pdj').asCurrency:=fm.Query2.Fieldbyname('price').AsCurrency;
      Query1.ParamByName('pname').asstring:=fm.Query2.Fieldbyname('cusname').AsString;
      Query1.ParamByName('pinnum').asCurrency:=fm.Query3.Fieldbyname('innum').AsCurrency;
      Query1.ParamByName('pxsnum').asCurrency:=cusnum;
      Query1.ParamByName('poutnum').asCurrency:=fm.Query3.Fieldbyname('outnum').AsCurrency;
      Query1.ParamByName('poutnumwj').asCurrency:=cusnumwj;
      Query1.ParamByName('pnum').asCurrency:=fm.Query3.Fieldbyname('现有数量').AsCurrency;
      Query1.ParamByName('pje').asCurrency:=cusje;
      Query1.ParamByName('pregtime').asdatetime:=strtodatetime(pksj.Text);
      Query1.ParamByName('pjsj').asstring:=curper.workjsj;
      Query1.ParamByName('pkf').asstring:=kfh.Items[i];
      Query1.ParamByName('pczy').asstring:=curper.name;
      Query1.ParamByName('pjsr').asstring:='';
      Query1.ParamByName('pcbj').asCurrency:=fm.Query3.Fieldbyname('cbj').AsCurrency;

⌨️ 快捷键说明

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