Ⅰ 材料出庫,入庫,結存的數據怎麼演算法 的分別是什麼意思
計算方法:
材料發出結存單價=(期初結存金額+本期入庫金額)/(期初結存數量+本期入庫金額)
本期結存金額=材料結存單價*結存數量
本期出庫數量=期初+采購入庫-期末(金額類似)
ACCESS也設計思路如下:
1. 先分設計好三個表
2. 再計算出發出結存單價
3. 依據單價計算出期末結存數量與金額
4. 倒推出本期出庫數量金額
Ⅱ 數據入庫流程
一、規范數據入庫流程
規范化的操作流程是避免操作錯誤產生的有效手段。據此,對航空物探數據入庫過程中的數據質量檢查內容和方法進行了分析,歸納出系統檢查9項和拓撲檢查5項(表5-5)。考慮到在數據入庫過程中,需要給數據採集人員授予資料庫數據編輯和刪除許可權(以便編輯錄入的錯誤數,刪除導入的不正確數據),在編輯或刪除資料庫數據時,有可能錯誤地編輯或刪除已歸檔數據,破壞歸檔數據的完整性和正確性等因素,提出了航空物探資料庫入庫數據質量檢查的規范化流程(圖5-2)。
表5-5 入庫數據系統檢查和拓撲檢查
1)創建項目,在數據入庫前先創建項目,按項目導入或錄入數據。
2)入庫前系統檢查,導入或錄入的入庫數據必須通過系統的入庫前檢查(數據唯一性、數據類型、缺項檢查),才能保存到採集庫中。
3)數據進入採集庫後,須接受入庫後系統檢查。若是空間數據必須接受拓撲檢查,再與原數據文件進行逐位元組比較檢查,均通過後,進人工檢查。
4)人工檢查與人工復核,對項目概況數據、空間要素類數據(圖形和屬性)、文字數據、圖件數據、可製成圖件的對象類數據應進行人工檢查與人工復核。檢查方法是人工比對。該方法勞動強度大,檢查人員要有較強的責任心才能發現其中的錯誤。人工檢查與人工復核的工作內容相同,系統要求人工檢查與人工復核必須由不同人員完成,加強數據檢查力度,盡量消除人為因素造成的錯誤。
圖5-2 規范化的數據入庫流程
5)系統歸檔檢查,對入庫數據的非空欄位進行的檢查。系統歸檔檢查通過後,入庫數據可歸檔存入資料庫。
經測試,嚴格按照該數據入庫流程開展數據入庫工作。航空物探資料庫數據與入庫前原數據文件數據的一致性可達100%。
該流程將入庫數據與資料庫數據分離,單獨建立一個數據採集資料庫(簡稱「採集庫」),把待入庫數據暫存在採集庫中。入庫數據在採集庫中接受各項質量檢查和編輯,或刪除操作,直至達到數據入庫質量要求,歸檔進入資料庫(進入資料庫的數據除資料庫管理員外其他用戶是無權對其實施編輯或刪除操作的),保證資料庫數據的一致性和完整性,為整體提高航空物探資料庫的質量提供了保障。
二、規則化數據檢查方法
50多年來航空物探取得大量的基礎資料和成果資料,這些資料在地學基礎研究、油氣資源評價等領域發揮的重要作用日益顯現。人們越來越重視利用航空物探資料來解決所遇到的地質問題等,同時人們也很想了解所用資料的來源、質量等信息(如資料的測量年代、測量方法、儀器精度、飛行高度、定位精度,數據處理方法等),來評價問題解決的可信度。這也正是本信息系統建設者想要給用戶提供的。歷史已既成事實,許多與資料質量有關的信息,例如在使用數字收錄以前有不少項目的測量儀器精度、飛行高度、定位精度等現已處可尋。
過去的不足證明現在的進步,尊重歷史盡力適應未來的技術發展,是本信息系統建設所遵循的宗旨。因此,根據資料的實際情況,提出了入庫數據有效性檢查的規則化方法,較好地解決了不同年代資料信息不齊全的數據入庫質量檢查問題。
按照通常做法,在軟體代碼中直接編寫出每個資料庫表需要做檢查欄位的有效性檢查代碼。
//通常方法的數據進行質量檢查
//選擇表名,分別為每個表編寫檢查代碼
Switch(表名)
{
Case表名1:
檢查數據//獲取表的檢查數據
Switch(表.欄位名)
{
Csae表.欄位1://如欄位檢查項包括非空檢查、范圍檢查等
//依據不同檢查規則檢查數據
If(檢查數據[表.欄位1]!=空)…//非空檢查
…//其他檢查
If((檢查數據[表.欄位1]>值1)&&(檢查數據[表.欄位1]<值n))//范圍檢查
Break;
…//對應不同欄位名
Csae表.列名n:
…//對應欄位數據檢查
Break;
}
Break;
…//對應不同表數據檢查
Csae表名n:
…//對應表數據檢查
Break;
}
本系統採用規則化方法檢查入庫數據。在完成資料庫結構設計之後,針對每張資料庫表中每個欄位制定了入庫數據正確性的檢查規則,建立動態檢查規則表,針對不同的檢查規則編寫檢查函數,從資料庫中獲取被檢查表資料庫欄位的檢查規則,對入庫數據進行檢查的。規則化方法代碼實現的示例如下:
//本系統對表數據進行質量檢查
獲取檢查數據//檢查數據包括表名、欄位名、數據
獲取規則數據//檢查規則包括欄位名、檢查類型等
獲取規則值數據//檢查規則對應的值
//依據不同檢查規則檢查數據
Switch(規則數據[檢查規則])
{
Case檢查規則.規則1://非空檢查
If(檢查數據[檢查欄位名]!=空)……
Break;
…//其他檢查規則
Csae檢查規則.規則n://選擇范圍檢查
If(規則值數據is包含檢查數據[檢查欄位名])…
Break;
}
系統檢查採用傳統檢查方法實現代碼量約15345行(表5-6),代碼開發工作量很大,且靈活性差,不利於後期代碼維護和擴展,如添加表或表添加檢查欄位後都需要對代碼進行重新修改和編譯。而本系統的規則化方法代碼量僅495行(表5-6),只有傳統檢查方法代碼的3.22%,且添加表或表添加檢查欄位後不需要修改代碼;用戶在數據入庫時,根據實際需要直接修改檢查規則表即可。
表5-6 系統檢查兩種實現方式代碼量對比表