原帖地址:https://www.oyonyou.com/thread-90999-1-1.html
原帖作者:wjhawxr123
一、前提
1.1、要學會用UAP制作一些簡單的報表,SQL語句是必須會的條件之一,當然不要求你要多精通,基本的一些語句組合還是需要會一些
1.2、運用的最多的是“select * from [表名] where [條件指定]”
“select * from [表名] left/right/inner/cross join [表名] on [條件]”
“case when [條件] then [結果] end”
“存儲過程”
“com口接口”
1.3、用SQL語句寫報表,並不是盲目的寫,一定要顧全一個運行效率問題,簡化語句,最快時間得出要的結果集。舉個例子,在幾個百萬行數據的表中做關聯,用“where”指定條件絕對沒有用“left join on”執行結果來的快;能用5行代碼寫出的結果,就絕不用10行代碼來執行。
1.4、以上是我在企業做系統維護所應用到的環境,也可能不是很全,但萬變不離其宗。掌握好SQL語句,已經能滿足大部分報表的制作要求。事實在,我認為ERP最大的功能,就在於各種各樣靈活的報表。
1.5、本人第一次發如此長的貼,排版手法很不熟練,各位將就點看
1.6、雖然寫的很簡略,但貴在免費,比起動輒需要幾金幣下載的來說,可謂給新手提供一下便利。
1.7、期待與各位共同研究,共同提高。
二、過程
2.1、首先打開UAP【圖一】
【圖一】
2.2、出現UAP界面
2.2.1、如何新建項目,這里不多做闡述,相信以各位的才智,此等簡單操作一看就會
2.2.2、新建報表【圖二】
【圖二】
2.2.3、出現新建數據源界面【圖三】,如果用SQL語句或者存儲過程寫報表,選擇“SQL腳本查詢”,“數據源名稱”和“數據源描述”一般寫報表名稱,保持一致也可以,不一致也可以。
【圖三】
2.2.4、點擊【圖三】中的下一步【圖四】
【圖四】
2.2.4.1、如果是用select語句寫報表,類型中選擇“SQL腳本” 【圖5、紅框處】
2.2.4.2、如果是用存儲過程寫報表,類型中選擇“存儲過程” 【圖5、紅框處】
2.2.4.3、SQL語句寫報表以及存儲過程寫報表,下文會分開詳細說明
【圖五】
2.3、用SQL語句寫報表
2.3.1、先在【查詢分析器】(注:查詢分析器:不作解釋,不知道的人請自覺學習SQL)中測試語句的完整性,是否能正確執行出結果【圖六】
- select a.cinvcode as '存貨編碼',b.cinvname as '存貨名稱',a.cbatch as '批次',a.iquantity as '現存量'
- from CurrentStock a left join inventory b on a.cinvcode = b.cinvcode where a.cwhcode = '0101'
【圖六】
2.3.2、在查詢分析器中能夠正確執行出結果集,證明語句沒有問題,復制進UAP編輯框中【圖七】【圖八】
【圖七】
【圖八】
2.3.3、復制語句時需要注意:select 語句歸select框內,where語句歸where框內,以此類推【圖九】
【圖九】
2.3.4、復制語句完畢,點擊“檢驗”按鈕,檢驗語句的完整性【圖十】
2.3.4.1、返回的結果集如果記錄行數不多,會很快跳出“檢驗完畢”的對話框【圖十】
2.3.4.2、返回的結果集如果記錄行數很多,檢驗過程較為漫長,有可能因為超時而跳出報錯提示框,這個時候,可以設置在select 后面加上 top 100,減少返回的結果集,讓系統快速通過驗證過程
【圖十】
2.3.5、檢驗通過之后,進入“查詢結果列”,刷新報表列【圖十一】
【圖十一】
2.3.6、填寫列名,填寫完畢,點擊“完成”按鈕【圖十二】
【圖十二】
2.3.7、在跳出的對話框中,填寫“報表名稱”,“視圖名稱”,選擇視圖類型,這里我們選擇“表格報表”,“自由報表”、“交叉報表”使用頻繁度不是很高,應用性不是很強,這里不作要求,本文指在說明簡單報表的制作,“自由報表”和“交叉報表”留待熟練后自行運用。填寫完畢,點擊“確定”按鈕。【圖十三】
【圖十三】
2.3.8、進入報表編輯界面,點擊“報表向導”按鈕【圖十四】
【圖十四】
2.3.9、在跳出的“電子表格報表定義”界面填寫“報表標題名稱”,填寫完畢,點擊“下一步”按鈕。【圖十五】
【圖十五】
2.3.10、報表明細項,選擇要顯示的列,在選擇框中打上√即可,默認是全部打上√,數值列字段默認是匯總求和,可以選擇,確定無誤,點擊“下一步”按鈕。【圖十六】
【圖十六】
2.3.11、報表雛形已經形成,現在所要做的,就是一些微小的調整。【圖十七】
【圖十七】
2.3.11.1、調整報表標題的字體、大小【圖十八】
點擊“標題名稱”,在屬性界面找到“字體”,點擊進入,調整字體,大小等【圖十八】
【圖十八】
2.3.11.2、調整明細列的順序【圖十九】
鼠標點擊一直拖曳、排列,直到符合自己滿意的順序即可【圖十九】
【圖十九】
2.3.12、調整結果如圖,是不是比剛剛的漂亮多了。【圖二十】
【圖二十】
2.3.13、報表格式已經確定,接下來就是要添加過濾條件了。此報表教為簡單,3個文本列,1個數值列,可以將3個文本列都作為過濾條件。
選擇標准條件。【圖二十一】
【圖二十一】
2.3.14、添加存貨編碼過濾條件
2.3.14.1、新增一個過濾條件
2.3.14.2、“中文簡體名稱”和“標題”保持一致,這里填寫“存貨編碼”【圖二十二】
【圖二十二】
2.3.14.3、“編輯類型”選擇“參照”,參照ID選擇存貨檔案表【圖二十三】
【圖二十三】
2.3.14.4、“比較符”選擇“等於”即可,“小數位數”、“分組”不作要求,“數據源”處填寫存貨編碼的字段名: a.cinvcode 【圖二十四】
2.3.14.5、“是否常用條件”打上鈎【圖二十四】
【圖二十四】
2.3.14.6、“式樣”選擇“彈出式”,點擊“確定”按鈕即可完成存貨編碼過濾條件的設定【圖二十五】
【圖二十五】
2.3.14.7、“存貨名稱”過濾條件也可如此設定。
2.3.14.8、過濾條件設定完之后,在過濾設計器中會顯示出設定了幾個過濾條件【圖二十六】
【圖二十六】
2.3.15、接下來就是發布做好的報表,在發布報表前,要注意
2.3.15.1、保存之前的操作
2.3.15.2、關閉報表的制作界面(發布報表時,不允許報表處於編輯界面)
2.3.16、點擊“發布”按鈕【圖二十七】
2.3.16.1、在跳出的對話框中,選擇類狀態為“未發布”的,且名稱是需發布報表的名稱的報表
2.3.16.2、在選擇列中打上鈎
2.3.16.3、點擊“發布”按鈕即可發布報表
2.3.16.4、發布成功后,此報表會從“業務對象發布”列表中消失。
【圖二十七】
2.3.17、驗證報表的可使用性
2.3.17.1、進入U871,選擇對應的帳套
2.3.17.2、打開“我的報表”
2.3.17.3、進入“庫存管理”,果然看見了“庫存查詢報表”【圖二十八】
【圖二十八】
2.3.17.4、雙擊“庫存查詢報表”,跳出過濾界面框,顯示的就是之前設定的過濾條件。
2.3.17.5、選擇一個存貨編碼【圖二十九】
【圖二十九】
2.3.17.6、點擊“過濾”按鈕,很快便顯示該存貨的庫存情況【圖三十】
【圖三十】
2.3.18、至此,一張簡單的報表就做完了
2.3.18.1、因為我使用的是demo用戶,系統不校驗權限,當時發布,當時就能看到。
2.3.18.2、其他用戶如果需要查看,需進入“系統管理”分配相應的權限。
2.3.19、用存儲過程寫報表的制作過程稍顯復雜,可能因為U871的UAP平台不是很成熟的原因,存儲過程的在【查詢分析器】中明明能通過,但是在UAP中就通不過,經常需要轉換參數的格式。這幾天就不寫了,待以后有空,會完善此貼。