技術小貼士

          主要分為DB、OS和ERP三大塊

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            12 隨筆 :: 0 文章 :: 0 評論 :: 0 Trackbacks

          2005年11月20日 #

          1、 PARAMETER:輸入一個變量或字段內容
             -------------------------------------------------------------
             語法:PARAMETERS  <p>  [DEFAULT <f>]  [LOWER CASE]

                                                                [OBLIGATORY]  [AS CHECKBOX]

                                                                [RADIOBUTTON GROUP <rad>]


          2、SELECTION-OPTIONS: 使用條件篩選畫面來輸入數據
             -------------------------------------------------------------
             語法:SELECTION-OPTIONS  <check-option>  FOR  <table-field>
                                                                      [DEFAULT  <begin>  TO  <end>]
                                                                      [NO-EXTENSION]
                                                                      [LOWER CASE]
                                                                      [OBLIGATORY]
                                                                      [Select 指令]

          3、SELECTION-SCREEN 輸出空白列、底線、備注說明、多個數據據、黑線等
             -------------------------------------------------------------------
             語法:SELECTION-SCREEN  SKIP  [<n>]
                                                                    [ULINE  / <pos>(length)]
                                       [COMMENT  / <pos>(length)  <name>]
                                                                    [BEGIN  OF  LINE.
                                                                          
          ……     
                                                                    SELECTION-SCREEN  END  OF  LINE.]
                                       [BEGIN  OF  BLOCK  <block> [WITH  FRAME  [TITLE  <title>]. 
                                              …….     
                                                                    SELECTION-SCREEN  END  OF  BLOCK  <block>.]


          posted @ 2005-11-22 00:09 行者 閱讀(290) | 評論 (0)編輯 收藏

          1、宏模塊
                ----------------------------------------------------------------------------------------
                (1) 宏定義:     
                      DEFINE  <macro>.
                           <宏敘述>.
                      END-OF-DEFINITION.

              (2) 宏使用:
                    <macro> [<p1> <p2>….]
                   *  <p1> 為傳入宏的參數值, 在參數間至少要給予一個空白


          2、包含子程序  
             ------------------------------------------------------------------
             語法:INCLUDE  <include program file>
                作用:用于共享數據項,比如全局變量


          3、子程序
             ------------------------------------------------------------------
             1、聲明:
                FORM  <subr>  [<pass>].
                               
          <subroutine statement block>
                      
          ENDFORM.

             2、調用:
                (1) 內部調用:PERFORM <subr> [<pass>] 

                      (2)   外部調用:
                    ① 調用另一程序
                       PERFORM  <subr>(<prog>) [<pass>] [IF FOUND] 
           
                    ② 調用另一專存放子程序的程序文件
                       PERFORM  (<fsubr>)  [IN  PROGRAM (<fprog>) [<pass>] [IF FOUND]

             * 參數傳遞
               ------------------------------------------------------------------
               (1) 地址傳遞:
                   FORM  <subr>  [USING <f1> <f2>…] [CHANGING <f1>…]
                            或
                            PERFORM  <subr>  [USING <f1> <f2>…] [CHANGING <f1>…]

               (2) 值傳遞:
                   FORM  <subr>  USING  VALUE(<f1>…)
                            或
                            PERFORM  <subr>  USING  <f1> 

                     (3)  傳入時值傳遞,傳出時改變返回參數值 
                   FORM  ….. CHANGING  VALUE(<f1>
                            或
                            PERFORM  …. CHANGING …. <f1>

             * Check控制:CHECK <Condition>,只有條件成立才繼續往下子程序敘述


          4、函數
             ------------------------------------------------------------------
             (1) 查看系統函數

             (2) 函數呼叫:
                 CALL  FUNCTION  <module>
                         IMPORTING   F1=a1….
                         EXPORTING   F1=a1….
                         CHANGING   F1=a1…
                         TABLES      F1=a1…
                         EXCEPTIONS  F1=a1…     
           

              


                  

          posted @ 2005-11-21 23:50 行者 閱讀(219) | 評論 (0)編輯 收藏

          一、SQL分類
                  --------------------------------------------------------------------------------------
                  1、按操作分類:DDL和DML
           
                  2、按是否有緩存分類:
                        (1) OPEN SQL :數據庫與命令編譯器存在緩存,如Select * From <Itab>....
                        (2) Native SQL:直接處理

          二、創建字典表
                  --------------------------------------------------------------------------------------
                 語法:TABLES  table

          三、處理字典表
                  --------------------------------------------------------------------------------------
                 1、查詢       
                ------------------------------
                語法:SELECT <result> FROM <source> [INTO <target>] [WHERE <condition>]
                         [GROUP BY <fields>] [ORDER BY <sort_order>].

                 2、插入
                      ------------------------------
                (1) Work Area插入:
                    語法:INSERT  INTO  <database>  VALUES  <wa>

                      (2)  表間插入
                            語法:INSERT  <database>  FROM  TABLE  <itab>  [ACCEPTING DUPLICATE KEY]

                 3、更改
                       ------------------------------
                (1) 更改單行
                    語法:UPDATE <dbtab> [CLIENT SPECIFIED] FROM <wa>.
                          或
                          UPDATE <dbtab> [CLIENT SPECIFIED].

                (2) 更改多行
                    語法:UPDATE  <database>  SET  < f1>=<values>…  WHERE  <condition>.

                (3) 表間更改
                    語法:UPDATE <dbtab> [CLIENT SPECIFIED] FROM TABLE <itab>.

                (4) Modify更改(有則更改,無則插入)
                    語法:MODIFY  <database>  FROM  <wa>.

                4、刪除
                      ------------------------------
                      (1) 使用關鍵字刪除
                           語法:DELETE  <database>  FROM  <wa>

                      (2) 使用條件刪除
                           語法:DELETE  FROM  <database>  WHERE  <condition>

                5、使用游標
                      ------------------------------
                      (1) 打開:
                           語法:OPEN  CURSOR  <c>  FOR  SELECT …  WHERE <condition>

                     (2) 使用:
                           語法:FETCH  NEXT  CURSOR  <c>  INTO  <wa>

                     (3) 關閉:
                          語法:CLOSE  CURSOR  <c>


          四、提交與回退
                  --------------------------------------------------------------------------------------
                  (1) 提交:COMMIT WORK

                  (2) 回退:ROLLBACK WORK

                  
          posted @ 2005-11-21 22:48 行者 閱讀(332) | 評論 (0)編輯 收藏

          一.  什么是內表
                 ----------------------------------------------------------------------------------------------------------
                 (1) 內表:僅在程序運行時存在的表格
             
                 (2) 作用:
                       ① 系統可實時增加內表的大小
                       ② 可根據程序需要重新組織數據庫表格的內容  

                 (3) 內表結構:數據類型和數據對象,相當于類與對象的關系

                 (4) 標記表格行:內表索引/關鍵字

                 (5) 訪問內表:按行訪問

          二、創建內表
                  ----------------------------------------------------------------------------------------------------------
                  (1) Type創建:先聲明,后使用
                       語法:TYPES <t> <type> OCCURS <n>.

                  (2) Data創建:使用Work Area
                       DATA <f> <type> OCCURS <n> [WITH HEADER LINE].

                  (3) Data創建:不使用Work Area(直接宣告)
                       語法:DATA: BEGIN OF <f> OCCURS <n>,
                                                            <component declaration>,
                                                            ..............
                                               END OF <f>.   

          三、使用內表
                  ----------------------------------------------------------------------------------------------------------
                  1、增加
                        (1) 增加行(可能有重復行)
                             語法:APPEND [<wa> TO|INITIAL LINE TO] <itab>.

                        (2) 根據標準關鍵字附加行(沒有重復行)
                             語法:COLLECT [<wa> INTO] <itab>.

                        (3) 表外增加
                             語法:APPEND LINES OF <itab1> [FROM <n1>] [TO <n2>] TO <itab2>.

                  2、插入
                        (1) 在指定行前插入
                             語法:INSERT [<wa> INTO|INITIAL LINE INTO] <itab> [INDEX <idx>].

                        (2) 外表插入
                             語法:INSERT LINES OF <itab1> [FROM <n1>] [TO <n2>]
                                                  INTO <itab2> [INDEX <idx>].    

                  3、修改
                        語法:MODIFY <itab> [FROM <wa>] [INDEX <idx>].    

                  4、刪除
                        (1) 在循環中刪除行
                             語法:Loop At <Itab> (Into type)
                                                 DELETE <itab>.
                                         End Loop.

                        (2) 用索引刪除行
                              語法:DELETE <itab> INDEX <idx>.

                  5、查詢
                        (1) 循環讀取
                             語法:LOOP AT <itab> [INTO <wa>] [FROM <n1>] [TO <n2>] [WHERE <condition>].
                                                    .....
                                         ENDLOOP. 

                        (2) 用索引讀取單行
                             語法:READ TABLE <itab> [INTO <wa>] INDEX <idx>.

                        (3) 讀取有關鍵字的單行
                             語法:READ TABLE <itab> [INTO <wa>] WITH KEY <key> [BINARY SEARCH].

                   6、排序 
                         語法:SORT <itab> [<order>] [AS TEXT]
                                                [BY <F1> [<order>] [AS TEXT] ... <fn> [<order>] [AS TEXT]]. 

                   7、匯總
                         (1) 非數值匯總
                              語法:COLLECT [<wa> INTO] <itab>.

                         (2) 數值匯總
                              語法:Loop At <Itab> (Into type)
                                                 Sum.
                                         End Loop.

                  8、清除
                        (1) REFRESH <itab>.
                             解釋:初始化沒有表頭的內表,清除所有元素
                      
                        (2) CLEAR <itab>.
                             解釋:初始化有表頭的內表,清除所有元素

                        (3) FREE <itab>.
                             解釋:重置內表并直接釋放其內存,須在REFRESH或CLEAR后使用


                  

          posted @ 2005-11-21 22:11 行者 閱讀(245) | 評論 (0)編輯 收藏

          1、 順序
                
          2、選擇:IF和CASE
                --------------------
                (1) IF語法:
                          IF  <condition1>.
                                  <statement block>
                          ELSEIF  <condition2>.
                                 <statement block>
                          ELSEIF  <condition3>.
                                 <statement block>
                          .....
                          ELSE.
                                <statement block>
                          ENDIF.

                (2) CASE語法:
                          CASE <f>.
                                    WHEN <F1>.
                                                <statement block>
                                    WHEN <F2>.
                                                <statement block>
                                    WHEN <F3>.
                                                <statement block>
                                    WHEN ...
                                    ......
                                    WHEN OTHERS.
                                               <statement block>
                          ENDCASE.

          3、 循環:DO和WHILE
                 ------------------------------------
                 (1) 計次循環:
                              DO [<n>TIMES] [VARYING <f> FROM <F1> NEXT <F2>].
                                    <statement block>
                              ENDDO.

                 (2) 無限循環:
                             DO .
                                  
          <Statement Block>
                            
          ENDDO. 

                  (3) 條件循環:
                             WHILE <condition> [VARY <f> FROM <F1> NEXT <F2>].
                                  <statement block>
                             ENDWHILE.

                   *  終止循環:
                       ------------------------------------
                       ① 無條件終止循環:CONTINUE
                       ② 有條件終止循環:CHECK
                       ③ 完全終止循環:  EXIT

          posted @ 2005-11-20 22:27 行者 閱讀(222) | 評論 (0)編輯 收藏

          1、數值函數
                -----------------------------------------------------------------------------------
                abs、sign、ceil、floor、trunc、frac、cos、sin、tan、exp、log、log10、sqrt

          2、日期與時間運算
                 --------------------------------------------------------------------------
                 (1) 日期數據:
                              DATA: Mdata  TYPE  D.
                              Mdate  =  SY-DATUM.  “ 如傳回 19971015
                              Mdate+6(2)  =  ‘01’   “ Mdate 變成 19971001
                              Mdate  =  Mdate  -  1  “ Mdate 變成 19970931

                 (2) 時間數據:
                              DATA: HOURS  TYPE  I,
                                          MINUTES  TYPE  I,
                                          T2  TYPE  T  VALUE ‘200000’,
                                          T1  TYPE  T  VALUE  ‘183000’.
                             HOURS = (T2 - T1) /  3600.  “計算有幾小時
                             MINUTES = (T2 – T1) / 60.  “計算幾分鐘

          3、運算符號:
                --------------------------------------------------------------------
                (1) 算術符:+ - * / div mod

                (2) 比較符:> >= < <= = <> ><
                                     EQ NE GT LT GE LE
                                     And Or Not

          posted @ 2005-11-20 21:55 行者 閱讀(558) | 評論 (0)編輯 收藏

          (1) 移位:Shift 變量名 [by <n> places] [modes]

          (2) 替換:Replace <Str1> with <Str2> into <c>     

          (3) 大小寫:Translate <c> to Upper/Lower Case

          (4) 尋找:  Search <c> for <Str>

          (5) 長度:  Strlen(str) 

          (6) 取部分:<f>[+<o>][<l>]
                * 示例:
                   DATA  T(10)  VALUE  ‘ABCDEFGHIJ’.
                   WRITE  /  T+2(4).  “得到 CDEF

          posted @ 2005-11-20 21:48 行者 閱讀(240) | 評論 (0)編輯 收藏

          1、賦值
                ---------------------------------------------------------------------------------------
                (1) 全部賦值:Move <F1> to <F2>.
            
                (2) 部分賦值:Move <F1>[+<O1>] to <F2>[+<O2>].

                (3) 組件(字段)復制:Move Corresponding <Str1> to <Str2>. 

                (4) 傳值:WRITE  (<f>)  TO  <g>     

          2、清值
                ---------------------------------------------------------------------------------------
                CLEAR  <f>

          posted @ 2005-11-20 21:43 行者 閱讀(247) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 武宣县| 邓州市| 岳阳县| 临沭县| 渝北区| 虞城县| 长兴县| 澄迈县| 汨罗市| 甘南县| 巴中市| 凤城市| 汕尾市| 杨浦区| 石狮市| 琼中| 靖宇县| 文成县| 安多县| 新竹市| 崇信县| 望都县| 乌鲁木齐县| 芒康县| 崇义县| 靖安县| 城市| 昭平县| 南丰县| 宁蒗| 永顺县| 来凤县| 大港区| 清镇市| 上饶县| 合川市| 泽库县| 芜湖县| 建始县| 紫金县| 民丰县|