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

📄 unit3.pas

📁 PosEasy收银系统源码,Pos机前后台管理代码
💻 PAS
📖 第 1 页 / 共 3 页
字号:

    if edit3.Text='' then
      pay1:=0
    else
      pay1:=strtofloat(edit3.text);

    if edit4.Text='' then
      pay2:=0
    else
      pay2:=strtofloat(edit4.text);

    if edit5.Text='' then
      pay3:=0
    else
      pay3:=strtofloat(edit5.text);

    if edit6.Text='' then
      pay4:=0
    else
      pay4:=strtofloat(edit6.text);

    if edit7.Text='' then
      pay5:=0
    else
      pay5:=strtofloat(edit7.text);

    if edit8.Text='' then
      pay6:=0
    else
     pay6:=strtofloat(edit8.text);

    tmptotal:=pay1+pay2+pay3+pay4+pay5+pay6;
    edit1.Text:=formatfloat('0.00',tmptotal);
    edit2.Text:=formatfloat('0.00',strtofloat(edit1.text)-strtofloat(edittotal.text));

    editmoney.Text:='';
    editmoney.SetFocus;
   end;
  if mainform.IsShowed then
  begin
   //客显显示
   //使用 COM1。
   mainform.MSComm1.CommPort :=1;
   //9600 波特,无奇偶校验,8 位数据,一个停止位。
   mainform.MSComm1.Settings := '9600,N,8,1';
   //当输入占用时,
   //告诉控件读入整个缓冲区。
   mainform.MSComm1.InputLen := 0;
   //打开端口。
   mainform.MSComm1.PortOpen := True;
   //将 attention 命令送到端口。
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($41) + 'TOTAL   '+edittotal.text+ Chr(13); //显示应收金额
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($42) + 'PAY '+edit1.text+' '+'CHG '+edit2.text+ Chr(13); //显示找钱
   //关闭串行端口。
   mainform.MSComm1.PortOpen := False;
  end;
  end;
 if key='v' then           //付款5-店内票据
  begin
   if editmoney.text<>'' then
    begin
     try
      strtofloat(editmoney.text);
     except
      Application.MessageBox('请输入整数!','提示',MB_OK+MB_ICONINFORMATION);
      editmoney.Text:='';
      editmoney.SetFocus;
      Exit;
     end;
     //输入票据号码
     application.CreateForm(Tformcodenum,formcodenum);
     formcodenum.Caption:='请输入店内票据号';
     formcodenum.showmodal;

     edit7.text:=formatfloat('0.00',strtofloat(editmoney.Text));

     if edit3.Text='' then
       pay1:=0
     else
       pay1:=strtofloat(edit3.text);

     if edit4.Text='' then
       pay2:=0
     else
       pay2:=strtofloat(edit4.text);

     if edit5.Text='' then
       pay3:=0
     else
       pay3:=strtofloat(edit5.text);

     if edit6.Text='' then
       pay4:=0
     else
       pay4:=strtofloat(edit6.text);

     if edit7.Text='' then
       pay5:=0
     else
       pay5:=strtofloat(edit7.text);

     if edit8.Text='' then
       pay6:=0
     else
       pay6:=strtofloat(edit8.text);

     tmptotal:=pay1+pay2+pay3+pay4+pay5+pay6;
     edit1.Text:=formatfloat('0.00',tmptotal);
     edit2.Text:=formatfloat('0.00',strtofloat(edit1.text)-strtofloat(edittotal.text));

     editmoney.Text:='';
     editmoney.SetFocus;
   end;
  if mainform.IsShowed then
  begin
   //客显显示
   //使用 COM1。
   mainform.MSComm1.CommPort :=1;
   //9600 波特,无奇偶校验,8 位数据,一个停止位。
   mainform.MSComm1.Settings := '9600,N,8,1';
   //当输入占用时,
   //告诉控件读入整个缓冲区。
   mainform.MSComm1.InputLen := 0;
   //打开端口。
   mainform.MSComm1.PortOpen := True;
   //将 attention 命令送到端口。
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($41) + 'TOTAL   '+edittotal.text+ Chr(13); //显示应收金额
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($42) + 'PAY '+edit1.text+' '+'CHG '+edit2.text+ Chr(13); //显示找钱
   //关闭串行端口。
   mainform.MSComm1.PortOpen := False;
  end;
  end;
 if key='w' then           //付款6-挂帐
  begin
   if editmoney.text<>'' then
    begin
     try
      strtofloat(editmoney.text);
     except
      Application.MessageBox('请输入整数!','提示',MB_OK+MB_ICONINFORMATION);
      editmoney.Text:='';
      editmoney.SetFocus;
      Exit;
     end;
     edit8.text:=formatfloat('0.00',strtofloat(editmoney.Text));

     if edit3.Text='' then
       pay1:=0
     else
       pay1:=strtofloat(edit3.text);

     if edit4.Text='' then
       pay2:=0
     else
       pay2:=strtofloat(edit4.text);

     if edit5.Text='' then
       pay3:=0
     else
       pay3:=strtofloat(edit5.text);

     if edit6.Text='' then
       pay4:=0
     else
       pay4:=strtofloat(edit6.text);

     if edit7.Text='' then
       pay5:=0
     else
       pay5:=strtofloat(edit7.text);

     if edit8.Text='' then
       pay6:=0
     else
       pay6:=strtofloat(edit8.text);

     tmptotal:=pay1+pay2+pay3+pay4+pay5+pay6;
     edit1.Text:=formatfloat('0.00',tmptotal);
     edit2.Text:=formatfloat('0.00',strtofloat(edit1.text)-strtofloat(edittotal.text));


     editmoney.Text:='';
     editmoney.SetFocus;
   end;
  if mainform.IsShowed then
  begin
   //客显显示
   //使用 COM1。
   mainform.MSComm1.CommPort :=1;
   //9600 波特,无奇偶校验,8 位数据,一个停止位。
   mainform.MSComm1.Settings := '9600,N,8,1';
   //当输入占用时,
   //告诉控件读入整个缓冲区。
   mainform.MSComm1.InputLen := 0;
   //打开端口。
   mainform.MSComm1.PortOpen := True;
   //将 attention 命令送到端口。
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($41) + 'TOTAL   '+edittotal.text+ Chr(13); //显示应收金额
   mainform.MSComm1.Output := Chr($1B) + Chr($51) + Chr($42) + 'PAY '+edit1.text+' '+'CHG '+edit2.text+ Chr(13); //显示找钱
   //关闭串行端口。
   mainform.MSComm1.PortOpen := False;
  end;
  end;


 if (key<>'.') and(key<>'0') and (key<>'1') and (key<>'2') and (key<>'3') and (key<>'4') and (key<>'5') and (key<>'6') and (key<>'7') and (key<>'8') and (key<>'9') and (key<>chr(8)) then
  key:=chr(0);


end;

procedure TForm3.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
 i,j:integer;


begin
 if key=VK_RETURN then
  begin
 if edit1.text<>'' then
  if strtofloat(edit1.text)<strtofloat(edittotal.text) then
   begin
    messagebox(form3.handle,'对不起,您的账款还未付清!','提示',MB_OK+MB_ICONINFORMATION);
    exit;
   end
   else
   begin


   //把数据写进库
    WriteInBase;



   //把滚动条移到最上面
    mainform.stringgrid1.SetFocus;
    for i:=0 to mainform.stringGrid1.Selection.Top do
    begin
     postmessage(mainform.stringgrid1.handle,WM_KEYDOWN,VK_UP,0);
    end;
    mainform.pcodeedit.SetFocus;
    form3.close;
    form3.Release;
   end;
  end;

  if key=VK_ESCAPE then
   begin
    form3.Close;
    form3.Release;
   end;
end;

function TForm3.writestring(str: string): integer;
var
 s,port:string;
 lpth:Tfilestream;
begin
  s:=str;
  s:=s+#13+#10;
  port:='LPT1';
  lpth:=tfilestream.create(port,fmopenwrite);
  try
   lpth.Write(s[1],length(s));
  finally
   lpth.free;
  end;
  writestring:=0;
end;

procedure TForm3.WriteInBase;
var
 i,j:integer;
 tmpsql,tmpclerk,tmpbkclerk,tmpsaler,tmpposcode:string;
 date,time:string;
 tmpzq:real;
 tmpdate,tmpreceive,tmpback:string;
begin

   
  //取得收银机编号
    tmpposcode:=trim(mainform.Labelposcode.text);

  try
  //事物开始
    form1.database1.StartTransaction;

  //读取最大的交易流水号
   with mainform.QueryInsert do
    begin
     tmpsql:='select max(sno) as Msno from trade';

     close;
     sql.Clear;
     sql.Add(tmpsql);

     try
      prepare;
      open;
     except
      messagebox(form3.handle,'最大流水号读取失败','错误',MB_OK);
      //exit;
     end;

    end;
   if mainform.QueryInsert['msno']=null then
     sno:=0
   else
    sno:=mainform.QueryInsert['msno']+1;
    lastsno:=inttostr(sno);

    date:=formatdatetime('yyyy-mm-dd',now);
    time:=formatdatetime('hh:nn:ss',now);
    tmpclerk:=mainform.editclerk.text;
    tmpbkclerk:=mainform.editbkclerk.text;
    if mainform.editsaler.text='' then
      tmpsaler:=tmpclerk
    else
      tmpsaler:=mainform.editsaler.text;

    for i:=0 to row-1 do
    begin
      with mainform.QueryInsert do
        begin

         tmpsql:='Insert Into trade(op,ecr,clerk,tmpclerk,saler,saledate,saletime,sno,orgtotal,total,totaldis,totalsub,';
         tmpsql:=tmpsql+'pay1,pay2,pay3,pay4,pay5,pay6,cardnum,change,dept,code,name,discount,num,price,amount,sub,imark)';
         tmpsql:=tmpsql+' values(''G'','''+tmpposcode+''','''+tmpclerk+''','''+tmpbkclerk+''','''+tmpsaler+''','''+date+''','''+time+''',';
         tmpsql:=tmpsql+''''+inttostr(sno)+''',0,0,:xjzk,:xjzr,0,0,0,0,0,0,''0'',0,'''+mainform.stringGrid1.cells[2,i]+''','''+mainform.stringGrid1.cells[0,i]+''','''+trim(mainform.stringGrid1.cells[1,i])+''',';
         tmpsql:=tmpsql+''''+mainform.stringGrid1.cells[5,i]+''','''+mainform.stringGrid1.cells[4,i]+''',';
         tmpsql:=tmpsql+':tmpdj,:tmpje,:tmpzr,''0'')';


         close;
         sql.clear;
         sql.add(tmpsql);
         
         parambyname('tmpdj').asfloat:= strtofloat(mainform.stringGrid1.cells[3,i]);
         parambyname('tmpje').asfloat:= strtofloat(mainform.stringGrid1.cells[6,i]);
         parambyname('tmpzr').asfloat:= strtofloat(mainform.stringGrid1.cells[7,i]);
         if (form3.Edit9.Text='') or (form3.Edit9.Text='0') then
            parambyname('xjzk').asfloat:=0
         else
            parambyname('xjzk').asfloat:= strtofloat(form3.edit9.text);

         if (mainform.Edittotalsub.Text='') then
             parambyname('xjzr').asfloat:=0
         else
           parambyname('xjzr').asfloat:= strtofloat(mainform.edittotalsub.text);

⌨️ 快捷键说明

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