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

📄 mainunt.pas

📁 商品销售系统完全的功能SQL和JAVA
💻 PAS
📖 第 1 页 / 共 3 页
字号:
unit mainunt;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, mxOutlookBarPro, ToolWin, ComCtrls, ExtCtrls, ActnList, Grids,Math,
  StdCtrls, Buttons, DB,shellapi, ImgList;

type
  Tmain = class(TForm)
    mxOutlookBarPro1: TmxOutlookBarPro;
    StatusBar1: TStatusBar;
    Image1: TImage;
    Panel1: TPanel;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    Edit12: TEdit;
    Edit11: TEdit;
    BitBtn14: TBitBtn;
    BitBtn1: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn15: TBitBtn;
    BitBtn7: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn13: TBitBtn;
    BitBtn16: TBitBtn;
    BitBtn17: TBitBtn;
    Edit9: TEdit;
    Edit8: TEdit;
    Label7: TLabel;
    Label8: TLabel;
    StringGrid1: TStringGrid;
    tempGrid: TStringGrid;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit13: TEdit;
    ActionList1: TActionList;
    Action1: TAction;
    Action2: TAction;
    Action3: TAction;
    Action4: TAction;
    Action5: TAction;
    Action6: TAction;
    Action7: TAction;
    Action8: TAction;
    Action9: TAction;
    Action10: TAction;
    Action12: TAction;
    Action13: TAction;
    Timer1: TTimer;
    BitBtn6: TBitBtn;
    Label11: TLabel;
    Label10: TLabel;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    DataSource3: TDataSource;
    DataSource6: TDataSource;
    DataSource2: TDataSource;
    DataSource5: TDataSource;
    DataSource4: TDataSource;
    DataSource1: TDataSource;
    Label9: TLabel;
    Timer2: TTimer;
    ImageList1: TImageList;
    BitBtn8: TBitBtn;
    Action11: TAction;
    procedure StatusBar1DrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
    procedure Action3Execute(Sender: TObject);
    procedure Action4Execute(Sender: TObject);
    procedure Action5Execute(Sender: TObject);
    procedure Action6Execute(Sender: TObject);
    procedure Action7Execute(Sender: TObject);
    procedure Action8Execute(Sender: TObject);
    procedure Action9Execute(Sender: TObject);
    procedure Action10Execute(Sender: TObject);
    procedure Action12Execute(Sender: TObject);
    procedure Action13Execute(Sender: TObject);
    procedure Panel1Resize(Sender: TObject);
    procedure vat_ini;
    procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    procedure mxOutlookBarPro1Headers0Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers0Buttons4Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers2Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers2Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons1Click(Sender: TObject);
    procedure Edit1KeyPress(Sender: TObject; var Key: Char);
    procedure Edit5KeyPress(Sender: TObject; var Key: Char);
    procedure Timer1Timer(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers7Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers5Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers5Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers9Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers2Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers4Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers5Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers5Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers7Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers7Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers8Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers8Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons1Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons4Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers1Buttons0Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons2Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers3Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers5Buttons4Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers2Buttons3Click(Sender: TObject);
    procedure Timer2Timer(Sender: TObject);
    procedure Edit1Enter(Sender: TObject);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit5Enter(Sender: TObject);
    procedure Edit5Exit(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure mxOutlookBarPro1Headers6Buttons5Click(Sender: TObject);
    procedure Action11Execute(Sender: TObject);
    procedure mxOutlookBarPro1Headers7Buttons3Click(Sender: TObject);
    procedure mxOutlookBarPro1Headers7Buttons4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     sellno:string;
  end;

var
  main: Tmain;
  usrname,psmf:string;
  sno:integer;

implementation


uses data, jswcunt, thmainunt, vipxzunt,maind,datam,printsetupunt, hyszunt,
  pswunt, sysiniunt, xtszunt, thunt, hyunt, drmainunt, rlunt, dcunt,
   mrxsfxunt, yjunt, login, hyqkcx, kcqkunt, qdsxunt, hyxfphunt,
  jgwhunt, spxsphbunt, drcxunt, dccxunt, lyunt, sjbfunt, sjhfunt,
  ckdyjlunt, cklyunt, hbunt, drwhunt, dcwhunt, thcxunt, thwhunt, changeunt,
  pdunt, update;

{$R *.dfm}

//初始化数据
procedure Tmain.vat_ini;
var
 i,j:integer;
begin
   edit1.Text:='';
   edit2.Text:='0';
  // edit3.Text:='0';
   edit4.Text:='';
   edit5.Text:='';
   edit6.Text:='0';
   edit7.Text:='0';
   edit13.Text:='0';
   sno:=1;
   with stringgrid1 do
      begin
         for i:=1 to RowCount do
         for j:=0 to  stringgrid1.ColCount-1 do
            cells[j,i]:='';

      end;
     edit1.SetFocus;
end;


procedure Tmain.StatusBar1DrawPanel(StatusBar: TStatusBar;
  Panel: TStatusPanel; const Rect: TRect);
begin
  case Panel.ID of
     0: begin
         StatusBar.Canvas.Brush.Color :=$00FFE1C4;
         StatusBar.Canvas.Font.Color :=clred;
         StatusBar.Canvas.Font.Size :=12;
         //statusbar.Canvas.Draw(0,0,application.Icon);
        end;
     1: StatusBar.Canvas.Brush.Color :=$00FFE1C4;
     2: StatusBar.Canvas.Brush.Color :=$00FFE1C4;
  end;
 StatusBar1.Canvas.TextRect(Rect, Rect.Left, Rect.Top, Panel.Text);
end;

procedure Tmain.Action1Execute(Sender: TObject);
var
  k,l:integer;
 total_g:string;
begin
  sellno:=create_sell_no('sellm');
    timer1.Enabled:=false;
    if edit5.Text ='' then
      begin
      messagedlg('对不起!,你没有输入会员卡号,不是会员消费!',mtinformation,[mbOk],0);
       exit;
      end;
    if stringgrid1.Cells[1,1]='' then exit;
    if (strtofloatdef(edit7.Text,0)<0) or (strtofloatdef(edit7.Text,0)>1) then exit;
    for l:=sno-1 downto 1 do
       if (stringgrid1.Cells[5,l]='0') or (stringgrid1.Cells[5,l]='')then exit;
    try
       Dataman.ADOCon.BeginTrans;
       //主表的插入
       with Dataman.xsmQuery do
         begin
          open;
          append;
          fieldbyname('销售编号').asstring :=sellno; //编号的计算
          fieldbyname('VIP卡号').asstring :=trim(edit5.Text);
          fieldbyname('销售日期').AsDateTime :=date();
          fieldbyname('销售时间').AsDateTime :=time();
          fieldbyname('员工编号').asstring :=trim(edit8.text);
          fieldbyname('商品数量').asstring :=trim(edit13.Text);
          fieldbyname('商品金额').AsFloat :=round(strtofloatdef(trim(edit2.Text),0));
          post;
       end;
        total_g:=floattostr(strtofloatdef(trim(edit2.Text),0)*strtofloatdef(edit7.Text,0));
       // 明细表输入
       with Dataman.xsQuery do
         begin
         open;
         for k:=1 to 13 do
         begin
         if  trim(stringgrid1.Cells[1,k])='' then break;
          Append;
          FieldByName('销售编号').AsString :=sellno;
          fieldbyname('货物条形码').AsString :=trim(stringgrid1.Cells[1,k]);
          fieldbyname('销售价格').AsString :=trim(stringgrid1.Cells[3,k]);
          fieldbyname('数量').AsString :=trim(stringgrid1.Cells[2,k]);
          fieldbyname('折扣').AsString :=trim(stringgrid1.Cells[4,k]);
          fieldbyname('总额').AsString :=trim(stringgrid1.Cells[5,k]);
          post;
         end;
       end;
        //插入会员消费状态表
        with Dataman.xfztQuery do
         begin
           close;
           sql.Clear;
           sql.Add('select * from consume where VIP卡号='''+edit5.text+'''');
           prepared;
           open;
          end;
        with Dataman.xfqkQuery do
          begin
            if Dataman.xfztQuery.recordCount<>0 then
              begin
               close;
               sql.Clear;
               sql.Add('update consume set 会员消费总金额 =:xf,最近交易日=:jdate,最近交易额=:jjg where VIP卡号='''+edit5.text+'''');
               parameters.ParamByName('xf').Value:=strtofloatdef(edit6.text,0)+strtofloatdef(edit2.text,0);
               parameters.ParamByName('jdate').Value:=date();
               parameters.ParamByName('jjg').Value:=strtofloatdef(edit2.text,0);
               ExecSQL;
              end
          else
            begin
              close;
              sql.Clear;
              sql.Add('insert into consume values(:vno,:vxf,:jdate,:jjg)');
              parameters.ParamByName('vno').Value :=edit5.Text;
              parameters.ParamByName('vxf').Value :=strtofloatdef(edit2.Text,0);
              parameters.ParamByName('jdate').Value:=date();
              parameters.ParamByName('jjg').Value :=strtofloatdef(edit2.text,0);
              execsql;
            end;
          end;
        //  库存数据修改
        with Dataman.hkcQuery do
          begin
             close;
             sql.Clear;
            for k:=1 to 13 do
              begin
                if  trim(stringgrid1.Cells[1,k])='' then break;
                 sql.Add('update kc set 库存数量=库存数量-:gnunb where 货物条形码 =:gno');
                 parameters.ParamByName('gnunb').Value:=trim(stringgrid1.Cells[2,k]);
                 parameters.ParamByName('gno').Value:=trim(stringgrid1.Cells[1,k]);
                 execsql;
              end;
          end;
        Dataman.xsmQuery.UpdateBatch();
        Dataman.xsQuery.UpdateBatch();
        Dataman.xfztQuery.UpdateBatch();
        Dataman.ADOCon.CommitTrans;
    except
     begin
       Dataman.ADOCon.RollbackTrans;
       showmessage('交易没有成功!');
       exit;
       timer1.Enabled:=true;
     end;
    end;
    Dataman.xsmquery.close;
    Dataman.xsquery.close;
    dataman.hkcQuery.Close;

   
    //结帐界面的显示
   IF jswcfrm=nil THEN Application.CreateForm(Tjswcfrm,jswcfrm);
    jswcfrm.Label2.Caption :=floattostr(round(strtofloatdef(trim(edit2.Text),0)));
    jswcfrm.showmodal;
    timer1.Enabled:=true;
end;

procedure Tmain.Action2Execute(Sender: TObject);
begin
  if trim(stringgrid1.Cells[1,1])='' then exit;
  if trim(stringgrid1.Cells[2,stringgrid1.row])='' then
   begin
     stringgrid1.Row:=1; exit;
   end;
   stringgrid1.Cells[2,sno-1] :=edit1.Text;
   edit1.Text:='';
   edit1.SetFocus;
end;

procedure Tmain.Action3Execute(Sender: TObject);
begin
  if trim(stringgrid1.Cells[1,1])='' then exit;
  if trim(stringgrid1.Cells[3,stringgrid1.row])='' then
   begin
     stringgrid1.Row:=1; exit;
   end;
   stringgrid1.Cells[3,sno-1] :=edit1.Text;
   edit1.Text:='';
   edit1.SetFocus;
end;

procedure Tmain.Action4Execute(Sender: TObject);
begin
  IF thmainfrm=nil THEN Application.CreateForm(Tthmainfrm,thmainfrm);
thmainfrm.showmodal;
end;

procedure Tmain.Action5Execute(Sender: TObject);
begin
  IF vipxzfrm=nil THEN Application.CreateForm(Tvipxzfrm,vipxzfrm);
    vipxzfrm.showmodal;
end;

procedure Tmain.Action6Execute(Sender: TObject);
begin
vat_ini;
end;

procedure Tmain.Action7Execute(Sender: TObject);
begin
  if trim(stringgrid1.Cells[1,1])='' then exit;
  if trim(stringgrid1.Cells[4,stringgrid1.row])='' then
   begin
     stringgrid1.Row:=1; exit;
   end;
   stringgrid1.Cells[4,sno-1] :=edit1.Text;
   edit1.Text:='';
   edit1.SetFocus;
end;

procedure Tmain.Action8Execute(Sender: TObject);
var
  k,m:integer;
begin
    sellno:=create_sell_no('sellm');
    timer1.Enabled:=false;
    if trim(edit5.Text)<>'' then
     begin
       messagedlg('对不起!你已经输入会员卡号,是会员消费!',mtinformation,[mbOK],0);
       exit;
     end;
    if edit12.Text ='' then exit;
    if stringgrid1.Cells[1,1]='' then exit;
    if (strtofloatdef(edit11.Text,0)<0) or (strtofloatdef(edit11.Text,0)>1) then exit;
        for m:=sno-1 downto 1 do
       if (stringgrid1.Cells[5,m]='0') or (stringgrid1.Cells[5,m]='')then exit;
    try
       Dataman.ADOCon.BeginTrans;
       //主表数据插入
       with Dataman.xsmQuery do
         begin
          open;

⌨️ 快捷键说明

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