#Region ;**** 参数创建于 ACNWrapper_GUI ****
#PRE_Icon=1.ico
#EndRegion ;**** 参数创建于 ACNWrapper_GUI ****
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GUIListView.au3>
#include <Access.au3>
#include <Excel.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("作业量抽查系统", 800, 649, 260, 30)
$Label1 = GUICtrlCreateLabel("车牌号码", 20, 10, 68, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label2 = GUICtrlCreateLabel("号牌种类", 220, 10, 68, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label3 = GUICtrlCreateLabel("车辆状态", 420, 10, 70, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label4 = GUICtrlCreateLabel("名字", 600, 10, 40, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label5 = GUICtrlCreateLabel("车辆不合格理由", 20, 50, 120, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label6 = GUICtrlCreateLabel("日 期", 375, 50, 60, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Label7 = GUICtrlCreateLabel("名字查询:", 520, 93, 85, 27)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Input1 = GUICtrlCreateInput("", 90, 11, 97, 21)
$Input2 = GUICtrlCreateInput("", 290, 11, 97, 21)
$Input3 = GUICtrlCreateInput("", 490, 11, 90, 21)
$Input4 = GUICtrlCreateInput("", 640, 11, 110, 21)
$Input5 = GUICtrlCreateInput("", 138, 52, 200, 21)
$Input6 = GUICtrlCreateInput("", 420, 52, 160, 21)
$Input7 = GUICtrlCreateInput("", 600, 93, 100, 21)
$Button1 = GUICtrlCreateButton("设 置", 600, 52, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button2 = GUICtrlCreateButton("汇 总", 690, 52, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button3 = GUICtrlCreateButton("创 建", 20, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button4 = GUICtrlCreateButton("查 看", 120, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button5 = GUICtrlCreateButton("添 加", 220, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button6 = GUICtrlCreateButton("删 除", 320, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button7 = GUICtrlCreateButton("导出Excel", 420, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$Button8 = GUICtrlCreateButton("查 询", 710, 92, 75, 25)
GUICtrlSetFont(-1, 12, 400, 0, "微软雅黑")
$ListView1 = GUICtrlCreateListView("序号|车牌号码|号牌种类|车辆状态|名字|车辆不合格理由|日 期", 4, 130, 795, 518 ,BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
GUICtrlSendMsg(-1, 0x101E, 0, 70)
GUICtrlSendMsg(-1, 0x101E, 1, 100)
GUICtrlSendMsg(-1, 0x101E, 2, 100)
GUICtrlSendMsg(-1, 0x101E, 3, 90)
GUICtrlSendMsg(-1, 0x101E, 4, 110)
GUICtrlSendMsg(-1, 0x101E, 5, 200)
GUICtrlSendMsg(-1, 0x101E, 6, 130)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
$mdb_data_path = @ScriptDir & "\choucha.mdb"
$mdb_data_pwd='vpte'
$adTable = "Receipt"
$t='*'
shuaxin()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button3 ;新建数据库
If Not FileExists($mdb_data_path) Then
new()
Else
MsgBox(0,'关于···','本系统由云腾科技自主开发'&@CR&''&@CR&'版本:KF-0378-T1'&@CR&''&@CR&'@ 版权公有 传播不究')
EndIf
Case $Button4 ;查看
chakan()
Case $Button5 ;添加
xieru()
Case $Button6 ;删除
Case $Button7 ;导出Excel表
$LL=_GUICtrlListView_GetSelectedCount($ListView1)
If $LL=0 Then
MsgBox(48,'提示:','请至少选定一条记录,按 Ctrl 或 Shift 可以多选')
Else
newxls()
EndIf
Case $Button8 ;查询
If Not GUICtrlRead($Input7)='' Then
xun()
Else
MsgBox(48,'提示:','请输入你要查询的名称')
EndIf
EndSwitch
WEnd
Func shuaxin() ;刷新选择框
If Not FileExists($mdb_data_path) Then
$msg=MsgBox(1,'欢迎使用','没有找到数据库文件,是否创建?')
If $msg=1 Then
new()
Else
Exit
EndIf
EndIf
EndFunc
Func new() ;新建数据库和表
$time=@MIN&@SEC&'-'&@MDAY&@HOUR&'-'&@YEAR
$newMdb = ObjCreate('ADOX.Catalog')
$newMdb.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$newmdb.ActiveConnection.Close;建数据库
$addtbl = ObjCreate("ADODB.Connection")
$addTbl.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addTbl.Execute("CREATE TABLE " & $adTable)
$addtbl.Close;建表
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$addfld.Execute("ALTER TABLE " & $adTable & " ADD ID identity(1, 1) primary key,chepaihao text(255),haopai text(255),zhuangtai text(255),mingzi text(255),buhege text(255),riqi text(255)")
$addfld.Close;建列表名
MsgBox(0,'提示','数据库创建成功!'&@CR&''&@CR&'系统授权号:KF-'&$time&@CR&''&@CR&'@ 版权公有 传播不究')
EndFunc
Func xieru() ;往数据库中添加新的条目
If GUICtrlRead($Input1)<>'' And GUICtrlRead($Input2)<>''And GUICtrlRead($Input3)<>'' And GUICtrlRead($Input4)<>'' And GUICtrlRead($Input5)<>''And GUICtrlRead($Input6)<>'' Then
$read1=GUICtrlRead($Input1)
$read2=GUICtrlRead($Input2)
$read3=GUICtrlRead($Input3)
$read4=GUICtrlRead($Input4)
$read5=GUICtrlRead($Input5)
$read6=GUICtrlRead($Input6)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & $mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd) ;要写数据,首先要连接到数据库
$addfld.Execute("insert into "&$adTable&" (chepaihao,haopai,zhuangtai,mingzi,buhege,riqi) values('"&$read1&"','"&$read2&"','"&$read3&"','"&$read4&"','"&$read5&"','"&$read6&"')") ;这里是告诉数据库要写到什么位置。要写什么值,
$addfld.close ;写完结束所有的连接
MsgBox(48,'提示','添加和发送记录成功!')
GUICtrlSetData($Input1,'')
GUICtrlSetData($Input2,'')
GUICtrlSetData($Input3,'')
GUICtrlSetData($Input4,'')
GUICtrlSetData($Input5,'')
GUICtrlSetData($Input6,'')
GUICtrlSetState($Input1,$GUI_FOCUS)
Else
MsgBox(48, "提示", "添加失败,请检查项目填写格式是否正确!请输入完整或车牌号")
GUICtrlSetState($Input5,$GUI_FOCUS)
EndIf
EndFunc
Func chakan() ;查看数据库中所有的记录
GUICtrlSendMsg($ListView1, $LVM_DELETEALLITEMS, 0, 0)
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path & ";Jet Oledb:Database Password=" & $mdb_data_pwd) ;这句话和上一句一起是连接到数据库
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open ("Select "&$t & " From " & $adTable ) ;$t : 表示一个连接 $adtable :表示的是这个表的名称 这句话是:从$adtable表的第一条开始读取,直到结束 $t的星号是所有的意思
while Not $RS.eof And Not $RS.bof
if @error =1 Then ExitLoop
GUICtrlCreateListViewItem ( $RS.Fields (0).value&"|"& $RS.Fields (1).value&"|"& $RS.Fields (2).value&"|"& $RS.Fields (3).value&"|"& $RS.Fields (4).value&"|"& $RS.Fields (5).value&"|"& $RS.Fields (6).value,$ListView1 )
; $RS.Fields (0).value;表示的是第一个数据,往后依此类推,第二个第三个···把读取到的值用 | 隔开,并把他们放到对应的ListView下面。
$rs.movenext ;
WEnd
$rs.close
$addfld.Close ;读取结束后结束所有的连接,并把缓存的数据清空。
EndFunc
Func xun() ;根据物品名称查找符合的记录,并显示
$output4=GUICtrlRead($Input7)
GUICtrlSendMsg($ListView1, $LVM_DELETEALLITEMS, 0, 0) ;读取你要查找的关键字
$addfld = ObjCreate("ADODB.Connection")
$addfld.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" &$mdb_data_path& ";Jet Oledb:Database Password=" & $mdb_data_pwd)
$RS =ObjCreate("ADODB.Recordset")
$RS.ActiveConnection = $addfld
$RS.Open ("Select * From "& $adTable & " WHERE mingzi" & " ='"&$output4&"'") ;根据关键字查找数据库内所有的记录,看有没有记录
while Not $RS.eof And Not $RS.bof
if @error =1 Then ExitLoop
GUICtrlCreateListViewItem ( $RS.Fields (0).value&"|"& $RS.Fields (1).value&"|"& $RS.Fields (2).value&"|"& $RS.Fields (3).value&"|"& $RS.Fields (4).value&"|"& $RS.Fields (5).value&"|"& $RS.Fields (6).value,$ListView1 )
;如果找到了就把找到的显示在ListView
$rs.movenext
WEnd
$rs.close
$addfld.Close
EndFunc
Func newxls()
Local $array[1],$L
$L='序号|车牌号码|号牌种类|车辆状态|名字|车辆不合格理由|日 期'
$Selected = _GUICtrlListView_GetSelectedIndices($ListView1, 1)
_ArrayAdd($array,$L)
For $I = 1 To $Selected[0]
$SelectedItem = _GUICtrlListView_GetItemTextString($ListView1, $Selected[$I])
;MsgBox(0, 0, $SelectedItem)
_ArrayAdd($array,$SelectedItem)
Next
$excel=_ExcelBookNew(1) ;创建一个新的工作表并设置显示,(0=不可见, 1=可见)
For $i=0 To UBound($array)-1 ;返回数组维度的大小
$htest=StringSplit($array[$i],'|') ;以指定分隔符把字符串拆分成若干子串
For $ii=0 To $htest[0]
_ExcelWriteCell($excel,$htest[$ii],$i,$ii) ;添加一个数据到打开的EXCEL(打开的excel,要添加的数据,要写入的行,要写入的列)
Next
Next
EndFunc