物资管理系统论文范例内容摘要:

(Tf_loginserver,f_loginserver)。 end。 end。 Finally。 end。 end。 [Sta_Date].Text := FormatDateTime(39。 yyyymmdd39。 ,Now)。 //加载AVI动画 if FileExists(ExtractFilePath()+39。 AVI\39。 ) then begin := ExtractFilePath()+39。 AVI\39。 := True。 end。 end。 基础窗体创建创建基础窗体主要是提高开发速度和代码的利用率,从基础窗体继承的子窗体具有基础窗体的全部功能。 基础窗体如图11所示。 图11 基础窗体1.窗体设计步骤添加一个新窗体,命名为“f_frame”,设置其BorderStyle属性为“bsDialog”;KeyPreview属性为“True”。 2.程序相关代码在窗体的OnKeyDown事件处理过程中设置,如果用户按下〈ESC〉键关闭窗体。 代码如下:procedure (Sender: TObject。 var Key: Word。 //按〈Esc〉键关闭窗体 Shift: TShiftState)。 begin if Key = VK_Escape then Close。 end。 定义过程“FindNext(Direct: Boolean)。 ”,使用〈Enrter〉键代替〈Tab〉键。 代码如下:procedure (Direct: Boolean)。 begin FindNextControl(ActiveControl,Direct,False,False).SetFocus。 end。 物资入库管理模块设计物资入库管理模块主要功能是记录物资入库的相关信息,使用TStringGrid组件实现多行录入。 物资入库管理模块运行结果如图12所示。 图12 物资入库管理模块运行的结果1.窗体设计步骤(1)选择“File”/“New”/“Other”菜单项,打开“New Items”对话框,选择“bpglxt”选项卡,点选“f_frame”,以继承方式使用该窗体。 单击【OK】按钮添加一个新窗体,命名窗体为“f_instore”,设置Caption属性为“物资入库管理”。 (2)在窗体上添加TLabel组件,命名为“Label1”。 设置该组件的Caption属性为“物资入库管理”,设置Label1组件的Font属性如图13所示。 图13 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”。 设计期物资入库窗体如图14所示。 图14 设计期物资入库管理模块2.程序相关代码在窗体的OnShow事件处理过程中设置TStringGrid组件相关属性,将仓库信息添加到TComboBox组件中。 代码如下:procedure (Sender: TObject)。 begin inherited。 with Reginfo do begin //设置字段名称 Cells[barcode,0]:=39。 条形码39。 Cells[storename,0]:= 39。 物资名称39。 Cells[basicunit,0]:=39。 基本单位39。 Cells[stockunit,0]:= 39。 采购单位39。 Cells[convertions,0]:= 39。 换算关系39。 Cells[unitprice,0]:= 39。 单价39。 Cells[num,0]:=39。 数量39。 Cells[money,0]:= 39。 金额39。 Cells[storagename,0]:=39。 仓库名称39。 end。 with do //查询仓库名称,将其添加到组合框中 begin CLose。 (39。 select storagename from tb_storageinfo39。 )。 Open。 end。 if 0 then begin while not do begin (Trim((39。 storagename39。 ).AsString))。 end。 := 0。 end。 end。 在TStringGrid组件的OnKeyPress事件处理过程中限制输入的内容。 代码如下:procedure (Sender: TObject。 var Key: Char)。 begin inherited。 if (col = unitprice)or(col = num)or(col = convertions) then begin if not (Key in [39。 039。 ..39。 939。 ,39。 .39。 ,8]) then //只允许输入数字键和退格键 Key := 0 //输入空字符 end。 end。 Keypress键盘事件该事件是当用户按下ASCII字符的键盘时发生的。 在该事件下的Key参数是一个数字,代表字符的ASCII值,如13(回车键)或27(ESC键)。 示例代码如下:IF Key=13 then //回车后,焦点跳转到edit2组件。 在TStringGrid组件的OnSelectCell事件处理过程中设置单元是否可编辑。 代码如下:procedure (Sender: TObject。 ACol, ARow: Integer。 var CanSelect: Boolean)。 begin inherited。 row := ARow。 col := ACol。 //当物资名称为空时可以编辑条形码,当条形码为空时可以编辑物资名称,//当条形码不为空时可以编辑单价、数量 if (col = barcode)and(Trim([storename,row])=39。 39。 )or(col = storename)and(Trim([barcode,row])=39。 39。 )or (col = unitprice)and(Trim([barcode,row])39。 39。 )or(col = num)and(Trim([barcode,row])39。 39。 )or (col = convertions)and(Trim([barcode,row])39。 39。 )then := + [goEditing] else := [goEditing]。 end。 在TStringGrid组件的OnSetEditText事件处理过程中,设置TDBGrid组件出现的位置。 代码如下:procedure (Sender: TObject。 ACol, ARow: Integer。 const Value: String)。 var CellRect: TRect。 //记录单元格的区域,用于设置begin inherited。 if Reg = false then begin := False。 //使辅助录入表格不可用 if (Acol = storename) then //按仓库名称或简码进行匹配查询 begin With do begin CLose。 (39。 select * from tb_storeinfo where storename Like :Storename or nameshort like :nameshort39。 )。 (39。 storename39。 ).Value := Trim([storename,ARow])+39。 %39。 (39。 nameshort39。 ).Value := Trim([storename,。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。