VB仓库管理系统(6)

2020-04-15 13:35

dw_device.SetColumn(3)

设备出库窗口的closequery事件中输入如下的程序代码: integer li_rc

//// Accept the last data entered into the datawindow dw_device_out.AcceptText()

//Check to see if any data has changed IF dw_device_out.ModifiedCount() > 0 THEN li_rc = MessageBox(\提示\

//User chose to up data and close window IF li_rc = 1 THEN

cb_update.triggerevent( Clicked!) RETURN 0

\是否保存所做的修改?\YesNoCancel!, 3)

//User chose to close window without updating ELSEIF li_rc = 2 THEN RETURN 0 //User canceled

ELSE RETURN 1 END IF ELSE

// No changes to the data, window will just close RETURN 0

END IF

在窗口关闭以前将检查数据窗口控件是否被修改,如果是,则程序会询问用户是否保存所做的修改。用户如果选择要保存数据,则窗口关闭之间会触发“保存”按钮的click事件,用于保存数据。

“增加”按钮控件的 click事件用于输入新的设备出库信息,其程序代码如下: int g_rownumber

//插入一行

G_RowNumber=dw_device.InsertRow(0) dw_device.SetFocus()

//到当前行

dw_device.ScrollToRow(G_RowNumber) // 自动设置入库时间为当前系统时间 date t_d time t_t

t_d = today() t_t = now()

dw_device.SetItem(G_RowNumber,\

//设置焦点到第3列

dw_device.SetColumn(3)

“保存”按钮控件的click事件用于保存用户所输入的出库设备信息,并且修改仓库中该设备现有数目,填写操作日志,程序代码如下:

int number,g_rownumber

int Getout_number string save_code datetime do_datetime string do_what,do_user

G_RowNumber = dw_Device_out.GetRow() dw_Device_out.AcceptText()

if dw_device_out.Update() = 1 then commit;

save_code=dw_device_out.GetItemString(G_RowNumber,1) SELECT now_number INTO :number FROM device WHERE device.code=:save_code;

getout_number=dw_device_out.GetItemNumber(G_RowNumber,\number = number - getout_number

UPDATE device SET now_number =:number WHERE device.code=:save_code;

do_datetime=dw_device_out.GetItemdatetime(G_RowNumber,\ do_what='设备' + save_code + '出库' + string(getout_number) +'个'

insert into howdo values(:do_user,:do_what,:do_datetime); messagebox(\提示\保存成功!\

else

//不能修改,则取消 rollback;

messagebox(\提示\保存不成功!\end if

“关闭”按钮控件的click事件用于关闭设备出库库窗口,程序代码如下: //关闭窗口 close(parent)

在数据窗口控件的dberror 事件输入如下的程序代码: messagebox(“警告”,”无法存入数据库!”) //disable system error return 1

由于数据窗口的“最大数目”列是用户选择了要出库的设备后,根据该设备的库存信息,动态显示的。因此,在数据窗口控件的itemchange事件中输入如下的程序代码:

if dwo.name = \

int G_RowNumber //定义当前列号变量 int ColumnNumber

//定义某个设备可出库的最大数目 int MaxNumber

//定义当前的设备号 string save_code //得到单击的列号

ColumnNumber=dw_device_out.getclickedcolumn()

G_RowNumber = this.GetRow() //如果单击第一列

if ColumnNumber = 1 then

//取得当前的设备号

save_code=dw_device_out.GetItemString(G_RowNumber,1)

FROM

device

WHERE

//从数据库表格中得到当前设备最大可出库量 SELECT now_number INTO :MaxNumber device.code=:save_code;

//将该值赋给列device_now_number

dw_device_out.SetItem(G_RowNumber,\

end if end if

通过上面的程序代码,当用户单击数据窗口第一列,也就是设备号列,选择某个出库设备后,根据设备表格中现有该设备的数目来设置“最大数目”列。 4.4 设备采购窗口的创建

设备采购模块用于生成要采购设备的报表,由主程序窗口上“功能”菜单中的“设备采购”子菜单单击事件激发。该模块有2个窗口组成,第一个窗口用来供用户选择要采购的设备,选择完毕后进入第二个窗口,用于生成设备采购报表。

设备选择窗口界面如图所示。

该窗口最上方是一个静态文本框控件,显示窗口的用途。中间是一个下拉式列表框控件,在下拉式各项中列出了各种设备,提供给用户选择。该控件可以用下拉式子数据窗口来代替。该窗口的右下方放置了2个命令按钮,在其click事件中分别用来实现采购设备的确定和取消功能。

在下拉式列表框控件ddlb_1的items属性页中各项设置如下图所示:

在设备选择窗口的open事件中输入如下的程序代码: ddlb_.setfocus()

这样在程序运行中打开设备选择窗口时,焦点总是先在ddlb_1控件上。 确定按钮的click事件用于采购设备的确定,其程序代码如下 //根据用户选择的设备得到相应的设备号 if ddlb_1.text=\

messagebox(\警告\你必须选择某个设备\return

elseif ddlb_1.text=\电动机\ g_code = \

elseif ddlb_1.text=\发动机\ g_code = \

elseif ddlb_1.text=\计算机\ g_code = \

elseif ddlb_1.text=\打印机\ g_code = \

elseif ddlb_1.text=\扫描仪\ g_code = \end if

//打开采购报表打印窗口 open(w_device_inreport) //关闭本窗口 close(parent)

单击此按钮,将打开采购报表打印窗口,并关闭本窗口。 取消按钮的 click事件用于采购设备的取消,其代码如下: close(parent)

单击此按钮,将直接关闭本窗口。 4.5 设备采购报表窗口的创建

设备采购报表窗口如图所示:

该窗口最上方是一个静态文本框控件,显示窗口的用途。中间是一个数据窗口控件。根据前一个设备选择窗口中用户选择的设备,自动到数据库中获取该设备的现有库存、设备总数、最大库存,显示在数据窗口中的相应列上。自动获取系统时间,赋值给报表时间列。用户在这里需要填写购买设备的数量、供应商名称和价格。该窗口的下方放置了2个按钮控件,在其click事件中分别用来实现设备采购服表的打印(包括数据保存到设备采购表格中)和报表取消功能。

在设备采购报表窗口的open事件中输入如下的程序代码: int temp_number,G_RowNumber,g_code

//数据窗口

dw_device_inreport.settransobject(sqlca) dw_device_inreport.retrieve() //插入一行

G_RowNumber=dw_device_inreport.insertrow(0) //显示刚刚插入行

dw_device_inreport.ScrollToRow(G_RowNumber) //设置数据窗口的设备编号列

dw_device_inreport.SetItem(G_RowNumber,\//从设备现有表格中获取现有库存

SELECT now_number INTO :temp_number FROM device WHERE device.code=:g_code; //设置数据窗口的现有库存列

dw_device_inreport.SetItem(G_RowNumber,\//从设备现有表格中获取现有库存

SELECT total_number INTO :temp_number FROM device WHERE device.code=:g_code; //设置数据窗口的设备总数列

dw_device_inreport.SetItem(G_RowNumber,\//从设备现有表格中获取最大库存

SELECT high_number INTO :temp_number FROM device WHERE device.code=:g_code;

//设置数据窗口的最大库存列

dw_device_inreport.SetItem(G_RowNumber,\//取得系统当前时间


VB仓库管理系统(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:黑龙江省工伤职工停工留薪期分类目录(伤害)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: