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

基于DELPHI物资存储管理系统设计与实现

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

网学网为需要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)添加4TLabel组件到Panel2组件上,分别设置它们的Caption属性为“供应商名称”、“负责人”、“操作员”、“时间”。添加4TEdit组件到Panel2组件上,分别命名为“Providername”,“Principal”,“Operator”。添加TDateTimePicker组件到Panel2组件上,命名为“Date”。

5)在窗体上添加TPanel组件,命名为“Panel1”。设置该组件的Align属性为“alBottom”,在Panel1组件上添加4TLabel组件和4TEdit组件。

6)在窗体上添加TPanel组件,命名为“Panel3”。在该组件上添加3TBitBtn组件,分别命名为“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(回车键)或27ESC键)。示例代码如下:

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;

 

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

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

原创论文

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