查詢資料的時候,都看不出來那些是有附上相關文件的檔案,
需使用者點擊相關文件 action ,再看有沒有資料才知道有沒有附上去。
我們可以參照 E-Mail 的樣式,只要在程式上面加上一個迴紋針的圖示,
就知道那些單子有沒有相關文件了。
首先要把圖先上傳,一般是上傳到 /u1/topprod/tiptop/doc/pic 目錄,
TIPTOP 的圖示是透過 web 的方式,將網址傳給 GDC ,
然後 GDC 再依 HTTP 網址抓取圖片來顯示。
程式的部份,比照 cl_set_pic1 函式的寫法就差不多了,
因 cl_set_pic1 的畫面變數一定要命名為 imgmksg ,
要顯示是否有相關文件的圖示的話,就必須要另外寫程式了。
以 aqct110 當範例:
FUNCTION t110_show_attache()
DEFINE l_cnt LIKE type_file.num5,
ls_sql STRING,
l_wc STRING
DEFINE ls_pic_url STRING,
ls_imgmksg STRING
DEFINE lr_key RECORD
gca01 LIKE gca_file.gca01,
gca02 LIKE gca_file.gca02,
gca03 LIKE gca_file.gca03
END RECORD
IF g_qcs.qcs01 IS NOT NULL THEN
LET l_cnt = 0
LET g_doc.column1 = "qcs01"
LET g_doc.column2 = "qcs02"
LET g_doc.column3 = "qcs05"
LET g_doc.value1 = g_qcs.qcs01
LET g_doc.value2 = g_qcs.qcs02
LET g_doc.value3 = g_qcs.qcs05
LET lr_key.gca01 = g_doc.column1 CLIPPED || "=" || g_doc.value1 CLIPPED
LET lr_key.gca02 = g_doc.column2 CLIPPED || "=" || g_doc.value2 CLIPPED
LET lr_key.gca03 = g_doc.column3 CLIPPED || "=" || g_doc.value3 CLIPPED
LET l_wc = "gca01 = '", lr_key.gca01 CLIPPED, "' AND gca02 = '", lr_key.gca02 CLIPPED,
"' AND gca03 = '", lr_key.gca03 CLIPPED, "' AND gca04 = ' ' AND gca05 = ' '"
# 是否有相關文件的紀錄
LET ls_sql = "SELECT COUNT(*) FROM gca_file WHERE ", l_wc,
" AND gca08 IN ('DOC','TXT') AND gca11 = 'Y' ORDER BY gca06"
PREPARE t110_doc_p FROM ls_sql
DECLARE t110_doc_d CURSOR FOR t110_doc_p
OPEN t110_doc_d
FETCH t110_doc_d INTO l_cnt
# 有的話顯示迴紋針圖檔,不然就顯示空白的圖檔,
#因為下一筆可能沒有要給他一個空白來更新畫面
IF SQLCA.SQLCODE = 0 AND l_cnt > 0 THEN
LET ls_pic_url = FGL_GETENV("FGLASIP") || "/tiptop/pic/"
LET ls_imgmksg = ls_pic_url.trim() || "attache.jpg"
# 傳送網址給畫面變數 imgattch
DISPLAY ls_imgmksg TO imgattach
ELSE
LET ls_pic_url = FGL_GETENV("FGLASIP") || "/tiptop/pic/"
LET ls_imgmksg = ls_pic_url.trim() || "space_0.gif"
DISPLAY ls_imgmksg TO imgattach
END IF
END IF
END FUNCTION
最後只要再 show 的 Function 加 CALL t110_show_attache() 就可以了。

沒有留言:
張貼留言