基于Delphi的小型超市進存銷管理系統(tǒng)-無憂無慮畢設(shè)網(wǎng)_第1頁
基于Delphi的小型超市進存銷管理系統(tǒng)-無憂無慮畢設(shè)網(wǎng)_第2頁
基于Delphi的小型超市進存銷管理系統(tǒng)-無憂無慮畢設(shè)網(wǎng)_第3頁
基于Delphi的小型超市進存銷管理系統(tǒng)-無憂無慮畢設(shè)網(wǎng)_第4頁
基于Delphi的小型超市進存銷管理系統(tǒng)-無憂無慮畢設(shè)網(wǎng)_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 本文配套程序下載地址 : 無憂無慮畢設(shè)網(wǎng) ()-大學(xué)生畢業(yè)設(shè)計站 ,免費畢業(yè)設(shè)計論文 ,無憂無慮畢設(shè)網(wǎng) 大學(xué)生畢業(yè)設(shè)計 ,出售各類畢業(yè)設(shè)計源碼 ,論文 ,程序源碼 ,網(wǎng)站源碼 ,免費視頻教程 ,我們將竭誠為您服務(wù)! 分類號: TP315 U D C: D10621-408-(2007)5882-0 密 級:公 開 編 號: 2003212033 成 都 信 息 工 程 學(xué) 院 學(xué) 位 論 文 基于 Delphi 的小型超市進存銷管理系統(tǒng) 論 文 作 者 姓 名 : 王 橋 申 請 學(xué) 位 專 業(yè) : 計算機科學(xué)與技術(shù) 申 請 學(xué) 位 類 別 : 工學(xué)學(xué)士 指導(dǎo)教師姓名(職稱): 李梅(高級工程師) 論 文 提 交 日 期 : 2007 年 06 月 10 日 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 基于 Delphi 的小型超市進存銷管理系統(tǒng) 摘 要 在市場經(jīng)濟中,銷售是企業(yè)運作的重要環(huán)節(jié),為了更好地推動銷售,不少企業(yè)建立分公司代理,通過分公司或代理把產(chǎn)品推向最終用戶。這些分公司或代理商大多分布 在全國各地,甚至是在國外,遠距離頻繁的業(yè)務(wù)信息交流構(gòu)成了這些企業(yè)業(yè)務(wù)活動的主要特點。在傳統(tǒng)方式上,公司之間通常采用電傳、電報、電話等方式傳遞發(fā)貨、到貨、壓貨、換貨、退貨等信息,并且對進貨、銷售、庫存等信息進行手工存檔,工作效率極其低下。 本畢業(yè)設(shè)計針對傳統(tǒng)的進存銷系統(tǒng)的一些弊端 ,根據(jù)進存銷系統(tǒng)的基本流程,實現(xiàn)了一個小型超市的進存銷管理系統(tǒng)。本系統(tǒng)主要包含有資料管理、進貨管理、銷售管理、庫存查詢、系統(tǒng)管理、歷史查詢、賬目查詢等進存銷管理的基本功能。其中,資料管理包括有商品資料、供貨商資料、客戶資料的添加、刪除 、修改、查詢等操作。本系統(tǒng)采用 C/S模式,由 Delphi 7.0 開發(fā),數(shù)據(jù)庫設(shè)計使用 MS SQL Server2000。 關(guān)鍵詞 : C/S 模式; Delphi; SQL Server 2000;進存銷管理系統(tǒng) 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: The Stocking Selling and Storing Management System of Small Supermarket Based on Delphi Abstract Salesmanship is an important part of operation of enterprises in the market economy. In order to promote the sales of the produces, many enterprises establish the agencies of branch, push products to the terminal customers through these agencies. Many agencies or branches are distributed all over the country, even abroad, so that the main feature of these business activities is remote frequent exchange of operational information. In the traditional way, the company usually exchange messages about the transmission, arrival, storage, change, return of goods by telex, telegraph, telephone and store the data of Purchase, Sale, Storage by manual. The working efficiency is extremely low. According to the basic process of the Stocking Selling and Storing Management , the author realized a Stocking Selling and Storing Management System of small supermarket. The basic functions of this system include data management, inventory management, sales management, storage inquiry, system management, history inquiry, account inquiry. The data management which include add, delete, modify and inquire the data about goods, data about supplier and data about customer. The system uses C/S model and has been developed by Delphi 7.0. Database design use SQL Server 2000. Key words: C/S model; Delphi; SQL Server 2000; Stocking Selling and Storing 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 畢業(yè)設(shè)計源碼下載: 目 錄 論文總頁數(shù): 24頁 1引言 . 1 1.1 課題背景與開發(fā)目的 . 1 1.2 開發(fā)環(huán)境 . 1 1.3 硬件需求 . 1 系統(tǒng)總體設(shè)計 . 2 2.1 功能概述 . 2 2.2 數(shù)據(jù)庫設(shè)計 . 3 2.2.1 數(shù)據(jù)庫概念模型 . 3 2.2.2 數(shù)據(jù)庫各表設(shè)計 . 4 2.2.3 進貨單與銷售單存儲過程 . 7 3 超市進存銷系統(tǒng)的實現(xiàn) . 8 3.1 用戶登錄 . 8 3.2進存銷系統(tǒng)主界面 . 9 3.3 資料管理 . 9 3.4 進貨管理 . 10 3.5 銷售管理 . 13 3.6 庫存管理 . 14 3.7 系統(tǒng)管理 . 15 3.8 歷史查詢 . 18 3.9 帳目查詢 . 19 結(jié) 論 . 22 參考文獻 . 22 致 謝 . 23 聲 明 . 24 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 1 頁 共 24 頁 1 引言 1.1 課題背景與開發(fā)目的 電子商務(wù)的發(fā)展和市場競爭的加劇將企業(yè)推上了風(fēng)口浪尖,中小企業(yè)除了積極迎接挑戰(zhàn)之外,別無選擇,網(wǎng)絡(luò)的興起與電子商務(wù)的發(fā)展帶來了時空界限的突破、貿(mào)易方式的變革和經(jīng)濟活動的革命,從某種意義上講,這些變化為中小企業(yè)創(chuàng)造了與大型企業(yè)、國外企業(yè)平等競爭的有利條件。然而,管理水平的差異會弱化這種平等的實際意義。具體而言,中小企業(yè)在進、存、銷等環(huán)節(jié)的管理上都存在著 一定程度的不足,而這些不足無疑將使其在市場競爭中陷入被動的境地。在網(wǎng)絡(luò)經(jīng)濟的時代背景下,進行有效的進存銷管理已經(jīng)成為中小企業(yè)存身立業(yè)的頭等要事。然而對于一貫疏于管理的中小企業(yè)而言,實現(xiàn)有效的進存銷管理必然存在著一定的難度,因此必須借助現(xiàn)代化的管理方法和管理技術(shù) 計算機進存銷管理系統(tǒng)。 超市最主要的任務(wù)是商品進貨存貨及銷售管理,即商品進存銷管理,由于商品種類繁多且數(shù)據(jù)量大,傳統(tǒng)手工操作任務(wù)繁重、工作效率低下,不適應(yīng)現(xiàn)代化信息社會發(fā)展需要,所以急需使用商品進存銷管理軟件進行現(xiàn)代化管理:超市運作中批發(fā)及零售企業(yè) 基本上都屬于中小型規(guī)模、而且單位數(shù)量特別多,因此商品進銷存管理軟件有很大的需求市場。本文作者選擇 Delphi 來開發(fā)一個小型超市的進存銷管理系統(tǒng),得到快速完美的開發(fā)效果。本文對商業(yè)進銷存管理系統(tǒng)進行系統(tǒng)分析,給出了管理系統(tǒng)用到的數(shù)據(jù)結(jié)構(gòu)及開發(fā)過程中的關(guān)鍵技術(shù)。 本系統(tǒng)采用 C/S 模式設(shè)計,把超市工作人員從繁雜的數(shù)據(jù)管理以及處理中解放出來,避免了手工數(shù)據(jù)統(tǒng)計的種種弊端 ,大大地提高了工作效率。將超市進存銷的各種信息存儲于數(shù)據(jù)庫中,再通過前臺友好的用戶界面來對數(shù)據(jù)庫中的數(shù)據(jù)進行插入、刪除、修改與更新等操作,由于本系統(tǒng) 設(shè)計的界面友好,操作方便,用戶能輕而易舉地學(xué)會使用,有利于企業(yè)創(chuàng)造更大的經(jīng)濟效益。 1.2 開發(fā)環(huán)境 Delphi 是 Inprise 公司的可視化軟件開發(fā)工具,是目前創(chuàng)建 Windows 應(yīng)用程序最強大的開發(fā)工具之一,它具有 C+的強大功能和 Visual Basic 的易用性,Delphi 具有友好的開發(fā)環(huán)境、真正面向?qū)ο蟮某绦蛟O(shè)置、組件化的編程方式、快速 Pascal編譯器,是軟件開發(fā)人員不可多得的好工具。 本系統(tǒng)是在 windows XP 操作系統(tǒng)下,使用 Borland Delphi 7.0 作為開發(fā)工具,數(shù)據(jù)庫使用的是 SQL SERVER 2000開發(fā)。 1.3 硬件需求 在運行本系統(tǒng)前,請檢查一下計算機是否滿足以下要求: 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 2 頁 共 24 頁 1.服務(wù)器要求的配置為: (1) CPU: Intel 賽揚 以上,建議 Intel Pentium 以上 (2) 內(nèi)存 : 128M 以上,建議 256M以上 (3) 硬盤 : 1G 以上的可用硬盤安裝空間 (4) Microsoft SQL Server 7.0 以上 2.客戶機硬件配置要求為: (1) CPU: Intel 賽揚 以上,建議 Intel Pentium 以上 (2) 內(nèi)存 : 128M以上,建議 256M以上 系統(tǒng)總體設(shè)計 2.1 功能概述 根據(jù)進存銷管理系統(tǒng)的邏輯劃分,本系統(tǒng)一共分為七個功能,分別是資料維護、進貨管理、銷售管理、庫存查詢、系統(tǒng)管理、歷史查詢、帳目查詢。其功能結(jié)構(gòu)圖如圖 2-1所示。 圖 2-1 系統(tǒng)功能結(jié)構(gòu)圖 (1) 資料管理 主要包括商品資料、供貨商資料和客戶資料的維護,可以進行添加、刪除、修改與查詢等一系列操作。商品資料、供貨商資料、客戶資料是進銷存管理系統(tǒng)基本資料。 超市進 存銷管理系統(tǒng) 資料維護 進貨管理 銷售管理 庫存查詢 系統(tǒng)管理 帳目查詢 歷史查詢 權(quán)限設(shè)置 用戶管理 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 3 頁 共 24 頁 (2) 進貨管理 主要功能是進貨的過程中,對數(shù)據(jù)庫數(shù)據(jù)進行實時更新 ,入庫的時候,將供貨商、商品等基本信息讀入數(shù)據(jù)庫的表格中,主要是讀入進貨單歷史和進貨單明細歷史中;對庫存庫中對應(yīng)的商品信息,諸如,庫存數(shù)量、倉庫、庫存金額等數(shù)據(jù)進行更新操作;對應(yīng)于進貨單中供貨商,產(chǎn)生應(yīng)付款金額;同時打印進貨單。 (3) 銷售管理 主要功能是銷售的過程中,對數(shù)據(jù)庫中的數(shù)據(jù)進行實時更新,出庫的時候,將客戶、商品等基本信息讀入數(shù)據(jù)庫表格中,主要是讀入銷售單歷史和銷售單明細歷史中;對庫存庫中對應(yīng)的商品信息進行修改,主要是減去銷售的商品數(shù)量;對應(yīng)于銷售單中的客戶,產(chǎn)生應(yīng)收款金額;同時打印銷售單。 (4) 庫存查詢 主要功能是對庫存庫中的商品信息進行查詢,輸入貨號、商品拼音或是倉庫,便可以方便快捷地查詢到庫存庫中對應(yīng)的商品信息。 (5) 系統(tǒng)管理 系統(tǒng)管理中包含系統(tǒng)用戶的權(quán)限修改功能,同時還包含有只有管理員 admin才擁有的用戶管理功能,包括對用戶信息的添加、刪除、修改等操作,同時考慮到安全問題,本系統(tǒng)對用戶對應(yīng)的密碼進行了 MD5加密處理。 (6) 歷史查詢 主要功能是對進貨單歷史、進貨單明細歷史、銷售單歷史、銷售單明細歷中的數(shù)據(jù)進行查詢操作。 (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ù)進行更新。 2.2 數(shù)據(jù)庫設(shè)計 2.2.1 數(shù)據(jù)庫概念模型 數(shù)據(jù)庫主要涉及到三個實體:商品、供貨商、客戶。進貨時,一張進貨單對應(yīng)一個供貨商,可以向供貨商進多種貨物。銷售時,一張銷售單對應(yīng)一個客戶,可以向客戶銷售多種商品。因此,一個商品可以向多個供貨商進貨,也可以銷售給多個客戶,只是對應(yīng)著不同的進貨單或銷售單。 E-R( Eneity-Relationship Approach)圖是最常用的概念模型表示方法,也是數(shù)據(jù)庫的核心和基礎(chǔ),它是按用戶的觀點來對數(shù)據(jù)和信息建模,依據(jù)概念模型設(shè)計應(yīng)具的特點:真實性、易理解性、易修改性、易轉(zhuǎn)換性。下面畫出商品、無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 4 頁 共 24 頁 供貨商、客戶三個之間的實體關(guān)系圖 (E-R圖 ): 2.2.2 數(shù)據(jù)庫各表設(shè)計 對于本超市進存銷系統(tǒng)所用到的數(shù)據(jù)庫表有: 供貨商清單:保存關(guān)于供貨商的資料信息,如供貨商號、名稱等。 商品清單:保存超市所 經(jīng)營商品的資料信息,如貨號、品名、進貨價和銷售價等。 客戶清單:保存超市客戶的資料信息。 庫存庫:保存超市商品庫存的數(shù)量、金額等信息。 應(yīng)付款:保存進貨過程中產(chǎn)生的應(yīng)付款信息。 應(yīng)收款:保存銷售過程中產(chǎn)生的應(yīng)收款信息。 權(quán)限清單:保存本系統(tǒng)所有使用者的權(quán)限信息。 用戶清單:保存本系統(tǒng)所有 使用 者的信息。 進貨單:進貨單主表 ,保存一次進貨中的所有商品的概括信息。 進貨單歷史:保存進貨單歷史。 進貨單明細:進貨單從表,保存每一商品的進貨信息,如進價、稅額和倉庫等。 商 品 貨號 條碼 拼音編碼 銷售 進貨 供貨商 客戶 客戶編號 名 稱 名 稱 拼音編碼 拼音編碼 供貨商號 N M P Q 圖 2-2 商品、供貨商和客戶 E-R圖 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 5 頁 共 24 頁 進貨單明細歷史:保存進貨單明細歷史。 銷售單:銷 售單主表,保存一次銷售中的所有商品的概括信息。 銷售單歷史:保存銷售單歷史。 銷售單明細:銷售單從表,保存每一商品的銷售信息,如銷售數(shù)量和銷售價等。 銷售單明細歷史:保存銷售單明細歷史。 倉庫清單:保存超市的倉庫信息,可以用于生成數(shù)據(jù)字典。 已收款:保存超市結(jié)算“應(yīng)收款”的情況。 已付款:保存超市結(jié)算“應(yīng)付款”的情況。 下面給出幾個主要表的具體信息: 表 2-1 供貨商清單 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 供貨商號 Char 10 否 主鍵 拼音編碼 Char 40 否 以便查詢 名稱 Varchar 80 是 地址 Varchar 80 是 郵編 Char 6 是 傳真 Varchar 20 是 電話 Varchar 20 是 電報 Varchar 20 是 銀行帳號 Varchar 20 是 庫房地址 Varchar 40 是 庫房電話 Varchar 20 是 表 2-2 庫存庫 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 貨號 Char 14 否 商品貨號 倉庫 Varchar 20 否 庫存數(shù)量 Decimal (28,6) 否 庫存金額 Decimal (28,6) 否 庫存單價 Decimal (28,6) 否 最新進價 Decimal (28,6) 是 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 6 頁 共 24 頁 表 2-3 應(yīng)付款 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 編號 Char 14 否 主鍵 進貨單號 Char 14 是 外鍵 貨號 Char 14 否 外鍵 供貨商號 Char 10 否 外鍵 數(shù)量 Decimal (28,6) 否 進貨單價 Decimal (28,6) 是 金額 Decimal (28,6) 是 進貨日期 Datetime 8 是 狀態(tài) Char 6 是 應(yīng)付 表 2-4 權(quán)限清單 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 權(quán)限序號 Int 4 否 自增字段 用戶編號 Char 6 是 外鍵 部門 Char 20 是 權(quán)限名稱 Char 30 否 表 2-5 用戶清單 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 用戶編號 Char 20 否 主鍵 部門 Char 20 是 姓名 Char 10 否 性別 Char 2 是 密碼 Varchar 32 否 MD5 加密 表 2-6 進貨單 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 編號 Char 14 否 主鍵 供貨商號 Char 10 否 外鍵 進貨日期 Datetime 8 是 業(yè)務(wù)員 Char 10 是 制單人 Char 10 是 稅價合計 Decimal (28,6) 是 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 7 頁 共 24 頁 不含稅價 Decimal (28,6) 是 稅額 Decimal (28,6) 是 表 2-7 進貨單明細 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 編號 Char 14 否 主鍵 進貨單號 Char 14 否 外鍵 貨號 Char 14 否 外鍵 進貨數(shù)量 Decimal (28,6) 否 進價 Decimal (28,6) 是 稅價合計 Decimal (28,6) 是 稅率 Decimal (28,6) 是 不含稅價 Decimal (28,6) 是 稅額 Decimal (28,6) 是 倉庫 Char 20 是 表 2-8 已付款 字段名 數(shù)據(jù)類型 長度 是否允許為空 字段描述 供貨商號 Char 10 否 主鍵 供貨商名稱 Varchar 80 是 已 付金額 Decimal (28,6) 否 最近結(jié)算 Datetime 8 是 最近的結(jié)算日期 以上便是數(shù)據(jù)庫中的主要表單,商品清單、客戶清單與表 2-1(供貨商清單 )類似,應(yīng)收款與表 2-3(應(yīng)付款)類似,銷售單與進貨單的對應(yīng)表單類似,已收款與表 2-10(已付款)類似。 2.2.3 進貨單與銷售單存儲過程 數(shù)據(jù)庫中還設(shè)計了兩個存儲過程,分別是 sf_進貨單和 sf_銷售單,分別用于進貨和銷售時,對數(shù)據(jù)庫中各表的數(shù)據(jù)更新操作。 進貨的時候,庫存庫中的倉庫和貨號要與進貨單明細中的倉庫和貨號相匹配,若不匹配,證明 是新的記錄,進貨單明細中所對應(yīng)的貨號與倉庫記錄添加到庫存庫中,若匹配,證明同一商品入的是同一倉庫,便將庫存庫中的庫存數(shù)量累加新入庫的數(shù)量;將進貨單明細中所對應(yīng)的供貨商號、稅價合計、進貨數(shù)量、貨號等信息插入到應(yīng)付款中,以產(chǎn)生應(yīng)付款金額;將進貨單和進貨單明細中的記錄添加到對應(yīng)的歷史表格中;清除進貨單和進貨單明細表格。 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 8 頁 共 24 頁 銷售的時候,將銷售單明細中銷售的對應(yīng)貨號數(shù)量從庫存庫對應(yīng)的記錄中減去;將銷售單明細中對應(yīng)的客戶編號、銷售價、金額等信息插入到應(yīng)收款中,以產(chǎn)生應(yīng)收款金額;將銷售單和銷售單明細中的記錄添加于應(yīng)的歷史表 格中;清除銷售單和銷售單明細表格中的記錄。 3 超市進存銷系統(tǒng)的實現(xiàn) 3.1 用戶登錄 用戶登錄是一個系統(tǒng)安全性能的重要體現(xiàn),本系統(tǒng)用到的所有密碼均通過MD5 加 密 。 登 錄 界 面 上 放 置 了 一 個 ADOQuery1 控 件 , 并 設(shè) 置 它 的ConnetionString 屬性指向的數(shù)據(jù)庫 my_jxc,用以完成數(shù)據(jù)庫的連接。登錄過程是:首先在用戶清單中查找輸入的用戶名和密碼所對應(yīng)的用戶編號。若沒有找到,說明輸入的用戶名或密碼有誤,并給出提示。若找到這樣的用戶編號,說明是合法用戶,再在權(quán)限清單中,查找對應(yīng)的權(quán)限,找到什么權(quán)限,便將對應(yīng)的功能按鈕所對應(yīng)的 Enabled 值置為 True。特別指出,在用戶清單中查找用戶名和密碼所對應(yīng)的用戶編號的時候,由于界面上輸入的是明文,而用戶清單中的密碼字段是 32 位的密文,且 MD5 是單向加密的密碼算法,所以在查找之前,先引用 md5 單元,再調(diào)用 MD5String( )函數(shù)對密碼框中的明文進行加密,再用MD5Print( )函數(shù)將加密后的密文顯示出來,賦值給 encrypt_num 變量,實際在用戶清單中找查密碼是以密文為準(zhǔn),而非輸入的明文,其查找用戶編號主要代碼如下: /保存用戶輸入的帳號和密碼 user:=edit1.Text; pass:=Edit2.Text; encrypt_num:=md5.MD5Print(MD5String(pass);/加密明文 /將原來的 SQL 語句清除后再添加新的 SQL語句 ADOQuery1.SQL.Text:=select 用戶編號 from 用戶清單 where 姓名 = +user+and 密碼 =+encrypt_num+; temp:=adoquery1.FieldByName(用戶編號 ).AsString; 之后便以用戶編號 和權(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。 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 9 頁 共 24 頁 3.2進存銷系統(tǒng)主界面 超市進銷存系統(tǒng)主界面上放置七個按鈕,分別對應(yīng)七個功能模塊:資料管理、進貨管理、銷售管理、庫存管理、系統(tǒng)管理、歷史查詢、帳目查詢。點擊對應(yīng)的按鈕,便跳轉(zhuǎn)到對應(yīng)的功能窗體上。 圖 3-1 系統(tǒng)主界面 在主界面的左下方會顯示當(dāng)前登錄的用戶名字。因為當(dāng)前登錄的用戶為系統(tǒng)管理員 admin,所以圖 3-1中顯示的登錄用戶名為 ad。 3.3 資料管理 資料管理窗體上放置的幾個主要控件是 DBNavigator1控件、 DBGrid1 控件、ADOQuery1 控件和 DataSource1 控件。首先是設(shè)置 ADOQuery1 的 Connection String 屬性指向 my_jxc,再設(shè)置 DataSource1 的 DataSet 屬性為 ADOQuery1,設(shè)置 DBNavigator1 和 DBGrid1的 DataSource 屬性為 DataSource1,資料管理分為商品資料維護、供貨商資料維護和客戶資料維護, 以 DBNavigator1 來控制刪除、插入或修改等功能。分別點擊 MainMenu 菜單上不同的菜單項,來更新數(shù)據(jù)集,以顯示不同表格中的數(shù)據(jù)。例如,點擊了商品資料維護,便在 ADOQuery1 的SQL中添加這樣的語句: adoquery1.SQL.Text:=select * from 商品清單 ; 使 DBGrid1 顯示出由數(shù)據(jù)集返回的結(jié)果,同時 DBNavigator1 控制的商品清單中的數(shù)據(jù)。同理,點擊了供貨商資料維護或是客戶資料維護菜單時,便向ADOQuery1的 SQL中添加新的 SQL語句,以使控制不同的數(shù) 據(jù)集。 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 10 頁 共 24 頁 同時,窗體上還能對商品資料、供貨商資料、客戶資料進行查詢,輸入對應(yīng)的拼音編碼部分或全部便能進行查詢。查詢按鈕所響應(yīng)的事件 :首先是根據(jù)label1 的 caption 內(nèi)容來判斷是對那一張表格進行操作的,而 label1.caption是由點擊 MainMenu 上不同的菜單項而改變的。例如,點擊了 MainMenu 上的商品資料維護, label1.caption 便為“商品拼音”,點擊了“查詢”按鈕時,先判斷l(xiāng)abel1.caption=商品拼音 ,于是對商品清單進行查詢。 同時, DBGrid1還有一個鼠標(biāo)雙擊的響 應(yīng)事件,因為在進貨管理或銷售管理時,選擇供貨商、商品或是客戶信息時,需要跳轉(zhuǎn)到資料管理窗體上,雙擊DBGrid1上的記錄,以把數(shù)據(jù)傳遞到進貨單或銷售單窗體上。這樣也大大地提高了系統(tǒng)使用的方便性,簡單易用的圖形化操作界面,使用戶能更方便快捷學(xué)會使用。這部分代碼將在進貨管理和銷售管是部分詳細闡述。 3.4 進貨管理 這部分實現(xiàn)對進貨單的管理,主要提供保存進貨單、顯示進貨單報表和打印進貨單并記帳的功能。進貨單 input窗體上,放置 ADOQuery1和 ADOCommand1控件,并且設(shè)置它們的 ConnectionString屬性指向 my_jxc,以完成數(shù)據(jù)庫的連接。 進貨日期默認為當(dāng)前系統(tǒng)日期,制單人為前當(dāng)?shù)卿浻脩?,在下拉菜單中選擇業(yè)務(wù)員,這幾項都可以為空,但為了使數(shù)據(jù)更加詳盡,最好不要為空。 進貨單窗體如圖所示: 圖 3-2 進貨單窗體 首先選擇供貨商,鼠標(biāo)點擊 Combobox2 時,對應(yīng)的 DropDown 事件響應(yīng),跳轉(zhuǎn)到資料管理中去,同時將 input窗體置為不可用。 然后在 info窗體中, DBGrid1的雙擊事件響應(yīng),判斷 input.Enabled=false無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 11 頁 共 24 頁 且 label1.caption=供貨商拼音 ,于是執(zhí)行相 應(yīng)代碼,設(shè)置了兩個 string類型的變量: num,name,分別接收 DBGrid1.Fields0和 DBGrid1.Fields2中的內(nèi)容,傳遞給 input 窗體上的 ComboBox2.Text 和 Edit3.Text。將供貨商號和供貨商名稱返回到進貨單窗體上,以此完成了供 貨商的選擇。其代碼如下: if (input.Enabled=false)and(label1.Caption=供貨商拼音 ) then begin /將供貨商的標(biāo)號和名稱傳回進貨單窗體 num:=dbgrid1.Fields0.AsString; name:=dbgrid1.Fields2.AsString; input.ComboBox2.Text:=num; input.Edit3.Text:=name; /成功后返回進貨單 input.Enabled:=true; info.Close; manage.Hide; end; 接著,選擇需要進貨的商品。在 StringGrid1 中雙擊單元格,以跳轉(zhuǎn)到資料管理的窗體上。在 DBGrid1的雙擊事件里響應(yīng),判斷 input.enabled屬性為 false且 label1.caption=商品拼音 ,雙擊對應(yīng)紀錄,將商品清單中的貨號、品名和銷售價 1的信息傳遞到進貨單窗體中,代碼如下: if (input.Enabled=false)and(label1.Caption=商品拼音 ) then begin /將貨號和商品名稱傳回進貨單窗體 num:=dbgrid1.Fields0.AsString; name:=dbgrid1.Fields3.AsString; price:=dbgrid1.Fields7.AsString; if input.currentRow=0 then input.currentRow:=1; input.StringGrid1.Cells1,input.currentRow:=num; input.StringGrid1.Cells2,input.currentRow:=name; input.StringGrid1.Cells6,input.currentRow:=price; /成功后返回進貨單 input.Enabled:=true; info.Close; 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 12 頁 共 24 頁 manage.Hide; end; 特別指出, num,name,price 分別對應(yīng)著貨號、品名和價格。 Cells 1,input.currentRow指的是 StringGrid1 中當(dāng)前行第 1列所對應(yīng)的單元格。 在Forminput單元文件中的接口部分的 public處 聲 明了 currentRow和 currentCol兩個整型變量, 在 implementation部分中,由 StringGrid1 SelectCell 事件激發(fā),以 currentRow 和 currentCol來接收 Arow 和 Acol兩個變量。這樣便達到了 ,在 input窗體上激發(fā)的變量,被兩個 public 變量接收,可以被 info 窗體引用的目的。 在商品入庫之前,要對所進商品進貨到哪個倉庫進行選擇。添加倉庫的下拉菜單與添加業(yè)務(wù)員的過程相似,只有當(dāng)選擇了商品信息且點擊了“倉庫”所對應(yīng)的列,才能進行倉庫選擇。另外,當(dāng)點擊某條記錄的“金額”單元格時,自動算出對應(yīng)進貨記錄的金額、稅價與稅價合計。 點擊“保存進貨單”按鈕時,將把進貨信息插入到進貨單和進貨單明細兩個表格中去,進貨單中的一條記錄保存的是一次進貨中向某個供貨商所有進貨商品的總稅價合計、總不含稅額和總 稅額;進貨單明細則保存的是向某個供貨商進貨的每一商品所對應(yīng)的稅價合計,不含稅價和稅額等信息。首先是編號的插入,如果是插入的第一條記錄,編號為 00000,如果不是插入第一條記錄,則分別是從進貨單歷史和進貨單明細歷史中查找出最大編號,將其加 1,再插入到進貨單和進貨單明細表格中。例如進貨單記錄的插入過程: 獲取最大編號: adoquery1.SQL.Add(select max(編號 ) 最大編號 from 進貨單歷史 ); maxnum:=adoquery1.FieldByName(最大編號 ).asstring; 如果是第一條記錄,插入編號 00000: if (maxnum=)or(maxnum= ) then temp:=00000 向進貨單中插入對應(yīng)記錄: adocommand1.CommandText:=insert into 進貨單 (編號 ,供貨商號 , 進貨日期 ,業(yè)務(wù)員 ,制單人 ,稅價合計 ,不含稅價 ,稅額 ) values (+inputnum+,+combobox2.Text+,+edit1.Text+,+combobox1.Text+,+edit2.Text+,+edit4.Text+,+edit5.Text+,+edit6.Text+); adocommand1.Execute; 然后點擊“顯示進貨單報表”,是對進貨單報表進行預(yù)覽。點擊“打印進貨無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 13 頁 共 24 頁 單并記帳”,便可將進貨單報表打印成 (.mdi)格式的文檔,同時執(zhí)行了 “ sf_進貨單”存儲過程,以對數(shù)據(jù)庫中數(shù)據(jù)進行實時地更新。 下面介紹一下,報表的制作: 本畢業(yè)設(shè)計所使用到的報表是用 QuickReport 控件制作的,由于 Delphi 7.0默認情況下沒有安裝此控件,因此需要手動添加。在 Delphi的 Packages 里,點擊“ Add” 按鈕,找到安裝目錄下 BorlandDelphi7Bindclqrt70.bpl 添加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ù)集以供報表上顯示。 3.5 銷售管理 銷售過程與進貨過程類似,這部分實現(xiàn)對銷售的管理,提供的主要功能有“保存銷售單”、“打印銷售單報表”和“記帳銷售單” 三個功能。其界 面如圖所示: 圖 3-3 銷售單窗體 首先需要向 Combobox1 的下拉菜單上添加項目,其代碼與在進貨管理中添加業(yè)務(wù)員菜單項目是一樣的。 鼠標(biāo)點擊客戶下 拉框,跳轉(zhuǎn)到資料管理窗體上,以選擇客戶。同時將 output無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 14 頁 共 24 頁 的 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,如果不是第一條記錄,從銷售單歷史和銷售單明細歷史表格中把最大編號讀取出來 ,將其加 1,再插入到銷售單和銷售單明細表格中去。這個過程與進貨管理中插入到進貨單歷史和進貨單明細歷史中相類似。點擊“打印銷售報表”按鈕,以打印出銷售單對應(yīng)報表。點擊“記帳銷售單”按鈕,執(zhí)行“ sf_銷售單 ” 存儲過程,以更新數(shù)據(jù)庫中 數(shù)據(jù)。銷售報表與進貨報表的制作大同小異,只是對應(yīng)的數(shù)據(jù)集不同,執(zhí)行的 SQL語句當(dāng)然也不同。 3.6 庫存管理 這部分主要是提供對庫存商品信息的查詢,輸入貨號、商品拼音和倉庫中的任意一項便可對庫存中商品的信息進行查詢。設(shè)置 ADOQuery1 控件、 ADOQuery2控件的 ConnectionString 指向 my_jxc,以完成數(shù)據(jù)庫的連接。 然后向“查詢”按鈕里添加事件,以使輸入“貨號” 、“商品拼音” 和“倉庫”中的任意一項,便可進行查詢。由于可以對商品拼音模糊查詢,如果不輸入商品拼音的話,系統(tǒng)會將商品拼音看 成一個空字符串,便得不到查詢的真實結(jié)果。所以先對其進行判斷,如果為空,便不追加對應(yīng)查詢語句。其對應(yīng)的代碼如下: adoquery1.SQL.Add(select 庫存庫 .貨號 ,商品清單 .品名 ,商品清單 .單位 ,庫存庫 .倉庫 ,庫存庫 .庫存數(shù)量 ,庫存庫 .庫存單價 ,庫存庫 .庫存金額 from 庫存庫 ,商品清單 ); adoquery1.SQL.Add(where 庫存庫 .貨號 =商品清單 .貨號 and ); adoquery1.SQL.Add(商品清單 .貨號 =+edit1.Text+)or); if edit2.Text then begin adoquery1.SQL.Add(商品清單 .拼音編碼 like %+ edit2.Text +%)or); end; 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 15 頁 共 24 頁 adoquery1.SQL.Add(庫存庫 .倉庫 =+combobox1.text+); adoquery1.Open; 到此,便完成了庫存查詢的操作。 3.7 系統(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 上放置 ADOQuery1、 ADOQuery2、 ADOQuery3 和ADOCommand1控件,它們的 ConnectionString 均指向 my_jxc,用以連接數(shù)據(jù)庫。最左邊下拉列表框是對用戶的選擇,選擇了對應(yīng)的用戶,此時在右邊的列表框中顯示它所具 有的所有權(quán)限的名稱,且在最下面的組合復(fù)選框中,將其所具有的權(quán)限名稱前面顯示有 ” ”,可以修改復(fù)選組合框中的內(nèi)容, 再點擊“確認修改” ,即可完成對 所對應(yīng)用戶的權(quán)限的權(quán)限。點擊“用戶管理”按鈕,進入到用戶管理的窗體上。系統(tǒng)管理的主要界面如下圖所示: 圖 3-4 權(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 的項無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 16 頁 共 24 頁 目中去,查詢權(quán)限的對應(yīng)代碼如下: adoquery2.SQL.Text:=select 權(quán)限名稱 from 權(quán)限清單 where 用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =+ combobox1.Text + +); 向列表框中添加查詢到的權(quán)限項目: while not adoquery2.Eof do begin temp:=adoquery2.fieldbyname(權(quán)限名稱 ).AsString; listbox1.Items.Add(temp); adoquery2.Next; end; 在 ComboBox1Change 事件中同時也對下方的 checkbox 的 checked 屬性進行修改。以對應(yīng)的用戶編號和權(quán)限名稱對權(quán)限清單進行查找,如果查找到的用戶編號不為空,說明該用戶存在這樣的權(quán)限,便將對應(yīng) checkbox 的 checked 屬性設(shè)為 true;否則 checked 屬性為 false。例如:判斷用戶是否具有商 品資料維護的權(quán)限,其代碼如下: adoquery2.SQL.Add(select 用戶編號 from 權(quán)限清單 where (用戶編號=(select 用戶編號 from 用戶清單 where 姓名 =+combobox1.Text+ ) and(權(quán)限名稱 =+checkbox2.Caption+); adoquery2.Open; if adoquery2.FieldByName(用戶編號 ).AsString then checkbox2.Checked:=true else checkbox2.Checked:=false; 另外,對于“確認修改”按鈕響應(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 checkbox1.Checked then begin order:=strtoint(MaxNumber)+1; str:=inttostr(order); 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 17 頁 共 24 頁 adocommand1.CommandText:=insert into 權(quán)限清單 (權(quán)限序號 ,用戶編號 ,權(quán)限名稱 ) values(+str+,+UserNumber+,+ checkbox1.Caption+); adocommand1.Execute; end; 如果當(dāng)前用戶 為管理員的話,會看到系統(tǒng)管理窗體上出現(xiàn)一個“用戶管理”按鈕,點擊它會跳轉(zhuǎn)到用戶管理 users的窗體,如圖所示: 圖 3-5 用戶管理窗體 在用戶管理窗體上,可以完成對用戶資料的修改,刪除和添加用戶的功能。雙擊上方的 DBGrid 中的記錄,便把對應(yīng)的字段讀取出來 (密碼字段除外 ),顯示在下方的若干 edit 文本框里,修改對應(yīng)的記錄后,點擊“確認修改”按鈕便完成了用戶資料的修改。特別指出,由于本系統(tǒng)所有用戶的密碼字段,均使用了MD5加密。當(dāng)提交時,如果提交的密碼字段為空,默認情況下不修改密碼;如果提交的密碼字段不為 空,便調(diào)用 md5單元中的 MD5String()函數(shù)將密碼加密成為32 位的密文,以 MD5Print()函數(shù)將加密的字段顯示出來。這樣很好的避免了當(dāng)提交空密碼的時候,對空字符串也進行加密。 如果提交的密碼字段不為空,將該字段加密后更新記錄: encrypt_num:=md5.MD5Print(MD5String(edit5.Text); adocommand1.CommandText:=update 用戶清單 set 用戶編號 =+ edit1. Text+,部門 =+edit2.Text+,姓名 =+edit3.Text+,性別 = + edit4.Text+,密碼 =+encrypt_num+ where 用戶編號 =+ edit1. Text+; 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 18 頁 共 24 頁 鼠標(biāo)點擊 DBGrid 里的某一條記錄后,再點擊“刪除”按鈕,即可將該用戶刪除。 在下方的 edit 方本框中輸入新添加的用戶信息后,點擊添加按鈕,將新用戶的記錄插入到用戶清單里。插入之前,先做判斷,如果用戶清單里已經(jīng)有相同的用戶編號,給出提示。同時插入新用戶記錄前,也對輸入的密碼 (明文 )調(diào)用MD5加密算法 加密成為 32位密文再插入 : encrypt_num:=md5.MD5Print(MD5String(edit5.Text); adocommand1.CommandText:=insert 用戶清單 values(+edit1.Text +,+edit2.Text+,+edit3.Text+,+edit4.Text+,+encrypt_num+); 以上便是“系統(tǒng)管理”中的全部功能的實現(xiàn)過程。 3.8 歷史查詢 歷史查詢主要是對以往進貨記錄和 銷售紀錄進行查詢。主要是對進貨單歷史、進貨單明細歷史、銷售單歷史或銷售單明細歷史進行查詢。輸入對應(yīng)的記錄編號或拼音編碼便可進行查詢。歷史查詢窗體 history 上的 ADOQuery1 控件的ConnectionString 指向 my_jxc,以此做為數(shù)據(jù)集返回結(jié)果。通過點擊主菜單上的按鈕來動態(tài)的改變 ADOQuery1所指向的數(shù)據(jù)集。 圖 3-6 歷史查詢窗體 例如,點擊了“進出貨歷史”主菜單中的“進貨單歷史” ,便把 ADOQuery1中的 SQL查詢語句指向進貨單歷史中,同時改變 label1和 label2的 Caption值以提示用戶輸入進貨單編號或供貨商拼音進行查詢。 點擊“查詢”按鈕,首先判斷 label1 的 caption 值,來決定當(dāng)前是對哪一個表進行操作 ,輸入“進貨單編號”或是“供貨商拼音”中的任何一項,便可進行查詢,同時“供貨商拼音”可以進行模糊查詢,所以在查詢之前,應(yīng)該先判斷,無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 19 頁 共 24 頁 如果拼音編碼輸入框不為空時才追加對應(yīng)的 SQL語句。 if edit2.Text then adoquery1.SQL.add( or 供貨商號 in (select 供貨商號 from 供貨商清單 where 拼音編碼 like %+edit2.Text+%); 以上便是點擊了“進貨單歷史” ,程序所執(zhí)行的過程。點擊“銷售單歷史” ,其執(zhí)行過程與此類似。 另外,當(dāng)點擊了“進出貨明細歷史”中的“進貨單明細歷史”時,也是動態(tài)的改變 ADOQuery1 中所對應(yīng)的 SQL查詢語句,同時改變 label1和 label2 的標(biāo)簽內(nèi)容。 點擊了“查詢”按鈕,執(zhí)行過程也是先由 label1 的 caption 來判斷,當(dāng)前操作的是哪一個表,再對相應(yīng)的表進行查詢。又由于可以進行模糊查詢,所以在查詢之前也應(yīng)該判斷如果拼音輸入框不為空時,便追加 SQL查詢 語句: if edit2.Text then adoquery1.SQL.Add( or 進貨單號 in (select 編號 from 進貨單歷史 where 供貨商號 in (select 供貨商號 from 供貨商清單 where 拼音編碼 like %+edit2.Text+%); 點擊“銷售單明細歷史” ,所執(zhí)行的過程與之類似。 3.9 帳目查詢 帳目查詢功能中,可以對應(yīng)收款和應(yīng)付款進行匯總,匯總結(jié)算后,首先將該記錄從應(yīng)收款或應(yīng)付款中刪除,再將結(jié)算的信息添加到已付款或已收 款中去。帳目查詢窗體 account 上, ADOQuery1、 ADOQuery2、 ADOCommand控件的 Connection String屬性設(shè)置為指向 my_jxc,用以連接數(shù)據(jù)庫。 圖 3-7 帳目查詢窗體 點擊上面的“未結(jié)算”主菜單中的“應(yīng)付款”或“應(yīng)收款” ,動態(tài)的改變窗體上 label的 caption 值,同時將更新數(shù)據(jù)集 ADOQuery1返回不同的查詢結(jié)果。例如點擊了“應(yīng)收款” ,響應(yīng)對應(yīng)的執(zhí)行代碼 : adoquery1.SQL.Text:=select * from 應(yīng)收款 ; /提示用戶輸入客 戶拼音編碼 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 20 頁 共 24 頁 label1.Caption:=客戶編號 ; label5.Caption:=應(yīng)收款查詢 ; 然后,輸入客戶編號進行查詢,將查詢出來該客戶未結(jié)算的帳目匯總以顯示在窗體上。如果不存在這樣的客戶編號,系統(tǒng)給出提示信息。 圖 3-8 匯總結(jié)果 由 label5.Caption=應(yīng)收款查詢 判斷是對應(yīng)收款進行操作,在 adoquey1的 SQL屬性中添加: adoquery1.SQL.Text:=select * from 應(yīng)收款 where 客戶編號 = + edit1.Text+; 以數(shù)據(jù)集 adoquery1 返回查詢所得結(jié)果,顯示在窗體上。在 adoquery2 的SQL屬性中添加語句以匯總該用戶編號所對應(yīng)的應(yīng)收款總金額: adoquery2.SQL.Text:=select total=sum(金額 ) from 應(yīng)收款 where 客戶編號 =+edit1.Text+; edit2.Text:=adoquery2.fieldbyname(total).AsString; 匯總結(jié)束后,再點擊“結(jié)算”按鈕,便將匯總的帳目結(jié)算,先將帳目從應(yīng)收款中刪除記錄,然后對已收款 中的數(shù)據(jù)進行更新,更新過程是這樣的:判斷新添加的應(yīng)收款記錄所對應(yīng)的客戶編號是否在已收款中已經(jīng)存在記錄,如果存在,便將對應(yīng)的已收金額累加進去,并將最近結(jié)算日期更新為當(dāng)前的日期。如果不存在,說明是新的記錄,直接將新的結(jié)算記錄插入到已收款表格中去。 圖 3-9 結(jié)算成功 無憂無慮畢設(shè)網(wǎng) ():畢業(yè)設(shè)計源碼下載 第 21 頁 共 24 頁 刪除結(jié)算記錄: adocommand1.CommandText:=delete from 應(yīng)收款 where 客戶編號 = + edit1.Text+; adocommand1.Execute; 以輸入的客戶編號在客戶清單中查找到 對應(yīng)的客戶名稱 ,于是在數(shù)據(jù)集的SQL屬性中添加如下查詢語句,以獲取客戶名稱: adoquery2.SQL.Text:=select 名稱 from 客戶清單 where 客戶編號 = +edit1.Text+; adoquery2.Open; name:=adoquery2.fieldbyname(名稱 ).AsString; 獲取到“客戶名稱”后,再以客戶名稱查找已收款記錄: adoquery2.SQL.Text:=selec

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論