[JSP] Dynamic form table
Inside my database I have a table with a long list of items.
I need to show this items inside a JSP, but the table would be too long, so I want to give the possibility to a user to select a character or more and then the JSP shows inside itself a table of items which begin with that/those character/s.
The shown table must be a form where the user can insert a value in one or more rows and then submit those values.
How can I do this?
This isn't really an appropriate question. The answer depends on the storage technology and your application architecture. You should start working on a solution and when you get stuck with a specific question then ask the forum.
One place to start:
Can you design a form (with out data on it) that allows a user to input 1 or more characters?
Can you select only the data that begins with a particular character from your database?
When you can answer yes to those two questions, put the solutions together. This is the beauty of MVC.
Similar Messages
-
Hi, I'm a JSP beginner. I have a form, which contains several tables. The number of the tables is not fixed. All the tables have the same data structure, just the size of them are not the same. Now I need to submit the form and then use JSP to process the data in it. What I know is to use JavaBean to deal with a form with fixed number of inputs. But if the number of inputs is not fixed, like what I described above, is there any efficient way I can use to read it with JSP?
Thank you!When you submit a JSP page, each input tag in the form must have a unique name so that whatever you submit the JSP page to can read those unique name/value pairs of values.
If you have a list of indeterminate length (myArray.size() ), here is an example of how you would give each textfield a unique name:
<%for(int ii=0;ii<myArray.size();++ii){%>
<input type="text" name="firstName_<%=ii%>" >
<%}%>
In the above, the first textfield name will be firstName_0, the second would be firstName_1, etc.
Back on the servlet, you read it as follows:
for(int ii=0;ii<myArray.size();++ii){
String firstName= request.getParameter("firstName_"+ii);
} -
Need Help in Field Symbol for Dynamically passing table field value
Hi All,
In my internal table I am having data.
I am dynamically forming table field name and substitute for the another table field name to pass DATA.
but I am getting the Variable name insted of Value ie Data.
I am using Field Symbol for this.
data:
Field-symbols <TS> type any.
field1 type string.
LOOP AT TABLEFIELDS INTO WA_TABLEFIELDS.
READ TABLE TEST WITH KEY NAME = WA_TABLEFIELDS-FIELDNAME.
IF SY-SUBRC = 0.
CONCATENATE 'WA_' WA_TABLEFIELDS-TABNAME '-' WA_TABLEFIELDS-FIELDNAME INTO Field1.
Assign Field1 to <TS>.
ALL_VAL-VALUE = <TS>
"After substituting the <TS> into ALL_VAL-VALUE field I need a DATA to be passed but the variable name is appending"*
APPEND ALL_VAL.
ENDIF.
ENDLOOP.
kindly how to pass the value into the table.
Thanks in advance.
SanHi,
pls assign a break point in
CONCATENATE 'WA_' WA_TABLEFIELDS-TABNAME '-' WA_TABLEFIELDS-FIELDNAME INTO Field1.
Assign Field1 to <TS>.
ALL_VAL-VALUE = <TS>
" Put a break point here and check for the value in <TS>.
if <TS> contains value then create a work area for ALL_VAL AND PASS the Field-Symbol to that and then append thw wa into the table...
Hope this works out!!
thanks -
Dynamically creating table and inserting rows and columns using JSP
Hi,
I'm using mysql and JSP to create web interface for my forms/tables. I wanna create the table dynamically depending on the data in the table and for each particualar record. and these values shud be loaded on the form after loading from the databaes as soon as the form loads.
also i want to have a button which shud add new rows dynamically. and same one for columns.
how do i calculate the values across the rows on the forms
I'm new to JSP. Please point me in the right direction...any tutorials or code will be helpful.
Any help is appreciated.
Thanks
Ayeshau write the code in sequence:
1 write jdbs to select count(* )from table
2 put in array e.g. String doc_no=new String[count];
3 write jdbs to select * from table with condition
//for no. of records just write
for(int j=0;j<(count);j++){
<% while(rs4.next()){
doc_no=rs4.getString(2);
date1[i]=rs4.getString(3);
doc_type[i]=rs4.getString(4);
location[i]=rs4.getString(5);
cheque[i]=rs4.getString(6);
rate[i]=rs4.getInt(7);
deb_qty[i]=rs4.getInt(8);
cre_qty[i]=rs4.getInt(9);
deb_amt[i]=rs4.getInt(10);
cre_amt[i]=rs4.getInt(11);
i++;
//rs4.close();
for(int j=0;j<(count);j++){
System.out.println("Data count= "+j);
%>
<tr>
<td width="15%"><font size="1"><%=doc_no[j] %></font></td>
<td width="10%"><font size="1"><%=date1[j] %></font></td>
<td width="12%"><font size="1"><%=doc_type[j] %></font></td>
<td width="9%"><font size="1"><%=location[j] %></font></td>
<td width="9%">
<div align="left"><font size="1"><%=cheque[j] %></font></div>
</td>
<td width="8%">
<div align="right"><font size="1"><%=deb_qty[j] %></font></div>
</td>
<td width="8%">
<div align="right"><font size="1"><%=cre_qty[j] %></font></div>
</td>
<td width="9%">
<div align="right"><font size="1"><%=deb_amt[j] %></font></div>
</td>
<td width="10%">
<div align="right"><font size="1"><%=cre_amt[j] %></font></div>
</td>
</tr>
write if there is any specific problem
bye,
Samir -
Is it possible to update multiple tables with a dynamic form?
I have columns from two tables populating a dynamic form. I am trying to have the form update both tables on submit. I have tried both a linked transaction and a custom transaction but I am not making progress. Only the master table is being updated. Is it possible with ADDT to update two tables with a dynamic form?
I meant
SXMSMSTAT
SXMSSYERR
Thanks. -
Adding dynamic size table to Interactive Form
Hello everyone,
I have a node with multiple elements that i would like to show in an interactive pdf form.
I'm using the Adobe LiveCycle Designer to do it, but i'm only managing to bind "solo" variables, not tables.
How can i associate dynamically a table with several lines to a pdf interactive form ? I tried a list box but i still only get the first element shown in the box. Am i doing anything wrong ?
Thank you in advance.
Nuno SantosHi,
Basically the general way to add a table to INteractive form is by adding a subform elemet to a subform element and(i mean subform in a subform), now map the fields u want to be displayed as a table.
For the fisrt subform set the LayoutType-Flow Content,Flow DirectionTable.
Then select the allow page breaks within the content option.
And the binding should be Normal.
for the second subform:
LayoutType-Flow Content,Flow DirectionTable row.
Now also select the option allow page breaks.
Then for Binding tab: select the Repeat Subform for each data Item, then min count=1.
And now if ur table columns contain names like abc, def and xyz.
Then in the script editor code something like this
abc[*]; under show: initilaze, language: Formcalc and Run at: client
Hope this should work out for you.
let me know if u have any more queries.
Thanks,
Lohi -
Number of characters in a dynamic form/list/mysql table
Hi all,
I mentioned this in a previous post but wanted to give it a home of it's own. I have a dynamic list, updated and edited by a dynamic form. However, with one of the columns I can only fit about 50% / 4 lines of text in. I am unsure whether the problem lies in the Form, when ebtering the text - or the List when displaying it. (I presume it will not be connected to the Mysql table itself...?)
When I enter the info into the Update Form, the text area accepts all the characters. However, when I hit update and am returned to the list only about half show. Also, if I then return to the form to update again - only about half are shown in the Update Form - the sentence is simply cut off about half way. This leads me to believe that it is a problem with the Update Form rather than the List - but hey, if I had the answers I wouldn't be here.
Jpg attached to try an explain my rabid ramblings...Hi Nathan,
NJFuller wrote:
When I enter the info into the Update Form, the text area accepts all the characters. However, when I hit update and am returned to the list only about half show. Also, if I then return to the form to update again - only about half are shown in the Update Form - the sentence is simply cut off about half way. This leads me to believe that it is a problem with the Update Form rather than the List - but hey, if I had the answers I wouldn't be here.
let´s make a bet, OK ? My bet is that the corressponding database column which stores the textarea value is "varchar" and has been set to accept a max. value of approx. 100 chars, correct ?
Cheers,
Günter -
How to Create Dynamic form using table data
Dear All,
I have one Table called PRODUCT_MASTER where product details are stored. Say product A,B,C,D are stored in the table. Another table called SUB_PRODUCT_MASTER, which contains sub product details.Say A1,A1,B1,B2, B3,C1, C2, C3, D1,D2,D3.
Now, I want to create a dynamic form based on product,sub product. for a whole month. For better under standing here is the format.
PRODUCT A B C D
SUB_PROD A1 A2 B1 B2 B3 C1 C2 C3 D1 D2 D3
Days
1 x x x x x x x x
2
3
4
5
6
7
Now whenever I add one row in the PRODUCT)MASTER table and SUB_PRODUCT_MASTER table, Form should add one column in the form automatically. e.g. If I add Product E with two Sub product E1 and E2 then form should add ptoduct E column in the form with sub products E1 and E2 as per above format. Here days are fixed to 31. This forms should accept product wise daily despatch entry. For
storing despatch entry another table is created.
Please help to create this type od forms.You want I believe to create Croos-Table(Matrix) form. Visit Cross-table (matrix) forms layout and add "Please Send me too".
-
How To Read Field Values Form Dynamic Internal Table
Hi,
I Created a dynamic internal table using.
FIELD-SYMBOLS: <gt_table> TYPE STANDARD TABLE,
<wa_gt_table>,
<l_fvalue> TYPE ANY.
This Interanl table is working well, and all values are populated to an ALV.
Now I try to set a link
for that I am using below code
READ TABLE <gt_table> ASSIGNING <l_fvalue> index rs_selfield-tabindex.
IF sy-subrc EQ 0.
insplot = <l_fvalue>-prueflos.
Now it is showing a syntax error :
the data object <l_fvalue> has no structure and there for no component called prueflos
Regards
NausalHi,
Refere following code
Local Field Symbol
FIELD-SYMBOLS: <lf_any> TYPE ANY. "Changed data
LOOP AT <gf_dyna_table> ASSIGNING <gf_dyna>.
DO.
ASSIGN COMPONENT sy-index OF STRUCTURE <gf_dyna> TO <lf_any>.
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF ls_attach-line IS INITIAL.
ls_attach-line = <lf_any>.
ELSE.
CONCATENATE ls_attach-line <lf_any> INTO ls_attach-line
SEPARATED BY lc_tab.
ENDIF.
ENDDO.
CONCATENATE lc_cret ls_attach-line INTO ls_attach-line.
Append Changed Data to attachement table
APPEND ls_attach TO gt_attach.
Clear
CLEAR : ls_attach.
ENDLOOP.
Regards,
Prashant -
Dynamic form processing in struts
Hi all,
I need your help regarding dynamic form elements form processing.
Here is my JSP Script,
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<html:html>
<HEAD>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<TITLE>Processing Dynamic Forms</TITLE>
<script type="text/javascript">
//function which adds new row
function AddRow()
tb=document.getElementById("demo");
// attach counter
lnrows = tb.rows.length;
//alert(lnrows);
newrow = tb.insertRow(lnrows);
var fourth_col = "amt"+lnrows;
cell3=newrow.insertCell(0);
cell3.innerHTML="<center><input type='text' id='"+fourth_col+"' name='"+fourth_col+"' size='10'/></center>";
document.getElementById("cntr").value = lnrows;
// function to delete row
function DeleteRow()
tb=document.getElementById("demo");
lnrows = tb.rows.length;
//alert(lnrows);
if(lnrows > 2)
tb.deleteRow(lnrows-1);
document.getElementById("cntr").value = tb.rows.length - 1;
</script>
</HEAD>
<BODY>
<html:form action="/dynaActions">
<TABLE id='demo' align='center' width='80%' border='1'>
<TR>
<TH width='25%'>Party Name</TH>
</TR>
<TR>
<TD align='center'><input type='text' id="party1" name="party1" size="30" /></TD>
</TR>
</TABLE>
<TABLE align='center' width='80%' border='0'>
<TR align="right">
<td>
<html:button property="Add" value="Add" onclick="AddRow();" ></html:button>
<html:button property="Remove" value="Remove" onclick="DeleteRow();"></html:button>
</td>
</TR>
<TR align="center">
<td>
<input type='hidden' id="cntr" name="cntr" value="1" />
<html:submit/>
</td>
</TR>
</TABLE>
</html:form>
</BODY>
</html:html> As you seen there is dynamically form elements generated as many as required. Now how do I process this with ActionForm & Action?
Regards,
MaheshHi rrhegde,
Thanks for response.
Ok, So instead of making it party1, party2, party3, party4, .............................
if I make it party[1], party[2], party[3], party[4],.............................
But then how do I process this array. Since the array length will not be fixed, it depends upon users.
If possible pls provide me some example code on this.
Thanks & Regards,
bonzy -
How to populate data in dynamic internal table
Hi Expert,
fyi. My dynamic internal table field is created base on data selected. Eg. select table qpcd has 5 records. These 5 recods will become fieldname to my dynamic internal table. My dynamic internal table will be
...itab
01
02
03
04
05
The 5 records from qpcd is populated in another table call viqmel. I need to find the occurance of each code in viqmel and populate the number of occurance in itab in each of column. The final dynamic itab will be like this
table itab
01 02 03 04 05 -
> field name
2 0 1 0 1 -
> data
my source code like below
Report ZPLYGRND2.
TABLES: mara, makt.
TYPE-POOLS: slis, sydes.
DATA:it_fcat TYPE slis_t_fieldcat_alv,
is_fcat LIKE LINE OF it_fcat,
ls_layout TYPE slis_layout_alv.
DATA: it_fieldcat TYPE lvc_t_fcat,
is_fieldcat LIKE LINE OF it_fieldcat.
DATA: new_table TYPE REF TO data,
new_line TYPE REF TO data,
ob_cont_alv TYPE REF TO cl_gui_custom_container,
ob_alv TYPE REF TO cl_gui_alv_grid,
vg_campos(255) TYPE c,
i_campos LIKE TABLE OF vg_campos,
vg_campo(30) TYPE c,
vg_tables(60) TYPE c.
types : begin of t_qpcd,
codegruppe like qpcd-codegruppe,
code like qpcd-code,
end of t_qpcd.
data:wa_qpcd type t_qpcd,
i_qpcd type standard table of t_qpcd initial size 0.
FIELD-SYMBOLS: <l_table> TYPE table,
<l_line> TYPE ANY,
<l_field> TYPE ANY.
select * into corresponding fields of wa_qpcd from qpcd
where katalogart = 'D'
and codegruppe = 'OOT01'.
append wa_qpcd to i_qpcd.
endselect.
loop at i_qpcd into wa_qpcd.
is_fcat-fieldname = wa_qpcd-code.
APPEND is_fcat TO it_fcat.
endloop.
LOOP AT it_fcat INTO is_fcat.
is_fieldcat-fieldname = is_fcat-fieldname.
is_fieldcat-ref_field = is_fcat-ref_fieldname.
is_fieldcat-ref_table = is_fcat-ref_tabname.
APPEND is_fieldcat TO it_fieldcat.
ENDLOOP.
*... Create the dynamic internal table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = new_table.
if sy-subrc = 0.
endif.
*... Create a new line
ASSIGN new_table->* TO <l_table>.
CREATE DATA new_line LIKE LINE OF <l_table>.
ASSIGN new_line->* TO <l_line>.
LOOP AT <l_table> INTO <l_line>.
ENDLOOP.hello dear i m giving u a code in this a dynamic table is made on the basis of table in database , and u can download this data correct it , see it, or even change it....and upload in tht table help full if u dont know the table name...in advance.
also the code to populate data in dynamic table is in this code like:
SELECT * FROM (MTABLE_N)
INTO CORRESPONDING FIELDS OF TABLE <FS_ITAB> .
look at the whole program .hope this solve ur problem thanks.
REPORT ZTESTA MESSAGE-ID ZIMM .
TYPES : DATA_OBJECT TYPE REF TO DATA.
DATA : MITAB TYPE REF TO DATA .
TYPE-POOLS : SLIS .
DATA : IT_FIELDCAT TYPE STANDARD TABLE OF SLIS_FIELDCAT_ALV
WITH HEADER LINE .
DATA : IT_FIELDCATALOG TYPE LVC_T_FCAT .
DATA : WA_FIELDCATALOG TYPE LVC_S_FCAT .
DATA : I_STRUCTURE_NAME LIKE DD02L-TABNAME .
DATA : I_CALLBACK_PROGRAM LIKE SY-REPID .
DATA : DYN_LINE TYPE DATA_OBJECT .
FIELD-SYMBOLS : <FS_ITAB> TYPE STANDARD TABLE .
DATA : TABLE_NAME_IS_VALID TYPE C .
DATA : DYNAMIC_IT_INSTANTIATED TYPE C .
CONSTANTS BUTTONSELECTED TYPE C VALUE 'X' .
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_TABL.
PARAMETERS : MTABLE_N LIKE RSRD1-TBMA_VAL
MATCHCODE OBJECT DD_DBTB_16 OBLIGATORY .
DATA CHECKTABLED.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_FILE.
PARAMETERS : MFILENAM LIKE RLGRAP-FILENAME .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_DOWN.
PARAMETERS : P_DOWNLD RADIOBUTTON GROUP GRP1
USER-COMMAND M_UCOMM .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_CHKF.
PARAMETERS : P_CHKFIL RADIOBUTTON GROUP GRP1 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_UPLD.
PARAMETERS : P_UPLOAD RADIOBUTTON GROUP GRP1 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 5(29) T_SHOW.
PARAMETERS : P_SHOW_T RADIOBUTTON GROUP GRP1 .
SELECTION-SCREEN END OF LINE.
AT SELECTION-SCREEN OUTPUT .
PERFORM CHECK_FILENAME .
AT SELECTION-SCREEN.
IF SY-UCOMM = 'ONLI'.
CHECKTABLED = MTABLE_N+0(1).
IF CHECKTABLED NE 'Z'.
MESSAGE I017.
LEAVE TO SCREEN 1000.
ENDIF.
IF SY-UNAME NE 'KAMESH.K'.
MESSAGE I023 WITH SY-UNAME.
LEAVE TO SCREEN 1000.
ENDIF.
ENDIF.
IF SY-UCOMM = 'PRIN'.
CHECKTABLED = MTABLE_N+0(1).
IF CHECKTABLED NE 'Z'.
MESSAGE I017.
LEAVE TO SCREEN 1000.
ENDIF.
IF SY-UNAME NE 'KAMESH.K'.
MESSAGE I023 WITH SY-UNAME.
LEAVE TO SCREEN 1000.
ENDIF.
ENDIF.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR MFILENAM .
PERFORM F4_FOR_FILENAME .
INITIALIZATION .
T_TABL = 'Table Name' .
T_FILE = 'File Name' .
T_DOWN = 'Download Table' .
T_CHKF = 'Check File to Upload' .
T_UPLD = 'Upload File' .
T_SHOW = 'Show Table Contents' .
START-OF-SELECTION .
PERFORM CHECK_TABLE_NAME_IS_VALID .
END-OF-SELECTION .
IF TABLE_NAME_IS_VALID EQ ' ' .
MESSAGE I398(00) WITH 'INVALID TABLE NAME' .
ELSE .
PERFORM INSTANTIATE_DYNAMIC_INTERNAL_T .
CHECK DYNAMIC_IT_INSTANTIATED = 'X' .
CASE BUTTONSELECTED .
WHEN P_DOWNLD .
PERFORM SELECT_AND_DOWNLOAD .
WHEN P_CHKFIL .
PERFORM CHECK_FILE_TO_UPLOAD .
WHEN P_UPLOAD .
PERFORM UPLOAD_FROM_FILE .
WHEN P_SHOW_T .
PERFORM SHOW_CONTENTS .
ENDCASE .
ENDIF .
FORM CHECK_TABLE_NAME_IS_VALID.
DATA MCOUNT TYPE I .
TABLES DD02L .
CLEAR TABLE_NAME_IS_VALID .
SELECT COUNT(*) INTO MCOUNT FROM TADIR
WHERE PGMID = 'R3TR'
AND OBJECT = 'TABL'
AND OBJ_NAME = MTABLE_N .
IF MCOUNT EQ 1 .
CLEAR DD02L .
SELECT SINGLE * FROM DD02L WHERE TABNAME = MTABLE_N .
IF SY-SUBRC EQ 0.
IF DD02L-TABCLASS = 'TRANSP' .
TABLE_NAME_IS_VALID = 'X' .
ENDIF .
ENDIF.
ENDIF .
ENDFORM. " CHECK_TABLE_NAME_IS_VALID
FORM SELECT_AND_DOWNLOAD.
CLEAR : <FS_ITAB> .
SELECT * FROM (MTABLE_N)
INTO CORRESPONDING FIELDS OF TABLE <FS_ITAB> .
PERFORM CHECK_FILENAME.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
FILENAME = MFILENAM
FILETYPE = 'DAT'
TABLES
DATA_TAB = <FS_ITAB>
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
IF SY-SUBRC EQ 0.
MESSAGE I398(00) WITH 'Table' MTABLE_N
'successfully downloaded to '
MFILENAM .
ENDIF.
ENDFORM. " SELECT_AND_DOWNLOAD
FORM UPLOAD_FROM_FILE.
DATA : ANS TYPE C .
DATA : LINES_OF_ITAB TYPE I .
DATA : MSY_SUBRC TYPE I .
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
TEXTLINE1 = 'Are you sure you wish to upload'
TEXTLINE2 = 'data from ASCII File to DB table '
TITEL = 'Confirmation of Data Upload'
IMPORTING
ANSWER = ANS.
IF ANS = 'J' .
PERFORM CHECK_FILENAME.
CLEAR MSY_SUBRC .
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = MFILENAM
FILETYPE = 'DAT'
TABLES
DATA_TAB = <FS_ITAB>
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
MSY_SUBRC = MSY_SUBRC + SY-SUBRC .
IF SY-SUBRC EQ 0.
DESCRIBE TABLE <FS_ITAB> LINES LINES_OF_ITAB .
IF LINES_OF_ITAB GT 0 .
MODIFY (MTABLE_N) FROM TABLE <FS_ITAB> .
MSY_SUBRC = MSY_SUBRC + SY-SUBRC .
ENDIF .
ENDIF.
IF MSY_SUBRC EQ 0 .
MESSAGE I398(00) WITH LINES_OF_ITAB
'Record(s) inserted in table'
MTABLE_N .
ELSE .
MESSAGE I398(00) WITH
'Errors occurred No Records inserted in table'
MTABLE_N .
ENDIF .
ENDIF .
ENDFORM. " UPLOAD_FROM_FILE
FORM F4_FOR_FILENAME.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
DEF_PATH = 'C:\'
MASK = ',.,..'
MODE = '0'
IMPORTING
FILENAME = MFILENAM
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
ENDFORM. " F4_FOR_FILENAME
FORM CHECK_FILENAME.
IF MFILENAM IS INITIAL
AND NOT ( MTABLE_N IS INITIAL )
AND P_SHOW_T NE BUTTONSELECTED.
CONCATENATE 'C:\'
MTABLE_N '.TXT' INTO MFILENAM.
ENDIF .
ENDFORM. " CHECK_FILENAME
FORM INSTANTIATE_DYNAMIC_INTERNAL_T.
CLEAR DYNAMIC_IT_INSTANTIATED .
I_STRUCTURE_NAME = MTABLE_N .
CLEAR IT_FIELDCAT[] .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_STRUCTURE_NAME = I_STRUCTURE_NAME
CHANGING
CT_FIELDCAT = IT_FIELDCAT[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC EQ 0.
LOOP AT IT_FIELDCAT .
CLEAR WA_FIELDCATALOG .
MOVE-CORRESPONDING IT_FIELDCAT TO WA_FIELDCATALOG .
WA_FIELDCATALOG-REF_FIELD = IT_FIELDCAT-FIELDNAME .
WA_FIELDCATALOG-REF_TABLE = MTABLE_N .
APPEND WA_FIELDCATALOG TO IT_FIELDCATALOG .
ENDLOOP .
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IT_FIELDCATALOG
IMPORTING
EP_TABLE = MITAB .
ASSIGN MITAB->* TO <FS_ITAB> .
DYNAMIC_IT_INSTANTIATED = 'X' .
ENDIF.
ENDFORM. " INSTANTIATE_DYNAMIC_INTERNAL_T
FORM SHOW_CONTENTS.
CLEAR : <FS_ITAB> .
SELECT * FROM (MTABLE_N)
INTO CORRESPONDING FIELDS OF TABLE <FS_ITAB> .
I_CALLBACK_PROGRAM = SY-REPID .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = I_CALLBACK_PROGRAM
IT_FIELDCAT = IT_FIELDCAT[]
TABLES
T_OUTTAB = <FS_ITAB>
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM. " SHOW_CONTENTS
FORM CHECK_FILE_TO_UPLOAD.
PERFORM CHECK_FILENAME.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = MFILENAM
FILETYPE = 'DAT'
TABLES
DATA_TAB = <FS_ITAB>
EXCEPTIONS
CONVERSION_ERROR = 1
FILE_OPEN_ERROR = 2
FILE_READ_ERROR = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10.
IF SY-SUBRC EQ 0.
I_CALLBACK_PROGRAM = SY-REPID .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = I_CALLBACK_PROGRAM
IT_FIELDCAT = IT_FIELDCAT[]
TABLES
T_OUTTAB = <FS_ITAB>
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDIF .
ENDFORM. " CHECK_FILE_TO_UPLOAD
Message was edited by:
SAURABH SINGH
SENIOR EXECUTIVE
SAMSUNG INDIA ELECTRONICS LTD.,NOIDA -
How to create a dynamic form with bind variables :schema & :table_name
My application has two LOV's, one to select a schema, and the next to select a table within that schema. I then have a button which passes me to a report which displays the data in that table.schema.
I now want to create a link to a form where I can edit the record based on the rowid of that table.schema, but it doesn't appear that I can create a dynamic form where I pass the schema.table_name and rowid. Is this possible? Can anyone advise how I can do this? The form builder only wants a fixed schema/table name.
Thanks in advance.
Stuart.Hi Stuart,
In this sort of situation, you will need to be a bit creative.
I would suggest a pipeline function called as if it was a report.
Then you can pipe out the required fields.
Since you will have a variable number of fields, you could use two of the multi row field names for your field names and values.
Then after submit, you can create your own procedure to loop through the fields (stored for you in the Apex package) and update the table as required.
Not very specific I'm afraid, but it should work.
Regards
Michael -
How to do parallel processing with dynamic internal table
Hi All,
I need to implement parallel processing that involves dynamically created internal tables. I tried doing so using RFC function modules (using starting new task and other such methods) but didn't get success this requires RFC enabled function modules and at the same time RFC enabled function modules do not allow generic data type (STANDARD TABLE) which is needed for passing dynamic internal tables. My exact requirement is as follows:
1. I've large chunk of data in two internal tables, one of them is formed dynamically and hence it's structure is not known at the time of coding.
2. This data has to be processed together to generate another internal table, whose structure is pre-defined. But this data processing is taking very long time as the number of records are close to a million.
3. I need to divide the dynamic internal table into (say) 1000 records each and pass to a function module and submit it to run in another task. Many such tasks will be executed in parallel.
4. The function module running in parallel can insert the processed data into a database table and the main program can access it from there.
Unfortunately, due to the limitation of not allowing generic data types in RFC, I'm unable to do this. Does anyone has any idea how to implement parallel processing using dynamic internal tables in these type of conditions.
Any help will be highly appreciated.
Thanks and regards,
Ashintry the below code...
DATA: w_subrc TYPE sy-subrc.
DATA: w_infty(5) TYPE c.
data: w_string type string.
FIELD-SYMBOLS: <f1> TYPE table.
FIELD-SYMBOLS: <f1_wa> TYPE ANY.
DATA: ref_tab TYPE REF TO data.
CONCATENATE 'P' infty INTO w_infty.
CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
ASSIGN ref_tab->* TO <f1>.
* Create dynamic work area
CREATE DATA ref_tab TYPE (w_infty).
ASSIGN ref_tab->* TO <f1_wa>.
IF begda IS INITIAL.
begda = '18000101'.
ENDIF.
IF endda IS INITIAL.
endda = '99991231'.
ENDIF.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = infty
begda = '18000101'
endda = '99991231'
IMPORTING
subrc = w_subrc
TABLES
infty_tab = <f1>
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
subrc = w_subrc.
ELSE.
ENDIF. -
How to use Dynamic Internal table
Hello,
I have a requirement where I need to pick a field from final internal table and display that field as ALV columns and I have to pick another field in the same INternal table to display it as a corresponding value for each header DYNAMICALLY.
lw_fieldcat-col_pos = 1.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'ATTR20A'.
lw_fieldcat-seltext_m = 'SUBSTANCE ID'.
lw_fieldcat-outputlen = '21'.
lw_fieldcat-fix_column = 'X'.
lw_fieldcat-key = 'X'.
APPEND lw_fieldcat TO lt_fieldcat.
CLEAR LW_FIELDCAT.
lw_fieldcat-col_pos = 2.
lw_fieldcat-tabname = 'T_FINAL'.
lw_fieldcat-fieldname = 'PRVSY'.
lw_fieldcat-seltext_m = 'R3 MAT NBR'.
lw_fieldcat-outputlen = '14'.
lw_fieldcat-FIX_COLUMN = 'X'.
lw_fieldcat-key = 'X'.
APPEND lw_fieldcat TO lt_fieldcat.
CLEAR LW_FIELDCAT.
These 2 fields are constant, now i need to display fields dynamically from the field STCTS (for dynamic header) CCNGN (for the value in each header)
In the below code the logic is working to pick appropriate value for each header.
DATA : Y_I_FCAT TYPE LVC_T_FCAT,
Y_WA_FCAT LIKE LINE OF Y_I_FCAT.
DATA : T_NEWFINAL TYPE STANDARD TABLE OF TY_FINAL,
WA_NEWFINAL TYPE TY_FINAL.
LOOP AT T_FINAL INTO WA_FINAL
WHERE STCTS IS NOT INITIAL
CONCATENATE 'SUBID CLASSIFICATION-' WA_FINAL-STCTS
INTO Y_WA_FCAT-FIELDNAME.
INTO Y_WA_FCAT-SCRTEXT_M.
APPEND Y_WA_FCAT TO Y_I_FCAT. "Header of column appear as
'SUBID SUBID CLASSIFICATION-AR-HTS'
CLEAR Y_WA_FCAT.
MOVE WA_FINAL-CCNGN TO WA_NEWFINAL-CCNGN. "HERE IT WILL PICK THE VALUE FOR THE ABOVE " HEADER EX : '2345'
*&THIS STATEMENT WILL MOVE THE KEY FIELD TO
*&WA_NEWFINAL.
MOVE WA_FINAL-GUID_PR TO WA_NEWFINAL-GUID_PR.
APPEND WA_NEWFINAL TO T_NEWFINAL.
CLEAR : WA_FINAL,
WA_NEWFINAL.
ENDLOOP.
How should i pass it to the dynamic interanl table and then to the ALV grid filed catlog.
Below is my code for refernce :
**DATA : Y_I_FCAT TYPE LVC_T_FCAT,
Y_WA_FCAT LIKE LINE OF Y_I_FCAT.
Y_WA_FCAT TYPE LVC_S_FCAT.
**DATA : T_NEWFINAL TYPE STANDARD TABLE OF TY_FINAL,
WA_NEWFINAL TYPE TY_FINAL.
*DATA : W_STRING TYPE STRING.
DATA : WA_FLNAME(32) TYPE C.
*LOOP AT T_FINAL INTO WA_FINAL
WHERE STCTS IS NOT INITIAL
AND CCNGN IS NOT INITIAL.
*ADD 1 TO COUNTER.
*ENDLOOP.
*DO COUNTER TIMES.
LOOP AT T_FINAL INTO WA_FINAL
WHERE STCTS IS NOT INITIAL
AND CCNGN IS NOT INITIAL.
CONCATENATE 'SUBID CLASSIFICATION-' WA_FINAL-STCTS
INTO Y_WA_FCAT-FIELDNAME.
INTO Y_WA_FCAT-SCRTEXT_M.
INTO WA_FLNAME.
Y_WA_FCAT-FIELDNAME = WA_FLNAME.
Y_WA_FCAT-SELTEXT = WA_FLNAME.
APPEND Y_WA_FCAT TO Y_I_FCAT.
CLEAR Y_WA_FCAT.
MOVE WA_FINAL-CCNGN TO W_STRING.
MOVE WA_FINAL-CCNGN TO WA_NEWFINAL-CCNGN.
*&THIS STATEMENT WILL MOVE THE KEY FIELD TO
*&WA_NEWFINAL.
MOVE WA_FINAL-GUID_PR TO WA_NEWFINAL-GUID_PR.
APPEND WA_NEWFINAL TO T_NEWFINAL.
CLEAR : WA_FINAL,
WA_NEWFINAL.
ENDIF.
*ENDDO.
ENDLOOP.
PERFORM CREATE_DYNAMIC_ITAB.
LOOP AT Y_I_FCAT INTO Y_WA_FCAT. "IT_FIELDCAT INTO LW_FIELDCAT.
MOVE : Y_WA_FCAT-SCRTEXT_M TO LW_FIELDCAT-SELTEXT_M,
Y_WA_FCAT-FIELDNAME TO LW_FIELDCAT-FIELDNAME,
Y_WA_FCAT-TABNAME TO LW_FIELDCAT-TABNAME,
Y_WA_FCAT-COL_POS TO LW_FIELDCAT-COL_POS,
Y_WA_FCAT-SCRTEXT_M TO LW_FIELDCAT-SELTEXT_M.
Y_WA_FCAT-DATATYPE TO LW_FIELDCAT-DATATYPE,
Y_WA_FCAT-INTLEN TO LW_FIELDCAT-INTLEN.
APPEND LW_FIELDCAT TO LT_FIELDCAT.
ENDLOOP.
ENDFORM. " DYNAMIC
*& Form CREATE_DYNAMIC_ITAB
text
--> p1 text
<-- p2 text
FORM CREATE_DYNAMIC_ITAB .
*DATA : DY_TABLE TYPE REF TO DATA,
DY_LINE TYPE REF TO DATA.
DATA : Y_LV_COMP TYPE STRING.
*FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
<DYN_WA>,
<DYN_FIELD>.
*FIELD-SYMBOLS : <y_fld> TYPE ANY.
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = Y_I_FCAT
IMPORTING
EP_TABLE = DY_TABLE.
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 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>.
LOOP AT T_FINAL INTO WA_FINAL.
Y_LV_COMP = 'ATTR20A'.
ASSIGN COMPONENT Y_LV_COMP OF STRUCTURE <DYN_WA> TO <Y_FLD>.
<Y_FLD> = WA_FINAL-ATTR20A.
Y_LV_COMP = 'PRVSY'.
ASSIGN COMPONENT Y_LV_COMP OF STRUCTURE <DYN_WA> TO <Y_FLD>.
<Y_FLD> = WA_FINAL-PRVSY.
Y_LV_COMP = 'PRTXT'.
ASSIGN COMPONENT Y_LV_COMP OF STRUCTURE <DYN_WA> TO <Y_FLD>.
<Y_FLD> = WA_FINAL-PRVSY.
Y_LV_COMP = 'GRVSY'.
ASSIGN COMPONENT Y_LV_COMP OF STRUCTURE <DYN_WA> TO <Y_FLD>.
<Y_FLD> = WA_FINAL-GRVSY.
LOOP AT T_NEWFINAL INTO WA_NEWFINAL
WHERE GUID_PR = WA_FINAL-GUID_PR.
CONCATENATE 'SUBID Classification-'
WA_FINAL-STCTS
INTO Y_LV_COMP.
ASSIGN COMPONENT Y_LV_COMP OF STRUCTURE <DYN_WA> TO <Y_FLD>.
<Y_FLD> = WA_NEWFINAL-CCNGN.
ENDLOOP.
APPEND <DYN_WA> TO <DYN_TABLE>.
FREE : <DYN_WA>, <Y_FLD>.
ENDLOOP.
ENDFORM. " CREATE_DYNAMIC_ITA
ANy suggestion would be apprecaited.
Regards,
KittuI think I need to put it in more descriptive way...
I am closing this thread -
How to create Dynamic internal table with columns also created dynamically.
Hi All,
Any info on how to create a dynamic internal table along with columns(fields) also to be created dynamically.
My requirement is ..On the selection screen I enter the number of fields to be in the internal table which gets created dynamically.
I had gone thru some posts on dynamic table creation,but could'nt find any on the dynamic field creation.
Any suggestions pls?
Thanks
NaraI don't understand ...
something like that ?
* Form P_MODIFY_HEADER. *
form p_modify_header.
data : is_fieldcatalog type lvc_s_fcat ,
v_count(2) type n ,
v_date type d ,
v_buff(30).
* Update the fieldcatalog.
loop at it_fieldcatalog into is_fieldcatalog.
check is_fieldcatalog-fieldname+0(3) eq 'ABS' or
is_fieldcatalog-fieldname+0(3) eq 'VAL' .
move : is_fieldcatalog-fieldname+3(2) to v_count ,
p_perb2+5(2) to v_date+4(2) ,
p_perb2+0(4) to v_date+0(4) ,
'01' to v_date+6(2) .
v_count = v_count - 1.
call function 'RE_ADD_MONTH_TO_DATE'
exporting
months = v_count
olddate = v_date
importing
newdate = v_date.
if is_fieldcatalog-fieldname+0(3) eq 'ABS'.
concatenate 'Quantité 0'
v_date+4(2)
v_date+0(4)
into v_buff.
else.
concatenate 'Montant 0'
v_date+4(2)
v_date+0(4)
into v_buff.
endif.
move : v_buff to is_fieldcatalog-scrtext_s ,
v_buff to is_fieldcatalog-scrtext_m ,
v_buff to is_fieldcatalog-scrtext_l ,
v_buff to is_fieldcatalog-reptext .
modify it_fieldcatalog from is_fieldcatalog.
endloop.
* Modify the fieldcatalog.
call method obj_grid->set_frontend_fieldcatalog
exporting it_fieldcatalog = it_fieldcatalog.
* Refresh the display of the grid.
call method obj_grid->refresh_table_display.
endform. " P_MODIFY_HEADER
Maybe you are looking for
-
I don't get why? What's the harm if you're in a different country? We all pay the same way and the internet was made to connect people over the world, stuff is downloaded from different global destinations millions of times a day. So what's the point
-
Invoice Split according to Plant code
Dear Experts I have requirement wher i want to spilt my invoice according to PLANT. I have created a Table using the userexit and assinged my number range object with the combination of PLANT-DOC TYPE-number RANGE OBJECT. Like 1003 - LF1 - A1 (numbe
-
In sales quotation document number not changed..
hiii guys i getting some problem in sales quotation about document number..... actually i opened by another user like sham.he is sales department..he have only sales authorizations..when we press add button, data has been saved..but number not change
-
study material for1z0-052
-
Open CS5.5 project in CS5?
Is there a way to open a Premiere CS5.5 project in CS5? I am trying to transfer a project done in CS5.5 by a colleage to my CS5 system. I've been avoiding CS5.5 because I, personally, had no need for it. I'm waiting for CS6. I would hate to purc