freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

小型超市進存銷管理系統(tǒng)—畢業(yè)設(shè)計(編輯修改稿)

2025-01-08 20:48 本頁面
 

【文章內(nèi)容簡介】 接著, 選擇需要進貨的商品。 在 StringGrid1 中雙擊單元格,以跳轉(zhuǎn)到 資料管理的 窗體上。在 DBGrid1的雙擊事件里響應(yīng) ,判斷 false且 =’商品拼音 ’,雙擊 對應(yīng)紀(jì)錄,將商品清單中的貨號、品名和銷售價 1 的信息傳遞到進貨單窗體中, 代碼如下: if (=false)and(=39。商品拼音 39。) then begin //將貨號和商品名稱傳回進貨單窗體 num:=[0].AsString。 name:=[3].AsString。 price:=[7].AsString。 if =0 then :=1。 [1,]:=num。 [2,]:=name。 [6,]:=price。 //成功后返回進貨單 :=true。 。 。 end。 特別指出, num,name,price 分別對應(yīng)著貨號、品名和價格。 Cells [1,]指的是 StringGrid1 中當(dāng)前行第 1列所對應(yīng)的單元格。 在Forminput單元文件中的接口部分的 public處 聲 明了 currentRow和 currentCol兩個整型變量, 在 implementation 部分中,由 StringGrid1 SelectCell 事件激發(fā),以 currentRow 和 currentCol 來接收 Arow 和 Acol 兩個變量。 這樣便達(dá)到了,在 input 窗體上激發(fā)的變量,被兩個 public 變量接收,可以被 info 窗體引用的目的。 在商品入庫之前,要對所進商品進貨到哪個倉庫進行選擇。添加倉庫的下拉菜單與添加業(yè)務(wù)員的過程相似,只有當(dāng) 選擇了商品信息且點擊了“倉庫”所對應(yīng)的列 , 才能進行倉庫選擇。 另外, 當(dāng)點擊某條記錄的“金額”單元格時, 自動算出 對應(yīng) 進貨 記錄 的金額、稅價與稅價合計 。 點擊“保存進貨單”按鈕時,將把進貨信息插入到進貨單和進貨單明細(xì)兩個表格中去,進貨單中的一條記錄保存的是一次進貨中向某個供貨商 所有 進貨商品的‘總稅價合計’、‘總不含 稅額’和‘總稅額’;進貨單明細(xì)則保存的是向某個供貨商進貨的 每 一商品所對應(yīng)的稅價合計,不含稅價和稅額等信息。首先是編號的插入,如果是插入的第一條記錄 ,編號為 ’00000’,如果不是插入第一條記錄,則分別是從進貨單歷史和進貨單明細(xì)歷史中查找出最大編號,將其加 1,再插入到進貨單和進貨單明細(xì)表格中。例如進貨單記錄的插入過程: 獲取最大編號: (39。select max(編號 ) 最大編號 from 進貨單歷史 39。)。 maxnum:=(39。最大編號 39。).asstring。 如果是第一條記錄,插入編號 ’00000’: if (maxnum=39。39。)or(maxnum=39。 39。) then temp:=39。0000039。 向進貨單中插入對應(yīng)記錄: :=39。insert into 進貨單 ([編號 ],[供貨商號 ], [進貨日期 ],[業(yè)務(wù)員 ],[制單人 ],[稅價合計 ],[不含稅價 ],[稅額 ]) values (39。39。39。+inputnum+39。39。39。,39。39。39。++39。39。39。,39。39。39。++39。39。39。,39。39。39。+bo+39。39。39。,39。39。39。++39。39。39。,39。39。39。++39。39。39。,39。39。39。++39。39。39。,39。39。39。++39。39。39。)39。 。 然后點擊“顯示進貨單報表”,是對進貨單報表進行預(yù)覽。點擊“打印進貨單并記帳”,便可將進貨單報表打印成 (.mdi)格式的文檔,同時執(zhí)行了 “ sf_進貨單”存儲過程,以對數(shù)據(jù)庫中數(shù)據(jù)進行實時地更新。 下面介紹一下,報表的制作: 本畢業(yè)設(shè)計所使用到的報表是用 QuickReport 控件制作的,由于 Delphi 默認(rèn)情況下沒有安裝此控件,因此需要手動添加。在 Delphi 的 Packages 里,點擊“ Add” 按鈕,找到安裝目錄下 \Borland\Delphi7\Bin\ 添加QuickReport 控件組。 進貨單報表 report上,放置 QuickRep1控件、 ADOQuery1控件、若干 QRLabel控件以標(biāo)簽文字說明,若干 QRDBText 控件,設(shè)置其 DataSet 屬性為ADOQuery1,DataField 屬性為欲讀取的字段名。 QucikRep1 的 DataSet 屬性為ADOQuery1。 ADOQuery1 控件的 ConnectionString 指向 my_jxc 數(shù)據(jù)庫,以完成數(shù)據(jù)庫的連接。其 SQL 屬性中添加查詢語句,以對數(shù)據(jù)庫中數(shù)據(jù)進行查詢返回數(shù)據(jù)集以供報表上顯示。 銷售管理 銷售過程與進貨過程類似,這部分實現(xiàn)對銷售的管理,提供的主要功能有“保存銷售單”、“打印銷售單報表”和“記帳銷售單” 三個功能。其界 面如圖所示: 圖 33 銷售單窗體 首先需要向 Combobox1 的下拉菜單上添加項目,其代碼與在進貨管理中添加業(yè)務(wù)員菜單項目是一樣的。 鼠 標(biāo)點擊客戶下拉框,跳轉(zhuǎn)到資料管理窗體上,以選擇客戶。同時將 output的 enabled 值置為 false。 然后在 info 窗體上,雙擊相應(yīng)的記錄,由 DBGrid1 的雙擊事件響應(yīng),通過判斷,執(zhí)行相關(guān)代碼,將客戶編號和客戶名稱傳遞至 output 窗體上。此過程代碼與進貨管理中選擇供貨商過程的代碼類似。 至此,完成了客戶選擇操作。然后雙擊 output 中 StringGrid1 的單元格,跳轉(zhuǎn)到庫存庫 store 窗體上。雙擊庫存庫 store 窗體上的 StringGrid1 單元,便將貨號、倉庫、銷售價等信息傳遞至 store 窗體上 。 StringGrid1 的雙擊事件中,首先由 adoquery2 在商品清單里查得銷售價 1 字段,由 price 變量接收。貨號、品名等信息與進貨單中執(zhí)行的過程類似,在此不再贅述。 當(dāng)點擊保存銷售單后,第一條記錄編號為 ’00000’,如果不是第一條記錄,從銷售單歷史和銷售單明細(xì)歷史表格中把最大編號讀取出來 ,將其加 1,再插入到銷售單和銷售單明細(xì)表格中去。 這個過程與進貨管理中插入到進貨單歷史和進貨單明細(xì)歷史中相類似。 點擊“打印銷售報表”按鈕,以打印出銷售單對應(yīng)報表。點擊“記帳銷售單”按鈕,執(zhí)行“ sf_銷售單 ” 存儲過程,以 更新數(shù)據(jù)庫中數(shù)據(jù)。銷售報表與進貨報表的制作大同小異,只是對應(yīng)的數(shù)據(jù)集不同,執(zhí)行的 SQL 語句當(dāng)然也不同。 庫存管理 這部分主要是提供對庫存商品信息的查詢,輸入貨號、商品拼音和倉庫中的任意一項便可對庫存中商品的信息進行查詢。設(shè)置 ADOQuery1 控件、 ADOQuery2控件的 ConnectionString 指向 my_jxc,以完成數(shù)據(jù)庫的連接。 然后向“查詢”按鈕里添加事件,以使輸入“貨號” 、“商品拼音” 和“倉庫”中的任意一項,便可進行查詢。由于可以對商品拼音模糊查詢,如果不輸入商品拼音的話,系統(tǒng)會 將商品拼音看成一個空字符串,便得不到查詢的真實結(jié)果。所以先對其進行判斷,如果為空,便不追加對應(yīng)查詢語句。其對應(yīng)的代碼如下: (39。select 庫存庫 .貨號 ,商品清單 .品名 ,商品清單 .單位 ,庫存庫 .倉庫 ,庫存庫 .庫存數(shù)量 ,庫存庫 .庫存單價 ,庫存庫 .庫存金額 from 庫存庫 ,商品清單 39。)。 (39。where 庫存庫 .貨號 =商品清單 .貨號 and 39。)。 (39。((商品清單 .貨號 =39。39。39。++39。39。39。)or39。)。 if 39。39。 then begin (39。(商品清單 .拼音編碼 like 39。39。%39。+ +39。%39。39。)or39。)。 end。 (39。(庫存庫 .倉庫 =39。39。39。++39。39。39。))39。)。 。 到此,便完成了庫存查詢的操作。 系統(tǒng)管理 系統(tǒng)管理功能中分為“用戶管理”和“權(quán)限設(shè)置”兩項功能。在用戶管理功能中,可以對用戶信息進行添 加、刪除或修改等操作?!坝脩艄芾怼惫δ苤挥泄芾韱T擁有,而“權(quán)限管理”功能,只有被授予了該權(quán)限的用戶才擁有。作為系統(tǒng)管理員,所有權(quán)限均為其開放,并且系統(tǒng)管理員的權(quán)限是不能修改的。管現(xiàn)員可以對本系統(tǒng)的其它普通用戶的資料進行修改,或給其它普通用戶授予權(quán)限。 系統(tǒng)管理窗體 rights 上放置 ADOQuery ADOQuery ADOQuery3 和ADOCommand1 控件,它們的 ConnectionString 均指向 my_jxc,用以連接數(shù)據(jù)庫。最左邊下拉列表框是對用戶的選擇,選擇了對應(yīng)的用戶,此時在右邊的列表框 中顯示它所具有的所有權(quán)限的名稱,且在最下面的組合復(fù)選框中,將其所具有的權(quán)限名稱前面顯示有 ”√ ”,可以修改復(fù)選組合框中的內(nèi)容, 再點擊“確認(rèn)修改” ,即可完成對 所對應(yīng)用戶的權(quán)限的權(quán)限。點擊“用戶管理”按鈕,進入到用戶管理的窗體上。系統(tǒng)管理的主要界面如下圖所示: 圖 34 權(quán)限管理窗體 在系統(tǒng)管理窗體中,只有當(dāng)前用戶為管理員,“用戶管理”按鈕才可見 ,權(quán)限功能的修改實現(xiàn)過程是這樣的:首先在 ComboBox1Change 事件中,當(dāng)選擇了對應(yīng)的用戶后,執(zhí)行相關(guān)代碼 ,在 listbox 中用以更新顯示出當(dāng)前用戶名所對應(yīng)的權(quán)限名稱。先以用戶名在用戶清單里查詢得到對應(yīng)的用戶編號,再以用戶編號在權(quán)限清單里查詢所對應(yīng)的用權(quán)限名稱,將查找到的權(quán)限名稱添加到 listbox1 的項目中去,查詢權(quán)限的對應(yīng)代碼如下: :=39。select 權(quán)限名稱 from 權(quán)限清單 where 用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =39。39。39。+ +39。39。39。39。 +39。)39。 向列表框中添加查詢到的權(quán)限項目: while not do begin temp:=(39。權(quán)限名稱 39。).AsString。 (temp)。 。 end。 在 ComboBox1Change 事件中同時也對下方的 checkbox 的 checked 屬性進行修改。以對應(yīng)的用戶編號和權(quán)限名稱對權(quán)限清單進行查找,如果查找到的用戶編號不為空,說明該用戶存在這樣的權(quán)限,便將對應(yīng) checkbox 的 checked 屬性設(shè)為 true;否則 checked 屬性為 false。例如:判斷用 戶是否具有商品資料維護的權(quán)限,其代碼如下: (39。select 用戶編號 from 權(quán)限清單 where (用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =39。39。39。++ 39。39。39。)) and(權(quán)限名稱 =39。39。39。++39。39。39。)39。)。 。 if (39。用戶編號 39。).AsString39。39。 then :=true else :=false。 另外,對于“確認(rèn)修改”按鈕響應(yīng)的事件,首先獲取用戶編號,以用戶姓名在用戶清單里查找對應(yīng)的用戶編號賦值給臨時變量 UserName;在權(quán)限清單里查找到最大的權(quán)限序號賦值給 MaxNumber;刪除該用戶在權(quán)限清單里擁有的所有權(quán)限。判斷下方的 checkbox 的 checked 屬性是否為 true,同時將先前查找到的最大權(quán)限序號增加,以新的權(quán)限序號插入到權(quán)限清單里 ,以免跟以前的權(quán)限序號沖突。例如對“商品資料維護”權(quán)限的修改,對應(yīng)代碼如下: if then begin order:=strtoint(MaxNumber)+1。 str:=inttostr(order)。 :=39。insert into 權(quán)限清單 ([權(quán)限序號 ],[用戶編號 ],[權(quán)限名稱 ]) values(39。39。39。+str+39。39。39。,39。+39。39。39。39。+UserNumber+39。39。39。,39。+39。39。39。39。+ +39。39。39。39。+39。)39。 。 end。 如果當(dāng)前用戶為管理員的話,會看到系統(tǒng)管理窗體上出現(xiàn)一個“用戶管理”按鈕,點擊它會跳轉(zhuǎn)到用戶管理 users 的窗體,如圖所示: 圖 35 用戶管理窗體 在用戶管理窗體上,可以完成對用戶資料的修改,刪除和添加用戶的功能。雙擊上方的 DBGrid 中的記錄,便把對應(yīng)的字段讀取出來 (密碼字段除外 ),顯示在下方的若干 edit 文本框里,修改對應(yīng)的記錄后,點擊“確認(rèn)修改”按鈕便完成了用戶資料的修改。特別指出,由于本系統(tǒng)所有用戶的密碼字段,均使用了MD5 加密。當(dāng)提交時,如果提交的密碼字段為空,默認(rèn)情況下不修改密碼;如果提交的 密碼字段不為空,便調(diào)用 md5 單元中的 MD5String()函數(shù)將密碼加密成為32 位的密文,以 MD5Print()函數(shù)將加密的字段顯示出來。這樣很好的避免了當(dāng)提交空密碼的時候,對空字符串也進行加密。 如果提交的密碼字段不為空,將該字段加密后更新記錄: encrypt_num:=(MD5String())。 :=39。update 用戶清單 set 用戶編號 =39。39。39。+ edit1. Text+39。39。39。,部門 =39。39。39。++39。39。39。,姓名 =39。39。39。++39。39。39。,性別 = 39。39。39。+ +39。39。39。,密碼 =39。39。39。+encrypt_num+39。39。39。 where 用戶編號 =39。39。39。+ edit1. Text+
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1