`
Jack Wu
  • 浏览: 901671 次
  • 来自: ...
社区版块
存档分类
最新评论

如何在sap的screen中使用ListBox

阅读更多

1、拖入一个编辑控件到屏幕,设置“下拉”属性为“ListBox”

2、设置Function-CODE,

3、listbox的列表的取值有三种方法:

A)默认取Dictionary;
B)使用“VRM_SET_VALUES"函数在PBO中设置 ,代码见后面代码
C)使用Process On Value-request事件和“F4IF_INT_Table_Value_request”函数设置输入帮助
其中C优于B,B优于A

代码示例:(参见SAP的样例程序,rsdemo_dropdown_list)

*屏幕事件
process before output.
  module status_0100.
   module fill_carrid.
*
process after input.
 module event_from_listbox.
 module exit at exit-command.

process on value-request.
field sflight-carrid module set_data_carrid.

 *程序
report rsdemo_dropdown_listbox .

data  init.
tables scarr.

tables spfli.
tables sflight.
tables sbook.
data  save_ok like sy-ucomm.
data  ok_code like sy-ucomm.

call screen 100.

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module status_0100 output.
  if init is initial.
    set pf-status 'GRUND'.
    set titlebar '100'.

* preset of listboxes
    spfli-carrid = 'LH'.
    sflight-carrid = 'LH'.
    sbook-carrid = 'LH'.
  endif.

endmodule.                             " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  SET_DATA_CARRID  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module set_data_carrid input.
  types: begin of type_carrid,
         carrid like spfli-carrid,
         carrname like scarr-carrname,
         end of type_carrid.

  data itab_carrid type standard table of type_carrid with header line.

  select carrid carrname
                from scarr
                into corresponding fields of table itab_carrid.

  call function 'F4IF_INT_TABLE_VALUE_REQUEST'
       exporting
            retfield        = 'CARRID'
            value_org       = 'S'
       tables
            value_tab       = itab_carrid
       exceptions
            parameter_error = 1
            no_values_found = 2
            others          = 3.
  if sy-subrc <> 0.
    message id sy-msgid type sy-msgty number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  endif.


endmodule.                             " SET_DATA_CARRID  INPUT
*&---------------------------------------------------------------------*
*&      Module  FILL_CARRID  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module fill_carrid output.
* Do not use this process (but it works)

  type-pools vrm.
  data values type vrm_values with header line.

  if init is initial.
    select * from scarr.
      values-text = scarr-carrname.
      values-key = scarr-carrid.
      append values.
    endselect.
    call function 'VRM_SET_VALUES'
         exporting
              id              = 'SBOOK-CARRID'
              values          = values[]
         exceptions
              id_illegal_name = 1
              others          = 2.
    if sy-subrc <> 0.
      message id sy-msgid type sy-msgty number sy-msgno
              with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    endif.

  endif.
  scarr-carrid = 'LH'.
  init = 'X'.
endmodule.                             " FILL_CARRID  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  EVENT_FROM_LISTBOX  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module event_from_listbox input.
  save_ok = ok_code.
  clear ok_code.
  case save_ok.
    when 'LISTBOX_2'.
      message i300(eu) with save_ok.
    when 'LISTBOX_3'.
      message i300(eu) with save_ok.
  endcase.
endmodule.                             " EVENT_FROM_LISTBOX  INPUT
*&---------------------------------------------------------------------*
*&      Module  EXIT  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module exit input.
  leave program.
endmodule.                             " EXIT  INPUT

分享到:
评论

相关推荐

    在C#中使用ListBox控件实例源码

    3. 在代码中使用Items.Add()方法填充列表项。 4. 注册Click或SelectedIndexChanged事件,并在事件处理程序中编写业务逻辑。 例如,以下是一个简单的示例,演示了如何在代码中创建并填充ListBox控件: ```csharp ...

    VB中使用Listbox

    本教程将详细讲解如何在VB中使用Listbox,特别是如何实现新增项目时使其自动置顶的功能。 首先,我们需要了解Listbox的基本属性和方法。Listbox有多个属性,如`Items`用于存储列表项,`SelectedIndex`表示选中的项...

    ListBox中显示图片

    在WPF(Windows Presentation Foundation)应用开发中,`ListBox`是一个常用的数据展示控件,它允许用户通过列表形式查看和选择数据。在这个场景中,我们要讨论如何在`ListBox`中显示图片,这是一个常见的需求,特别...

    VB中的ListBox多列显示实例

    在VB(Visual Basic)编程环境中,ListBox控件通常用于显示单列数据,但有时我们可能需要在ListBox中显示多列信息,例如姓名、年龄、地址等。为了实现这个功能,VB提供了一种特殊的方式来定制ListBox,使其能以表格...

    C# ListBox 的使用

    - 创建ListBox:在Windows Forms中,可以通过Visual Studio设计视图添加ListBox控件,或者在代码中使用`new ListBox()`创建实例。 - 添加项:使用`ListBox.Items.Add()`方法向列表框中添加单个项,例如`listBox1....

    怎样判断一个字符串在一个LISTBOX中是否存在

    本文详细介绍了如何在Delphi中判断一个字符串是否存在于ListBox中,包括使用内置方法和调用Windows API两种方式。此外,还讨论了字符串存在时的一些常见操作。通过这些方法,可以有效地实现对ListBox中数据的管理和...

    使用ListBox控件实现简单的餐馆点菜功能.rar

    在Windows Forms或WPF应用程序开发中,ListBox控件是一个常用且功能强大的组件,它允许用户从一系列选项中进行选择。本教程将详细讲解如何利用ListBox控件来实现一个简单的餐馆点菜功能。在这个实例中,我们将模拟一...

    WPF listBox 漂亮的listBOX

    例如,你可以使用`ObservableCollection&lt;T&gt;`或者`List&lt;T&gt;`作为数据源,然后在XAML中设置: ```xml &lt;ListBox ItemsSource="{Binding YourDataSource}"/&gt; ``` 接下来,美化`ListBox`的关键在于定义`DataTemplate`,...

    MFC中ListBox和ListCtrl的使用

    在Microsoft Foundation Classes (MFC)库中,ListBox和ListCtrl是两种常见的控件,用于在用户界面中显示和管理列表数据。ListBox通常用于简单的单选或多选列表,而ListCtrl则提供了更丰富的功能,如多列显示、图标...

    浅谈在Windows Phone 7 中ListBox的使用

    在Windows Phone 7开发中,ListBox是一个非常重要的控件,用于展示一系列可滚动的项目列表。这个控件继承自ItemsControl,允许开发者通过Items或ItemsSource属性来填充内容。本文将深入探讨ListBox的使用,包括数据...

    用listbox 显示数据库中的数据

    在实际应用中,为了提高用户体验,还可以考虑使用数据绑定技术,如`DataSource`和`DisplayMember`属性,直接将数据库表绑定到`ListBox`,这样在数据改变时,`ListBox`会自动更新。 ```csharp listBox1.DataSource =...

    PB LISTBOX使用

    本文将深入探讨如何在PB环境中利用LISTBOX进行数据操作,特别是在标题提及的"PB LISTBOX使用"场景下,即如何实现从左侧多列数据的列表框中选择数据并将其添加到右侧列表框。 首先,我们需要理解PB中的LISTBOX控件。...

    listbox拖拽功能实现

    在这个示例中,我们将实现两个ListBox控件之间的拖拽操作,用户可以将一个ListBox控件中的项目拖到另一个ListBox控件中,反之亦然。在拖拽过程中,鼠标会呈现手势状,以增强拖动操作的形象化。 要实现ListBox控件的...

    C#winform中ListBox拖拽排序

    本教程将详细讲解如何在ListBox控件中实现拖拽排序的功能。ListBox是.NET Framework提供的一种常用控件,用于显示一系列可选择的项目。在Windows应用程序中,允许用户通过鼠标或键盘操作来选择和排序这些项。 首先...

    delphi Listbox多列显示

    在Delphi编程环境中,开发人员经常使用各种控件来构建用户界面。Listbox是一个常见的控件,它用于显示单列的列表数据。然而,在某些情况下,我们可能需要在一个控件中展示多列数据,比如表格形式的数据。标题...

    ListBox自动滚动到底部

    首先,确保`Scroll`事件被正确地绑定,然后在事件处理函数中设置`SelectedIndex`为最大值,即`ListBox.Items.Count - 1`。这将使ListBox选中最底部的项,从而将滚动条移动到底部。示例代码如下: ```csharp private...

    c# Listbox自动滚动

    在C#编程中,Listbox控件是一种常用的数据展示组件,它允许程序员向用户显示一系列条目或选项。当我们处理大量数据或者实时更新内容时,可能会遇到需要实现Listbox自动滚动的功能。这个功能通常用于确保最新的添加项...

    使用数组列表ArrayList填充ListBox

    在.NET框架中,ArrayList是System.Collections命名空间下的一种动态数组,它可以存储任意类型的对象,而ListBox控件则是Windows Forms应用程序中常见的用户界面元素,用于显示一个可选项目的列表。本篇将详细介绍...

    实现在listbox中加入图标

    在VC6.0环境下,实现在ListBox控件中添加图标是一项常见的GUI编程任务。ListBox通常用于展示文本列表,但通过自定义绘制(Owner Draw)功能,我们可以为每个列表项添加相应的图标,使得用户界面更加直观和美观。以下...

    ListBox-example.rar_ListBox_c#中listbox

    总结来说,这个例子展示了如何在C#中使用ListBox控件,并实现单选功能。无论是在WPF还是WinForms环境下,理解数据绑定、选择模式以及事件处理是关键。通过这种方式,你可以创建一个用户友好的界面,让用户能够方便地...

Global site tag (gtag.js) - Google Analytics