Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Calling screen in FB03

Former Member
0 Kudos

Hello Friends,

I have a problem like this.

I have developed a Z report. It is displaying one ALV grid Like FB03. Now if i click on any row it should call 3rd screen of FB03 transaction.

First screen of FB03---Doc number,Fiscal year and so on

Second screen ---Line items

3rd screen--Line item header.

Now i want to display 3rd screen directly , if i double click on my Z report output. How can i call 3rd screen?

Please give me the solution.

<removed_by_moderator>

Regards

Dinesh

Edited by: Julius Bussche on Oct 20, 2008 5:53 PM

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Call Transaction FB09D instead.

Rob

8 REPLIES 8

former_member194669
Active Contributor
0 Kudos

Record a BDC and in program using call transaction FB03.

0 Kudos

Hi, I can do BDC . but in the second screen we have line item.

How can i capture which line item i have to click. I cannot click each time first line .

I hope you understand my point.

Regards

Dinesh

Former Member
0 Kudos

Hi

Are you speaking about the detail screen with item data?

If it's so you need to call a CALL DIALOG, this is a sample:


        SELECT * INTO CORRESPONDING FIELDS OF TABLE BUZTAB FROM BSEG
                                      WHERE BUKRS = T_ITEM_PRV-BUKRS
                                        AND BELNR = T_ITEM_PRV-BELNR
                                        AND GJAHR = T_ITEM_PRV-GJAHR.
*
        LOOP AT BUZTAB.
          CLEAR BUZTAB-FLAEN.
          MODIFY BUZTAB.
          IF BUZTAB-BUZEI = T_ITEM_PRV-BUZEI. " Selected line
            INDEX = SY-TABIX.
          ENDIF.
        ENDLOOP.

        BUZTAB-ZEILE = INDEX.
        X_COMMIT     = SPACE.
        TCODE        = 'FB03'.

        CALL DIALOG 'RF_ZEILEN_ANZEIGE'
             EXPORTING
                  BUZTAB
                  BUZTAB-ZEILE
                  TCODE
             IMPORTING
                  X_COMMIT.

        IF X_COMMIT = 'X'.
          COMMIT WORK.
        ENDIF.

U can find the definition of structure BUZTAB in standard include RFEPOSC5

Max

Former Member
0 Kudos

Hi Dinesh,

Try to use USER_COMMAND and try to call the screen number through the specific Tabindex as a sample code which i coded to call the screen when i double click on my records.

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

READ TABLE T_ZFAOR INTO W_ZFAOR INDEX RS_SELFIELD-TABINDEX.

PERFORM DATA_RETRIEVAL_ZASDF.

ENDFORM. "USER_COMMAND

&----


*& Form DATA_RETRIEVAL_ZASDF

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DATA_RETRIEVAL_ZASDF .

G_LOCAL = W_ZFAOR-EMPLID. "EMPLID is my id on which i have double clicked.

CALL SCREEN 900.

ENDFORM. " DATA_RETRIEVAL_Zasdf

Modify the code accordingly.

Cheers!!

Balu

Former Member
0 Kudos

Hi,

Use a call transaction with a BDC recording to do the navigation, then set the call transaction options to give control back to the user once the BDC data is exhausted.

Something like....

report  zbdc.

data: gt_bdcdata type table of bdcdata,
      gs_bdcdata type bdcdata,
      gs_opt     type ctu_params.

parameters: p_belnr like rf05l-belnr,
            p_bukrs like rf05l-bukrs,
            p_gjahr like rf05l-gjahr.

start-of-selection.
* Build a BDC to navigate to the 3rd screen of FB03
  clear gt_bdcdata.

* Initial screen
  perform bdc_screen using : 'SAPMF05L' '100'.
  perform bdc_field  using : 'RF05L-BELNR'  p_belnr,
                             'RF05L-BUKRS'  p_bukrs,
                             'RF05L-GJAHR'  p_gjahr,
                             'BDC_OKCODE'   '/00'.

* Overview screen
  perform bdc_screen using : 'SAPMF05L' '0700'.
  perform bdc_field  using : 'BDC_CURSOR'  'RF05L-ANZDT(01)',
                             'BDC_OKCODE'   '=PK'.

* Drill down on item screen
  perform bdc_screen using : 'SAPMF05L' '0300'.


* Call the transaction to navigate to the 3rd screen
  gs_opt-dismode = 'E'.
  gs_opt-nobiend = 'X'.
  call transaction 'FB03' using  gt_bdcdata
                          options from gs_opt.

*&---------------------------------------------------------------------*
*&      Form  bdc_screen
*&---------------------------------------------------------------------*
form bdc_screen  using    i_prog i_screen.

  clear gs_bdcdata.
  gs_bdcdata-program  = i_prog.
  gs_bdcdata-dynpro   = i_screen.
  gs_bdcdata-dynbegin = 'X'.
  append gs_bdcdata to gt_bdcdata.

endform.                    " bdc_screen

*&---------------------------------------------------------------------*
*&      Form  bdc_field
*&---------------------------------------------------------------------*
form bdc_field  using    i_name i_value.

  clear gs_bdcdata.
  gs_bdcdata-fnam = i_name.
  gs_bdcdata-fval = i_value.
  append gs_bdcdata to gt_bdcdata.

endform.                    " bdc_field

Darren

Former Member
0 Kudos

Call Transaction FB09D instead.

Rob

ThomasZloch
Active Contributor
0 Kudos

You could also try calling transaction FB09D (and skip first screen).

Thomas

Edit: ouch...waited too long before submitting

Former Member
0 Kudos

This message was moderated.