Dynamic Programming - subsequence counting

I have two string arrays (X and Y) and I want to count the number of times that a sequence X appears as a subsequence of a sequence Y by using dynamic programing. Could you guys give me some ideas about how to create the DP table?
thanks

black_makeba wrote:
yes, this is a java programming. And the task is to figure out the algorithm. If I knew the algorithm, Coding would be trivial. So I am asking for any ideas about the algorithm.I have a weak spot for problems like this so here's a solution but I'm not sure it qualifies as "dynamic programming" in your assignment.
You start out with an X string like "abcd". We call this string X(0) because it's in its initial state. Now if the first letter "a" has been found the string is called X(1) which is "bcd" (the first letter has been found and is no longer of interest). When the X(0) string "abcd" has advanced to X(4) all letters have been found.
Example:
X(0): "abcd" - initial string
X(1): "bcd" - first letter found
X(2): "cd" - second
X(3): "d" - third
X(4): "" - whole string found
In the general case you have strings from X(0) to X(N) where N is the number of letters in the original X string.
Now you consider each letter in the Y sequence from left to right and for each letter you create an X(0) string. You may also have accumulated a number of X strings in other states like maybe five X(1) and four X(2) etcetera. You have a look at the current letter in the Y sequence and check if the X(0) string can be advanced to X(1). If not you discard it. Once a string is in X(1) it's never discarded. Then you also check all other X strings and see if you can advance them. You never advance a string beyond the X(N) state. This proceeds to the end of the Y sequence when the number of X(N) strings tells you how many hits there were.
Now here comes what I would call a "dynamic programming" strategy. In the above algoritm you keep all X strings of all states but you don't have to. You only need to know how many X strings you have in each state because they all advance too the next state in unison. So you get a table with one entry for each X state. The entry holds the number of X strings in that state.
What you need to figure out is how to update the X state table as you consider each letter in the Y sequence. The entry for X(N) is the number of hits.

Similar Messages

  • Help with dynamic programming, knapsack problem

    Hi, I wrote a code to solve the knapsack 0-1 problem by dynamic programming. At a certain point, around 30 max capacity, the code stops adding new values based on the incrementing max capacity and item values. I have no idea why, it finds the correct solution until the max capacity of the knapsack gets to around 30, and then the answers are screwed up. My code is below. Thanks in advance for the help!
         public Knapsack packDP(int capacity)
              //initialize 2d array
              Knapsack [][] knapsackSolutions = new Knapsack[safe.size() + 1][capacity + 1];
              //fill 1st row and 1st columns with empty knapsacks as sentinel values
              for (int i = 0; i <= safe.size(); i++)
                   knapsackSolutions[0] = new Knapsack();
              for (int j = 0; j <= capacity; j++)
                   knapsackSolutions[0][j] = new Knapsack();
              //each row of the 2d array represents an item. for loop to calculate solutions for each item
              for (int itemNum = 1; itemNum <= safe.size(); itemNum++)
                   Item currentItem = safe.get(itemNum - 1);
                   //get optimal solutions for each weight value in the current item row
                   for (int weight = 0; weight <= capacity; weight++)
                        if (currentItem.size <= weight)
                             System.out.println("weight = " + weight);
                             if ( (currentItem.value + knapsackSolutions[itemNum - 1][weight - currentItem.size].value) >
                                       knapsackSolutions[itemNum - 1][weight].value )
    //create a new knapsack with the new item
                                  knapsackSolutions[itemNum][weight] = new Knapsack(knapsackSolutions[itemNum - 1][weight - currentItem.size], currentItem);
                             else
                                  knapsackSolutions[itemNum][weight] = new Knapsack(knapsackSolutions[itemNum - 1][weight]);
                        else
                             knapsackSolutions[itemNum][weight] = new Knapsack(knapsackSolutions[itemNum - 1][weight]);
                        count++;
              //return last item of the 2d array, which is the optimal solution for the capacity
              return knapsackSolutions[safe.size()][capacity];

    I've been debugging forever and I can't figure out where I went wrong. The test driver for this is:
    public class ThiefDriver
        public static void main(String[] args) {
            /// Set up experiment:
            int INITIAL = 10 ;
            int INCREMENT = 10 ;
            /// Create objects with add(NAME,SIZE,VALUE):
            Thief thief = new Thief();
            thief.add("A",3,4) ;
            thief.add("B",4,5) ;
            thief.add("C",7,10) ;
            thief.add("D",8,11) ;
            thief.add("E",9,13) ;
            /// Run experiment:
            Thief.Knapsack knapsack;
            for (int capacity=INITIAL ; capacity <= thief.safe.capacity ; capacity+=INCREMENT) {
              System.out.println("Capacity = " + capacity) ;
              thief.count = 0 ;
              knapsack = thief.packDP(capacity) ;
              System.out.println( "  DP value/COUNT: " + knapsack.value + " " + thief.count ) ;
          }

  • Download a special kind of internal table (dynamic programming)

    Hi guys,
    with dynamic programming, i've created a complex internal table of this type :
    KNA1                          |
    KNB1                          |                         
    GS_CUSTOMERADDRESS            |               
    GS_CUSTOMERGENERALDETAIL      |
    The declaration of the internal table is :
    TYPES: BEGIN OF gty_record,
            table TYPE tabname,
            dataref  TYPE REF TO data,
           END OF gty_record.
    This means that each line, has a different line-type. In the first field of the table, i have the name of the structure. In the second, the data-part (in debug double click on leads to structure contents - field by field).
    The structure KNA1 contains C and packed (P) fields also so when i pass the internal table to FM GUI_DOWNLOAD, i have this short-dump : UC_OBJECTS_NOT_CONVERTIBLE.
    Is there a way to solve this problem quickly?
    The goals is download all data of a customer into a local file. Data is distribuited on different structures, readed by standard bapi 'BAPI_CUSTOMER_GETDETAIL2'. This file will be read in another program, of another system.
    Any hints/suggestion will be appreciated.
    Thanks a lot.
    Andrea

    Hi Sandra,
    thx for you suggestions.
    About your answer :
    " Or use a DO. ASSIGN COMPONENT sy-index OF STRUCTURE ... to loop at each field, and do whatever you want with them (using WRITE ... TO ... for example, to convert numbers into text)."
    I cannot use this approach to the problem, because i should keep in mind the dimension of single fields and the blanks should be concatenated also, but RESPECTING BLANK switch of concatenate instruction doesen't exists in 4.7 abap.
    Sure, i can use a workaround, but i'll have a lot of programming.
    "you could use XML for instance. It's rather standard! By using CALL TRANSFORMATION ID SOURCE dataObject RESULT XML string."
    This could be the solution. I've already read some posts about it before write mine. I should test it: i don't know if in 4.7 release works. So i could transform the internal table to xml and save to text file.
    But then, how i can read xml string and mapping again in this special kind of table ?
    Is CALL TRANSFORMATION ID SOURCE XML String RESULT Dataobject instruction sufficient to perform this task?
    Thanks a lot
    Andrea
    BR
    Sandra

  • Help needed regarding Dynamic Programming

    Hi,
    While doing dynamic programming , we bind the context variable with two types of
    values .
    1 . ddic
    2 . extern
    My doubt is in which case we should use ddic and where to use extern .
    Can anybody help me out regarding this.
    Thanks a lot.

    Hi Ki,
    Predefined, Web Dynpro UI-specific, and user-defined Dictionary types all have the
    prefix ddic:.
    wdContext.getNodeInfo()
    .addAttribute(
    "Visibility",
    "ddic:com.sap.ide.webdynpro.uielementdefinitions.Visbility")
    •&#61472;Logical Dictionary types from Adaptive RFC models have the prefix extern:.
    Check this links
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/9214b1e5-0601-0010-fdb0-ec32d43b06e0
    /people/dipankar.saha3/blog/2007/05/31/how-to-create-dynamic-approval-process-using-conditional-loop-block-in-guided-procedure
    Regards,
    Mithu

  • Dynamic Programming

    Hi All
    Can anyone send me some good documents in the below topics, it is urgent
    1) Dynamic Programming
    2) ABAP Objects
    A Good documents will get rewarded.
    Thanks Prasad

    Parameter mapping
    normal ABAP is process oriented, where is OOP-ABAP is a new methodology in ABAP which uses object oriented programming.
    we have C++, java, C#, etc as OOP languages.
    ABAP has also implemented the OOP technology.
    it uses classes, methods and interfaces instead of functiongroups and function modules.
    As part of SAP’s long-standing commitment to object technology, Release 4.0
    of R/3 will contain object-oriented enhancements to the ABAP programming
    language. SAP’s object strategy is based on SAP Business Objects and now
    covers modeling, programming, interfacing, and workflow. By using principles
    like encapsulation, inheritance, and polymorphism, the object-oriented
    extensions of ABAP will support real object-oriented development. This will
    result in improvements in the areas of reusability, maintenance, and quality of
    code. SAP offers an evolutionary approach toward objects which leverages
    SAP’s own and its customers’ investments in existing business processes,
    functionality and data.
    follow this link ABAP OBJECTS with good examples.......
    http://help.sap.com/saphelp_nw2004s/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    check the below links lot of info and examples r there
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.geocities.com/victorav15/sapr3/abap_ood.html
    http://www.brabandt.de/html/abap_oo.html
    Check this cool weblog:
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    /people/thomas.jung3/blog/2004/12/08/abap-persistent-classes-coding-without-sql
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b6254f411d194a60000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/c3/225b5654f411d194a60000e8353423/content.htm
    http://www.esnips.com/doc/375fff1b-5a62-444d-8ec1-55508c308b17/prefinalppt.ppt
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    http://www.allsaplinks.com/
    http://www.sap-img.com/
    http://www.sapgenie.com/
    http://help.sap.com
    http://www.sapgenie.com/abap/OO/
    http://www.sapgenie.com/abap/OO/index.htm
    http://www.sapgenie.com/abap/controls/index.htm
    http://www.esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    http://www.esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    http://www.sapgenie.com/abap/OO/index.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    http://www.sapgenie.com/abap/OO/
    these links
    http://help.sap.com/saphelp_47x200/helpdata/en/ce/b518b6513611d194a50000e8353423/content.htm
    For funtion module to class
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5954f411d194a60000e8353423/content.htm
    for classes
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b5c54f411d194a60000e8353423/content.htm
    for methods
    http://help.sap.com/saphelp_47x200/helpdata/en/08/d27c03b81011d194f60000e8353423/content.htm
    for inheritance
    http://help.sap.com/saphelp_47x200/helpdata/en/dd/4049c40f4611d3b9380000e8353423/content.htm
    for interfaces
    http://help.sap.com/saphelp_47x200/helpdata/en/c3/225b6254f411d194a60000e8353423/content.htm
    For Materials:
    1) http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf -- Page no: 1291
    2) http://esnips.com/doc/5c65b0dd-eddf-4512-8e32-ecd26735f0f2/prefinalppt.ppt
    3) http://esnips.com/doc/2c76dc57-e74a-4539-a20e-29383317e804/OO-abap.pdf
    4) http://esnips.com/doc/0ef39d4b-586a-4637-abbb-e4f69d2d9307/SAP-CONTROLS-WORKSHOP.pdf
    5) http://esnips.com/doc/92be4457-1b6e-4061-92e5-8e4b3a6e3239/Object-Oriented-ABAP.ppt
    6) http://esnips.com/doc/448e8302-68b1-4046-9fef-8fa8808caee0/abap-objects-by-helen.pdf
    7) http://esnips.com/doc/39fdc647-1aed-4b40-a476-4d3042b6ec28/class_builder.ppt
    8) http://www.amazon.com/gp/explorer/0201750805/2/ref=pd_lpo_ase/102-9378020-8749710?ie=UTF8
    1) http://www.erpgenie.com/sap/abap/OO/index.htm
    2) http://help.sap.com/saphelp_nw04/helpdata/en/ce/b518b6513611d194a50000e8353423/frameset.htm
    these are the links
    Check this for basic concepts of OOPS
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/abap%20objects/abap%20code%20sample%20to%20learn%20basic%20concept%20of%20object-oriented%20programming.doc
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/alv%20grid/abap%20code%20sample%20to%20display%20data%20in%20alv%20grid%20using%20object%20oriented%20programming.doc
    Tabstrip
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/alv%20grid/abap%20code%20sample%20for%20tab%20strip%20in%20alv.pdf
    Editable ALV
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/abap%20code%20samples/alv%20grid/abap%20code%20sample%20to%20edit%20alv%20grid.doc
    Tree
    http://www.sapdevelopment.co.uk/reporting/alv/alvtree/alvtree_usrint.htm
    General Tutorial for OOPS
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/abap/an%20easy%20reference%20for%20alv%20grid%20control.pdf
    http://www.sapdevelopment.co.uk/reporting/alvhome.htm
    http://www.sap-img.com/abap/what-is-alv-programming.htm
    http://www.sap-img.com/abap-function.htm
    http://www.geocities.com/mpioud/Abap_programs.html
    http://www.sapdevelopment.co.uk/reporting/alv/alvtree%5Calvtree_basic.htm
    http://esnips.com/doc/ad20dca9-6182-4903-8d8f-96a66dc8590c/ALV.pdf
    http://www.sap-img.com/abap-function.htm
    Classical ALV:
    http://www.geocities.com/mpioud/Abap_programs.html
    OOPS ALV:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a415907
    Also Chk this standard Programs.
    ABAP_OBJECTS_ENJOY_0 Template for Solutions of ABAP Object Enjoy Course
    ABAP_OBJECTS_ENJOY_1 Model Solution 1: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_2 Model Solution 2: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_3 Model Solution 3: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_4 Model Solution 4: ABAP Objects Enjoy Course
    ABAP_OBJECTS_ENJOY_5 Model Solution 5: ABAP Objects Enjoy Course
    DEMO_ABAP_OBJECTS Complete Demonstration for ABAP Objects
    DEMO_ABAP_OBJECTS_CONTROLS GUI Controls on Screen
    DEMO_ABAP_OBJECTS_EVENTS Demonstration of Events in ABAP Objects
    DEMO_ABAP_OBJECTS_GENERAL ABAP Objects Demonstration
    DEMO_ABAP_OBJECTS_INTERFACES Demonstration of Interfaces in ABAP Objects
    DEMO_ABAP_OBJECTS_METHODS Demonstration of Methods in ABAP Objects
    DEMO_ABAP_OBJECTS_SPLIT_SCREEN Splitter Control on Screen
    Reward points if found helpful

  • DYNAMIC PROGRAMMING IN WEBDYNPRO ABAP.

    Hi Experts
    How to create input field dynamical and when i click on the input field drop down ui  should display,If i click n time the input field that many drop down should be displayed this should be done using dynamic programming.
    Waiting for Reply.
    Thanks & Regards.
    kittu

    Hi,
    Please search before posting.. discussed many times.
    To create Input field dynamically, follow like this...
    DATA LR_CONTAINER TYPE REF TO CL_WD_UIELEMENT_CONTAINER.
    DATA LR_INPUT TYPE REF TO CL_WD_INPUT_FIELD.
    DATA LR_LABEL TYPE REF TO CL_WD_LABEL.
    DATA LR_TABLE TYPE REF TO CL_WD_TABLE.
    DATA LR_BUTTON TYPE REF TO CL_WD_BUTTON.
    DATA LR_GRID_DATA TYPE REF TO CL_WD_GRID_DATA.
    DATA LR_FLOW_DATA TYPE REF TO CL_WD_FLOW_DATA.
    DATA LR_MATRIX TYPE REF TO CL_WD_MATRIX_HEAD_DATA.
    LR_CONTAINER ?= VIEW->GET_ELEMENT( 'ROOTUIELEMENTCONTAINER' ).
    CALL METHOD CL_WD_INPUT_FIELD=>NEW_INPUT_FIELD
    EXPORTING
    BIND_VALUE = ATTRIBUTE
    ID = ATTRIBUTE
    RECEIVING
    CONTROL = LR_INPUT.
    lr_matrix = cl_wd_matrix_head_data=>new_matrix_head_data( lr_input ).
    lr_input->set_layout_data( lr_matrix ).
    LR_CONTAINER->ADD_CHILD( LR_INPUT ).
    ENDIF.
    Cheers,
    Kris.

  • Submitting a dynamic program with layout name

    Hi,
    I searched many blogs and the SDN forum but couldn't find a solution.
    I need to know the layout fields of an ALV report for a later usage. Let me explain it with code:
    I used below code to extract data of a dynamic program.
    cl_salv_bs_runtime_info=>set(
      EXPORTING display  = abap_false
        metadata = abap_true
        data     = abap_true ).
      Submit (program)  USING SELECTION-SET variant EXPORTING LIST TO MEMORY
                AND RETURN.
      TRY.
          cl_salv_bs_runtime_info=>get_data_ref(
      IMPORTING r_data = lf_ref ).
          ASSIGN lf_ref->* TO <lt_data>.
        CATCH cx_salv_bs_sc_runtime_info.
          MESSAGE `Unable to retrieve ALV data` TYPE 'E'.
      ENDTRY.
      cl_salv_bs_runtime_info=>clear_all( ).
      CREATE DATA lf_ref1 LIKE LINE OF <lt_data>.
      ASSIGN lf_ref1->* TO <lt_line>.
    What I need is to submit program with a (known) layout. If it is not possible, how can i modify the ALV report to fit a layout's display properties. (If I can manage to get -dynamic program- layout's visible fields, it will work too.)
    Thank you.

    Hi ,
    Check this LINK  you can take help from this
    create dynamic varient and pass  to Submit program .
    [how to create a variant dynamically and get it?;
    OR  :
    you can use function module to get layout names and  reprot 
    ranges: lr_report for ltdx-report,
              lr_handle for ltdx-handle,
              lr_log_group for ltdx-log_group,
              lr_username  for ltdx-username,
              lr_variant   for ltdx-variant,
              lr_type      for ltdx-type.
    call function 'LT_VARIANTS_READ_FROM_LTDX'
        exporting
          i_tool          = r_tool
          i_text          = r_text
        tables
          et_variants     = rt_variants
          it_ra_report    = lr_report
          it_ra_handle    = lr_handle
          it_ra_log_group = lr_log_group
          it_ra_username  = lr_username
          it_ra_variant   = lr_variant
          it_ra_type      = lr_type
        exceptions
          not_found       = 1
          others          = 2.
    regards
    Deepak.
    Edited by: Deepak Dhamat on Jan 23, 2012 8:18 AM

  • Simple type values retrieving in dynamic programming

    Hello,
    Can somebody help me to get the values of a simple type in dynamic programming. I am using the following code:
    wdcontext.currentcustomergraph().getgraphstyle().
    After the values selected in the drop-down, I am not able to get the selected value in dynamic code. Please help.
    Thanks,
    Sunita.

    Hello Vishwas,
    I already did everything what you mentioned. When I use this in WdDoModifyView( )
    wdContext.currentContextElement().getCustomerGraphStyles()
    I am not able to retrieve the values inside customerGraphStyles().
    Thanks,
    Sunita.

  • Regarding Dynamic Programming in HR-ABAP

    Hi,
         I have problem on the dynamic programming. The Reqirement is like, Infotype
    0008 if shows one Initial screen , into that infotype we have to add five fields this is
    an Enhancement and after we adding that fields into that infotype we should do some logics based on the wagetype , and once we enter an input to that IT 0008
    we get that five field values l. How can i solve this problem please help me.
    Regards,
    Sadanandam

    Please this is and Urgent Requirement

  • Dynamic Programing : WebDynPro ABAP

    Hi expert ,
                      I need to create UI element (Text_view) dynamically ,
                      can anyone send the code for that one .
    Thanks & Regards
    Sankar.M

    Hi,
    Refer to this link -
    Dynamic Programing
    Regards,
    Lekha.

  • Dynamic programming How to assign a static UI element to a static tray

    Hi There,
    We are enhancing a standard WDA application and we have a few static UI element created on the view. And now we want to rearrange these element to look like this.
    Current:
    Root
    -> Transparent container1
    -> ZTray
    -> Transparent container2
    target
    Root
    -> ZTray
         -> Transparent container1
        -> Transparent container2
    Can you help me to find out me how can i perform this 'move" assignment using dynamic programming.
    Thanks for your inputs.
    Rgds

    Hi Sudhir,
    You can start trying something like this in WDDOMODIFYVIEW.
      DATA:
         lo_element       type ref to cl_wd_uielement,
         LO_CONTAINER    TYPE REF TO CL_WD_UIELEMENT_CONTAINER.
      IF first_time = abap_true.
        LO_CONTAINER ?= view->get_element( 'ROOTUIELEMENTCONTAINER' ).
        lo_element = LO_CONTAINER->REMOVE_CHILD( ID = 'ZTRAY' ).
        LO_CONTAINER->ADD_CHILD( INDEX = 1
                                 THE_CHILD = LO_ELEMENT ).
      ENDIF.
    I never did something like that. I guess that depending on the layout type of the view this code will need some changes (e.g matrix layout). I tried a simple test with flow layout and worked fine here.

  • Dynamic Programming - Attribute Mapping

    Hi
    Im working on Web Dynpro for ABAP Application where Im using dynamic programming.
    I've created node and attributes dynamically (using ADD_NEW_CHILD_NODE & ADD_ATTRIBUTE methods resp.) & bound the dynamically created Textedit UI elements to those attributes. The application is running fine upto this.
    Now I want to get the text entered in textedit field from the context. For this I'm using GET_ATTRIBUTE method. Here Im getting dump with error message 'Could not find attribute V_TEST.1.CN_INPUT.1.ATTR11 '. When I debug the GET_ATTRIBUTE method, I found out that the internal table DYNAMIC_ATTRIBUTES is initial. The internal table ATTRIBUTES->* is getting populated in the metod ADD_ATTRIBUTE.
    Pls suggest the solution or any alternative method for this.

    Hi ,
    this is happening because the attributes are added dynamically . to get the attribute value at runtime u have to follow the below procedure .
    DATA : LR_ROOT_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO ,
              LR_NODE_INFO TYPE REF TO IF_WD_CONTEXT_NODE_INFO,
               LR_STRUCTDESCR TYPE REF TO CL_ABAP_STRUCTDESCR ,
               LS_COMPONENT TYPE CL_ABAP_STRUCTDESCR=>COMPONENT,
               LT_COMPONENTS TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE,
               LR_TYPE TYPE  REF TO CL_ABAP_DATADESCR .
    LR_TYPE ?= cl_abap_TYPEdescr=>describe_by_name( p_name  = 'MATNR' ).
        LS_COMPONENT-NAME = 'MATNR'.
        LS_COMPONENT-TYPE = LR_TYPE .
       APPEND LS_COMPONENT TO LT_COMPONENTS.
    LR_TYPE ?= cl_abap_TYPEdescr=>describe_by_name( p_name  = 'MAKTX' ).
        LS_COMPONENT-NAME = 'MAKTX'.
        LS_COMPONENT-TYPE = LR_TYPE .
       APPEND LS_COMPONENT TO LT_COMPONENTS.
    CALL METHOD cl_abap_structdescr=>create
          EXPORTING
            p_components = LT_COMPONENTS
               receiving
           p_result     = LR_STRUCTDESCR
    CATCH cx_sy_struct_creation .
        *ENDTRY.
      LR_ROOT_INFO = WD_CONTEXT->GET_NODE_INFO( ).
            CALL METHOD lr_root_info->add_new_child_node
      498    EXPORTING
      499  *    supply_method                =
      500  *    supply_object                =
      501  *    dispose_method               =
      502  *    dispose_object               =
      503  *    static_element_type          =
      504      name                         = 'DATA'                                  " NODE NAME
      505  *    is_mandatory                 = ABAP_FALSE
      506  *    is_mandatory_selection       = ABAP_FALSE
      507  *    is_multiple                  = ABAP_TRUE
      508  *    is_multiple_selection        = ABAP_TRUE
      509  *    is_singleton                 = ABAP_FALSE
      510      is_initialize_lead_selection = ABAP_false
      511      static_element_rtti          = LR_STRUCTDESCR   
      512  *    is_static                    = ABAP_TRUE                       " ADD ATTRIBUTE AS STATIC
      513  *    attributes                   =
      514    receiving
      515      child_node_info              = LR_NODE_INFO .
    Regards
    Yash

  • Dynamic Programming - RTTC - Appending lines

    I give up! Maybe someone else can help me with this Dynamic Programming problem.
    I am using RTTC to create an itab. Now I want to append lines and for some reason can't seem to crack the syntax I need.
    My latest attempt looks like this...
                FIELD-SYMBOLS: <table> TYPE ANY TABLE,
                               <row> TYPE ANY.
                lo_sdescr      = cl_abap_structdescr=>create( lt_components ).
                lo_tdescr      = cl_abap_tabledescr=>create( lo_sdescr ).
                CREATE DATA lr_alloc->alloc_table TYPE HANDLE lo_tdescr.
                CREATE DATA lr_struct TYPE HANDLE lo_rdescr.
                ASSIGN lr_alloc->alloc_table->* TO <table>.
                APPEND INITIAL LINE TO <table> ASSIGNING <row>.
    The syntax check I get on the APPEND statement is "You cannot use explicit or implicit index operations on tables with type "ANY TABLE".
    All the doco and examples I can find use a simple "SELECT * ... INTO CORRESPONDING FIELDS OF TABLE <table>" syntax which it not what I need to do.
    Any help it appreciated.
    Thanks
    Graham Robbo

    Hello Graham
    The solution is quite simple (at least to overcome your syntax error):
    FIELD-SYMBOLS:
      <gt_itab>     TYPE STANDARD TABLE,  " use STANDARD instead of ANY
      <gs_struc>    TYPE ANY.
    *& Report  Z_RTTI_CREATE_COMPLEX_ITAB
    *& NOTE: revised version of ZUS_SDN_RTTI_CREATE_STRUCTURES
    *& Thread: Dynamic Programming - RTTC - Appending lines
    *& <a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="980407"></a>
    REPORT  z_rtti_create_complex_itab.
    TYPE-POOLS: abap.
    DATA:
      celltab          TYPE lvc_t_styl.  " becomes field of complex itab
    DATA:
      gd_tabnam        TYPE string,
      gd_tabfield      TYPE string,
      go_table         TYPE REF TO cl_salv_table,
      go_sdescr        TYPE REF TO cl_abap_structdescr,
      go_sdescr_new    TYPE REF TO cl_abap_structdescr,
      go_tdescr        TYPE REF TO cl_abap_tabledescr,
      gdo_data         TYPE REF TO data,
      gdo_handle       TYPE REF TO data,
      gs_component     TYPE abap_compdescr,
      gs_comp          TYPE abap_componentdescr,
      gt_components    TYPE abap_component_tab.
    FIELD-SYMBOLS:
      <gt_itab>     TYPE STANDARD TABLE,
      <gs_struc>    TYPE ANY.
    PARAMETER:
      p_tabnam      TYPE tabname  DEFAULT 'KNB1'.
    START-OF-SELECTION.
      " Describe structure
      go_sdescr ?= cl_abap_structdescr=>describe_by_name( p_tabnam ).
      gd_tabnam     = go_sdescr->get_relative_name( ).
      " Simulate dynamic addition of columns
      LOOP AT go_sdescr->components INTO gs_component.
        "   Build fieldname
        CONCATENATE gd_tabnam gs_component-name INTO gd_tabfield
                                                SEPARATED BY '-'.
        CLEAR: gs_comp.
        gs_comp-type ?= cl_abap_datadescr=>describe_by_name( gd_tabfield ).
        gs_comp-name  = gs_component-name.
        APPEND gs_comp TO gt_components.
      ENDLOOP.
      "   Create instances of dynamic structure and dynamic internal table
      go_sdescr_new  = cl_abap_structdescr=>create( gt_components ).
      go_tdescr      = cl_abap_tabledescr=>create( go_sdescr_new ).
      "   Create data refence followed by table creation
      CREATE DATA gdo_handle TYPE HANDLE go_sdescr_new.
      ASSIGN gdo_handle->* TO <gs_struc>.
      CREATE DATA gdo_handle TYPE HANDLE go_tdescr.  " !!!
      ASSIGN gdo_handle->* TO <gt_itab>.
      APPEND INITIAL LINE TO <gt_itab> ASSIGNING <gs_struc>.
      TRY.
          CALL METHOD cl_salv_table=>factory
            IMPORTING
              r_salv_table = go_table
            CHANGING
              t_table      = <gt_itab>.
          go_table->display( ).
        CATCH cx_salv_msg .
      ENDTRY.
    END-OF-SELECTION.
    Regards
      Uwe

  • Dynamic programming tabstrip, no tabs in pull down navigation menu

    Hi everybody,
    I create with dynamic programming a tabstrip with some tabs. Than I have the problem that the navigation menu ( or pull down menu ) for the navigation between the tabs is not filled.
    So my question is, must I put the generated tabs in the menu and how, or is it a feature not yet supported? I couldn’t find a method to do this.
    Thanks for any help
    Regards
    Christian

    webmasterinflorida wrote:
    > Hi everyone,
    >
    > I was wondering if I could get some input. I have just
    re-designed our
    > magazine's site, www.easternsurf.com
    >
    > I used Pop-Up menu function in Fireworks 8 to generate
    our Navigator bar. For
    > the most part everything has been working well, BUT
    we've had a couple of
    > complaints that the navigator bar's pull-down menus get
    stuck behind the
    > photos/banner ads/etc.
    Consider redesigning again? The page is 240 kb, which is
    about 200 kb
    more than it should be. It would be OK if everyone used a
    high speed
    connection, but broadband penetration in the US is stuck at
    around 50%.
    About half your viewers aren't going to stick around until
    the page
    finished loading.
    Skim through the forum posts to learn more (and scary stuff)
    about the
    drop down menus.
    Linda Rathgeber [PVII] *Adobe Community Expert-Fireworks*
    http://www.projectseven.com
    Fireworks Newsgroup:
    news://forums.projectseven.com/fireworks/
    CSS Newsgroup: news://forums.projectseven.com/css/
    http://www.adobe.com/communities/experts/

  • Dynamic Programming Change Making Problem - Need Someone to Review

    I've created a dynamic program in which you can input any amount with any given coin denominations and it should output the least amount of coins needed to solve, HOWEVER, there are some glitches I was hoping some of you could point out and correct. Here's the code for my main method and the code for my instance methods.
    public class Changemaker
    public static void main (String args[])
              int amt = Integer.parseInt(args[0]); // Initialize the method in which the program will be invoked
              Tuple[][] t = new Tuple[args.length - 1][amt + 1]; // Create the matrix
              int [] coins = new int [args.length - 1]; // Create empty array that stores the amount of coin denominations
              for (int i = 0; i < coins.length; i++) // Store input values into array called coins
                   coins[i] = Integer.parseInt ( args[i+1] );
              for (int i = 0; i < coins.length; i++) // Establish a 0 value in the first column of every row
                   t[0] = new Tuple (coins.length);
              for (int i = 0; i < coins.length; i++) // Create a tuple that checks if the given coin denomination can create the amount
                   for (int j = 0; j < amt + 1; j++)
                        if (j - coins[i] < 0) // Create a null tuple if the amount is less than the arguments
                             t[i][j] = new Tuple (coins.length);
                        else // Mantra
                             int remainder = j - coins[i]; // Take the coin out of the amount
                             t[i][j] = new Tuple (coins.length); // Create a new blank tuple of coin length
                             t[i][j].setElement(i, 1);// Change the tuple location from 0 to 1 to keep track of it
                             t[i][j].add(t[i][remainder]); // Add the tuple in the remainder cell to the existing tuple
                        try
                             if (t[i][j].total() > t[i - 1][j].total()) // Return total elements in tuple directly above
                                  if (t[i - 1][j] != null)
                                       t[i][j] = t[i - 1][j];                    
                        catch (ArrayIndexOutOfBoundsException e)
                        System.out.println(t[i][j].toString());
    }Class for Instance Methodspublic class Tuple
         private int [] change;
         public Tuple (int n) // Constructor class, elements initialized at zero
              this.change = new int [n];
              for ( int i = 0; i < this.change.length; i++)
                   this.change[i] = 0;
         public Tuple (int [] data) // Constructor class that creates a n-tuple from given data
              this.change = new int[data.length]; //Initialize the array change to incorporate data into each element
              for (int i = 0; i < this.change.length; i++)
                   this.change[i] = data[i];
         public void setElement (int i, int j) // Set element i to value j
              this.change[i] = j;
         public int getElement (int i)
              return this.change[i];
         public int length()
              return this.change.length;
         public int total() // Return total of elements in tuple
              int sum = 0;
              for (int i = 0; i < this.change.length; i++)
                   sum += this.change[i];
              return sum;
         public void add (Tuple t) // adds a tuple t to tuple
              * Make a new "change" array that equals the current one
              * Create another array called tuple t
              * Add the new "change" array with the tuple t
              for (int i = 0; i < this.change.length; i++)
                   this.change[i] = this.change[i] + t.getElement(i);
         public boolean equals(Object t) // Return true if tuple identical to t
              * Determine if object is a tuple t
              * Check to see if tuple t is the same size of change
              * If true, loop both and compare
              for (int i = 0; i < this.change.length; i++)
                   if (this.change[i] != getElement(i))
                        return false;
              return true;
         public Tuple copy() //Return an exact copy of tuple
              Tuple copy = new Tuple(this.change);
              return copy;
         public String toString() // Returns a string of the tuple
              String s = "";
              for (int i = 0; i < this.change.length; i++)
                   s += this.change[i];
              return "<," + s + ",>";
              /* Add for loop
              * Add value at each index of array into string
    *Output:*
    *java ChangemakerTest 5 1 2 3*
    <000>
    <100>
    <200>
    <300>
    <400>
    <500>
    <000>
    <000>
    <010>
    <010>
    <020>
    <020>
    <000>
    <000>
    <000>
    <001>
    <001>
    <001>
    *The correct output using the above execution line should be:*
    <000>
    <100>
    <200>
    <300>
    <400>
    <500>
    <000>
    <100>
    <010>
    <110>
    <020>
    <120>
    <000>
    <100>
    <010>
    <001>
    <101>
    <011>                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

    A bit of advice on getting advice.
    1) Ask a specific question, nobody is going to debug your program for you
    2) Avoid the word "Dynamic", especially if you don't know what it means.

Maybe you are looking for

  • Dbms_java in oracle 10.2.0.4

    Hi, How to install and unistall dbms_java package in oracle 10g (10.2.0.4) Thanks.

  • Passing Configuration Details with Dynamic Value - SFTP Adapter

    Hi: We are using SFTP adapter to get and load the files to a secured location. Now there is one more secured location which has IP address where we need to load the same file in that location. So is it possible to make the configurations in Deploymen

  • Sending and recieving Emails

    Hi Experts.....! I have setup an Exchange Server 2010 for a company e.g  ABC . Now i want to configure it to send and receive emails from the internet what things do i need for that. I know about MX records. But can anyone tell me how to register and

  • How to call SQL statements in InDesign CS6?

    Hi,      My plug-in needs to interact with the database, and update the database content, how should I do, can I call SQL statements in InDesign CS6?      Thanku very much.

  • Export Image to Clipboard Crash

    Has anyone else had any problem with the Export Image when Clipboard is the selected target.  It works fine for me as part of the development environment but crashes the program when used as part of a built executable. (LabVIEW 8.5)