国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

轉:Visual Basic.NET快速開發MIS系統(2)

2024-07-10 13:02:21
字體:
來源:轉載
供稿:網友
窗體繼承及實現

  所處理的物理表

  有了上面的類,我們就可應用它來實現mis系統中關于物理表的操作功能。

  例如我們有一個tinfo表、tuser表、tchange表、tsub表,表中都定義了主關鍵字字段fsystemid, 表結構如下:



        tchange表

tsub表  

  生成窗體模板

  我們要向tinfo表、tuser二個表里插入數據,刪除數據,更新數據,它們應該分別在二個form里完成。這里,我們可先定義一form模板,命名為frmmodule,在frmmodule上增加工具箱toolbar1,在toolbar1增加"增加"、"保存"按鈕 、"刪除"、"退出"等按鈕,增加數據網絡datagrid1,文本盒及下拉列表盒。布置好后如下圖:




  把在繼承的form中可能會重新設置控件的控件對象的友元屬性改為公有屬性:

  要使模板frmmodule中的控件能夠在繼承的窗體中能夠修改其所繼承的控件屬性,必須把其友元屬性改為公有屬性

public withevents label2 as system.windows.forms.label
public withevents txt4 as system.windows.forms.combobox


  定義frmmodule類的全局變量

  frmmodule直接調用cdata類的方法,完成所需功能。

public shared gcls as new cdata()
public gisupdate as boolean

  定義frmmodule的方法

  在frmmodule的load事件中連接數據庫,并填充網格數據,即:

public shadows sub frmmodel_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
 gcls.db.connoracle("gdzc", "liyu", "123")
 gcls.fillgrid(me.datagrid1)
end sub

  當單擊datagrid1時,應把datagrid1的當前行寫入輸入控件中供用戶修改數據,取得當前行的標識,這里用systemid記錄,同時表示可以更新。這個過程在datagrid1的_currentcellchanged事件中完成, 即:

private sub datagrid1_currentcellchanged(byval sender as object, byval e as system.eventargs)  handles datagrid1.currentcellchanged
 dim rowindex as int16
 rowindex = datagrid1.currentrowindex
 gcls.datagridtotext(me)
 gcls.systemid = datagrid1.item(rowindex, 0)
 gisupdate = true
end sub

  編寫toolbar1的buttonclick事件。由按鈕文本識別所單擊的對象.當時單擊"增加"時表示不能更新,當時單擊"保存"時要識別是更新還是插入數據。執行完后要重新填充網格, 即:

private sub toolbar1_buttonclick(byval sender as system.object, byval e as system.windows.forms.toolbarbuttonclickeventargs) handles toolbar1.buttonclick
 select case e.button.text
 case "增加"
  gisupdate = false
 case "保存"
  writedatetoarray()
  if gisupdate then
   gcls.update()
   exit select
  else
   gcls.insert()
  end if
 case "刪除"
  if msgbox ("真的刪除該數據嗎?(y/n)") = 7 then
   return
  end if
  gcls.delete()
 case "退出"
  me.close()
  exit sub
 end select
 gcls.fillgrid(datagrid1)
end sub

'把輸入的數據用對象數組保存起來
public overridable sub writedatetoarray()
 dim i as int16
 dim obj as control
 for i = 1 to gcls.fieldcount - 1
  for each obj in me.controls
   if obj.tabindex = i then
    gcls.objfields(i) = obj.text
    exit for
   end if
  next
 next
 gcls.objfields(0) = gcls.db.getmaxid(gcls.updatetable, "fsystemid") + 1
end sub  



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉黎县| 昭苏县| 惠东县| 台州市| 甘肃省| 普陀区| 嵊州市| 额敏县| 扎鲁特旗| 涡阳县| 宾川县| 科尔| 化隆| 凌海市| 兴城市| 东乡族自治县| 昭觉县| 九龙县| 雅江县| 临江市| 治县。| 勃利县| 加查县| 缙云县| 花垣县| 革吉县| 嘉定区| 二连浩特市| 元朗区| 永丰县| 涟源市| 南京市| 淮安市| 维西| 壶关县| 黑山县| 荆州市| 吴川市| 治多县| 洛川县| 台南市|