Dynamic Report field

Hi,
We have requirements,
User Select Cal/Month: 05/2009 to 05/2010
Report Key figure should display whaterver month in variable selection screen.
Exa>
User Select Cal/Month: 05/2009 to 05/2010 in variable screen.
Keyfigure data should be selected like this.
05 06 07 08 09 .....so on upto 05/2010
Next time if they select..08/2009 to 02/2010 then
Keyfigure data should be selected like this.
08 09 10 11...so on upto 02/2010
- There is only one keyfigure..
3.5 version.
Thanks,

All you have to do is add Calendar Month as a drill-across (Columns) in your query.
Hope this helps...
Bob

Similar Messages

  • Dynamically modify the crystal report field size based on Paper size in C#

    Hi,
    I need to modify the Crystal Report field size dynamically based on the paper size using C# .Net. According to the paper size, crytal report field width should be increase or decreae.
    Kindly suggest any solution on this.
    Thanks

    Moved to .NET SDK forum
    See these RAS samples:
    http://wiki.sdn.sap.com/wiki/display/BOBJ/NETRASSDK+Samples#NETRASSDKSamples-Exporting%2FPrinting
    Don

  • Dynamically set report field value

    In my old classic VB project, I was able to set a report field value using the following simple line of code.
    someReport.SomeField.SetText u201Cabcu201D
    This was nice and simple, now with crystal reports .Net I do the following:
    ((TextObject)someReport.SectionX.ReportObjects["SomeField"]).Text = u201Cabcu201D;
    Itu2019s simple enough but seems too elaborated compared to the good old VB6.
    Not that is a big deal but is there a simpler way (Classic VB6 style) to set a field on a report without me having to create my own utility method to u201Csimplifyu201D things?
    Thanks.

    Perhaps using a formula?
    Imports CrystalDecisions.CrystalReports.Engine
    Imports CrystalDecisions.Shared
    Public Class Form1
    Inherits System.Windows.Forms.Form
    Dim Report As New CrystalReport1()
    Dim FormulaFields As FormulaFieldDefinitions
    Dim FormulaField As FormulaFieldDefinition
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    FormulaFields = Report.DataDefinition.FormulaFields
    FormulaField = FormulaFields.Item(0)
    FormulaField.Text = "[formula text]"
    CrystalReportViewer1.ReportSource = Report
    End Sub
    Other than that, InProc RAS, but if the solution you have is complicated, you ain't seen nothing yet
    - Ludek

  • Making dynamic links from report fields

    Is there a way to make report fields link to differnt websites? I can't use the 'link' tool in 'editing' option of making the report because the link will not be the same for each record in the database. The field itself is actually the address of the website I want to be able to link to. So essentially, what I want to do is something like: ..but this does not work. Does anyone know if this is possible??
    Thanks!

    You can use SQL report to do this:
    Suppose the column which contains the web addressed is called url_column, your SQL
    will be something like
    select htf.anchor(url_column, name) from the_table
    Then in the Column Formatting page,
    set the "Display as" for column url_column as HTML.
    Run the report and the values form that column will be a url which links to other web sites
    null

  • How can i create an dynamic report in Java

    hello everybody,
    I want to make dynamic reports in Java. Report contain data and images with good layout.. such as crystal reports presentation..
    Reports fields decided at run time or we can say that it is generated according to user requirement...
    can it is possible in Java. If it is then which tool is better for it..
    please suggest me.. this is very urgent requirement for me...

    i don't know what types of tools are avaiable in market... Tools for what? You still didn't tell us what exactly you want to do.
    i just imagin that
    "An user create a database dynamically on server
    databaseNobody "dynamically creates a database".
    and he decide reports desgin according to
    his requirement..... we provide an control for this
    type possibilities....."
    so this is question is build in my mind.. so i
    forward this question to this forums..
    I am just going to check the physibility of my mind
    imagination...Feasibility you mean. IMHO, the feasibility of creating that stuff yourself is very low. Reinventing the wheel usually doesn't make it better, and it's likely to be more expensive to pay you for creating an inferior solution (not because of lack of skills, but simply because the available products had a few years time to grow, feature-wise) than to simply buy the licenses. Look at Crystal Reports or JFreeChart or Jasper Reports. Or use Google to look up J2EE-based reporting libraries. There might be more.
    Which of these is best, I don't know, I never used any of those. Also, the definition of "best" changes with the requirements. What's better, a Ferrari or a truck?

  • Can You Use A Report Field Value In A Hyperlink?

    <p>I have a report field that I would like to be a link to another application. Making a report field a hyperlink to a web page was nice and simple.  However, I was expecting to be able to use the value of the field in the hyperlink something like...</p><p><a href="http://mywebsite/controller?action=servlets.ReportAlertDetailListAction&key={AlertSearch.ALERT_KEY">http://mywebsite/controller?action=servlets.ReportAlertDetailListAction&key={AlertSearch.ALERT_KEY</a>}</p><p>...where AlertSearch is the table name and ALERT_KEY is the field name.  Is there a way to use a report field in a hyperlink?  Would using a formula allow it to be dynamic?  The goal is to have each row of the report link to a URL with a different parameter.  I can see eventually redoing it as a drill down feature but the detail I need already exists in a separate application.</p><p>Thanks,</p><p>Ed</p>

    Hi Ed.
    I believe the conditional formula that you would use (don't just type in the text box - press the button for the formula first).
    "[http://mywebsite/controller?action=servlets.ReportAlertDetailListAction&key | http://mywebsite/controller?action=servlets.ReportAlertDetailListAction&key]=" + {AlertSearch.ALERT_KEY}
    The key is to use the conditional formula feature of the hyperlink feature.Â
    Enjoy!Â
         - Kathryn Webster (Report Design Consultant)
               Kat&#39;s News: http://diamond.businessobjects.com/blog/279

  • HR - dynamic selections field name and field value in the program

    HI all,
       I am using dynamic selections for a HR report.
    I have created a view with 20 fields and added it to HR report category ___00003(All fields suppressed).
    I need to check these fields in the program. But i am not able to get the field name and value in the program for dynamic selections fields.
    Please let me know how to get the field names and values in the program for dynamic selections .
    Thanks,
    Kranthi.

    You have to read the itab <i>pnpdynse</i> in your Program to obtain the Dynamic Selection values. This itab has a deep structure.. you can set a break point in one of the events before <b>get pernr</b> & in the debug mode, you will able to display the itab <i>pnpdynse</i>.. you can then identify how to get the values into your code..
    ~Suresh

  • Dynamic table field for filtering a selection criteria

    Hi Friends
    I am using a table a981 and fetching data in internal table but the table has a fieil Country whose technical name is ALAND in dev and LAND1 in production.Now i cannot use LAND1 as it wont let me to activate the report and if i use ALAND i cannot move the request to production as it fails. So how can i achive dynamic table field in the select query based on server.My query is-
        select kschl
               wkreg
               matnr
               knumh
       from a981 into corresponding fields of table it_a981
       for all entries in it_marc where matnr = it_marc-matnr
                                    and kschl in ('MWST','ZSER')
                                    and aland = 'IN'
                                    and datab le sy-datum
                                    and datbi ge sy-datum.
    I need to make aland dynamic.Pls suggest

    Hi,
    this forum is for the BusinessObjects Integration Kit for SAP but I don't see how you entry is related to it.
    Ingo

  • Create dynamic report or query for piece count

    Hi abaper's
    This is a very straight forward requirement. so please give me code
    First you have to get the corresponding plant from table T320 for the given warehouse numbers in the selection screen. 
    1.     Get the sum of order qty of sales orders from the sales order tables      for the given warehouse(Plant), distribution channel and the give date      range.
    2.     Get the confirmed transfer orders qty from the TO master table where      TO confirmation date is in the given date range and WH number.
    3.     Get the total PGIed qty from the delivery master table where PGI'ed      date in the given date range, shipping point is in the corresponding      plant of the WH and for the given distribution channel.
    As you are going to use the major tables please try to write the select commands effectively to avoid further performance issues.

    How to improve the performance fo this code.....this very urgent.
    & Issue Number          : 22199                                    &
    & Programmer            : Anjaneyulu.Pabba                         &
    & Transport Number      : D01K962471                               &
    & Date of Creation      : 19/03/2008                               &
    & Description           : Dynamic report or query for piece count  &
    & Requested By          : Parvati.Polisetty                        &
    REPORT  ZR_SD_PIECE_COUNT_ALV no standard page heading
                                  line-size 255
                                  line-count 65.
                          TABLES DECLARATION
    *TABLES: T320,   "Assignment IM Storage Location to WM Warehouse Number
          VBAK,   "Sales Document: Header Data
          VBAP,   "Sales Document: Item Data
          TVKOV,  "Org. Unit: Distribution Channels per Sales Organization
          LTAK,   "WM transfer order header
          LTAP,   "Transfer order item
          LIKP,   "SD Document: Delivery Header Data
          LIPS.   "SD document: Delivery: Item data
                          TYPE-POOLS DECLARATION
    TYPE-POOLS: SLIS .
         Internal Table Declaration
    DATA : BEGIN OF TY_T320,
            WERKS TYPE WERKS_D,
            LGNUM TYPE LGNUM,
           END OF TY_T320.
    DATA : BEGIN OF TY_VBAK,
            VBELN  TYPE VBELN_VA,
            VTWEG  TYPE VTWEG,
            WERKS  TYPE WERKS_D,
            KWMENG TYPE KWMENG,
            VSTEL  TYPE VSTEL,
           END OF TY_VBAK.
    DATA : BEGIN OF TY_LTAK,
            LGNUM TYPE LGNUM,
            TANUM TYPE TANUM,
            VISTA TYPE LTAP_VISTA,
           END OF TY_LTAK.
    DATA : BEGIN OF TY_LIKP,
            VBELN TYPE VBELN_VL,
            WERKS TYPE WERKS_D,
            LFIMG TYPE LFIMG,
           END OF TY_LIKP.
    DATA : BEGIN OF TY_ITAB ,
    LGNUM  TYPE LGNUM,    "Warehouse Number / Warehouse Complex
    WERKS  TYPE WERKS_D,  "Plant
    VBELN  TYPE VBELN_VA, "Sales Document
    VTWEG  TYPE VTWEG,   "Distribution Channel
    KWMENG TYPE KWMENG,  "Cumulative order quantity in sales units
    TANUM  TYPE TANUM ,     "Transfer Order Number
    VISTA  TYPE LTAP_VISTA, "Source actual quantity in alternative
                                                 unit of measure
    LFIMG  TYPE LFIMG,  "Actual quantity delivered (in sales units)
    END OF TY_ITAB .
    DATA: T_T320 LIKE STANDARD TABLE OF TY_T320 INITIAL SIZE 0 WITH HEADER
                                                                   LINE,
          T_VBAK LIKE STANDARD TABLE OF TY_VBAK INITIAL SIZE 0 .
    DATA: T_LTAK LIKE STANDARD TABLE OF TY_LTAK INITIAL SIZE 0 WITH HEADER
                                                                    LINE.
    DATA :T_LIKP LIKE STANDARD TABLE OF TY_LIKP INITIAL SIZE 0 WITH HEADER
                                                                    LINE.
    DATA:T_ITAB LIKE STANDARD TABLE OF TY_ITAB INITIAL SIZE 0 WITH HEADER
                                                                   LINE .
    *&      Fieldcatalog Declaration
    DATA : T_FCAT TYPE SLIS_T_FIELDCAT_ALV,
           W_FCAT TYPE SLIS_FIELDCAT_ALV.
    DATA : W_LAYOUT TYPE SLIS_LAYOUT_ALV.
    ********Global Data Declaration***
    DATA :G_REPID        LIKE SY-REPID,
         G_EXIT(1)      TYPE C,
         GX_VARIANT     LIKE DISVARIANT,
         X_SAVE,                          "for Parameter I_SAVE
         GS_VARIANT TYPE DISVARIANT.      "for parameter IS_VARIANT
    data: g_lgnum type t320-lgnum,
          g_vtweg type vbak-vtweg,
          g_erdat type vbak-erdat.
    *&      Selection-Screen
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    SELECT-OPTIONS : S_LGNUM FOR  g_lgnum, "Warehouse Number
                    S_VTWEG FOR g_vtweg, "Distribution Channel
                    S_ERDAT FOR g_erdat ."Date on which the record was
    **********"created
    SELECTION-SCREEN END OF BLOCK B1 .
    SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
    PARAMETER: P_VARI LIKE DISVARIANT-VARIANT.  "Layout
    SELECTION-SCREEN END OF BLOCK B2.
    *&       INITIALIZATION EVENT
    INITIALIZATION.
      CLEAR GS_VARIANT.
    'gs_variant' must at least contain the report-id to allow
    saving a variant.
      G_REPID = SY-REPID.
    § 2.At least field REPORT of this structure has to be filled!
      GS_VARIANT-REPORT = G_REPID.
    § 3.Determine saving options.
      X_SAVE = 'A'.   "The user may save all types of variants
    *******Validating selection-screen values**********************
    getting F4 value for display variant field
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
      PERFORM F4_FOR_VARIANT.
    ****validation of F4 value of display variant
    AT SELECTION-SCREEN.
      PERFORM PAI_OF_SELECTION_SCREEN.
    *&      Start-Of-Selection
    START-OF-SELECTION.
    *****Subroutine to  select Plant from T320
      PERFORM FIND_PLANT .
    *****Subroutine to select Order Quantity from VBAP
      PERFORM ORDER_QUANTITY .
    *****Subroutine to select Transfer Order Quantity from LTAK and LTAP
      PERFORM TRANSFER_ORDER_QUANTITY.
    *****Subroutine to select TDelivery Quantity from  LIKP and LIPS
      PERFORM DELIVERY_QUANTITY.
    *&      End-Of-Selection
    END-OF-SELECTION.
    *****Subroutine for Fieldcatalog
      PERFORM FIELDCATALOG .
    *****Subroutine for Final Output
      PERFORM DISPLAY_OUTPUT .
    *&     Subroutine Implementaion
    *&      Form  FIND_PLANT
          text
    -->  p1        text
    <--  p2        text
    FORM FIND_PLANT .
      SELECT  WERKS
              LGNUM
              FROM T320
              INTO  TABLE T_T320
              WHERE LGNUM IN S_LGNUM.
    ENDFORM.                    " FIND_PLANT
    *&      Form  order_quantity
          text
    -->  p1        text
    <--  p2        text
    FORM ORDER_QUANTITY .
      SELECT VK~VBELN
             VK~VTWEG
             VP~WERKS
             VP~KWMENG
             VP~VSTEL
             INTO TABLE T_VBAK FROM VBAK AS VK
             INNER JOIN  VBAP AS VP
             ON VKVBELN = VPVBELN
             FOR ALL ENTRIES IN T_T320
             WHERE VK~VTWEG IN S_VTWEG
             AND   VK~ERDAT IN S_ERDAT
             AND   VP~WERKS = T_T320-WERKS.
    ENDFORM.                    " order_quantity
    *&      Form  Transfer_order_quantity
          text
    -->  p1        text
    <--  p2        text
    FORM TRANSFER_ORDER_QUANTITY .
      SELECT LK~LGNUM
             LK~TANUM
             LP~VISTA
             INTO TABLE T_LTAK FROM LTAK AS LK
             INNER JOIN LTAP AS LP
             ON LKLGNUM = LPLGNUM
             WHERE LK~KQUIT = 'X'
             AND   LK~BDATU IN S_ERDAT
             AND   LK~LGNUM IN S_LGNUM.
    ENDFORM.                    " Transfer_order_quantity
    *&      Form  Delivery_QUANTITY
          text
    -->  p1        text
    <--  p2        text
    FORM DELIVERY_QUANTITY .
      SELECT  VBELN WERKS LFIMG FROM LIPS
              INTO TABLE T_LIKP
              FOR ALL ENTRIES IN T_T320
              WHERE WERKS = T_T320-WERKS
              AND ERDAT IN S_ERDAT
              AND VTWEG IN S_VTWEG.
    ENDFORM.                    " Delivery_QUANTITY
    *&      Form  fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    FORM FIELDCATALOG .
      W_FCAT-COL_POS       = '1' .
      W_FCAT-FIELDNAME     = 'LGNUM' .
      W_FCAT-REF_TABNAME   = 'T320'.
      W_FCAT-REF_FIELDNAME = 'LGNUM' .
      APPEND W_FCAT TO T_FCAT.
      CLEAR W_FCAT.
      W_FCAT-COL_POS       = '2' .
      W_FCAT-FIELDNAME     = 'VTWEG' .
      W_FCAT-REF_TABNAME   = 'VBAK'.
      W_FCAT-REF_FIELDNAME = 'VTWEG' .
      APPEND W_FCAT TO T_FCAT.
      CLEAR W_FCAT.
      W_FCAT-COL_POS       = '3' .
      W_FCAT-FIELDNAME     = 'KWMENG' .
      W_FCAT-REF_TABNAME   = 'VBAP'.
      W_FCAT-REF_FIELDNAME = 'KWMENG' .
    *w_fcat-seltext_m     = '# of Orders'.
      APPEND W_FCAT TO T_FCAT.
      CLEAR W_FCAT.
      W_FCAT-COL_POS       = '4' .
      W_FCAT-FIELDNAME     = 'VISTA' .
      W_FCAT-REF_TABNAME   = 'LTAP'.
      W_FCAT-REF_FIELDNAME = 'VISTA' .
    *w_fcat-seltext_m     = '# of Pcs Picked'.
      APPEND W_FCAT TO T_FCAT.
      CLEAR W_FCAT.
      W_FCAT-COL_POS       = '5' .
      W_FCAT-FIELDNAME     = 'LFIMG' .
      W_FCAT-REF_TABNAME   = 'LIPS'.
      W_FCAT-REF_FIELDNAME = 'LFIMG' .
    *w_fcat-seltext_m     = '# of Pcs Shipped'.
      APPEND W_FCAT TO T_FCAT.
      CLEAR W_FCAT.
    W_FCAT-COL_POS       = '6' .
    W_FCAT-FIELDNAME     = 'TANUM' .
    W_FCAT-REF_TABNAME   = 'LTAK'.
    W_FCAT-REF_FIELDNAME = 'TANUM' .
    **w_fcat-seltext_m     = '# of Pcs Shipped'.
    APPEND W_FCAT TO T_FCAT.
    CLEAR W_FCAT.
    W_FCAT-COL_POS       = '7' .
    W_FCAT-FIELDNAME     = 'WERKS' .
    W_FCAT-REF_TABNAME   = 'T320'.
    W_FCAT-REF_FIELDNAME = 'WERKS' .
    **w_fcat-seltext_m     = '# of Pcs Shipped'.
    APPEND W_FCAT TO T_FCAT.
    CLEAR W_FCAT.
    ENDFORM.                    " fieldcatalog
    *&      Form  display_output
          text
    -->  p1        text
    <--  p2        text
    FORM DISPLAY_OUTPUT .
      LOOP AT T_T320 INTO TY_T320.
        TY_ITAB-WERKS = TY_T320-WERKS.
        TY_ITAB-LGNUM = TY_T320-LGNUM.
        READ TABLE T_VBAK INTO TY_VBAK WITH KEY WERKS = TY_T320-WERKS.
        IF SY-SUBRC = 0.
        TY_ITAB-VBELN  = TY_VBAK-VBELN.
        TY_ITAB-VTWEG  = TY_VBAK-VTWEG.
        TY_ITAB-KWMENG = TY_VBAK-KWMENG + ty_itab-kwmeng.
        ENDIF.
        READ TABLE T_LTAK INTO TY_LTAK WITH KEY LGNUM = TY_T320-LGNUM.
        IF SY-SUBRC = 0.
        TY_ITAB-TANUM = TY_LTAK-TANUM.
        TY_ITAB-VISTA = TY_LTAK-VISTA + ty_itab-vista.
        ENDIF.
        READ TABLE T_LIKP INTO TY_LIKP WITH KEY WERKS = TY_T320-WERKS.
        IF SY-SUBRC = 0.
        TY_ITAB-LFIMG = TY_LIKP-LFIMG + ty_itab-lfimg.
        ENDIF.
        APPEND TY_ITAB TO T_ITAB.
      ENDLOOP.
    Function Module for Displaying Final Output ********
      W_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          I_CALLBACK_PROGRAM = SY-CPROG
          IS_LAYOUT          = W_LAYOUT
          IT_FIELDCAT        = T_FCAT[]
        TABLES
          T_OUTTAB           = T_ITAB.
    ENDFORM.                    " display_output
    *&      Form  f4_for_variant
          text
    -->  p1        text
    <--  p2        text
    FORM F4_FOR_VARIANT .
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
        EXPORTING
          IS_VARIANT = GS_VARIANT
          I_SAVE     = X_SAVE
        IMPORTING
          E_EXIT     = G_EXIT
          ES_VARIANT = GX_VARIANT
        EXCEPTIONS
          NOT_FOUND  = 2.
      IF SY-SUBRC = 2.
        MESSAGE ID SY-MSGID TYPE 'S'      NUMBER SY-MSGNO
                WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        IF G_EXIT = SPACE.
          P_VARI = GX_VARIANT-VARIANT.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f4_for_variant
    *&      Form  pai_of_selection_screen
          text
    -->  p1        text
    <--  p2        text
    FORM PAI_OF_SELECTION_SCREEN .
      IF NOT P_VARI IS INITIAL.
        MOVE GS_VARIANT TO GX_VARIANT.
        MOVE P_VARI TO GX_VARIANT-VARIANT.
        CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
          EXPORTING
            I_SAVE     = X_SAVE
          CHANGING
            CS_VARIANT = GX_VARIANT.
        GS_VARIANT = GX_VARIANT.
      ELSE.
        PERFORM VARIANT_INIT.
      ENDIF.
    ENDFORM.                    " pai_of_selection_screen
    *&      Form  variant_init
          text
    -->  p1        text
    <--  p2        text
    FORM VARIANT_INIT .
      CLEAR GS_VARIANT.
      GS_VARIANT-REPORT = G_REPID.
    ENDFORM.                    " variant_init

  • Create a dynamic report

    Hi,
    I would like to create a dynamic report in crystal report.
    put data fields, text fields, criteria parameters on report in run time.
    I will appreciate if you can send me an example code in java that creates and shows the report.
    Thanks,
    Anat

    So find the appropriate website and forum and ask there.

  • Fixed columns in dynamic report ( ?horizontal-break-table:1? )

    Hi
    I have a dynamic report that could strech over more than one page horozontally. I use the <?horizontal-break-table:1?> tag on my first header column to show this on every page, but I also need to show the last column on every page. That meens that I have a fixed column on each end of my dynamic report, the last one is just a signatur field so its no logic to it , but its important to show it on every page.
    Any tips on this ?
    PS.
    Sry if this is a noob question, this is not really my knowlegde area, but have to fix it anyhow :)
    Tim

    Robert,
    It sounds like you want a completely populated table regardless of the input data.  To achieve you will need to create a "dummy table" in your database, either as an actual table, or by just doing a view, it's your choice.  Here is a method for the view:
    select '2009-M01' as Dim1
    union
    select '2009-M02' as Dim1
    union
    select '2009-M12' as Dim1
    Next you'll have to introduce this to your universe as a "dummy table".  In WebI, go to Edit Query and click add query, then add Dim1 to your result objects panel.  After you run your query you can perform Merge Dimensions on Dim1 to the first dimension from your report, and voila, you'll have a fully populated table.
    Thanks,
    John

  • Dynamic selection field display

    Hi
    Can we display field values for a field from Dynamic selection ?

    Hi,
    Yes, you can display field values in dynamic selection field.
    If I understood your question correctly, you are talking about the dynamic selection used in reports ( For eg. ME2N). The field which are appearing in dynamic selection shows the field values. ( you can press F4 and check the field values).
    Rajesh.

  • Logic needed for dynamic report

    Hi Experts,
    I have made a dynamic report where my logic is if the value of the columns is 0 than it should be blank and if the columns of the stores have some value for eg: 01 than it should populate the same store.
    The logic goes like :
    for matnr     01store 02 store
                                             01       100.00          0.00
                                             02          00              00
                                             03       50.00           13.00
    than the output should be
    matnr     01store 02 store
                                             01           01store       
                                             02        
                                             03           01store    02 store
    I have made the logic but all the lines are getting appended
    it_field_dynamic1-fieldname = 'MATNR'.
        it_field_dynamic1-desc      = 'ARTICLE'.
        it_field_dynamic1-reffield = 'MATNR'.
        it_field_dynamic1-reftab   = 'MBEW'.
        it_field_dynamic1-seq =  1.
        COLLECT it_field_dynamic1.
        CLEAR wa_itab.
        LOOP AT itab INTO wa_itab. "WHERE SALK3 NE '0.00'.
          it_field_dynamic1-fieldname = wa_itab-bwkey.
          it_field_dynamic1-desc      = wa_itab-bwkey.
    *    IF WA_ITAB-SALK3 NE '0.00'.
    *    it_field_dynamic1-reffield = wa_itab-bwkey.
    *    ENDIF.
          it_field_dynamic1-reftab   = 'MBEW'.
          it_field_dynamic1-seq =  1.
          COLLECT it_field_dynamic1.
          CLEAR wa_itab.
        ENDLOOP.
        LOOP AT it_field_dynamic1.
          wa_alv_cat1-fieldname = it_field_dynamic1-fieldname.
          wa_alv_cat1-col_pos    = sy-tabix.
          wa_alv_cat1-ref_field = it_field_dynamic1-reffield.
          wa_alv_cat1-ref_table = it_field_dynamic1-reftab.
          wa_alv_cat1-seltext   = it_field_dynamic1-desc.
          COLLECT wa_alv_cat1 INTO lt_alv_cat1 .
          CLEAR wa_alv_cat1 .
    *    APPEND wa_alv_cat TO lt_alv_cat .
        ENDLOOP.
        IF NOT lt_alv_cat1[] IS INITIAL .
    * Create Dynamic Table -> i_table
          CALL METHOD cl_alv_table_create=>create_dynamic_table
            EXPORTING
              it_fieldcatalog = lt_alv_cat1
            IMPORTING
              ep_table        = i_table1.
          ASSIGN i_table1->* TO <table1> .
    * Create dynamic work area and assign to FS
          CREATE DATA i_struct1 LIKE LINE OF <table1>.
          ASSIGN i_struct1->* TO <struc1>.
        ENDIF.
        DATA: l_row TYPE sy-index.
        FIELD-SYMBOLS: <ls_table> TYPE ANY.
        FIELD-SYMBOLS: <l_field> TYPE ANY.
        DATA: wa_dref1 TYPE REF TO data.
        FIELD-SYMBOLS: <wa_tab1> TYPE ANY.
        CREATE DATA wa_dref1 LIKE LINE OF <table1>.
        ASSIGN wa_dref1->* TO <wa_tab1>.
        FIELD-SYMBOLS: <fs1>, <fs2>.
    *  DATA: wa_dref1 TYPE REF TO data.
    *  FIELD-SYMBOLS: <wa_tab1> TYPE ANY.
        CREATE DATA wa_dref1 LIKE LINE OF <table1>.
        ASSIGN wa_dref1->* TO <wa_tab1>.
        CLEAR : wa_matnr, wa_itab.
       LOOP AT imatnr INTO wa_matnr.
    *clear: wa_itab-bwkey.
    *      CLEAR: wa_itab.
          LOOP AT itab INTO wa_itab WHERE matnr = wa_matnr-matnr.
    *        CLEAR: wa_itab-bwkey.
            IF wa_itab-salk3 EQ '0.00'.
              CLEAR: wa_itab-bwkey .
            ELSE.
            ASSIGN COMPONENT wa_itab-bwkey OF  STRUCTURE <wa_tab1> TO <fs1>.
              IF sy-subrc =  0 . "AND WA_ITAB-SALK3 NE '0.00'.
                <fs1> = wa_itab-bwkey.
              ENDIF.
            ENDIF.
    *ON  CHANGE OF WA_ITAB-MATNR.
            ASSIGN COMPONENT 'MATNR' OF  STRUCTURE <wa_tab1> TO <fs2>.
            IF sy-subrc =  0.
    *      ON CHANGE OF wa_itab-matnr.
              <fs2> = wa_itab-matnr.
    *      ENDON.
            ENDIF.
    *      APPEND <wa_tab1> TO <table1>.
          ENDLOOP.
           APPEND <wa_tab1> TO <table1>.
          CLEAR : wa_ltab.
        ENDLOOP.
    than i have called the alv grid display
    Please let me know.
    Thanks,
    Nikhil.

    Hi Oliver,
    My current output is:
    for                                  
    matnr     01store 02 store
                                                      01         100.00         0.00
                                                       02          00              00
                                                       03       50.00           13.00
                                            matnr    01store   02 store
                                             01       01store         
                                             02       01store            
                                             03       01store
    but for matnr 02,  01 store has 0 value hence it should come blank but its appending from the first line and populating 01store for material 2.
    Thanks & Regards,
    Nikhil.

  • ISQL*PLUS dynamic reports - how to pass connect string in the URL

    When we run dynamic reports thru ISQL*PLUS, does anyone know how
    to pass the connect string info in the URL
    The following is the code from ISQL*PLUS users guide but it
    dosen't show how to pass the connect string
    when I tried to pass hr/your_secret_password@dbserver for userid
    I got an error msg
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    <HTML>
    <HEAD>
    <TITLE>iSQL*Plus Dynamic Report</TITLE>
    </HEAD>
    <BODY>
    <H1>iSQL*Plus Report</H1>
    <H2>Query by Employee ID</H2>
    <FORM METHOD=get ACTION="http://host.domain/isqlplus">
    <INPUT TYPE="hidden" NAME="userid"
    VALUE="hr/your_secret_password">
    <INPUT TYPE="hidden" NAME="script"
    VALUE="http://host.domain/employee_id.sql">
    Enter employee identification number: <INPUT TYPE="text"
    NAME="eid" SIZE="10">
    <INPUT TYPE="submit" VALUE="Run Report">
    </FORM>
    </BODY>
    </HTML>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Thanks
    Jay

    The form you use should work when your change
    "hr/your_secret_password" to a valid username, password
    and connect identifier like "hr/hr@MYDB". Don't forget to
    configure MYDB in your tnsnames.ora file on the machine that has
    the iSQL*Plus server.
    What was the error you got?
    The full URL syntax did seem to go missing from the 9.0.1 doc.
    See below for the full syntax. This should be appearing in a
    forthcoming FAQ.
    - CJ
    What syntax can I use to run an iSQL*Plus Dynamic Report?
    You can run a dynamic report by entering the report URI in the
    location field of your browser, or by making the report server a
    link or the action for an HTML form. The iSQL*Plus 9i Release 1
    documentation has examples of these.
    The general syntax for running a dynamic report is:
    {uri}?[userid=logon&]script=location[&param...]
    where uri
    Represents the Uniform Resource Identifier (URI)
    of the iSQL*Plus Server, for example:
    http://host.domain/isqlplus
    where logon
    Represents the log in to the database to which you
    want to connect:
    {username[/password][@connect_identifier]}
    where location
    Represents the URI of the script you want to run.
    The syntax is:
    http://[host.domain/script_name]
    The host serving the script does not have to be
    the same as the machine running the iSQL*Plus server.
    where param
    Specifies the named parameters for the script you
    want to run.
    Named parameters consist of varname=value pairs.
    iSQL*Plus will define the variable varname to equal value prior
    to executing the script e.g.
    ...script=http://server/s1.sql&var1=hello&var2=world
    This is equivalent to the SQL*Plus commands:
    SQL> define var1=hello
    SQL> define var2=world
    SQL> @http://server/s1.sql
    iSQL*Plus, SQL*Plus and SQL keywords are reserved
    and must not be used as the variable names (varname). Note also,
    that since variables are delimited by the ampersand character,
    there is no requirement to enclose space delimited values with
    quotes. However, to embed the ampersand character itself in the
    value, it will be necessary to use quotes.
    For compatibility with older scripts using the &1
    variable syntax, varname may be replaced with the equivalent
    variable position as in:
    ...script=http://server/s1.sql&1=hello&2=world
    Note the & is the URL parameter separator and not
    related to the script's substitution variable syntax.
    Commands and script parameters may be given in any
    order in the dynamic report URI. However, please note that if any
    parameters begin with reserved keywords such as "script" or
    "userid" then it may be interpreted as a command rather than a
    literal parameter.

  • Need correction for dynamic report

    Hi Experts,
    As i have very less experience in SAP , can anyone please help me.
    The report code i attached here generate only 10 columns in the report and all the lines in internal table i am showing in these 10 columns, the problem is if i have more that 10 lines in the tline(script for long material text- MM03) then it leaves those lines, so
    I need to create a dynamic report for this which will create columns depending on the lines in the tline.As i dnt no much about ALV i read so namy things but not able to make it dynamic
    Please, can anyone help me by doing changes in this code and make it dynamic report/ALV
    REPORT  zmm_test_mat_desc.
    TABLES : ekpo,makt, t001w.
    TYPE-POOLS: slis.
    DATA : thread LIKE thead.
    DATA : l_index LIKE sy-tabix.
    DATA : p_index LIKE sy-tabix.
    DATA: BEGIN OF int_out OCCURS 0,
    matnr LIKE makt-matnr,
    maktx LIKE makt-maktx,
    tdline1 LIKE tline-tdline,
    tdline2 LIKE tline-tdline,
    tdline3 LIKE tline-tdline,
    tdline4 LIKE tline-tdline,
    tdline5 LIKE tline-tdline,
    tdline6 LIKE tline-tdline,
    tdline7 LIKE tline-tdline,
    tdline8 LIKE tline-tdline,
    tdline9 LIKE tline-tdline,
    tdline10 LIKE tline-tdline,
    werks LIKE ekpo-werks,
    END OF int_out.
    DATA: BEGIN OF int_out_new OCCURS 0,
    matnr LIKE makt-matnr,
    maktx LIKE makt-maktx,
    tdline1 LIKE tline-tdline,
    tdline2 LIKE tline-tdline,
    tdline3 LIKE tline-tdline,
    tdline4 LIKE tline-tdline,
    tdline5 LIKE tline-tdline,
    tdline6 LIKE tline-tdline,
    tdline7 LIKE tline-tdline,
    tdline8 LIKE tline-tdline,
    tdline9 LIKE tline-tdline,
    tdline10 LIKE tline-tdline,
    tline LIKE tline OCCURS 0,
    werks LIKE ekpo-werks,
    END OF int_out_new.
    DATA: it_tlines LIKE tline OCCURS 10 WITH HEADER LINE.
    ****ALV list definintion
    DATA: ws_cat TYPE slis_fieldcat_alv ,
    int_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    DATA: g_container TYPE scrfname VALUE 'BCALV_GRID_DEMO_0100_CONT1',
    g_custom_container TYPE REF TO cl_gui_custom_container.
    DATA : it_heading TYPE slis_t_listheader WITH HEADER LINE.
    *DATA : it_fcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.
    DATA : lay TYPE slis_layout_alv.
    DATA : it_sort_subtotal TYPE slis_t_sortinfo_alv WITH HEADER LINE.
    DATA : it_event TYPE slis_t_event WITH HEADER LINE.
    DATA: v_repid LIKE sy-repid.
    *selection-screen
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_werks FOR ekpo-werks OBLIGATORY .
    SELECT-OPTIONS: s_matnr FOR makt-matnr OBLIGATORY .
    SELECTION-SCREEN END OF BLOCK b1.
    INITIALIZATION.
    AT SELECTION-SCREEN.
      SELECT SINGLE * FROM t001w WHERE werks IN s_werks.
      IF sy-subrc NE 0.
        MESSAGE e001(319) WITH 'Plant does not Exist!'.
      ENDIF.
      SELECT SINGLE * FROM makt WHERE matnr IN s_matnr.
      IF sy-subrc <> 0.
        MESSAGE e001(319) WITH 'Material does not Exist!'.
      ENDIF.
    START-OF-SELECTION.
      BREAK-POINT.
      PERFORM get_data.
    PERFORM field_catalog.
    PERFORM display_data.
    END-OF-SELECTION.
    *FORM GET_DATA.
    FORM get_data.
      DATA: l_index LIKE sy-tabix.
    *To Fetch Data From Makt.
      SELECT b~werks a~matnr a~maktx
      INTO CORRESPONDING FIELDS OF TABLE int_out
      FROM makt AS a INNER JOIN marc AS b ON a~matnr = b~matnr
      WHERE a~matnr IN s_matnr
      AND b~werks IN s_werks.
      LOOP AT int_out.
        l_index = sy-tabix.
    read table int_out_new with key matnr = int_out-matnr.
        int_out_new-werks = int_out-werks.
        int_out_new-matnr = int_out-matnr.
        int_out_new-maktx = int_out-maktx.
        thread-tdname = int_out-matnr.
        CALL FUNCTION 'READ_TEXT'
          EXPORTING
            client                  = sy-mandt
            id                      = 'BEST'
            language                = sy-langu
            name                    = thread-tdname
            object                  = 'MATERIAL'
          TABLES
            lines                   = it_tlines
          EXCEPTIONS
            id                      = 1
            language                = 2
            name                    = 3
            not_found               = 4
            object                  = 5
            reference_check         = 6
            wrong_access_to_archive = 7
            OTHERS                  = 8.
    *Loop on it_tlines where long text is coming .
        LOOP AT it_tlines.
          IF sy-subrc = 0.
            p_index = sy-tabix.
            IF p_index = 1.
              int_out_new-tdline1 = it_tlines-tdline.
            ELSEIF p_index = 2.
              int_out_new-tdline2 = it_tlines-tdline.
            ELSEIF p_index = 3.
              int_out_new-tdline3 = it_tlines-tdline.
            ELSEIF p_index = 4.
              int_out_new-tdline4 = it_tlines-tdline.
            ELSEIF p_index = 5.
              int_out_new-tdline5 = it_tlines-tdline.
            ELSEIF p_index = 6.
              int_out_new-tdline6 = it_tlines-tdline.
            ELSEIF p_index = 7.
              int_out_new-tdline7 = it_tlines-tdline.
            ELSEIF p_index = 8.
              int_out_new-tdline8 = it_tlines-tdline.
            ELSEIF p_index = 9.
              int_out_new-tdline9 = it_tlines-tdline.
            ELSEIF p_index GE 10.
              int_out_new-tdline10 = it_tlines-tdline.
            ENDIF.
          ENDIF.
        ENDLOOP.
        DELETE ADJACENT DUPLICATES FROM int_out .
        APPEND int_out_new.
        CLEAR int_out_new.
      ENDLOOP.
    Field Catalog
    ***MATERIAL NO no
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'WERKS'.
      int_fcat-reptext_ddic = 'Plant'.
      APPEND int_fcat .
    ***MATERIAL NO no
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'MATNR'.
      int_fcat-reptext_ddic = 'Material N0'.
      APPEND int_fcat .
    *material Short Description
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'MAKTX'.
      int_fcat-reptext_ddic = 'Material Short Description'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '45'.
      APPEND int_fcat .
    Material Long Description1
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE1'.
      int_fcat-reptext_ddic = 'Material Long Description1'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description2
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE2'.
      int_fcat-reptext_ddic = 'Material Long Description2'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description3
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE3'.
      int_fcat-reptext_ddic = 'Material Long Description3'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description4
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE4'.
      int_fcat-reptext_ddic = 'Material Long Description4'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description5
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE5'.
      int_fcat-reptext_ddic = 'Material Long Description5'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description5
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE5'.
      int_fcat-reptext_ddic = 'Material Long Description5'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description5
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE5'.
      int_fcat-reptext_ddic = 'Material Long Description5'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description6
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE6'.
      int_fcat-reptext_ddic = 'Material Long Description6'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description7
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE7'.
      int_fcat-reptext_ddic = 'Material Long Description7'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description8
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE8'.
      int_fcat-reptext_ddic = 'Material Long Description8'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description9
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE9'.
      int_fcat-reptext_ddic = 'Material Long Description9'.
      int_fcat-datatype = 'CHAR'.
      int_fcat-outputlen = '75'.
      APPEND int_fcat .
    Material Long Description10
      int_fcat-tabname = 'INT_OUT_NEW'.
      int_fcat-fieldname = 'TDLINE10'.
      int_fcat-reptext_ddic = 'Material Long Description10'.
      int_fcat-datatype = 'CHAR'.
    int_fcat-outputlen = '75'.
      APPEND int_fcat .
      CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
          i_callback_program = sy-repid
          it_fieldcat        = int_fcat[]
        TABLES
          t_outtab           = int_out_new
        EXCEPTIONS
          program_error      = 1
          OTHERS             = 2.
    ENDFORM. "display_data
    Regards
    Nik.

    Nikhil,
    Instead of declaring 10 lines, please declare a variable of type STRING.
    Then append each line of your material text and concatenate it into the string.
    Then you can comfartably have one long text and have it displayed to the user.
    Please let us know if any further information is required.
    Thanks
    Ganesh.S

Maybe you are looking for