网站导航网学 原创论文 网站设计 最新系统 最新研究 原创论文 获取论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计下载 > DELPHI类作品 > 正文

DELPHI物资存储管理系统

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/05/11

【编者按】:网学网DELPHI类作品为您提供DELPHI物资存储管理系统参考,解决您在DELPHI物资存储管理系统学习中工作中的难题,参考学习。

QQ交谈客服咨询,网学网竭诚为您服务,本站永久域名:myeducs.cn

 

5.3.1 物资入库管理的设计
1)选择“File”/“New”/“Other”菜单项,打开“New Items”对话框,选择“bpglxt”选项卡,点选“f_frame”,以继承方式使用该窗体。
单击【OK】按钮添加一个新命名窗体为“f_instore”,设置Caption属性为“物资入库管理”。
2)在窗体上添加TLabel组件,命名为“Label1”。设置该组件的Caption属性为“物资入库管理”,设置Label1组件的Font属性。
3)在窗体上添加TPanel组件,命名为“Panel2”。设置该组件的Align属性为“alBottom”;Caption属性为空。
4)添加4个TLabel组件到Panel2组件上,分别设置它们的Caption属性为“供应商名称”、“负责人”、“操作员”、“时间”。添加4个TEdit组件到Panel2组件上,分别命名为“Providername”,“Principal”,“Operator”。添加TDateTimePicker组件到Panel2组件上,命名为“Date”。
5)在窗体上添加TPanel组件,命名为“Panel1”。设置该组件的Align属性为“alBottom”,在Panel1组件上添加4个TLabel组件和4个TEdit组件。
6)在窗体上添加TPanel组件,命名为“Panel3”。在该组件上添加3个TBitBtn组件,分别命名为“Save”、“Cancel”、“Quit”。
7)添加TStringGrid组件到窗体上,命名为“Reginfo”。设置该组件的Align属性为“alBottom”;ColCount属性为“9”;RowCount属性为“2”;Ctrl3D属性为“False”。
8)在窗体上添加TDataSource组件,命名为“RegSource”;添加TListBox组件,命名为“List”;添加TComboBox组件,命名为“Comstorage”;添加TDBGrid组件,命名为“Grid”。设置Grid组件的DataSource属性为“RegSource”。设计期物资入库窗体下图8
8 设计期物资入库管理模块
5.3.2 相关代码的分析
在窗体的OnShow事件处理过程中设置TStringGrid组件相关属性,将仓库信息添加到TComboBox组件中。代码如下:
procedure Tf_instore.FormShow(Sender: TObject);
begin
 inherited;
 with Reginfo do
 begin
    //设置字段名称
    Cells[barcode,0]:=''条形码'';
    Cells[storename,0]:= ''物资名称'';
    Cells[basicunit,0]:=''基本单位'';
    Cells[stockunit,0]:= ''采购单位'';
    Cells[convertions,0]:= ''换算关系'';
    Cells[unitprice,0]:= ''单价'';
    Cells[num,0]:=''数量'';
    Cells[money,0]:= ''金额'';
    Cells[storagename,0]:=''仓库名称'';
 end;
 with t_data.Query1 do //查询仓库名称,将其添加到组合框中
 begin
    CLose;
    SQL.Clear;
    SQL.Add(''select storagename from tb_storageinfo'');
    Open;
 end;
 if t_data.Query1.RecordCount>0 then
 begin
    while not t_data.Query1.Eof do
    begin
      Comstorage.Items.Add(Trim(t_data.Query1.FieldByName(''storagename'').AsString));
      t_data.Query1.Next;
    end;
    Comstorage.ItemIndex := 0;
 end;
 Cancel.Click;
end;
TStringGrid组件的OnKeyPress事件处理过程中限制输入的内容。代码如下:
procedure Tf_instore.ReginfoKeyPress(Sender: TObject; var Key: Char);
begin
 inherited;
 if (col = unitprice)or(col = num)or(col = convertions) then
 begin
       if not (Key in [''0''..''9'',''.'',#8]) then     //只允许输入数字键和退格键
     Key := #0   //输入空字符
 end;
end;
Keypress键盘事件
该事件是当用户按下ASCII字符的键盘时发生的。在该事件下的Key参数是一个数字,代表字符的ASCII值,如13(回车键)或27(ESC键)。示例代码如下:
IF Key=#13 then edit2.setfocus   //回车后,焦点跳转到edit2组件。
TStringGrid组件的OnSelectCell事件处理过程中设置单元是否可编辑。代码如下:
procedure Tf_instore.ReginfoSelectCell(Sender: TObject; ACol,
 ARow: Integer; var CanSelect: Boolean);
begin
 inherited;
 row := ARow;
 col := ACol;
 //当物资名称为空时可以编辑条形码,当条形码为空时可以编辑物资名称,
//当条形码不为空时可以编辑单价、数量
 if (col = barcode)and(Trim(Reginfo.Cells[storename,row])='''')or(col
= storename)and(Trim(Reginfo.Cells[barcode,row])='''')or
    (col = unitprice)and(Trim(Reginfo.Cells[barcode,row])<>'''')or(col
 = num)and(Trim(Reginfo.Cells[barcode,row])<>'''')or
    (col = convertions)and(Trim(Reginfo.Cells[barcode,row])<>'''')then
    Reginfo.Options := Reginfo.Options + [goEditing]
 else
    Reginfo.Options := Reginfo.Options - [goEditing];
end;
TStringGrid组件的OnSetEditText事件处理过程中,设置TDBGrid组件出现的位置。代码如下:
procedure Tf_instore.ReginfoSetEditText(Sender: TObject; ACol,
 ARow: Integer; const Value: String);
var
 CellRect: TRect; //记录单元格的区域,用于设置
begin
 inherited;
 if Reg = false then
 begin
    Grid.Visible := False; //使辅助录入表格不可用
    if (Acol = storename) then //按仓库名称或简码进行匹配查询
    begin
      With t_data.Query1 do
      begin
        CLose;
        SQL.Clear;
        SQL.Add(''select * from tb_storeinfo where storename Like :Storename or nameshort like :nameshort'');
        Parameters.ParamByName(''storename'').Value:= Trim(Reginfo.Cells[storename,ARow])+''%'' ;
        Parameters.ParamByName(''nameshort'').Value:= Trim(Reginfo.Cells[storename,ARow])+''%'' ;
        Open;
      end;
      if t_data.Query1.RecordCount>0 then //根据用户的输入是否有匹配的数据
      begin
        Regsource.DataSet := t_data.Query1;
        if not Grid.Visible then    //计算表格应出现的位置
        begin
          CellRect := Reginfo.CellRect(ACol,ARow);
          CellRect.Left := CellRect.Left+Reginfo.Left;
          CellRect.Right := CellRect.Right+ Reginfo.Left;
          CellRect.Top := Reginfo.Top+ CellRect.Top;
          Grid.Left := CellRect.Right+1;
          Grid.Top := CellRect.Top;
          Grid.Visible := True;
        end;
      end
      else
      begin
        RegSource.DataSet := Nil;
        Grid.Visible := False;
        Application.MessageBox(''该物资信息不存在.'',''提示'',64);
        reg := True;
        Reginfo.Cells[storename,Row]:='''';
        Reginfo.Col := storename;
      end;
    end;
end;

 

 

本站发布的计算机毕业设计均是完整无错的全套作品,包含开题报告+程序+论文+源代码+翻译+答辩稿PPT

本文选自计算机毕业设计http://myeducs.cn
论文文章部分只是部分简介,如需了解更多详情请咨询本站客服!QQ交谈QQ3710167

  • 下一篇资讯: DELHI公司人事管理系统
  • 原创论文

    设为首页 | 加入收藏 | 论文首页 |原创论文 |
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师