SMARTFORMS - dynamic amount of the columns

Hi Everyone.
Please, would you give me some advice? I need to print a table with variable amount of columns. Is it possible to do it in SMARTFORMS?
Thanks in advance for any answer.
Pavel

Hello Pavel,
Please go these links:
Smart forms query
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/d937ec90-0201-0010-0ca8-b6cb3b6dd1ef
If useful reward.
Regards,
Vasanth

Similar Messages

  • Smartform Dynamic colour in the item table

    Hi Experts,
    I have a requirement wherein we need different colours for each item in the table according to a particular condition.
    If the value in the  column two is 1 ,first item should have a colour blue in the last column
    If the col2 is 2, second item should have red colour in the last column.
    and accordingly.
                          Col 1       Col2       Col3      Col4
    Row1                                1                   Blue colour
    Row2                                2                   Red colour
    Row3                                3                   Green colour
    Is this possible in smartforms.
    Already tried giving condition in the condition tab and choosing the colour for different text elements,which is not possible.
    Tried writing the below code in initialisation which is also not helping.
    * Color
    *DATA: l_tabdef  TYPE ssftabdef,     " Work Area for the Table
    *     t_ltypes  TYPE tsfltype,      " Table - Line types
    *     l_ltypes  TYPE ssfltype,      " Work Area for the table
    *     t_colinfo TYPE tsfcolinfo,    " Table - Columns
    *     l_colinfo TYPE ssfcolinfo,    " Work area for the table
    *     t_border  TYPE tsfctaba,      " Tables - Borders
    *     l_border  TYPE ssfctaba.      " Work Area for the borde
    * FIELD-SYMBOLS : <f_tab> type tsftabdef.
    *ASSIGN ('(SAPLSTXBC)TABDEFS') TO <f_tab>.
    *bREAK-POINT .
    *LOOP AT <f_tab> INTO l_tabdef  where name = 'ITEM_VALUES'.  "  only for one template
    ** Table line Types
    **  Line type TYPE1 from the table MAIN_TABLE
    *  LOOP AT l_tabdef-tltype INTO l_ltypes where linetype = 'L2'.  " only for one line type is required
    ** Coloum information
    **   Column1 (cell) of the TYPE1
    *    LOOP AT l_ltypes-tcolinfo INTO l_colinfo." where widthv = '1.31'. .
    ** Borders
    **   Background color and borders for that cell
    *      LOOP AT l_colinfo-borders INTO l_border.
    ** Clearing the color parameters for the cell
    *        CLEAR: l_border-intensity,              " Intensity
    *        l_border-fillcolor-red,          " Red
    *        l_border-fillcolor-used,         " Color Used
    *        l_border-cfillcolor-color,       " Red color in Hexa
    *        l_border-cfillcolor-xred.        " Color used in Hexa
    *        l_border-fillcolor-red = '255'.
    *        l_border-fillcolor-green = '000'.
    *        l_border-fillcolor-blue = '000'.
    *        l_border-fillcolor-used = 'X'.
    *        l_border-cfillcolor-color  = 'X'.
    *        l_border-cfillcolor-xred = 'FF'.
    *        l_border-cfillcolor-xgreen = '00'.
    *        l_border-cfillcolor-xblue = '00'.
    *        MODIFY l_colinfo-borders FROM l_border.
    *      ENDLOOP.
    *      MODIFY l_ltypes-tcolinfo FROM l_colinfo.
    *    ENDLOOP.
    *    MODIFY l_tabdef-tltype FROM l_ltypes.
    *  ENDLOOP.
    *  MODIFY <f_tab> FROM l_tabdef.
    *ENDLOOP.
    Please suggest and help on how to proceed.
    Thanks in advance.
    Jojy

    Can you try creating 3 identical line types in Smartform with just 3 different colors. Add a field to the internal table to specify the color. Add a condition to the line types to output based on the color field.
    Thanks,
    Juwin

  • How to show the columns dynamically in OBIEE report based on the selection?

    Hi,
    I have a requirement where the columns should be dynamically shown in report based on what we select in propmt page.
    I'm creating a report in OBIEE where i want to give an option to the end user to select the columns whichever he wants to see in the report.
    For example I have the following columns in the report already:
    Customer Name,
    Customer Number,
    Bank Account,
    Address
    I want to give an option to the user to select 'Customer Mail ID' dynamically and see the column to be displyed in the report along with the existing columns.
    Through 'Column Selector' user can select a single column at a time, but if he want to select more than one column, how can we do this ?
    Please help me out in resolving this issue.
    Thanks,
    Chaithanya.

    Hi Chaithanya,
    there's not a straight solution for this. You can create different analysis containing different number of columns and then directing the user to this analysis using Action Links or you can also use View Selector to switch from one view (analysis) to the other. But it's not going to be very flexible nor dynamic.
    J.

  • How to use the column names generated from Dynamic SQL

    Hi,
    I have a problem with Dynamic SQL.
    I have written an SQL which will dynamically generate the Select statement with from and where clause in it.
    But that select statement when executed will get me hundreds of rows and i want to insert each row separately into one more table.
    For that i have used a ref cursor to open and insert the table.
    In the select list the column names will also be as follows: COLUMN1, COLUMN2, COLUMN3,....COLUMNn
    Please find below the sample code:
    TYPE ref_csr IS REF CURSOR;
    insert_csr ref_csr;
    v_select VARCHAR2 (4000) := NULL;
    v_table VARCHAR2 (4000) := NULL;
    v_where VARCHAR2 (4000) := NULL;
    v_ins_tab VARCHAR2 (4000) := NULL;
    v_insert VARCHAR2 (4000) := NULL;
    v_ins_query VARCHAR2 (4000) := NULL;
    OPEN insert_csr FOR CASE
    WHEN v_where IS NOT NULL
    THEN 'SELECT '
    || v_select
    || ' FROM '
    || v_table
    || v_where
    || ';'
    ELSE 'SELECT ' || v_select || ' FROM ' || v_table || ';'
    END;
    LOOP
    v_ins_query :=
    'INSERT INTO '
    || v_ins_tab
    || '('
    || v_insert
    || ') VALUES ('
    || How to fetch the column names here
    || ');';
    EXECUTE IMMEDIATE v_ins_query;
    END LOOP;
    Please help me out with the above problem.
    Edited by: kumar0828 on Feb 7, 2013 10:40 PM
    Edited by: kumar0828 on Feb 7, 2013 10:42 PM

    >
    I Built the statement as required but i need the column list because the first column value of each row should be inserted into one more table.
    So i was asking how to fetch the column list in a ref cursor so that value can be inserted in one more table.
    >
    Then add a RETURNING INTO clause to the query to have Oracle return the first column values into a collection.
    See the PL/SQL Language doc
    http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/returninginto_clause.htm#sthref2307

  • Need to know the column names in my dynamic select clause

    Dear All,
    Please go through the following code. While executing the following code i am getting an error saying that dbms_sql.describe_columns overflow, col_name_len=35. Use describe_columns2.
    Please guide me how to proceed further. Or please help me, how can i get the column names when i issue a dynamic select clause.
    DECLARE
    CUR INTEGER;
    COL_CNT INTEGER ;
    A INTEGER;
    SEL_CLAUSE VARCHAR2(2000);
    DESC_T DBMS_SQL.DESC_TAB;
    REC DBMS_SQL.DESC_REC;
    b number;
    BEGIN
    SEL_CLAUSE := 'SELECT 1,2,DECODE(1,1,''ONE'',2,''TWO'',3,''THREE'') FROM DUAL';
    --'SELECT ROWID,PARA_SUB_CODE,DECODE('||''''||'ENG'||''''||','||''''||'ENG'||''''||',PARA_NAME,PARA_BL_NAME),NULL,NULL FROM PCOM_APP_PARAMETER';
    --'SELECT 1,2,DECODE(1,1,''ONE'',2,''TWO'') FROM DUAL';
    DBMS_OUTPUT.PUT_LINE( SEL_CLAUSE );
    CUR := DBMS_SQL.OPEN_CURSOR;
    DBMS_SQL.PARSE(CUR,SEL_CLAUSE,DBMS_SQL.NATIVE);
    DBMS_SQL.DESCRIBE_COLUMNS(CUR,COL_CNT,DESC_T);
    B := desc_t.first;
    FOR J IN 1..COL_CNT
    LOOP
    DBMS_OUTPUT.PUT_LINE('J := '||J || ' COL CNT ' || COL_CNT);
    END LOOP;
    BEGIN
    A := DBMS_SQL.EXECUTE(CUR);
    EXCEPTION
    WHEN OTHERS THEN
    NULL;
    END;
    END;
    Regards,
    Balaji

    Is there any way can i have it directly??It does not work with static SQL either. Dynamic SQL is no different.
    SQL> select 1 x from dual where x = 1 ;
    select 1 x from dual where x = 1
    ERROR at line 1:
    ORA-00904: "X": invalid identifier
    SQL>As suggested already, you will need to use alias if you want your select expression to be referred in the where clause.
    SQL> BEGIN
      2      FOR rec IN (SELECT *
      3                  FROM   (SELECT 1,
      4                                 2,
      5                                 DECODE(1, 1, 'ONE', 2, 'TWO', 3, 'THREE') "DECODE(1, 1, 'ONE', 2, 'TWO', "
      6                          FROM   DUAL)
      7                  WHERE  "DECODE(1, 1, 'ONE', 2, 'TWO', " = 'ONE')
      8      LOOP
      9          NULL;
    10      END LOOP;
    11  END;
    12  /
    PL/SQL procedure successfully completed.
    SQL>Message was edited by:
    Kamal Kishore

  • Smartforms - how to change the with of a column in main

    Hi all,
    How do I go about to make one column in the main wider so that the whole column title is fit on one line? E.g.:
    how it is:    
    tax amou
    nt
    how I want it to be:
    % tax amount
    Thanks in advance for all the helpful answers!
    BR,
    Armin

    Armin,
    Check the Template of the MAIN window under which you will be able to change the width  of the column in the Table Painter Details.
    K.Kiran.

  • How to change the column width in Smartforms..?

    Hi All..
    I need to change the column width in a smartform.
    The requirement has been mentioned as follows...
    Adjust the column width of the following columns:
    MATERIAL: 14 char
    DESCRIPTION: 20 char
    How to perform this..??
    Where can i find the column width of various columns of a smartform..???
    Please Help me...
    Regards
    Pavan

    In the SMART Forms, you would have created a Table object and specified the line width and divided that into no. of columns that you want, you have to mandatorily specify the width of each column so that total of column width will be equal to that of the line width.
    When you double click on the Table object, you can TABLE tab on the right side. If you can't see the line / columns details, click on the DETAILS button.
    Regards,
    Ravi
    Note - Please mark all the helpful answers

  • How to change the column postion in Dynamic Table

    Folks,
    I have an ess application which is creating dynamic table from dynamic node, I need to change one of the column position , please let me know how to do
    Thanks,
    Manish

    problem solved

  • Dynamic Columns, using the element name as the column header name

    BI Publisher Experts,
    I'm a relative newbie in the RTF layout world and i'm trying to acheive a layout which dynamically nominates the column headers as the element name.
    For example using the XML below:
    <?xml version="1.0" encoding="UTF-8" ?>
    - <ROWSET>
    - <DATA>
    - <THREECOLUMNDATA>
    <FIRST_NAME>First Name</FIRST_NAME>
    <LAST_NAME>Last Name</LAST_NAME>
    <EMAIL>[email protected]</EMAIL>
    </THREECOLUMNDATA>
    </DATA>
    </ROWSET>
    Excuse formatting, looked ok in preview!
    I'd like to acheive the following output:
    | FIRST_NAME | LAST_NAME | EMAIL |
    |-----------------------|---------------------- |--------------------------------------------------------|
    | First Name | Last Name | [email protected] |
    I've managed to get the row data columns working using:
    <?for-each@cell:current()/*?><?.?><?parent::*/text()?> <?end for-each?>
    And i've been working on the header for a while now, using
    <?for-each@column:current()/THREECOLUMNDATA[1]/*?><?name(.)?><?end for-each?>
    But no luck with the header. I only ever get a blank header.
    I've also reviewed the following syntax:
    <?split-column-header:THREECOLUMNDATA?> <?/FIRST_NAME?>
    But of course, this pulls specific element data out as the header, not quite what I need.
    Question is: Is there specific functionality to pull the element name out as the header, or do I somehow specifically need to include the header name as a data value in the XML?
    Advice appreciated!

    If you could get your XML to look like this instead of what you have, you will be able to use split-column-header and split-column-data
    <?xml version="1.0" encoding="UTF-8" ?>
    <ROWSET>
    <DATA>
    <THREECOLUMNDATA>
    <COL_DTLS>
    <COL_LABEL>FIRST_NAME</COL_LABEL>
    <COL_VALUE>First Name</COL_VALUE>
    </COL_DTLS>
    <COL_DTLS>
    <COL_LABEL>LAST_NAME</COL_LABEL>
    <COL_VALUE>Last Name</COL_VALUE>
    </COL_DTLS>
    <COL_DTLS>
    <COL_LABEL>EMAIL</COL_LABEL>
    <COL_VALUE>[email protected]</COL_VALUE>
    </COL_DTLS>
    </THREECOLUMNDATA>
    </DATA>
    </ROWSET>
    Now if you <?split-column-header:COL_DTLS?><?COL_LABEL?> and <?split-column-data:COL_DTLS?><?COL_VALUE?> you'll get the required output...

  • Dynamically change the column name....

    Hi,
    I am facing a problem in displaying name of the columns dynamically as a parameter selected from the dashboard prompt.
    I have some facts which contains data according to the selected month (From Prompt).
    As of now the column names are:
    Curr, Next1, Next2, Next3 which displays the data for the months accordingly to the selected month from prompt.
    Data is coming correctly but on the report the column name are displayed as Curr, Next1, Next2 and Next3 which I want to be displayed as the month name for which it contains data.
    How can I do that? I have tried presentation variables to be used in custom heading but that is only as string.
    Thanks in advance !!!
    Regards,
    S Anand
    Edited by: S Anand on Nov 20, 2009 2:29 AM
    Edited by: S Anand on Nov 20, 2009 2:29 AM

    My scenario is little different, let me explain:
    My columns will remain same but values changes (based on column formula) according to the selected prompt value
    If I select 'Oct' from prompt then
    Curr will contain data for 'Oct' only
    Next1 will contain data for 'Nov' only
    Next2 will contain data for 'Dec' only
    Next3 will contain data for 'Jan' of next year only.
    Later if I select 'Jul' from prompt then
    Curr will contain data for 'Jul' only
    Next1 will contain data for 'Aug' only
    Next2 will contain data for 'Sep' only
    Next3 will contain data for 'Oct' only.
    I don't have different columns for each months but the columns are capable to reflect data for any month.
    So, how can I reflect the column name as month name for which that contains data.
    Regards,
    S Anand

  • Dynamically Pass the Column Name cursor. || Dynamic Column Name

    Hi,
    I need to dynamically pass the column name based on a Mapping table in a loop ( Right now i have hardcoded stuff )just like using Execute immediate.... Inside the procedure, I have commented as where i hit the problem.
    Thanks for all of your time...
    Thanks
    Muthu
    CREATE OR REPLACE PROCEDURE xml_testing_clob AS
    doc xmldom.DOMDocument;
    main_node xmldom.DOMNode;
    root_node xmldom.DOMNode;
    user_node xmldom.DOMNode; item_node xmldom.DOMNode;
    root_elmt xmldom.DOMElement;
    item_elmt xmldom.DOMElement;
    item_text xmldom.DOMText;
    item_test xmldom.DOMText;
    nodelist xmldom.DOMNodeList;
    sub_variable varchar2(4000);
    x varchar2(200);
    y varchar2(200);
    sub_var varchar2(4000);
    CURSOR get_users IS
    SELECT FIRST_NAME,LAST_NAME,ROWNUM FROM USER_INFO_TBL WHERE WEIN_NUMBER = '1234' ;
    CURSOR get_cdisc_name IS
    select CTS_COL_NAME,CDISC_NAME from CTS2CDISC_DICTIONARY where CTS_TABLE_NAME = 'USER_INFO_TBL';
    BEGIN
    -- get document
    doc := xmldom.newDOMDocument;
    doc := xmldom.NewDomDocument;
    xmldom.setVersion(doc, '1.0');
    xmldom.setStandalone(doc, 'no');
    xmldom.setCharSet(doc, 'ISO-8859-1');
    -- create root element main_node := xmldom.makeNode(doc);
    root_elmt := xmldom.createElement(doc,'AdminData');
    root_node := xmldom.appendChild(main_node,xmldom.makeNode(root_elmt));
    FOR get_users_rec IN get_users LOOP
    item_elmt := xmldom.createElement(doc,'User');
    xmldom.setAttribute(item_elmt,'OID' , get_users_rec.rownum);
    user_node := xmldom.appendChild(root_node,xmldom.makeNode(item_elmt));
    FOR cv_get_cdisc_name IN get_cdisc_name LOOP
    EXIT WHEN get_cdisc_name%NOTFOUND;
    sub_var := cv_get_cdisc_name.cts_col_name;
    sub_variable := 'get_users_rec.';
    sub_variable := 'get_users_rec.'||cv_get_cdisc_name.cts_col_name;
    x := sub_variable;
    dbms_output.put_line(x); -------------- Here i just see the literal string
    y := get_users_rec.FIRST_NAME;
    dbms_output.put_line(y); -------------- Here i just see actual value ( data )
    item_elmt := xmldom.createElement(doc,cv_get_cdisc_name.cdisc_name);
    item_node := xmldom.appendChild(user_node,xmldom.makeNode(item_elmt));
    item_text := xmldom.createTextNode(doc,x ); ---- This is the place i am hitting with an error .
    If i use variable X then i am able to see only the literal
    string in the output. BUT if i put cursor name.coulmname,
    then the resumt (XML) is fine.I wanted acheive this
    dynamically just like execute Immediate
    item_node := xmldom.appendChild( item_node , xmldom.makeNode(item_text));
    END LOOP;
    END LOOP;
    -- write document to file using default character set from database
    xmldom.WRITETOCLOB(doc,);
    xmldom.writeToFile(doc, 'c:\ash\testing_out.xml');
    -- free resources
    xmldom.freeDocument(doc);
    END;
    +++++++++++++++++++++++++++++++++++ XML OUTPUT +++++++++++++++++++++++++++++++++++++++++
    <?xml version="1.0" ?>
    - <AdminData>
    - <User OID="1">
    <FirstName>get_users_rec.FIRST_NAME</FirstName>
    <LastName>get_users_rec.LAST_NAME</LastName> </User>
    - <User OID="2">
    <FirstName>get_users_rec.FIRST_NAME</FirstName>
    <LastName>get_users_rec.LAST_NAME</LastName>
    </User>
    - <User OID="3">
    <FirstName>get_users_rec.FIRST_NAME</FirstName>
    <LastName>get_users_rec.LAST_NAME</LastName>
    </User>
    - <User OID="4">
    <FirstName>get_users_rec.FIRST_NAME</FirstName>
    <LastName>get_users_rec.LAST_NAME</LastName>
    </User>
    - <User OID="5">
    <FirstName>get_users_rec.FIRST_NAME</FirstName>
    <LastName>get_users_rec.LAST_NAME</LastName>
    </User>
    ++++++++++++++++++++++++++++++++++++++++++++++++++++ MAPPING TABLE DETAILS +++++++++++++++++
    CTS_COL_NAME     CDISC_NAME     CTS_TABLE_NAME     XML_TAG     -----------> Column Name
    FIRST_NAME     FirstName     USER_INFO_TBL     Element     -----------> Records
    LAST_NAME     LastName     USER_INFO_TBL     Element     -----------> Records

    My scenario is little different, let me explain:
    My columns will remain same but values changes (based on column formula) according to the selected prompt value
    If I select 'Oct' from prompt then
    Curr will contain data for 'Oct' only
    Next1 will contain data for 'Nov' only
    Next2 will contain data for 'Dec' only
    Next3 will contain data for 'Jan' of next year only.
    Later if I select 'Jul' from prompt then
    Curr will contain data for 'Jul' only
    Next1 will contain data for 'Aug' only
    Next2 will contain data for 'Sep' only
    Next3 will contain data for 'Oct' only.
    I don't have different columns for each months but the columns are capable to reflect data for any month.
    So, how can I reflect the column name as month name for which that contains data.
    Regards,
    S Anand

  • How to change the column header name dynamically based on sysdate

    Post Author: senthi_gokul
    CA Forum: WebIntelligence Reporting
    Dear All,
            i have designed some reports. i would like to change the column header dynamically based on sysdate. up to 24 months. can u help me, which add month function using the universe. i dont know if-then-else function is having the universe tool or not?

    Post Author: prasingh
    CA Forum: WebIntelligence Reporting
    Are you saying you are not able to create an object by value (select: statement) as sysdate and put it onto the headers of your report? You can use the add_months() function on the object to add the numbers of months you wish.
    Please let me knnow for more.. You can get in touch with me on [email protected] for quick reply. 

  • How can we set the column size and height dynamically

    Hi All,
    I have a requirement where i am designing rtf for excel output.Here i have a column where the height of that particular column must get reset dynamically according to the data that's getting populated.
    Thankq in advance.

    I had the same problem and I finally found that you can't set a form bean.
    There is no methods to do this.
    The only way is to make it a dynamic form bean, but i haven't investigated it.
    Now I use normal beans to move data between pages.
    Sorry if it's not what you want. If you have another solution let me know.

  • How to Organize the columns in the dynamic internal table?

    Hello Folks!
    How to Organize the columns in the dynamic internal table? i tried passing the parameter COL_POS to the fieldcatalog, Which is not working.

    Organize in What order ? What is your way to output ?
    If you use ALV, you need to create fresh FIELD CATALOG for your dynamic table and then assign the column position.
    Regards,
    Diwakar

  • How can I access an amount in all the columns

    Hi,
    In my query I have calendar month/year in the column structure. 0Calmonth is mapped to posting date. If an amount is posted in jan, it'll be displayed under jan only. But I want to display the amount under every month. Is there any way to do this?
    Thanks,
    Mayank

    you need to use 2 structures in your query to use cell reference. Once you add 2 structures , you can see a blue icon in the toolbar which will take you to the cell editor. In there, you can choose to display the values in all columns.

Maybe you are looking for

  • Any idea what happened in this crash and if my MacBook needs work?

    A friend of mine suggested that I post the crash report here to see if anyone knows what happened and whether I need to do anything. I would go to a Genius Bar, but the nearest Apple Store to me is 3 hours away Here's what happened: I was working in

  • Has anyone found a stable browser for their Power Mac?

    I remember when I first jumped on the Macintosh bandwagon.  My friend at the time told me that "Apple has no problem leaving you behind."  I am wondering if the community has any solutions.  I have a PowerMac G5 that runs great most of the time, exce

  • Is it possible to save a HashMap in a Database

    Hi there, I have this method which stores some actions that have change a text in a JTextPane   private void createActionTable(JTextComponent textComponent) {         actions = new HashMap();         Action[] actionsArray = textComponent.getActions()

  • How to put the domain in string?

    What is the commands to put the Domain (the domain where the SWF is) in string (mydomain)? I tried to do it with no success. Thanks for the helpers.

  • Error when updating, now computer wont recognise.

    I was updating my iPod touch today, itunes downloaded the update for the ipod and when it went to install it apparently had an error and now it wont do squat. It doesnt show up under "my computer" nor iTunes (using usb cable of course).. i have a new