国产探花免费观看_亚洲丰满少妇自慰呻吟_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  



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 邵阳县| 西平县| 城固县| 易门县| 平塘县| 霍林郭勒市| 永昌县| 滁州市| 贵州省| 丹寨县| 灌云县| 柳河县| 五台县| 福建省| 平邑县| 平湖市| 普洱| 灵川县| 金湖县| 南宫市| 普安县| 台前县| 丰台区| 灵宝市| 武隆县| 张北县| 永嘉县| 桐乡市| 卓资县| 襄城县| 定陶县| 津市市| 邯郸市| 自贡市| 华蓥市| 浦东新区| 申扎县| 剑阁县| 奉贤区| 昌图县| 北海市|