Adobe Print Form: Printing Nested Internal Tables

Hi All,
We are developing an Adobe print form
We are getting data in 3 internal tables (say ITAB1, ITAB2, ITAB3)
Now we need to print the data as follows (data can overflow into multiple pages)
Record of ITAB1.........
   Record of ITAB2
   Record of ITAB2
   Record of ITAB3
   Record of ITAB3
So for 1 record of ITAB1 there can be >1 records in ITAB2 and ITAB3. We have the data in the correct format and all internal tables have a common key field to link. But we don't know how to render this onto a form
Please advise
Thanks and Regards,
Aditya

It is possible, in the context itself you have to define them nested
parent
  -> childtable   "here you can specify the where condition also
   -> subchildtable
The Crucial part is design , in the design you have to take care of Binding , Postioned, Flowed parts and Repeat Row option(make sure for all the tables forms Repeat row option marked).

Similar Messages

  • What are nested Internal tables

    Hi Guru's,
    I am new to ABAP ...just trying to learn things.Can you please explain me what are nested internal tables and what is the purpose of nested internal table?where can it be used and why a header line is not written in a Nested Internal table...
    Kindly explain it (scenario where nested internal tables are used) with an example it will be helpful.
    Cheers,
    Priyanka

    Hi,
    When storing data in internal tables, you often use one internal table for each database you read.
    Each one contains some or all columns of the relevant database table. It is up to you whether
    you create an internal table with a flat structure for each database table or if you create, for
    example, internal tables with nested structures. If you have several tables, each one with a flat
    structure, you have to work with redundant key fields to link the tables. If, on the other hand, you
    use nested internal tables, you can store the data from the database tables hierarchically.
    Saving and processing very large amounts of data in internal tables has disadvantages. If you
    divide up the data into different internal tables, processing it can be very runtime-intensive, since
    the tables have to be processed individually. Furthermore, it requires a lot of storage space,
    since internal tables are not stored in compressed form. The system may even need to store the
    dataset outside of its working memory. This means that processing it takes even longer.
    An example of nested internal table:
    Assume the following program is linked to the logical database [Page 1163] F1S.
    REPORT DEMO.
    DATA: SUM TYPE I, CNT TYPE I.
    NODES: SPFLI, SFLIGHT, SBOOK.
    DATA: BEGIN OF WA_SBOOK,
    BOOKID TYPE SBOOK-BOOKID,
    SMOKER TYPE SBOOK-SMOKER,
    CLASS TYPE SBOOK-CLASS,
    LUGGWEIGHT TYPE SBOOK-LUGGWEIGHT,
    WUNIT TYPE SBOOK-WUNIT,
    END OF WA_SBOOK.
    DATA: BEGIN OF WA_SFLIGHT,
    FLDATE TYPE SFLIGHT-FLDATE,
    SBOOK LIKE TABLE OF WA_SBOOK,
    END OF WA_SFLIGHT.
    DATA: BEGIN OF WA_SPFLI,
    CARRID TYPE SPFLI-CARRID,
    CONNID TYPE SPFLI-CONNID,
    CITYFROM TYPE SPFLI-CITYFROM,
    CITYTO TYPE SPFLI-CITYTO,
    SFLIGHT LIKE TABLE OF WA_SFLIGHT,
    END OF WA_SPFLI.
    DATA TAB_SPFLI LIKE TABLE OF WA_SPFLI.
    START-OF-SELECTION.
    GET SPFLI.
    REFRESH WA_SPFLI-SFLIGHT.
    GET SFLIGHT.
    REFRESH WA_SFLIGHT-SBOOK.
    GET SBOOK.
    MOVE-CORRESPONDING SBOOK TO WA_SBOOK.
    APPEND WA_SBOOK TO WA_SFLIGHT-SBOOK.
    GET SFLIGHT LATE.
    MOVE-CORRESPONDING SFLIGHT TO WA_SFLIGHT.
    APPEND WA_SFLIGHT TO WA_SPFLI-SFLIGHT.
    GET SPFLI LATE.
    MOVE-CORRESPONDING SPFLI TO WA_SPFLI.
    APPEND WA_SPFLI TO TAB_SPFLI.
    END-OF-SELECTION.
    SORT TAB_SPFLI BY CITYFROM CITYTO CONNID.
    LOOP AT TAB_SPFLI INTO WA_SPFLI.
    SKIP.
    WRITE: / WA_SPFLI-CARRID,
    WA_SPFLI-CONNID,
    'from', (15) WA_SPFLI-CITYFROM,
    'to', (15) WA_SPFLI-CITYTO.
    ULINE.
    SORT WA_SPFLI-SFLIGHT BY FLDATE.
    LOOP AT WA_SPFLI-SFLIGHT INTO WA_SFLIGHT.
    SKIP.
    WRITE: / 'Date:', WA_SFLIGHT-FLDATE.
    WRITE: 20 'Book-ID', 40 'Smoker', 50 'Class'.
    ULINE.
    SORT WA_SFLIGHT-SBOOK BY CLASS SMOKER BOOKID.
    SUM = 0.
    CNT = 0.
    LOOP AT WA_SFLIGHT-SBOOK INTO WA_SBOOK.
    WRITE: / WA_SBOOK-BOOKID UNDER 'Book-ID',
    WA_SBOOK-SMOKER UNDER 'Smoker',
    WA_SBOOK-CLASS UNDER 'Class'.
    SUM = SUM + WA_SBOOK-LUGGWEIGHT.
    CNT = CNT + 1.
    ENDLOOP.
    ULINE.
    WRITE: 'Number of bookings: ', (3) CNT,
    / 'Total luggage weight:',
    (3) SUM, WA_SBOOK-WUNIT.
    ENDLOOP.
    ENDLOOP.
    Thanks.

  • Passing Nested internal table to GUI_DOWNLOAD

    Hi All
    I have got a nested internal table, I want this whole report in excel format, I tried using GUI_DOWNLOAD , it gives error. Does any body have any idea how can I solve this.
    regards
    AJ

    Hi,
    I think nested and deep structure internal tables will not work with gui_download.
    you need to convert before giving it to gui_download
    aRs

  • Nested Internal Table Tables and REUSE_ALV_GRID_DISPLAY

    Can you display entries from a nested internal table in the using the call function 'REUSE_ALV_GRID_DISPLAY'?
    Types and internal tables are below.  I have skimmed the code for the function module below, assume field category built, etc.. The table is in the tables portion of the function module, the nested internal table is inside of int_output defined as data: int_tlines type t_tline occurs 0.
    TYPES:
    BEGIN OF t_tline,
    tdformat type tline-tdformat,
    tdline type tline-tdline,
    END OF t_tline.
    DATA:
    BEGIN OF int_output occurs 0,
      qmnum       TYPE qmnum,
      sys_stat    TYPE j_stext,
      kunum       TYPE qkunum,
      sting       TYPE string,
      numr        TYPE vbeln,
      bstnk       TYPE bstkd,
      vbeln       TYPE kdauf,
      erdat(10)   TYPE c,
      aufnr       TYPE aufnr,
      werks       TYPE werks_d,
      idat2(10)   TYPE c,
      otgrp       TYPE otgrp,
      oteil       TYPE oteil,
      fd_text     TYPE qtxt_code,
      fegrp       TYPE fegrp,
      fecod       TYPE fecod,
      pb_text     TYPE qtxt_code,
      fetxt       TYPE fetxt.
      data: int_tlines type t_tline occurs 0.
      data: QMTXT TYPE QMEL-QMTXT,
      NOTIF_TXT   TYPE STRING,
      bautl       TYPE bautl,
      bautx       TYPE bautx,
    END OF int_output.
    DATA: i_output      LIKE STANDARD TABLE OF int_output,
    w_output      LIKE LINE OF int_output.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
        TABLES
          t_outtab                 = int_output
        EXCEPTIONS
          program_error            = 1
          OTHERS                   = 2.

    Hi
    I dont think this requirement is possible. Even if we pass the data through the nested internal table the FM may not give a dump. The main problem will be with field catalog. How can we build field catalog for the fields inside the nested internal table.
    Field catalog for this FM REUSE_ALV_GRID_DISPLAY should be of type SLIS_FIELDCAT_ALV and this is a standard one.

  • Problem reading data from nested internal table.

    Hi,
    Below is my code;
    *********SAP Code********
    TYPES: BEGIN OF v54a0_scdd,
             fknum  LIKE vfkk-fknum,
             change LIKE vfkkd-updkz,
             x      TYPE v54a0_scd,
             y      TYPE v54a0_scd,
             tvtf   LIKE tvtf,
           END OF v54a0_scdd.
    SCD table for dialog
    TYPES: v54a0_scdd_tab TYPE v54a0_scdd OCCURS 1.
    *********SAP Code********
    *Custom declaration*****
    data: wa_freight_costs type v54a0_scdd_tab.
    data: it_freight_costs type v54a0_scdd_tab occurs 0.
    *****Here data is getting appended to it_freight_costs. P_frieght_costs is coming from standard program.
         move p_freight_costs TO wa_FREIGHT_COSTS.
         append wa_freight_costs to it_freight_costs.
         clear wa_freight_costs.
    ***Now the problem is here. I am not able to read the data from the nested internal table x-item.
    if i use <fs_f_costs> to move data from it_freight_costs in the outer loop, i get a syntax error; <i> "the line type of the table it_freight_costs is not compatible with field symbol type <fs_f_costs>" </i>
         FIELD-SYMBOLS: <fs_f_costs> type line of v54a0_scdd_tab.
          LOOP AT it_freight_costs assigning <fs_f_costs>.
              LOOP AT <fs_f_costs>-x-item ASSIGNING <fs_freight_item>.        
                  <b> I want to read <fs_freight_item>-vfkp-netwr.</b> 
             ENDLOOP.
    Can anyone guide me?

    A quick look at how I would do this. Note I haven't checked if this compiles just done a quick brain-dump.
      DATA: lr_f_costs TYPE REF TO v54a0_scdd_tab,
            lr_f_cost TYPE REF TO v54a0_scdd.
      LOOP AT it_freight_costs REFERENCE INTO lr_f_costs.
        LOOP AT lr_f_costs->* REFERENCE INTO lr_f_cost.
        ENDLOOP.
      ENDLOOP.
    As you can see I personally prefer pointers to field symbols - I don't believe there is any performance differences and because of my background in other languages pointers make more sense to me.
    Cheers
    Graham Robbo

  • Nested Internal tables with cl_gui_alv_grid - not displaying records

    Hi,
    I wrote a program using nested internal tables with cl_gui_alv_grid class
    At runtime, when I select dropdown on one of the cells (RESWK - driver to the nested table), it does not bring the related record and display it
    Does cl_gu_alv_grid support nested internal tables?
    Or which class to use
    Appreciate reply at the latest
    Thanks
    Rajeev
    Edited by: Thomas Zloch on Feb 7, 2011 4:11 PM - priority reduced

    Hi Rajeev,
    Maybe checking out this documnetation will answer your question:
    [ALV Grid Control (BC-SRV-ALV)|http://help.sap.com/saphelp_erp2004/helpdata/EN/bf/3bd1369f2d280ee10000009b38f889/frameset.htm]
    To my knowledge ALV does not support deep structures.
    Kind regards,
    Robert

  • How to create dynamic nested internal table

    Hi Experts,
    Pleae tell me or give sample code, how to create dynamic nested internal table ?
    I have seen threads saying creation of dynamic internal tables using some table structure only. But now the requirement is to create dynamic nested internal table.
    For example the internal table contains two fields viz., one is field1 of dynamic internal table and other is normal field2 and values as shown below:
    Nested internal table:
    field1                     |     field2 ...
    <table content1>     |     value2..
    <table content1>     |     value2..
    Here the [table content] should also a dynamic internal table.
    Let me know if you need any other info.
    regards
    Saravanan R

    see the complete code..i am currently working in ECC6.0 EHP4. just check which version you are using..
    REPORT  yst_test_000.
    DATA:
          lt_comptab         TYPE cl_abap_structdescr=>component_table,
          ls_comp            LIKE LINE OF lt_comptab,
          lref_newstr        TYPE REF TO cl_abap_structdescr,
          lref_tab_type      TYPE REF TO cl_abap_tabledescr,
          lt_fcat            TYPE lvc_t_fcat,
          ls_fcat            TYPE lvc_s_fcat,
          ls_dd03p           TYPE dd03p,
          lt_data            type ref to data.
    field-symbols: <fs_table> type standard table.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
        i_structure_name       = 'SCARR'
      CHANGING
        ct_fieldcat            = lt_fcat
      EXCEPTIONS
        inconsistent_interface = 1
        program_error          = 2
        OTHERS                 = 3.
    IF sy-subrc NE 0.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    LOOP AT lt_fcat INTO ls_fcat.
      IF ls_fcat-ref_table IS NOT INITIAL.
        CLEAR ls_dd03p.
        CALL FUNCTION 'BUS_DDFIELD_GET'
          EXPORTING
            i_tabnm         = ls_fcat-ref_table
            i_fldnm         = ls_fcat-fieldname
          IMPORTING
            e_dd03p         = ls_dd03p
          EXCEPTIONS
            field_not_found = 1
            OTHERS          = 2.
        IF sy-subrc EQ 0.
          ls_comp-name = ls_fcat-fieldname.
          ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_dd03p-rollname ).
          APPEND ls_comp TO lt_comptab.
          CLEAR ls_comp.
        ENDIF.
      ELSE.
        ls_comp-name = ls_fcat-fieldname.
        ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_fcat-rollname ).
        APPEND ls_comp TO lt_comptab.
        CLEAR ls_comp.
      ENDIF.
    ENDLOOP.
    *Now for the Field which you want deep table then you can do like this
    ls_fcat-fieldname  = 'NESTED_TABLE'.
    ls_fcat-inttype    = 'C'.
    ls_fcat-intlen     = '000006'.
    ls_fcat-rollname   = 'SFLIGHT_TAB1'. "For SFLIGHT
    APPEND ls_fcat TO lt_fcat.
    ls_comp-name = ls_fcat-fieldname.
    ls_comp-type ?= cl_abap_datadescr=>describe_by_name( ls_fcat-rollname ).
    APPEND ls_comp TO lt_comptab.
    CLEAR ls_comp.
    lref_newstr = cl_abap_structdescr=>create( lt_comptab ).
    lref_tab_type = cl_abap_tabledescr=>create( lref_newstr ).
    create data lt_data type handle lref_tab_type.
    assign lt_data->* to <fs_table>.
    break-point.
    Edited by: Vijay Babu Dudla on Apr 28, 2009 8:05 AM

  • Print data of an internal table to a printer.

    Hi,
    Requirement: The data from an excel file is the input for the program. This data is taken into an internal table using GUI_UPLOAD adn manipulated based on certain validations. The data which is validated is finally collected into an internal table.
    This data is being downloaded to the presentation server using GUI_DOWNLOAD.
    The client is asking to print the data in the internal table to the printer {SAP Scripts are generally printed}.
    Solution required for: How to print the data of an the internal table.
    Thanks in advance.
    Best Regards,
    Goutham.
    Edited by: Raghavendra Goutham on Oct 29, 2008 7:34 PM

    Try some like this way
    report zaRs.
    data: v_params type pri_params,
    start-of-selection.
      perform display_report.
    end-of-selection.
    form display_report .
      call function 'GET_PRINT_PARAMETERS'
        exporting
          immediately            = 'X'
          line_size              = 220
          release                = 'X'
          mode                   = 'CURRENT'
          no_dialog              = ' '
        importing
          out_parameters         = v_params
          valid                  = v_valid
        exceptions
          archive_info_not_found = 1
          invalid_print_params   = 2
          invalid_archive_params = 3
          others                 = 4.
      new-page print on parameters v_params no dialog.
      loop at itab.
        write :/ itab.
      endloop.
      new-page print off.
    endform. 

  • Adobe PDF Form print preview problem

    Hi All,
    I am new to Adobe PDF form.  I have created one small form using the t-code SFP.
    I am testing this form directly from the T-code SFP.
    When i use the print preview to see the fom output it is givine me below exception.
    "Device type unsuitable for ADS documents"
    I am using the printer LOCL.
    Can you please help me to rectify this problem.
    I am not able to undestand why i am getting this error as i am new to ADOBE form.
    Thanks in advance
    Sachin

    Hi
       check this [LINK|https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/other-topics/how%20to%20check%20if%20the%20adobe%20document%20service%20is%20running%20correctly.pdf] to check if ADS is working or not.
    Thanks
    Viquar Iqbal

  • Adobe PDF Print Form: Printing a Watermark

    Hi,
    How do I print a water mark on the Adobe PDF Print Form?
    We have a requirement to print "DRAFT" or "COPY" on the form layout depending upon a condition in the Form Interface variable
    Thanks and Regards,
    Aditya

    check with this keyword "watermark in adobeforms"
    in Adobe forum SAP Interactive Forms by Adobe

  • Printing excel list through internal table

    hi,
    i want to create excel sheet having fixed(pre defined) column width through internal table , in program i m using FM 'DOWNLOAD' and passing internal table and getting excel list but how to get fixed column width. also how to display leading zero in excel
    pls help .
    regards,
    Sudhir Ghag.
    SAP ABAP Consultant.

    Hi Sudhir,
    You have to use OLE for this.
    Using OLE you can set properties of column and sheet like border,width,font etc.
    an also you can format cells(For leading zeros).
    Search SCN for OLE exmples, you will get a lot.
    Regards,
    Manoj Kumar P

  • SMART FORMS- data from  internal table issue

    Hi ,
           I have a smart form in which I have to print three types of materials of Material Types say M1, M2 ,M3.
    In the SMART FORM,Main Window, I have created 3 TABLES for 3 types of Materials ie,
               TableM1,
               TableM2,
               TableM3.
    The internal tables to populate these TABLES are
    ( passing from Print program ).
                t_M1,
                t_M2,
                t_M3
    The Number of FIELDS vary in all the tables ,thats why I have created 3 internal tables for Diff Material Types.
    But only first TABLE is getting printed ie data inside TableM2, TableM3 are not getting printed.
    Can any SMARTFORM Gurus please let me know how I can solve this issue.
    Regards
    Avi

    Hi,
       Check whether you are mentioning any condition on the data. There are different possibilites of not getting printed. Like the way your displaying, data is in table.
    Can you please clearly mention how did you populated the internal table and kept the logic to print the values in the table. So that it problem would be  more clearly nown.
    Br,
    Laxmi

  • How to binnding the data in the adobe interactive forms for making a table?

    Hi, experts,
    Function:
    Through the sharing context node between adobe interactive form and a WDA for ABAP, display the data of the sflight_node in the ADOBE.
    version:
    Acrobat Reader 8.1.0
    currently both of the SAP-ABA and SAP-BASIS SP level: 9
    ADS : Successful.
    The following is my action:
    1.     Create a interface (Z_SFLIGHT_INTF) with a attribute node (SFLIGHT_NODE) that type is "sflight"  using the transaction code "sfp"
    2.     Create a form (Z_SFLIGHT_FORM) using the transaction code "sfp" with the interface Z_SFLIGHT_INTF.
    3.     Trag the sflight_node in the Z_SFLIGHT_INTF to the form( Z_SFLIGHT_FORM).
    4.     Open the layout tab in the form(Z_SFLIGHT_FORM), and create a table(table1). Click the table created just now, select the binding tab in the object tab, and in the Default Binding, select the SFLIGHT_NODE under the Z_SFLIGHT_FORM.
    Problem 1:
    Do you tell me whether is right for binding the context SFLIGHT_NODE using this way? If bind 3 context attributes in the sflight, how can I do it?
    5.     Create a WDA for abap (ZZ_02_SFLIGHT), and create a view(MAINVIEW) using transaction code "se80" in the sap-gui with adobe interactive form. Set the templatesource(Z_SFLIGHT_FORM) in the  adobe interactive form properties and saved, and then, datasource is "MAINVIEW_Z_SFLIGHT_FORM" automatically.
    6.     But I only found the attribute SFLIGHT_NODE under the context node(Z_SFLIGHT_NODE), and  I don't found the NODE ( SFLIGHT_NODE ) context in the context tab in the WDA for abap so that I don't set data to the context NODE (SFLIGHT_NODE).
    Problem 2:
    Do you tell me what can I do it so that I get the node SFLIGHT_NODE rather than attribute in the WDA for setting the data to the CONTEXT NODE (SFLIGHT_NODE)?
    Thanks a lot.
    Best regards,
    Tao

    Hi, experts,
    You can reply back to me via e-mail if you think we should discuss this internally at [email protected] or [email protected]
    Thanks a lot.
    Best regards,
    tao

  • How to fetch data from nested internal table

    Hi,
    Im using FM CRM_PRODUCT_GETDETAIL_API which is returning me work area (ES_PRODUCT_DATA) of type
    COMT_PRODUCT_MAINTAIN_API. This work area contains a table SHORT_TEXTS of type COMT_PR_SHTEXT_MAINTAIN_TAB
    whcih in turn contain a line type DATA of type COMT_PRSHTEXT_X. I need to fetch fields lying inside DATA. Can anybody please
    let me know how to achieve this. I would like to do this by not using nested loop structure.
    Rgds
    Sudhanshu Sharma

    Hi,
    Use field ES_PRODUCT_DATA-short_texts like any other internal table (without header line).
    E.g.:
    field-symbols: <text> type COMT_PRSHTEXT_X.
    loop at ES_PRODUCT_DATA-short_texts assigning <text>.
            write: <text>-short_text
    endloop.
    Regards, Gerd Rother

  • Problem in assigning field symbol to a nested internal table

    Hi All,
    I have searched the forum but could not find a solution to this problem. I have a requirement where I need to define an internal table within an internal table, so I have used pointer within the outer internal table(itab2) which point to the inner table. However, I am facing problem while assigning the pointer.
    data: begin of struct1 occurs 0,
            fld3(10) type C,
           end of struct1.
    data: begin of itab2 occurs 0,
            fld1(10) type C,
            fld2(10) type C,
            p_inner like ref to struct1,
          end of itab2.
    field-symbols <inner_table> type any.
    I want to assign "itab2->p_inner->* " to "<inner_table>".
    However, the following statement is Not working:
    assign itab2->p_inner->* to <inner_table>.
    I want to fill the values within fields fld1, fld2 and fld3 and append it in itab2.
    The final table should be like:
    ITAB2:
    fld1    fld2    fld3
    aa      bb      cc
                     dd
                     ee
    11      22      33
                     44
                     55
    I have tried many other ways too but could not suceed, please help.
    Thanks,
    Vishal.

    Thanks Matt,
    But how do I append the values within this internal table ??
    When I am using the following code:
    ls_wa-fld3 = 'A'.
    ls_wa-t_in-fld1 = 'B'.
    ls_wa-t_in-fld2 = 'C'.
    ls_wa-t_in-fld1 = 'D'.
    ls_wa-t_in-fld2 = 'E'.
    append ls_wa to lt_tab.
    Its giving an error that:
    The data object "LS_WA" does not have a component called "T_IN-FLD1".
    I wanted the values to be appended in the following way in lt_tab:
    fld3     fld1     fld2
    A     B     C
         D     E
    Please help.

Maybe you are looking for