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

📄 mrcpck.pas

📁 这是用Delphi编写的汽车配件管理系统。主要功能有基础信息管理
💻 PAS
📖 第 1 页 / 共 2 页
字号:
   bitbtn1.enabled:=true; bitbtn4.enabled:=true;  //登记、退出按钮可用
   bitbtn9.enabled:=false; bitbtn2.enabled:=false; bitbtn3.enabled:=false;//出库、取消出库、打印按钮不可用
   bitbtn6.enabled:=false;bitbtn5.enabled:=false;bitbtn7.enabled:=false; // 添加、重新添加、修改按钮不可用
   bitbtn8.enabled:=false; //删除按钮不可用
   table1.First;
   table1.edit;
   table3.edit;
   while not table1.Eof do begin
    table3.locate('cpbh',table1.fieldbyname('cpbh').asstring,[lopartialkey]);
    table3.edit;
    if table1.FieldByName('shuliang').asinteger> table3.fieldbyname('shuliang').asinteger then begin  //判断库存不够
      showmessage('库中的('+table1.fieldbyname('cpmc').asstring+')没有那么多。');
      table1.edit;
      table1.fieldbyname('shuliang').asinteger:=  table3.fieldbyname('shuliang').asinteger;   //数量为库存数量
      table1.fieldbyname('je').asinteger:=table1.fieldbyname('shuliang').asinteger* table1.fieldbyname('ling').asinteger; //重新计算金额
      table1.fieldbyname('ying').asinteger:= table1.fieldbyname('je').asinteger;
     end;
     if table3.locate('cpbh',table1.fieldbyname('cpbh').asstring,[loCaseInsensitive]) then begin
      table3.edit;
      table3.fieldbyname('shuliang').asinteger:=table3.fieldbyname('shuliang').asinteger-table1.fieldbyname('shuliang').asinteger; //计算库存
      table3.post;
     end;
     table4.insert;
     table4.fieldbyname('cpbh').asstring:=table1.fieldbyname('cpbh').asstring;
     table4.fieldbyname('cpmc').asstring:=table1.fieldbyname('cpmc').asstring;
     table4.fieldbyname('cpxh').asstring:=table1.fieldbyname('cpxh').asstring;
     table4.fieldbyname('cpbs').asstring:= table1.fieldbyname('cpbs').asstring;
     table4.fieldbyname('cx').asstring:=table1.fieldbyname('cx').asstring;
     table4.fieldbyname('cd').asstring:=table1.fieldbyname('cd').asstring;
     table4.fieldbyname('jsr').asstring:= table1.fieldbyname('jsr').asstring;
     table4.fieldbyname('rdate').asdatetime:= table1.fieldbyname('rdate').asdatetime;
     table4.fieldbyname('ling').asinteger:=table1.fieldbyname('ling').asinteger;
     table4.fieldbyname('khbh').asstring:=table1.fieldbyname('khbh').asstring;
     table4.fieldbyname('khqc').asstring:= table1.fieldbyname('khqc').asstring;
     table4.fieldbyname('lxdh').asstring:= table1.fieldbyname('lxdh').asstring;
     table4.fieldbyname('je').asstring:=table1.fieldbyname('je').asstring;
     table4.fieldbyname('ying').asstring:=table1.fieldbyname('ying').asstring;
     table4.fieldbyname('dan').asstring:= table1.fieldbyname('dan').asstring;
     table4.fieldbyname('shuliang').asstring:=table1.fieldbyname('shuliang').asstring;
     table4.fieldbyname('piao').asstring:=combobox2.text;
     table4.Post;    //保存出库记录
     table1.delete;  //删除临时表记录
    end;
  table5.Insert;
  table5.fieldbyname('piao').asstring:=combobox2.text;
  combobox2.items.add(combobox2.text);
  table5.post;//保存票号
  combobox2.enabled:=true;
  datasource1.DataSet:=table4;
  table4.open;
  table4.Filtered:=true;
  table4.filter:=format('piao'+'='+'''%s''',[combobox2.text]);
  except
    showmessage('数据不能保存。');
 end;
 datasource1.DataSet:=table1;
 table1.open;    //显示库存
end;
procedure Tcpck.BitBtn7Click(Sender: TObject); //重新登记库存
begin
 try
  if application.MessageBox('是否保存当前信息?','提醒',mb_yesno)=idyes then begin
  table1.First;
  table1.edit;
  table3.edit;
  while not table1.Eof do begin
    table3.locate('cpbh',table1.fieldbyname('cpbh').asstring,[lopartialkey]);
    table3.edit;
     if table1.FieldByName('shuliang').asinteger> table3.fieldbyname('shuliang').asinteger then begin //出库数量大余库存
       showmessage('库中德('+table1.fieldbyname('cpmc').asstring+ ')没有那么多,系统将把它全部出库。');
       table1.fieldbyname('shuliang').asinteger:=table3.fieldbyname('shuliang').asinteger;
     end;
     table3.fieldbyname('shuliang').asinteger:=table3.fieldbyname('shuliang').asinteger-table1.fieldbyname('shuliang').asinteger;
     table3.post; //保存库存
     table4.insert;
     table4.fieldbyname('cpbh').asstring:=table1.fieldbyname('cpbh').asstring;
     table4.fieldbyname('cpmc').asstring:=table1.fieldbyname('cpmc').asstring;
     table4.fieldbyname('cpxh').asstring:=table1.fieldbyname('cpxh').asstring;
     table4.fieldbyname('cpbs').asstring:=table1.fieldbyname('cpbs').asstring;
     table4.fieldbyname('cx').asstring:=table1.fieldbyname('cx').asstring;
     table4.fieldbyname('cd').asstring:=table1.fieldbyname('cd').asstring;
     table4.fieldbyname('jsr').asstring:=table1.fieldbyname('jsr').asstring;
     table4.fieldbyname('rdate').asdatetime:=table1.fieldbyname('rdate').asdatetime;
     table4.fieldbyname('ling').asinteger:= table1.fieldbyname('ling').asinteger;
     table4.fieldbyname('khbh').asstring:=table1.fieldbyname('khbh').asstring;
     table4.fieldbyname('khqc').asstring:=table1.fieldbyname('khqc').asstring;
     table4.fieldbyname('lxdh').asstring:=table1.fieldbyname('lxdh').asstring;
     table4.fieldbyname('je').asstring:= table1.fieldbyname('je').asstring;
     table4.fieldbyname('ying').asstring:=table1.fieldbyname('ying').asstring;
     table4.fieldbyname('dan').asstring:=table1.fieldbyname('dan').asstring;
     table4.fieldbyname('shuliang').asstring:= table1.fieldbyname('shuliang').asstring;
     table4.Post; //保存出库记录
     table1.delete; //删除临时记录
    end;
    table5.Insert;
    table5.fieldbyname('piao').asstring:=combobox2.Text;
    table5.post;  //保存票号
    combobox2.Items.add(combobox2.text);
   end else begin
    table1.first;
   while not table1.Eof do begin
    table1.delete;
   end;
  end;
  edit6.text:=''; edit7.text:='0';edit9.text:='';edit8.text:='0';edit10.text:='0';
  edit6.setfocus;
  edit1.text:='0'; edit4.text:='0';edit5.text:='0';  listbox1.items.clear; //初始化出库数量、金额、应付、出库产品统计
 except
   showmessage('');
 end;
end;
procedure Tcpck.BitBtn6Click(Sender: TObject);  //删除出库记录
begin
 try
  if messagedlg('您确定要删除产品名称为(' +table1.fieldbyname('cpmc').asstring+')的产品吗?', mtConfirmation,[mbyes,mbno],0)=mryes then begin
    edit1.text:=inttostr(strtoint(edit1.text)- table1.fieldbyname('shuliang').asinteger);   //出库数量
    edit4.text:=inttostr(strtoint(edit4.text)-table1.fieldbyname('je').asinteger);   //出库金额
    edit5.text:=inttostr(strtoint(edit5.text)-table1.fieldbyname('je').asinteger);   //应付金额
    table1.Delete;  //删除记录
   end;
   listbox1.Clear;  //清空
   table1.First;
   while not table1.Eof do begin   //重新统计出库产品
    listbox1.items.add('产品:('+table1.fieldbyname('cpmc').asstring+') 型号:('+table1.fieldbyname('cpxh').asstring+')');
    table1.next;
   end;
  except
   showmessage('数据无法连接。');
 end;
end;
procedure Tcpck.BitBtn3Click(Sender: TObject);  //取消出库登记
begin
 try
   table1.cancel; //取消保存临时记录
   edit1.text:='0'; edit4.text:='0';edit5.text:='0'; listbox1.items.Clear;  //初始化出库数量、金额、应付金额、统计列表
   bitbtn1.enabled:=true; bitbtn4.enabled:=true; bitbtn9.enabled:=false;
   bitbtn8.enabled:=false; bitbtn2.enabled:=false; bitbtn3.enabled:=false;bitbtn6.enabled:=false;
   bitbtn5.enabled:=false; bitbtn7.enabled:=false;
   datasource1.DataSet:=table4;
   table4.open;
   combobox2.enabled:=true;
   combobox2.ItemIndex:=0;
   table4.Filtered:=true;
   table4.filter:=format('piao'+'='+'''%s''',[combobox2.text]);
  except
   showmessage('');
  end;
 end;
 procedure Tcpck.ComboBox2Click(Sender: TObject);
 begin
 if combobox2.text='所有记录' then begin
  table4.filtered:=false;
  end else begin
  table4.Filtered:=true;
  table4.filter:=format('piao'+'='+'''%s''',[combobox2.text]);
 end;
end;

procedure Tcpck.BitBtn8Click(Sender: TObject);   //添加数据
begin
 edit6.text:='';
 edit7.text:='';
 edit8.text:='';
 edit6.setfocus;
end;
procedure Tcpck.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 CPCK.release;
end;
procedure Tcpck.Edit5Exit(Sender: TObject);
begin
 if edit5.text='' then  edit5.text:='0'
end;
procedure Tcpck.ComboBox1Exit(Sender: TObject);
begin
 if combobox1.text<>'' then begin
 if table2.Locate('khbh',combobox1.text,[lopartialkey]) then begin  //显示客户名称、电话
    edit2.text:=table2.fieldbyname('khqc').asstring;
    edit3.text:=table2.fieldbyname('lxdh').asstring;
  end else begin
    showmessage('库中无此记录');
    combobox1.setfocus;
  end;
 end;
end;
procedure Tcpck.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
 if key=#13 then bitbtn1.setfocus;  //回车焦点移到登记按钮
 end;
 procedure Tcpck.Edit6KeyPress(Sender: TObject; var Key: Char);  //选择出库产品
 begin
 if key=#13 then begin  //回车确认
   if table3.locate('cpbh',edit6.text,[loCaseInsensitive]) then begin  //如果库存存在出库商品
     if table3.fieldbyname('bei').asstring<>'退货' then begin //如果此产品非退货产品
      a1:=table3.fieldbyname('cpbh').asstring;
      a2:=table3.fieldbyname('cpmc').asstring;
      a3:=table3.fieldbyname('cpxh').asstring;
      a4:=table3.fieldbyname('cpbs').asstring;
      a5:=table3.fieldbyname('dan').asstring;
      edit7.text:=inttostr(table3.fieldbyname('ling').asinteger); //显示产品价格
      edit9.text:=table3.fieldbyname('cpmc').asstring;   //显示产品名称
      a7:=table3.fieldbyname('cx').asstring;
      a8:=table3.fieldbyname('cd').asstring;
      edit7.setfocus;
     end;
   end  else begin
     if application.MessageBox('库中没有此产品,是否强行出库?','提醒',mb_yesno)=idyes then begin
      if table7.locate('cpbh',edit6.text,[loCaseInsensitive]) then begin
       a1:=table7.fieldbyname('cpbh').asstring;
       a2:=table7.fieldbyname('cpmc').asstring;
       a3:=table7.fieldbyname('cpxh').asstring;
       a5:=table7.fieldbyname('dan').asstring;
       edit7.text:=inttostr(table7.fieldbyname('ling').asinteger);
       a7:=table7.fieldbyname('cx').asstring;
       a8:=table7.fieldbyname('cd').asstring;
       edit7.setfocus;
      end else begin
       edit6.setfocus;
      end;
    end;
  end;
 end;
end;
procedure Tcpck.Edit7KeyPress(Sender: TObject; var Key: Char);
var shu:integer;
begin
 try
 if key=#13 then begin
  table4.first;
  table4.Filtered:=true;
  table4.filter:=format('cpmc'+'='+'''%s''',[edit6.text]);
  if table4.Locate('cpmc',edit6.text,[loCaseInsensitive]) then
  begin
   table4.Last;
   shu:=table4.fieldbyname('ling').asinteger;
   end Else begin
     table7.locate('cpmc',edit6.text,[loCaseInsensitive]);
     shu:=table7.fieldbyname('ling').asinteger;
   end;
   table4.filtered:=false;
  If strtoint(edit7.Text) < shu Then begin
   showmessage('本次出库单价低于平日,请三思后出库。');
  end;
  edit8.setfocus;
  end;
  except
   showmessage('数据不合法。');
  end;
  if (key<'0') or (key>'9') then key:=chr(0);
end;

procedure Tcpck.Edit8KeyPress(Sender: TObject; var Key: Char); //确认数量
begin
try
 if key=#13 then begin
  edit1.text:=inttostr(strtoint(edit1.text)+strtoint(edit8.text)); //计算出库总数量
  edit4.text:=inttostr(strtoint(edit4.text)+strtoint(edit10.text));   //计算出库金额
  edit5.text:=edit4.text;
  listbox1.items.add('产品:('+a2+')   型号:('+a3+')');
  table1.AppendRecord([a1,a2,a3,a4,date,mrqp.label1.caption,a5,edit8.text,a7,a8,combobox1.Text,
      edit2.text,edit3.text,strtoint(edit7.text), strtoint(edit10.text),strtoint(edit10.text)]);
  edit6.text:='0';  edit7.text:='0';  edit8.text:='0';  edit9.text:='0';  edit10.text:='0';  //清空数据
  edit6.setfocus;
 end;
except
 showmessage('数据连接有误。');
end;
if (key<'0') or (key>'9') then key:=chr(0); //如果数据不合法
end;
procedure Tcpck.Edit8Change(Sender: TObject);
begin
 edit10.Text:=inttostr(strtoint(edit8.text)* strtoint(edit7.text)); //计算合计金额
end;
end.

⌨️ 快捷键说明

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