ABAP:双击跳转财务凭证明细界面

实现双击财务凭证号跳转至FB03概览界面,用户双击行项目再进入明细行。通过下面的语法可以实现。

SET PARAMETER ID ‘BLN’ FIELD ‘0100000013’. " 财务凭证号
SET PARAMETER ID ‘BUK’ FIELD ‘8010’. " 公司代码
SET PARAMETER ID ‘GJR’ FIELD ‘2021’. " 年度
CALL TRANSACTION ‘FB03’ AND SKIP FIRST SCREEN.

但现在用户希望双击财务凭证+明细行号能直接跳转至明细界面,而不是行概览界面。可通过以下代码实现:

DATA: BEGIN OF lt_data OCCURS 30,
bukrs LIKE bseg-bukrs, " Buchungskreis
belnr LIKE bseg-belnr, " Belegnummer
gjahr LIKE bseg-gjahr, " Geschaeftsjahr
buzei LIKE bseg-buzei, " Buchungszeile
END OF lt_data.

DATA: lv_index TYPE sy-tabix,
lv_tcode TYPE sy-tcode,
lv_aktyp TYPE c.

lv_tcode = ‘FBL3’.

lt_data-bukrs = ‘8750’.
lt_data-belnr = ‘5000000251’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘023’.
APPEND lt_data.

CALL DIALOG ‘RF_ZEILEN_ANZEIGE’
EXPORTING
buztab FROM lt_data " 想看哪行传那一行即可

  • buztab-zeile FROM lv_index
    tcode FROM lv_tcode
    status-detail FROM space.
    也可通过将整个凭证所有行项目都写入lt_data中,指定行项目,跳转至明细界面。
    DATA: BEGIN OF lt_data OCCURS 30,
    bukrs LIKE bseg-bukrs, " Buchungskreis
    belnr LIKE bseg-belnr, " Belegnummer
    gjahr LIKE bseg-gjahr, " Geschaeftsjahr
    buzei LIKE bseg-buzei, " Buchungszeile
    END OF lt_data.

DATA: lv_index TYPE sy-tabix,
lv_tcode TYPE sy-tcode,
lv_aktyp TYPE c.

lv_tcode = ‘FBL3’.
lv_index = 4.

lt_data-bukrs = ‘8010’.
lt_data-belnr = ‘0100000013’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘001’.
APPEND lt_data.

lt_data-bukrs = ‘8010’.
lt_data-belnr = ‘0100000013’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘002’.
APPEND lt_data.

lt_data-bukrs = ‘8010’.
lt_data-belnr = ‘0100000013’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘003’.
APPEND lt_data.

lt_data-bukrs = ‘8010’.
lt_data-belnr = ‘0100000013’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘004’.
APPEND lt_data.

lt_data-bukrs = ‘8010’.
lt_data-belnr = ‘0100000013’.
lt_data-gjahr = ‘2021’.
lt_data-buzei = ‘005’.
APPEND lt_data.

CALL DIALOG ‘RF_ZEILEN_ANZEIGE’
EXPORTING
buztab FROM lt_data " 想看哪行传那一行即可
buztab-zeile FROM lv_index " 指定跳转行项目
tcode FROM lv_tcode
status-detail FROM space.
上述代码将直接跳转至凭证的第四行项目明细界面。
如果不指定lv_index,则默认进入第一行项目。如果lt_data中只有一个行项目,又指定lv_index,2个行项目不一致,进入的是lt_data中的行项目明细。
以上2种方法都可实现双击跳转明细界面。

你可能感兴趣的:(ABAP,ABAP)