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

📄 dcunt.pas

📁 商品销售系统完全的功能SQL和JAVA
💻 PAS
字号:
unit dcunt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, StdCtrls, Buttons, Grids, ExtCtrls, BaseGrid, AdvGrid;

type
  Tdcfrm = class(TForm)
    Bevel1: TBevel;
    Label4: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Label5: TLabel;
    Edit1: TEdit;
    Label1: TLabel;
    Label8: TLabel;
    Edit2: TEdit;
    Label9: TLabel;
    Label7: TLabel;
    ComboBox1: TComboBox;
    Edit3: TEdit;
    BitBtn2: TBitBtn;
    AdvStringGrid1: TAdvStringGrid;
    Timer1: TTimer;
    Label13: TLabel;
    Label12: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Edit4: TEdit;
    Label14: TLabel;
    BitBtn1: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    Label2: TLabel;
    procedure BitBtn4Click(Sender: TObject);
    procedure FormKeyPress(Sender: TObject; var Key: Char);
    procedure FormActivate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BitBtn1Click(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure ComboBox1Enter(Sender: TObject);
    procedure ComboBox1Exit(Sender: TObject);
    procedure Edit3Enter(Sender: TObject);
    procedure Edit3Exit(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn3Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtn2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure Edit2Exit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  dcfrm: Tdcfrm;

implementation

uses  data,maind, mainunt,datam;

{$R *.dfm}

var
  dcno:integer;

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

procedure Tdcfrm.FormKeyPress(Sender: TObject; var Key: Char);
begin
    if key=#13 then
    begin
      Perform(CM_DialogKey,Vk_TAB,0);
      key:=#0;
    end;
end;

procedure Tdcfrm.FormActivate(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:=main.Edit8.Text;
advstringgrid1.Cells[0,0]:='';
edit1.SetFocus;
label4.Caption:=formatdatetime('yyyy-mm-dd',date);
Label6.caption:=create_moveout_no('moveoutm');
advstringgrid1.Cells[1,0]:='货物条形码';
advstringgrid1.Cells[2,0]:='标准零售价';
advstringgrid1.Cells[3,0]:='调出数量';
advstringgrid1.Cells[4,0]:='金额';
dcno:=1;
end;


procedure Tdcfrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
inherited;
dcfrm:=nil;
dcfrm.Free;
end;

procedure Tdcfrm.BitBtn1Click(Sender: TObject);
var
  i:integer;
begin
timer1.Enabled:=false;
try
 dataman.ADOCon.BeginTrans;
 //更新出货单据表
 with dataman.dcQuery do
   begin
   close;
   sql.Clear;
   sql.Add('insert into moveoutm');
   sql.Add('values(:dj,:yf,:js,:je,:jsj,:jsr)');
   parameters.ParamByName('dj').Value:=trim(label6.Caption);
   parameters.ParamByName('yf').Value:=trim(combobox1.text);
   parameters.ParamByName('js').Value:=strtoint(trim(label12.Caption));
   parameters.ParamByName('je').Value:=strtofloat(trim(label11.Caption));
   parameters.ParamByName('jsj').Value:=date();
   parameters.ParamByName('jsr').Value:=trim(edit4.Text);
   prepared;
   execsql;
 //end;
 //更新出货明细表
   close;
   for i:=1 to dcno do
    begin
    if trim(advstringgrid1.Cells[1,i])='' then break;
      sql.Clear;
      sql.Add('insert into moveout');
      sql.Add('values(:dj,:ht,:djq,:shl,:je)');
      parameters.ParamByName('dj').Value:=trim(label6.Caption);
      parameters.ParamByName('ht').Value:=trim(advstringgrid1.Cells[1,i]);
      parameters.ParamByName('djq').Value:=strtofloat(trim(advstringgrid1.Cells[2,i]));
      parameters.ParamByName('shl').Value:=strtoint(trim(advstringgrid1.Cells[3,i]));
      parameters.ParamByName('je').Value:=strtofloat(trim(advstringgrid1.Cells[4,i]));
      prepared;
      execsql;
    //更新库存
      sql.Clear;
      sql.Add('update kc set 库存数量=库存数量-:tno where 货物条形码='''+trim(advstringgrid1.Cells[1,i])+'''');
      parameters.ParamByName('tno').Value:=strtoint(advstringgrid1.Cells[3,i]);
      execsql;
    end; //结束循环
  end;
  dataman.ADOCon.CommitTrans;
  showmessage('出货单据号'+trim(label6.Caption)+'存盘成功!');
 except
 dataman.ADOCon.RollbackTrans;
 showmessage('出货单据号'+trim(label6.Caption)+'存盘失败!');
 end;
end;

procedure Tdcfrm.Edit1Enter(Sender: TObject);
begin
Edit1.Color:=clSkyBlue;
end;

procedure Tdcfrm.Edit1Exit(Sender: TObject);
begin
Edit1.color:=clWindow;
if (length(edit1.Text)<>15) and (edit1.Text<>'') then
begin
messagedlg('对不起!条形码不等于15位',mtError,[mbOk],0);
edit1.SetFocus;
exit;
end;
if edit1.Text<>'' then
 begin
  with dataman.dcQuery do
      begin
      sql.Clear;
       sql.Add('select 库存数量,单价 from kc where 货物条形码 ='''+edit1.text+'''');
       open;
     if IsEmpty then
        begin
          showmessage('对不起!库里没有此货,请核实数据!');
          edit1.SetFocus;
          exit;
        end
     else
     begin
     if fields[0].Value=0 then
       begin
       showmessage('库存量为零!');
       exit;
       end ;
     edit3.Text:=floattostr(Fields[1].Value);
     end;
  end;
  end;
end;


procedure Tdcfrm.ComboBox1Enter(Sender: TObject);
begin
  ComboBox1.Color:=clSkyBlue;
end;

procedure Tdcfrm.ComboBox1Exit(Sender: TObject);
begin
  ComboBox1.color:=clWindow;
end;

procedure Tdcfrm.Edit3Enter(Sender: TObject);
begin
  Edit3.Color:=clSkyBlue;
end;

procedure Tdcfrm.Edit3Exit(Sender: TObject);
begin
Edit3.color:=clWindow;
end;

procedure Tdcfrm.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
 key:=#0;
// MessageBeep(-1);
end;
end;

procedure Tdcfrm.BitBtn3Click(Sender: TObject);
var
fd:textfile;
dcfile,dc:string;
i:integer;
begin
    try
       dcfile:=ExtractFilePath(Application.ExeName)+'dcout.txt';
       AssignFile(fd,dcfile);
       Rewrite(fd);
       write(fd,chr(27)+chr(64));
       dc:=stringOfChar(' ',(32-Length('牧羊人服饰'+ini_load_shopname('打印参数','和祥店')+'调出清单')) div 2)+'牧羊人服饰'+ini_load_shopname('打印参数','和祥店')+'调出清单';
       write(fd,dc+chr(10));
       write(fd,(formatdatetime('yyyy"年"mm"月"dd"日" hh"点"mm"分" ampm',now)+chr(10)):18);
       write(fd,('源分店:'+trim(combobox1.Text)):14);
       write(fd,('单据号:'+trim(label6.caption)):16);
       write(fd,('经手人:'+trim(edit4.Text)):16);
       writeln(fd,'--------------------------------');
               //  12345678901234567890123456789012
         write(fd,'商品条形码     零售价 数量  金额'+chr(10));
         write(fd,'--------------------------------');
         for i:=1 to dcno do
           begin
           if advstringgrid1.Cells[1,i]='' then break;
            write(fd,trim(advstringgrid1.cells[1,i]):15);
            write(fd,trim(advstringgrid1.cells[2,i]):5);
            write(fd,trim(advstringgrid1.cells[3,i]):5);
            write(fd,trim(advstringgrid1.cells[4,i]):5);
            write(fd,chr(10));
           end;
            Writeln(fd,'              ');
            write(fd,'-------------------------------');
            Writeln(fd,('调出总数:'+trim(label12.Caption)):16);
            Writeln(fd,('调出总金额:'+trim(label11.Caption)):16);
            Writeln(fd,'              ');
            Writeln(fd,'              ');
            Writeln(fd,'              ');
            Writeln(fd,'              ');
            Writeln(fd,'              ');
            CloseFile(fd);
            PrintFile(dcfile);
    except
     abort;
    end;
end;

procedure Tdcfrm.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
 key:=#0;
end;
end;

procedure Tdcfrm.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not(key in ['0'..'9',#8] )then
begin
 key:=#0;
end;
end;

procedure Tdcfrm.BitBtn2Click(Sender: TObject);
var
 i:integer;
begin
   if (edit1.Text='') or (edit2.Text='') or (edit3.Text='') then
    begin
     showmessage('请输入完整的信息!');
     edit1.SetFocus;
    end
   else
    begin
      for i:=1  to advstringgrid1.RowCount do
       begin
         if trim(edit1.Text)=trim(advstringgrid1.Cells[1,i]) then
           begin
            advstringgrid1.Cells[3,i]:=inttostr(strtoint(trim(advstringgrid1.Cells[3,i]))+strtoint(trim(edit2.Text)));
            edit1.Text:='';
            edit1.SetFocus;
            edit3.Text:='';
            break;
            exit;
           end;
         end;
       for i:=advstringgrid1.RowCount  downto 1 do
        begin
          if trim(edit1.Text)<>trim(advstringgrid1.cells[1,i]) then
           begin
            advstringgrid1.Cells[0,dcno]:=inttostr(dcno);
            advstringgrid1.Cells[1,dcno]:=trim(edit1.Text);
            advstringgrid1.Cells[2,dcno]:=trim(edit3.Text);
            advstringgrid1.Cells[3,dcno]:=trim(edit2.Text);
            dcno:=dcno+1;
            advstringgrid1.RowCount:=dcno;
            edit1.Text:='';
            edit1.SetFocus;
            edit3.Text:='';
            break;
            exit;
          end;
          break;
        end;
       end;
end;

procedure Tdcfrm.Timer1Timer(Sender: TObject);
var
 j,quality:integer;
 totalth:real;
begin
 totalth:=0;
 quality:=0;
  for j:=1 to advstringgrid1.RowCount do
     begin
      if advstringgrid1.Cells[1,j]='' then break;
      advstringgrid1.Cells[4,j]:=floattostr(strtofloatdef(trim(advstringgrid1.Cells[2,j]),0)*strtointdef(trim(advstringgrid1.Cells[3,j]),0));
      totalth:=strtofloatdef(trim(advstringgrid1.cells[4,j]),0)+totalth;
      label11.Caption:=floattostr(totalth);
      quality:=strtoint(trim(advstringgrid1.cells[3,j]))+quality;
      label12.Caption:=inttostr(quality);
     end;

end;

procedure Tdcfrm.Edit2Enter(Sender: TObject);
begin
Edit2.Color:=clSkyBlue;
end;

procedure Tdcfrm.Edit2Exit(Sender: TObject);
begin
Edit2.color:=clWindow;
end;

end.

⌨️ 快捷键说明

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