版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計(jì)任務(wù)書</b></p><p> 題 目: 測(cè)控系統(tǒng)應(yīng)用軟件實(shí)訓(xùn)——產(chǎn)品質(zhì)量監(jiān)測(cè)系統(tǒng)設(shè)計(jì) </p><p><b> 初始條件:</b></p><p> 日光燈試驗(yàn)臺(tái)是用來檢測(cè)點(diǎn)亮日光燈的整流器或逆變器是否合格
2、的裝置,通過多次測(cè)量燈管兩端的電壓和電流,再通過分析,來驗(yàn)證整流器或逆變器工作是否正常。單個(gè)整流器或逆變器有不同功率之分,也有可以同時(shí)點(diǎn)亮日光燈個(gè)數(shù)多少之分。檢測(cè)一個(gè)整流器或逆變器,下位機(jī)大概會(huì)產(chǎn)生30組左右的電壓和電流數(shù)據(jù)。</p><p> 本實(shí)訓(xùn)的目標(biāo)是設(shè)計(jì)一個(gè)產(chǎn)品質(zhì)量監(jiān)測(cè)系統(tǒng),保存日光燈試驗(yàn)臺(tái)下位機(jī)產(chǎn)生的數(shù)據(jù)信息,并時(shí)行產(chǎn)品合格檢查、產(chǎn)品質(zhì)量查詢、分類統(tǒng)計(jì)和報(bào)表打印操作,以期使產(chǎn)品的質(zhì)量管理工作系統(tǒng)化、
3、規(guī)范化、自動(dòng)化,從而提高生產(chǎn)效率。</p><p><b> 設(shè)計(jì)功能要求:</b></p><p> 1、儀器檢測(cè)結(jié)果的輸入,包括記錄號(hào)、檢修日期、儀器編號(hào)、儀器類型、儀器功率、儀器點(diǎn)亮日光燈個(gè)數(shù)、檢測(cè)人員、檢測(cè)記錄。除檢測(cè)人員和檢測(cè)記錄由工作人員在計(jì)算機(jī)上直接輸入外,其他項(xiàng)都通過串口讀入。</p><p> 2、儀器檢測(cè)數(shù)據(jù)的輸入,包
4、括記錄號(hào)、儀器編號(hào)、檢測(cè)電壓、檢測(cè)電流。一條儀器檢測(cè)結(jié)果對(duì)應(yīng)多條檢測(cè)數(shù)據(jù)。</p><p> 3、儀器檢測(cè)數(shù)據(jù)以圖形方式顯示變化趨勢(shì)。</p><p> 4、儀器檢測(cè)信息的查詢、修改和刪除。</p><p> 5、儀器類型和功率代碼管理。</p><p> 6、儀器檢測(cè)信息的報(bào)表和打印處理。(選做)</p><p&
5、gt; 7、密碼和權(quán)限管理,不同權(quán)限用戶具有不同的操作權(quán)力。(選做)</p><p><b> 系統(tǒng)功能模塊設(shè)計(jì):</b></p><p> 對(duì)上述各項(xiàng)功能進(jìn)行集中分塊,按結(jié)構(gòu)化程序設(shè)計(jì)的要求,得到如圖1所示的系統(tǒng)功能模塊圖。</p><p> 要求完成的主要任務(wù): (包括課程設(shè)計(jì)工作量及其技術(shù)要求,以及說明書撰寫等具體要求)</
6、p><p> 1.合理進(jìn)行數(shù)據(jù)庫設(shè)計(jì),數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)包括以下部分: </p><p> 1)儀器檢測(cè)結(jié)果信息表,保存檢測(cè)結(jié)果記錄,包括:記錄號(hào)、檢測(cè)日期、儀器編號(hào)、儀器類型、儀器功率、儀器額定點(diǎn)亮日光燈個(gè)數(shù)、儀器溫升、檢測(cè)時(shí)間間隔、檢測(cè)人員、檢測(cè)記錄。</p><p> 2)儀器檢測(cè)數(shù)據(jù)信息表,保存檢測(cè)數(shù)據(jù)記錄,包括:記錄號(hào)、儀器編號(hào)、檢測(cè)電壓、檢測(cè)電流。<
7、;/p><p> 3)儀器類型信息表:記錄號(hào)、儀器類型。</p><p> 4)儀器功率信息表:記錄號(hào)、儀器功率。</p><p> 5)記錄號(hào)計(jì)數(shù)數(shù)據(jù)表,用于保存其他表格所需的記錄號(hào),包括:記錄號(hào)名稱、記錄號(hào)計(jì)數(shù)值。</p><p> 6) 用戶信息表:工號(hào)、用戶名、密碼、權(quán)限。(選用)</p><p> 圖1
8、 系統(tǒng)功能模塊圖</p><p> 2.進(jìn)行相應(yīng)的功能模塊設(shè)計(jì),包括:</p><p> 1)串口通信設(shè)計(jì);(學(xué)習(xí))</p><p><b> 2)數(shù)據(jù)模塊設(shè)計(jì);</b></p><p> 3)系統(tǒng)主窗體設(shè)計(jì);</p><p> 4)檢測(cè)數(shù)據(jù)分析設(shè)計(jì);</p><p&
9、gt; 5)檢測(cè)結(jié)果查詢?cè)O(shè)計(jì);</p><p> 6)報(bào)表打印設(shè)計(jì);(選做)</p><p> 7) 安全管理設(shè)計(jì)。(選做)</p><p> 3.設(shè)計(jì)并繪制各個(gè)模塊與函數(shù)的軟件流程圖,流程圖要模塊化并具有可讀性(根據(jù)流程圖知道程序功能實(shí)現(xiàn)過程);編制模塊化源程序; </p><p> 4.編寫并調(diào)試完整的程序代碼 (所有自定義的
10、單元文件名、控件名、函數(shù)名、變量名不能與示例程序同名); </p><p> 5. 按學(xué)校課程設(shè)計(jì)說明書撰寫規(guī)范提交一份課程設(shè)計(jì)說明書(6000字左右),設(shè)計(jì)說明書應(yīng)詳細(xì)說明設(shè)計(jì)思路、工作流程和軟件設(shè)計(jì)與實(shí)現(xiàn)界面。</p><p><b> 時(shí)間安排:</b></p><p> 指導(dǎo)教師簽名:
11、年 月 日</p><p> 系主任(或責(zé)任教師)簽名: 年 月 日</p><p><b> 目錄</b></p><p> 緒論 4</p><p> 整體模塊設(shè)計(jì)
12、 4 </p><p> 代碼管理模塊 5</p><p> 3.1類型代碼管理 5</p><p> 3.2功率代碼管理
13、 5</p><p> 檢測(cè)模塊 6</p><p> 4.1開始檢測(cè) 6</p><p> 4.2停止檢測(cè)
14、 8</p><p> 5.查詢模塊 9</p><p> 5.1結(jié)果查詢 9 </p><p> 5.2工位查詢
15、 19</p><p> 6.數(shù)據(jù)表瀏覽模塊 20</p><p> 7.數(shù)據(jù)修改模塊 22</p><p> 8.打印報(bào)表模塊
16、 24</p><p> 9.幫助模塊 25</p><p> 10.總結(jié)與體會(huì) 27</p><p> 11.參考文獻(xiàn)
17、 28</p><p><b> 1.緒論</b></p><p> 自工業(yè)革命以來,人類已經(jīng)越來越意識(shí)到機(jī)器性工作的可代替性是多么的重要。也正是由于這一點(diǎn),自動(dòng)化制造業(yè)得到了飛速的發(fā)展,到如今已經(jīng)達(dá)到一個(gè)非常成熟的形態(tài)。而作為當(dāng)代一名當(dāng)代的中國大學(xué)生,尤其是像我們這樣的與制造業(yè)有關(guān)的工科專業(yè)學(xué)生,在這樣的時(shí)代大潮中自然不能落于人
18、后。在自身專業(yè)知識(shí)學(xué)習(xí)過程中要全力以赴,抓住任何機(jī)會(huì)充實(shí)自己。</p><p> 而恰好學(xué)校安排了測(cè)控系統(tǒng)軟件設(shè)計(jì)這一課程讓我們學(xué)習(xí)和鍛煉,更要珍惜這樣的機(jī)會(huì)。主題是制作一個(gè)質(zhì)量檢測(cè)軟件,利用日光燈試驗(yàn)臺(tái)來檢測(cè)點(diǎn)亮日光燈的整流器或逆變器是否合格,并且通過多次測(cè)量燈管兩端的電壓和電流,再通過分析,來驗(yàn)證整流器或逆變器工作是否正常。單個(gè)整流器或逆變器有不同功率之分,也有可以同時(shí)點(diǎn)亮日光燈個(gè)數(shù)多少之分。檢測(cè)一個(gè)整流器
19、或逆變器,下位機(jī)大概會(huì)產(chǎn)生30組左右的電壓和電流數(shù)據(jù)。</p><p> 總結(jié)之,本實(shí)訓(xùn)的目標(biāo)是設(shè)計(jì)一個(gè)產(chǎn)品質(zhì)量監(jiān)測(cè)系統(tǒng),保存日光燈試驗(yàn)臺(tái)下位機(jī)產(chǎn)生的數(shù)據(jù)信息,并時(shí)行產(chǎn)品合格檢查、產(chǎn)品質(zhì)量查詢、分類統(tǒng)計(jì)和報(bào)表打印操作,以期使產(chǎn)品的質(zhì)量管理工作系統(tǒng)化、規(guī)范化、自動(dòng)化,從而體現(xiàn)自動(dòng)化制造業(yè)帶來的高效率和收益。</p><p><b> 2.整體模塊設(shè)計(jì)</b><
20、/p><p> 圖1 程序總體設(shè)計(jì)結(jié)構(gòu)圖</p><p><b> 3. 代碼管理模塊</b></p><p><b> 3.1類型代碼管理</b></p><p><b> (1)程序代碼</b></p><p> void __fastcall
21、 TF_Main::M_TypeClick(TObject *Sender)</p><p><b> {</b></p><p><b> //類型代碼編輯</b></p><p> F_Assist->ADOT_Count->First();//設(shè)定記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄</p
22、><p> F_Assist->ADOT_Count->MoveBy(2);//下移兩條記錄至計(jì)數(shù)表中的儀器類型</p><p> F_Assist->DBLookupListBox1->ListField="";//先賦空值以免系統(tǒng)拋出異常</p><p> F_Assist->DBLookupListBox1-
23、>KeyField="";//先賦空值以免系統(tǒng)拋出異常</p><p> F_Assist->DBLookupListBox1->ListSource=DataModule1->DS_Type;//賦儀器類型表</p><p> F_Assist->DBLookupListBox1->KeyField="Type_ID&
24、quot;;//賦類型記錄號(hào)字段</p><p> F_Assist->DBLookupListBox1->ListField="Type_Name";//賦類型名稱字段</p><p> F_Assist->Label2->Caption="儀器類型代碼表";</p><p> F_Assist
25、->ShowModal(); //打開輔助資料窗體</p><p><b> } </b></p><p><b> (2)運(yùn)行結(jié)果</b></p><p> 圖2 儀器類型代碼界面</p><p><b> 3.2功率代碼管理</b></p>
26、<p><b> (1)程序代碼</b></p><p> void __fastcall Ttcw::M_PowerClick(TObject *Sender)</p><p><b> { x=2;</b></p><p> F_Assist->ADOT_Count->TableNam
27、e="Industry_Power";//功率代碼編輯</p><p> F_Assist->ADOT_Count->Open();</p><p> F_Assist->ADOT_Count->Edit();</p><p> DataModule1->AT_Power->Open();</p&g
28、t;<p> DataModule1->AT_Power->Edit();</p><p> F_Assist->ADOT_Count->First();//設(shè)定記錄號(hào)計(jì)數(shù)數(shù)據(jù)表當(dāng)前活動(dòng)記錄是第一條記錄</p><p> F_Assist->ADOT_Count->MoveBy(2);//下移兩條記錄至計(jì)數(shù)表中的儀器功率</p&
29、gt;<p> F_Assist->DBLookupListBox1->ListField="";//先賦空值以免系統(tǒng)拋出異常</p><p> F_Assist->DBLookupListBox1->KeyField="";//先賦空值以免系統(tǒng)拋出異常</p><p> F_Assist->DBLo
30、okupListBox1->ListSource=DataModule1->DS_Power;//賦儀器功率代碼表</p><p> F_Assist->DBLookupListBox1->KeyField="Power_ID";//賦功率記錄號(hào)字段</p><p> F_Assist->DBLookupListBox1->Lis
31、tField="Power_Name";//賦功率名稱字段</p><p> F_Assist->Label2->Caption="儀器功率代碼表";</p><p> F_Assist->Show(); //打開輔助資料窗體</p><p><b> }</b></p>
32、;<p><b> (2)運(yùn)行結(jié)果</b></p><p> 圖3 儀器功率代碼界面</p><p><b> 4.檢測(cè)模塊</b></p><p><b> 4.1開始檢測(cè)</b></p><p><b> (1)流程圖</b>&
33、lt;/p><p><b> 圖4 流程圖</b></p><p><b> (2)程序代碼</b></p><p> void __fastcall Ttcw:M_StartClick(TObject *Sender)</p><p><b> {</b></p&g
34、t;<p> //打開串口,開啟JudgeTimer定時(shí)器定時(shí)測(cè)控串口</p><p> MainMenu->Items->Items[2]->Enabled=false;//使開始檢測(cè)菜單項(xiàng)非能</p><p> MainMenu->Items->Items[3]->Enabled=True;//停止檢測(cè)菜單項(xiàng)使能</p>
35、;<p> if(Com1->PortOpen==True)//如果串口已打開,則關(guān)閉之</p><p> Com1->PortOpen=false;</p><p> Com1->PortOpen=True; //打開串口</p><p> Com1->InBufferCount=0;//消除輸入緩沖區(qū)的內(nèi)容</
36、p><p> Com1->OutBufferCount=0;//消除輸出緩沖區(qū)的內(nèi)容</p><p> if(!Com1->PortOpen) //判斷串口初始化是否失敗并顯示</p><p> ShowMessage("串口初始化失敗");</p><p> JudgeTimer->Enab
37、led=true; //開啟串口監(jiān)聽定時(shí)器</p><p> RE_Mess->Lines->Add("串口初始化成功,正在監(jiān)聽");//在RichEdit控件顯示串口狀態(tài)</p><p> RE_Mess->Lines->Add("用戶可以開始檢測(cè)數(shù)據(jù)");</p><p><b>
38、}</b></p><p><b> (3)運(yùn)行結(jié)果</b></p><p> 圖5 開始檢測(cè)后界面</p><p><b> 4.2停止檢測(cè)</b></p><p><b> (1)程序代碼</b></p><p> void _
39、_fastcall Ttcw::M_PauseClick(TObject *Sender)</p><p><b> {</b></p><p> //關(guān)閉串口,關(guān)閉JudgeTimer定時(shí)器定時(shí)測(cè)控串口</p><p> MainMenu->Items->Items[2]->Enabled=True;//開始檢測(cè)菜單項(xiàng)
40、使能</p><p> MainMenu->Items->Items[3]->Enabled=false;//停止檢測(cè)菜單項(xiàng)非能</p><p> JudgeTimer->Enabled=false; //關(guān)閉串口監(jiān)聽定時(shí)器</p><p> Com1->PortOpen=false; //關(guān)閉串口</p><
41、p> RE_Mess->Lines->Add("串口已關(guān)閉,與下位機(jī)通信中斷");//在RichEdit控件顯示串口狀態(tài)</p><p><b> }</b></p><p><b> (2)運(yùn)行結(jié)果</b></p><p> 圖6 停止檢測(cè)后界面</p>&l
42、t;p><b> 5.查詢模塊</b></p><p><b> 5.1結(jié)果查詢</b></p><p> ?。?)程序代碼以及對(duì)應(yīng)程序結(jié)果</p><p> #include <vcl.h></p><p> #pragma hdrstop</p><
43、p> #include "Query.h"</p><p> #include "DM.h"</p><p> //---------------------------------------------------------------------------</p><p> #pragma packag
44、e(smart_init)</p><p> #pragma resource "*.dfm"</p><p> TF_Query *F_Query;</p><p> //---------------------------------------------------------------------------</p>
45、;<p> __fastcall TF_Query::TF_Query(TComponent* Owner)</p><p> : TForm(Owner)</p><p><b> {</b></p><p><b> }</b></p><p> //----------
46、-----------------------------------------------------------------</p><p> void __fastcall TF_Query::CB_TimeClick(TObject *Sender)</p><p> { //判斷時(shí)間查詢復(fù)選框是否選中,以決定各單選按鈕是否能使用</p><p>
47、if(CB_Time->Checked)</p><p> { //若時(shí)間框選中,則各單選按鈕被激活</p><p> RadioButton1->Enabled= true ; //</p><p> RadioButton2->Enabled= true ; //</p><p> RadioButton3-
48、>Enabled= true ; //</p><p><b> }</b></p><p><b> else</b></p><p> {//否則,各單選按鈕處于失效狀態(tài)</p><p> RadioButton1->Enabled= false ; //</p&g
49、t;<p> RadioButton2->Enabled= false ; //</p><p> RadioButton3->Enabled= false; //</p><p><b> }</b></p><p><b> }</b></p><p> /
50、/---------------------------------------------------------------------------</p><p> void __fastcall TF_Query::CB_CodeClick(TObject *Sender)</p><p> {//判斷編號(hào)查詢復(fù)選框是否被選中</p><p> if(
51、CB_Code->Checked)</p><p><b> {</b></p><p> M_Code->Enabled=true ;//memo控件被激活 </p><p> Label2->Enabled=true;//標(biāo)簽控件被激活</p><p><b> }</b&g
52、t;</p><p><b> else</b></p><p> { //memo與標(biāo)簽控件失效</p><p> M_Code->Enabled=false;</p><p> Label2->Enabled=false;</p><p><b> }<
53、/b></p><p><b> }</b></p><p> //---------------------------------------------------------------------------</p><p> 圖7 時(shí)間設(shè)定查詢界面</p><p> 圖8時(shí)間設(shè)定查詢結(jié)果<
54、/p><p> //---------------------------------------------------------------------------</p><p> void __fastcall TF_Query::CB_TypeClick(TObject *Sender)</p><p> { //判斷類型查詢是否選中</p>
55、;<p> if(CB_Type->Checked)</p><p> E_Type->Enabled=true;</p><p><b> else</b></p><p> E_Type->Enabled=false;</p><p><b> }</b>
56、;</p><p><b> 圖9按類型查詢界面</b></p><p><b> 圖10類型查詢結(jié)果</b></p><p> void __fastcall TF_Query::CB_PowerClick(TObject *Sender)</p><p><b> {</
57、b></p><p> //判斷功率查詢是否選中</p><p> if(CB_Power->Checked)</p><p> E_Power->Enabled=true;</p><p><b> else</b></p><p> E_Power->Enab
58、led=false;</p><p> }//---------------------------------------------------------------------------</p><p> 圖11按功率查詢界面</p><p><b> 圖12功率查詢結(jié)果</b></p><p> vo
59、id __fastcall TF_Query::CB_NumClick(TObject *Sender)</p><p><b> {</b></p><p> //判斷管數(shù)查詢是否選中</p><p> if(CB_Num->Checked)</p><p><b> {</b>&l
60、t;/p><p> E_Num->Enabled=true;</p><p> UpDown->Enabled=true;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b&
61、gt;</p><p> E_Num->Enabled=false;</p><p> UpDown->Enabled=false;</p><p><b> }}</b></p><p> 圖13 按管數(shù)查詢界面</p><p> 圖14 按管數(shù)查詢結(jié)果</p>
62、<p> void __fastcall TF_Query::B_CancelClick(TObject *Sender)</p><p><b> {</b></p><p> DataModule1->AQ_Record->Close();//關(guān)閉檢測(cè)記錄數(shù)據(jù)源</p><p> DataModule1-&
63、gt;AQ_Record->SQL->Clear();//清除SQL語句</p><p> DataModule1->AQ_Record->SQL->Add("SELECT * FROM Industry_Record");</p><p> DataModule1->AQ_Data->Close();//關(guān)閉檢測(cè)數(shù)據(jù)數(shù)據(jù)源
64、</p><p> DataModule1->AQ_Data->SQL->Clear();//清除SQL語句</p><p> DataModule1->AQ_Data->SQL->Add("SELECT * FROM Industry_Record,Industry_Data");</p><p> D
65、ataModule1->AQ_Record->Open();//執(zhí)行SQL語句,打開檢測(cè)記錄表</p><p> DataModule1->AQ_Data->Open();//執(zhí)行SQL語句,打開檢測(cè)數(shù)據(jù)表</p><p> F_Query->Close();//關(guān)閉檢測(cè)數(shù)據(jù)查看窗口</p><p><b> }<
66、/b></p><p> //---------------------------------------------------------------------------</p><p> void __fastcall TF_Query::B_QueryClick(TObject *Sender)</p><p> {//查詢按鈕單擊事件&l
67、t;/p><p> if(!CB_Time->Checked&&!CB_Type->Checked&&!CB_Power->Checked</p><p> &&!CB_Num->Checked&&!CB_Code->Checked) //若沒有查詢條件</p><p>&
68、lt;b> {</b></p><p> Application->MessageBoxA("沒有查詢條件,請(qǐng)選擇或輸入","查詢出錯(cuò)",MB_OKCANCEL);</p><p><b> return;</b></p><p><b> }</b>
69、</p><p> String str1="Industry_Record.Record_Type='" + E_Type->Text + "'",</p><p> str2="Record_Type='" + E_Type->Text + "'",</
70、p><p> str3="Industry_Record.Record_Power='" + E_Power->Text + "'",</p><p> str4="Record_Power='" + E_Power->Text + "'";</p>&
71、lt;p> DataModule1->AQ_Record->Close();//關(guān)閉檢測(cè)記錄數(shù)據(jù)源</p><p> DataModule1->AQ_Record->SQL->Clear();//清除SQL語句</p><p> DataModule1->AQ_Record->SQL->Add("SELECT * FRO
72、M Industry_Record WHERE ");</p><p> //增加一條SQL語句,從檢測(cè)記錄表中提取數(shù)據(jù)記錄</p><p> DataModule1->AQ_Data->Close();//關(guān)閉檢測(cè)數(shù)據(jù)數(shù)據(jù)源</p><p> DataModule1->AQ_Data->SQL->Clear();//清
73、除SQL語句</p><p> DataModule1->AQ_Data->SQL->Add("SELECT * FROM Industry_Record,Industry_Data WHERE Industry_Record.Record_SNumber=Industry_Data.Data_SNumber AND ");</p><p> //
74、增加一條SQL語句,從檢測(cè)記錄表、檢測(cè)數(shù)據(jù)表中提取數(shù)據(jù)記錄</p><p><b> //時(shí)間查詢</b></p><p> if(CB_Time->Checked)</p><p><b> {</b></p><p> DataModule1->AQ_Record->S
75、QL->Add(" Record_Date BETWEEN :timel1 AND :timel2");</p><p> DataModule1->AQ_Data->SQL->Add(" Record_Date BETWEEN :timer1 AND :timer2");</p><p> //timel1、2,time
76、r1、2是在SQL語句中自定義的變量</p><p> if(RadioButton1->Checked) //當(dāng)天查詢</p><p><b> {</b></p><p> DataModule1->AQ_Record->Parameters->ParamByName("timel1")-
77、>Value=</p><p> StrToDateTime(DateToStr(Now())+" 00:00:00");</p><p> DataModule1->AQ_Record->Parameters->ParamByName("timel2")->Value=</p><p>
78、StrToDateTime(DateToStr(Now())+" 23:59:59");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("timer1")->Value=</p><p> StrToDateTime(DateToStr(Now())+&quo
79、t; 00:00:00");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("timer2")->Value=</p><p> StrToDateTime(DateToStr(Now())+" 23:59:59");</p><
80、p><b> }</b></p><p> if(RadioButton2->Checked) //本周查詢</p><p><b> {</b></p><p> TDateTime *DT=new TDateTime();</p><p> *DT=Now();</
81、p><p> int convert[]={0,6,0,1,2,3,4,5};//國內(nèi)外一周的起止不一樣</p><p> TDateTime Monday=DT->operator-(convert[DT->DayOfWeek()]);</p><p> //DayofWeek()取得今天是一周內(nèi)的第幾天,再進(jìn)行當(dāng)前星期一的日期推算</p>
82、;<p> DataModule1->AQ_Record->Parameters->ParamByName("timel1")->Value=</p><p> StrToDateTime(DateToStr(Monday)+" 00:00:00");</p><p> DataModule1->AQ
83、_Record->Parameters->ParamByName("timel2")->Value=</p><p> StrToDateTime(DateToStr(Now())+" 23:59:59");</p><p> DataModule1->AQ_Data->Parameters->ParamByN
84、ame("timer1")->Value=</p><p> StrToDateTime(DateToStr(Monday)+" 00:00:00");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("timer2")->Value=
85、</p><p> StrToDateTime(DateToStr(Now())+" 23:59:59");</p><p><b> }</b></p><p> if(RadioButton3->Checked) //本月查詢</p><p><b> {</b&g
86、t;</p><p> unsigned short i,j,k;</p><p> Now().DecodeDate(&i,&j,&k);//提取當(dāng)前的年月日,分別存入變量i,j,k</p><p> DataModule1->AQ_Record->Parameters->ParamByName("time
87、l1")->Value=</p><p> StrToDateTime(IntToStr(i)+'-'+IntToStr(j)+"-01 00:00:00");</p><p> DataModule1->AQ_Record->Parameters->ParamByName("timel2")-&
88、gt;Value=</p><p> StrToDateTime(DateToStr(Now())+" 23:59:59");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("timer1")->Value=</p><p> Str
89、ToDateTime(IntToStr(i)+'-'+IntToStr(j)+"-01 00:00:00");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("timer2")->Value=</p><p> StrToDateTime(Da
90、teToStr(Now())+" 23:59:59");</p><p><b> }</b></p><p><b> }</b></p><p><b> //類型查詢</b></p><p> if(CB_Type->Checked)&l
91、t;/p><p> { if(CB_Time->Checked)</p><p> {//如果前面已經(jīng)添加了時(shí)間查詢,則需要加AND條件同時(shí)成立運(yùn)算符</p><p> DataModule1->AQ_Record->SQL->Add(" AND ");</p><p> DataModule1
92、->AQ_Data->SQL->Add(" AND ");</p><p><b> }</b></p><p> DataModule1->AQ_Record->SQL->Add(str1);</p><p> DataModule1->AQ_Data->SQL->
93、;Add(str2);</p><p><b> }</b></p><p><b> //功率查詢</b></p><p> if(CB_Power->Checked)</p><p> { if(CB_Time->Checked||CB_Type->Checked)&l
94、t;/p><p> {//如果前面已經(jīng)添加了時(shí)間查詢或類型查詢,則需要加AND條件同時(shí)成立運(yùn)算符</p><p> DataModule1->AQ_Record->SQL->Add(" AND ");</p><p> DataModule1->AQ_Data->SQL->Add(" AND &qu
95、ot;);</p><p><b> }</b></p><p> DataModule1->AQ_Record->SQL->Add(str3);</p><p> DataModule1->AQ_Data->SQL->Add(str4);</p><p><b>
96、}</b></p><p><b> //編號(hào)查詢</b></p><p> if(CB_Code->Checked)</p><p><b> {</b></p><p> if(M_Code->Text.IsEmpty())</p><p>
97、;<b> { //如果無編號(hào)</b></p><p> Application->MessageBoxA("請(qǐng)輸入編號(hào)","查詢出錯(cuò)",MB_OK);</p><p> M_Code->SetFocus();//焦點(diǎn)至編號(hào)輸入框</p><p><b> return;&l
98、t;/b></p><p><b> }</b></p><p> if(CB_Time->Checked||CB_Type->Checked||CB_Power->Checked)</p><p><b> {</b></p><p> //如果前面已經(jīng)添加了其他查
99、詢,則需要加AND條件同時(shí)成立運(yùn)算符</p><p> DataModule1->AQ_Record->SQL->Add(" AND ");</p><p> DataModule1->AQ_Data->SQL->Add(" AND ");</p><p><b> }<
100、;/b></p><p> DataModule1->AQ_Record->SQL->Add("(");</p><p> DataModule1->AQ_Data->SQL->Add("("); //可能包含多個(gè)編號(hào),需用括號(hào)括起來</p><p> for(int i=0;i
101、<M_Code->Lines->Count;i++)</p><p><b> {</b></p><p> if(M_Code->Lines->Strings[i].IsEmpty())continue;</p><p> DataModule1->AQ_Record->SQL->Add(
102、Format("Record_SNumber='%s%s%s'",</p><p> ARRAYOFCONST(("",M_Code->Lines->Strings[i],""))));</p><p> //利用format函數(shù)進(jìn)行參數(shù)賦值</p><p> DataMo
103、dule1->AQ_Data->SQL->Add(Format("Data_SNumber='%s%s%s'",</p><p> ARRAYOFCONST(("",M_Code->Lines->Strings[i],""))));</p><p> //利用format函數(shù)進(jìn)行參
104、數(shù)賦值</p><p> if(i!=M_Code->Lines->Count-1)</p><p><b> {</b></p><p> DataModule1->AQ_Record->SQL->Add(" OR ");</p><p> DataModule
105、1->AQ_Data->SQL->Add(" OR ");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> DataModule1->A
106、Q_Record->SQL->Add(" )");</p><p> DataModule1->AQ_Data->SQL->Add(" ) ");</p><p><b> }</b></p><p><b> }</b></p>&
107、lt;p><b> }</b></p><p> 圖15多編號(hào)查詢界面</p><p> 圖16 多編號(hào)查詢結(jié)果</p><p><b> //管數(shù)查詢</b></p><p> if(CB_Num->Checked)</p><p><b>
108、 {</b></p><p> if(CB_Time->Checked||CB_Type->Checked||CB_Power->Checked||CB_Code->Checked)</p><p><b> {</b></p><p> //如果前面已經(jīng)添加了其他查詢,則需要加AND條件同時(shí)成立運(yùn)算
109、符</p><p> DataModule1->AQ_Record->SQL->Add(" AND ");</p><p> DataModule1->AQ_Data->SQL->Add(" AND ");</p><p><b> }</b></p>
110、<p> DataModule1->AQ_Record->SQL->Add(" Record_LNumber=:lightl1");</p><p> DataModule1->AQ_Record->Parameters->ParamByName("lightl1")->Value=E_Num->Text;&
111、lt;/p><p> DataModule1->AQ_Data->SQL->Add(" Record_LNumber=:lightr1");</p><p> DataModule1->AQ_Data->Parameters->ParamByName("lightr1")->Value=E_Num->T
112、ext;</p><p><b> }</b></p><p> DataModule1->AQ_Record->Open();//執(zhí)行SQL語句,打開檢測(cè)記錄表</p><p> DataModule1->AQ_Data->Open();//執(zhí)行SQL語句,打開檢測(cè)數(shù)據(jù)表</p><p>
113、 Close();//關(guān)閉查詢窗口</p><p> DataModule1->AQ_RecordRecord_Date->DisplayFormat="yyyy-mm-dd";</p><p> //定義檢測(cè)記錄表中檢測(cè)日期顯示格式</p><p> ((TDateTimeField *)(DataModule1->A
114、Q_Data->FieldByName("Record_Date")))->DisplayFormat="yyyy-mm-dd";</p><p> //定義檢測(cè)數(shù)據(jù)表中檢測(cè)日期顯示格式</p><p><b> }</b></p><p> 運(yùn)行結(jié)果分析:經(jīng)過實(shí)際操作發(fā)現(xiàn)各個(gè)功能均正常
115、,并且各函數(shù)對(duì)應(yīng)的功能劃分比較清晰。</p><p><b> 5.2工位查詢</b></p><p><b> (1)程序代碼</b></p><p> void __fastcall TF_Main::M_LabNumberClick(TObject *Sender)</p><p>
116、{ //對(duì)指定工位的檢測(cè)裝置進(jìn)行數(shù)據(jù)獲取</p><p> F_LabNo->ShowModal();//打開工位號(hào)輸入窗口?</p><p> if(F_LabNo->ModalResult==mrOk)</p><p> { //如果窗體操作結(jié)果是用戶確定按鈕</p><p> //通過串口發(fā)送用戶所要獲取的指定工位的
117、請(qǐng)求數(shù)據(jù)</p><p> char buff[4];</p><p> buff[0]=0x02;</p><p> buff[1]=0x70+F_LabNo->E_Num->Text.ToInt();</p><p> buff[2]=0x03;</p><p> buff[3]=0x31;&
118、lt;/p><p> SendData(StrPas(buff));</p><p><b> //在狀態(tài)欄顯示</b></p><p> RE_Mess->Lines->Add(F_LabNo->E_Num->Text+"號(hào)工位查詢請(qǐng)求已發(fā)送");</p><p><
119、b> }</b></p><p><b> }</b></p><p><b> ?。?)運(yùn)行結(jié)果</b></p><p> 圖17 程序工位查詢界面</p><p> 圖18 工位號(hào)查詢結(jié)果</p><p><b> 6.數(shù)據(jù)表瀏覽模塊
120、</b></p><p><b> (1)程序代碼</b></p><p> #include <vcl.h></p><p> #pragma hdrstop</p><p> #include "Data.h"</p><p> #incl
121、ude "DM.h"</p><p> #include "Print.h"</p><p> //---------------------------------------------------------------------------</p><p> #pragma package(smart_init
122、)</p><p> #pragma resource "*.dfm"</p><p> TF_Data *F_Data;</p><p> //---------------------------------------------------------------------------</p><p>
123、__fastcall TF_Data::TF_Data(TComponent* Owner)</p><p> : TForm(Owner)</p><p><b> {</b></p><p><b> }</b></p><p> //--------------------------
124、-------------------------------------------------</p><p> void __fastcall TF_Data::FormCreate(TObject *Sender)</p><p> { //窗體創(chuàng)建事件</p><p> DataModule1->DS_Data->Enabled=true
125、;</p><p><b> //檢測(cè)數(shù)據(jù)表使能</b></p><p> DataModule1->DS_Record->Enabled=true;//?</p><p><b> //檢測(cè)記錄表使能</b></p><p><b> }</b></
126、p><p> //---------------------------------------------------------------------------</p><p> void __fastcall TF_Data::BB_ConfirmClick(TObject *Sender)</p><p><b> {</b>&l
127、t;/p><p> DataModule1->AQ_Record->Post();//遞交檢測(cè)記錄表數(shù)據(jù) ?</p><p><b> }</b></p><p> //---------------------------------------------------------------------------</p
128、><p> void __fastcall TF_Data::BB_CancelClick(TObject *Sender)</p><p><b> {</b></p><p> DataModule1->AQ_Record->Cancel();//取消檢測(cè)記錄表數(shù)據(jù)更新?</p><p><b&g
129、t; }</b></p><p> //---------------------------------------------------------------------------</p><p> void __fastcall TF_Data::BB_PrintClick(TObject *Sender)</p><p><b&
130、gt; {</b></p><p> F_Print->QuickRep1->Preview() ;//顯示報(bào)表預(yù)覽?</p><p><b> }</b></p><p> void __fastcall TF_Data::BB_QuitClick(TObject *Sender)</p>&l
131、t;p><b> {</b></p><p> F_Data->Close();//關(guān)閉檢測(cè)數(shù)據(jù)查看窗體 ?</p><p><b> }</b></p><p> void __fastcall TF_Data::BitBtn1Click(TObject *Sender)</p><
132、;p><b> {</b></p><p> DataModule1->AT_Data->Post() ;//遞交檢測(cè)數(shù)據(jù)表的數(shù)據(jù)更新?</p><p><b> }</b></p><p> void __fastcall TF_Data::BitBtn2Click(TObject *Sende
133、r)</p><p><b> {</b></p><p> DataModule1->AT_Data->Cancel();//取消檢測(cè)數(shù)據(jù)表的數(shù)據(jù)更新?</p><p><b> }</b></p><p> void __fastcall TF_Data::BitBtn3Cl
134、ick(TObject *Sender)</p><p><b> {</b></p><p> DataModule1->AT_Data->Append() ;//追加檢測(cè)數(shù)據(jù)表的數(shù)據(jù)?</p><p><b> }</b></p><p> void __fastcall T
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計(jì)-產(chǎn)品入庫管理操作系統(tǒng)
- 航空售票系統(tǒng)+c++課程設(shè)計(jì)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++校園導(dǎo)游系統(tǒng)課程設(shè)計(jì)
- c++酒店管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)——飛機(jī)訂票系統(tǒng)
- 銷售管理系統(tǒng)c++課程設(shè)計(jì)
- 《c++》課程設(shè)計(jì)倉庫管理系統(tǒng)
- c++課程設(shè)計(jì)-學(xué)生管理系統(tǒng)
- c++學(xué)生管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)--酒店管理系統(tǒng)
- 綜合應(yīng)用軟件課程設(shè)計(jì)報(bào)告--圖書管理系統(tǒng)
- c++課程設(shè)計(jì)--圖書管理系統(tǒng)
- 人事考勤管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)-學(xué)生考勤管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計(jì)
- c++課程設(shè)計(jì)學(xué)生通訊管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計(jì)
- 軟件產(chǎn)品質(zhì)量評(píng)價(jià)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).pdf
- c++課程設(shè)計(jì)報(bào)告-- 學(xué)籍管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論