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

正文內(nèi)容

小型超市進存銷管理系統(tǒng)—畢業(yè)設(shè)計-在線瀏覽

2025-02-05 20:48本頁面
  

【正文】 戶的權(quán)限修改功能,同時還包含有只有管理員 admin才擁有的用戶管理功能,包括對用戶信息的添加、刪除、修改等操作,同時考慮到安全問題,本系統(tǒng)對用戶對應(yīng)的密碼進行了 MD5 加密處理。 (7) 帳目查詢 主要功能是對進貨過程中產(chǎn)生的 應(yīng)付款及銷售過程中產(chǎn)生的應(yīng)收款進行操作,輸入對應(yīng)的供貨商號或客戶編號就能查詢到對應(yīng)的應(yīng)付款或應(yīng)收款金額匯總,結(jié)算后,將對應(yīng)的記錄從應(yīng)付款或應(yīng)收款表中刪除,同時對已付款或已收款中的數(shù)據(jù)進行更新。進貨時,一張進貨單對應(yīng)一個供貨商,可以向供貨商進多種貨物。因此,一個商品可以向多個供貨商進貨,也可以銷售給多個客戶,只是對應(yīng)著不同的進貨單或銷售單。下面畫出商品、供貨商、客戶三個之間的實體關(guān)系圖 (ER 圖 ): 數(shù)據(jù)庫各表設(shè)計 對于本超市進存銷系統(tǒng)所用到的數(shù)據(jù)庫表有: 供貨商清單:保存關(guān)于供貨商的資料信息,如供貨商號、名稱等。 客戶清單:保存超市客戶的資料信息。 應(yīng)付款:保存進貨過程中產(chǎn)生的應(yīng)付款信息。 權(quán)限清單:保存本系統(tǒng)所有使用者的權(quán)限信息。 進貨單:進貨單主表 ,保存一次進貨中的所有商品的概括信息。 進貨單明細:進貨單從表,保存每一商品的進貨信息,如進價、稅額和倉庫等。 銷售單:銷售單主表,保存一次銷售中的所有商品的概括信息。 銷售單明細:銷售單從表,保存每一商品的銷售信息,如銷售數(shù)量和銷售價等。 倉庫清單:保存超市的倉庫信息,可以用于生成數(shù)據(jù)字典。 已付款:保存超市結(jié)算“應(yīng)付款”的情況。 進貨單與銷售單存儲過程 數(shù)據(jù)庫中還設(shè)計了兩個存儲過程,分別是 sf_進貨單 和 sf_銷售單 ,分別用于進貨和銷售時,對數(shù)據(jù)庫中各表的數(shù)據(jù)更新操作。 銷售的時候,將銷售單明細中銷售的對應(yīng)貨號數(shù)量從庫存庫對應(yīng)的記錄中減去;將銷售單明細中對應(yīng)的客戶編號、銷售價、金額等信息插入到應(yīng)收款中,以產(chǎn)生應(yīng)收款金額;將銷售單和銷售單明細中的記錄添加 于應(yīng)的歷史表格中;清除銷售單和銷售單明細表格中的記錄。登錄界面上放置了一個 ADOQuery1 控件,并設(shè)置它的 ConionString屬性指向的數(shù)據(jù)庫 my_jxc,用以完成數(shù)據(jù)庫的連接。若沒有找到,說明輸入的用戶名或密碼有誤,并給出提示。特別指出,在用戶清單中查找用戶名和密碼所對應(yīng)的用戶編號的時候,由于界面上輸入的是明文,而用戶清單中的密碼字段是 32 位的密文,且 MD5 是單向加密的密碼算法,所以在查找之前,先引用 md5 單元,再調(diào)用MD5String( )函數(shù)對密碼框中的明文進行加密,再用 MD5Print( )函數(shù)將加密后的密文顯示出來,賦值給 encrypt_num 變量,實際在用戶清單中找查密碼是以密文為準(zhǔn),而非輸入的明文,其查找用戶編號主要代碼如下: //保存用戶輸入的帳號和密碼 user:=。 encrypt_num:=(MD5String(pass))。select 用戶編號 from 用戶清單 where 姓名 =39。39。39。and 密碼 =39。39。39。39。用戶編號 39。 之后 便以用戶編號和權(quán)限名稱在權(quán)限清單中查找對應(yīng)的權(quán)限序號,若找到對應(yīng)的權(quán)限序號,說明該用戶擁有該權(quán)限,若沒有找到權(quán)限序號,說明該用戶沒有該權(quán)限,找到什么權(quán)限,便將 manage 和 info 窗體上對應(yīng)的按鈕 Enabled 值置為True。點擊對應(yīng)的按鈕,便跳轉(zhuǎn)到對應(yīng)的功能窗體上。因為當(dāng)前 登錄 的用戶為 系統(tǒng)管理員 admin,所以圖 31 中顯示的 登錄 用戶名為 ad。首先是設(shè)置 ADOQuery1 的 Connection String 屬性指向 my_jxc,再設(shè)置 DataSource1 的 DataSet 屬性為 ADOQuery1,設(shè)置 DBNavigator1 和 DBGrid1 的 DataSource 屬性為 DataSource1,資料管理分為商品資料維護、供貨商資料維護和客 戶資料維護,以 DBNavigator1 來控制刪除、插入或修改等功能。例如,點擊了商品資料維護,便在 ADOQuery1的 SQL 中添加這樣的語句: :=39。 使 DBGrid1 顯示出由數(shù)據(jù)集返回的結(jié)果,同時 DBNavigator1 控制的商品清單中的數(shù)據(jù)。 同時,窗體上還能對 商品資料、供貨商資料、客戶資料進行查詢,輸入對應(yīng)的拼音編碼部分或全部便能進行查詢。例如,點擊了 MainMenu 上的商品資料維護, 便為“商品拼音”,點擊了“查詢”按鈕時,先判斷=’商品拼音 ’,于是對商品清單進行查詢 。這樣也大大地提高了系統(tǒng)使用的方便性,簡單易用的圖形化操作界面,使用戶能更方便快捷學(xué)會使用。 進貨管理 這部分實現(xiàn)對進貨單的管理,主要提供保存進貨單、顯示進貨單報表和打印進貨單并記帳的功能。 進貨日期默認為當(dāng)前系統(tǒng)日期,制單人為前當(dāng) 登錄 用戶, 在下拉菜單中選擇業(yè)務(wù)員,這幾項都可以為空,但為了使數(shù)據(jù)更加詳盡,最好不要為空。 然后在 info 窗體中, DBGrid1 的雙擊事件 響應(yīng) ,判斷 =false且 =’供貨商拼音 ’,于是執(zhí)行相應(yīng)代碼,設(shè)置了兩個 string 類型的變量: num,name,分別接收 [0]和 [2]中的內(nèi)容,傳遞給 input 窗體上的 和 。 其代碼如下: if (=false)and(=39。) then begin //將供貨商的標(biāo)號和名稱傳回進貨單窗體 num:=[0].AsString。 :=num。 //成功后返回進貨單 :=true。 。 接著, 選擇需要進貨的商品。在 DBGrid1的雙擊事件里響應(yīng) ,判斷 false且 =’商品拼音 ’,雙擊 對應(yīng)紀(jì)錄,將商品清單中的貨號、品名和銷售價 1 的信息傳遞到進貨單窗體中, 代碼如下: if (=false)and(=39。) then begin //將貨號和商品名稱傳回進貨單窗體 num:=[0].AsString。 price:=[7].AsString。 [1,]:=num。 [6,]:=price。 。 end。 Cells [1,]指的是 StringGrid1 中當(dāng)前行第 1列所對應(yīng)的單元格。 這樣便達到了,在 input 窗體上激發(fā)的變量,被兩個 public 變量接收,可以被 info 窗體引用的目的。添加倉庫的下拉菜單與添加業(yè)務(wù)員的過程相似,只有當(dāng) 選擇了商品信息且點擊了“倉庫”所對應(yīng)的列 , 才能進行倉庫選擇。 點擊“保存進貨單”按鈕時,將把進貨信息插入到進貨單和進貨單明細兩個表格中去,進貨單中的一條記錄保存的是一次進貨中向某個供貨商 所有 進貨商品的‘總稅價合計’、‘總不含 稅額’和‘總稅額’;進貨單明細則保存的是向某個供貨商進貨的 每 一商品所對應(yīng)的稅價合計,不含稅價和稅額等信息。例如進貨單記錄的插入過程: 獲取最大編號: (39。)。最大編號 39。 如果是第一條記錄,插入編號 ’00000’: if (maxnum=39。)or(maxnum=39。) then temp:=39。 向進貨單中插入對應(yīng)記錄: :=39。39。+inputnum+39。39。39。++39。39。39。++39。39。39。+bo+39。39。39。++39。39。39。++39。39。39。++39。39。39。++39。39。 。點擊“打印進貨單并記帳”,便可將進貨單報表打印成 (.mdi)格式的文檔,同時執(zhí)行了 “ sf_進貨單”存儲過程,以對數(shù)據(jù)庫中數(shù)據(jù)進行實時地更新。在 Delphi 的 Packages 里,點擊“ Add” 按鈕,找到安裝目錄下 \Borland\Delphi7\Bin\ 添加QuickReport 控件組。 QucikRep1 的 DataSet 屬性為ADOQuery1。其 SQL 屬性中添加查詢語句,以對數(shù)據(jù)庫中數(shù)據(jù)進行查詢返回數(shù)據(jù)集以供報表上顯示。其界 面如圖所示: 圖 33 銷售單窗體 首先需要向 Combobox1 的下拉菜單上添加項目,其代碼與在進貨管理中添加業(yè)務(wù)員菜單項目是一樣的。同時將 output的 enabled 值置為 false。此過程代碼與進貨管理中選擇供貨商過程的代碼類似。然后雙擊 output 中 StringGrid1 的單元格,跳轉(zhuǎn)到庫存庫 store 窗體上。 StringGrid1 的雙擊事件中,首先由 adoquery2 在商品清單里查得銷售價 1 字段,由 price 變量接收。 當(dāng)點擊保存銷售單后,第一條記錄編號為 ’00000’,如果不是第一條記錄,從銷售單歷史和銷售單明細歷史表格中把最大編號讀取出來 ,將其加 1,再插入到銷售單和銷售單明細表格中去。 點擊“打印銷售報表”按鈕,以打印出銷售單對應(yīng)報表。銷售報表與進貨報表的制作大同小異,只是對應(yīng)的數(shù)據(jù)集不同,執(zhí)行的 SQL 語句當(dāng)然也不同。設(shè)置 ADOQuery1 控件、 ADOQuery2控件的 ConnectionString 指向 my_jxc,以完成數(shù)據(jù)庫的連接。由于可以對商品拼音模糊查詢,如果不輸入商品拼音的話,系統(tǒng)會 將商品拼音看成一個空字符串,便得不到查詢的真實結(jié)果。其對應(yīng)的代碼如下: (39。)。where 庫存庫 .貨號 =商品清單 .貨號 and 39。 (39。39。++39。39。)。39。(商品清單 .拼音編碼 like 39。%39。%39。)or39。 end。(庫存庫 .倉庫 =39。39。39。))39。 。 系統(tǒng)管理 系統(tǒng)管理功能中分為“用戶管理”和“權(quán)限設(shè)置”兩項功能。“用戶管理”功能只有管理員擁有,而“權(quán)限管理”功能,只有被授予了該權(quán)限的用戶才擁有。管現(xiàn)員可以對本系統(tǒng)的其它普通用戶的資料進行修改,或給其它普通用戶授予權(quán)限。最左邊下拉列表框是對用戶的選擇,選擇了對應(yīng)的用戶,此時在右邊的列表框 中顯示它所具有的所有權(quán)限的名稱,且在最下面的組合復(fù)選框中,將其所具有的權(quán)限名稱前面顯示有 ”√ ”,可以修改復(fù)選組合框中的內(nèi)容, 再點擊“確認修改” ,即可完成對 所對應(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)限名稱。select 權(quán)限名稱 from 權(quán)限清單 where 用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =39。39。39。39。)39。權(quán)限名稱 39。 (temp)。 end。以對應(yīng)的用戶編號和權(quán)限名稱對權(quán)限清單進行查找,如果查找到的用戶編號不為空,說明該用戶存在這樣的權(quán)限,便將對應(yīng) checkbox 的 checked 屬性設(shè)為 true;否則 checked 屬性為 false。select 用戶編號 from 權(quán)限清單 where (用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =39。39。39。)) and(權(quán)限名稱 =39。39。39。)39。 。用戶編號 39。39。 另外,對于“確認修改”按鈕響應(yīng)的事件,首先獲取用戶編號,以用戶姓名在用戶清單里查找對應(yīng)的用戶編號賦值給臨時變量 UserName;在權(quán)限清單里查找到最大的權(quán)限序號賦值給 MaxNumber;刪除該用戶在權(quán)限清單里擁有的所有權(quán)限。例如對“商品資料維護”權(quán)限的修改,對應(yīng)代碼如下: if then begin order:=strtoint(MaxNumber)+1。 :=39。39。+str+39。39。+39。39。+UserNumber+39。39。+39。39。+ +39。39。+39。 。 如果當(dāng)前用戶為管理員的話,會看到系統(tǒng)管理窗體上出現(xiàn)一個“用戶管理”按鈕,點擊它會跳轉(zhuǎn)到用戶管理 users 的窗體,如圖所示: 圖 35 用戶管理窗體 在用戶管理窗體上,可以完成對用戶資料的修改,刪除和添加用戶的功能。特別指出,由于本系統(tǒng)所有用戶的密碼字段,均使用了MD5 加密。這樣很好的避免了當(dāng)提交空密碼的時候,對空字符串也進行加密。 :=39。39。+ edit1. Text+39。39。39。++39。39。39。++39。39。39。+ +39。39。39。+encrypt_num+39。39。39。+ edit1. Text+39。39。 鼠標(biāo)點擊 DBGrid 里的某一條記錄后,再點擊“刪除”按鈕,即可將該用戶刪除。插入之前,先做判斷,如果用戶清單里已經(jīng)有相同的用戶編號,給出提示。 :=39。39。+ +39。39。39。++39。39。39。++39。39。39。++39。39。39。+encrypt_num+39。39。 以上便是“系統(tǒng)管理”中的全部功能的實現(xiàn)過程。主要是對進貨單歷史、進貨單明細歷史、銷售單歷史或銷售單明細歷史進行查詢。歷史查詢窗體 history 上的 ADOQuery1 控件的ConnectionString 指向 my_jxc,以此做為數(shù)據(jù)集返回結(jié)果。 圖 36 歷史查詢窗體 例如,點擊了“進出貨歷史”主菜單中的“進貨單歷史” ,便把 ADOQuery1中的 SQL 查詢語句指向進貨單歷史中,同時改變 label1 和 label2 的 Caption值以提示用戶輸入進貨單編號或供貨商拼音進行查詢。 if 39。 then (39。39。++39。39。)。點擊“銷售單歷史” ,其執(zhí)行過程與此類似。 點
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1