2013年1月30日

增加是否有相關文件的圖示

查詢資料的時候,都看不出來那些是有附上相關文件的檔案,
需使用者點擊相關文件 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() 就可以了。

沒有留言:

張貼留言