簡體   English   中英

按列對 cl_gui_alv_grid 進行排序?

[英]Sorting in an cl_gui_alv_grid by column?

我正在使用cl_gui_alv_grid生成一個包含五列的內部表,我似乎無法弄清楚如何在加載表后按第 1 列進行排序。 我設法用cl_salv_table做到了,但沒有用網格。 有什么想法嗎? 我想它是通過CALL METHOD go_alv->set_sort_criteria以某種方式完成的,但是在觸發表視圖時我遇到了崩潰。

DATA: lt_sort TYPE lvc_t_sort,
      ls_sort TYPE lvc_s_sort.
FORM sort_data.
   REFRESH: lt_sort.
   CLEAR: ls_sort.
   ls_sort-spos = '1'.
   ls_sort-fieldname = 'Column1'.
   ls_sort-up        = abap_true.
   APPEND ls_sort TO lt_sort.
ENDFORM.
FORM first_display.
   PERFORM sort_data.
   CALL METHOD go_alv->set_table_for_first_display
   EXPORTING
      i_structure_name = 'TABLE_STRUCTURE'
      is_layout        = gs_layout
   CHANGING
      it_outtab        = gt_salv_table
ENDFORM.
CALL METHOD go_alv->set_sort_criteria
    EXPORTING
      it_sort = lt_sort
*    EXCEPTIONS
*     no_fieldcatalog_available = 1
*     others  = 2.

您是否在set_table_for_first_display之前調用set_sort_criteria 看起來還沒有 fieldcatalouge,這就是它不起作用的原因。

我認為更直接的是: set_table_for_first_display方法有一個可變參數 it_sort,只需使用該參數將排序表導入 class,無需調用set_sort_criteria

   CALL METHOD go_alv->set_table_for_first_display
   EXPORTING
      i_structure_name = 'TABLE_STRUCTURE'
      is_layout        = gs_layout
   CHANGING
      it_outtab        = gt_salv_table
      it_sort          = lt_sort
   EXCEPTIONS
      ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM