Dynamic table error
*& Purpose : Daily Godown dispatches with condition valu details *
REPORT ZDLYDSPH NO STANDARD PAGE HEADING LINE-SIZE 255 LINE-COUNT 30(10)
MESSAGE-ID SK .
TYPE-POOLS: SLIS,ABAP.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
TABLES : VBRK, "Billing document header detail
VBRP, "Billing document item details
MAKT, "Material Description
BHDGD,
MARA, "Material Master
KNA1, "Customer Master Table
TSPA,
J_1IEXCHDR.
DATA: TAB TYPE REF TO CL_ABAP_STRUCTDESCR,
WA_TAB TYPE REF TO CL_ABAP_STRUCTDESCR,
I_TAB TYPE REF TO CL_ABAP_TABLEDESCR,
I_TABLE TYPE REF TO DATA.
DATA: L_PROGRAM_NAME TYPE SYREPID VALUE SY-REPID,
L_STRUCTURE_NAME TYPE TABNAME,
L_I_CT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: BEGIN OF FIELDTAB OCCURS 50,
FELDNAME LIKE DYNPREAD-FIELDNAME,
FIELDTEXT LIKE DNTAB-FIELDTEXT,
END OF FIELDTAB.
DATA: BEGIN OF CHOICE_TAB_IN OCCURS 50,
FIELDTEXT LIKE DNTAB-FIELDTEXT, "Position 1
FIELDNAME LIKE DYNPREAD-FIELDNAME,
TABNAME LIKE DNTAB-TABNAME,
FIELD LIKE DNTAB-FIELDNAME,
END OF CHOICE_TAB_IN.
FIELD-SYMBOLS: <DATAIN> TYPE ANY,
<HEADER> TYPE ANY,
<F> TYPE ANY.
FIELD-SYMBOLS: <DYN_TABLE> TYPE STANDARD TABLE,
<DYN_WA>,
<DYN_FIELD>.
DATA: DY_TABLE TYPE REF TO DATA,
DY_LINE TYPE REF TO DATA,
XFC TYPE LVC_S_FCAT,
IFC TYPE LVC_T_FCAT,
DYN_TABLE TYPE STANDARD TABLE OF KOMG WITH HEADER LINE.
DATA: DATA_TAB LIKE ZHRDATATAB OCCURS 20 WITH HEADER LINE.
DATA: BEGIN OF DATEN OCCURS 100,
ZEILE TYPE I,
STELLE TYPE I,
DATEN LIKE HRDATATAB-LANGTEXT1,
END OF DATEN.
DATA: BEGIN OF TITEL OCCURS 20,
STELLE TYPE I,
FELDNAME LIKE DYNPREAD-FIELDNAME,
LANGTEXT LIKE HRDATATAB-LANGTEXT1,
TABNAME LIKE DNTAB-TABNAME,
FIELD LIKE DNTAB-FIELDNAME,
END OF TITEL.
DATA : STELLE TYPE I.
DATA: ZEILE TYPE I.
*vibhuti
DATA: IT_COLOR TYPE LVC_S_SCOL." with header line.
DATA: MY_TABIX LIKE SY-TABIX.
DATA: I_VBRK LIKE VBRK OCCURS 0 WITH HEADER LINE.
DATA: G_CL_TEXT TYPE REF TO CL_HR_TEXT_IDENTIFIER,
G_T_TEXTINFO_INFTY TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
G_T_TEXTINFO_ALL TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
G_T_TEXTFIELDS_INFTY TYPE TTFIELDNAME,
G_T_TEXTS_INFTY TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
G_T_TEXTS_ALL TYPE TXID_T_TEXT_IDENTIFIER_RESULT,
G_S_TEXTINFO TYPE TXID_S_TEXT_IDENTIFIER_RESULT,
G_S_TEXT TYPE TXID_S_TEXT_IDENTIFIER_RESULT,
G_T_SPECIALS TYPE TFIELDVAL,
G_S_SPECIALS TYPE SFIELDVAL.
DATA : G_T_TEXTFIELDS TYPE TTFIELDNAME.
Selection Screen Started
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN BEGIN OF BLOCK B_1 WITH FRAME TITLE TEXT-010.
SELECT-OPTIONS : S_FKDAT FOR VBRK-FKDAT OBLIGATORY,
S_SPART FOR VBRK-SPART OBLIGATORY,
S_VBELN FOR VBRK-VBELN,
S_KUNAG FOR VBRK-KUNAG,
S_FKART FOR VBRK-FKART,
S_WERKS FOR VBRP-WERKS," obligatory,
S_VKBUR FOR VBRP-VKBUR,
S_VKORG FOR VBRK-VKORG OBLIGATORY,
S_VKGRP FOR VBRP-VKGRP, " sales group
S_RFBSK FOR VBRK-RFBSK OBLIGATORY DEFAULT 'C'.
SELECTION-SCREEN END OF BLOCK B_1.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN BEGIN OF BLOCK B_2 WITH FRAME TITLE TEXT-011.
PARAMETERS : P_VARI LIKE DISVARIANT-VARIANT.
SELECTION-SCREEN END OF BLOCK B_2.
START-OF-SELECTION.
PERFORM GET_FIELDS.
PERFORM NEW_DYNAMIC_TABLE.
PERFORM GENERATE_OUTPUT.
*& Form NEW_DYNAMIC_TABLE
text
--> p1 text
<-- p2 text
FORM NEW_DYNAMIC_TABLE .
SORT CHOICE_TAB_IN BY FIELDTEXT AS TEXT ASCENDING.
DESCRIBE TABLE CHOICE_TAB_IN LINES SY-TFILL.
LOOP AT CHOICE_TAB_IN.
MY_TABIX = SY-TABIX.
TITEL-FELDNAME = CHOICE_TAB_IN-FIELDNAME.
TITEL-LANGTEXT = CHOICE_TAB_IN-FIELDTEXT.
TITEL-TABNAME = CHOICE_TAB_IN-TABNAME.
TITEL-FIELD = CHOICE_TAB_IN-FIELD.
TITEL-STELLE = STELLE.
APPEND TITEL.
STELLE = STELLE + 1.
ENDLOOP.
LOOP AT TITEL.
APPEND TITEL-FIELD TO G_T_TEXTFIELDS.
ENDLOOP.
LOOP AT TITEL.
MOVE-CORRESPONDING TITEL TO DATEN.
CLEAR DATEN-DATEN.
ASSIGN (TITEL-FELDNAME) TO <DATAIN>.
PERFORM GET_BILLING_HEADER.
ENDLOOP.
data : IFC TYPE LVC_T_FCAT.
APPEND titel TO IFC.
Create dynamic internal table and assign to FS
CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
EXPORTING
IT_FIELDCATALOG = IFC
IMPORTING
EP_TABLE = DY_TABLE.
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>.
PERFORM ASSIGN_VALUES-SELECTED.
ENDFORM. " NEW_DYNAMIC_TABLE
*& Form GET_FIELDS
text
--> p1 text
<-- p2 text
FORM GET_FIELDS .
FIELDTAB-FELDNAME = 'VBRK-VBELN'.
FIELDTAB-FIELDTEXT = 'Billing Doc.'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'VBELN'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-FKART'.
FIELDTAB-FIELDTEXT = 'Billing Type'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'FKART'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-VBTYP'.
FIELDTAB-FIELDTEXT = 'Doc. Type'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'VBTYP'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-KNUMV'.
FIELDTAB-FIELDTEXT = 'Doc. Condition'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'KNUMV'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-FKDAT'.
FIELDTAB-FIELDTEXT = 'Billing Date'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'FKDAT'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-KUNRG'.
FIELDTAB-FIELDTEXT = 'Payer'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'KUNRG'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-KUNAG'.
FIELDTAB-FIELDTEXT = 'Sold-to party'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'KUNAG'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-SFAKN'.
FIELDTAB-FIELDTEXT = 'Cancel Billing Doc.'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'SFAKN'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRK-FKSTO'.
FIELDTAB-FIELDTEXT = 'Billing Doc. Cust No.'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRK'.
CHOICE_TAB_IN-FIELD = 'FKSTO'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'VBRP-MATNR'.
FIELDTAB-FIELDTEXT = 'Material No.'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'VBRP'.
CHOICE_TAB_IN-FIELD = 'MATNR'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'J_1IEXCDTL-EXNUM'.
FIELDTAB-FIELDTEXT = 'Excise Invoice'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'J_1IEXCDTL'.
CHOICE_TAB_IN-FIELD = 'EXNUM'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'KONV-KSCHL'.
FIELDTAB-FIELDTEXT = 'TAX'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'KONV'.
CHOICE_TAB_IN-FIELD = 'KSCHL'.
APPEND CHOICE_TAB_IN.
FIELDTAB-FELDNAME = 'KONV-KWERT'.
FIELDTAB-FIELDTEXT = 'PRICE'.
APPEND FIELDTAB.
CHOICE_TAB_IN-FIELDTEXT = FIELDTAB-FIELDTEXT.
CHOICE_TAB_IN-FIELDNAME = FIELDTAB-FELDNAME.
CHOICE_TAB_IN-TABNAME = 'KONV'.
CHOICE_TAB_IN-FIELD = 'KWERT'.
APPEND CHOICE_TAB_IN.
ENDFORM. " GET_FIELDS
*& Form GENERATE_OUTPUT
text
--> p1 text
<-- p2 text
FORM GENERATE_OUTPUT .
ENDFORM. " GENERATE_OUTPUT
*& Form GET_BILLING_HEADER
text
--> p1 text
<-- p2 text
FORM GET_BILLING_HEADER .
SELECT * INTO CORRESPONDING FIELDS OF TABLE i_VBRK
FROM VBRK
WHERE VBELN IN S_VBELN
AND FKART IN S_FKART
AND VKORG IN S_VKORG
AND FKDAT IN S_FKDAT
AND RFBSK IN S_RFBSK
AND KUNAG IN S_KUNAG
AND SPART IN S_SPART ORDER BY FKDAT.
LOOP AT VBRK.
ASSIGN I_VBRK TO <HEADER>.
ASSIGN I_VBRK TO <F>.
CASE TITEL-FELDNAME.
WHEN OTHERS.
READ TABLE G_T_TEXTS_ALL
WITH KEY TABNAME = TITEL-TABNAME
FIELDNAME = TITEL-FIELD
INTO G_S_TEXT.
DATEN-DATEN = <HEADER>.
DATEN-DATEN = <DATAIN>.
MOVE-CORRESPONDING TITEL TO DATEN.
CLEAR DATEN-DATEN.
ASSIGN (TITEL-FELDNAME) TO <HEADER>.
DATEN-DATEN = <HEADER>.
ENDCASE.
DATEN-ZEILE = ZEILE.
APPEND DATEN.
ENDLOOP.
ENDFORM. " GET_BILLING_HEADER
This is not properly working.Culd u suggest wht can be the reason
LOOP AT i_VBRK.
ASSIGN I_VBRK TO <HEADER>.
CASE TITEL-FELDNAME.
WHEN OTHERS.
MOVE-CORRESPONDING TITEL TO DATEN.
CLEAR DATEN-DATEN.
ASSIGN (TITEL-FELDNAME) TO <HEADER>.
DATEN-DATEN = <HEADER>.
ENDCASE.
DATEN-ZEILE = ZEILE.
APPEND DATEN.
ENDLOOP.
WHEN I'M ASSIGING VALUES TO MY <HEADER> VALUES ARE COMING BLANK.
how to assign values
Similar Messages
-
CREATE DYNAMIC TABLE ERROR (CACHE PROBLEM ?)
Hi,
i have to create dynamic table. The Report is running. But i get Problem by next Programstart. It's showing the Message : This Table is ready exist! Can anyone help me?
Thanks!
CLEAR gt_fieldcatalog.
CLEAR gz_tab.
lv_index = 1.
gs_fieldcatalog-tabname = 'test'.
gs_fieldcatalog-fieldname = 'field_0'.
gs_fieldcatalog-reptext = 'field_0'.
gs_fieldcatalog-col_pos = lv_index.
gs_fieldcatalog-outputlen = 10.
APPEND gs_fieldcatalog TO gt_fieldcatalog.
lv_index = 2.
gs_fieldcatalog-tabname = 'test'.
gs_fieldcatalog-fieldname = 'TEXT'.
gs_fieldcatalog-reptext = 'TEXT'.
gs_fieldcatalog-col_pos = lv_index.
gs_fieldcatalog-outputlen = 50.
APPEND gs_fieldcatalog TO gt_fieldcatalog.
Do 10 times.
lv_index = lv_index + 1.
CONCATENATE field '_' lv_index INTO lv_fieldname.
gs_fieldcatalog-tabname = 'TEST'.
gs_fieldcatalog-fieldname = lv_fieldname.
gs_fieldcatalog-reptext = lv_fieldname.
gs_fieldcatalog-col_pos = lv_index.
gs_fieldcatalog-outputlen = 10.
APPEND gs_fieldcatalog TO gt_fieldcatalog.
CLEAR lv_fieldname.
ENDDO.
"Converting the Fieldcatalog for ALV Grid showing
LOOP AT gt_fieldcatalog INTO gs_fieldcatalog.
ls_fcat-col_pos = gs_fieldcatalog-col_pos.
ls_fcat-fieldname = gs_fieldcatalog-fieldname.
ls_fcat-seltext_l = gs_fieldcatalog-reptext.
ls_fcat-tabname = gs_fieldcatalog-tabname.
ls_fcat-datatype = gs_fieldcatalog-datatype.
ls_fcat-outputlen = gs_fieldcatalog-outputlen.
APPEND ls_fcat TO lt_fcat.
ENDLOOP.
" Creating internal Table
CALL METHOD cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = gt_fieldcatalog
IMPORTING
ep_table = gz_tab
EXCEPTIONS
generate_subpool_dir_full = 1
OTHERS = 2.
ASSIGN gz_tab->* TO <ft_tab>.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = ls_variant-report
it_fieldcat = lt_fcat
i_grid_title = 'Test'
is_layout = alv_layout
i_save = 'A'
is_variant = gx_variant
TABLES
t_outtab = <ft_tab>
EXCEPTIONS
program_error = 1
OTHERS = 2.
CLEAR <ft_tab>.
UNASSIGN <ft_tab>.
CLEAR lt_fcat.
Edited by: Hoang Lam Vu on Aug 25, 2008 11:18 AMHi Maroz,
I know this is not best practise to post my question in some others, but i have posted it separately earlier
Dynamic ITAB from Excel
I have created a dynamic ITAB from 1 Row of Excel Sheet
LOOP AT ist_excel INTO w_excel WHERE row = 2. " Contains the Values provided in 2nd row of Excel
APPEND w_excel TO row1.
ENDLOOP.
LOOP AT ist_excel INTO w_excel WHERE row = 3. " Contains the Values provided in 3rd row of Excel
APPEND w_excel TO row2.
ENDLOOP.
LOOP AT ist_excel INTO w_excel WHERE row = 4." Contains the Values provided in 4th row of Excel Etc
APPEND w_excel TO row3.
ENDLOOP.
LOOP AT row1 INTO w_excel.
CLEAR wa_it_fldcat.
wa_it_fldcat-fieldname = w_excel-value .
wa_it_fldcat-datatype = 'C'.
wa_it_fldcat-inttype = wa_details-type_kind.
wa_it_fldcat-intlen = 40.
* wa_it_fldcat-decimals = wa_details-decimals.
APPEND wa_it_fldcat TO it_fldcat .
ENDLOOP.
* 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>.
* Create dynamic work area and assign to FS
CREATE DATA new_line LIKE LINE OF <dyn_table>.
ASSIGN new_line->* TO <dyn_wa>.
I followed the Link provided by to create a Dynamic ITAB
Please guide me how to pass these Value from excel to Dynamic Internal Table
Warm Regards
Ramchander -
Error while insert data using execute immediate in dynamic table in oracle
Error while insert data using execute immediate in dynamic table created in oracle 11g .
first the dynamic nested table (op_sample) was created using the executed immediate...
object is
CREATE OR REPLACE TYPE ASI.sub_mark AS OBJECT (
mark1 number,
mark2 number
t_sub_mark is a class of type sub_mark
CREATE OR REPLACE TYPE ASI.t_sub_mark is table of sub_mark;
create table sam1(id number,name varchar2(30));
nested table is created below:
begin
EXECUTE IMMEDIATE ' create table '||op_sample||'
(id number,name varchar2(30),subject_obj t_sub_mark) nested table subject_obj store as nest_tab return as value';
end;
now data from sam1 table and object (subject_obj) are inserted into the dynamic table
declare
subject_obj t_sub_mark;
begin
subject_obj:= t_sub_mark();
EXECUTE IMMEDIATE 'insert into op_sample (select id,name,subject_obj from sam1) ';
end;
and got the below error:
ORA-00904: "SUBJECT_OBJ": invalid identifier
ORA-06512: at line 7
then when we tried to insert the data into the dynam_table with the subject_marks object as null,we received the following error..
execute immediate 'insert into '||dynam_table ||'
(SELECT887684 wrote:
ORA-00904: "SUBJECT_OBJ": invalid identifier
ORA-06512: at line 7The problem is that your variable subject_obj is not in scope inside the dynamic SQL you are building. The SQL engine does not know your PL/SQL variable, so it tries to find a column named SUBJECT_OBJ in your SAM1 table.
If you need to use dynamic SQL for this, then you must bind the variable. Something like this:
EXECUTE IMMEDIATE 'insert into op_sample (select id,name,:bind_subject_obj from sam1) ' USING subject_obj;Alternatively you might figure out to use static SQL rather than dynamic SQL (if possible for your project.) In static SQL the PL/SQL engine binds the variables for you automatically. -
Hi everyone.
We are working on upgrading from 4.6c to ECC 6.0 and I've run into a programming problem.
I have a class that I use to convert any internal table based on a dictionary structure to a comma-separated text file. For the most part, I use the dynamic table techniques that are easy to find here and in other code forums.
In 6.0 I can not get it to work. The value assignment of the input table to the field-symbol for the dynamic table causes a "OBJECTS_TABLES_NOT_COMPATIBLE" runtime error. So far what I can find on this error specific to dynamic tables is related to BW and/or PI. And I can't seem to find any alternative ways of dealing with dynamic tables. In debug I can see that decimal number fields in the dynamic table have a different length than what's in the dictionary.
Any help or ideas would be greately appreciated.
Here is part of the method that converts the itab to an dynamic internal table, then creates a csv record for each record (I've hilighted the line that causes the dump) :
Get the structure of the table.
ref_table_des ?=
cl_abap_typedescr=>describe_by_name( i_structure ).
idetails[] = ref_table_des->components[].
loop at idetails into xdetails.
clear xfc.
xfc-fieldname = xdetails-name .
xfc-datatype = xdetails-type_kind.
xfc-inttype = xdetails-type_kind.
xfc-intlen = xdetails-length.
xfc-decimals = xdetails-decimals.
append xfc to ifc.
endloop.
Create dynamic internal table and assign to FS
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = ifc
importing
ep_table = dy_table.
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>.
put data into the dynamic table
<dyn_table> = it_data[]. "<<==the runtime error happens on this line
loop at <dyn_table> into <dyn_wa>.
clear: l_fdata, l_data.
do.
l_index = sy-index.
assign component l_index
of structure <dyn_wa> to <dyn_field>.
if sy-subrc <> 0.
exit.
endif.
read table ifc into xfc index l_index.
if xfc-inttype = 'D'.
*etc...
Thank you,
- GeorgeHi,
For Dynamic internal table.u check SM30 Transaction.ther is one simple way to find the code in debugging.
if not possible i will send code which is relatd to dynamic table .
*& Form get_table_structure
* Get structure of an SAP table
form get_table_structure.
data : it_tabdescr type abap_compdescr_tab,
wa_tabdescr type abap_compdescr.
data : ref_table_descr type ref to cl_abap_structdescr.
* Return structure of the table.
ref_table_descr ?= cl_abap_typedescr=>describe_by_name( p_table ).
it_tabdescr[] = ref_table_descr->components[].
loop at it_tabdescr into wa_tabdescr.
clear wa_fieldcat.
wa_fieldcat-fieldname = wa_tabdescr-name .
wa_fieldcat-datatype = wa_tabdescr-type_kind.
wa_fieldcat-inttype = wa_tabdescr-type_kind.
wa_fieldcat-intlen = wa_tabdescr-length.
wa_fieldcat-decimals = wa_tabdescr-decimals.
append wa_fieldcat to it_fieldcat.
endloop.
endform. "get_table_structure
*& Form create_itab_dynamically
* Create internal table dynamically
form create_itab_dynamically.
* Create dynamic internal table and assign to Field-Symbol
call method cl_alv_table_create=>create_dynamic_table
EXPORTING
it_fieldcatalog = it_fieldcat
IMPORTING
ep_table = dyn_table.
assign dyn_table->* to <fs_table>.
* Create dynamic work area and assign to Field Symbol
create data dyn_line like line of <fs_table>.
assign dyn_line->* to <fs_wa>.
endform. "create_itab_dynamically
Edited by: subrahmanyam24 on Nov 18, 2010 5:12 AM
Edited by: subrahmanyam24 on Nov 18, 2010 5:15 AM -
SOM Error while using Dynamic Tables
Hi Gurus,
I have created a Adobe form with Dynamic tables and integrated in Webdynpro ABAP.
When I test the form, while opening the form the following error occurs ..
" The SOM Expression '$record.BP_DETAILS' for the dataRef specified on field 'BP_DETAILS' ,resolved to an incompatible node of type 'dataValue'..
After I press ok in the popup error message the Interactive form is displayed and I am able to add rows dynamically .. but the data .. but on submit the data is not passed to the context..
when i change the cardinality of the context from " 0..n" to "1..n" .. this error does not appear.. but while submit only the first row is saved to the context..
Has some one come across this error.. Please let me know how to get the dynamic table data to be passed to webdynpro ..
Thanks and Regards
SivarajHi
To show dynamic data in tables using adobe,follow these steps:
1. Create a value node say DataSource of cardinality 1.n and an other value node of cardinality 0.n which actually contains data.
2. create an array or use value node to collect data which is to be transferred to adobe.
3. data can be collected using for loop and create node element inside the loop and set corresponding values of each element.
4. add this element to value node.(step 3,4 are to be performed under loop)
5.You can use reverse loop to read and send data from adobe to data base which can be performed under submit button to sap.
Sample code to send data from dynpro view to adobe
Collection myRecords = new ArrayList();
myRecords.clear();
Collection records = new Vector();
IPrivateTestAdobeFormView.INotificationRecordsElement notifRecord = null;
int NUM_RECORDS = 5;
for (int i = 0; i < NUM_RECORDS; i++)
IPrivateTestAdobeFormView
.INotificationRecordsElement
notifRecordElement =
wdContext
.createNotificationRecordsElement();
notifRecordElement.setNotificationNumber("" + i);
notifRecordElement.setNotificationDesc("Description for " + i);
myRecords.add(notifRecordElement);
wdContext.nodeNotificationRecords().bind(myRecords);
To save data from adobe to sap
IPublic<your view>.I<your>Node node = wdContext.<your>node();
node.invalidate();
int size = wdContext.nodeRFQ_Questions().size();
Zqq_Qid_Ans_Txt newnode;
for (int i = size-1; i >= 0; i--) {
newnode = new Zqq_Qid_Ans_Txt();
String answertext = wdContext.nodeRFQ_Questions().getRFQ_QuestionsElementAt(i).getAnswer_Text();
newnode.setAnswer_Text(answertext);
String questionid = wdContext.nodeRFQ_Questions().getRFQ_QuestionsElementAt(i).getQuestion_Id();
newnode.setQuestion_Id(questionid);
quote.addT_Qid_Anstxt(newnode);
Mandeep Virk -
Hi ,
I am using Oracle report 10G
And trying to create report with dynamic table
SELECT &COL1, &COL2
FROM &TAB
If I put this on data model it gives below error
ORA-00936: missing expression
==> from
Can anybody advise to solve this issue.
Regards,
BrajeshLook in the Reports Builder Help:
If you want to use lexical references in your SELECT clause, you should create a separate lexical reference for each column you will substitute. In addition, you should assign an alias to each lexical reference.
Does adding the column alias solve the problem? -
Javascript error when inserting dynamic table in DW
Hi
Im using DW9 (CS3) and have problem.
When i klick on the 'dynamic table' button i get this error:
While executing insertObject in Dynamic Table.htm, a
Javascript error(s)
occurred:
Any sulution?
Please send me a copy fo the reply to my mail:
[email protected]
/TorbjörnIf that fails to solve the problem, then I recommend you
contact Adobe
directly and use one of your one-on-one support incidents.
http://www.adobe.com/support/programs/dreamweaver/index.html?tab:contact=1
Murray --- ICQ 71997575
Adobe Community Expert
(If you *MUST* email me, don't LAUGH when you do so!)
==================
http://www.dreamweavermx-templates.com
- Template Triage!
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
http://www.macromedia.com/support/search/
- Macromedia (MM) Technotes
==================
"Torbjörn Sjögren" <[email protected]>
wrote in message
news:fa26gs$bns$[email protected]..
>I have tried several of the tips in the article. But no
luck.
> Did a reinstall of DW but no luck.
> I´m very thankful for any tips.
>
> "Murray *ACE*" <[email protected]>
skrev i meddelandet
> news:fa004o$np6$[email protected]..
>> Troubleshooting JavaScript errors in Dreamweaver
>>
http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=tn_19105#dat
>>
>>
>> --
>> Murray --- ICQ 71997575
>> Adobe Community Expert
>> (If you *MUST* email me, don't LAUGH when you do
so!)
>> ==================
>>
http://www.dreamweavermx-templates.com
- Template Triage!
>>
http://www.projectseven.com/go
- DW FAQs, Tutorials & Resources
>>
http://www.dwfaq.com - DW FAQs,
Tutorials & Resources
>>
http://www.macromedia.com/support/search/
- Macromedia (MM) Technotes
>> ==================
>>
>>
>> "Torbjörn Sjögren"
<[email protected]> wrote in message
>> news:f9vu6c$lol$[email protected]..
>>> Hi
>>>
>>> Im using DW9 (CS3) and have problem.
>>> When i klick on the 'dynamic table' button i get
this error:
>>> ---------
>>> While executing insertObject in Dynamic
Table.htm, a Javascript error(s)
>>> occurred:
>>> ---------
>>>
>>> Any sulution?
>>>
>>> Please send me a copy fo the reply to my mail:
>>> [email protected]
>>>
>>> /Torbjörn
>>>
>>
>>
>
> -
Javascript error occurred when create a dynamic table
Hi all,
I try to create a dynamic table using the created recordset,
but I get the javascript error message "While executing insertObject in DynamicTable.htm, a Javascript error occurred."
How to fix it? I tried to delete the cache file in Configuration folder but it is not work..
Any idea? Thanks a lot!http://helpx.adobe.com/dreamweaver/kb/troubleshoot-javascript-errors-dreamweaver-cs4.html
Try 12 & 4 and then go through the rest. -
After run (or test) of procedure
create or replace procedure tmp_select_dymanic
( AInTable IN VARCHAR2,
ACount OUT NUMBER
) as
begin
EXECUTE IMMEDIATE 'BEGIN SELECT count(*) INTO :Count FROM :InTable END;'
USING ACount, AInTable;
end tmp_select_dymanic;
error message: invalid table name.
I know the table exists and contains data. I can make SELECT in SQL (not dynamic).
What a reason for error? May be privileges in database? But i make SELECT on my own table?
How can i set dynamic table name in other way?
My Oracle Version 10g.What you are asking can be done by REF_CURSOR;
look this example and try your self the rest:
CREATE OR REPLACE PROCEDURE insert_to_table_dinamic (
table1 IN VARCHAR2,
table2 IN VARCHAR2
AS
rc sys_refcursor;
v_sql VARCHAR2 (2000);
v_deptno NUMBER;
BEGIN
v_sql :=
'SELECT DEPTNO FROM '
|| table1
|| ' WHERE ROWNUM = 1 AND DEPTNO IS NOT NULL';
OPEN rc FOR v_sql;
LOOP
FETCH rc
INTO v_deptno;
EXIT WHEN rc%NOTFOUND;
v_sql :=
'UPDATE '
|| table2
|| ' SET DEPTNO = '
|| v_deptno
|| ' WHERE DEPTNO IS NULL';
EXECUTE IMMEDIATE v_sql;
END LOOP;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line (SQLCODE || SQLERRM);
END insert_to_table_dinamic;when i give DEPT , EMP as my 2 parameters above code will set the deptno in EMP table where deptno is null;
--Just a test proc. -
Introducing a dynamic table but when I preview it got an error
I have the database connected, the recordset declared but
when I introduce the dynamic table I can view it on the index.cfm
file then I preview it in IE7 and I got an error. This is my first
time please be patient.
ThanksI think the problem is that this field has a space in it:
#miembros_sanmarcos.id miembros#
Should that be an underscore?
#miembros_sanmarcos.id_miembros#
Randy
spinning_panda wrote:
> I have the database connected, the recordset declared
but when I introduce the
> dynamic table I can view it on the index.cfm file then I
preview it in IE7 and
> I got an error. This is my first time please be patient.
> Thanks
>
> Invalid CFML construct found on line 37 at column 34.
> ColdFusion was looking at the following text:
> miembros
>
> The CFML compiler was processing:
>
> An expression that began on line 37, column 11.
> The expression might be missing an ending #, for
example, #expr instead of
> #expr#.
> The body of a cfoutput tag beginning on line 35, column
6.
>
>
> The error occurred in
C:\ColdFusion8\wwwroot\admin\TMP25uvpbr0bq.cfm: line 37
>
> 35 : <cfoutput query="miembros_sanmarcos"
> startRow="#StartRow_miembros_sanmarcos#"
maxRows="#MaxRows_miembros_sanmarcos#">
> 36 : <tr>
> 37 : <td>#miembros_sanmarcos.id
miembros#</td>
> 38 : <td>#miembros_sanmarcos.Nombre1#</td>
> 39 : <td>#miembros_sanmarcos.Nombre2#</td>
> -
Typo/error in dynamic table example
I'm talking about the on-line copy of the Spry dynamic table
example:
http://labs.adobe.com/technologies/spry/articles/dynamic_table/
In the last two code blocks, in the TR element that uses
spry:repeat, the value of spry:repeat is set to "spry:repeat"
instead of "dsEmployees". If someone copies one of those code
blocks and tweaks it to use it for their own datasets, they'll get
a tokenizeData error.Thanks for catching that!
The fixed version is now live on Labs.
Thanks,
Don -
Error while creating dynamic Table
Hi All,
I have a node 'SEG' with 3 attributes, ATTR1.2.3, I am tring to crate dynamic table using this context node. Initialy i am displaying view with button, when click on this button i want to create table dynamically.. if click again one more table i have to create.. its giving dump... here is the code... How to do this???
data: wd_node_info type ref to if_wd_context_node_info,
wd_node type ref to if_wd_context_node,
lr_container type ref to cl_wd_uielement_container,
lv_tablename type string,
lt_db_data type ref to data,
lr_table type ref to cl_wd_table.
field-symbols: <lt_data> type any table.
wd_node_info = wd_context->get_node_info( ).
wd_node = wd_context->get_child_node( name = 'SEG' ).
lr_container ?= view->get_root_element( ).
cl_wd_matrix_layout=>new_matrix_layout( container = lr_container ).
" Creating internal table with the same structure as our dynamic
context node
CALL METHOD CL_WD_DYNAMIC_TOOL=>CREATE_TABLE_FROM_NODE
EXPORTING
UI_PARENT = lr_container
TABLE_ID = 'MY_TABLE'
NODE = wd_node
RECEIVING
TABLE = lr_table.
cl_wd_matrix_data=>new_matrix_data( element = lr_table ).
lr_table->bind_data_source( path = 'SEG' ).
Thanks'
Madhan.Hi Sarbjeet,
The code is working fine, when i use in wddomodify view method without button click on first time.( I checked this by creating another component). But I am creating dynamic table when click on button(view contains one button initially), for this i created two attributes FLAG OF TYPE wdy_boolean and count of type int1. and in button action i write this code :
DATA lo_el_context TYPE REF TO if_wd_context_element.
DATA ls_context TYPE wd_this->element_context.
DATA lv_flag LIKE ls_context-flag.
get element via lead selection
lo_el_context = wd_context->get_element( ).
get single attribute
lo_el_context->set_attribute(
name = `FLAG`
value = abap_true ).
DATA lv_count LIKE ls_context-count.
get element via lead selection
lo_el_context = wd_context->get_element( ).
get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `COUNT`
IMPORTING
value = lv_count ).
lv_count = lv_count + 1.
lo_el_context->set_attribute(
EXPORTING
name = `COUNT`
value = lv_count ).
and in wddomodify view method following code..
Method WDDOMODIFYVIEW
DATA lo_el_context TYPE REF TO if_wd_context_element.
DATA ls_context TYPE wd_this->element_context.
DATA lv_flag LIKE ls_context-flag.
get element via lead selection
lo_el_context = wd_context->get_element( ).
get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `FLAG`
IMPORTING
value = lv_flag ).
DATA lv_count LIKE ls_context-count.
get element via lead selection
lo_el_context = wd_context->get_element( ).
get single attribute
lo_el_context->get_attribute(
EXPORTING
name = `COUNT`
IMPORTING
value = lv_count ).
if lv_flag = abap_true. ......
Remaining code same post previously************8
get element via lead selection
lo_el_context = wd_context->get_element( ).
get single attribute
lo_el_context->set_attribute(
EXPORTING
name = `FLAG`
value = abap_false ).
endif.
endmethod...
I created like this i am not getting other UI elements(input, ddbykey,button).
And if i click view button again it going to dump..
Thanks,
Madhan. -
Why dynamic table creation with struts working only for JDK1.3.1_02 version
Row
import java.util.Vector;
public class Row
private static int colsize;
private Column[] columns;
public void setColumns(Column[] columns)
System.out.println("SetColumns");
this.columns = columns;
public void setColumn(int i, Column column)
System.out.println("setting"+ i+"th column"+column);
public Column[] getColumns()
return null;
public Column getColumns(int i)
System.out.println("Column"+i);
System.out.println("Colsize"+colsize);
if(columns == null)
columns= new Column[colsize];
if(columns[i] == null)
columns[i] = new Column();
return columns;
public int getColsize()
return colsize;
public static void setColsize(int size)
colsize = size;
Column:
public class Column
private String value;
public void setValue(String value)
System.out.println("Value="+value);
this.value = value;
public String getValue()
return value;
ApplicationResources:
button.cancel=Cancel
button.confirm=Confirm
button.reset=Reset
button.save=Save
database.load=Cannot load database from {0}
error.database.missing=<li>User database is missing, cannot validate logon credentials</li>
error.fromAddress.format=<li>Invalid format for From Address</li>
error.fromAddress.required=<li>From Address is required</li>
error.fullName.required=<li>Full Name is required</li>
error.host.required=<li>Mail Server is required</li>
error.noSubscription=<li>No Subscription bean in user session</li>
error.password.required=<li>Password is required</li>
error.password2.required=<li>Confirmation password is required</li>
error.password.match=<li>Password and confirmation password must match</li>
error.password.mismatch=<li>Invalid username and/or password, please try again</li>
error.replyToAddress.format=<li>Invalid format for Reply To Address</li>
error.transaction.token=<li>Cannot submit this form out of order</li>
error.type.invalid=<li>Server Type must be 'imap' or 'pop3'</li>
error.type.required=<li>Server Type is required</li>
error.username.required=<li>Username is required</li>
error.username.unique=<li>That username is already in use - please select another</li>
errors.footer=</ul><hr>
errors.header=<h3><font color="red">Validation Error</font></h3>You must correct the following error(s) before proceeding:<ul>
errors.ioException=I/O exception rendering error messages: {0}
heading.autoConnect=Auto
heading.subscriptions=Current Subscriptions
heading.host=Host Name
heading.user=User Name
heading.type=Server Type
heading.action=Action
index.heading=MailReader Demonstration Application Options
index.logon=Log on to the MailReader Demonstration Application
index.registration=Register with the MailReader Demonstration Application
index.title=MailReader Demonstration Application (Struts 1.0-b1)
index.tour=A Walking Tour of the Example Application
linkSubscription.io=I/O Error: {0}
linkSubscription.noSubscription=No subscription under attribute {0}
linkUser.io=I/O Error: {0}
linkUser.noUser=No user under attribute {0}
logon.title=MailReader Demonstration Application - Logon
mainMenu.heading=Main Menu Options for
mainMenu.logoff=Log off MailReader Demonstration Application
mainMenu.registration=Edit your user registration profile
mainMenu.title=MailReader Demonstration Application - Main Menu
option.imap=IMAP Protocol
option.pop3=POP3 Protocol
prompt.autoConnect=Auto Connect:
prompt.fromAddress=From Address:
prompt.fullName=Full Name:
prompt.mailHostname=Mail Server:
prompt.mailPassword=Mail Password:
prompt.mailServerType=Server Type:
prompt.mailUsername=Mail Username:
prompt.password=Password:
prompt.password2=(Repeat) Password:
prompt.replyToAddress=Reply To Address:
prompt.username=Username:
registration.addSubscription=Add
registration.deleteSubscription=Delete
registration.editSubscription=Edit
registration.title.create=Register for the MailReader Demostration Application
registration.title.edit=Edit Registration for the MailReader Demonstration Application
subscription.title.create=Create New Mail Subscription
subscription.title.delete=Delete Existing Mail Subscription
subscription.title.edit=Edit Existing Mail Subscription
LogonForm
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
public class LogonForm extends ActionForm
private String username;
private String password;
private String errors;
public String getUsername()
return username;
public void setUsername(String username)
this.username = username;
public void setPassword(String password)
this.password = password;
public String getPassword()
return password;
public String getErrors()
return errors;
public void setErrors(String errors)
this.errors = errors;
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ((username == null) || (username.length() < 1))
errors.add("username", new ActionError("error.username.required"));
if ((password == null) || (password.length() < 1))
errors.add("password", new ActionError("error.password.required"));
return errors;
TableForm
import org.apache.struts.action.ActionForm;
import java.util.Vector;
public class TableForm extends ActionForm
private static int rowsize;
private Row[] rows;
public Row getRows(int i)
System.out.println("Row"+i);
System.out.println("Rowsize"+rowsize);
if(rows == null)
rows = new Row[rowsize];
if(rows[i] == null)
rows[i] = new Row();
return rows[i];
public Row[] getRows()
return null;
public void setRows(Row[] rows)
System.out.println("SetRows");
// this.rows=rows;
public static void setRowsize(int size)
rowsize = size;
public int getRowSize()
return rowsize;
LogonAction
import java.io.IOException;
import java.util.Hashtable;
import java.util.Locale;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.MessageResources;
public class LogonAction extends Action
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
LogonForm logonForm = (LogonForm) form;
System.out.println(logonForm);
System.out.println(logonForm.getUsername());
System.out.println(logonForm.getPassword());
if(logonForm.getUsername().equals("test") && logonForm.getPassword().equals("test"))
//TableForm tform = new TableForm();
//tform.setRowsize(2);
//tform.getRows(0).setColsize(2);
//tform.getRows(1).setColsize(2);
//request.getSession().setAttribute("tableForm",tform);
System.out.println("Table Form setRowSize");
TableForm.setRowsize(2);
System.out.println("Table Form set ColSize");
Row.setColsize(2);
System.out.println("Returning success");
return mapping.findForward("success");
else
ActionErrors errors = new ActionErrors();
errors.add("password",
new ActionError("error.password.mismatch"));
saveErrors(request, errors);
//logonForm.setErrors("LoginError");
return mapping.findForward("failure");
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
<!--
This is the Struts configuration file for the example application,
using the proposed new syntax.
NOTE: You would only flesh out the details in the "form-bean"
declarations if you had a generator tool that used them to create
the corresponding Java classes for you. Otherwise, you would
need only the "form-bean" element itself, with the corresponding
"name" and "type" attributes.
-->
<struts-config>
<form-beans>
<!-- Logon form bean -->
<form-bean name="logonForm"
type="LogonForm"/>
<form-bean name="tableForm"
type="TableForm"/>
<form-bean name="profileForm"
type="ProfileForm"/>
</form-beans>
<global-forwards>
<forward name="success" path="/Profile.jsp"/>
</global-forwards>
<!-- ========== Action Mapping Definitions ============================== -->
<action-mappings>
<!-- Edit user registration -->
<action path="/logon"
type="LogonAction"
name="logonForm"
scope="request"
validate="false"
input="/Test.jsp">
<forward name="success" path="/Table.jsp"/>
<forward name="failure" path="/Test.jsp"/>
</action>
<action path="/table"
type="TableAction"
name="tableForm"
scope="request"
validate="false">
<forward name="success" path="/Bean.jsp"/>
<forward name="failure" path="/Table.jsp"/>
</action>
<action path="/profile"
type="ProfileAction"
name="profileForm"
scope="request"
validate="false"
parameter="method">
<forward name="edit" path="/EditProfile.jsp"/>
<forward name="show" path="/Profile.jsp"/>
</action>
</action-mappings>
</struts-config>
Test.jsp
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html locale="true">
<html:form action="/logon" >
<center>
<table>
<tr>
<td> Username </td>
<td> <html:text property="username" size="16" maxlength="16"/> </td>
<td> <html:errors property="username" /> </td>
</tr>
<tr>
<td> Password </td>
<td> <html:password property="password" size="16" maxlength="16"
redisplay="false"/> </td>
<td><html:errors property="password" /> </td>
</tr>
</table>
</center>
<center> <html:submit property="submit" value="Submit"/> </center>
</html:form>
</html:html>
Table.jsp
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html locale="true">
<html:form action="/table" >
<center>
<table>
<tr>
<td> <html:text property="rows[0].columns[0].value" /> </td>
<td> <html:text property="rows[0].columns[1].value" /></td>
</tr>
<tr>
<td> <html:text property="rows[1].columns[0].value" /> </td>
<td> <html:text property="rows[1].columns[1].value" /></td>
</tr>
</table>
</center>
<center> <html:submit property="submit" value="Submit"/> </center>
</html:form>
</html:html>The above application runs only with JDK1.3.1_02 and not with any other version. This application is creating dynamic table using struts.
Can anybody help me on the same
also appending web.xml contents:
<?xml version="1.0" ?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- Action Servlet Configuration -->
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>application</param-name>
<param-value>ApplicationResources</param-value>
</init-param>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>validate</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
<!-- Action Servlet Mapping -->
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<!--Welcome file list starts here -->
<welcome-file-list>
<welcome-file>
/test.jsp
</welcome-file>
</welcome-file-list>
<!-- Struts Tag Library Descriptors -->
<taglib>
<taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>
<taglib>
<taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>
</web-app>
validate-rules.xml
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
<!--
This file contains the default Struts Validator pluggable validator
definitions. It should be placed somewhere under /WEB-INF and
referenced in the struts-config.xml under the plug-in element
for the ValidatorPlugIn.
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
/WEB-INF/validation.xml"/>
</plug-in>
These are the default error messages associated with
each validator defined in this file. They should be
added to your projects ApplicationResources.properties
file or you can associate new ones by modifying the
pluggable validators msg attributes in this file.
# Struts Validator Error Messages
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
-->
<form-validation>
<global>
<validator name="required"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequired"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
<javascript><![CDATA[
function validateRequired(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oRequired = new required();
for (x in oRequired) {
var field = form[oRequired[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'file' ||
field.type == 'select-one' ||
field.type == 'radio' ||
field.type == 'password') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
} else {
value = field.value;
if (trim(value).length == 0) {
if (i == 0) {
focusField = field;
fields[i++] = oRequired[x][1];
isValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return isValid;
// Trim whitespace from left and right sides of s.
function trim(s) {
return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
]]>
</javascript>
</validator>
<validator name="requiredif"
classname="org.apache.struts.validator.FieldChecks"
method="validateRequiredIf"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
org.apache.commons.validator.Validator,
javax.servlet.http.HttpServletRequest"
msg="errors.required">
</validator>
<validator name="minlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMinLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.minlength">
<javascript><![CDATA[
function validateMinLength(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMinLength = new minlength();
for (x in oMinLength) {
var field = form[oMinLength[x][0]];
if (field.type == 'text' ||
field.type == 'textarea') {
var iMin = parseInt(oMinLength[x][2]("minlength"));
if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
if (i == 0) {
focusField = field;
fields[i++] = oMinLength[x][1];
isValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return isValid;
}]]>
</javascript>
</validator>
<validator name="maxlength"
classname="org.apache.struts.validator.FieldChecks"
method="validateMaxLength"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.maxlength">
<javascript><![CDATA[
function validateMaxLength(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMaxLength = new maxlength();
for (x in oMaxLength) {
var field = form[oMaxLength[x][0]];
if (field.type == 'text' ||
field.type == 'textarea') {
var iMax = parseInt(oMaxLength[x][2]("maxlength"));
if (field.value.length > iMax) {
if (i == 0) {
focusField = field;
fields[i++] = oMaxLength[x][1];
isValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return isValid;
}]]>
</javascript>
</validator>
<validator name="mask"
classname="org.apache.struts.validator.FieldChecks"
method="validateMask"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.invalid">
<javascript><![CDATA[
function validateMask(form) {
var isValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oMasked = new mask();
for (x in oMasked) {
var field = form[oMasked[x][0]];
if ((field.type == 'text' ||
field.type == 'textarea') &&
(field.value.length > 0)) {
if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
if (i == 0) {
focusField = field;
fields[i++] = oMasked[x][1];
isValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return isValid;
function matchPattern(value, mask) {
return mask.exec(value);
}]]>
</javascript>
</validator>
<validator name="byte"
classname="org.apache.struts.validator.FieldChecks"
method="validateByte"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.byte"
jsFunctionName="ByteValidations">
<javascript><![CDATA[
function validateByte(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oByte = new ByteValidations();
for (x in oByte) {
var field = form[oByte[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
} else {
value = field.value;
if (value.length > 0) {
if (!isAllDigits(value)) {
bValid = false;
if (i == 0) {
focusField = field;
fields[i++] = oByte[x][1];
} else {
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
if (i == 0) {
focusField = field;
fields[i++] = oByte[x][1];
bValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return bValid;
}]]>
</javascript>
</validator>
<validator name="short"
classname="org.apache.struts.validator.FieldChecks"
method="validateShort"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.short"
jsFunctionName="ShortValidations">
<javascript><![CDATA[
function validateShort(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oShort = new ShortValidations();
for (x in oShort) {
var field = form[oShort[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
} else {
value = field.value;
if (value.length > 0) {
if (!isAllDigits(value)) {
bValid = false;
if (i == 0) {
focusField = field;
fields[i++] = oShort[x][1];
} else {
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
if (i == 0) {
focusField = field;
fields[i++] = oShort[x][1];
bValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return bValid;
}]]>
</javascript>
</validator>
<validator name="integer"
classname="org.apache.struts.validator.FieldChecks"
method="validateInteger"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.integer"
jsFunctionName="IntegerValidations">
<javascript><![CDATA[
function validateInteger(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oInteger = new IntegerValidations();
for (x in oInteger) {
var field = form[oInteger[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
} else {
value = field.value;
if (value.length > 0) {
if (!isAllDigits(value)) {
bValid = false;
if (i == 0) {
focusField = field;
fields[i++] = oInteger[x][1];
} else {
var iValue = parseInt(value);
if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
if (i == 0) {
focusField = field;
fields[i++] = oInteger[x][1];
bValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return bValid;
function isAllDigits(argvalue) {
argvalue = argvalue.toString();
var validChars = "0123456789";
var startFrom = 0;
if (argvalue.substring(0, 2) == "0x") {
validChars = "0123456789abcdefABCDEF";
startFrom = 2;
} else if (argvalue.charAt(0) == "0") {
validChars = "01234567";
startFrom = 1;
} else if (argvalue.charAt(0) == "-") {
startFrom = 1;
for (var n = startFrom; n < argvalue.length; n++) {
if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
return true;
}]]>
</javascript>
</validator>
<validator name="long"
classname="org.apache.struts.validator.FieldChecks"
method="validateLong"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.long"/>
<validator name="float"
classname="org.apache.struts.validator.FieldChecks"
method="validateFloat"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.float"
jsFunctionName="FloatValidations">
<javascript><![CDATA[
function validateFloat(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oFloat = new FloatValidations();
for (x in oFloat) {
var field = form[oFloat[x][0]];
if (field.type == 'text' ||
field.type == 'textarea' ||
field.type == 'select-one' ||
field.type == 'radio') {
var value = '';
// get field's value
if (field.type == "select-one") {
var si = field.selectedIndex;
if (si >= 0) {
value = field.options[si].value;
} else {
value = field.value;
if (value.length > 0) {
// remove '.' before checking digits
var tempArray = value.split('.');
var joinedString= tempArray.join('');
if (!isAllDigits(joinedString)) {
bValid = false;
if (i == 0) {
focusField = field;
fields[i++] = oFloat[x][1];
} else {
var iValue = parseFloat(value);
if (isNaN(iValue)) {
if (i == 0) {
focusField = field;
fields[i++] = oFloat[x][1];
bValid = false;
if (fields.length > 0) {
focusField.focus();
alert(fields.join('\n'));
return bValid;
}]]>
</javascript>
</validator>
<validator name="double"
classname="org.apache.struts.validator.FieldChecks"
method="validateDouble"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.double"/>
<validator name="date"
classname="org.apache.struts.validator.FieldChecks"
method="validateDate"
methodParams="java.lang.Object,
org.apache.commons.validator.ValidatorAction,
org.apache.commons.validator.Field,
org.apache.struts.action.ActionErrors,
javax.servlet.http.HttpServletRequest"
depends=""
msg="errors.date"
jsFunctionName="DateValidations">
<javascript><![CDATA[
function validateDate(form) {
var bValid = true;
var focusField = null;
var i = 0;
var fields = new Array();
oDate = new DateValidations();
for (x in oDate) {
var value = form[oDate[x][0]].value;
var datePattern = oDate[x][2]("datePatternStrict");
if ((form[oDate[x][0]].type == 'text' ||
form[oDate[x][0]].type == 'textarea') &&
(value.length > 0) &&
(datePattern.length > 0)) {
var MONTH = "MM";
var DAY = "dd";
var YEAR = "yyyy";
var orderMonth = datePattern.indexOf(MONTH);
var orderDay = datePattern.indexOf(DAY);
var orderYear = datePattern.indexOf(YEAR);
if ((orderDay < orderYear && orderDay > orderMonth)) {
var iDelim1 = orderMonth + MONTH.length;
var iDelim2 = orderDay + DAY.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderDay && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderDay) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[2], matched[1], matched[3])) {
if (i == 0) {
focusField = form[oDate[x][0]];
fields[i++] = oDate[x][1];
bValid = false;
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
fields[i++] = oDate[x][1];
bValid = false;
} else if ((orderMonth < orderYear && orderMonth > orderDay)) {
var iDelim1 = orderDay + DAY.length;
var iDelim2 = orderMonth + MONTH.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderMonth && iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
} else if (iDelim1 == orderMonth) {
dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
} else if (iDelim2 == orderYear) {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
} else {
dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
var matched = dateRegexp.exec(value);
if(matched != null) {
if (!isValidDate(matched[1], matched[2], matched[3])) {
if (i == 0) {
focusField = form[oDate[x][0]];
fields[i++] = oDate[x][1];
bValid = false;
} else {
if (i == 0) {
focusField = form[oDate[x][0]];
fields[i++] = oDate[x][1];
bValid = false;
} else if ((orderMonth > orderYear && orderMonth < orderDay)) {
var iDelim1 = orderYear + YEAR.length;
var iDelim2 = orderMonth + MONTH.length;
var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
if (iDelim1 == orderMonth && iDelim2 == orderDay) {
dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
} else if (iDelim1 == orderMonth) {
dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
} else if (iDelim2 == orderDay) {
dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
} else {
dateRegexp = new Reg -
How to create dynamic View Object and Dynamic Table
Dear ll
I want to create a dynamic view object and display the output in a dynamic table on the page.
I am using Jdeveloper 12c "Studio Edition Version 12.1.2.0.0"
This what I did:
1- I created a read only view object with this query "Select sysdate from dual"
2- I added this View object to the application module
3- I created a new method that change the query of this View object at runtime
public void changeVoQuery(String dbViewName) {
String sqlstm = "Select * From " + dbViewName;
ViewObject dynamicVo = this.findViewObject("DynamicVo");
if (dynamicVo != null) {
dynamicVo.remove();
dynamicVo = this.createViewObjectFromQueryStmt("DynamicVo", sqlstm);
dynamicVo.executeQuery();
4- I run the application module for testing the method and I passed "Scott.Emp" as a parameter and the result was Success
5- Now I want to show the result of the view on the page, so I draged and dropped the method from the data control as a parameter form
6- I dragged and dropped the view Object "DynamicVo" as a table and I choose "generate Column Dynamically at runtime". This is the page source
<af:panelHeader text="#{viewcontrollerBundle.SELECT_DOCUMTN_TYPE}" id="ph1">
<af:panelFormLayout id="pfl1">
<af:inputText value="#{bindings.dbViewName.inputValue}" label="#{bindings.dbViewName.hints.label}"
required="#{bindings.dbViewName.hints.mandatory}"
columns="#{bindings.dbViewName.hints.displayWidth}"
maximumLength="#{bindings.dbViewName.hints.precision}"
shortDesc="#{bindings.dbViewName.hints.tooltip}" id="it1">
<f:validator binding="#{bindings.dbViewName.validator}"/>
</af:inputText>
<af:button actionListener="#{bindings.changeVoQuery.execute}" text="changeVoQuery"
disabled="#{!bindings.changeVoQuery.enabled}" id="b1"/>
</af:panelFormLayout>
</af:panelHeader>
<af:table value="#{bindings.DynamicVo.collectionModel}" var="row" rows="#{bindings.DynamicVo.rangeSize}"
emptyText="#{bindings.DynamicVo.viewable ? 'No data to display.' : 'Access Denied.'}"
rowBandingInterval="0" selectedRowKeys="#{bindings.DynamicVo.collectionModel.selectedRow}"
selectionListener="#{bindings.DynamicVo.collectionModel.makeCurrent}" rowSelection="single"
fetchSize="#{bindings.DynamicVo.rangeSize}" filterModel="#{bindings.DynamicVoQuery.queryDescriptor}"
queryListener="#{bindings.DynamicVoQuery.processQuery}" filterVisible="true" varStatus="vs" id="t1"
partialTriggers="::b1">
<af:iterator id="i1" value="#{bindings.DynamicVo.attributesModel.attributes}" var="column">
<af:column headerText="#{column.label}" sortProperty="#{column.name}" sortable="true" filterable="true"
id="c1">
<af:dynamicComponent id="d1" attributeModel="#{column}"
value="#{row.bindings[column.name].inputValue}"/>
</af:column>
</af:iterator>
</af:table>
when I run the page this error is occured
<Nov 13, 2013 2:51:58 PM AST> <Error> <oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #1
javax.el.ELException: java.lang.NullPointerException
Caused By: java.lang.NullPointerException
Can any body help me please
thanksHave you seen Shay's video https://blogs.oracle.com/shay/entry/adf_faces_dynamic_tags_-_for_a
All you have to do is to use the dynamic table to get your result.
Timo -
How to set dynamic table name in sql query?
I want set dynamic table name by parameter in sql query,just like:
select * from :tbname
but run report is error,BI P report table name is invalidation.
What can i do? Thanks!Hi,
that's only possible inside a data template with a lexical parameter.
Regards
Rainer
Maybe you are looking for
-
Macbook boots up with a question mark
Hi, My Macbook suddenly began to boot up with a pale greay desktop screen colour and in the centre of the screen there is a folder with a question makr inside it. I can not progress to do anything else with it..any ideas? Cheers CFV
-
Discount should not be considered during F110
Dear All, We have the Scenario as below.... Payment Terms : 10 days , 2 % Discount Base Line Date : 03/18/2015 Net Due Date : 03/28/2015 Payment Run : 03/31/2015 So as payment run date ( 03/31/2015 ) is already past due date (03/28/2015 ), why system
-
ADF Faces showDetailItem seems to "load" child elements twice on tab select
Problem Summary: Child elements of showDetailItem are being loaded/executed twice. The parent of the showDetailItem is a showOneTab, and the child of showDetailItem is an af:objectImage, which calls a servlet I have written that outputs an image. The
-
Just getting a sawtooth shape on the status bar (uTorrent) and none of my downloads will go above 1kbps.
-
Using lightroom to publish to .mac iWeb
has anyone done this? what info do I need to put in so that it uploads to my already existing webpage? Thanks!