[討論] 簡易出入庫系統分享

科技 · leohope · 發表於 2015-12-17 12:09 · · 檢舉

本文來自帆軟愛好者論壇一位番薯的分享,整理給大家參考!
一般用程序入門都做出入庫,進銷存之類的,一旦掌握了進出剩餘的做法,其他程序只需要在此基礎上擴展即可
一.描述:
希望在工作的時候,庫管可以通過FineReport能進行倉庫管理,因為管理簡單,邏輯上就不複雜,但裡面涉及很多的知識點和技巧,整套系統需要設計的是:出入庫人員,產品單,入庫單,出庫單,以及庫存明細報表
二:分類:報表應用>>報表典型應用>>簡易出入庫系統
三.實現步驟:
1.建立資料庫,本表涉及4個資料表,如下圖

用戶表,產品列表,入庫表,出庫表(出庫表和入庫表欄位一樣,圖一隻是展示出入庫表,需要再建一個出庫表)4個表
2.新建員工表和產品表,這個需要填報,兩個表比較簡單,具體步驟就不詳細介紹了,主要運用到模版–報表填報屬性,把欄位和單元格關聯即可,如下圖


產品表效果如下圖,產品表做了兩塊:一個是填報,一個是報表展示,當點擊提交按鈕後會刷新頁面出現產品列表!
這裡的知識點可以看之前寫的這篇教程:http://bbs.finereport.com/thread-69750-1-2.html

我們可以對添加的產品名做校驗,如果名稱重複彈窗警告,方法:右鍵點擊產品名稱下面的控制項單元格B3,控制項設置事件編輯,寫入js程式碼,如下圖

顯示效果如下圖

3:入庫單製作,如圖五

圖五
入庫單依然分兩塊,一個是入庫單填報,一塊是當提交入庫後可以及時產看到現在入庫明細表
如何設計表單填報和上面一樣,需要留意的知識點有以下幾個:
(1).入庫金額可以像excel一樣直接在單元格填入乘法公式
(2).產品名稱在入庫表中只是數字,引用的是產品表裡的id,如何讓他顯示產品名稱下拉列表,這裡需要一個技巧,我們需要右擊此單元格,選擇控制項設置-資料字典,如圖六設置

圖六
這樣我們點擊下拉列表時就會出現所有的產品名稱而不是產品編碼,當我們選定產品名稱後,發現在單元格中竟然還是產品編碼,這時我們需要做另一個設置,如圖七設置

圖七
設置完後,發現下拉選擇產品名稱後,單元格也是顯示的產品名稱,相關的技巧應用於入庫人欄位!通過以上的設置,入庫單就做好了
4:出庫單製作,效果如圖八

圖八
出庫單裡面也有產品名稱和出庫人兩個下拉列表,設置方法和入庫單中的產品名稱和入庫人的方法一樣
除此以外還有兩個知識點:
(1).當我們選擇產品名稱時如何實時顯示出現有庫存數量,我們需要如圖九設置

圖九
=if(len(A3) = 0, “”, sql(“glgg”, “select product_shu from glgg_product where id=” + A3, 1,1))
公式解釋:如果產品名稱長度為0的時候,現有庫存數量為空,否則查詢相應產品的數量把他的產品數量顯示在這個單元格中。
(2).如果填報人員填報失誤,填報的出庫數量大於現有庫存的數量,那整個系統就不好了,如何設定校驗呢?右擊單元格—控制項設置–事件編輯如圖十:

圖十
相關程式碼在圖十中有注釋,比較簡單
通過以上步驟出庫單就做好了
5:製作庫存產品明細報表
(1).建立入庫表資料集,建立出庫表資料集,建立產品表資料集,如圖11

圖11
(2).填充欄位,產品信息裡面填產品信息里的欄位,入庫填入庫表的欄位,出庫填出庫表的欄位,如圖12

圖12
(3).在K4單元格填入公式:=sum(G4) – sum(J4),計算出庫存數量
(4).以上只是普通的操作,接下來需要做定義,我們如何讓入庫和出庫列表顯示的和產品名稱一致呢,這些要做過濾,舉例:在入庫-時間,雙擊D4單元格,點擊過濾,如圖13,讓pid等於單元格A4,因為出入庫的pid就是引用的產品表中的id,出庫和入庫方法一致

圖13
(5).做到以上步驟,預覽看一下,發現報表凌亂,不像excel那樣可以按照自己想想的那樣讓相同的內容合并單元格,這就需要我們進一步的美化我們的報表,而且要有紮實的基本功能夠很好的理解分組,列表,擴展單元格這些基礎知識。
我們需要對B4,C4單元格設置擴展方向–不擴展,如圖14,這樣產品名稱和產品單位會自動合并單元格

圖14
之後對D4和H4單元格擴展方向–縱向,左父格自定義A4,如圖15

圖15
最後一個是K4單元格,需要設置單元格擴展方向-不擴展,左父格自定義A4。
最終的效果,如圖16,一張複雜的有美感的報表就生成了。

圖16
本來到此就結束了,但很遺憾,如果這麼簡單,那就不是系統了!
6.我們是需要有庫存數量的,通過報表我們計算出入庫總量和出庫總量,之後計算出現有的庫存總量,這個庫存總量是變化的,是需要實時寫入到資料庫中的,只有寫入資料庫中,當我們出庫的時候,庫存數才能正確顯示。如何實現呢?
我們需要給庫存數量K4單元格加一個數字控制項,之後選擇模版–報表填報屬性,添加欄位,id值一定選擇單元格組[A4],這樣填報的時候才會把屬於此單元格組的數量正確的更新資料庫里的值!如圖17

圖17
這樣設置後,我們打開這個報表時就可以提交,讓其庫存數量實時填入資料表的欄位,但我們不能每次都手動提交,這就需要打開決策系統–管理系統–定時調度,添加一個定時任務,讓系統每隔一段時間就自動提交,當然你要選擇需要定時填報的報表,如圖18,19設置

圖18

圖19
每隔時間可以自己設定,如果操作頻繁可以設定每1分鐘執行一次,這樣伺服器壓力大點!通過以上步驟,整個系統就完成了!中間過程並不簡單,需要細心並且對基礎掌握的很好才行!希望大家通過這個教程都能自己做出符合自己公司情況的出入庫管理系統!