相信很多人都碰到這樣的問題與尋找完美的解決方案
關於tt要如何做到stand by 的實時備援ap+db機制
其實只要從基本系統面來下手 簡單不過的幾道手續就可以完成
隨時切換操作使用都不用再擔心機器或軟體故障產生額外費用的問題

jeffreyhu 發表在 痞客邦 留言(4) 人氣()


EIP Portal Site 企業入口站台 Web 2.0
PortalEIP-03.JPG PortalEIP-04.JPG PortalEIP-01.JPG PortalEIP-02.JPG  

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:25 (Formatter Plus v4.8.8) */

SELECT   plant, '2011' cyear,

         CASE

            WHEN plant IS NULL

               THEN '全部合計'

            WHEN plant IS NOT NULL AND cust IS NULL

               THEN '(' || plant || ')' || '小計'

            ELSE cust

         END x,

         SUM (d01n) x1a, SUM (d01p) x1b, SUM (d01px) x1c, SUM (d02n) x2a,

         SUM (d02p) x2b, SUM (d02px) x2c, SUM (d03n) x3a, SUM (d03p) x3b,

         SUM (d03px) x3c, SUM (d04n) x4a, SUM (d04p) x4b, SUM (d04px) x4c,

         SUM (d05n) x5a, SUM (d05p) x5b, SUM (d05px) x5c, SUM (d06n) x6a,

         SUM (d06p) x6b, SUM (d06px) x6c, SUM (d07n) x7a, SUM (d07p) x7b,

         SUM (d07px) x7c, SUM (d08n) x8a, SUM (d08p) x8b, SUM (d08px) x8c,

         SUM (d09n) x9a, SUM (d09p) x9b, SUM (d09px) x9c, SUM (d10n) x10a,

         SUM (d10p) x10b, SUM (d10px) x10c, SUM (d11n) x11a, SUM (d11p) x11b,

         SUM (d11px) x11c, SUM (d12n) x12a, SUM (d12p) x12b, SUM (d12px) x12c,

         SUM (dsumn) xa, SUM (dsump) xb,

         SUM (  NVL (d01px, 0)

              + NVL (d02px, 0)

              + NVL (d03px, 0)

              + NVL (d04px, 0)

              + NVL (d05px, 0)

              + NVL (d06px, 0)

              + NVL (d07px, 0)

              + NVL (d08px, 0)

              + NVL (d09px, 0)

              + NVL (d10px, 0)

              + NVL (d11px, 0)

              + NVL (d12px, 0)

             ) xc

    FROM (SELECT plant, cust, t1.curr, d01n, d01p, (d01p * r1) d01px, d02n,

                 d02p, (d02p * r2) d02px, d03n, d03p, (d03p * r3) d03px, d04n,

                 d04p, (d04p * r4) d04px, d05n, d05p, (d05p * r5) d05px, d06n,

                 d06p, (d06p * r6) d06px, d07n, d07p, (d07p * r7) d07px, d08n,

                 d08p, (d08p * r8) d08px, d09n, d09p, (d09p * r9) d09px, d10n,

                 d10p, (d10p * r10) d10px, d11n, d11p, (d11p * r11) d11px,

                 d12n, d12p, (d12p * r12) d12px, dsumn, dsump

            FROM (SELECT   'ds01' plant, cust, (SELECT aza17

                                                FROM ds01.aza_file) curr,

                           SUM (DECODE (cdate, '201101', x1, 0)) d01n,

                           SUM (DECODE (cdate, '201101', x2, 0)) d01p,

                           SUM (DECODE (cdate, '201102', x1, 0)) d02n,

                           SUM (DECODE (cdate, '201102', x2, 0)) d02p,

                           SUM (DECODE (cdate, '201103', x1, 0)) d03n,

                           SUM (DECODE (cdate, '201103', x2, 0)) d03p,

                           SUM (DECODE (cdate, '201104', x1, 0)) d04n,

                           SUM (DECODE (cdate, '201104', x2, 0)) d04p,

                           SUM (DECODE (cdate, '201105', x1, 0)) d05n,

                           SUM (DECODE (cdate, '201105', x2, 0)) d05p,

                           SUM (DECODE (cdate, '201106', x1, 0)) d06n,

                           SUM (DECODE (cdate, '201106', x2, 0)) d06p,

                           SUM (DECODE (cdate, '201107', x1, 0)) d07n,

                           SUM (DECODE (cdate, '201107', x2, 0)) d07p,

                           SUM (DECODE (cdate, '201108', x1, 0)) d08n,

                           SUM (DECODE (cdate, '201108', x2, 0)) d08p,

                           SUM (DECODE (cdate, '201109', x1, 0)) d09n,

                           SUM (DECODE (cdate, '201109', x2, 0)) d09p,

                           SUM (DECODE (cdate, '201110', x1, 0)) d10n,

                           SUM (DECODE (cdate, '201110', x2, 0)) d10p,

                           SUM (DECODE (cdate, '201111', x1, 0)) d11n,

                           SUM (DECODE (cdate, '201111', x2, 0)) d11p,

                           SUM (DECODE (cdate, '201112', x1, 0)) d12n,

                           SUM (DECODE (cdate, '201112', x2, 0)) d12p,

                           SUM (x1) dsumn, SUM (x2) dsump

                      FROM (SELECT   occ02 AS cust,

                                     TO_CHAR (oga02, 'yyyymm') AS cdate,

                                     SUM (ogb12) x1,

                                     SUM (ogb12 * ogb13 * oga24) x2,

                                     ROW_NUMBER () OVER (PARTITION BY occ02, TO_CHAR

                                                                               (oga02,

                                                                                'yyyymm'

                                                                               ) ORDER BY occ02)

                                                                           rn

                                FROM ds01.ima_file,

                                     ds01.oga_file,

                                     ds01.ogb_file,

                                     ds01.occ_file

                               WHERE oga01 = ogb01

                                 AND ogb04 = ima01

                                 AND oga09 <> '1'

                                 AND oga09 <> '5'

                                 AND ogaconf = 'Y'

                                 AND ogapost = 'Y'

                                 AND SUBSTR (oga03, 1, 1) <> 'E'

                                 AND SUBSTR (oga18, 1, 1) <> 'E'

                                 AND oga18 = occ01

                                 AND TO_CHAR (oga02, 'yyyymm') <= '201112'

                                 AND TO_CHAR (oga02, 'yyyymm') >= '201101'

                            GROUP BY occ02, TO_CHAR (oga02, 'yyyymm'))

                  GROUP BY cust

                  ) t1,

                 (SELECT   axp03 curr, SUM (DECODE (axp02, 1, rate, 0)) r1,

                           SUM (DECODE (axp02, 2, rate, 0)) r2,

                           SUM (DECODE (axp02, 3, rate, 0)) r3,

                           SUM (DECODE (axp02, 4, rate, 0)) r4,

                           SUM (DECODE (axp02, 5, rate, 0)) r5,

                           SUM (DECODE (axp02, 6, rate, 0)) r6,

                           SUM (DECODE (axp02, 7, rate, 0)) r7,

                           SUM (DECODE (axp02, 8, rate, 0)) r8,

                           SUM (DECODE (axp02, 9, rate, 0)) r9,

                           SUM (DECODE (axp02, 10, rate, 0)) r10,

                           SUM (DECODE (axp02, 11, rate, 0)) r11,

                           SUM (DECODE (axp02, 12, rate, 0)) r12

                      FROM (SELECT axp03, axp01, axp02, axp07 AS rate

                              FROM ds00.axp_file

                             WHERE axp01 = 2011)

                  GROUP BY axp03) t2

           WHERE t1.curr = t2.curr(+))

GROUP BY GROUPING SETS ((plant), (plant, cust), ())

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:24 (Formatter Plus v4.8.8) */
SELECT oma00, 'ds01' plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm,
       ar_amt x, upy_dat, cust_nm, sal_nm, curr
  FROM (SELECT oma00, oma01 ar_no, oma02 ar_dat, oma03 cust_no, oma14 sal_no,
               occ02 cust_nm, gen02 sal_nm, occ43 gp_no, oab02 gp_nm,
               ROUND (CASE
                         WHEN SUBSTR (oma00, 1, 1) = '2'
                            THEN (oma54t - oma55) * (-1)
                         ELSE (oma54t - oma55)
                      END,
                      2
                     ) ar_amt,
               ROUND (SYSDATE - oma02) upy_dat, oma23 curr
          FROM ds01.oma_file,
               ds01.occ_file,
               ds01.gen_file,
               ds01.oab_file,
               ds01.oga_file,
               ds01.oag_file
         WHERE                                  
               oma14 = gen01(+)
           AND oma03 = occ01(+)
           AND occ43 = oab01(+)
           AND oma16 = oga01(+)
           AND oma32 = oag01(+)
           AND omaconf = 'Y'
           AND omavoid = 'N'
           AND SUBSTR (oma03, 1, 1) <> 'E'
           AND oma02 <= SYSDATE
           AND SYSDATE - oma02 > 1
           AND (   oma61 > 0
                OR oma01 IN (
                      SELECT oob06
                        FROM ds01.ooa_file, ds01.oob_file
                       WHERE ooa01 = oob01 AND ooaconf = 'Y'
                             AND ooa02 > SYSDATE)
               ))
UNION ALL
SELECT oma00, 'ds02' plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm,
       ar_amt x, upy_dat, cust_nm, sal_nm, curr
  FROM (SELECT oma00, oma01 ar_no, oma02 ar_dat, oma03 cust_no, oma14 sal_no,
               occ02 cust_nm, gen02 sal_nm, occ43 gp_no, oab02 gp_nm,
               ROUND (CASE
                         WHEN SUBSTR (oma00, 1, 1) = '2'
                            THEN (oma54t - oma55) * (-1)
                         ELSE (oma54t - oma55)
                      END,
                      2
                     ) ar_amt,
               ROUND (SYSDATE - oma02) upy_dat, oma23 curr
          FROM ds02.oma_file,
               ds02.occ_file,
               ds02.gen_file,
               ds02.oab_file,
               ds02.oga_file,
               ds02.oag_file
         WHERE                                    
               oma14 = gen01(+)
           AND oma03 = occ01(+)
           AND occ43 = oab01(+)
           AND oma16 = oga01(+)
           AND oma32 = oag01(+)
           AND omaconf = 'Y'
           AND omavoid = 'N'
           AND SUBSTR (oma03, 1, 1) <> 'E'
           AND oma02 <= SYSDATE
           AND SYSDATE - oma02 > 1
           AND (   oma61 > 0
                OR oma01 IN (
                      SELECT oob06
                        FROM ds02.ooa_file, ds02.oob_file
                       WHERE ooa01 = oob01 AND ooaconf = 'Y'
                             AND ooa02 > SYSDATE)
               ))
UNION ALL
SELECT oma00, 'ds03' plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm,
       ar_amt x, upy_dat, cust_nm, sal_nm, curr
  FROM (SELECT oma00, oma01 ar_no, oma02 ar_dat, oma03 cust_no, oma14 sal_no,
               occ02 cust_nm, gen02 sal_nm, occ43 gp_no, oab02 gp_nm,
               ROUND (CASE
                         WHEN SUBSTR (oma00, 1, 1) = '2'
                            THEN (oma54t - oma55) * (-1)
                         ELSE (oma54t - oma55)
                      END,
                      2
                     ) ar_amt,
               ROUND (SYSDATE - oma02) upy_dat, oma23 curr
          FROM ds03.oma_file,
               ds03.occ_file,
               ds03.gen_file,
               ds03.oab_file,
               ds03.oga_file,
               ds03.oag_file
         WHERE                             
               oma14 = gen01(+)
           AND oma03 = occ01(+)
           AND occ43 = oab01(+)
           AND oma16 = oga01(+)
           AND oma32 = oag01(+)
           AND omaconf = 'Y'
           AND omavoid = 'N'
           AND SUBSTR (oma03, 1, 1) <> 'E'
           AND oma02 <= SYSDATE
           AND SYSDATE - oma02 > 1
           AND (   oma61 > 0
                OR oma01 IN (
                      SELECT oob06
                        FROM ds03.ooa_file, ds03.oob_file
                       WHERE ooa01 = oob01 AND ooaconf = 'Y'
                             AND ooa02 > SYSDATE)
               ))
UNION ALL
SELECT oma00, 'ds08' plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm,
       ar_amt x, upy_dat, cust_nm, sal_nm, curr
  FROM (SELECT oma00, oma01 ar_no, oma02 ar_dat, oma03 cust_no, oma14 sal_no,
               occ02 cust_nm, gen02 sal_nm, occ43 gp_no, oab02 gp_nm,
               ROUND (CASE
                         WHEN SUBSTR (oma00, 1, 1) = '2'
                            THEN (oma54t - oma55) * (-1)
                         ELSE (oma54t - oma55)
                      END,
                      2
                     ) ar_amt,
               ROUND (SYSDATE - oma02) upy_dat, oma23 curr
          FROM ds08.oma_file,
               ds08.occ_file,
               ds08.gen_file,
               ds08.oab_file,
               ds08.oga_file,
               ds08.oag_file
         WHERE                               
               oma14 = gen01(+)
           AND oma03 = occ01(+)
           AND occ43 = oab01(+)
           AND oma16 = oga01(+)
           AND oma32 = oag01(+)
           AND omaconf = 'Y'
           AND omavoid = 'N'
           AND SUBSTR (oma03, 1, 1) <> 'E'
           AND oma02 <= SYSDATE
           AND SYSDATE - oma02 > 1
           AND (   oma61 > 0
                OR oma01 IN (
                      SELECT oob06
                        FROM ds08.ooa_file, ds08.oob_file
                       WHERE ooa01 = oob01 AND ooaconf = 'Y'
                             AND ooa02 > SYSDATE)
               ))

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:22 (Formatter Plus v4.8.8) */
SELECT   sfb01 x1, sfb28 x2, nsfb02 x3, nsfb03 ps, sfb05 x4, ima021 x5,
         sfb04 x6, sfb13 x7, sfb15 x8, sfb25 x9, ROUND (sfb08) x10,
         ROUND (sfb081) x11, ROUND (sfb09) x12,
         DECODE (srg16, 'X', '未報工', '已有報工單') x13,
         CASE
            WHEN sfb08 = sfb09
               THEN sfu02
            ELSE ''
         END AS x14
    FROM (SELECT DISTINCT NVL (nsfb02, '尚未填寫') nsfb02,
                          NVL (nsfb03, '尚未填寫') nsfb03, sfb01, sfb05,
                          ima021, NVL (srg16, 'X') srg16,
                          DECODE (sfb04,
                                  '1', '確認生產',
                                  '2', '工單已發放-料表尚未列印',
                                  '3', '工單已發放-料表以列印',
                                  '4', '工單已發料',
                                  '5', '在製過程中',
                                  '6', '工單已完工(FQC)',
                                  '7', '完工入庫',
                                  '8', '結案'
                                 ) sfb04,
                          TO_CHAR (sfb13, 'YYYY/MM/DD') AS sfb13,
                          TO_CHAR (sfb15, 'YYYY/MM/DD') AS sfb15,
                          TO_CHAR (sfb25, 'YYYY/MM/DD') AS sfb25, sfb08,
                          sfb081, sfb09, NVL (sfb28, '未結') AS sfb28,
                          TO_CHAR (sfu02, 'YYYY/MM/DD') AS sfu02
                     FROM ds01.sfb_file,
                          ds01.ima_file,
                          ds01.srg_file,
                          ds.tc_nsfb_file,
                          (SELECT sfv11, sfu02
                             FROM (SELECT sfu01, sfu02, sfv11,
                                          ROW_NUMBER () OVER (PARTITION BY sfv11 ORDER BY sfu02 DESC)
                                                                           rn
                                     FROM ds01.sfv_file, ds01.sfu_file
                                    WHERE sfv01 = sfu01
                                      AND sfuconf = 'Y'
                                      AND sfupost = 'Y')
                            WHERE rn <= 1) mfg
                    WHERE sfb01 = nsfb01(+)
                      AND sfb05 = ima01(+)
                      AND sfb04 > 3
                      AND sfb87 = 'Y'
                      AND sfb28 IS NULL
                      AND sfb15 <= SYSDATE
                      AND sfb01 = srg16(+)
                      AND sfb01 = mfg.sfv11(+))
ORDER BY 1

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:20 (Formatter Plus v4.8.8) */
SELECT oma00, t1.plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm, ar_amt,
       upy_dat, cust_nm, sal_nm, curr, x, t2.occ01, t2.occ02, t2.userid,
       t2.username
  FROM (SELECT   oma00, 'ds01' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds01.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds01.oma_file,
                         ds01.occ_file,
                         ds01.gen_file,
                         ds01.oab_file,
                         ds01.oga_file,
                         ds01.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds01.ooa_file, ds01.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds03' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds03.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds03.oma_file,
                         ds03.occ_file,
                         ds03.gen_file,
                         ds03.oab_file,
                         ds03.oga_file,
                         ds03.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds03.ooa_file, ds03.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds02' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds02.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds02.oma_file,
                         ds02.occ_file,
                         ds02.gen_file,
                         ds02.oab_file,
                         ds02.oga_file,
                         ds02.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds02.ooa_file, ds02.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds08' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds08.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds08.oma_file,
                         ds08.occ_file,
                         ds08.gen_file,
                         ds08.oab_file,
                         ds08.oga_file,
                         ds08.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds08.ooa_file, ds08.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        ORDER BY curr) t1,
       (SELECT DISTINCT plant, occ01, occ02, userid, username
                   FROM (SELECT 'ds01' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds01.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds02' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds02.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds03' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds03.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds04' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds04.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds07' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds07.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds08' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds08.occ_file, ds.staff_file
                          WHERE occ04 = userid(+))
               ORDER BY 1, 2) t2
 WHERE t1.plant = t2.plant AND t1.cust_no = t2.occ01

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:18 (Formatter Plus v4.8.8) */
SELECT oma00, t1.plant, ar_no, ar_dat, cust_no, sal_no, gp_no, gp_nm, ar_amt,
       upy_dat, cust_nm, sal_nm, curr, x, t2.occ01, t2.occ02, t2.userid,
       t2.username
  FROM (SELECT   oma00, 'ds01' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds01.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds01.oma_file,
                         ds01.occ_file,
                         ds01.gen_file,
                         ds01.oab_file,
                         ds01.oga_file,
                         ds01.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds01.ooa_file, ds01.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds03' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds03.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds03.oma_file,
                         ds03.occ_file,
                         ds03.gen_file,
                         ds03.oab_file,
                         ds03.oga_file,
                         ds03.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds03.ooa_file, ds03.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds02' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds02.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds02.oma_file,
                         ds02.occ_file,
                         ds02.gen_file,
                         ds02.oab_file,
                         ds02.oga_file,
                         ds02.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds02.ooa_file, ds02.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        UNION ALL
        SELECT   oma00, 'ds08' plant, ar_no, ar_dat, cust_no, sal_no, gp_no,
                 gp_nm, ar_amt, upy_dat, cust_nm, sal_nm, curr, x
            FROM (SELECT oma00, oma01 ar_no, oma11 ar_dat, oma03 cust_no,
                         oma14 sal_no, occ02 cust_nm, gen02 sal_nm,
                         occ43 gp_no, oab02 gp_nm,
                         oma56t - oma57 + ds08.fnd_ar_addamt (oma01) ar_amt,
                         ROUND (SYSDATE - oma11) upy_dat, oma23 curr,
                         ROUND (CASE
                                   WHEN SUBSTR (oma00, 1, 1) = '2'
                                      THEN (oma54t - oma55) * (-1)
                                   ELSE (oma54t - oma55)
                                END,
                                2
                               ) x
                    FROM ds08.oma_file,
                         ds08.occ_file,
                         ds08.gen_file,
                         ds08.oab_file,
                         ds08.oga_file,
                         ds08.oag_file
                   WHERE oma14 = gen01(+)
                     AND oma03 = occ01(+)
                     AND occ43 = oab01(+)
                     AND oma16 = oga01(+)
                     AND oma32 = oag01(+)
                     AND omaconf = 'Y'
                     AND omavoid = 'N'
                     AND SUBSTR (oma03, 1, 1) <> 'E'
                     AND oma11 <= SYSDATE
                     AND SYSDATE - oma11 > 1
                     AND (   oma56t - oma57 > 0
                          OR oma01 IN (
                                SELECT oob06
                                  FROM ds08.ooa_file, ds08.oob_file
                                 WHERE ooa01 = oob01
                                   AND ooaconf = 'Y'
                                   AND ooa02 > SYSDATE)
                         ))
        ORDER BY curr) t1,
       (SELECT DISTINCT plant, occ01, occ02, userid, username
                   FROM (SELECT 'ds01' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds01.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds02' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds02.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds03' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds03.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds04' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds04.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds07' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds07.occ_file, ds.staff_file
                          WHERE occ04 = userid(+)
                         UNION ALL
                         SELECT 'ds08' plant, occ01, occ02, occ04, userid,
                                username
                           FROM ds08.occ_file, ds.staff_file
                          WHERE occ04 = userid(+))
               ORDER BY 1, 2) t2
 WHERE t1.plant = t2.plant AND t1.cust_no = t2.occ01

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
/* Formatted on 2011/04/21 14:15 (Formatter Plus v4.8.8) */
SELECT   plant, TO_CHAR (oma11, 'yyyy/mm/dd') oma11, oma03, oma032, oma23,
         SUM (x) ans
    FROM (SELECT 'ds' plant, oma11, NVL (oma03, '無代號') oma03,
                 NVL (oma032, '無名稱') oma032, oma23,
                 ROUND (CASE
                           WHEN SUBSTR (oma00, 1, 1) = '2'
                              THEN (oma54t - oma55) * (-1)
                           ELSE (oma54t - oma55)
                        END,
                        2
                       ) x
            FROM ds.oma_file, ds.gem_file, ds.gen_file, ds.azi_file
           WHERE oma15 = gem_file.gem01(+)
             AND oma14 = gen_file.gen01(+)
             AND oma23 = azi_file.azi01(+)
             AND omavoid = 'N'
             AND omaconf = 'Y'
             AND (oma56t - oma57) > 0
             AND SUBSTR (oma03, 1, 1) <> 'E'
             AND TRIM (oma00) LIKE '%')
   WHERE oma23 IN ('NTD') AND oma11 <= TO_DATE ('2011/12/31', 'yyyy/mm/dd')
GROUP BY plant, oma11, oma03, oma032, oma23
  HAVING SUM (x) <> 0
ORDER BY 3

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 

/* Formatted on 2011/04/21 14:16 (Formatter Plus v4.8.8) */

SELECT   plant, apa07, YEAR (apa12) years, TO_CHAR (apa12,

                                                    'yyyy/mm/dd') apa12,

         apa12 cdate, apa13, SUM (x2 + x1 - x3) ans

    FROM (SELECT 'ds01' plant, apa00, apa06,

                 NVL (pmc909, NVL (apa07, '無名稱')) apa07, apa12, apa13,

                 apa34f,

                 NVL (DECODE (SUBSTR (apa00, 1, 1), '2', apa34f * (-1)),

                      0) x1,

                 NVL (DECODE (SUBSTR (apa00, 1, 1), '1', apa34f), 0) x2,

                 NVL (DECODE (SUBSTR (apa00, 1, 1), '1', apa35f), 0) x3,

                 apa35f, pmc082

            FROM ds.apa_file, ds.pmc_file

           WHERE apa42 = 'N'

             AND pmc01 = apa06

             AND apa36 NOT IN ('12', '18')

             AND SUBSTR (apa06, 1, 1) <> 'E'

             AND SUBSTR (apa06, 1, 2) <> '3D'

             AND apa34f > (apa35f + apa20))

   WHERE apa13 IN ('NTD')

     AND apa12 >= TO_DATE ('2011/04/21', 'yyyy/mm/dd')

     AND apa12 <= TO_DATE ('2011/04/21', 'yyyy/mm/dd')

GROUP BY plant, apa07, apa12, apa13

  HAVING SUM (x2 + x1 - x3) <> 0

ORDER BY 5, 2


jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 

SELECT plant,XPATH,x1,x2,x3,x4,x5,x6,to_char(cdate,'yyyy/mm/dd') cdate,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,p0a,p1a,1,p2a,p3a,p4a,p5a,p6a FROM (  SELECT DISTINCT 'ds' plant,XPATH,x1,x2, x3, x4, x5,x6,cdate, p0a, p1a, p2a, p3a, p4a, p5a, p6a,D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12

           FROM (SELECT   bmb02 as x1,XPATH,to_char(bmb02) AS x2, bmb03 AS x3, x21 AS x4, x22 AS x5,x23 AS x6,bmb04 cdate,bmb06 AS p0a,

 D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,

                        ds.fnd_last_pmj07 ('ds',

                                             bmb03,

                                             '2011/04/21',

                                             31.837,

                                             '1',

                                             '2'

                                            ) p1a,

                        ds.fnd_last_pmj07 ('ds',

                                             bmb03,

                                             '2011/04/21',

                                             31.837,

                                             '1',

                                             '1'

                                            ) p2a,

                        ds.fnd_last_pmj07x (

                                             bmb03,

                                             31.837,

                                             'pmc03'

                                            ) p3a,

                        ds.fnd_last_pmj07x (

                                             bmb03,

                                             31.837,

                                             'pmj07'

                                            ) p4a,

                        ds.fnd_last_pmn31x (

                                             bmb03,

                                             31.837,

                                             'pmc03'

                                            ) p5a,

                        ds.fnd_last_pmn31x (

                                             bmb03,

                                             31.837,

                                             'pmn31'

                                            ) p6a

                     FROM (SELECT  XPATH,bmb02, bmb03,bmb04,bmb06, bmb16,

                                    DECODE (bmb16,

                                            '0', '不可取替代',

                                            '1', '取代料',

                                    '2', '替代料',

                                            '不可取替代'

                                           ) xx,

                                    isleaf

                               FROM (SELECT     LEVEL, bmb01, bmb02, bmb03,bmb04,SYS_CONNECT_BY_PATH(bmb01,'/') XPATH,

                                                bmb07, ((bmb06/bmb07)*(1+bmb08/100) ) AS bmb06, bmb16,

                                                CONNECT_BY_ISLEAF AS isleaf

                                           FROM ds.bmb_file

                                          WHERE CONNECT_BY_ISLEAF > 0

                        AND (bmb04  <= sysdate  OR bmb04 IS NULL)  

                                    AND (bmb05 > sysdate OR bmb05 IS NULL)                        

                                     START WITH bmb01 = 'P0022015000'

                                     CONNECT BY bmb01 = PRIOR bmb03

                                       ORDER BY 1, 2, 3)

                              WHERE isleaf > 0

                           ORDER BY 1, 2, 3) x1,

                          (SELECT ima01, ima02 x21, ima021 x22,azf03 x23,

                 imaud01 D1,imaud02 D2,imaud03 D3,imaud04 D4,imaud05 D5,imaud06 D6,imaud07 D7,imaud08 D8,imaud09 D9,imaud10 D10,

                     imaud11 D11,imaud12 D12

                             FROM ds.ima_file,ds.azf_file

                           WHERE ima09 = azf01(+)

                            ) x2

                    WHERE x1.bmb03 = x2.ima01

                 ORDER BY 4,5)

UNION ALL

SELECT   'ds' plant,XPATH,bmb02 as x1, (bmb02 ||'-'|| xx ) AS x2,x AS x3, x31 AS x4, x32 AS x5,x33 AS x6,bmd05 as cdate,bmb06 AS p0a,

         ds.fnd_last_pmj07 ('ds', x, '2011/04/21', 31.837, '1', '2') p1a,

         ds.fnd_last_pmj07 ('ds', x, '2011/04/21', 31.837, '1', '1') p2a,

         ds.fnd_last_pmj07x ( x, 31.837, 'pmc03') p3a,

         ds.fnd_last_pmj07x ( x, 31.837, 'pmj07') p4a,

         ds.fnd_last_pmn31x ( x, 31.837, 'pmc03') p5a,

         ds.fnd_last_pmn31x ( x, 31.837, 'pmn31') p6a,

     D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12

    FROM (SELECT   XPATH,bmd01,bmb02, bmb03,bmd05, bmb06, bmb16,

                   DECODE (bmb16,

                           '0', '不可取替代',

                           '1', '取代料',

                           '2', '替代料',

                           '不可取替代'

                          ) xx,

                   DECODE (bmb16,

                           '1', NVL (bmd04, bmb03),

                           '2', NVL (bmd04, bmb03),

                           bmb03

                          ) x,isleaf

              FROM (SELECT     LEVEL, bmb01, bmb02, bmb03,bmb04, bmb07,SYS_CONNECT_BY_PATH(bmb01,'/') XPATH, ((bmb06/bmb07)*(1+bmb08/100) ) AS bmb06,

                               bmb16, CONNECT_BY_ISLEAF AS isleaf

                          FROM ds.bmb_file

                         WHERE CONNECT_BY_ISLEAF > 0

              AND (bmb04  <= sysdate  OR bmb04 IS NULL)  

                  AND (bmb05 > sysdate OR bmb05 IS NULL)  

                    START WITH bmb01 = 'P0022015000'

                    CONNECT BY bmb01 = PRIOR bmb03

                      ORDER BY 1, 2, 3) t1,

                   (SELECT bmd08, bmd01, bmd02, bmd04,bmd05, bmd07

                      FROM ds.bmd_file

                     WHERE bmdacti = 'Y' AND bmd05  <= sysdate  AND (bmd06 is null OR bmd06 > sysdate)  ) t2

             WHERE t1.bmb01 = t2.bmd08(+)

               AND t1.bmb03 = t2.bmd01(+)

               AND t1.bmb16 = t2.bmd02(+)

               AND isleaf > 0

          ORDER BY 4,5) x1,

         (  SELECT ima01, ima02 x31, ima021 x32,azf03 x33,

        imaud01 D1,imaud02 D2,imaud03 D3,imaud04 D4,imaud05 D5,imaud06 D6,imaud07 D7,imaud08 D8,imaud09 D9,imaud10 D10,

            imaud11 D11,imaud12 D12

            FROM ds.ima_file,ds.azf_file

            WHERE ima09 = azf01(+)

         ) x3

   WHERE  x1.x = x3.ima01 and x1.xx not like '%不可取替代%' AND bmd01 is not null

ORDER BY 2  )  WHERE 1 = 1 order by 3,6,4 


jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
FUNCTION i901_out()
DEFINE
    l_i             LIKE type_file.num5,    #No.FUN-680136 SMALLINT
    sr              RECORD
        tc_votea01       LIKE tc_votea_file.tc_votea01,   #單據編號
tc_votea02       LIKE tc_votea_file.tc_votea02,   #
tc_votea03       LIKE tc_votea_file.tc_votea03,   #
tc_voteb02       LIKE tc_voteb_file.tc_voteb02,   #
tc_voteb03       LIKE tc_voteb_file.tc_voteb03,   #
tc_voteb04       LIKE tc_voteb_file.tc_voteb04    #單據編號
        #end No:FUN-550019
       END RECORD,
    l_name          LIKE type_file.chr20,  #External(Disk) file name  #No.FUN-680136 VARCHAR(20)
    l_za05          LIKE za_file.za05,     #No.FUN-680136 VARCHAR(40)
    l_azi03         LIKE azi_file.azi03,   #No.FUN-710091
     #MOD-530329
    l_wc            STRING                 #TQC-760033 add
    IF cl_null(g_votea.tc_votea01) THEN
       CALL cl_err('','9057',0) RETURN
    END IF
    IF cl_null(g_wc) THEN
       LET g_wc =" tc_votea01='",g_votea.tc_votea01,"'"       #TQC-760033 modify
       LET g_wc2=" 1=1 "   #TQC-760033 modify
    END IF
     #MOD-530329(end)
    CALL cl_wait()
    SELECT zo02 INTO g_company FROM zo_file WHERE zo01 = g_lang
    SELECT zz05 INTO g_zz05 FROM zz_file WHERE zz01 = g_prog   #TQC-760033 add
    #No.FUN-710091   --begin
    CALL cl_del_data(l_table)
     LET g_sql="INSERT INTO ",g_cr_db_str CLIPPED,l_table CLIPPED,  #TQC-780049
               " VALUES(?,?,?,?,?,?)"
    PREPARE insert_prep FROM g_sql
    IF STATUS THEN
       CALL cl_err("insert_prep:",STATUS,1) EXIT PROGRAM
    END IF
    #No.FUN-710091   --end
    LET g_sql = "SELECT tc_votea01,tc_votea02,tc_votea03,tc_voteb02,tc_voteb03,tc_voteb04",   
                " FROM tc_votea_file,tc_voteb_file",
                " WHERE tc_voteb01 = tc_votea01 AND ",g_wc CLIPPED, 
                "   AND ",g_wc2 CLIPPED
    LET g_sql = g_sql CLIPPED," ORDER BY 1,2"  #No.FUN-710091
    PREPARE i901_p1 FROM g_sql                # RUNTIME 編譯
    IF STATUS THEN CALL cl_err('i901_p1',STATUS,0) END IF
    #end No:FUN-550019
    DECLARE i901_co                         # CURSOR
        CURSOR FOR i901_p1
    FOREACH i901_co INTO sr.*
        IF SQLCA.sqlcode THEN
            CALL cl_err('foreach:',SQLCA.sqlcode,1)
            EXIT FOREACH
            END IF
        EXECUTE insert_prep USING sr.*  #No.FUN-710091 
    END FOREACH
    #No.FUN-710091  --begin
    #是否列印選擇條件
    #將cl_wcchp轉換後的g_wc放到l_wc,不要改變原來g_wc的值,不然第二次執行會有問題
    IF g_zz05 = 'Y' THEN
       CALL cl_wcchp(g_wc,'tc_votea01,tc_votea02,tc_votea03,tc_voteb02,tc_voteb03,tc_voteb04')                 
            RETURNING l_wc
    ELSE
       LET l_wc = ' '
    END IF
    LET g_str = l_wc CLIPPED ,";",g_prog CLIPPED        #TQC-760033  #MOD-7C0150
    LET g_sql ="SELECT * FROM ",g_cr_db_str CLIPPED,l_table CLIPPED
    LET g_prog="cxxi901"   #MOD-7C0150
    CALL cl_prt_cs3('cxxi901','cxxi901',g_sql,g_str)
  # FINISH REPORT i901_rep   #No.FUN-710091 
    CLOSE i901_co
    ERROR ""
END FUNCTION
FUNCTION i901_set_entry(p_cmd)
  DEFINE p_cmd   LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)
    IF p_cmd = 'a' AND ( NOT g_before_input_done ) THEN
      CALL cl_set_comp_entry("tc_votea01,tc_votea02,tc_votea03",TRUE)
      CALL cl_set_comp_entry("tc_voteaconf",FALSE)
    END IF
END FUNCTION
FUNCTION i901_set_no_entry(p_cmd)
  DEFINE p_cmd   LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)
    IF p_cmd = 'u' AND g_chkey = 'N' AND ( NOT g_before_input_done ) THEN
       CALL cl_set_comp_entry("tc_votea01,tc_voteaconf",FALSE)
       CALL cl_set_comp_entry("tc_votea02,tc_votea03,tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti",TRUE)    #No.FUN-610018
    END IF
END FUNCTION
FUNCTION i901_set_entry_b(p_cmd)
  DEFINE p_cmd   LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)
    CALL cl_set_comp_entry("tc_voteb02,tc_voteb03,tc_voteb04",TRUE)    #No.FUN-610018
END FUNCTION
FUNCTION i901_set_no_entry_b(p_cmd)
  DEFINE p_cmd   LIKE type_file.chr1    #No.FUN-680136 VARCHAR(1)
 CALL cl_set_comp_entry("tc_votebuser,tc_votebmodu,tc_votebdate,tc_voteaconf",FALSE)    #No.FUN-610018
END FUNCTION

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

 
FUNCTION i901_delall()
   SELECT COUNT(*) INTO g_cnt FROM tc_voteb_file
    WHERE tc_voteb01 = g_votea.tc_votea01
   IF g_cnt = 0 THEN                   # 未輸入單身資料, 是否取消單頭資料
      CALL cl_getmsg('9044',g_lang) RETURNING g_msg
      ERROR g_msg CLIPPED
      DELETE FROM tc_votea_file WHERE tc_votea01 = g_votea.tc_votea01
   END IF
END FUNCTION
 
FUNCTION i901_b_askkey()
    DEFINE l_wc2           STRING
    CONSTRUCT l_wc2 ON tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate
            FROM s_voteb[1].tc_voteb02,s_voteb[1].tc_voteb03,s_voteb[1].tc_voteb04,
                 s_voteb[1].tc_votebacti,s_voteb[1].tc_votebuser,
                 s_voteb[1].tc_votebmodu,s_voteb[1].tc_votebdate
              #No:FUN-580031 --start--     HCN
              BEFORE CONSTRUCT
                 CALL cl_qbe_init()
              #No:FUN-580031 --end--       HCN
      #FUN-650191 add--begin
      { ON ACTION controlp
          CASE
            WHEN INFIELD(tc_voteb02) 
              CALL cl_init_qry_var()
              LET g_qryparam.state = 'c'
              LET g_qryparam.form ="q_voteb"
              CALL cl_create_qry() RETURNING g_qryparam.multiret
              DISPLAY g_qryparam.multiret TO tc_voteb02
              NEXT FIELD tc_voteb02
           END CASE
      }
      #FUN-650191 add--end
       ON IDLE g_idle_seconds
          CALL cl_on_idle()
          CONTINUE CONSTRUCT
 
      ON ACTION about         #MOD-4C0121
         CALL cl_about()      #MOD-4C0121
 
      ON ACTION help          #MOD-4C0121
         CALL cl_show_help()  #MOD-4C0121
 
      ON ACTION controlg      #MOD-4C0121
         CALL cl_cmdask()     #MOD-4C0121
 
 
                #No:FUN-580031 --start--     HCN
                 ON ACTION qbe_select
                   CALL cl_qbe_select()
                 ON ACTION qbe_save
                   CALL cl_qbe_save()
                #No:FUN-580031 --end--       HCN
    END CONSTRUCT
    IF INT_FLAG THEN
       LET INT_FLAG = 0
       RETURN
    END IF
    CALL i901_b_fill(l_wc2)
END FUNCTION
FUNCTION i901_b_fill(p_wc2)
   DEFINE p_wc2   STRING
   LET g_sql = "SELECT tc_voteb02,tc_voteb03,tc_voteb04,tc_votebacti,tc_votebuser,tc_votebmodu,tc_votebdate",
               " FROM tc_voteb_file",    #No:FUN-550019
               " WHERE tc_voteb01 ='",g_votea.tc_votea01,"' "   #單頭
   #No:9506
   IF NOT cl_null(p_wc2) THEN
      LET g_sql=g_sql CLIPPED," AND ",p_wc2 CLIPPED
   END IF
   LET g_sql=g_sql CLIPPED," ORDER BY 1 "
   #No:9506
   DISPLAY g_sql
   PREPARE i901_pb FROM g_sql
   DECLARE voteb_cs CURSOR FOR i901_pb
   CALL g_voteb.clear()
   LET g_cnt = 1
   FOREACH voteb_cs INTO g_voteb[g_cnt].*   #單身 ARRAY 填充
       IF SQLCA.sqlcode THEN
          CALL cl_err('foreach:',SQLCA.sqlcode,1)
          EXIT FOREACH
       END IF
   
       LET g_cnt = g_cnt + 1
       IF g_cnt > g_max_rec THEN
          CALL cl_err( '', 9035, 0 )
          EXIT FOREACH
       END IF
   END FOREACH
   CALL g_voteb.deleteElement(g_cnt)
 
   LET g_rec_b=g_cnt-1
   DISPLAY g_rec_b TO FORMONLY.cn2
   LET g_cnt = 0
END FUNCTION
FUNCTION i901_copy()
   DEFINE l_newno     LIKE tc_votea_file.tc_votea01,
  l_newdate   LIKE tc_votea_file.tc_voteadate,
          l_oldno     LIKE tc_votea_file.tc_votea01,
          l_old_votea01     LIKE tc_votea_file.tc_votea01,
          l_old_votea02     LIKE tc_votea_file.tc_votea02,
          l_old_votea03     LIKE tc_votea_file.tc_votea03
   DEFINE li_result   LIKE type_file.num5    #No.FUN-680136 SMALLINT
   DEFINE l_sql STRING
   IF s_shut(0) THEN RETURN END IF
   IF g_votea.tc_votea01 IS NULL THEN
      CALL cl_err('',-400,0)
      RETURN
   END IF
  
   LET l_newdate = g_today
   LET g_before_input_done = FALSE
   
   CALL i901_set_entry('a')
   CALL cl_set_head_visible("","YES")           #No.FUN-6B0032 
   INPUT l_newno FROM tc_votea01
        #No:MOD-540182 --start--
       BEFORE INPUT
          CALL cl_set_docno_format("tc_votea01")
        #No:MOD-540182 ---end---
       AFTER FIELD tc_votea01
            #No:MOD-540182 --start--
           CALL s_check_no("apm",l_newno,"","6","tc_votea_file","tc_votea01","") RETURNING li_result,l_newno
      
           DISPLAY l_newno TO tc_votea01
           
           IF (NOT li_result) THEN
              LET g_votea.tc_votea01 = g_votea_o.tc_votea01
              NEXT FIELD tc_votea01
           END IF
    {
         #DISPLAY g_smy.smydesc TO smydesc           #單據名稱
         #No:MOD-540182 ---end---
         AFTER FIELD tc_votea02
          
           IF cl_null(l_old_votea02) THEN
              NEXT FIELD tc_votea02
           END IF
          # DISPLAY l_old_votea02 TO tc_votea02
 AFTER FIELD tc_votea03
        
           IF cl_null(l_old_votea03) THEN
              NEXT FIELD tc_votea03
           END IF
}
BEGIN WORK #No:7857
           CALL s_auto_assign_no("cxx",l_newno,l_newdate,"","tc_votea_file","tc_votea01","","","") RETURNING li_result,l_newno
           IF (NOT li_result) THEN
              NEXT FIELD tc_votea01
           END IF
           DISPLAY l_newno TO tc_votea01
    LET l_sql =" SELECT CASE WHEN sno < 10                 THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'00'||to_char(sno) ",
           "                   WHEN sno > 10  AND sno < 100  THEN substr('",g_votea.tc_votea01 CLIPPED,"',1,12)|| '0'||to_char(sno) ",
           "               ELSE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||to_char(sno) ",
           "               END sno ",
           " FROM ( ",
           " SELECT TO_NUMBER(SUBSTR(NVL(MAX(tc_votea01),'XPUBX-'||to_char(sysdate,'yymmdd')||'000'),-3,3))+1 sno ",
   " FROM ds.tc_votea_file WHERE tc_votea01 LIKE substr('",g_votea.tc_votea01 CLIPPED,"',1,12)||'%' )"
     
    #MESSAGE l_sql
    PREPARE i901_snoc FROM l_sql                # RUNTIME 編譯
    IF STATUS THEN CALL cl_err('i901_snoc',STATUS,0) END IF
    #end No:FUN-550019
    DECLARE i901_cs_snoc                        # CURSOR
        CURSOR FOR i901_snoc
    FOREACH i901_cs_snoc INTO l_newno
        IF SQLCA.sqlcode THEN
            CALL cl_err('foreach:',SQLCA.sqlcode,1)
            EXIT FOREACH
            END IF
    END FOREACH
    MESSAGE l_newno
    DISPLAY l_newno TO tc_votea01
          # DISPLAY l_old_votea03 TO tc_votea03
       ON ACTION controlp
          CASE
             WHEN INFIELD(tc_votea01) #單據編號
                 LET g_t1=s_get_doc_no(l_newno)         #No:MOD-540182
                 CALL q_smycust(FALSE,FALSE,g_t1,'APM','6') RETURNING g_t1 #TQC-670008
                 LET l_newno=g_t1                       #No:MOD-540182
                DISPLAY BY NAME l_newno
                NEXT FIELD tc_votea01
              OTHERWISE EXIT CASE
           END CASE
 
      ON IDLE g_idle_seconds
         CALL cl_on_idle()
         CONTINUE INPUT
 
     ON ACTION about         #MOD-4C0121
        CALL cl_about()      #MOD-4C0121
 
     ON ACTION help          #MOD-4C0121
        CALL cl_show_help()  #MOD-4C0121
 
     ON ACTION controlg      #MOD-4C0121
        CALL cl_cmdask()     #MOD-4C0121
 
 
   END INPUT
   IF INT_FLAG THEN
      LET INT_FLAG = 0
      DISPLAY BY NAME g_votea.tc_votea01
       #No:MOD-540182 --start--
      ROLLBACK WORK
       #No:MOD-540182 ---end---
      RETURN
   END IF
   DROP TABLE y
   SELECT * FROM tc_votea_file         #單頭複製
       WHERE tc_votea01 = g_votea.tc_votea01
       INTO TEMP y
   UPDATE y
       SET tc_votea01   = l_newno,  #新的鍵值
 #  tc_votea02   = '',  #新的鍵值
   tc_votea03   = 'U',  #新的鍵值
           tc_voteauser = g_user,   #資料所有者
           tc_voteamodu = NULL,     #資料修改者
           tc_voteadate = g_today,  #資料建立日期
           tc_voteaacti = 'Y',       #有效資料
   tc_voteaconf = 'N'       #有效資料
   INSERT INTO tc_votea_file SELECT * FROM y
   #No:MOD-540182 --start--
   IF SQLCA.SQLCODE THEN
      CALL cl_err3("ins","tc_votea_file","","",SQLCA.SQLCODE,"","",1)  #No.FUN-660129
      ROLLBACK WORK
      RETURN
   ELSE
      COMMIT WORK
   END IF
   #No:MOD-540182 ---end---
   DROP TABLE x
   SELECT * FROM tc_voteb_file         #單身複製
       WHERE tc_voteb01 = g_votea.tc_votea01
       INTO TEMP x
   IF SQLCA.SQLCODE THEN
      CALL cl_err3("ins","x","","",SQLCA.SQLCODE,"","",1)  #No.FUN-660129
      RETURN
   END IF
   UPDATE x SET tc_voteb01 = l_newno
   INSERT INTO tc_voteb_file SELECT * FROM x
   IF SQLCA.SQLCODE THEN
      ROLLBACK WORK #No:7857
      CALL cl_err3("ins","tc_voteb_file","","",SQLCA.SQLCODE,"","",1)  #No.FUN-660129
      RETURN
   ELSE
       COMMIT WORK #No:7857
   END IF
   LET g_cnt=SQLCA.SQLERRD[3]
   MESSAGE '(',g_cnt USING '##&',') ROW of (',l_newno,') O.K'
 
   LET l_oldno = g_votea.tc_votea01
   SELECT ROWID,tc_votea_file.* INTO g_votea_rowid,g_votea.* FROM tc_votea_file WHERE tc_votea01 = l_newno
   CALL i901_u()
   CALL i901_b()
   SELECT ROWID,tc_votea_file.* INTO g_votea_rowid,g_votea.* FROM tc_votea_file WHERE tc_votea01 = l_oldno
   CALL i901_show()
END FUNCTION

jeffreyhu 發表在 痞客邦 留言(0) 人氣()

Blog Stats
⚠️

成人內容提醒

本部落格內容僅限年滿十八歲者瀏覽。
若您未滿十八歲,請立即離開。

已滿十八歲者,亦請勿將內容提供給未成年人士。