Example of Dynamic Structure for uix Pages
Hi for all,
I am trying to use the example of the UIX Developer's Guide topical 12 (Dynamic Structure for uix Pages) an example of class 'SampleClass'. In the line:
'Person[ ] people = _ getPeople(...);'
Somebody could explain me what it returns _getPeople. A String? Or explain me how populate it for a test?
Debtor,
Fernando.
It returns an array of Person classes (defined above).
public class Person
public String id;
public String firstName;
public String phoneNumber;
It's not important how _getPeople is implemented. Here's a quick, hacky,
approach:
private Person[] _getPeople()
Person[] people = new Person[2];
people[0] = new Person();
people[0].id = "1001";
people[0].firstName = "Albert";
people[0].phoneNumber = "212.555.4567";
people[1].id = "1002";
people[1].firstName = "Mary";
people[1].phoneNumber = "717.555.8421";
return people;
}
Similar Messages
-
How to write Resourebundle class for uix page
Our web application should support some different languages .I have took a look of "Internationalization" by help system but still not so clear.
How to make a simple uix page supported with multiple languages at runtime ? If Resoursebundle is the answer ,how to realize it? Has anybody example codes?
thanks
YongYes, you should use a java ResourceBundle, and you can use the bundle data provider to bind text from a bundle. This is described in the Internationalization chapter of the UIX developers guide.
As to how to write a resource bundle, there should be info available on the web, so try doing a search. -
t:tree component is not rendering tree structure for my page
Dear dudes,
I want to create a simple tree structure in my jsf page backed by a backing bean.
But my jsf page is getting executed but my tree is not getting displayed.
my jsf page:<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:rich="http://richfaces.ajax4jsf.org/rich"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax">
<f:view>
<html>
<body>
<h:form>
<t:tree id="tree" value="#{mytreeBean.myTree}" styleClass="tree"
nodeClass="treenode" selectedNodeClass="treenodeSelected"
>
</t:tree>
</h:form>
</body>
</html>
</f:view>
</ui:composition>Mybacking bean:
package org.test.tree;
import java.util.Iterator;
import java.util.List;
import org.apache.myfaces.custom.tree.DefaultMutableTreeNode;
import org.apache.myfaces.custom.tree.model.DefaultTreeModel;
import com.srit.framework.web.BasePage;
import com.srit.healthcare.common.lookupentity.repository.ILookupRepository;
import com.srit.healthcare.common.tree.domain.RcareTree;
public class MyTreebean {
private DefaultTreeModel myTree;
public DefaultTreeModel getMyTree() {
return myTree=getTreeModel();
public void setMyTree(DefaultTreeModel myTree) {
this.myTree = myTree;
/*public MyTreebean() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("XY");
DefaultMutableTreeNode a = new DefaultMutableTreeNode("A");
root.insert(a);
DefaultMutableTreeNode b = new DefaultMutableTreeNode("B");
root.insert(b);
DefaultMutableTreeNode c = new DefaultMutableTreeNode("C");
root.insert(c);
DefaultMutableTreeNode node = new DefaultMutableTreeNode("a1");
a.insert(node);
node = new DefaultMutableTreeNode("a2 ");
a.insert(node);
node = new DefaultMutableTreeNode("b ");
b.insert(node);
a = node;
node = new DefaultMutableTreeNode("x1");
a.insert(node);
node = new DefaultMutableTreeNode("x2");
a.insert(node);
myTree = new DefaultTreeModel(root);
public DefaultTreeModel getTreeModel() {
DefaultMutableTreeNode root = new DefaultMutableTreeNode("XY");
DefaultMutableTreeNode a = new DefaultMutableTreeNode("A");
root.insert(a);
DefaultMutableTreeNode b = new DefaultMutableTreeNode("B");
root.insert(b);
DefaultMutableTreeNode c = new DefaultMutableTreeNode("C");
root.insert(c);
DefaultMutableTreeNode node = new DefaultMutableTreeNode("a1");
a.insert(node);
node = new DefaultMutableTreeNode("a2 ");
a.insert(node);
node = new DefaultMutableTreeNode("b ");
b.insert(node);
a = node;
node = new DefaultMutableTreeNode("x1");
a.insert(node);
node = new DefaultMutableTreeNode("x2");
a.insert(node);
return myTree = new DefaultTreeModel(root);
}Also i've configured my tomahawk-taglib file in my web.xml .
My backing bean is configured in my faces-config.xml
But i'm not able to get my tree structure in my page .
Any help would be appreciated.
RegardsDear akash,
yes i'm seeing the jsf tags <t:tree>
But when i modify my jsf page , in my configuration files i'm getting the following errors:
In web.xml
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
</web-app>
error message: cannot find the declaration of element web-apps
error message: failed to read schema document http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd because 1) couldnot find the document 2) the document could not be read 3) the root element of the document is not <xsd:schema>In another configuration file:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
Error: cannot find the declaration of element 'beans'I'm a novice to JSF technology and plz guide me properly. -
What is the Function Type in Oracle Applications for UIX pages?
Hi,
In the Oracle forms function window (under the System Administrator responsibility) there is a field call function type. The selection does not have UIX but it does have JSP. Should the function type be set as JSP if I'm referring to a UIX page?
Thanks,
MercedHi,
this forum is about Oracle Forms. Try the JDeveloper forum
JDeveloper and ADF
Frank -
Dynamic structure for different tables
Hi All,
My requirement is, a table has to be given in the selection-screen and i have to download the data of that particular table.
My doubt is, here we are passing the table names dynamically, so how can we assign the structure to the different tables.
Any clues...
Senthil.Hi
Maybe the below code can help you.
TYPES: c80(80).
DATA: i_src TYPE STANDARD TABLE OF c80 WITH HEADER LINE.
*DATA: lin TYPE i.
*DATA: msg(240).
FIELD-SYMBOLS: <field> TYPE ANY.
DATA: headline(255).
PARAMETERS: p_tab TYPE dd03l-tabname OBLIGATORY VALUE CHECK.
DATA: tabstr LIKE p_tab.
DATA: layout(3). " 'A' = ALV, 'L' = ABAP-Liste
SELECTION-SCREEN BEGIN OF BLOCK layout WITH FRAME TITLE text-001
NO INTERVALS.
PARAMETERS: p_alv RADIOBUTTON GROUP layo.
PARAMETERS: p_list RADIOBUTTON GROUP layo.
SELECTION-SCREEN END OF BLOCK layout.
DEFINE src.
concatenate &1 &2 &3 &4 into i_src separated by space.
append i_src.
END-OF-DEFINITION.
START-OF-SELECTION.
CONCATENATE '''' p_tab '''' INTO tabstr.
CASE 'X'.
WHEN p_alv.
layout = '''A'''.
WHEN p_list.
layout = '''L'''.
ENDCASE.
src 'REPORT' p_tab '.' ''.
src 'DATA I_TAB TYPE STANDARD TABLE OF' p_tab '.' ''.
src 'FORM GETTAB.' '' '' ''.
src 'PERFORM CALLBACK IN PROGRAM' sy-repid '' ''.
src ' TABLES I_TAB USING' tabstr layout 'IF FOUND.'.
src 'ENDFORM.' '' '' ''.
GENERATE SUBROUTINE POOL i_src NAME p_tab. " LINE lin MESSAGE msg.
PERFORM gettab IN PROGRAM (p_tab) IF FOUND.
TOP-OF-PAGE.
CHECK NOT headline IS INITIAL.
FORMAT COLOR COL_HEADING.
WRITE headline.
ULINE.
* FORM callback *
* Sämtliche Verarbeitung muss in dieser Routine liegen *
* --> TAB Tabelle *
* --> TABNAME Name der Tabelle *
* --> LAYOUT_TYP Gewünschtes Layout 'A' = ALV-Grid, 'L' = Liste *
FORM callback TABLES tab TYPE STANDARD TABLE
USING value(tabname) TYPE dd02l-tabname
value(layout_typ).
DATA: typ,
len TYPE i,
pos TYPE i,
last_field TYPE i.
TYPES: BEGIN OF ty_header,
position TYPE dd03l-position,
reptext TYPE dd04t-reptext,
END OF ty_header.
DATA: headers TYPE STANDARD TABLE OF ty_header WITH HEADER LINE.
SELECT * INTO TABLE tab FROM (tabname).
CHECK sy-subrc = 0.
IF NOT sy-batch IS INITIAL.
layout_typ = 'L'.
ENDIF.
CASE layout_typ.
WHEN 'A'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_structure_name = tabname
TABLES
t_outtab = tab
EXCEPTIONS
program_error = 0
OTHERS = 0.
WHEN 'L'.
* Ermitteln der Feldtexte
SELECT dd03l~position dd04t~reptext
INTO TABLE headers
FROM dd03l
INNER JOIN dd04t
ON dd04t~rollname = dd03l~rollname
WHERE dd03l~tabname = tabname AND
dd04t~ddlanguage = sy-langu AND
dd04t~as4local = 'A' AND
dd04t~as4vers = 0
ORDER BY dd03l~position.
* Ermitteln des letzten auszugebenden Feldes und
* Festlegung der Überschrift
FORMAT COLOR COL_HEADING.
CLEAR pos.
READ TABLE tab INDEX 1.
DO.
CHECK sy-index > 1.
ASSIGN COMPONENT sy-index OF STRUCTURE tab TO <field>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
DESCRIBE FIELD <field> OUTPUT-LENGTH len TYPE typ.
READ TABLE headers INDEX sy-index.
* Überschriften numerischer Felder rechtsbündig
IF typ CA 'NPIF'.
WRITE headers-reptext(len) TO headline+pos(len)
RIGHT-JUSTIFIED.
ELSE.
WRITE headers-reptext(len) TO headline+pos(len).
ENDIF.
last_field = sy-index.
pos = pos + len + 1.
IF pos > 254.
EXIT.
ENDIF.
ENDDO.
WRITE AT sy-linsz ''.
FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.
* Ausgabe der Tabelle
LOOP AT tab.
NEW-LINE.
DO last_field TIMES.
CHECK sy-index > 1.
ASSIGN COMPONENT sy-index OF STRUCTURE tab TO <field>.
WRITE: <field>.
ENDDO.
ENDLOOP.
ENDCASE.
ENDFORM.
Thanks to the original progam provider.
Kind Regards
Eswar -
UIX-XML BC4J - Unexpected errors using paths and DeltaTree on a particular UIX page
We are using a PageDescription to dynamically change a UIX tree using the DeltaTree technique described in the Dynamic Structure for For UIX Pages chapter of the UIX Developers Guide.
We search for a particular node using PathUtils.FindPathWithNodeID(RenderingContext context, UINode from, java.lang.String nodeID), but this fails when the page contains nested ViewObjectScopes.
The method throws a NullPointerException, and the render fails:
29/08/02 9.08 Valutazioni: java.lang.NullPointerException
oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList(oracle.cabo.ui.RenderingContext)
int oracle.cabo.ui.collection.DataObjectListNodeList.size(oracle.cabo.ui.RenderingContext)
int oracle.cabo.ui.BaseUINode.getIndexedChildCount(oracle.cabo.ui.RenderingContext)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
boolean oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.path.PathImpl, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils._findPath(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, oracle.cabo.ui.path.PathUtils$Finder)
oracle.cabo.ui.path.Path oracle.cabo.ui.path.PathUtils.findPathWithNodeID(oracle.cabo.ui.RenderingContext, oracle.cabo.ui.UINode, java.lang.String)
oracle.cabo.ui.UINode com.websiteitalia.wsdk.uix.pageflow.PageFlowManager.getRootUINode()
oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageDescriptionProxy.getRootUINode()
oracle.cabo.ui.UINode oracle.cabo.servlet.ui.UINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
oracle.cabo.ui.UINode oracle.cabo.servlet.ui.HTMLUINodePageRenderer.getRootUINode(oracle.cabo.servlet.BajaContext, oracle.cabo.ui.RenderingContext, oracle.cabo.servlet.Page)
void oracle.cabo.servlet.ui.UINodePageRenderer.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
void oracle.cabo.servlet.AbstractPageBroker.renderPage(oracle.cabo.servlet.BajaContext, oracle.cabo.servlet.Page)
oracle.cabo.servlet.Page oracle.cabo.servlet.PageBrokerHandler.handleRequest(oracle.cabo.servlet.BajaContext)
void oracle.cabo.servlet.BajaServlet.doGet(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
void javax.servlet.http.HttpServlet.service(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.invoke(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
void com.evermind.server.http.ServletRequestDispatcher.forwardInternal(javax.servlet.ServletRequest, javax.servlet.http.HttpServletResponse)
boolean com.evermind.server.http.HttpRequestHandler.processRequest(com.evermind.server.ApplicationServerThread, com.evermind.server.http.EvermindHttpServletRequest, com.evermind.server.http.EvermindHttpServletResponse, java.io.InputStream, java.io.OutputStream, boolean)
void com.evermind.server.http.HttpRequestHandler.run(java.lang.Thread)
void com.evermind.util.ThreadPoolThread.run()
We found the element of the UIX page that causes the problem:
<bc4j:viewObjectScope name="ElementsView" >
<contents>
<bc4j:rowScope name="NewElement" >
<contents>
<bc4j:region automatic="false" >
<bc4j:key>
<bc4j:rowKey name="keyElement"/>
</bc4j:key>
<contents>
<bc4j:attrScope name="FlgState">
<contents>
<messageChoice name="FlgState" prompt="State" >
<boundAttribute name="selectedValue">
<concat>
<bc4j:attrProperty name="value"/>
<fixed text=""/>
</concat>
</boundAttribute>
<contents>
<!-- This is the nested vo scope causing the error -->
<bc4j:viewObjectScope name="DecodeStateView" >
<contents data:childData="list@DecodeState">
<option data:value="StateCode"
data:text="StateDescription"/>
</contents>
</bc4j:viewObjectScope>
</contents>
</messageChoice>
</contents>
</bc4j:attrScope>
</contents>
</bc4j:region>
</contents>
</bc4j:rowScope>
</contents>
</bc4j:viewObjectScope>
This usage of nested view object scopes has been explained in reply of a previous post, How to databind the children of a UIX XML choice, and before ours attempts to modify the tree it worked fine. Removing the nested view object scope the page makes the page render correctly, but we need it to retrieve the description of its state.
We get the same behaviour (and a much similar stack trace, with the same oracle.cabo.ui.data.DataObjectList oracle.cabo.ui.collection.DataObjectListNodeList.getDataObjectList (oracle.cabo.ui.RenderingContext) throwing a NullPointerException) if we use NodeUtils.createPreorderDescendentAttributeEnumeration method instead of PathUtils.It's a bug in the DataObjectListNodeList class that's up at the top of
the stack. It's been fixed for 9.0.3. The bit of XML that's triggering
it isn't the <viewObjectScope>s, but the "data:childData".
I believe you can workaround this bug by not passing a null RenderingContext to
findPathWithNodeID(). Now, you don't have a real RenderingContext, and we
don't especially need one - "null" is legit here, but I think if
you just pass "new oracle.cabo.ui.RootRenderingContext()" then you'll
get around this bug. -
Create dynamic internal table with dynamic structure
I have an internal table itab1 that have 12 amount fields from period1 thru period12. I need to create a dynamic table with dynamic structure for the period column if the total amount of each column is > 0. Any idea on how to do that?
For example if my itab1 has 20 rows and the sum of period1 = 35, sum of period2 = 0, sum of period3 = 5, sum of period4 =0, sum of period5 = 2 then I need to create a dynamic structure for the field column that have the total > 0, i.e structure struct1 have field period1, period3 and period5 only. Then I will need to load the data to itab2 from itab1. Can someone help.
Thanks. I am on 4.7 and will upgrade to ERP 6.0 soon.go throgh this....
REPORT yusmm_text1 NO STANDARD PAGE HEADING
LINE-SIZE 199.
T A B L E S
TABLES: MARA,
MAKT,
THEAD.
GLOBAL TYPE-POOLS
TYPE-POOLS : SLIS.
GLOBAL TYPES
TYPES : BEGIN OF TP_FINAL,
MATNR TYPE MARA-MATNR,
BEGRU TYPE MARA-BEGRU,
MTART TYPE MARA-MTART,
MAKTX TYPE MAKT-MAKTX,
SPRAS TYPE MAKT-SPRAS,
LTXT(2000) TYPE C ,
SRNO TYPE N ,
END OF TP_FINAL.
TYPES : BEGIN OF TP_T002,
SPRAS TYPE T002-SPRAS,
LAISO TYPE T002-LAISO,
SRNO TYPE N ,
END OF TP_T002.
TYPES : BEGIN OF TP_MARA_MAKT,
MATNR TYPE MARA-MATNR,
BEGRU TYPE MARA-BEGRU,
MTART TYPE MARA-MTART,
SPRAS TYPE MAKT-SPRAS,
MAKTX TYPE MAKT-MAKTX,
END OF TP_MARA_MAKT.
Types: BEGIN OF tp_matnr,
matnr TYPE mara-matnr,
END OF tp_matnr.
GLOBAL ELEMENTARY VARIABLES
DATA : gv_date TYPE sy-datum.
DATA : gv_repid TYPE sy-repid.
DATA : g_var1(10) TYPE C.
DATA : gv_index TYPE sy-tabix.
DATA: gv_strg TYPE string,
gv_strg1(2000) TYPE C.
DATA : gv_lang TYPE sy-langu.
DATA : g_v(3) TYPE N .
DATA : gv_lines(3) TYPE N .
DATA : gv_var(3) TYPE N .
DATA : gv_var1(3) TYPE N.
DATA: gv_str TYPE STRING.
DATA: gv_str1 TYPE STRING.
DATA : gv_li TYPE I,
gv_lit TYPE I,
gv_lin TYPE I.
DATA: g_var11(3) TYPE N,
gv_li1(3) TYPE N,
g_var2(3) TYPE N.
DATA : gv_i1 TYPE I.
DATA : gv_i TYPE I.
DATA: gl_lenght TYPE I.
GLOBAL STRUCTURES
DATA: T_NEWTABLE TYPE REF TO DATA,
T_NEWLINE TYPE REF TO DATA,
T_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
T_FLDCAT TYPE LVC_T_FCAT,
WA_IT_FLDCAT TYPE LVC_S_FCAT,
WA_IT_FLDCAT1 TYPE SLIS_FIELDCAT_ALV,
WA_COLNO(2) TYPE N,
WA_FLNAME(5) TYPE C,
L_LT TYPE SLIS_LAYOUT_ALV.
GLOBAL INTERNAL TABLES (WITH INCLUDE STRUCTURE)
DATA : IG_MARA_MAKT TYPE STANDARD TABLE OF TP_MARA_MAKT,
WG_MARA_MAKT TYPE TP_MARA_MAKT.
DATA : IG_T002 TYPE STANDARD TABLE OF TP_T002,
WG_T002 TYPE TP_T002.
DATA : IG_FINAL TYPE STANDARD TABLE OF TP_FINAL,
WG_FINAL TYPE TP_FINAL.
data : IG_MATNR TYPE STANDARD TABLE OF TP_MATNR WITH HEADER LINE,
WG_MATNR TYPE TP_MATNR.
DATA:BEGIN OF IG_THEAD OCCURS 0.
INCLUDE STRUCTURE THEAD .
DATA: END OF IG_THEAD.
DATA:BEGIN OF IG_TLINE OCCURS 0.
INCLUDE STRUCTURE TLINE .
DATA:END OF IG_TLINE.
FIELD-SYMBOLS
FIELD-SYMBOLS: <T_DYNTABLE> TYPE STANDARD TABLE,"Dynamic internal
"tablename
<FS_DYNTABLE>, "Field symbol to create work area
<FS_FLDVAL> TYPE ANY. " Field symbol to assign values
COMPULSORY
FIELD-SYMBOLS: <FS_DATA> TYPE REF TO DATA,
<FS_DATA1> TYPE REF TO DATA,
<FS_2> TYPE STANDARD TABLE,
<FS_22> TYPE STANDARD TABLE,
<FS_1>,
<FS_11>,
<F>,
<FA>,
<LWA_LINE_WA>,
<LWA_LINE_WA1>.
------- Create Dyn Table From FC
DATA: LT_DATA TYPE REF TO DATA,
LT_DATA1 TYPE REF TO DATA,
LWA_LINE TYPE REF TO DATA,
LWA_LINE1 TYPE REF TO DATA,
LI_FIELD_CAT TYPE LVC_T_FCAT,
LWA_FIELD_CAT TYPE LVC_S_FCAT.
PARAMETERS & SELECT-OPTIONS
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_SPRAS FOR MAKT-SPRAS NO INTERVALS DEFAULT 'EN'
OBLIGATORY ,
S_MATNR FOR MARA-MATNR,
S_MTART FOR MARA-MTART.
PARAMETERS: GP_SIZE TYPE I DEFAULT '200'.
SELECTION-SCREEN : END OF BLOCK B1.
INITIALIZATION
INITIALIZATION.
gv_repid = sy-repid.
gv_date = sy-datum.
AT SELECTION-SCREEN
AT SELECTION-SCREEN.
IF GP_SIZE < 0.
MESSAGE E002(00).
ENDIF.
IF GP_SIZE > 50000.
MESSAGE W130(26) WITH TEXT-004.
SET CURSOR FIELD 'gp_size'.
ENDIF.
START-OF-SELECTION
START-OF-SELECTION.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM DATA_FETCH.
PERFORM READ_DATA_TO_FINAL.
SORT ig_final BY matnr spras.
gv_lin = gv_li.
gv_li = gv_li - 2.
LOOP AT ig_final INTO wg_final.
ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = 'Material Number'.
ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = 'Authorization Group'.
g_VAR11 = wg_final-srno + 2.
gv_li1 = gv_li1 + 2.
MOVE : g_var11 TO gv_i1.
ASSIGN COMPONENT g_var11 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = 'MatDesc'.
g_var2 = g_var11 + gv_lines.
ASSIGN COMPONENT g_var2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = 'BasicData'.
APPEND <LWA_LINE_WA1> TO <FS_22>.
EXIT.
ENDLOOP.
LOOP AT ig_final INTO wg_final.
AT NEW matnr.
gv_index = sy-tabix.
ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA> TO <F>.
<F> = wg_final-matnr.
ENDAT.
AT NEW MATNR.
GV_INDEX = SY-TABIX.
ASSIGN COMPONENT 1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = wg_final-matnr.
ENDAT.
ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA> TO <F>.
<F> = wg_final-begru.
ASSIGN COMPONENT 2 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = wg_final-begru.
gv_var = wg_final-srno + 2.
gv_li = gv_li + 2.
MOVE : gv_var TO gv_i.
ASSIGN COMPONENT gv_var OF STRUCTURE <LWA_LINE_WA> TO <F>.
<F> = wg_final-maktx.
ASSIGN COMPONENT gv_var OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = wg_final-maktx.
gv_var1 = gv_var + gv_lines .
ASSIGN COMPONENT gv_var1 OF STRUCTURE <LWA_LINE_WA> TO <F>.
<F> = wg_final-ltxt.
ASSIGN COMPONENT gv_var1 OF STRUCTURE <LWA_LINE_WA1> TO <FA>.
<FA> = wg_final-ltxt.
AT END OF matnr.
APPEND <LWA_LINE_WA> TO <FS_2>.
CLEAR <LWA_LINE_WA>.
ENDAT.
AT END OF matnr.
APPEND <LWA_LINE_WA1> TO <FS_22>.
CLEAR <LWA_LINE_WA1>.
ENDAT.
ENDLOOP.
PERFORM display..
*& Form data_fetch
text
--> p1 text
<-- p2 text
FORM DATA_FETCH .
SELECT matnr
from mara up to gp_size rows
appending corresponding fields of table ig_matnr
where matnr in s_matnr
and mtart in s_mtart.
loop at ig_matnr.
SELECT MARA~MATNR
MARA~BEGRU
MARA~MTART
MAKT~SPRAS
MAKT~MAKTX FROM MARA INNER JOIN MAKT
ON MARAMATNR = MAKTMATNR
appending corresponding fields of TABLE ig_mara_makt UP TO GP_SIZE
ROWS
WHERE makt~spras IN s_spras
AND mara~matnr IN s_matnr
AND mara~mtart IN s_mtart
AND mara~matnr EQ ig_matnr-matnr.
endloop.
IF sy-subrc = 0.
SORT ig_mara_makt.
ENDIF.
ENDFORM. " data_fetch
*& Form read_data_to_final
text
--> p1 text
<-- p2 text
FORM READ_DATA_TO_FINAL .
LOOP AT ig_mara_makt INTO wg_mara_makt .
wg_final-MATNR = wg_mara_makt-MATNR.
wg_final-BEGRU = wg_mara_makt-BEGRU.
wg_final-MTART = wg_mara_makt-MTART.
wg_final-SPRAS = wg_mara_makt-SPRAS.
wg_final-MAKTX = wg_mara_makt-MAKTX.
READ TABLE ig_t002 INTO wg_t002 WITH KEY spras = wg_final-spras.
IF sy-subrc = 0.
wg_final-srno = wg_t002-srno.
ENDIF.
CLEAR ig_thead[].
ig_thead-TDOBJECT = 'MATERIAL'.
ig_thead-TDNAME = wg_final-matnr.
ig_thead-TDID = 'GRUN'.
ig_thead-TDSPRAS = wg_final-spras.
CALL FUNCTION 'TEXT_READ'
EXPORTING
I_HEADER = IG_THEAD
I_READONLY = 'X'
IMPORTING
E_HEADER = IG_THEAD
TABLES
T_LINES = IG_TLINE[]
EXCEPTIONS
NOTFOUND = 1.
IF sy-subrc EQ 0.
LOOP AT ig_tline.
gv_strg = ig_tline-tdline.
IF gv_strg1 <> ' '.
CONCATENATE gv_strg1 ';' gv_strg INTO gv_strg1.
ELSE.
gv_strg1 = gv_strg.
ENDIF.
ENDLOOP.
wg_final-ltxt = gv_strg1.
APPEND wg_final TO ig_final.
CLEAR wg_final.
gv_strg1 = ' '.
ELSE.
APPEND wg_final TO ig_final.
ENDIF.
ENDLOOP.
ENDFORM. " read_data_to_final
" read_data_to_final
*& Form layout
text
--> p1 text
<-- p2 text
FORM LAYOUT .
CLEAR L_LT.
L_LT-ZEBRA = 'X'.
L_LT-COLWIDTH_OPTIMIZE = 'X'.
L_LT-WINDOW_TITLEBAR = 'MATERIAL DETAILS'.
ENDFORM. " layout
*& Form fieldcat
text
--> p1 text
<-- p2 text
FORM FIELDCAT .
SELECT SPRAS
LAISO FROM t002 INTO CORRESPONDING FIELDS OF TABLE ig_t002
WHERE spras IN s_spras.
DESCRIBE TABLE ig_t002 LINES gv_lines.
LOOP AT ig_t002 INTO wg_t002.
g_v = g_v + 1.
Wg_t002-srno = g_v.
MODIFY ig_t002 FROM wg_t002 TRANSPORTING SRNO.
ENDLOOP.
LOOP AT ig_t002 INTO wg_t002.
CLEAR WA_IT_FLDCAT.
MOVE SY-INDEX TO WA_COLNO.
CONCATENATE 'MD-' wg_t002-LAISO
WA_COLNO
INTO WA_FLNAME.
WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
WA_IT_FLDCAT-DATATYPE = 'CHAR'.
WA_IT_FLDCAT-SELTEXT = WA_FLNAME.
WA_IT_FLDCAT-INTLEN = 250.
WA_IT_FLDCAT-TABNAME = '<FS_2>'.
APPEND WA_IT_FLDCAT TO T_FLDCAT.
CLEAR wg_t002.
ENDLOOP.
LOOP AT ig_t002 INTO wg_t002.
CLEAR WA_IT_FLDCAT.
MOVE SY-INDEX TO WA_COLNO.
CONCATENATE 'BD-' wg_t002-LAISO
WA_COLNO
INTO WA_FLNAME.
WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
WA_IT_FLDCAT-DATATYPE = 'CHAR'.
WA_IT_FLDCAT-SELTEXT = WA_FLNAME.
WA_IT_FLDCAT-INTLEN = 250.
WA_IT_FLDCAT-TABNAME = '<FS_2>'.
APPEND WA_IT_FLDCAT TO T_FLDCAT.
CLEAR wg_t002.
ENDLOOP.
MOVE 'MATNR' TO WA_FLNAME.
WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
WA_IT_FLDCAT-DATATYPE = 'CHAR'.
WA_IT_FLDCAT-SELTEXT = 'Material No'.
WA_IT_FLDCAT-INTLEN = 18.
WA_IT_FLDCAT-TABNAME = '<FS_2>'.
INSERT WA_IT_FLDCAT INTO T_FLDCAT INDEX 1.
MOVE 'BEGRU' TO WA_FLNAME.
WA_IT_FLDCAT-FIELDNAME = WA_FLNAME.
WA_IT_FLDCAT-DATATYPE = 'CHAR'.
WA_IT_FLDCAT-SELTEXT = 'Authorization Group'.
WA_IT_FLDCAT-INTLEN = 4.
WA_IT_FLDCAT-TABNAME = '<FS_2>'.
INSERT WA_IT_FLDCAT INTO T_FLDCAT INDEX 2.
DESCRIBE TABLE T_FLDCAT LINES gv_li.
ASSIGN LT_DATA TO <FS_DATA>.
Creating the Dynamic Internal Table
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = T_FLDCAT " Fieldcatalogue
IMPORTING
EP_TABLE = <FS_DATA> " Dynamic Internal Table
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
Assign Dyn Table To Field Sumbol
ASSIGN <FS_DATA>->* TO <FS_1>.
Assigning the Internal Table TYPE ANY to Standard internal Table
ASSIGN <FS_1> TO <FS_2>.
Creating a Workarea
CREATE DATA LWA_LINE LIKE LINE OF <FS_2> .
Assigning the Content to the workares as a Pointer
ASSIGN LWA_LINE->* TO <LWA_LINE_WA>.
LOOP AT T_FLDCAT INTO WA_IT_FLDCAT.
WA_IT_FLDCAT1-FIELDNAME = WA_IT_FLDCAT-FIELDNAME.
WA_IT_FLDCAT1-TABNAME = WA_IT_FLDCAT-TABNAME.
WA_IT_FLDCAT1-SELTEXT_L = WA_IT_FLDCAT-SELTEXT.
WA_IT_FLDCAT1-REF_TABNAME = 'MARC'.
APPEND WA_IT_FLDCAT1 TO T_FLDCAT1.
CLEAR : WA_IT_FLDCAT,WA_IT_FLDCAT1.
ENDLOOP.
ASSIGN LT_DATA1 TO <FS_DATA1>.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = T_FLDCAT " Fieldcatalogue
IMPORTING
EP_TABLE = <FS_DATA1> " Dynamic Internal table
EXCEPTIONS
GENERATE_SUBPOOL_DIR_FULL = 1
OTHERS = 2.
Assign Dyn Table To Field Sumbol
ASSIGN <FS_DATA1>->* TO <FS_11>.
Assigning the Internal Table TYPE ANY to Standard internal Table
ASSIGN <FS_11> TO <FS_22>.
Creating a Workarea
CREATE DATA LWA_LINE1 LIKE LINE OF <FS_22> .
Assigning the Content to the workares as a Pointer
ASSIGN LWA_LINE1->* TO <LWA_LINE_WA1>.
ENDFORM. " fieldcat
*& Form show
text
--> p1 text
<-- p2 text
FORM Display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = GV_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS_SET'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT = L_LT
IT_FIELDCAT = T_FLDCAT1[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS =
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = <FS_2>
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " display
FORM PF_STATUS_SET USING RS_EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'DISPLAY' .
ENDFORM. "PF_STATUS_SET
*& Form Name: user_command *
*& Form Desc: For Handling USER_COMMAND *
FORM USER_COMMAND USING IF_UCOMM TYPE SY-UCOMM
IS_SELFIELD TYPE SLIS_SELFIELD.
CASE IF_UCOMM.
WHEN 'DOWNLOAD'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = ' '
DIAGNOSE_OBJECT = ' '
TEXT_QUESTION = 'Data download to excel'
TEXT_BUTTON_1 = 'Ja'(001)
ICON_BUTTON_1 = ' '
TEXT_BUTTON_2 = 'Nein'(002)
ICON_BUTTON_2 = ' '
DEFAULT_BUTTON = '1'
DISPLAY_CANCEL_BUTTON = 'X'
USERDEFINED_F1_HELP = ' '
START_COLUMN = 25
START_ROW = 6
POPUP_TYPE =
IMPORTING
ANSWER =
TABLES
PARAMETER =
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE =
FILENAME = 'C:\Material-Text.xls'
FILETYPE = 'ASC'
APPEND = ' '
WRITE_FIELD_SEPARATOR = 'X'
HEADER = '00'
TRUNC_TRAILING_BLANKS = 'X'
WRITE_LF = 'X'
COL_SELECT = ' '
COL_SELECT_MASK = ' '
DAT_MODE = 'X'
IMPORTING
FILELENGTH = GL_LENGHT
TABLES
DATA_TAB = <FS_22>
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
IF GL_LENGHT NE 0.
MESSAGE S398(00) WITH 'DATA downloaded to EXCEL'.
ENDIF.
ENDCASE.
ENDFORM. "user_command
Thanks -
How do I show use poplist in uix pages?
Ok here is my problem which I will try to relate it in HR schema example.
I got a uix page showing departments and employees(one-many) master detail.
I got another edit uix used to edit old employees or create new employees.
In this edit/create uix I don't want the user to see the id's like DepartmentId, ManagerId, JobId etc...instead I want them to see the corresponnding Names.
How do I achieve this? Could some one give me a walk through or some sort of hint?Hi,
Have you checked out the "Oracle ADF UIX How-To's" at http://www.oracle.com/technology/products/jdev/howtos/index.html? -
Building the site structure for a dynamic website with JSF
Hi,
I am still a JSF-beginner.
I try to build a fully-functional base-demo-application with a fix and a dynamic part.
Fix part for menu, dynamic part for site-content.
At the moment, the JSF-hyperlinks of the main menu work, but any JSF-parts in the included documents of the dynamic part are not shown. I guess, this is dued to inclusion of subviews, but I cannot find any similar examples in the web to come one step further.
Here my complete demo:
faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config xmlns="http://java.sun.com/JSF/Configuration">
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>site1</from-outcome>
<to-view-id>/site1.jsp</to-view-id>
<redirect>
</redirect>
</navigation-case>
</navigation-rule>
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>site2</from-outcome>
<to-view-id>/site2.jsp</to-view-id>
<redirect>
</redirect>
</navigation-case>
</navigation-rule>
</faces-config>
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<context-param>
<param-name>com.sun.faces.verifyObjects</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>
index.jsp
</welcome-file>
</welcome-file-list>
</web-app>
index.jsp:
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<% response.sendRedirect("/jsfportal/site1.jsf"); %>
site1.jsp:
<?xml version="1.0" encoding="UTF-8" ?>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<% String site = "1"; %>
<%@ include file="base.jsp" %>
dynamic_site1.jsp:
<h1>Welcome to site 1</h1>
Have fun visiting our portal
site2.jsp:
<?xml version="1.0" encoding="UTF-8" ?>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<% String site = "2"; %>
<%@ include file="base.jsp" %>
dynamic_site2.jsp:
<h1>Welcome to site 2</h2>
Go to site 1: *<!-- And this is the JSF-link that is NOT shown: -->*
<f:view>
<h:form>
<h:panelGrid border="0" columns="0">
<h:commandLink id="p1" action="site1" value="Site 1" />
</h:panelGrid>
</h:form>
</f:view>
base.jsp:
<%@ page language="java" %>
<%@ page import = "java.io.*" %>
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%
String title = "";
int siteInteger = 0;
String dynamic_site = "";
if ( site != null )
if (
( site.length ( ) > 0 )
( site.length ( ) <= 30 )
if ( isNumeric ( site ) )
siteInteger = Integer.valueOf ( site ).intValue ( );
switch ( siteInteger )
case 2: title = "Site 2";
dynamic_site = "dynamic_site2.jsp";
break;
default:
title = "Site 1";
dynamic_site = "dynamic_site1.jsp"; // Start page
%>
<html xmlns="http://www.w3.org/1999/xhtml"
lang="de" xml:lang="de">
<head>
<title>
<%= title %>
</title>
<meta name="description" content="test site" />
<meta name="keywords" content="test site" />
</head>
<body>
<div width="100%" style="text-align:left">
<table width="970" border="0" cellspacing="0" cellpadding="0" style="background-color:#ffffaa;margin-top:25px;">
*<!-- this is not good style putting CSS directly into HTML but it is a demo now ;) -->*
<colgroup>
<col width="970" />
</colgroup>
<tr>
<td valign="top" align="left" style="padding:25px;">
+<h1>+
JSF portal
+</h1>+
</td>
</tr>
</table>
<table width="970" border="2" cellspacing="0" cellpadding="0" style="background-color:#f5f5f0">
<colgroup>
<col width="270" />
<col width="700" />
</colgroup>
<tr>
<td valign="top" align="left" style="padding:25px; padding-left:40px;padding-bottom:320px;">
<f:view>
<h:form>
<h:panelGrid border="0" columns="0">
<h:commandLink id="p1" action="site1" value="Site 1" />
<h:commandLink id="p2" action="site2" value="Site 2" />
</h:panelGrid>
</h:form>
</f:view>
</td>
<td valign="top" align="justify" class="haupttext" style="padding:24px;">
<p align="justify">
<f:subview id="subview1">
<jsp:include page="<%= dynamic_site %>" flush="true">
<jsp:param name="" value="" />
</jsp:include>
</f:subview>
</p>
</td>
</tr>
</table>
</div>
</body>
</html>
<%!
public boolean isNumeric ( String myInput )
if (myInput == null || myInput.length() < 1)
return false;
int start = 0;
if (myInput.charAt(0) == '-')
start = 1;
for(int i = start; i < myInput.length(); i++)
if (!Character.isDigit(myInput.charAt(i)))
return false;
return true;
%>
Who can name me that code positions responsible for that the JSF link in the dynamic part is not shown?
It is not that it does not work it is not shown. The JSF tree seems to be cut because of wrong use of view and subview etc.
(To put view tags in site1.jsp and site2.jsp does not help.)
(Once having afforded an example it should go... (*Then* with JSTL, external CSS, etc. ;) )
Dynamical site structure with include files is the big problem at the moment.)
bye, MaikI found your following suggestions for such cases (seems you are the only profound JSF freak in the world...? :-) )
Switch between subviews in one main page
http://balusc.blogspot.com/2007/01/dynamic-jsf-subviews.html
But the main problem for me is that I never find complete examples, but always fragments and it would be important for a beginner to have at least once a complete JSF example over a few subviews, especially here where it is very easy to corrupt the internal tree.
(Some examples use the subview tags in the calling JSP, some in the called e.g.... Does not matter where to put it? Some use verbatim tags for HTML code outside JSF, some don't... and so on)
Can anyone give me an URL for a complete example of a JSF site (with all files as possible, I am not very patient, too, but in this case it makes sense to have it entire ;-) ) with dynamic switches of subviews as preferentially used for bigger portal sites? -
Dynamic source value for uix frame
Hi all,
I have UIX page with two frames, left is for navigation (includes tree) and right one is for content.
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
xmlns:data="http://xmlns.oracle.com/uix/ui"
xmlns:http="http://www.w3.org/TR/REC-html40">
<content>
<frameBorderLayout xmlns="http://xmlns.oracle.com/uix/ui">
<left>
<frame source="Tree.uix" name="tree" width="30%"/>
</left>
<center>
<frame name="contents" data:source="${sessionScope.startPage}"/>
</center>
</frameBorderLayout>
</content>
</page>I'm trying to use ${sessionScope.startPage} to get source value, but it doesn't work. I am sure that there's such a parameter in http session and I can't understand why this happens.
Could anyone please say if it's possible to use dynamic source for frame?
Did anyone meet such problems?
Is there any other way to set the source value?
thanx in advance
RenatHi again,
So far I've found such a solution:
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
xmlns:data="http://xmlns.oracle.com/uix/ui"
xmlns:http="http://www.w3.org/TR/REC-html40">
<content>
<frameBorderLayout xmlns="http://xmlns.oracle.com/uix/ui">
<top>
<frame source="Top.uix" name="top" height="10%"/>
</top>
<left>
<frame source="Tree.uix" name="tree" width="30%"/>
</left>
<center>
<frame name="contents" source="startPage.uix"/>
</center>
<bottom>
<frame source="Bottom.uix" name="bottom" height="10%"/>
</bottom>
</frameBorderLayout>
</content>
</page>where startPage.uix is:
<?xml version="1.0" encoding="windows-1251"?>
<page xmlns="http://xmlns.oracle.com/uix/controller"
xmlns:ui="http://xmlns.oracle.com/uix/ui"
xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
xmlns:html="http://www.w3.org/TR/REC-html40" expressionLanguage="el">
<content>
<dataScope xmlns="http://xmlns.oracle.com/uix/ui">
<provider>
</provider>
<contents>
<document>
<metaContainer>
<head title=""/>
</metaContainer>
<contents>
<body>
<contents>
<form name="form0">
<contents>
<pageLayout title="">
<contents>
</contents>
<pageHeader>
<globalHeader/>
</pageHeader>
</pageLayout>
</contents>
</form>
</contents>
</body>
</contents>
</document>
</contents>
</dataScope>
</content>
<handlers>
<event name="*">
<method class="myPack.PageUtils.RedirectAction" method="redirect2anotherPage"/>
</event>
</handlers>
</page>and redirect2anotherPage is:
public static EventResult redirect2anotherPage (BajaContext context, Page page,
PageEvent event) throws Throwable {
HttpSession hs = context.getServletRequest().getSession();
Page otherPage = new Page((String) hs.getAttribute("startPage"));
return new EventResult(RedirectUtils.getRedirectPage(context,
otherPage));
}This seems to be working, but I am not sure if this is the correct solution (lonely solution).
Is there a way to use only UIX EL syntax?
Any ideas about this?
Renat -
Create a deep structure for dynamic internal table
Hi All,
I am creating a dynamic table using method cl_alv_table_create=>create_dynamic_table.
The normal structure gets created. but now I want to creat a Deep structure for having information of colors also for each column. So I want to add a COLTAB type LVC_T_SCOL for colors information .
How should I create this using above method?
Rgds,
MadhuriI created a zcelltab structure as below. But while creating dynamic internal table, I received the error with
'Type "ZCELLTAB" is unknown 68 ZCELLTAB-CELLTAB
Here is the code.
DATA: BEGIN OF ZCELLTAB,
CELLTAB LIKE LVC_S_STYL,
END OF ZCELLTAB.
FIELD-SYMBOLS <T_CELLTAB> TYPE LVC_T_STYL.
DATA : LT_CELLTAB TYPE LVC_T_STYL.
DATA: WA_CELLTAB TYPE LINE OF LVC_T_STYL.
DATA: GT_FCAT1 TYPE LVC_T_FCAT,
GW_FCAT1 TYPE LVC_S_FCAT,
GT_FCAT2 TYPE LVC_T_FCAT,
GW_FCAT2 TYPE LVC_S_FCAT.
After filling the FCAT1, I added the field in FCAT2 like below
GT_FCAT2[ ] = GT_FCAT1[ ].
G_TABIX = G_TABIX + 1.
GW_FCAT2-INTTYPE = 'C'.
MOVE G_TABIX TO GW_FCAT2-COL_POS.
GW_FCAT2-OUTPUTLEN = '10'.
GW_FCAT2-FIELDNAME = 'T_CELLTAB'.
GW_FCAT2-TABNAME = 'ZCELLTAB'.
GW_FCAT2-REF_FIELD = 'CELLTAB'.
GW_FCAT2-REF_TABLE = 'ZCELLTAB'.
APPEND GW_FCAT2 TO GT_FCAT2
CLEAR GW_FCAT2.
While calling the below method, the error with
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = GT_FCAT2
IMPORTING
EP_TABLE = GT_REQ.
ASSIGN GT_REQ->* TO <F_TAB>.
CREATE DATA GWA_REQ LIKE LINE OF <F_TAB>.
ASSIGN GWA_REQ->* TO <F_WA>.
LOOP AT ITAB.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <F_WA> TO <F_VAL>
<F_VAL> = ITAB-MATNR.
IF ITAB-MATNR IS INITIAL.
ASSIGN COMPONENT 'T_CELLTAB' OF STRUCTURE <F_WA> TO <T_CELLTAB>
CLEAR WA_CELLTAB.
WA_CELLTAB-FIELDNAME = 'MATNR'.
WA_CELLTAB-STYLE = CL_GUI_ALV_GRID=>MC_STYLE_DISABLED.
INSERT WA_CELLTAB INTO TABLE <T_CELLTAB>.
ENDIF.
APPEND <F_WA> TO <F_TAB>
ENDLOOP.
CALL METHOD GR_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_CONSISTENCY_CHECK = G_CONSISTENCY_CHECK
IT_TOOLBAR_EXCLUDING = G_EXCLUDE
I_SAVE = G_SAVE
I_DEFAULT = 'X'
IS_LAYOUT = G_LAYOUT
CHANGING
IT_OUTTAB = <F_TAB>
IT_FIELDCATALOG = F_CAT1.
Please let me know where I was wrong.
Should I remove the T_CELLTAB as the field name is not mentioned in the structure 'ZCELLTAB'.
Thanks,
Kumar.
Edited by: venn e on May 7, 2010 4:10 PM -
To create a deep structure for dynamic internal table.
Hello
My ALV has fields which are defined dynamically during execution.
so, i did it in the following way,
Declared Field symbolds, DREF and fieldcatalog as,
FIELD-SYMBOLS: <t_dyntable> TYPE STANDARD TABLE,
<fs_dyntable>.
DATA: dref_dyntab TYPE REF TO data,
dref_dynwa TYPE REF TO data.
DATA: ts_fieldcatalog TYPE lvc_t_fcat.
DATA: wa_fieldcatalog TYPE lvc_s_fcat.
Updated Fieldcatalog dynamically as,
*function module to read segment structure
CALL FUNCTION 'SEGMENT_READ'
EXPORTING
segmenttyp = v_segment_name
TABLES
segmentstructure = ts_seg_structure
EXCEPTIONS
no_authority = 1
segment_not_existing = 2
OTHERS = 3.
IF sy-subrc <> 0.
CASE sy-subrc.
WHEN '1'.
MESSAGE e024.
STOP.
WHEN '2'.
MESSAGE e025 WITH v_segment_name.
STOP.
WHEN OTHERS.
MESSAGE e023.
ENDCASE.
ENDIF.
*FETCH FIELDS FROM STRUCTURE OF SEGMENT AND CREATE FIELDCATALOG FOR
EACH FIELD OF SEGMENT (DYNAMIC FIELD CATALOG)
LOOP AT ts_seg_structure INTO wa_seg_structure.
ADD 1 TO v_counter.
wa_fieldcatalog-fieldname = wa_seg_structure-fieldname.
wa_fieldcatalog-col_pos = v_counter.
wa_fieldcatalog-ref_table = wa_seg_structure-segtyp.
APPEND wa_fieldcatalog TO ts_fieldcatalog.
CLEAR wa_fieldcatalog.
ENDLOOP.
and generated dynamic internal table using fieldcatalog as,
*--Method to get the structure of table using fieldcatalog.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = ts_fieldcatalog
IMPORTING
*--Variable of type REF TO DATA.
ep_table = dref_dyntab.
IF sy-subrc <> 0.
MESSAGE e023.
ENDIF.
*--Dynamic internal tables required when show segments selected
IF p_selseg IS NOT INITIAL.
ASSIGN dref_dyntab->* TO <t_dyntable>.
*--Create dynamic work area and assign to FS
CREATE DATA dref_dynwa LIKE LINE OF <t_dyntable>.
ASSIGN dref_dynwa->* TO <fs_dyntable>.
And then i populated this <t_dyntable> which is being passed as data-table to method
CL_GUI_ALV_GRID => SET_TABLE_FOR_FIRST_DISPLAY
for ALV grid Display along with above used filedcatalog ts_fieldcatalog.
Things are fine till here, but now i have the requirement to edit selected rows of the ALV display..
As you might be aware, we need a field
TS_STYLEROW TYPE lvc_t_styl, (i.e, a field of type 'h' and we can say as an internal table inside an internal table or else as a deep structure)
in the output internal table <t_dyntable> to meet our requirement.
My issue is about declaring one such field of type 'h' in this dynamically created internal table ''<t_dyntable>".
I tried in the following way by adding one such field to fieldcatalog :
*Field for Styling
ADD 1 TO v_counter.
wa_fieldcatalog-fieldname = 'TS_STYLEROW'.
wa_fieldcatalog-tabname = 'TS_STYLE'.
wa_fieldcatalog-col_pos = v_counter.
wa_fieldcatalog-no_out = 'X'.
wa_fieldcatalog-inttype = 'h'. " I even mentioned this
APPEND wa_fieldcatalog TO ts_fieldcatalog.
CLEAR wa_fieldcatalog.
But this is creating a field of type 'C' in the table <t_dyntable> instead of what i was expecting
Guyz and respected,
Please advice me with the solution or ur ideas....
Note : The overall requirement is create a deep structure for dynamically generated internal table.
Your help is highly appreciated and unforgettable..!!!!!!!hi,
Dynamic append
Dynamic internal table
Dynamic internal table
dynamic columns in ALV
Variant for dynamic selection
thanks -
Request for example KM content structure
I am looking for an example of an existing portal structure as we speak about the KM folder structure and KM content area. Any example is valuable and helps me thinking in the right direction for developing our own structure for the brand new global website.
The next question which relates to the above is: what is the most critical thing to take into consideration when developing the km structure?
any other tips and tricks to this subject are welcome.
thanks
JaapHello Ruturaj,
Please check the Mobile monitor MEREP_MON for the status of data coming from the backend to the MI server and then to the MI client on Synchronisation and vice-versa.
On Inserting data via Client and Synchronisation , the corresponding BAPI Wrapper is triggered on the backend and data is updated in SAP.
Reagrds,
Himanshu Limaye -
How to bind to a dynamic View in UIX
I wish to have a UIX page access data from a dynamic View (i.e. the View is created at runtime). Since the View is not created at design time, I cannot create bindings for it in the UIX page's UIModel. Therefore, how do I reference this view in the UIX page?
BradSanjay,
No -- but I'm experimenting with something simillar to what you mention. Actually, there is a way to iterate over each element if you made the childData attribute of your contents child of the messageChoice your rangeSet, i.e.:
<messageChoice>
<contents childData="${bindings.myIterator.rangeSet}">
<option text="${uix.current.myfield}"/>
</contents>
<messageChoice>
The problem is that this causes a problem with the subsequent submit, the current row, and what selection shows when the page is re-rendered. I am becoming more convinced because of this and some other things I've run into that there are either problems with using ViewLinks, or problems in UIX components where ViewLinks are involved. I'm pretty much abandoning use of ViewLinks altogether. I haven't seen much of anything work with them that isn't done exactly like tutorials and examples. And with regards to those, most tutorials and examples offer very little UIX help (most of them are JSPs), and even the ones that do have in-a-vaccuum style in-line databinding rather than database databinding (you'd think Oracle, a database company, might actually use database examples), which doesn't clarify a bunch of issues someone writing a reall application runs into.
As to an answer -- no unfortunately. Getting an answer to any ADF/UIX question is a time-consuming, frustrating, and most often fruitless process. Of my 45 some-odd posts on this forum, about 30 of them are unresponded-to posts.
B -
Design tab of UIX page in JDeveloper 10g
I am using JDeveloper 10g (Build 9.0.5.1) and JHeadstart 9.0.5.1.11. I have generated a small application using the Application Generator but the UIX page generated does not display in the Design tab - rather a message saying that "The document is not in a valid state". Am I doing something wrong here or is this expected behaviour ??
Cheers,
Brent HarlowBrent,
Yes, this a known limitation, dcoumented in the release notes:
3601291: UIX: Errors are displayed in the structure pane of JDeveloper when clicking on a UIX page, for example: Element templates: findPage not defined in parent content. Also, when opening the UIX Design Editor the following text appears: The document is not in a valid state. Please edit this file in the code editor to resolve syntax problems and then return to the visual editor.
This does not cause any runtime problems.
The behavior is caused by the fact that JHeadstart does not use UIX in the default manner, and is therefore not correctly interpreted by JDeveloper 10g.
This will be fixed with the JHeadstart release that uses ADF.
Steven Davelaar,
JHeadstart team.
Maybe you are looking for
-
Hello, We have an ECC 6 system with EHP 4 SPS 5 and we watn to install a new Technical Usage (IS-OIL, IS-PRA and IS-UT) In order to do that I have to supply an xml file created by the MOPZ. I created a new MOPZ transaction, in the phaze "Update Optio
-
Notifications of updates, but no updates in app store
I'm getting notifications that updates for Mountain Lion are available, but then when I go to the app store and check for updates nothing shows up. I've checked all the usual update and Apple account settings and can't see anything out of the ordinar
-
Need more traffic to the iweb site
I just made a business website through iweb and i'm using a domain name from godaddy.com. I deleted the original website made through godaddy and now, the search results aren't as good. What can I do to get more traffic to the site through search eng
-
Need help change receive at email to receive to phone number
hi guys, i just a 4s and i setup imessage, but on my imessage settings it says "receive at email" and it wouldn't give me a option to put in my phone number. can you guys please help through this, thanks
-
Dear all, One of my Requirment will fullfill...by entering the Condition value ZERO(0) But if i try to enter the value Zero..the value is disapperring. Thanks in advance regards raj.