Dyanmic table
what is dynamic table? How to create it in ALV?
Hello Madhavi
You may have a look at my sample report <b>ZUS_SDN_RTTI_CREATE_STRUCTUR_2</b> in thread:
Creation of table of table dynamically
Regards
Uwe
Similar Messages
-
Dynamic table with field type table
Hi,
I´m using "cl_alv_table_create=>create_dynamic_table" to create a dynamic table for ALV Grid.
But...I need to use colors in ALV, then I need to declare a field type LVC_S_SCOL in dynamic table from "cl_alv_table_create=>create_dynamic_table".
How can I declare this in fieldcat?
The code:
Creating dynamic table
DATA: table_agrup TYPE REF TO data,
line_agrup TYPE REF TO data.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = t_fieldcat
IMPORTING
ep_table = table_agrup
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
ASSIGN table_agrup->* TO .
Printing ALV
CALL METHOD obj_grid->set_table_for_first_display
EXPORTING
is_variant = w_variant
i_save = 'A'
is_layout = w_layout
CHANGING
it_outtab =
it_fieldcatalog = t_fieldcat
it_sort = t_sort
EXCEPTIONS
invalid_parameter_combination = 1
program_error = 2
too_many_lines = 3
OTHERS = 4.
Thanks.It is not possible with the METHOD cl_alv_table_create=>create_dynamic_table to include another table inside that newly generated table.
I have tried to do it with the code and I got the dynamic table created after at the end of the program.
In the code,
<DYN_TABLE> has same effect as your <table> variable
<DYN_WA> has same effect as your <HEADER>
REPORT ZTEST_NP_DYNAMIC.
DATA: DY_TABLE TYPE REF TO DATA,
DY_LINE TYPE REF TO DATA.
FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
<DYN_WA>,
<DYN_FIELD>.
FIELD-SYMBOLS: <FS> TYPE ANY.
* To generate the Dyanmic table with the COLOR
DATA: LS_SOURCE TYPE STRING.
DATA: LT_SOURCE LIKE STANDARD TABLE OF LS_SOURCE WITH HEADER LINE.
DATA: L_NAME LIKE SY-REPID.
DATA: L_MESSAGE(240) TYPE C,
L_LINE TYPE I,
L_WORD(72) TYPE C.
DATA: L_FORM(30) TYPE C VALUE 'TABLE_CREATE'.
LT_SOURCE = 'REPORT ZTEST_SUBROUTINE_POOL.'.
APPEND LT_SOURCE.
LT_SOURCE = 'FORM TABLE_CREATE USING I_FS TYPE ANY.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BEGIN OF LT_GENTAB OCCURS 0.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BUKRS TYPE BUKRS. '.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BKTXT TYPE BKTXT. '.
APPEND LT_SOURCE.
* you can add your fields here.....
LT_SOURCE = 'DATA: COLOR TYPE lvc_t_scol. '.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: END OF LT_GENTAB.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: POINTER TYPE REF TO DATA.'.
APPEND LT_SOURCE.
LT_SOURCE = 'CREATE DATA POINTER LIKE STANDARD TABLE OF LT_GENTAB.'.
APPEND LT_SOURCE.
LT_SOURCE = 'I_FS = POINTER.'.
APPEND LT_SOURCE.
LT_SOURCE = 'ENDFORM. '.
APPEND LT_SOURCE.
L_NAME = 'ZTEST_SUBROUTINE_POOL'.
CATCH SYSTEM-EXCEPTIONS GENERATE_SUBPOOL_DIR_FULL = 9.
GENERATE SUBROUTINE POOL LT_SOURCE NAME L_NAME
MESSAGE L_MESSAGE LINE L_LINE WORD L_WORD. "#EC CI_GENERATE
ENDCATCH.
IF NOT L_MESSAGE IS INITIAL.
MESSAGE E000(0K) WITH L_MESSAGE L_LINE L_WORD.
ENDIF.
ASSIGN DY_TABLE TO <FS>.
PERFORM (L_FORM) IN PROGRAM (L_NAME) USING <FS>.
ASSIGN DY_TABLE->* TO <DYN_TABLE>.
* Create dynamic work area and assign to FS
CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.
ASSIGN DY_LINE->* TO <DYN_WA>.
Write: 'bye'.
Regards,
Naimesh Patel -
JSP : Dynamic Table creation
HI Frds
I am looking for solution for my following problem ...
I want to create dyanmic table i.e rows & column on the basis of user
input
Thanks
Ashishok if you want a sample here it is;
<%@ page contentType="text/html;charset=windows-1252"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>untitled</title>
</head>
<body>
<table cellspacing="0" cellpadding="0" border="0" width="200">
<tr>
<td>Column 1</td>
<td>Column 2</td>
</tr>
<%for(int x=0;x<5;x++){%>
<tr>
<td>Row</td>
<td><%=x%></td>
</tr>
<%}%>
</table>
</body>
</html> -
Filling Dyanamic Internal table with data
Hi All
I have a following requirement.
1.. I have internal table with 1 text field of length 1000, this is field with data uploaded from text file having data tab seprated
2. I have a dyanamic table in which i have to fill the using the above internal table splited by tab seprated into the corresponding fields of dyanamic table.
please suggest some solution for the above.
thanks
bobbyHi Martin,
But How to assign to dyanmic table fields if we are using
split t_intab at CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB into .
where t_intab has 1 field of lenth say 1000 in which data stored is tab seprated.
please find below my code, please check loop at t_intab
FUNCTION Z_TEXT.
""Local Interface:
*" IMPORTING
*" VALUE(I_EXPTABLE) TYPE LVC_T_FCAT
*" VALUE(I_DELIMETER) TYPE C DEFAULT 'T'
*" TABLES
*" T_INTAB
*" T_OUTTAB
Data declarations
DATA:
dtab TYPE REF TO data,
newstr2 TYPE REF TO cl_abap_typedescr,
tab_type1 TYPE REF TO cl_abap_tabledescr,
lref_ditab TYPE REF TO data,
lref_new_line TYPE REF TO data.
Field-Symbols declarations
FIELD-SYMBOLS:
<fs_dyn_tab1> TYPE ANY TABLE,
<fs_dyn_wa> TYPE ANY,
<fs> type any.
Create dynamic table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = i_exptable
IMPORTING
ep_table = lref_ditab
EXCEPTIONS
generate_subpool_dir_full = 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.
Assign the dynamic table reference to a field-symbol
ASSIGN lref_ditab->* TO <fs_dyn_tab1>.
Create a structure similar to the dynamic table created
CREATE DATA lref_new_line LIKE LINE OF <fs_dyn_tab1>.
ASSIGN lref_new_line->* TO <fs_dyn_wa>.
loop at t_intab.
if I_DELIMETER = 'T'.
split t_intab at CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB into .
endif.
endloop.
ENDFUNCTION.
thanks
bobby -
Copying fields froma dynamic table
i have a dyanmic table say t1. now i have craeted another dynamic table say t2 with some fields in common with table t1. i won't be knowing which fields are in common. the common fields will be stord in another table t3. now i need to copy the common fields from t1 to t2 after reading them from t3. how do i go about it???
TYPES:
BEGIN OF s_t3.
INCLUDE TYPE A.
INCLUDE TYPE B.
TYPES:
END OF s_t3.
DATA:
t1 TYPE TABLE OF A,
t2 TYPE TABLE OF B,
ls_t3 TYPE s_t3,
t3 TYPE TABLE OF s_t3.
FIELD-SYMBOLS:
<fs_t1> TYPE A,
<fs_t2> TYPE B.
LOOP AT t1 ASSIGNING <fs_t1>.
READ TABLE t2 ASSIGNING <fs_t2>
WITH KEY
[key_t2] = [key_t1].
CHECK sy-subrc IS INITIAL.
MOVE-CORRESPONDING <fs_t1> TO <ls_t3>.
MOVE-CORRESPONDING <fs_t2> TO <ls_t3>.
APPEND ls_t3 TO t3.
ENDLOOP. -
Problem with coloring cells in dynamic fieldcatalog
Hi All,
I am trying to color cells based on the values in the cells. Here we are using dynamic fieldcatalog and internal table to build the ALV grid.I am getting problem in adding a field to the fieldcatlog which is of type lvc_t_scol. This Part of the code is used to build fieldcatlog dynamically.
DEFINE add_cat.
add 1 to lv_count1.
lwa_fldcat-col_pos = lv_count1.
lwa_fldcat-fieldname = &1 .
lwa_fldcat-reptext = &2.
lwa_fldcat-inttype = &3.
lwa_fldcat-intlen = &4.
append lwa_fldcat to lt_fldcat .
END-OF-DEFINITION.
*Add Columns to the fieldcatalog
add_cat c_proj 'Project' 'C' '30'.
add_cat c_cust 'Customer' 'C' '30'.
lwa_fldcat-col_pos = 12.
lwa_fldcat-fieldname = 'cellcolor' .
lwa_fldcat-reptext = 'cell color'.
<b> lwa_fldcat-inttype = 'lvc_t_scol'.</b>
append lwa_fldcat to lt_fldcat .
Here i want to assign internal table(lvc_t_scol) to the fieldcatalog as a field.But lwa_fldcat-inttype is of size 1 which will take one char. Is there any way that we can assign field of type internal table to the field catalog. Becoz of this i am unable to color cells in my ALV grid.
ThanksIt is not possible with the METHOD cl_alv_table_create=>create_dynamic_table to include another table inside that newly generated table.
I have tried to do it with the code and I got the dynamic table created after at the end of the program.
In the code,
<DYN_TABLE> has same effect as your <table> variable
<DYN_WA> has same effect as your <HEADER>
REPORT ZTEST_NP_DYNAMIC.
DATA: DY_TABLE TYPE REF TO DATA,
DY_LINE TYPE REF TO DATA.
FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
<DYN_WA>,
<DYN_FIELD>.
FIELD-SYMBOLS: <FS> TYPE ANY.
* To generate the Dyanmic table with the COLOR
DATA: LS_SOURCE TYPE STRING.
DATA: LT_SOURCE LIKE STANDARD TABLE OF LS_SOURCE WITH HEADER LINE.
DATA: L_NAME LIKE SY-REPID.
DATA: L_MESSAGE(240) TYPE C,
L_LINE TYPE I,
L_WORD(72) TYPE C.
DATA: L_FORM(30) TYPE C VALUE 'TABLE_CREATE'.
LT_SOURCE = 'REPORT ZTEST_SUBROUTINE_POOL.'.
APPEND LT_SOURCE.
LT_SOURCE = 'FORM TABLE_CREATE USING I_FS TYPE ANY.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BEGIN OF LT_GENTAB OCCURS 0.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BUKRS TYPE BUKRS. '.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: BKTXT TYPE BKTXT. '.
APPEND LT_SOURCE.
* you can add your fields here.....
LT_SOURCE = 'DATA: COLOR TYPE lvc_t_scol. '. " <<
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: END OF LT_GENTAB.'.
APPEND LT_SOURCE.
LT_SOURCE = 'DATA: POINTER TYPE REF TO DATA.'.
APPEND LT_SOURCE.
LT_SOURCE = 'CREATE DATA POINTER LIKE STANDARD TABLE OF LT_GENTAB.'.
APPEND LT_SOURCE.
LT_SOURCE = 'I_FS = POINTER.'.
APPEND LT_SOURCE.
LT_SOURCE = 'ENDFORM. '.
APPEND LT_SOURCE.
L_NAME = 'ZTEST_SUBROUTINE_POOL'.
CATCH SYSTEM-EXCEPTIONS GENERATE_SUBPOOL_DIR_FULL = 9.
GENERATE SUBROUTINE POOL LT_SOURCE NAME L_NAME
MESSAGE L_MESSAGE LINE L_LINE WORD L_WORD. "#EC CI_GENERATE
ENDCATCH.
IF NOT L_MESSAGE IS INITIAL.
MESSAGE E000(0K) WITH L_MESSAGE L_LINE L_WORD.
ENDIF.
ASSIGN DY_TABLE TO <FS>.
PERFORM (L_FORM) IN PROGRAM (L_NAME) USING <FS>.
ASSIGN DY_TABLE->* TO <DYN_TABLE>.
* Create dynamic work area and assign to FS
CREATE DATA DY_LINE LIKE LINE OF <DYN_TABLE>.
ASSIGN DY_LINE->* TO <DYN_WA>.
Write: 'bye'.
Regards,
Naimesh Patel -
hi,
This may be a very basic doubt.please help me.
i m creating the dynamic table every month to maintain the particular month data seperately .when the records are getting inserted in the table,trigger will automatically insert the records in the dynamic table. In the ACTN_DATE column, only date alone(without timestamp) getting inserted in the dynamic table from main table. so by default ,00:00:00 is getting appended with date instead of actual timestamp present in the main table. tried select to_date(to_char(:new.ACTN_DATE,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') INTO v_temp_actn_date from dual; then in the insert query ,i tried to insert the temp. variable v_temp_actn_date. but only date alone getting inserted in the dynamic table . In main table and dyanmic table datatype for date column is date .
actn_date value in main table 30-jun-2012 12:50:32 but actn_date value in the dynamic table is 30-jun-2012 00:00:00 . don't know why timestamp value is not present in the date field. please help me solve this issue .Thanks.Welcome to the forum!
Whenever you post please provide your 4 digit Oracle version (result of SELECT * FROM V$VERSION).
I don't understand how you data is getting inserted into each of the tables.
>
when the records are getting inserted in the table,trigger will automatically insert the records in the dynamic table.
>
What exactly is the trigger doing? What kind of trigger is it? What table is it on? Is the trigger inserting data into another table? Post the trigger code.
Please show the sample data from each table and the query that is being used to SELECT data from the one table and INSERT it into the main table. -
What are dyanmic internal tables and what s the exact use of forall entries
what are dyanmic internal tables and what s the exact use of forall entries?
hi,
<u><b>dynamic internal table.</b></u>
http://searchsap.techtarget.com/tip/1,289483,sid21_gci912390,00.html
http://www.sap-img.com/ab030.htm
<u><b>
FOR ALL ENTRIES</b></u> is an effective way of doing away with using JOIN on two tables.
You can check the below code -
SELECT BUKRS BELNR GJAHR AUGDT
FROM BSEG
INTO TABLE I_BSEG
WHERE BUKRS = ....
SELECT BUKRS BELNR BLART BLDAT
FROM BKPF
INTO TABLE I_BKPF
FOR ALL ENTRIES IN I_BSEG
WHERE BUKRS = I_BSEG-BUKRS
AND BELNR = I_BSEG-BELNR
AND BLDAT IN SO_BLDAT.
*******************************8
look another example
what is the use of FOR ALL ENTRIES
1. INNER JOIN
DBTAB1 <----
> DBTAB2
It is used to JOIN two DATABASE tables
having some COMMON fields.
2. Whereas
For All Entries,
DBTAB1 <----
> ITAB1
is not at all related to two DATABASE tables.
It is related to INTERNAL table.
3. If we want to fetch data
from some DBTABLE1
but we want to fetch
for only some records
which are contained in some internal table,
then we use for alll entries.
1. simple example of for all entries.
2. NOTE THAT
In for all entries,
it is NOT necessary to use TWO DBTABLES.
(as against JOIN)
3. use this program (just copy paste)
it will fetch data
from T001
FOR ONLY TWO COMPANIES (as mentioned in itab)
4
REPORT abc.
DATA : BEGIN OF itab OCCURS 0,
bukrs LIKE t001-bukrs,
END OF itab.
DATA : t001 LIKE TABLE OF t001 WITH HEADER LINE.
itab-bukrs = '1000'.
APPEND itab.
itab-bukrs = '1100'.
APPEND itab.
SELECT * FROM t001
INTO TABLE t001
FOR ALL ENTRIES IN itab
WHERE bukrs = itab-bukrs.
LOOP AT t001.
WRITE :/ t001-bukrs.
ENDLOOP.
Hope this helps!
Regards,
Anver -
Sorting of Dyanmic internal table
Hi Gurus,
I am having a dynamic internal table (it_mat) having fields matnr uname field1,field2,field3 and field4.
the field is upto fieldN.
I want my table to sorted by this manner
Sort it_mat by field4 field3 field2 field1.
Sort it_mat by fieldN field(N-1)...field1.
Please help me in to get this in dynamic manner.You can try something like this:
types : begin of ty_comps.
include type abap_compdescr.
types: srl type i.
types : end of ty_comps .
data: lt_comps type standard table of ty_comps,
la_comps type ty_comps.
data: l_sort type standard table of char30 with header line.
loop at lt_tot_comp into la_comp. " LT_TOT_COMP contains all my components
move-corresponding la_comp to la_comps.
la_comps-srl = sy-tabix.
append la_comps to lt_comps.
clear la_comps.
endloop.
sort lt_comps by srl descending.
loop at lt_comps into la_comps.
l_sort = la_comps-name.
append l_sort.
endloop.
sort <f_tab> by (l_sort).
You can find the entire code which I have used to create a dynamic table at: [Dynamic Internal Table Creation|http://help-abap.blogspot.com/2008/09/dynamic-internal-table-creation.html]
Regards,
Naimesh Patel -
HI ,
Using jdev 11.6 .
I have requirement to show the table row/column in different color based on the some conditions . i have achieved by overriding the postQuery method and setting the color in transient attribute in voimple.
My questions related to the adf -style classes ,please provide style classes for over riding the table -column /row ? ( i m using the adf skining olny)
appreciate if any references ADF-css styles class sample for table row /column and also related to table row coloring based on the some conditions .
thanksWhy did you overwrite the post query method?
What are the conditions and now are they calculated?
Read Frank's article about skins http://www.oracle.com/technetwork/issue-archive/2011/11-nov/o61adf-512006.html This should get you started.
Timo -
How to create a table with a dynamic amount of columns
Hi, all!
Thare is a tutorial at javaFX documentation page. This example describes how to make tableView, if you have some certain java class, which can tell you which columns you are going to have. (That is a Person class in this example).
But what if i do not have any specific class, and number of columns can vary from time to time? In my case i have such data structure:
class TableData{
List<Row> rows; //A list with all my rows i need to have in my table
class Row{
List<Column> columns; //Cells\Columns for every row.
class Column{
Attribute attr; //Each column - is somethig like a wrapper for the real data i need to show in a cell;
class Attribute{ //My precues data
String name;
SupportingInfo info;
class SupportingInfo{//Some supporting fields...
String name;
String value;
//...etc....
}So, my case is very similar to [this one|http://blog.ngopal.com.np/2011/10/19/dyanmic-tableview-data-from-database/] . The only differents is that data from the case above is not binded with its representation in javaFX table (so, even if some one will make extra controls to edit this data in a tableView, the actual object with that data will never know about it.), because it(data) goes to the table like some strings, not like some objects;
So, what do i need - is to push data to the table (like that: table.setItems(tableData)), set some set Factories, to give user ability to edit data, and to have this edited data in my tableData object;
Here are some code i've tried to make for this purpose:
//prepare my table
private void createTableHeader(TableView table, List<Attribute> ias) {
int i = 0;
for (final Attribute ia : ias) {
final int j = i;
i++;
TableColumn tc = new TableColumn(ia.getName());
tc.setSortable(true);
tc.setCellValueFactory(new Callback<CellDataFeatures<List<Attribute>, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(CellDataFeatures<List<Attribute>, String> arg0) {
if(arg0.getValue().get(j).getSupportingInfo() == null){
arg0.getValue().get(j).setSupportingInfo(new SupportingInfo());
return new SimpleObjectProperty(arg0.getValue().get(j),"value");
table.getColumns().add(tc);
//loading some data to my tableView
private void createTableBody(TableView curTable, List<Row> rows) {
ObservableList<List<Attribute>> data = FXCollections.observableArrayList();
for (Row row : rows) {
data.add(row.getColumns());
curTable.setItems(data);
//this one is to define some extra controls for editing data in a table by users
private void makeCellFactory(TableColumn curTableCol, final Attribute templateIa, final Document doc) {
curTableCol.setCellFactory(new Callback<TableColumn, TableCell>() {
public TableCell call(TableColumn p) {
final EditingCell cell = new EditingCell(templateIa, doc);
return cell;
}But, as a result, i have just empty rows in my table, with an ability to click some cell and recieve table editing controls. But there is not defult values in by table; What am i doing wrong in my code?
Edited by: 929064 on 21.09.2012 2:24
Edited by: 929064 on 24.09.2012 8:26
Edited by: 929064 on 24.09.2012 8:27I put an example up on this thread No DataGrid component? with a TableView displaying values from a non-JavaFX aware data model. It might help get you started. This example is not editable, to make your table editable you would need to update the data model directly when editing is complete.
Note that if you're building the data model from scratch, there's no need for the listener-notification to be built by hand, as I did in the example. Your data model can directly use the same JavaFX collections instances the table is using. -
Internal table with variable no of columns
Hi All,
I have to create an internal table with some fixed columns and rest of the table should be dynamic. The total no of columns depends on a field of some other table. hence, the number of columns of the table are unknown. How to create such a table.
Thanks,
NehaExecute this program .. we will get a fair idea about how the dyanmic column are populated in the table. Based on that u can write ur sceond table with 92 columns
*& Report ZTEST009
REPORT ztest009 NO STANDARD PAGE HEADING LINE-SIZE 60 LINE-COUNT 2(1).
TYPE-POOLS : slis.
TYPES : BEGIN OF internal,
matnr(18),
werks(4),
qtyn(20),
desc(20) TYPE c,
qty TYPE i,
END OF internal.
DATA : it TYPE TABLE OF internal,
wa TYPE internal.
DATA : fieldcat TYPE lvc_t_fcat,
lcat TYPE lvc_s_fcat,
final_cat TYPE slis_t_fieldcat_alv,
fcat TYPE slis_fieldcat_alv,
top TYPE slis_t_listheader,
events TYPE slis_t_event,
layout TYPE slis_layout_alv.
DATA : newfield TYPE REF TO data,
newdata TYPE REF TO data.
FIELD-SYMBOLS : <fs1>,
<dynamic_value>,
<dynamic_cat> TYPE STANDARD TABLE.
START-OF-SELECTION.
PERFORM popudate.
PERFORM buildcat.
PERFORM loadata.
PERFORM events USING events.
PERFORM header USING top.
PERFORM layout.
END-OF-SELECTION.
PERFORM display.
*& Form popudate
text
--> p1 text
<-- p2 text
FORM popudate .
DEFINE popu.
wa-matnr = &1.
wa-werks = &2.
wa-qtyn = &3.
wa-desc = &4.
wa-qty = &5.
append wa to it.
clear wa.
END-OF-DEFINITION.
popu 'material1' 'pla1' 'QTY1' 'quantity1' 100.
popu 'material1' 'pla1' 'QTY2' 'quantity2' 200.
popu 'material1' 'pla1' 'QTY3' 'quantity3' 300.
popu 'material2' 'pla2' 'QTY1' 'quantity1' 400.
popu 'material2' 'pla2' 'QTY2' 'quantity2' 500.
popu 'material2' 'pla2' 'QTY3' 'quantity3' 600.
popu 'material3' 'pla3' 'QTY1' 'quantity1' 700.
popu 'material3' 'pla3' 'QTY2' 'quantity2' 400.
SORT it BY matnr.
ENDFORM. " popudate
*& Form buildcat
text
--> p1 text
<-- p2 text
FORM buildcat .
lcat-fieldname = 'MATNR'.
lcat-datatype = 'CHAR'.
lcat-seltext = 'Material'.
lcat-intlen = 18.
APPEND lcat TO fieldcat.
CLEAR lcat.
lcat-fieldname = 'WERKS'.
lcat-datatype = 'CHAR'.
lcat-seltext = 'Plant'.
lcat-intlen = 4.
APPEND lcat TO fieldcat.
CLEAR lcat.
LOOP AT it INTO wa.
READ TABLE fieldcat INTO lcat WITH KEY fieldname = wa-qtyn.
IF sy-subrc <> 0.
lcat-fieldname = wa-qtyn.
lcat-datatype = 'CHAR'.
lcat-seltext = wa-desc.
lcat-intlen = 10.
APPEND lcat TO fieldcat.
CLEAR lcat.
ENDIF.
ENDLOOP.
CLEAR lcat.
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
i_style_table =
it_fieldcatalog = fieldcat
i_length_in_byte =
IMPORTING
ep_table = newfield
e_style_fname =
EXCEPTIONS
generate_subpool_dir_full = 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.
ASSIGN newfield->* TO <dynamic_cat>.
CREATE DATA newdata LIKE LINE OF <dynamic_cat>.
ASSIGN newdata->* TO <dynamic_value>.
ENDFORM. " buildcat
*& Form loadata
text
--> p1 text
<-- p2 text
FORM loadata .
DATA flag TYPE i.
LOOP AT it INTO wa.
flag = 0.
ASSIGN COMPONENT 'MATNR' OF STRUCTURE <dynamic_value> TO <fs1>.
<fs1> = wa-matnr.
ASSIGN COMPONENT 'WERKS' OF STRUCTURE <dynamic_value> TO <fs1>.
<fs1> = wa-werks.
CALL FUNCTION 'AIPC_CONVERT_TO_UPPERCASE'
EXPORTING
i_input = wa-qtyn
i_langu = sy-langu
IMPORTING
e_output = wa-qtyn.
ASSIGN COMPONENT wa-qtyn OF STRUCTURE <dynamic_value> TO <fs1>.
<fs1> = wa-qty.
AT END OF matnr.
APPEND <dynamic_value> TO <dynamic_cat>.
CLEAR : <dynamic_value>.
ENDAT.
CLEAR : wa.
ENDLOOP.
ENDFORM. " loadata
**& Form display
text
--> p1 text
<-- p2 text
FORM display .
LOOP AT fieldcat INTO lcat.
fcat-fieldname = lcat-fieldname.
fcat-outputlen = lcat-intlen.
fcat-seltext_l = lcat-seltext.
APPEND fcat TO final_cat.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
is_layout = layout
it_fieldcat = final_cat
IT_SORT =
I_SAVE = ' '
IS_VARIANT =
it_events = events
TABLES
t_outtab = <dynamic_cat>
ENDFORM. " display
Regards,
Aswin. -
How to fetch data from database in javafx 2.2 table which is editable.
Dears!
I want to fetch data from database in javafx 2.2 tableformat with jdbc , which is also editable and i can add more records in this table also.
Can anybody help meI can vaguely recall some sort of JavaFX database connectivity feature, I'm not sure if it's valid anymore.The link is based on JavaFX Composer which only applied to NetBeans 6.9 and JavaFX 1.x (both of which are now dead techs).
There is a good chance you will have to write your own. There are several blogs describing other peoples' work. You could probably use them as a reference.Here is Narayan's basic [url http://blog.ngopal.com.np/2011/10/19/dyanmic-tableview-data-from-database/] tutorial for displaying data from a database in a TableView, you'll need to look elsewhere for the editing portion.
The [url http://docs.oracle.com/javafx/2/ui_controls/table-view.htm]JavaFX TableView tutorial gives info about how to handle edits in a TableView, but you will need to tie the updates back to the database yourself.
It is possible that [url http://www.javafxdata.org/]DataFX may provide some facilities to help support you. -
How to add a table (dynamic created) into a model attribute
i have dynamically created an internal table. Generally i use model-binding in a stateful MVC-Application.
Is there a possibiltity to transfer the dynamic table to a model. As far as i know generic attributes are not allowed in the modell class.
Every hint welcome
thx in advanceBy some miracle I do have this finally working. I will warn you up front that the code is not the cleanest (I have stuff copied in from all over the place. I probably have lots of unused variable references - but I am running out of time to clean it up further). Also I don't have all the logic to support all your different possible dynamic structure types. I always use SFLIGHT as my dyanmic structure. Therefore you will have to adapt the coding to lookup the actual structure type in use.
So I have a model that has an structure ITAB type ref to data. In my Model initialization I go ahead and dynamically redfine this to my specific type:
METHOD init.
SELECT SINGLE * FROM sflight INTO CORRESPONDING FIELDS OF isflight.
DATA: struct_type TYPE REF TO cl_abap_structdescr,
tabletype TYPE REF TO cl_abap_tabledescr.
struct_type ?= cl_abap_structdescr=>describe_by_name( 'SFLIGHT' ).
CREATE DATA me->itab TYPE HANDLE struct_type.
ENDMETHOD.
Then in my View I have the following:
<%@page language="abap" %>
<%@extension name="htmlb" prefix="htmlb" %>
<%@extension name="phtmlb" prefix="phtmlb" %>
<%@extension name="bsp" prefix="bsp" %>
<htmlb:content design="design2003" >
<htmlb:page title=" " >
<htmlb:form>
<phtmlb:matrix width="100%" >
<%
field-symbols: <wa> type any.
assign model->itab->* to <wa>.
* append initial line to <wa_itab> assigning <Wa>.
data: descriptor type ref to CL_ABAP_STRUCTDESCR.
descriptor ?= CL_ABAP_STRUCTDESCR=>describe_by_data( <wa> ).
data: flddescr type DDFIELDS.
flddescr = descriptor->GET_DDIC_FIELD_LIST( ).
field-symbols: <wa_field> like line of flddescr.
data: label type ref to cl_htmlb_label.
data: input type ref to CL_HTMLB_INPUTFIELD.
data: binding_string type string.
"Loop through each field in the structure Definition
loop at flddescr assigning <Wa_field>.
clear label.
clear input.
concatenate '//model/itab.'
<wa_field>-FIELDNAME
into binding_string.
label ?= cl_htmlb_label=>factory( _for = binding_string ).
input ?= cl_htmlb_inputfield=>factory( _value = binding_string ).
%>
<phtmlb:matrixCell row = "+1"
vAlign = "TOP" />
<bsp:bee bee="<%= label %>" />
<phtmlb:matrixCell col = "+1"
vAlign = "TOP" />
<bsp:bee bee="<%= input %>" />
<%
endloop.
%>
</phtmlb:matrix>
<htmlb:button id="Test" onClick="Test" text="Submit"/>
</htmlb:form>
</htmlb:page>
The key to making this work are custom getter/setters. In your model class, you can copy from the template methods (Like GETM_S_XYZ for the metadata structure method). Copy them and remove the _ on the front of the name. Then change XYZ to the name of the attribute you are binding for. The following are my custom methods.
method get_m_s_itab .
* uses ****************************************************************
* data ****************************************************************
* code ****************************************************************
* method is supposed to return either info about a specific component
* of a structure (component is not initial -> return ref to
* if_bsp_metadata_simple) or the complete structure
* (component is initial -> return ref to if_bsp_metadata_struct)
data: l_attribute_ref type ref to data,
l_attr_ref type ref to data,
l_exception type ref to cx_root,
l_ex type ref to cx_sy_conversion_error,
l_ex_bsp type ref to cx_bsp_conversion_exception,
l_ex2 type ref to cx_bsp_t100_exception,
l_type type i,
l_index type i,
l_name type string,
l_component type string,
l_getter type string.
data: l_field_ref type ref to data,
l_dfies_wa type dfies,
rtti type ref to cl_abap_elemdescr.
data: crap type string,
rest type string,
t_index(10) type c.
split attribute_path at '[' into crap rest.
split rest at ']' into t_index crap.
****Dummy Object to avoid dumps
create object metadata type cl_bsp_metadata_simple
exporting info = l_dfies_wa.
call method if_bsp_model_util~disassemble_path
exporting
path = attribute_path
importing
name = l_name
index = l_index
component = l_component
type = l_type.
data: l_dataref type string.
****Dynamically determine your actual structure - for this demo
****I just hardcode SFLIGHT
concatenate 'SFLIGHT-' l_component into l_dataref.
data: field type ref to data.
****Create a data object of the specified type
try.
create data field type (l_dataref).
catch cx_sy_create_data_error.
exit.
endtry.
rtti ?= cl_abap_typedescr=>describe_by_data_ref( field ).
l_dfies_wa = rtti->get_ddic_field( ).
clear metadata.
create object metadata type cl_bsp_metadata_simple
exporting info = l_dfies_wa.
endmethod.
method get_s_itab .
* uses ****************************************************************
* data ****************************************************************
* code ****************************************************************
* get the given value of the component of the struct, e.g.
* field-symbols: <l_comp> type any.
* assign component component of structure XYZ to <l_comp>.
* value = <l_comp>.
data: l_attr_ref type ref to data,
l_field_ref type ref to data.
data: l_attribute_ref type ref to data,
l_exception type ref to cx_root,
l_ex type ref to cx_sy_conversion_error,
l_ex2 type ref to cx_bsp_t100_exception,
l_type type i,
l_index type i,
l_name type string,
l_component type string,
l_getter type string,
rtti type ref to cl_abap_elemdescr.
field-symbols: <o_data> type any,
<n_data> type any.
*Test
call method if_bsp_model_util~disassemble_path
exporting
path = attribute_path
importing
name = l_name
index = l_index
component = l_component
type = l_type.
* get a field reference for the assignment
field-symbols: <wa> type any,
<l_comp> type any.
assign me->itab->* to <wa>.
assign component l_component of structure <wa> to <l_comp>.
get reference of <l_comp> into l_field_ref.
****Dynamically determine your actual structure - for this demo
****I just hardcode SFLIGHT
data: l_dataref type string.
concatenate 'SFLIGHT-' l_component into l_dataref.
data: field type ref to data.
****Create a data object of the specified type
try.
create data field type (l_dataref).
catch cx_sy_create_data_error.
exit.
endtry.
assign l_field_ref->* to <o_data>.
assign field->* to <n_data>.
move <o_data> to <n_data>.
* call conversion routine
try.
value = if_bsp_model_util~convert_to_string(
data_ref = field
attribute_path = attribute_path
no_conversion_exit = 0 ).
catch cx_sy_conversion_error into l_ex.
me->errors->add_message_from_exception(
condition = attribute_path
exception = l_ex
dummy = value ).
catch cx_bsp_t100_exception into l_ex2.
me->errors->add_message_from_t100(
condition = attribute_path
msgid = l_ex2->msgid
msgno = l_ex2->msgno
msgty = l_ex2->msgty
p1 = l_ex2->msgv1
p2 = l_ex2->msgv2
p3 = l_ex2->msgv3
p4 = l_ex2->msgv4
dummy = value ).
endtry.
endmethod.
method set_s_itab .
* uses ****************************************************************
* data ****************************************************************
* code ****************************************************************
* assign the given value to the component of the struct, e.g.
* field-symbols: <l_comp> type any.
* assign component component of structure XYZ to <l_comp>.
* <l_comp> = value.
data: l_attr_ref type ref to data,
l_field_ref type ref to data.
data: l_attribute_ref type ref to data,
l_exception type ref to cx_root,
l_ex type ref to cx_sy_conversion_error,
l_ex_bsp type ref to cx_bsp_conversion_exception,
l_ex2 type ref to cx_bsp_t100_exception,
l_type type i,
l_index type i,
l_name type string,
l_component type string,
l_getter type string,
rtti type ref to cl_abap_elemdescr.
field-symbols: <o_data> type any,
<n_data> type any.
*Test
call method if_bsp_model_util~disassemble_path
exporting
path = attribute_path
importing
name = l_name
index = l_index
component = l_component
type = l_type.
* get a field reference for the assignment
field-symbols: <wa> type any,
<l_comp> type any.
assign me->itab->* to <wa>.
assign component l_component of structure <wa> to <l_comp>.
get reference of <l_comp> into l_field_ref.
****Dynamically determine your actual structure - for this demo
****I just hardcode SFLIGHT
data: l_dataref type string.
concatenate 'SFLIGHT-' l_component into l_dataref.
data: field type ref to data.
****Create a data object of the specified type
try.
create data field type (l_dataref).
catch cx_sy_create_data_error.
exit.
endtry.
assign field->* to <n_data>.
move <l_comp> to <n_data>.
* call conversion routine
try.
if_bsp_model_util~convert_from_string(
data_ref = field
value = value
attribute_path = attribute_path
use_bsp_exceptions = abap_true
no_conversion_exit = 0 ).
catch cx_sy_conversion_error into l_ex.
me->errors->add_message_from_exception(
condition = attribute_path
exception = l_ex
dummy = value ).
catch cx_bsp_conversion_exception into l_ex_bsp.
me->errors->add_message_from_exception(
condition = attribute_path
exception = l_ex_bsp
dummy = value ).
catch cx_bsp_t100_exception into l_ex2.
me->errors->add_message_from_t100(
condition = attribute_path
msgid = l_ex2->msgid
msgno = l_ex2->msgno
msgty = l_ex2->msgty
p1 = l_ex2->msgv1
p2 = l_ex2->msgv2
p3 = l_ex2->msgv3
p4 = l_ex2->msgv4
dummy = value ).
endtry.
if <n_data> is initial.
clear <l_comp>.
else.
move <n_data> to <l_comp>.
endif.
endmethod.
I know that is a LOT of nasty code without too much explanation. I'm afriad there isn't time right now to expand on how it works too much. Between my day job and trying to finish the BSP book, there just isn't much time left. Like I said before there is a very large section in the book on this topic that hopefully explains it. The book will be out in December or early January - but perhaps I will get some time before then to write up something on SDN about this. -
How to Read data base table at runtime
Hi,
i have an internal table with two fields they are
tablename and field name.
itab has some entries.
like :
itab-table name itab-fieldname
kna1 kunnr
mara matnr
vbuk vbeln
tvak auart
i want to read these tables with field names.
like :
loop at itab
select singe * from <itab-tablename> into <jtab>
where <itab-fieldname > = <dyanmic value from prog>.
endloop.
Is it possible to read the db table in the above scenario.
Please try to give me the solution.
Thanks,
srikHi, try this example program.
report zrich_0002 .
data: begin of itab occurs 0,
tabname(20) type c,
fldname(20) type c,
end of itab.
data: ref_descr type ref to cl_abap_structdescr.
data: where_clause(100) type c occurs 0 with header line.
data: it_details type abap_compdescr_tab,
wa_details type abap_compdescr.
data: new_table type ref to data,
new_line type ref to data,
it_fldcat type lvc_t_fcat,
wa_it_fldcat type lvc_s_fcat.
field-symbols: <dyn_table> type standard table,
<dyn_wa>,
<dyn_field>.
start-of-selection.
itab-tabname = 'T000'.
itab-fldname = 'MANDT'.
append itab.
itab-tabname = 'T001'.
itab-fldname = 'BUKRS'.
append itab.
loop at itab.
* Get the structure of the table.
refresh it_fldcat.
refresh where_clause.
ref_descr ?= cl_abap_typedescr=>describe_by_name( itab-tabname ).
it_details[] = ref_descr->components[].
loop at it_details into wa_details.
clear wa_it_fldcat.
wa_it_fldcat-fieldname = wa_details-name .
wa_it_fldcat-datatype = wa_details-type_kind.
wa_it_fldcat-inttype = wa_details-type_kind.
wa_it_fldcat-intlen = wa_details-length.
wa_it_fldcat-decimals = wa_details-decimals.
append wa_it_fldcat to it_fldcat .
endloop.
if <dyn_table> is assigned.
refresh <dyn_table>.
unassign <dyn_table>.
endif.
* Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = it_fldcat
importing
ep_table = new_table.
assign new_table->* to <dyn_table>.
concatenate itab-fldname '<> ''' '''' into where_clause
separated by space.
append where_clause.
select * from (itab-tabname) into table <dyn_table>
where (where_clause).
endloop.
Regards,
Rich Heilman
Maybe you are looking for
-
Hi, I'm trying to create a flash pie chart in APEX 3.0 and hit problems which seems to come down to my where clause. It appears that the :P2_LIST_OF_NUMS is not being converted correctly when I have more than one comma separated value in P2_LIST_OF_N
-
Internet works on partition but not on my mac
Hello. My internet on my MacBook Air was working just fine, but suddenly it stopped being able to load any page stating the connection has timed out. It happens will safari, firefox and chrome. However, it works just fine in my Windows XP partition I
-
Business Service with multiple HTTP Request Methods
hi all - I'm new to OSB and trying to prototype a solution. I have a service provider that exposes a number of HTTP operations (GET/PUT/POST/DELETE). It's a JAX-RS implementation. I was looking to create 1 proxy service and 1 business service for tha
-
Iphoto pictures misssing from events
I am running iPhoto '11 on OSX 10.7.4 Some events are not showing all the photos. The files are there when I look in finder at the original file. I've tried rebuilding the library but that didnt work. Any suggestions?
-
please test my site first, http://www.dcphonecases.com/test04/models/tempt.html, it's working as if you upload an image it will show there, notice it does 4 things, request you to browse your harddrive for image file, upload it, when it uploaded it s