技术小贴士

主要分为DB、OS和ERP三大块

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  12 随笔 :: 0 文章 :: 0 评论 :: 0 Trackbacks

2005年11月19日 #

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 行者 阅读(282) | 评论 (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 行者 阅读(212) | 评论 (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 行者 阅读(323) | 评论 (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 行者 阅读(236) | 评论 (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 行者 阅读(215) | 评论 (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 行者 阅读(554) | 评论 (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 行者 阅读(234) | 评论 (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 行者 阅读(240) | 评论 (0)编辑 收藏

1. Write的格式:
    -------------------------------------
    (1) 不指定位置输出:Write 资料项.

    (2) 指定位置输出:  Write AT [/] [<pos>] [(<len>)]  资料项.

    (3) 指定显示格式:  WRITE  数据项  <显示格式参数>.

    (4) 输出图标:      WRITE  <symbol-name>  AS  SYMBOL.
                                    WRITE  <icon-name>  AS  ICON.

    (5) 输出、垂直线、空行:    
          ① 水平线:write [at [/][<pos>][(<len>)]] sy-uline.
          ② 垂直线:write [at [/][<pos>]] sy-vline.
          ③ 空行:    WRITE  SKIP  [<n>].

    (6) 输出复选框:    Write 标签,变量 As CheckBox.

2. 跳至指定列坐标:Skip to line [<n>].
 
*  资料项指变量或常量

*  预定义数据类型的输出格式
    ----------------------------------------------
    数据类型           输出长度               定位 
          C                   字段长度           左对齐 
          D                        8                    左对齐 
          F                      22                    右对齐 
          I                       11                    右对齐 
         N                   字段长度           左对齐 
         P           2*字段长度(+1)  右对齐 
         T                       6                      左对齐 
         X                 2*字段长度         左对齐 
  ----------------------------------------------
  在屏幕上,输出通常是左对齐的; 但数据类型F、I和P是右对齐的,左边用空格填充。
 

posted @ 2005-11-19 23:37 行者 阅读(240) | 评论 (0)编辑 收藏

* 预定义数据类型
--------------------------------------------------------------------------------------------------------------
Type       Length             Range                          Initial Value                Description
C           1              1-65535Byte                          Space                  字符串数据, ’Program’
D           8                     8Byte                           ‘00000000’             日期数据, 格式为YYYYMMDD
F           8                      8Byte                                   0                      浮点数         
I            4              -2^312^31-1                           0                      整数
N          1              1-65535Byte                        ‘00…0’                   数值所组成的字符串  
P           8              1-16Byte                                      0                      Packed , 用在小数点数
T           6                     6Byte                             ‘000000’                 时间数据, 格式为HHMMSS
X           1                1-65535Byte                             X’00’                    16进位数


1、定义数据结构
   ----------------------------------------------------------------
   (1) 变量: Data 变量名 Type 变量类型,如:Data S1 Type I.
      
   (2) 常量:Constants 常量名 Type 变量类型,如:Constants PI Type P 3.1415926.
  
   (3) 静态变量:STATICS <c> [<length>] <type> [<value>] [<decimals>]
  
   (4) 自定义变量类型:
              Types: Begin of 自定义变量类型,
                           变量名1 Type 变量类型1,
                           变量名2 Type 变量类型2,
                     End of 自定义变量类型.
              Data 自定义变量 Type 自定义变量类型.

  
(5) 字段变量:
              Data: Begin of Address,
                       Name(10) Type C,
                       Number Type P,
              End of Address. 

  
(6) 内表:
              Table: 表名.
                 例:
                      TABLES: SPFL.
                      SELECT  *  FROM  SPFL.
                          WRITE: SPFL-MANDT, SPFL-CARRID,SPFL-CONNECTION.
                      ENDSELECT.

2、系统定义数据
   -----------------------------------------------------------------
   SPACE       空白字符串
   SY-SUBRC    系统执行传回值, 0 表示成功
   SY-UNAME    logon帐号
   SY-DATUM    系统日期
   SY-UZEIT    系统时间
   SY-TCODE    目
posted @ 2005-11-19 23:18 行者 阅读(278) | 评论 (0)编辑 收藏

ABAP/4(Advanced Business Application Programming)SAP/R3目前唯一的系统发展工具,属于4GL,程序模块可分为三部分:
(1)块内程序:与一般语言语法近似, IF,WHILE, 但并没有GOTO叙述
(2)报表:呼叫一个独立的事件(Depending Event), 读取database 产生数据列表,是一个Stand-along 程序
(3)事务:屏幕参数输入的对话框, 专门处理database 读取或异动的tranaction proces,不是一个Stand-Along Progarm
posted @ 2005-11-19 23:07 行者 阅读(160) | 评论 (0)编辑 收藏