查詢員工源碼
㈠ 急求pb考勤管理系統(pb+access)論文
文字自己想辦法
一:變數說明
1:application :
test
2:窗體
login:登陸窗口
w_main:考勤管理系統的主界面,選擇操作
w_chuli:個人考勤記錄處理
w_shengding:缺勤類型設定
w_tongji:員工考勤統計
w_yuangong:員工基本信息
3:數據窗口
dw_chuli1:個人考勤記錄處理
dw_shengding:缺勤類型設定
dw_chuli:員工考勤統計
w_yuangong:員工基本信息
二:函數說明
一:application test中的函數
1. 函數名:test::open( )
作用:將test這個資料庫注冊為當前機器的用戶的數據源
代碼:
String ls_odbc //資料庫名
String currdir = Space(100), key//資料庫「test」的完整路徑
Environment env
string gs_currdir = GetCurrentDirectory()//得到運行程序的當前路徑
GetEnvironment(env)
ls_odbc = "test"//資料庫名為「test」
currdir=GetCurrentDirectory() + "\" + ls_odbc + ".mdb"//當前運行程序路徑加上資料庫名就是資料庫「test」的完整路徑
RegistryGet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources", ls_odbc, RegString!, key)
if key="" then
CHOOSE CASE env.OSType//判斷操作系統的類型,注冊響應的數據源的驅動
CASE Windows!//為Windows
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources", ls_odbc, RegString!, "Microsoft Access Driver (*.mdb)")
CASE WindowsNT!//為WindowsNT
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\ODBC Data Sources", ls_odbc, RegString!, "Driver do Microsoft Access (*.mdb)")
CASE ELSE
END CHOOSE
// 將資料庫test注冊為用戶的數據源
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "", RegString!, "")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "DBQ", RegString!, "" + currdir )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "Driver", RegString!, "odbcjt32.dll")
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "DriverId" , ReguLong!, 25 )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "FIL" , RegString!, "MS Access;" )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "SafeTransactions", RegString!, "0" )
RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\" + ls_odbc, "UID" , RegString!, "" )
end if
open(login)// 打開登陸窗口
二:登陸窗口中的函數
1:函數名:login.open()
作用:連接到本機器數據源為test的資料庫
代碼:
sqlCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=test;UID=;PWD='"
connect;
if sqlca.sqlcode<>0 then
Messagebox("錯誤!,無法連接資料庫:",sqlca.sqlerrtext)
halt close
end if
2:函數名:cb1。Clicked() 即點擊登陸按鈕的事件
作用:當用戶輸入帳號和密碼後,判斷是否在「操作員表」中 ,存在就打開考勤管理系統主界面
代碼:
//定義兩個變數
string password,usename
// 資料庫連接參數
//檢索用戶名和密碼記錄
SELECT 操作員表.用戶名,
操作員表.密碼
INTO :usename,
:password
FROM 操作員表
WHERE 操作員表.用戶名 = :sle_1.text ;
//判斷用戶輸入的用戶名是否正確
if sle_1.text="" or sle_2.text="" then
messagebox("錯誤!","用戶名或密碼不能為空!",exclamation!,ok!,2)
else
if usename=sle_1.text and password=sle_2.text then
messagebox("通過驗證!","用戶名和密碼正確,歡迎您使用本系統!",Information!,ok!,2)
open(w_main)// 打開考勤管理系統主界面
close(parent)
else
messagebox("錯誤!","用戶名或密碼錯誤,請重新輸入!",exclamation!,ok!,2)
end if
end if
3:函數名:cb2。Clicked() 即點擊取消按鈕的事件
作用:關閉窗口
代碼:
close(parent)
二:主窗口中的函數
1:函數名:rb_1。Clicked()
作用:關閉當前窗口,打開員工基本信息窗口
代碼:open(w_yuangong)
close(parent)
2:函數名:rb_2。Clicked()
作用:關閉當前窗口,打開考勤信息處理窗口
代碼:open(w_chuli)
close(parent)
3:函數名:rb_3。Clicked()
作用:關閉當前窗口,打開缺勤類型設定窗口
代碼:open(w_shengding)
close(parent)
4:函數名:rb_4。Clicked()
作用:關閉當前窗口,打開員工考勤統計窗口
代碼:open(w_tongji)
close(parent)
5:函數名:pb_1。Clicked()
作用:關閉當前窗口
代碼:close(parent)
三:考勤信息處理窗口中的函數
1:函數名:open( )
作用:將數據窗口和資料庫連接,並且顯示資料庫存在的數據
代碼:dw_1.settransobject(sqlca)
dw_1.retrieve()
2:函數名:pb_1。Clicked()
作用:插入一條新記錄
代碼:dw_1.insertrow(0)
3:函數名:pb_2。Clicked()
作用:刪除一條當前記錄
代碼:dw_1.deleterow(0)
4:函數名:pb_3。Clicked()
作用:向資料庫提交插入,刪除和修改的操作,如果成功就發到資料庫
代碼:
integer returncode
returncode=dw_1.update()
if returncode>0 then
commit using sqlca;
else
rollback using sqlca;
end if
4:函數名:pb_4。Clicked()
作用:關閉當前窗口,回到主界面
代碼:
open(w_main)
close(parent)
四:缺勤類型設定窗口中的函數
1:函數名:open( )
作用:將數據窗口和資料庫連接,並且顯示資料庫存在的數據
代碼:dw_1.settransobject(sqlca)
dw_1.retrieve()
2:函數名:pb_1。Clicked()
作用:插入一條新記錄
代碼:dw_1.insertrow(0)
3:函數名:pb_2。Clicked()
作用:刪除一條當前記錄
代碼:dw_1.deleterow(0)
4:函數名:pb_3。Clicked()
作用:向資料庫提交插入,刪除和修改的操作,如果成功就發到資料庫
代碼:
integer returncode
returncode=dw_1.update()
if returncode>0 then
commit using sqlca;
else
rollback using sqlca;
end if
4:函數名:pb_4。Clicked()
作用:關閉當前窗口,回到主界面
代碼:
open(w_main)
close(parent)
五:員工基本信息窗口中的函數
1:函數名:open( )
作用:將數據窗口和資料庫連接,並且顯示資料庫存在的數據
代碼:dw_1.settransobject(sqlca)
dw_1.retrieve()
2:函數名:pb_1。Clicked()
作用:插入一條新記錄
代碼:dw_1.insertrow(0)
3:函數名:pb_2。Clicked()
作用:刪除一條當前記錄
代碼:dw_1.deleterow(0)
4:函數名:pb_3。Clicked()
作用:向資料庫提交插入,刪除和修改的操作,如果成功就發到資料庫
代碼:
integer returncode
returncode=dw_1.update()
if returncode>0 then
commit using sqlca;
else
rollback using sqlca;
end if
4:函數名:pb_4。Clicked()
作用:關閉當前窗口,回到主界面
代碼:
open(w_main)
close(parent)
六:員工考勤統計窗口中的函數
1:函數名:open( )
作用:將數據窗口和資料庫連接,並且顯示資料庫存在的數據
代碼:dw_1.settransobject(sqlca)
dw_1.retrieve()
2:函數名:ddlb_1。Selectchange()
作用: 改變數據窗口中數據的大小
代碼:dw_1.modify('DataWindow.Zoom = '+ trim(ddlb_1.text))
3:函數名:cb1。Clicked()
作用: 回到數據窗口中上一頁
代碼:dw_1.scrollpriorpage()
4:函數名:cb2。Clicked()
作用: 回到數據窗口中下一頁
代碼:dw_1.scrollnextpage()
5:函數名:cb3。Clicked()
作用: 列印數據窗口
代碼:dw_1.print()
6:函數名:cb4。Clicked()
作用: 列印設置
代碼:printsetup()
7:函數名:cb5。Clicked()
作用: 列印預覽
代碼:
dw_1.Modify("DataWindow.Print.Orientation = '1'") //橫向
dw_1.Modify("DataWindow.Print.Orientation = '2'") //縱向
dw_1.Modify("DataWindow.Print.Preview = yes")
dw_1.Modify("DataWindow.Print.Preview.Rulers = yes")
dw_1.modify('DataWindow.Print.Preview.Zoom = '+ trim(ddlb_1.text))
8:函數名:cb5。Clicked()
作用: 列印預覽
9:函數名:ddlb_2。Selectchange()
作用: 改變列印預覽窗口的大小
代碼:
dw_1.modify('DataWindow.Print.Preview.Zoom = '+ trim(ddlb_2.text))
10:函數名:cb6。Clicked()
作用: 將數據窗口中的數據保存為表格形式的文件
代碼:string ls_path, ls_file
int li_rc
ls_path = sle_1.Text
li_rc = GetFileSaveName ( "Select File", ls_path, ls_file, "xls", "*.xls,*.xls" )
//得到路徑名
IF li_rc = 1 Then
OLEObject ole_object , ole_workbooks
ole_object = CREATE OLEObject
//創建Excel對象
IF ole_object.ConnectToNewObject("Excel.Application") <> 0 THEN
MessageBox('OLE錯誤','OLE無法連接!')
return
END IF
ole_object.workbooks.add
ole_object.Visible = True
ole_workbooks = ole_object.Worksheets(1)
ole_workbooks.cells(1,1).value="員工號"
ole_workbooks.cells(1,2).value="時間"
ole_workbooks.cells(1,3).value="天數"
ole_workbooks.cells(1,4).value="類型"
ole_workbooks.cells(1,5).value="原因"
long l_row
for l_row = 2 to dw_1.rowcount()+1
ole_workbooks.cells(l_row,1).value=dw_1.getitemstring(l_row - 1,1)
ole_workbooks.cells(l_row,2).value=dw_1.getitemstring(l_row - 1,2)
ole_workbooks.cells(l_row,3).value=dw_1.getitemstring(l_row - 1,3)
ole_workbooks.cells(l_row,4).value=dw_1.getitemstring(l_row - 1,4)
ole_workbooks.cells(l_row,5).value=dw_1.getitemstring(l_row - 1,5)
next
ole_workbooks.SaveAs ( ls_path)
ole_object.quit()
Ole_Object.DisConnectObject()
Destroy Ole_Object
destroy ole_workbooks
messagebox("!","文件保存到"+ ls_path)
End If
11:函數名:sel。modify()
作用: 將數據窗口中的數據按輸入的員工號顯示
代碼:
string emp_no
string condition
if sle_1.text <> "" then
emp_no=trim(sle_1.text)
condition="emp_no="+"'"+ emp_no+"'"
dw_1.setfilter( condition)
filter(dw_1)
dw_1.retrieve()
end if