Scroll for an af:iterator component

Hi,
I have an af:iterator into an af:menu component with the rows attribute set to -1. How can i display the af:iterator list into a scrollable component with a fixed height?
By default the component displays all its items and introduces a vertical scroll to the page, not to the component itself.
Thank you

Hi,
I want to keep my af:iterator component bound to an af:menu. If I introduce a panel group layout inside the af:menu and inside the panel group my af:iterator, when I press the menu component it is rendered firstly the panel group layout empty with the specific height and then the menu items from the af:iterator.
Thanks.

Similar Messages

  • Parent Child Synchronization using a Iterator Component

    Hi All,
    I am working on ADF 11.1.1.5.0. I have the following business requirement :
    I have DepartmentVO and EmployeeVO with a view link defined on DepartmentId attribute.
    Use Case : I need to display all departments with their respective childs with a specific UI design i.e. i need to show all the Departments as Panel boxes and their respective children inside the panel box.
    So for that i have used the Iterator component which will dynamically create Panel boxes based on the rowcount of DepartmentVO .(if there are 5 records in dept table then 5 panel boxes will be formed).
    Similarly for child i have used another Iterator component(inside parent Iterator) which will display its respective children.
    jspx code is as follows :
    <af:panelGroupLayout id="pgl1" layout="scroll">
    <af:iterator id="i2" value="#{bindings.DepartmentsView1.collectionModel}"
    var="row">
    <af:panelBox text="#{row.DepartmentId} -- #{row.DepartmentName}" id="pb1" styleClass="AFStretchWidth">
    <af:panelGroupLayout id="pgl3">
    <af:iterator id="i1" value="#{bindings.EmployeesView3.collectionModel}"
    var="attr">
    <af:outputText value="#{attr.DepartmentId}" id="ot1"/>
    <af:outputText value="#{attr.FirstName}" id="outputText1"/>
    <af:outputText value="#{attr.LastName}" id="outputText2"/>
    </af:iterator>
    </af:panelGroupLayout>
    </af:panelBox>
    </af:iterator>
    </af:panelGroupLayout>
    When i run the page i see all the parent records as panel boxes but child records are not properly synchronized. The children of first parent is getting repeated inside all parents.This probably is the first parent is set as current row for which its children get repeated in all other parents.
    If i run the same through AppModule it runs perfectly as in appmodule run we hv a NEXT button to iterate the Parent VO.
    Thnks
    -Sanjeeb

    HI ,
    Instead of what you have tried, you can try this. EmployeesView here should be present as a child accessor in DepartmentsView.
    <af:iterator id="i2"
    value="#{bindings.DepartmentsView1.collectionModel}"
    var="row">
    <af:panelBox text="#{row.DepartmentId} --#{row.DepartmentName}"
    id="pb1" styleClass="AFStretchWidth">
    <af:panelGroupLayout id="pgl3" layout="vertical">
    <af:iterator id="i1" value="#{row.EmployeesView}" var="attr">
    <af:panelGroupLayout id="pgl0" layout="horizontal">
    <af:outputText value="#{attr.FirstName}" id="outputText1"/>
    <af:outputText value="#{attr.EmployeeId}" id="outputText2"/>
    <af:outputText value="#{attr.LastName}" id="outputText3"/>
    </af:panelGroupLayout>
    </af:iterator>
    </af:panelGroupLayout>
    </af:panelBox>
    </af:iterator>
    Hope this anwsers your question.
    Thanks,
    TJ

  • Opinion: new Package for every new custom Component?

    Hi there,
    I am just thinking of some possibilities to structurize my Components I made.
    I wonder if it is useful/good programming to define a new package for each new custom Component?
    So if I define a new MyComponent class extending JFrame should I make a new package:
    "mycomponent"
    containing these subfolders:
    "view"
    "model"
    "controler"
    subfolging "controler" in:
    "listeners"
    "adapters"
    "events"
    Is there any sense to do so? I think this would be the best way to structurize one's components.
    But if you do, you have to include millions of packages if you want to use one of these components :(.
    Please post, what you think.
    Thank you
    Sincerely
    Karlheinz Toni

    nope ;). I would most certainly not want to put every file in a single directory.
    But I like sturctured things. If things belong to each other, it should be visible at once, that they have something to to with each other. And the best method I can figure you is putting them in one package.
    The subpackages should be created, because of the model, that is used for all swing componentd (UI-delegete, MVC...) so that each structural component is where it belongs to.
    I don't like it if tere are 100 events one object could possibly create and you don't know the events from the component (of course you can guess by the name Event :)), but if they are in the same package, you would have to scroll a long way to get the thing you want (either m, v or c).
    So this is why I would do it ;).
    Anyway: do includes make the program run slower (I have read many threads about it, but there are way to many opinions, so I would be grateful if you post your opinions here, thx ;).
    Thanks for your answer,
    Sincerely
    Karlheinz Toni
    p.s.: why wouldn't you put them in a seperate directory (just overkill?), would you use classes that are structured like this if you are looking for a implementation of something and find it in this structure?

  • JSF Iterator Component

    I was looking for a quick solution for a JSF iterator, because i dont want to use the h:dataTable i have to write my own component, and here is what i came up with.
    public class JSFUIDataIterator extends UIData{
        public void encodeChildren(FacesContext oContext) throws IOException {
          if (oContext == null){
            throw new NullPointerException();
          int iProcessed = 0;
          int iRowIndex = getFirst() - 1;
          int iRows = getRows();
          Iterator oKids = getChildren(this);
          do{
            if(iRows > 0 && ++iProcessed > iRows)
              break;
            setRowIndex(++iRowIndex);
            if (!isRowAvailable())
              break;
            for(; oKids.hasNext();){
              UIComponent oKid = (UIComponent)oKids.next(); 
              encodeRecursive(oContext,oKid);
          } while(true);
        protected Iterator getChildren(UIComponent oComponent){
            List oResults = new ArrayList();
            for(Iterator oKids = oComponent.getChildren().iterator(); oKids.hasNext();){
              UIComponent oKid = (UIComponent)oKids.next();
              if(oKid.isRendered())
                 oResults.add(oKid);
            return oResults.iterator();
        private void encodeRecursive(FacesContext oContext,UIComponent oComponent) throws IOException{
           if (!oComponent.isRendered()){
             return; 
           oComponent.encodeBegin(oContext);
           if (oComponent.getRendersChildren()){
             oComponent.encodeChildren(oContext);
           else{
             Iterator oChildren = getChildren(oComponent);
             for(;oChildren.hasNext();){
               UIComponent oChildComponent = (UIComponent)oChildren.next();
               encodeRecursive(oContext,oChildComponent);
           oComponent.encodeEnd(oContext);
    }not want to be bothered by creating a renderer this component will render itself, but there is a problem, even though its iterating all the data elements its displaying the first data item. i missed something minor that i cant figure out. can anyone help?

    I haven't got a reply so i went to look at my code again, and i managed to identify the problem.
    I hope this code will help all those who want to use the iterator tag in JSF.
    this simple custom component will give you more control over your data elements
    here is the code for the custom component.
      public class DataIterator extends UIData{
        public void encodeChildren(FacesContext oContext) throws IOException {
          if (oContext == null){
            throw new NullPointerException();
          int iProcessed = 0;
          int iRowIndex = getFirst() - 1;
          int iRows = getRows();
          do{
            if(iRows > 0 && ++iProcessed > iRows)
              break;
            setRowIndex(++iRowIndex);
            if (!isRowAvailable())
              break;
            Iterator oKids = getChildren(this);
            for(; oKids.hasNext();){
              UIComponent oKid = (UIComponent)oKids.next(); 
              encodeRecursive(oContext,oKid);
          } while(true);
        protected Iterator getChildren(UIComponent oComponent){
            List oResults = new ArrayList();
            for(Iterator oKids = oComponent.getChildren().iterator(); oKids.hasNext();){
              UIComponent oKid = (UIComponent)oKids.next();
              if(oKid.isRendered())
                 oResults.add(oKid);
            return oResults.iterator();
        private void encodeRecursive(FacesContext oContext,UIComponent oComponent) throws IOException{
           if (!oComponent.isRendered()){
             return; 
           oComponent.encodeBegin(oContext);
           if (oComponent.getRendersChildren()){
             oComponent.encodeChildren(oContext);
           else{
             Iterator oChildren = getChildren(oComponent);
             for(;oChildren.hasNext();){
               UIComponent oChildComponent = (UIComponent)oChildren.next();
               encodeRecursive(oContext,oChildComponent);
           oComponent.encodeEnd(oContext);
      }you only need these three methods in your component, i have stripped out logging and comments to keep the size of this post smaller, the rest is pretty straight forward.
    you need a CustomTag class for the component and it should at least take two attributes : items and var.
    your tag library should look something like this:
        <name>forEach</name>
        <tag-class>myjsf.DataIteratorTag</tag-class>
        <body-content>JSP</body-content>
        <attribute>
          <name>items</name>
          <required>true</required>
          <rtexprvalue>true</rtexprvalue>
          <type>java.lang.String</type>
        </attribute>
        <attribute>
          <name>var</name>
          <required>true</required>
          <rtexprvalue>false</rtexprvalue>
          <type>java.lang.String</type>
        </attribute>in the jsp page here is my sample file:
    <%@taglib uri="/WEB-INF/data-iterator.tld" prefix="tbc" %>
       <faces:view>
         <faces:verbatim>
           <table>
         </faces:verbatim>
         <tbc:forEach items="#{myCollection.musicTitles}" var="oRow">
          <faces:verbatim>
            <tr style="background-color:#EEEEEE;">
              <td>
          </faces:verbatim>
          <html:outputText value="#{oRow}"/>
         <faces:verbatim>
              </td>
            </tr>
         </faces:verbatim>
         </tbc:forEach>
         <faces:verbatim>
           </table>
         </faces:verbatim>

  • Unable get the table scroll for table control

    hai
    i unable get horizontal scrolling for table control when the output is dislayed
    help me
    very urgent

    Hi,
    check out the sample program it might help you
    See the following simple ex
    *& Module pool ZTEST_TBLCTRL
    PROGRAM ZTEST_TBLCTRL.
    ***&SPWIZARD: DATA DECLARATION FOR TABLECONTROL 'TC1'
    *&SPWIZARD: DEFINITION OF DDIC-TABLE
    TABLES: ZFG_SRNO, ZFIH0004.
    *&SPWIZARD: TYPE FOR THE DATA OF TABLECONTROL 'TC1'
    *TYPES: BEGIN OF T_TC1,
    ZSRNO LIKE ZFG_SRNO-ZSRNO,
    SCRNAME LIKE ZFIH0004-SCRNAME,
    END OF T_TC1.
    *TYPES: BEGIN OF T_TC1.
    STRUCTURE ZFG_SRNO.
    END OF T_TC1.
    *&SPWIZARD: INTERNAL TABLE FOR TABLECONTROL 'TC1'
    *DATA: G_TC1_ITAB TYPE T_TC1 OCCURS 0 WITH HEADER LINE,
    G_TC1_WA TYPE T_TC1. "work area
    DATA: G_TC1_ITAB LIKE ZFG_SRNO OCCURS 0 WITH HEADER LINE,
    G_TC1_WA LIKE G_TC1_ITAB. "work area
    DATA: G_TC1_COPIED. "copy flag
    *&SPWIZARD: DECLARATION OF TABLECONTROL 'TC1' ITSELF
    CONTROLS: TC1 TYPE TABLEVIEW USING SCREEN 0100.
    *&SPWIZARD: LINES OF TABLECONTROL 'TC1'
    DATA: G_TC1_LINES LIKE SY-LOOPC.
    DATA: OK_CODE LIKE SY-UCOMM,
    S_CODE LIKE SY-UCOMM,
    MARK.
    DATA: T1(10).
    *&SPWIZARD: OUTPUT MODULE FOR TC 'TC1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: COPY DDIC-TABLE TO ITAB
    MODULE TC1_INIT OUTPUT.
    IF G_TC1_COPIED IS INITIAL.
    *&SPWIZARD: COPY DDIC-TABLE 'ZFG_SRNO'
    *&SPWIZARD: INTO INTERNAL TABLE 'g_TC1_itab'
    SELECT * FROM ZFG_SRNO
    INTO CORRESPONDING FIELDS
    OF TABLE G_TC1_ITAB.
    G_TC1_COPIED = 'X'.
    REFRESH CONTROL 'TC1' FROM SCREEN '0100'.
    IF T1 <> SPACE.
    G_TC1_ITAB-ZSRNO = T1.
    CLEAR T1.
    APPEND G_TC1_ITAB.
    REFRESH CONTROL 'TC1' FROM SCREEN '0100'.
    ENDIF.
    *TC1-TOP_LINE = 1.
    ENDIF.
    ENDMODULE.
    *&SPWIZARD: OUTPUT MODULE FOR TC 'TC1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: MOVE ITAB TO DYNPRO
    MODULE TC1_MOVE OUTPUT.
    MOVE-CORRESPONDING G_TC1_WA TO ZFG_SRNO.
    if sy-subrc ne 0.
    *append G_TC1_WA to G_TC1_ITAB.
    *endif.
    READ TABLE G_TC1_ITAB INDEX TC1-CURRENT_LINE.
    IF SY-SUBRC = 0.
    G_TC1_WA-ZSRNO = G_TC1_ITAB-ZSRNO.
    ENDIF.
    MOVE-CORRESPONDING G_TC1_ITAB TO ZFG_SRNO.
    REFRESH CONTROL 'TC1' FROM SCREEN '8001'.
    *******Below line is the logic for scrolling.
    tc1-lines = G_TC1_LINES + 100.
    ENDMODULE.
    *&SPWIZARD: OUTPUT MODULE FOR TC 'TC1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: GET LINES OF TABLECONTROL
    MODULE TC1_GET_LINES OUTPUT.
    G_TC1_LINES = SY-LOOPC.
    ENDMODULE.
    *&SPWIZARD: INPUT MODULE FOR TC 'TC1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: MODIFY TABLE
    MODULE TC1_MODIFY INPUT.
    *break-point.
    MOVE-CORRESPONDING ZFG_SRNO TO G_TC1_ITAB.
    MODIFY G_TC1_ITAB INDEX TC1-CURRENT_LINE.
    G_TC1_COPIED = 'X'.
    REFRESH CONTROL 'TC1' FROM SCREEN '8001'.
    MOVE-CORRESPONDING ZFG_SRNO TO G_TC1_WA.
    MODIFY G_TC1_ITAB
    FROM G_TC1_WA
    INDEX TC1-CURRENT_LINE.
    G_TC1_COPIED = 'X'.
    if sy-subrc ne 0.
    append G_TC1_WA to G_TC1_ITAB.
    endif.
    *modify G_TC1_ITAB INDEX TC1-CURRENT_LINE.
    ENDMODULE.
    *&SPWIZARD: INPUT MODULE FOR TC 'TC1'. DO NOT CHANGE THIS LINE!
    *&SPWIZARD: PROCESS USER COMMAND
    MODULE TC1_USER_COMMAND INPUT.
    OK_CODE = SY-UCOMM.
    PERFORM USER_OK_TC USING 'TC1'
    'G_TC1_ITAB'
    'FLAG'
    CHANGING OK_CODE.
    SY-UCOMM = OK_CODE.
    ENDMODULE.
    INCLUDE TABLECONTROL_FORMS *
    *& Form USER_OK_TC *
    FORM USER_OK_TC USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME
    P_MARK_NAME
    CHANGING P_OK LIKE SY-UCOMM.
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA: L_OK TYPE SY-UCOMM,
    L_OFFSET TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    *&SPWIZARD: Table control specific operations *
    *&SPWIZARD: evaluate TC name and operations *
    SEARCH P_OK FOR P_TC_NAME.
    IF SY-SUBRC <> 0.
    EXIT.
    ENDIF.
    L_OFFSET = STRLEN( P_TC_NAME ) + 1.
    L_OK = P_OK+L_OFFSET.
    *&SPWIZARD: execute general and TC specific operations *
    CASE L_OK.
    WHEN 'INSR'. "insert row
    PERFORM FCODE_INSERT_ROW USING P_TC_NAME
    P_TABLE_NAME.
    CLEAR P_OK.
    WHEN 'DELE'. "delete row
    PERFORM FCODE_DELETE_ROW USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME.
    CLEAR P_OK.
    WHEN 'P--' OR "top of list
    'P-' OR "previous page
    'P+' OR "next page
    'P++'. "bottom of list
    PERFORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
    L_OK.
    CLEAR P_OK.
    WHEN 'L--'. "total left
    PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
    WHEN 'L-'. "column left
    PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
    WHEN 'R+'. "column right
    PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
    WHEN 'R++'. "total right
    PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
    WHEN 'MARK'. "mark all filled lines
    PERFORM FCODE_TC_MARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    CLEAR P_OK.
    WHEN 'DMRK'. "demark all filled lines
    PERFORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    CLEAR P_OK.
    WHEN 'SASCEND' OR
    'SDESCEND'. "sort column
    PERFORM FCODE_SORT_TC USING P_TC_NAME
    l_ok.
    ENDCASE.
    ENDFORM. " USER_OK_TC
    *& Form FCODE_INSERT_ROW *
    FORM fcode_insert_row
    USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_LINES_NAME LIKE FELD-NAME.
    DATA L_SELLINE LIKE SY-STEPL.
    DATA L_LASTLINE TYPE I.
    DATA L_LINE TYPE I.
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE CXTAB_CONTROL.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <LINES> TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: get looplines of TableControl *
    CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_LINES_NAME.
    ASSIGN (L_LINES_NAME) TO <LINES>.
    *&SPWIZARD: get current line *
    GET CURSOR LINE L_SELLINE.
    IF SY-SUBRC <> 0. " append line to table
    L_SELLINE = <TC>-LINES + 1.
    *&SPWIZARD: set top line *
    IF L_SELLINE > <LINES>.
    <TC>-TOP_LINE = L_SELLINE - <LINES> + 1 .
    ELSE.
    <TC>-TOP_LINE = 1.
    ENDIF.
    ELSE. " insert line into table
    L_SELLINE = <TC>-TOP_LINE + L_SELLINE - 1.
    L_LASTLINE = <TC>-TOP_LINE + <LINES> - 1.
    ENDIF.
    *&SPWIZARD: set new cursor line *
    L_LINE = L_SELLINE - <TC>-TOP_LINE + 1.
    *&SPWIZARD: insert initial line *
    INSERT INITIAL LINE INTO <TABLE> INDEX L_SELLINE.
    <TC>-LINES = <TC>-LINES + 1.
    *&SPWIZARD: set cursor *
    SET CURSOR LINE L_LINE.
    ENDFORM. " FCODE_INSERT_ROW
    *& Form FCODE_DELETE_ROW *
    FORM fcode_delete_row
    USING P_TC_NAME TYPE DYNFNAM
    P_TABLE_NAME
    P_MARK_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: delete marked lines *
    DESCRIBE TABLE <TABLE> LINES <TC>-LINES.
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    IF <MARK_FIELD> = 'X'.
    DELETE <TABLE> INDEX SYST-TABIX.
    IF SY-SUBRC = 0.
    <TC>-LINES = <TC>-LINES - 1.
    ENDIF.
    ENDIF.
    ENDLOOP.
    ENDFORM. " FCODE_DELETE_ROW
    *& Form COMPUTE_SCROLLING_IN_TC
    text
    -->P_TC_NAME name of tablecontrol
    -->P_OK ok code
    FORM COMPUTE_SCROLLING_IN_TC USING P_TC_NAME
    P_OK.
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TC_NEW_TOP_LINE TYPE I.
    DATA L_TC_NAME LIKE FELD-NAME.
    DATA L_TC_LINES_NAME LIKE FELD-NAME.
    DATA L_TC_FIELD_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <LINES> TYPE I.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get looplines of TableControl *
    CONCATENATE 'G_' P_TC_NAME '_LINES' INTO L_TC_LINES_NAME.
    ASSIGN (L_TC_LINES_NAME) TO <LINES>.
    *&SPWIZARD: is no line filled? *
    IF <TC>-LINES = 0.
    *&SPWIZARD: yes, ... *
    L_TC_NEW_TOP_LINE = 1.
    ELSE.
    *&SPWIZARD: no, ... *
    CALL FUNCTION 'SCROLLING_IN_TABLE'
    EXPORTING
    ENTRY_ACT = <TC>-TOP_LINE
    ENTRY_FROM = 1
    ENTRY_TO = <TC>-LINES
    LAST_PAGE_FULL = 'X'
    LOOPS = <LINES>
    OK_CODE = P_OK
    OVERLAPPING = 'X'
    IMPORTING
    ENTRY_NEW = L_TC_NEW_TOP_LINE
    EXCEPTIONS
    NO_ENTRY_OR_PAGE_ACT = 01
    NO_ENTRY_TO = 02
    NO_OK_CODE_OR_PAGE_GO = 03
    OTHERS = 0.
    ENDIF.
    *&SPWIZARD: get actual tc and column *
    GET CURSOR FIELD L_TC_FIELD_NAME
    AREA L_TC_NAME.
    IF SYST-SUBRC = 0.
    IF L_TC_NAME = P_TC_NAME.
    *&SPWIZARD: et actual column *
    SET CURSOR FIELD L_TC_FIELD_NAME LINE 1.
    ENDIF.
    ENDIF.
    *&SPWIZARD: set the new top line *
    <TC>-TOP_LINE = L_TC_NEW_TOP_LINE.
    ENDFORM. " COMPUTE_SCROLLING_IN_TC
    *& Form FCODE_TC_MARK_LINES
    marks all TableControl lines
    -->P_TC_NAME name of tablecontrol
    FORM FCODE_TC_MARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME.
    &SPWIZARD: EGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: mark all filled lines *
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    <MARK_FIELD> = 'X'.
    ENDLOOP.
    ENDFORM. "fcode_tc_mark_lines
    *& Form FCODE_TC_DEMARK_LINES
    demarks all TableControl lines
    -->P_TC_NAME name of tablecontrol
    FORM FCODE_TC_DEMARK_LINES USING P_TC_NAME
    P_TABLE_NAME
    P_MARK_NAME .
    &SPWIZARD: BEGIN OF LOCAL DATA----
    DATA L_TABLE_NAME LIKE FELD-NAME.
    FIELD-SYMBOLS <TC> TYPE cxtab_control.
    FIELD-SYMBOLS <TABLE> TYPE STANDARD TABLE.
    FIELD-SYMBOLS <WA>.
    FIELD-SYMBOLS <MARK_FIELD>.
    &SPWIZARD: END OF LOCAL DATA----
    ASSIGN (P_TC_NAME) TO <TC>.
    *&SPWIZARD: get the table, which belongs to the tc *
    CONCATENATE P_TABLE_NAME '[]' INTO L_TABLE_NAME. "table body
    ASSIGN (L_TABLE_NAME) TO <TABLE>. "not headerline
    *&SPWIZARD: demark all filled lines *
    LOOP AT <TABLE> ASSIGNING <WA>.
    *&SPWIZARD: access to the component 'FLAG' of the table header *
    ASSIGN COMPONENT P_MARK_NAME OF STRUCTURE <WA> TO <MARK_FIELD>.
    <MARK_FIELD> = SPACE.
    ENDLOOP.
    ENDFORM. "fcode_tc_mark_lines
    *& Module D20XX_INIT OUTPUT
    text
    MODULE D20XX_INIT OUTPUT.
    *if screen-name = 'ZSRNO'.
    SCREEN-INPUT = 0.
    SCREEN-COLOR = 0.
    MODIFY SCREEN.
    endif.
    ENDMODULE. " D20XX_INIT OUTPUT
    *& Module STATUS_0100 OUTPUT
    text
    MODULE STATUS_0100 OUTPUT.
    SET PF-STATUS 'xxxxxxxx'.
    SET TITLEBAR 'xxx'.
    *CLEAR R1_REF.
    DO 30 TIMES.
    APPEND G_TC1_ITAB.
    ENDDO.
    DESCRIBE TABLE G_TC1_ITAB LINES TC1-LINES.
    ENDMODULE. " STATUS_0100 OUTPUT
    *& Module TAB1_INIT OUTPUT
    text
    MODULE TAB1_INIT OUTPUT.
    ENDMODULE. " TAB1_INIT OUTPUT
    *& Module USER_COMMAND_0100 INPUT
    text
    MODULE USER_COMMAND_0100 INPUT.
    ENDMODULE. " USER_COMMAND_0100 INPUT
    *& Module MESSAGE INPUT
    text
    MODULE MESSAGE INPUT.
    OK_CODE = SY-UCOMM.
    S_CODE = OK_CODE.
    CLEAR OK_CODE.
    if S_CODE = 'DELE'.
    loop at G_TC1_ITAB.
    if G_TC1_ITAB-scrname = 'X'.
    delete g_tc1_itab.
    endif.
    endloop.
    ELSEIF S_CODE = 'SAVE'.
    G_TC1_WA-ZSRNO = T1.
    MOVE-CORRESPONDING G_TC1_WA TO ZFG_SRNO.
    REFRESH CONTROL 'TC1' FROM SCREEN '0100'.
    ENDIF.
    ENDMODULE. " MESSAGE INPUT
    *& Module DELETE_RECORD INPUT
    text
    MODULE DELETE_RECORD INPUT.
    IF MARK = 'X' AND S_CODE = 'DELE'.
    DELETE TABLE G_TC1_ITAB FROM ZFG_SRNO.
    DESCRIBE TABLE G_TC1_ITAB LINES TC1-LINES.
    ENDIF.
    ENDMODULE. " DELETE_RECORD INPUT
    *********************Screen modules*********************
    PROCESS BEFORE OUTPUT.
    *&SPWIZARD: PBO FLOW LOGIC FOR TABLECONTROL 'TC1'
    MODULE TC1_INIT.
    *&SPWIZARD: MODULE TC1_CHANGE_TC_ATTR.
    *&SPWIZARD: MODULE TC1_CHANGE_COL_ATTR.
    LOOP AT G_TC1_ITAB
    INTO G_TC1_WA
    WITH CONTROL TC1
    CURSOR TC1-CURRENT_LINE.
    *&SPWIZARD: MODULE TC1_CHANGE_FIELD_ATTR
    MODULE TC1_MOVE.
    MODULE TAB1_INIT.
    MODULE TC1_GET_LINES.
    ENDLOOP.
    MODULE D20XX_INIT.
    MODULE STATUS_0100.
    PROCESS AFTER INPUT.
    *&SPWIZARD: PAI FLOW LOGIC FOR TABLECONTROL 'TC1'
    *BREAK POINT.
    LOOP AT G_TC1_ITAB.
    CHAIN.
    FIELD ZFG_SRNO-ZSRNO.
    MODULE TC1_MODIFY ON CHAIN-REQUEST.
    MODULE TC1_MODIFY.
    ENDCHAIN.
    MODULE MESSAGE .
    MODULE DELETE_RECORD.
    ENDLOOP.
    MODULE TC1_USER_COMMAND.
    *&SPWIZARD: MODULE TC1_CHANGE_TC_ATTR.
    *&SPWIZARD: MODULE TC1_CHANGE_COL_ATTR.
    MODULE USER_COMMAND_0100.
    please check out the link below for more information it might help you
    http://help.sap.com/saphelp_sm32/helpdata/en/9f/dbac9f35c111d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw04/helpdata/en/d1/801c7b454211d189710000e8322d00/content.htm
    http://www.sapbrainsonline.com/REFERENCES/ABAP_SYNTAX/SAP_ABAP_SYNTAX.html
    *********please reward points if the information is helpful to you*************

  • BADI for Updating work order component data

    Hi,
    I need to update the field special stock indicator for the work order component data when it is saved. I am using the BADI WORKORDER_UPDATE for the same, but when I implemented the ZWORKORDER_UPDATE_IM using the standard defenition  WORKORDER_UPDATE , the code does not allow me to change the it_component internal table belonging to the BEFORE_UPDATE method. Could you please help me in this.
    Basically if we are implementing a standard defenition how to change the parameters of the methods in it.
    Regards,
    Prabaharan.G

    Hi ,
    It is giving the below dump. The parameter is importing parameter and it does not allow to change even using field symbol. Is there any other way. Is there an user exit which will be called when pressing enter button in component screen. The exit EXIT_SAPLCOBT_001 did not work for this.
    Error analysis                                                                     
        The program tried to assign a new value to the field "<F_FS1>" even though     
        it is protected against changes.                                                                               
    The following objects are protected:                                           
        - Character or numeric literals                                                
        - Constants (CONSTANTS)                                                        
        - Parameters of the category IMPORTING REFERENCE for functions                 
          and methods                                                                  
        - Untyped field symbols to which a field has not yet been assigned             
          using ASSIGN                                                                 
        - TABLES parameters if the corresponding actual parameter is protected         
          against changes                                                              
        - USING reference parameters and CHANGING parameters for FORMs if              
          the actual parameter for this is protected against changes    
    Regards,
    Prabaharan.G

  • Does IC WebClient require a J2EE engine for any of its component

    Does IC WebClient requires a J2EE engine for any of its component? What's the need to install j2ee engine on CRM server?
    I would appreciate if anybody could give a good answer or any kind of documentation on it.

    Prakash,
    The answer is yes in terms of the J2EE enginge being required.  It primarily handles your multichannel access and broadcast messaging for the call center.  If you don't install it, then your IC webclient will not work correctly.  We are not using the "telphony" features of the call center, but still installed the java piece so that the standard functionality would work correctly.
    Good luck,
    Stephen

  • How does one define a default style for a custom Flex component?

    How does one define a default style for a custom Flex component?
    hello
    I created a new set of Flex component library slib.swc (Flex 4.5). Would also like to have a default style. defaults.css file, making it the default style of the component library.
    Like flex the builder install directory of sdks \ 4.5.0 \ frameworks out \ libs directory has a spark.swc file, open with Winrar will see defaults.css this file. Defaults.css file defines the default style of the flex spark components.
    How can it be achieved?
    As follows
    slib.swc contains a CLabelEx components, and a defaults.css file
    defaults.css source file as follows:
    @ namespace s "library :/ / ns.adobe.com / flex / spark";
    @ namespace mx "library :/ / ns.adobe.com / flex / mx";
    @ namespace cn "http://os.slib.cn";
    cn | CLabelEx
            styBackgroundAlpha: 1;
            styBackgroundColor: # 569CC0;
            styBorderAlpha: 1;
            styBorderColor: # 569CC0;
            styBorderWeight: 1;
            styCornerRadius: 3;
    In slib.swc the application MyLabel.mxml of the source file as follows:
    <? xml version = "1.0" encoding = "utf-8"?>
    <s: Application, the xmlns: fx = "http://ns.adobe.com/mxml/2009
                               xmlns: s = "library :/ / ns.adobe.com / flex / spark"
                               xmlns: mx = "library :/ / ns.adobe.com / flex / mx"
                               xmlns: cn = "http://os.slib.cn
                               the minWidth = "955" The minHeight = "600">
            <fxeclarations>
            </ fxeclarations>
            <cn:CLabelEx x="67" y="112"/>
    </ s: Application>
    I hope CLabelEx default use cn | CLabelEx, style to display its appearance.
    I refer to above approach, but failed to achieve. Can you please re-Detailed
    Thanks!

    dj is right. Any Folder can be a picture folder.
    Create a root level folder and add it to your Pictures Library in Windows.  It will show up with all the scattered pictures from other programs. It can even be a different dirve if you like.  You  can even specify one to be the default save location for pictures in this dialog.
    Navigate to Pictures in your Libraries in Windows Explorer Right Click and select Properties.
    Message was edited by: Rikk Flohr forgot the instructions...

  • Horizontal Scroll for Apex 4

    I need horizontal scroll for a page in Apex 4. I saw an old thread about horizontal scroll using Apex 3.2. Below is the link for that thread where vee gave some plugin code to achieve this scrolling:
    horizontal bar Scroolling.
    I saved the code in the thread as js file and tried to import it as a plugin but the import was unsuccessful saying that was not a plugin file.
    Has anybody done it in Apex 4? I will be grateful for guidance to achieve this.
    Thanks

    Hi,
    For horizontal scroll copy your theme 15 standard report theme to new name.
    Change template Before Rows to
    <table summary="" cellspacing="0" id="report_#REGION_STATIC_ID#">
    <tr>
    <td>
    <table class="t15standard" summary="" cellspacing="0" #REPORT_ATTRIBUTES#>And template After Rows to
    </td></tr></table>
    <tr>
        <td colspan="99" class="t15afterrows">
            <span class="left">#EXTERNAL_LINK##CSV_LINK#</span>
            <table style="float:right;text-align:right;" summary="pagination">#PAGINATION#
    </table>
        </td>
    </tr></table>Horizontal/Vertical scroll, you need create same kind custom template I have in sample application for page 1 report
    Regards,
    Jari
    Edited by: jarola on Apr 20, 2011 5:56 PM

  • Listing logical database for a given application component

    hi
    which function module will return the logical database for a given application component from the SAP hierarchy.
    Example:
    Input- application component- LO
    output- MSM, etc.,
    Thank you.
    your time and answers will be compensated with points.

    Why dont you use two selects to get the required information#
    TAble <b>APADEVC</b>
    Here you will get the link from Application Component to Package
    Application Class - Packet
    Package           - Devclass
    Then if you go into Table <b>TADIR</b>
    and give the following input
    PGMID = R3TR
    OBJECT = LDBA
    DEVCLASS = package name
    you will get all the Logical Databases for that Application Component.
    Here obj_name will be the Name of the LDB's
    Message was edited by:
            Dominic Pappaly

  • [svn:fx-trunk] 12025: Switching out the old video component for the new video component that uses OSMF .

    Revision: 12025
    Revision: 12025
    Author:   [email protected]
    Date:     2009-11-19 17:48:04 -0800 (Thu, 19 Nov 2009)
    Log Message:
    Switching out the old video component for the new video component that uses OSMF.  Also fixing RSL issue with OSMF because a change in flex-config.xml accidentally got overwritten.  Also fixing a bug caught during the last code review where you would set the volume on the VideoPlayer, but the volumeBar wouldn't be made aware of that change.
    Switching out the video component results in many API changes.  The changes are highlighted below:
    Class name changes:
    - spark.primitives.VideoElement is being renamed to spark.components.VideoDisplay
    - spark.components.mediaClasses.StreamingVideoSource is renamed to park.components.mediaClasses.DynamicStreamingVideoSource
    - spark.components.mediaClasses.StreamItem is renamed to park.components.mediaClasses.DynamicStreamingVideoItem
    VideoDisplay/VideoPlayer event changes:
    The new video component's events are:
    - bytesLoadedChange : org.osmf.events.LoadEvent
    - currentTimeChange : org.osmf.events.TimeEvent
    - durationChange : org.osmf.events.TimeEvent
    - mediaPlayerStateChange : org.osmf.events.MediaPlayerStateChangeEvent
    The old video component's events were:
    - close : spark.events.VideoEvent (removed)
    - complete : spark.events.VideoEvent (replaced with mediaPlayerStateChange)
    - metaDataReceived : spark.events.VideoEvent (replaced with mediaPlayerStateChange)
    - playheadUpdate : spark.events.VideoEvent (replaced with currentTimeChange)
    - progress : flash.events.ProgressEvent (replaced with bytesLoadedChange)
    - ready : spark.events.VideoEvent (replaced with mediaPlayerStateChange)
    VideoDisplay/VideoPlayer property changes:
    Renames:
    - maintainAspectRatio:Boolean has been renamed to scaleMode:String and rather than true/false, it now access 4 values: none, zoom, letterbox, and stretch.  See the enum class org.osmf.display.ScaleMode.
    - playheadTime:Number has been renamed to currentTime:Number
    - playWhenHidden has been renamed to pauseWhenHidden, and it's "tense" has been reversed.  So playWhenHidden = true correlates to pauseWhenHidden = false.  Also, before we would only pause when the video component was explcitly set to visible=false, but now we detect if the video components or any of it's ancestors have been hidden.
    - totalTime:Number has been renamed to duration:Number
    New properties:
    - bytesLoaded:Number This is a new property not available on the old video component
    - bytesTotal:Number This is a new property not available on the old video component
    - loop: Boolean this was a property added a while ago on the old video component but not in the original video player spec
    - mediaPlayerState: this is a new property that details the state of the video component.  See org.osmf.media.MediaPlayerState for all the possible values.
    - seekToFirstFrame:Boolean (pending PARB approval) - This is a new property available on VideoDisplay/VideoPlayer.  When autoPlay = false, if seekToFirstFrame is set to true, then we will connect to the server to start downloading the video, figure out the size of the video and resize appropriately, and show the first frame of the video.  If seekToFirstFrame is false, then no connection to the server is made, there's no implicit size for this video, and the first frame will not be show automatically.  By default the value of this property is true.  In the old video component, when autoPlay = false, we always has the same behavior as seekToFirstFrame = true.  Now it is controllable through this property.  Eventually, (not for Flex 4.0), we will most-likely have support for a thumbnail source or a splash screen so the video's preview will show up without making an unneeded connection to the server.  The property name may change depending on PARB.
    Other changes:
    - autoRewind: The default of autoRewind is now true instead of false
    - enabled: before we paused the video when the video component was explicitly set to enabled = false.  Now we pause the video when the video component or any of it's ancestors have been disabled.
    VideoPlayer-only changes:
    - videoObject:flash.media.Video property is now a new property on VideoPlayer.  It was previously only on VideoDisplay.
    - The skin states for the old VideoPlayer were: connectionError, disabled, disconnected, loading, playing, stopped, connectionErrorAndFullScreen, disabledAndFullScreen, disconnectedAndFullScreen, loadingAndFullScreen, playingAndFullScreen, stoppedAndFullScreen.  The new skin states are: uninitialized, loading, ready, playing, paused, buffering, playbackError, disabled, uninitializedAndFullScreen, loadingAndFullScreen, readyAndFullScreen, playingAndFullScreen, pausedAndFullScreen, bufferingAndFullScreen, playbackErrorAndFullScreen, disabledAndFullScreen
    DynamicStreamingVideoItem property changes:
    - bitRate:Number renamed to bitrate:Number
    DynamicStreamingVideoSource property changes:
    - initialIndex has been added to DynamicSteramingVideoSource
    - live:Boolean has changed to streamType:String which accepts values: live, recorded, any.  See the enum class org.osmf.net.StreamType for more info.
    - serverURI:String renamed to host:Object
    - streamItems:Array has changed types to streamItems:Vector.
    ScrubBar property changes (THESE CHANGES ARE NOT DONE YET, BUT SHOULD BE DONE SOON)
    - bufferedStart will be removed
    - bufferedEnd will be renamed to loadedRangeEnd.  This property name still may change depending on PARB.
    - bufferedArea skin part needs to be renamed.  Probably will be renamed to loadedArea.  PARB still deciding.
    QE notes: -
    Doc notes: -
    Bugs: -
    Reviewer: Kevin
    Tests run: checkintests
    Is noteworthy for integration: Yes
    Modified Paths:
        flex/sdk/trunk/frameworks/flex-config.xml
        flex/sdk/trunk/frameworks/projects/spark/defaults.css
        flex/sdk/trunk/frameworks/projects/spark/src/SparkClasses.as
        flex/sdk/trunk/frameworks/projects/wireframe/build.xml
        flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/VideoPlayerSkin.mx ml
        flex/sdk/trunk/frameworks/spark-manifest.xml
    Added Paths:
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VideoPlayerSkin.mxml
    Removed Paths:
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer2.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamItem.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamingVideo Source.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/VideoElement.png
        flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VideoPlayerSkin.mxml
        flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/VideoPlayerSkin2.mxml

    I've got that same problem: iPod Touch 2nd Gen, Apple Component Cables, and an HD TV.
    The funny thing is, the cable works fine with an iPod Classic (160 GB) but not for the iPod Touch. Can anyone explain why that is?

  • For loop 1 iteration execution time

    Hi,
    what is the time taken of for loop 1 iteration without code inside.How to calculate this Execution time.

    Ravindranath.K wrote:
    Hi,
    what is the time taken of for loop 1 iteration without code inside.How to calculate this Execution time.
    No code in the FOR loop?  It will not use any time because the compiler will optimize it out.
    Why do you even need to know?
    There are only two ways to tell somebody thanks: Kudos and Marked Solutions
    Unofficial Forum Rules and Guidelines

  • Looking for a text entry component

    Hi,
    I'm looking for a text entry component I can insert in some HTML pages and that will allow the end user to enter and format texts.
    Do you know if such a component exists and where I can find it ?

    I think I didn't took enough time to read your answer.
    Do you mean the textara object in an applet will solve my problem ? most of the time, I'm developing java servlets and html pages but not applets. I'll try to have a look.

  • Error in getting process status for oracle instance: instance12- component: coreapplication_obisch1

    Hi,
    while uploading new rpd getting error message in enterpriise manger
    Error in getting process status for oracle instance: instance12- component: coreapplication_obisch1,chekced in the dignostic log found above mentioned error
    what can be cause of the probelm
    thanks

    Hi,
    1.Try using the sample rpd of it works, then the problem with the new rpd.
    2. Restart the service once then upload the new rpd.
    Regards,
    VG

  • How to hold a texts scroll for 3 seconds then scroll off?

    I'm using tweenlite. How do I hold the scroll for 3 seconds and scroll off the screen?
    Here is my current tweenlite code.
    TweenLite.to(txtField, 40, {x:-stage.stageWidth*2.25, ease:Linear.easeNone, delay:0.5, onComplete:Inspiration});
    Thank you.

    Okay, I'm not getting what I wanted. Here is my code:
    TweenLite.to(txtField, 3, {x:200, ease:Linear.easeNone, delay:0.5});
    var timer:Timer = new Timer(3000, 2);
        timer.addEventListener(TimerEvent.TIMER, scrollOut);
        timer.start();
    function scrollOut(e:TimerEvent):void{
        TweenLite.to(txtField, 3, {x:-200, ease:Linear.easeNone, delay:0.5, onComplete:Inspiration});
    I want the tweenlite to wait 3 seconds and the proceede with scroll off the screen that's why I have the scrollOut function; however, the effect is that the scrolling from right is pausing for 3 seconds every 2 seconds. How do I modify this?

Maybe you are looking for