Tree In TableView Using Iterator
Can I creat a Tree in a TableView using Iterator( Which is implemented as a local class in a Model Class)
Hi Manish,
Your question is not that clear. Can you explain more?
Similar Messages
-
Checkbox in a table loop - without using Tableview or Iterator.
My client doesnt want to use tableview or iterator. We are using basic html to create the page. I know I can accomplish much easily using tableviews...but I am not allowed to use it.
My requirement is simple. In my layout I loop at my internal table and display the contents. The last field is displayed as a checkbox.
Ex:
Name status flag
Tom 10 [ ]
Ted 20 [X]
Rob 10 [X]
My loop in the Layout is as below:
<%
loop at t_rqdt into l_rqdt.
if l_rqdt-flag = 'X'.
l_chk = 'checked'.
endif.
%>
<tr bgcolor="#EFEFEF">
<td></td>
<td <%= l_rqdt-name %> </td>
<td <%= l_rqdt-status %></td>
<td class=tdstatus width=40% >
<input type=checkbox name="flag" value="flag" <%= l_chk %> > </td>
</tr>
<%
endloop.
%>
When I select couple of rows and mark the flag field checkbox, and SUBMIT at the end, and when I see my internal table t_rqdt field r_rqdt-flag.. I dont see them having value X for the rows I marked the check boxes.
Can anyone please help me how can I trap the checkboxes marked inside a table loop in my on input processing?
Thanks
PKMuch Thanks Raja! It worked!!
I declared as below for the form fields and was able to get values.
DATA: t_form_fields TYPE tihttpnvp.
DATA: l_form_fields TYPE LINE OF tihttpnvp.
CALL METHOD request->get_form_fields
CHANGING
fields = t_form_fields.
One more before my client asks me to do..
if I place a button CheckALL and Uncheck All on the layout, how can we check/uncheck all the checkboxes on the client side. Any simple Javascript method available? I know I can pass the itab to on input processing and get the flags set, but if it can be achieved on the client side using a script that would help.
Please let me know.
Thanks. -
Programatically retrieve data using iterator in oracle ADF Mobile
I want to read programatically data using iterator in ADF mobile. My code is :
try
ValueExpression vex = AdfmfJavaUtilities.getValueExpression("#{bindings.WeatherDescriptionIterator}", Object.class);
AmxIteratorBinding iter = (AmxIteratorBinding)vex.getValue(AdfmfJavaUtilities.getAdfELContext());
GenericType row = null;
BasicIterator bIter = iter.getIterator();
iter.getIterator().first();
ArrayList employees = new ArrayList();
for(int i = 0; i < iter.getIterator().getTotalRowCount(); i++)
row = (GenericType)iter.getCurrentRow();
String phone = "";
String email = "";
if(row.getAttribute("Description") != null)
phone = row.getAttribute("Description").toString();
if(row.getAttribute("WeatherID") != null)
email = row.getAttribute("WeatherID").toString();
setTempValue(phone + " " + email);
iter.getIterator().next();
catch(Exception e1)
AdfException ex = new AdfException(""+e1.getLocalizedMessage(), AdfException.ERROR );
throw ex;
I get error :-> cant not find property bindings
Edited by: user12190920 on May 7, 2013 5:48 AMHi,
You can try the below code. Make sure the WeatherDescription should be of type Tree binding
ValueExpression ve1 =
AdfmfJavaUtilities.getValueExpression("#{bindings.departments.collectionModel}", AmxCollectionModel.class);
AmxCollectionModel model = (AmxCollectionModel)ve1.getValue(AdfmfJavaUtilities.getAdfELContext());
Object[] myArr = model.getKeys();
for (int x = 0; x < myArr.length; x++) {
Object myObj = myArr[x];
Map provider = (Map)model.getProviders().get(myObj);
String deptName = provider.get("deptName").toString();
Hope this article may help you - http://deepakcs.blogspot.in/2013/02/adf-mobile-iterate-through-all-rows-in.html
- Deepak -
Please tell me what are the advantages of using Iterator?
"roll your own" Iterator. Have your own classes return an Iterator. I had a confusing data structure in one class with ArrayList of ArrayLists or other objects ( with their own proprietary data structure). I didn't have the base class use loops and instanceof to find the way to traverse them. I had them all implement the Iterator interface. As the last writer said, it smplified the code a lot.
-
Error when working with TableView using JCA
Hi sdns,
I am getting an iview rutnime error when working with Tableview using JCA. Here i am putting all my code, go thorugh it and tell me if any error is there.One more thing is Usermappping and all properties are set to system object.
Now you can throught he code which is followed by error also.
<u>Java file.</u>
public class DisplayComponent extends PageProcessorComponent {
public DynPage getPage() {
return new DisplayComponentDynPage();
public static class DisplayComponentDynPage extends JSPDynPage {
private JCATviewBean bean;
public void doInitialization() {
IPortalComponentProfile profile =
((IPortalComponentRequest) getRequest())
.getComponentContext()
.getProfile();
Object o = profile.getValue("myBean");
if (o == null || !(o instanceof JCATviewBean)) {
bean = new JCATviewBean();
profile.putValue("myBean", bean);
} else {
bean = (JCATviewBean) o;
// fill your bean with data here...
IPortalComponentRequest request =
(IPortalComponentRequest) this.getRequest();
doJca(request);
public void doProcessAfterInput() throws PageException {
public void doProcessBeforeOutput() throws PageException {
this.setJspName("Report.jsp");
private IConnection getConnection(
IPortalComponentRequest request,
String alias)
throws Exception {
IConnectorGatewayService cgService =
(IConnectorGatewayService) PortalRuntime
.getRuntimeResources()
.getService(
IConnectorService.KEY);
ConnectionProperties prop =
new ConnectionProperties(
request.getLocale(),
request.getUser());
return cgService.getConnection(alias, prop);
public void doJca(IPortalComponentRequest request) {
IConnectionFactory connectionFactory = null;
IConnection client = null;
String rfm_name = "BAPI_COMPANYCODE_GETLIST";
try {
try {
// pass the request & system alias
// Change the alias to whatever the alias is for your R/3 system
client = getConnection(request, "MyIDES");
} catch (Exception e) {
System.out.println(
"Couldn't establish a connection with a target system.");
return;
Start Interaction
IInteraction interaction = client.createInteractionEx();
IInteractionSpec interactionSpec =
interaction.getInteractionSpec();
interactionSpec.setPropertyValue("Name", rfm_name);
CCI api only has one datatype: Record
RecordFactory recordFactory = interaction.getRecordFactory();
MappedRecord importParams =
recordFactory.createMappedRecord(
"CONTAINER_OF_IMPORT_PARAMS");
IFunctionsMetaData functionsMetaData =
client.getFunctionsMetaData();
IFunction function = functionsMetaData.getFunction(rfm_name);
if (function == null) {
System.out.println(
"Couldn't find " + rfm_name + " in a target system.");
return;
How to invoke Function modules
System.out.println("Invoking... " + function.getName());
MappedRecord exportParams =
(MappedRecord) interaction.execute(
interactionSpec,
importParams);
How to get structure values
IRecord exportStructure = (IRecord) exportParams.get("RETURN");
String columnOne = exportStructure.getString("TYPE");
String columnTwo = exportStructure.getString("CODE");
String columnThree = exportStructure.getString("MESSAGE");
System.out.println(" RETURN-TYPE = " + columnOne);
System.out.println(" RETURN-CODE = " + columnTwo);
System.out.println(" RETURN-MESSAGE =" + columnThree);
How to get table values
IRecordSet exportTable =
(IRecordSet) exportParams.get("COMPANYCODE_LIST");
exportTable.beforeFirst();
// Moves the cursor before the first row.
while (exportTable.next()) {
String column_1 = exportTable.getString("COMP_CODE");
String column_2 = exportTable.getString("COMP_NAME");
System.out.println(
" COMPANYCODE_LIST-COMP_CODE = " + column_1);
System.out.println(
" COMPANYCODE_LIST-COMP_NAME = " + column_2);
// create the tableview mode in the bean
bean.createData(exportTable);
Closing the connection
client.close();
} catch (ConnectorException e) {
// app.putValue("error", e);
System.out.println("Caught an exception: \n" + e);
} catch (Exception e) {
System.out.println("Caught an exception: \n" + e);
<u>Bena file</u>
package com.sap.JCA.bean;
import java.util.Vector;
import com.sapportals.connector.execution.structures.IRecordSet;
import com.sapportals.htmlb.table.DefaultTableViewModel;
import com.sapportals.htmlb.table.TableViewModel;
public class JCATviewBean {
public DefaultTableViewModel model;
public TableViewModel getModel() {
return this.model;
public void setModel(DefaultTableViewModel model) {
this.model = model;
public void createData(IRecordSet table) {
// this is your column names
Vector column = new Vector();
column.addElement("Company Code");
column.addElement("Company Name");
// all this logic is for the data part.
Vector rVector = new Vector();
try {
table.beforeFirst();
while (table.next()) {
Vector data = new Vector();
data.addElement(table.getString("COMP_CODE"));
data.addElement(table.getString("COMP_NAME"));
rVector.addElement(data);
} catch (Exception e) {
e.printStackTrace();
// this is where you create the model
this.setModel(new DefaultTableViewModel(rVector, column));
<b>JSP File:</b>
<%@ taglib uri="tagLib" prefix="hbj" %>
<jsp:useBean id="myBean" scope="application" class="com.sap.JCA.bean.JCATviewBean" />
<hbj:content id="myContext" >
<hbj:page title="PageTitle">
<hbj:form id="myFormId" >
<br>
<hbj:textView id = "tv1" text = "<b>TableView Example Using JCA</b> <br>"/>
<hbj:tableView
id="myTableView1"
model="myBean.model"
design="ALTERNATING"
headerVisible="true"
footerVisible="true"
fillUpEmptyRows="true"
navigationMode="BYLINE"
selectionMode="MULTISELECT"
headerText="TableView example1"
visibleFirstRow="1"
visibleRowCount="30"
width="500 px"
/>
</hbj:form>
</hbj:page>
</hbj:content>
<b>Error when Executing this component:</b><u></u>
Portal Runtime Error
<b>An exception occurred while processing a request for :
iView : N/A
Component Name : N/A
com/sapportals/portal/htmlb/page/PageProcessorComponent.
Exception id: 12:21_28/10/05_0173_94105150
See the details for the exception ID in the log file</b>
If anybody find the error please reply to this post.
Regards,
sireesha.Thanks for your response Martin,
I have already seen the log file but im couldn't findout anything from that since it is so long here im putting some part of please see this.if u able to find it clarify me,
<b>Here the log file:</b>
1.5#001321FD6213005D0000907100001CB000040419258FBF4E#1130405957843#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler/JobStore#Plain###With in the acquireLockForNextAvailableJob DataStore#
#1.5#001321FD6213005D0000907200001CB00004041925916735#1130405957953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Acquired the job null#
#1.5#001321FD6213005D0000907300001CB0000404192591688D#1130405957953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Did not find any job.So, Waiting for sometime for the next job#
#1.5#001321FD621300650000120E00001CB00004041925C953D7#1130405961625#com.sap.aii.af.sample.adapter.ra.SPIManagedConnectionFactory##com.sap.aii.af.sample.adapter.ra.SPIManagedConnectionFactory.XIManagedConnectionFactoryController.run()######04d7f690469311da8d52001321fd6213#Thread[Thread-114,5,SAPEngine_System_Thread[impl:5]_Group]##0#0#Debug#1#/Applications/ExchangeInfrastructure/AdapterFramework/ThirdPartyRoot/comsap/Server/Adapter Framework#Java###MCF with GUID is running. (,)#3#964bfca0444711dabb51001321fd6213#com.sap.engine.services.deploy.server.ApplicationLoader@1586c77#964bfca0444711dabb51001321fd6213#
#1.5#001321FD6213005D0000907400001CB000040419275B24FC#1130405987953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###within the infinite of the Scheduler Thread#
#1.5#001321FD6213005D0000907500001CB000040419275B25D9#1130405987953#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler/JobStore#Plain###With in the acquireLockForNextAvailableJob DataStore#
#1.5#001321FD6213005D0000907600001CB000040419275B2E27#1130405987953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Acquired the job null#
#1.5#001321FD6213005D0000907700001CB000040419275B2EFA#1130405987953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Did not find any job.So, Waiting for sometime for the next job#
#1.5#001321FD6213005D0000907800001CB0000404192924ED59#1130406017953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###within the infinite of the Scheduler Thread#
#1.5#001321FD6213005D0000907900001CB0000404192924EE36#1130406017953#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler/JobStore#Plain###With in the acquireLockForNextAvailableJob DataStore#
#1.5#001321FD6213005D0000907A00001CB0000404192924F652#1130406017953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Acquired the job null#
#1.5#001321FD6213005D0000907B00001CB0000404192924F710#1130406017953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Did not find any job.So, Waiting for sometime for the next job#
#1.5#001321FD621300650000120F00001CB000040419295CCD8B#1130406021625#com.sap.aii.af.sample.adapter.ra.SPIManagedConnectionFactory##com.sap.aii.af.sample.adapter.ra.SPIManagedConnectionFactory.XIManagedConnectionFactoryController.run()######04d7f690469311da8d52001321fd6213#Thread[Thread-114,5,SAPEngine_System_Thread[impl:5]_Group]##0#0#Debug#1#/Applications/ExchangeInfrastructure/AdapterFramework/ThirdPartyRoot/comsap/Server/Adapter Framework#Java###MCF with GUID is running. (,)#3#964bfca0444711dabb51001321fd6213#com.sap.engine.services.deploy.server.ApplicationLoader@1586c77#964bfca0444711dabb51001321fd6213#
#1.5#001321FD6213005D0000907C00001CB0000404192AEEB1E2#1130406047953#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###within the infinite of the Scheduler Thread#
#1.5#001321FD6213005D0000907D00001CB0000404192AEEB2C0#1130406047953#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.persistence.jdo.DataBaseJobStore#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler/JobStore#Plain###With in the acquireLockForNextAvailableJob DataStore#
#1.5#001321FD6213005D0000907E00001CB0000404192AEEBAD8#1130406047968#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Acquired the job null#
#1.5#001321FD6213005D0000907F00001CB0000404192AEEBB9E#1130406047968#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#sap.com/crm.trexr3#trexr3.com.sapmarkets.isa.services.schedulerservice.SchedulerThread#J2EE_ADMIN#530##obtdev3_O09_94105150#Guest#8a2bbd20444711da932c001321fd6213#Thread[SchedulerThread,5,SAPEngine_Application_Thread[impl:3]_Group]##0#0#Info#1#/System/Scheduler#Plain###Did not find any job.So, Waiting for sometime for the next job# -
How to add rows in tableview using javascipt
Hi
I had tableview and button in my page.If i click on the button one new row should be appended to the existing tableview.
so , how to add rows in tableview using javascipt which are editable?
Regards,
Pydi.Hi,
Javascript is client scripting language, which is mainly used for validations at the client side.
To add new row using a HTMLB tag ucannot use javascript. Instead pass "visibleRowCount" variable to a abap variable and add the variable on every button click.. that wil increase the visible row count.
Also the size of the table view is the size of the itnernal table, so append a blank like to the internal table or insert it at the top.
If you are not using HTMLB tags and using simple HTML tags u can always add a row using java script.
Regards
Imran. -
How to hide a column (clnt) in tableview using MVC?
Hy,
I would like, please if you cand help me: how to hide a column (clnt) in tableview using MVC for example on sflight table.
ThanksHi,
You can use the below logic
<htmlb:tableView id = "t1"
visibleRowCount = "10"
table = "<%= flights %>">
<htmlb:tableViewColumns>
<htmlb:tableViewColumn columnNamd = "carrid" />
<htmlb:tableViewColumn columnNamd = "connid" />
<htmlb:tableViewColumn columnNamd = "fldate" />
</htmlb:tableViewColumns>
</htmlb:tableView>
define all the required columns using tableViewColumn tag.
Regards,
Ravi -
ALV Tree Report without using ABAP Objects
Hi all,
I want to know the name of a function module to create ALV Tree in SE38 as a report. I am required to create this ALV Tree Report without using ABAP OBJECTS. Can u pls help me as early as possible.Hi
see this link
http://www.sapdev.co.uk/reporting/alv/alvtree.htm
*& Report ZBCALV_TREE
REPORT ZBCALV_TREE.
class cl_gui_column_tree definition load.
class cl_gui_cfw definition load.
data tree1 type ref to cl_gui_alv_tree.
data mr_toolbar type ref to cl_gui_toolbar.
include <icon>.
include bcalv_toolbar_event_receiver.
include bcalv_tree_event_receiver.
data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
data: gt_VBAK type VBAK occurs 0, "Output-Table
gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
ok_code like sy-ucomm. "OK-Code
start-of-selection.
end-of-selection.
call screen 100.
*& Module STATUS_0100 OUTPUT
text
module STATUS_0100 output.
SET PF-STATUS 'MAIN'.
if tree1 is initial.
perform Zinit_tree.
endif.
call method cl_gui_cfw=>flush.
endmodule. " STATUS_0100 OUTPUT
*& Form Zinit_tree
text
--> p1 text
<-- p2 text
form Zinit_tree .
perform Zbuild_fieldcatalog.
create container for alv-tree
data: l_tree_container_name(30) type c,
l_custom_container type ref to cl_gui_custom_container.
l_tree_container_name = 'TREE1'.
if sy-batch is initial.
create object l_custom_container
exporting
container_name = l_tree_container_name
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
endif.
create tree control
create object tree1
exporting
parent = l_custom_container
node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
item_selection = 'X'
no_html_header = ''
no_toolbar = ''
exceptions
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
illegal_node_selection_mode = 5
failed = 6
illegal_column_name = 7.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
create Hierarchy-header
data l_hierarchy_header type treev_hhdr.
perform zbuild_hierarchy_header changing l_hierarchy_header.
create info-table for html-header
data: lt_list_commentary type slis_t_listheader,
l_logo type sdydo_value.
perform Zbuild_comment using
lt_list_commentary
l_logo.
repid for saving variants
data: ls_variant type disvariant.
ls_variant-report = sy-repid.
create emty tree-control
call method tree1->set_table_for_first_display
exporting
is_hierarchy_header = l_hierarchy_header
it_list_commentary = lt_list_commentary
i_logo = l_logo
i_background_id = 'ALV_BACKGROUND'
i_save = 'A'
is_variant = ls_variant
changing
it_outtab = gt_VBAK "table must be emty !!
it_fieldcatalog = gt_fieldcatalog.
create hierarchy
perform Zcreate_hierarchy.
add own functioncodes to the toolbar
perform zchange_toolbar.
register events
perform zregister_events.
endform. " Zinit_tree
*& Form Zbuild_fieldcatalog
text
--> p1 text
<-- p2 text
form Zbuild_fieldcatalog .
get fieldcatalog
call function 'LVC_FIELDCATALOG_MERGE'
exporting
i_structure_name = 'VBAK'
changing
ct_fieldcat = gt_fieldcatalog.
sort gt_fieldcatalog by scrtext_l.
change fieldcatalog
data: ls_fieldcatalog type lvc_s_fcat.
loop at gt_fieldcatalog into ls_fieldcatalog.
case ls_fieldcatalog-fieldname.
when 'AUART' .
ls_fieldcatalog-no_out = 'X'.
ls_fieldcatalog-key = ''.
endcase.
modify gt_fieldcatalog from ls_fieldcatalog.
endloop.
endform. " Zbuild_fieldcatalog
*& Form zbuild_hierarchy_header
text
<--P_L_HIERARCHY_HEADER text
form zbuild_hierarchy_header changing
p_hierarchy_header type treev_hhdr.
p_hierarchy_header-heading = 'Hierarchy Header'. "#EC NOTEXT
p_hierarchy_header-tooltip =
'This is the Hierarchy Header !'. "#EC NOTEXT
p_hierarchy_header-width = 30.
p_hierarchy_header-width_pix = ''.
endform. " zbuild_hierarchy_header
*& Form Zbuild_comment
text
-->P_LT_LIST_COMMENTARY text
-->P_L_LOGO text
form Zbuild_comment using
pt_list_commentary type slis_t_listheader
p_logo type sdydo_value.
data: ls_line type slis_listheader.
LIST HEADING LINE: TYPE H
clear ls_line.
ls_line-typ = 'H'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'ALV-tree-demo: flight-overview'. "#EC NOTEXT
append ls_line to pt_list_commentary.
STATUS LINE: TYPE S
clear ls_line.
ls_line-typ = 'S'.
ls_line-key = 'valid until'. "#EC NOTEXT
ls_line-info = 'January 29 1999'. "#EC NOTEXT
append ls_line to pt_list_commentary.
ls_line-key = 'time'.
ls_line-info = '2.00 pm'. "#EC NOTEXT
append ls_line to pt_list_commentary.
ACTION LINE: TYPE A
clear ls_line.
ls_line-typ = 'A'.
LS_LINE-KEY: NOT USED FOR THIS TYPE
ls_line-info = 'actual data'. "#EC NOTEXT
append ls_line to pt_list_commentary.
p_logo = 'ENJOYSAP_LOGO'.
endform. " Zbuild_comment
*& Form Zcreate_hierarchy
text
--> p1 text
<-- p2 text
form Zcreate_hierarchy .
data: ls_vbak type vbak,
lt_vbak type vbak occurs 0.
get data
select * from vbak into table lt_vbak
up to 200 rows . "#EC CI_NOWHERE
sort lt_vbak by AUART.
add data to tree
data: l_AUART_key type lvc_nkey.
loop at lt_vbak into ls_vbak.
on change of ls_vbak-AUART.
perform Zadd_AUART_line using ls_vbak
changing l_AUART_key.
endon.
endloop.
calculate totals
call method tree1->update_calculations.
this method must be called to send the data to the frontend
call method tree1->frontend_update.
endform. " Zcreate_hierarchy
*& Form Zadd_AUART_line
text
-->P_LS_vbak text
-->P_0379 text
<--P_L_AUART_KEY text
form Zadd_AUART_line using p_ls_vbak type vbak
p_relat_key type lvc_nkey
changing p_node_key type lvc_nkey.
data: l_node_text type lvc_value,
ls_vbak type vbak.
set item-layout
data: lt_item_layout type lvc_t_layi,
ls_item_layout type lvc_s_layi.
ls_item_layout-t_image = '@3P@'.
ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
ls_item_layout-style =
cl_gui_column_tree=>style_intensifd_critical.
append ls_item_layout to lt_item_layout.
add node
l_node_text = p_ls_vbak-AUART.
data: ls_node type lvc_s_layn.
ls_node-n_image = space.
ls_node-exp_image = space.
call method tree1->add_node
exporting
i_relat_node_key = p_relat_key
i_relationship = cl_gui_column_tree=>relat_last_child
i_node_text = l_node_text
is_outtab_line = ls_vbak
is_node_layout = ls_node
it_item_layout = lt_item_layout
importing
e_new_node_key = p_node_key .
endform. " Zadd_AUART_line
*& Form zchange_toolbar
text
--> p1 text
<-- p2 text
form zchange_toolbar .
get toolbar control
call method tree1->get_toolbar_object
importing
er_toolbar = mr_toolbar.
check not mr_toolbar is initial.
add seperator to toolbar
call method mr_toolbar->add_button
exporting
fcode = ''
icon = ''
butn_type = cntb_btype_sep
text = ''
quickinfo = 'This is a Seperator'. "#EC NOTEXT
add Standard Button to toolbar (for Delete Subtree)
call method mr_toolbar->add_button
exporting
fcode = 'DELETE'
icon = '@18@'
butn_type = cntb_btype_button
text = ''
quickinfo = 'Delete subtree'. "#EC NOTEXT
add Dropdown Button to toolbar (for Insert Line)
call method mr_toolbar->add_button
exporting
fcode = 'INSERT_LC'
icon = '@17@'
butn_type = cntb_btype_dropdown
text = ''
quickinfo = 'Insert Line'. "#EC NOTEXT
set event-handler for toolbar-control
create object toolbar_event_receiver.
set handler toolbar_event_receiver->on_function_selected
for mr_toolbar.
set handler toolbar_event_receiver->on_toolbar_dropdown
for mr_toolbar.
endform. " zchange_toolbar
*& Form zregister_events
text
--> p1 text
<-- p2 text
form zregister_events .
define the events which will be passed to the backend
data: lt_events type cntl_simple_events,
l_event type cntl_simple_event.
define the events which will be passed to the backend
l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_header_click.
append l_event to lt_events.
l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
append l_event to lt_events.
call method tree1->set_registered_events
exporting
events = lt_events
exceptions
cntl_error = 1
cntl_system_error = 2
illegal_event_combination = 3.
if sy-subrc <> 0.
message x208(00) with 'ERROR'. "#EC NOTEXT
endif.
set Handler
data: l_event_receiver type ref to lcl_tree_event_receiver.
create object l_event_receiver.
set handler l_event_receiver->handle_node_ctmenu_request
for tree1.
set handler l_event_receiver->handle_node_ctmenu_selected
for tree1.
set handler l_event_receiver->handle_item_ctmenu_request
for tree1.
set handler l_event_receiver->handle_item_ctmenu_selected
for tree1.
endform. " zregister_events
*& Module USER_COMMAND_0100 INPUT
text
module USER_COMMAND_0100 input.
ok_code = sy-ucomm.
clear sy-ucomm.
case ok_code.
when 'EXIT' or 'BACK' or 'CANC'.
perform Zexit_program.
when others.
call method cl_gui_cfw=>dispatch.
endcase.
clear ok_code.
call method cl_gui_cfw=>flush.
endmodule. " USER_COMMAND_0100 INPUT
*& Form Zexit_program
text
--> p1 text
<-- p2 text
form Zexit_program .
call method tree1->free.
leave program.
endform. " Zexit_program
<b>Reward if usefull</b> -
ClassCastException with JDK7U5 while using Iterator.
Hi All,
While i am trying to iterate through a raw Collection (without generics) which contains my business objects using Iterator. It is throwing ClassCastException when i am casting the Iterator's next value with expected object.
but when i replace Iterator with for(int i=0; i<collection.size();i++) loop its working fine and i am able to iterate the collection without any exception and i am able to cast my object with expected class type.
I am not sure why this is happening with JDK1.7u5 while the same code(with iterator) works fine in JDK1.6u31.
Please suggest me the solution or workaround for the same.
Thanks .show your code.
-
In OS 10.7.5, how do I get a listing of folders similar to the "directory tree" that I used to have when I was suffering through MS-DOS?
I'm not quite sure what it is you are looking for, but there are a three different ways to view the files and folder in a directory in Finder - Icon view, List view, or Column view - or you can use Terminal and use the various options for the ls UNIX command for listing a directory. For those options, see:
https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/ man1/ls.1.html
Hope this helps.
Regards. -
How to use Iterator for SOAPBody
The following is the content of my SOAPBody how do i use Iterator to get the output like :
Name 1 : Price 1
Name 2 : Price 2
Name 3 : Price 3
Name 4 : Price 4
Name 5 : Price 5
<SOAP-ENV:Envelope mlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header/>
<SOAP-ENV:Body>
<items>
<item>
<name>Name 1</name>
<price>Price 1</price>
</item>
<item>
<name>Name 2</name>
<price>Price 2</price>
</item>
<item>
<name>Name 3</name>
<price>Price 3</price>
</item>
<item>
<name>Name 4</name>
<price>Price 4</price>
</item>
<item>
<name>Name 5</name>
<price>Price 5</price>
</item>
</items>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>I got the solution so i would like to share with others
Iterator it = soapBody.getChildElements();
getContents(it,"\t");get the Iterator from the SOAPBody object and pass it to the getContents() method
code for getContents() is as follow:
public static void getContents(Iterator iterator, String indent)
while (iterator.hasNext())
SOAPElement element = (SOAPElement)iterator.next();
Name name = element.getElementName();
System.out.println(indent + "Name is " + name.getQualifiedName());
String content = element.getValue();
if (content != null)
System.out.println(indent + "Content is " + content);
Iterator attrs = element.getAllAttributes();
while (attrs.hasNext())
Name attrName = (Name)attrs.next();
System.out.println(indent + " Attribute name is " + attrName.getQualifiedName());
System.out.println(indent + " Attribute value is " + element.getAttributeValue(attrName));
if (content == null)
Iterator iter2 = element.getChildElements();
getContents(iter2, indent + indent);
} --- hasan
SCJP
http://www.myjavaserver.com/~hasstar -
Tableview selection looks different when using iterator
One more litte question about the htmlb:tableView (Design2003, content-style = "tradeshow", selectMode = "MULTISELECT").
When you select a table line, the line is displayed with an orange background. However, if you use a tableView Iterator where you use a textView as the replacement_bee to display some text, this text is not displayed with an orange background, but with only an orange border and a white bacground.
Is there anything I can do?I'm currently working on SP-Upgrade-Checks (47 to 54) for our web applications, and this is one of the things I've noticed.
Got hold up because of some more urgent duties, but as far as I remember I dealt with part of it already successfully. There are still some open questions I have though, and I hope to get back to this thread as soon as I can make some clear statements about it.
cheers,
Max -
Check box in tabel view?when to use itereator and when to use table view
hi,
I want to have a check box along with the other 7fields in the table view.
when the checkbox is checked and the merge complete push button is clicked, the respective code for merge is to be executed.
how can I do this?
could anyone tell me hw to get a check boz in table view
when to use a iterator in BSP, how table view n iterator in comparision ae used or function/work.
Regards,
Pavan P.Hi Pavan,
Table View is an BSP element used to display mass data in a layout similar to a table (table view).
<b>Iterator</b>is an attribute to modify rendering row-by-row, and make it dependent on the clicked row. In this way, you define an action from a particular line. This action is defined in columnDefinitions or overWriteDefinitions.
<htmlb:tableView id = "tvX"
headerText = "Department List"
design = "standard"
headerVisible = "true"
width = "30%"
selectedRowKeyTable = "<%= selectedrowindextable %>"
onRowSelection = "MyEventRowSelection"
sort = "server"
keepSelectedRow = "TRUE"
selectionMode = "MULTISELECT"
table = "<%= i_dept %>" >
</htmlb:tableview>
In your <b> OnInputProcessing </b>, Use this Iterator table to get the data of selected records.
IF selectedrowindextable[] IS NOT INITIAL.
DESCRIBE TABLE selectedrowindextable LINES no .
Rgds,
Jothi.
Pls do close the thread if ur problem is solved. -
I have a check box that was added thru iterator.
How do you stay in the same page of the tableview after clicking a check box?
Example.
there are 4 pages with 5 rows each. If i checked a box in page 4, it always goes to page 1.What you can do is create a button and make the user click on the button..
Then the onClick Event of the button, use the code to read value..!
Hope this helps.
<b><i>Do reward each useful answer..!</i></b>
Thanks,
Tatvagna. -
Tableview using filter - wrong DataBinding?
Using a filter in my tableview made me notice a behaviour of which I don't know if I forgot some important detail or just discovered something ...
System: WebAS 6.20, SP45
In my tableview I use data binding quite extensively, and after implementing and testing the filter I came across this situation:
Chose a filter that would only display the 3rd entry of my table ... these are 4 of the render_cell_start parameters with their values:
p_cell_id mdl_vplaner_plan_data[3].evttx
p_cell_binding //model/plan_data[1].EVTTX
p_row_index 3
p_row_key 3
Of course I set parameter keyColumn for the tableView, so row_index and row_key are the same. However, in the string <b>p_cell_binding</b> it is not the row_key but the number of the row processed in my iterator that is used.
This caused the values of row with key '1' to appear in the first tableview-row wherever p_cell_binding was used.
A workaround for this was not hard to find, just copy p_cell_binding to lv_cell_binding and replace the number there ...
But any input from your side on this is appreciated. Did I not think about something regarding data binding? Did you come across the same situation using iterators with data binding and filter?
Hoping for a lil' discussion
MaxDavid / Raghu - Thanks for u'r replies and apologizes for not posting question with proper material.
Am posting my code and the error message from the screen.
Code :
IFNULL(FILTER("Fact - MBS Loan Transactions"."OUTSTANDING PRINCIPAL" USING "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK" = 'HDC'),0)
Error :
nQSError: 10058] A general error has occurred. [nQSError: 22032] Function FILTER requires at least one measure attribute in its first argument. (HY000)
SQL Issued: SELECT "Dim - MBS Loan"."LOAN AMOUNT", "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK", "Dim - MBS Loan"."LOAN TYPE SEN/SUB", "Dim - MBS Project"."PROJECT NAME", "Dim - MBS Project"."PROJECT NUMBER", "Fact - MBS Loan Transactions"."AR BALANCE INTEREST", "Fact - MBS Loan Transactions"."GL BALANCE INTEREST", IFNULL(FILTER("Fact - MBS Loan Transactions"."OUTSTANDING PRINCIPAL" USING "Dim - MBS Loan"."LOAN TYPE HPD/HDC/BNK" = 'HDC'),0) FROM "Financials - MBS"
OK (Ignore Error)
Please continue answering my queries. Since am a newbie your answers won't be just a reply but it's actually learning for me.
Thanks.
Maybe you are looking for
-
How do I find out the base dir for the current workspace ? Change?
Assume I took over a colleagues JDeveloper installation. How can I find out the base dir for his JDevelopers workspace? Can I change this workspace base dir afterwards/later (without problems for the included sources and projects) ? Where can I chang
-
"Checkpoint not complete" hangs!
Hi everyone; I see "Checkpoint not complete" in the alertlog but normally oracle just waits seconds then checkpoints and go on... But the problem is, database sometimes hangs with this message for minutes and never respond until i checkpoint manually
-
Hi guys, Something very strange happened today to my 4S (iOS 6). I had the phone (screen locked) in my pocket when it played an email alert sound and vibrated, i pulled it out and looked at the screen and saw this message: "Your help is required rega
-
SCOM -SCVMM Post Integration Warning Alerts
HI Recently we integrated SCOM 2012 and VMM 2012 as per this blog- http://blogs.technet.com/b/kevinholman/archive/2012/08/21/integrating-vmm-2012-and-opsmgr-2012.aspx#comments It was a success! However, there are lot of warning alerts popping up from
-
How to stop transport of infocubes
I have a project that has 60 transports that went to QA. There are 6 infocubes within those that went to QA that I do not want to go to Production. How can I stop those without redoing my transports.