记录一下,打基础

1.F1帮助可以通过ABAP事件at selection-screen来控制,自定义程序中,可以通过系统标准函数:HELP_OBJECT_SHOW(或者是HELP_OBJECT_SHOW_FOR_FIELD)来实现。

例如:

TABLES:syst.
SELECT-OPTIONS:s_date FOR syst-datum.

AT SELECTION-SCREEN ON HELP-REQUEST FOR s_Date-low.
  PERFORM show_f1.

  form show_f1.
    DATA:t_link LIKE STANDARD TABLE OF tline WITH HEADER LINE.

    CALL FUNCTION 'HELP_OBJECT_SHOW'
      EXPORTING
        DOKCLASS                            'DE'"帮助文本类型,DE代表数据元素,DO代表数据域类型
*       DOKLANGU                            = SY-LANGU
        DOKNAME                             'SYDATUM'
      TABLES
        LINKS                               t_link
*     EXCEPTIONS
*       OBJECT_NOT_FOUND                    = 1
*       SAPSCRIPT_ERROR                     = 2
*       OTHERS                              = 3
              .
    IF SY-SUBRC <> 0.
* Implement suitable error handling here
    ENDIF.

ENDFORM.

 

2.F4帮助。

例如:

TABLES:syst.
SELECT-OPTIONS:s_date FOR syst-datum.

AT SELECTION-SCREEN ON HELP-REQUEST FOR s_Date-low.
  PERFORM show_f4.

  form show_f4.

 CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST'
    EXPORTING
      TABNAME                   'SYST'
      FIELDNAME                 'DATUM'
*     SEARCHHELP                = ' '
*     SHLPPARAM                 = ' '
     DYNPPROG                  SY-REPID
     DYNPNR                    SY-DYNNR
     DYNPROFIELD               'S_DATE'

            .
  IF SY-SUBRC <> 0.
* Implement suitable error handling here
  ENDIF.
ENDFORM.

 

3.子屏幕的定义:语法如下selection-screen begin of screEN XX.

                                              selection-screen end of screen xx.

 

例子如下:SELECTION-SCREEN BEGIN OF SCREEN 123 as WINDOW TITLE t00.
  PARAMETERS:matnr LIKE mara-matnr.
  PARAMETERS:type AS CHECKBOX.
  SELECTION-SCREEN END OF SCREEN 123.

  call screen 123 STARTING AT 10 10
                     ENDING AT 80 10.

当从一个主屏幕中调用其程序中的另一个子窗体时,必须使用call selection-screen.

例如:PARAMETERS:type AS CHECKBOX.
call SELECTION-SCREEN  123.
SELECTION-SCREEN BEGIN OF SCREEN 123 as WINDOW TITLE t00.
PARAMETERS:matnr LIKE mara-matnr.
SELECTION-SCREEN END OF SCREEN 123.

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个基础的线性表代码,使用C语言实现: ```c #include <stdio.h> #include <stdlib.h> #define MAX_SIZE 100 // 线性表的最大长度 // 线性表结构体 typedef struct { int data[MAX_SIZE]; // 存储线性表元素的数组 int length; // 线性表长度 } List; // 初始化线性表(置空) void initList(List *list) { list->length = 0; } // 获取线性表元素 int getElem(List list, int index, int *elem) { if (index < 1 || index > list.length) { printf("Error: Index out of range.\n"); return 0; } *elem = list.data[index - 1]; return 1; } // 插入元素 int insertElem(List *list, int index, int elem) { if (list->length == MAX_SIZE) { printf("Error: List is full.\n"); return 0; } if (index < 1 || index > list->length + 1) { printf("Error: Index out of range.\n"); return 0; } for (int i = list->length - 1; i >= index - 1; i--) { list->data[i + 1] = list->data[i]; } list->data[index - 1] = elem; list->length++; return 1; } // 删除元素 int deleteElem(List *list, int index, int *elem) { if (list->length == 0) { printf("Error: List is empty.\n"); return 0; } if (index < 1 || index > list->length) { printf("Error: Index out of range.\n"); return 0; } *elem = list->data[index - 1]; for (int i = index; i < list->length; i++) { list->data[i - 1] = list->data[i]; } list->length--; return 1; } // 遍历线性表 void traverseList(List list) { for (int i = 0; i < list.length; i++) { printf("%d ", list.data[i]); } printf("\n"); } int main() { List list; initList(&list); insertElem(&list, 1, 1); // 在第一个位置插入元素1 insertElem(&list, 2, 2); // 在第二个位置插入元素2 insertElem(&list, 3, 3); // 在第三个位置插入元素3 int elem = 0; getElem(list, 2, &elem); // 获取第二个位置的元素 printf("The second element is: %d\n", elem); deleteElem(&list, 2, &elem); // 删除第二个位置的元素 traverseList(list); // 遍历线性表,输出剩余元素 return 0; } ``` 该代码实现了线性表的基本操作,包括初始化、获取元素、插入元素、删除元素和遍历线性表等。其中,`List`结构体包含了一个`data`数组和一个`length`变量,分别用于存储线性表元素和记录线性表长度。 该代码中使用了宏定义`MAX_SIZE`,表示线性表的最大长度。在具体实现中,如果线性表已满,插入元素操作会失败,删除元素操作会出错;如果线性表为空,删除元素操作也会出错。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值