Speed up data set calls
Hey
I am currently working on a timetable lookup system. I have 2
tables setup, each with 35 cells and each searching through over
1000 lines of XML. As you can imagine this takes bloomin ages!
Is there any way to speed this process up? You can see the
code I am using below
SCRIPT:
<script type="text/javascript">
<!--
// Decipher the username
var username = '03ROSSMI';
var y7Year = Number(username.substr(0,2));
var firstname3D = username.substr(2,3);
var firstname3D = firstname3D.toUpperCase();
var lastname3D = username.substr(5,7);
var lastname3D = lastname3D.toUpperCase();
// Work out what year the student is in
var date = new Date();
var year = String(date.getFullYear());
var year2D = Number(year.substr(3));
var yearGroup = (year2D - y7Year)+7;
// Dynamically setup the XML data set
var timetable = new
Spry.Data.XMLDataSet("data/year"+yearGroup+"abc.xml",
"SuperStarReport/Record");
function displayData(Name, session, ChosenName, Surname)
// Convert the student's first and last name into a 3 digit
format and make it uppercase
var ChosenName3D = ChosenName.substr(0,3);
var ChosenName3D = ChosenName3D.toUpperCase();
var Surname3D = Surname.substr(0,3);
var Surname3D = Surname3D.toUpperCase();
// If the session name, first name and last name all match
then return true
if(Name == session && ChosenName3D == firstname3D
&& Surname3D == lastname3D)
return true;
else
return false;
</script>
HTML:
<div id="ttTitle">Timetable - Adam Smith
JMN</div>
<div class="ttHeaderWrap">
<!-- HEADER INFO -->
<div>Mon A</div>
<div>Tue A</div>
<div>Wed A</div>
<div>Thu A</div>
<div>Fri A</div>
</div>
<div class="ttWrap">
<!-- SESSION 1 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 1', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 1', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 1', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 1', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 1', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 2 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 2', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 2', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 2', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 2', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 2', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 3 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 3', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 3', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 3', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 3', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 3', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 4 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 4', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 4', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 4', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 4', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 4', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 5 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 5', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 5', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 5', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 5', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 5', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 6 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 6', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 6', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 6', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 6', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 6', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<!-- SESSION 7 -->
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Mon A 7', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Tue A 7', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Wed A 7', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Thu A 7', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
<div spry:repeat="timetable"
spry:test="displayData('{Name}', ' Fri A 7', '{ChosenName}',
'{Surname}')">{Description}<br
/>{Initials} {Name1}</div>
</div>
Similar Messages
-
Hi,
I have page that uses a spry data set called 'dsSupport',
however i do not want to use a table to select the item in the list
i am instead using a spry select box:
<div spry:region="dsSupport">
<h1>Step1: Select your product:</h1>
<form id="form1" name="form1" method="post" action="">
<p><strong>Choose from a
list:</strong><br />
<span id="spryselect1">
<label>
<select name="prodlist" id="prodlist">
<option spry:repeat="dsSupport" spry:setrow="dsSupport"
value="{model}">{name}</option>
</select>
</label>
<span class="selectRequiredMsg">Please select an
item.</span>
</span>
</p>
</form>
</div>
This is connected to a spry detail region so i can pull up
more details from the data set, but when i change the option in the
select box nothing happens. Is this possible? If so can anyone
help!
If i drop a spry table in to the div tag as well i can select
the items in there and the detail region does change so i know its
linked ok and all the table items are showing in the select box, i
just cannot get it to change when i select something different in
the select box!fixed it using:
<select spry:repeatchildren="dsSupport"
spry:choose="choose" name="prodlist"
onChange="dsSupport.setCurrentRow(this.selectedIndex);">
<option spry:when="{ds_RowNumber} ==
{ds_CurrentRowNumber}" selected="selected">{name}</option>
<option spry:default="default">{name}</option>
</select> -
Open data set and close data set
hi all,
i have some doubt in open/read/close data set
how to transfer data from internal table to sequential file, how we find sequential file.
thanks and regards
chaitanyaHi Chaitanya,
Refer Sample Code:
constants: c_split TYPE c
VALUE cl_abap_char_utilities=>horizontal_tab,
c_path TYPE char100
VALUE '/local/data/interface/A28/DM/OUT'.
Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS : rb_pc RADIOBUTTON GROUP r1 DEFAULT 'X'
USER-COMMAND ucomm, "For Presentation
p_f1 LIKE rlgrap-filename
MODIF ID rb1, "Input File
rb_srv RADIOBUTTON GROUP r1, "For Application
p_f2 LIKE rlgrap-filename
MODIF ID rb2, "Input File
p_direct TYPE char128 MODIF ID abc DEFAULT c_path.
"File directory
SELECTION-SCREEN END OF BLOCK b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_f1.
*-- Browse Presentation Server
PERFORM f1000_browse_presentation_file.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_f2.
*-- Browse Application Server
PERFORM f1001_browse_appl_file.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF rb_pc = 'X' AND screen-group1 = 'RB2'.
screen-input = '0'.
MODIFY SCREEN.
ELSEIF rb_srv = 'X' AND screen-group1 = 'RB1'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
IF screen-group1 = 'ABC'.
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
*& Form f1000_browse_presentation_file
Pick up the filepath for the file in the presentation server
FORM f1000_browse_presentation_file .
CONSTANTS: lcl_path TYPE char20 VALUE 'C:'.
CALL FUNCTION 'WS_FILENAME_GET'
EXPORTING
def_path = lcl_path
mask = c_mask "',.,..'
mode = c_mode
title = text-006
IMPORTING
filename = p_f1
EXCEPTIONS
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
flg_pre = c_x.
ENDIF.
ENDFORM. " f1000_browse_presentation_file
*& Form f1001_browse_appl_file
Pick up the file path for the file in the application server
FORM f1001_browse_appl_file .
DATA: lcl_directory TYPE char128.
lcl_directory = p_direct.
CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
EXPORTING
directory = lcl_directory
filemask = c_mask
IMPORTING
serverfile = p_f2
EXCEPTIONS
canceled_by_user = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e000(zmm) WITH text-039.
flg_app = 'X'.
ENDIF.
ENDFORM. " f1001_browse_appl_file
*& Form f1003_pre_file
Upload the file from the presentation server
FORM f1003_pre_file .
DATA: lcl_filename TYPE string.
lcl_filename = p_f1.
IF p_f1 IS NOT INITIAL.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lcl_filename
filetype = 'ASC'
has_field_separator = 'X'
TABLES
data_tab = i_input
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
gui_refuse_filetransfer = 4
invalid_type = 5
no_authority = 6
unknown_error = 7
bad_data_format = 8
header_not_allowed = 9
separator_not_allowed = 10
header_too_long = 11
unknown_dp_error = 12
access_denied = 13
dp_out_of_memory = 14
disk_full = 15
dp_timeout = 16
OTHERS = 17.
IF sy-subrc <> 0.
MESSAGE s000 WITH text-031.
EXIT.
ENDIF.
ELSE.
PERFORM populate_error_log USING space
text-023.
ENDIF.
ENDFORM. " f1003_pre_file
*& Form f1004_app_file
upload the file from the application server
FORM f1004_app_file .
REFRESH: i_input.
OPEN DATASET p_f2 IN TEXT MODE ENCODING DEFAULT FOR INPUT.
IF sy-subrc EQ 0.
DO.
READ DATASET p_f2 INTO wa_input_rec.
IF sy-subrc EQ 0.
*-- Split The CSV record into Work Area
PERFORM f0025_record_split.
*-- Populate internal table.
APPEND wa_input TO i_input.
CLEAR wa_input.
IF sy-subrc <> 0.
MESSAGE s000 WITH text-030.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDIF.
ENDFORM. " f1004_app_file
Move the assembly layer file into the work area
FORM f0025_record_split .
CLEAR wa_input.
SPLIT wa_input_rec AT c_split INTO
wa_input-legacykey
wa_input-bu_partner
wa_input-anlage.
ENDFORM. " f0025_record_split
Reward points if this helps.
Manish -
Download using open data set and close data set
can any body please send some sample pgm using open data set and close data set .the data should get downloaded in application server
very simple pgm neededHi Arun,
See the Sample code for BDC using OPEN DATASET.
report ZSDBDCP_PRICING no standard page heading
line-size 255.
include zbdcrecx1.
*--Internal Table To hold condition records data from flat file.
Data: begin of it_pricing occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
f4(18),
f5(16),
end of it_pricing.
*--Internal Table To hold condition records header .
data : begin of it_header occurs 0,
key(4),
f1(4),
f2(4),
f3(2),
end of it_header.
*--Internal Table To hold condition records details .
data : begin of it_details occurs 0,
key(4),
f4(18),
f5(16),
end of it_details.
data : v_sno(2),
v_rows type i,
v_fname(40).
start-of-selection.
refresh : it_pricing,it_header,it_details.
clear : it_pricing,it_header,it_details.
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = 'C:\WINDOWS\Desktop\pricing.txt'
FILETYPE = 'DAT'
TABLES
DATA_TAB = it_pricing
EXCEPTIONS
CONVERSION_ERROR = 1
INVALID_TABLE_WIDTH = 2
INVALID_TYPE = 3
NO_BATCH = 4
UNKNOWN_ERROR = 5
GUI_REFUSE_FILETRANSFER = 6
OTHERS = 7.
WRITE : / 'Condition Records ', P_FNAME, ' on ', SY-DATUM.
OPEN DATASET P_FNAME FOR INPUT IN TEXT MODE.
if sy-subrc ne 0.
write : / 'File could not be uploaded.. Check file name.'.
stop.
endif.
CLEAR : it_pricing[], it_pricing.
DO.
READ DATASET P_FNAME INTO V_STR.
IF SY-SUBRC NE 0.
EXIT.
ENDIF.
write v_str.
translate v_str using '#/'.
SPLIT V_STR AT ',' INTO it_pricing-key
it_pricing-F1 it_pricing-F2 it_pricing-F3
it_pricing-F4 it_pricing-F5 .
APPEND it_pricing.
CLEAR it_pricing.
ENDDO.
IF it_pricing[] IS INITIAL.
WRITE : / 'No data found to upload'.
STOP.
ENDIF.
loop at it_pricing.
At new key.
read table it_pricing index sy-tabix.
move-corresponding it_pricing to it_header.
append it_header.
clear it_header.
endat.
move-corresponding it_pricing to it_details.
append it_details.
clear it_details.
endloop.
perform open_group.
v_rows = sy-srows - 8.
loop at it_header.
perform bdc_dynpro using 'SAPMV13A' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RV13A-KSCHL'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RV13A-KSCHL'
it_header-f1.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_CURSOR'
'KONP-KBETR(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'KOMG-VKORG'
it_header-f2.
perform bdc_field using 'KOMG-VTWEG'
it_header-f3.
**Table Control
v_sno = 0.
loop at it_details where key eq it_header-key.
v_sno = v_sno + 1.
clear v_fname.
CONCATENATE 'KOMG-MATNR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f4.
clear v_fname.
CONCATENATE 'KONP-KBETR(' V_SNO ')' INTO V_FNAME.
perform bdc_field using v_fname
it_details-f5.
if v_sno eq v_rows.
v_sno = 0.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=P+'.
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
endif.
endloop.
*--Save
perform bdc_dynpro using 'SAPMV13A' '1004'.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
perform bdc_transaction using 'VK11'.
endloop.
perform close_group.
Hope this resolves your query.
Reward all the helpful answers.
Regards -
What is open data set and close data set
what is open data set and close data set,
how to use the files in sap directories ?hi,
Open Dataset is used to read or write on to application server ... other than that i am not sure that there exists any way to do the same ... here is a short description for that
FILE HANDLING IN SAP
Introduction
Files on application server are sequential files.
Files on presentation server / workstation are local files.
A sequential file is also called a dataset.
Handling of Sequential file
Three steps are involved in sequential file handling
OPEN
PROCESS
CLOSE
Here processing of file can be READING a file or WRITING on to a file.
OPEN FILE
Before data can be processed, a file needs to be opened.
After processing file is closed.
Syntax:
OPEN DATASET <file name> FOR {OUTPUT/INPUT/APPENDING}
IN {TEXT/BINARY} MODE
This statement returns SY_SUBRC as 0 for successful opening of file or 8, if unsuccessful.
OUTPUT: Opens the file for writing. If the dataset already exists, this will place the cursor at the start of the dataset, the old contents get deleted at the end of the program or when the CLOSE DATASET is encountered.
INPUT: Opens a file for READ and places the cursor at the beginning of the file.
FOR APPENDING: Opens the file for writing and places the cursor at the end of file. If the file does not exist, it is generated.
BINARY MODE: The READ or TRANSFER will be character wise. Each time n characters are READ or transferred. The next READ or TRANSFER will start from the next character position and not on the next line.
IN TEXT MODE: The READ or TRANSFER will start at the beginning of a new line each time. If for READ, the destination is shorter than the source, it gets truncated. If destination is longer, then it is padded with spaces.
Defaults: If nothing is mentioned, then defaults are FOR INPUT and in BINARY MODE.
PROCESS FILE:
Processing a file involves READing the file or Writing on to file TRANSFER.
TRANSFER Statement
Syntax:
TRANSFER <field> TO <file name>.
<Field> can also be a field string / work area / DDIC structure.
Each transfer statement writes a statement to the dataset. In binary mode, it writes the length of the field to the dataset. In text mode, it writes one line to the dataset.
If the file is not already open, TRANSFER tries to OPEN file FOR OUTPUT (IN BINARY MODE) or using the last OPEN DATASET statement for this file.
IF FILE HANDLING, TRANSFER IS THE ONLY STATEMENT WHICH DOES NOT RETURN SY-SUBRC
READ Statement
Syntax:
READ DATASET <file name> INTO <field>.
<Field> can also be a field string / work area / DDIC structure.
Each READ will get one record from the dataset. In binary mode it reads the length of the field and in text mode it reads each line.
CLOSE FILE:
The program will close all sequential files, which are open at the end of the program. However, it is a good programming practice to explicitly close all the datasets that were opened.
Syntax:
CLOSE DATASET <file name>.
SY-SUBRC will be set to 0 or 8 depending on whether the CLOSE is successful or not.
DELETE FILE:
A dataset can be deleted.
Syntax:
DELETE DATASET <file name>.
SY-SUBRC will be set to 0 or 8 depending on whether the DELETE is successful or not.
Pseudo logic for processing the sequential files:
For reading:
Open dataset for input in a particular mode.
Start DO loop.
Read dataset into a field.
If READ is not successful.
Exit the loop.
Endif.
Do relevant processing for that record.
End the do loop.
Close the dataset.
For writing:
Open dataset for output / Appending in a particular mode.
Populate the field that is to be transferred.
TRANSFER the filed to a dataset.
Close the dataset.
Regards
Anver
if hlped pls mark points -
OPEN DATA SET .. EXCEL OUTPUT
Hello frnds,
I had requirement to genrate a excel file ... In a given format.
How should I ?? Preffered through Open data set .... Is it possible
With Regards.Hi Manmeet,
Try this sample code,
TABLES: ZVIJ.
DATA : BEGIN OF WA,
NAME(6) TYPE C,
AGE(3) TYPE C,
DES(5) TYPE C,
SALARY(3) TYPE C,
INCENT(3) TYPE C,
END OF WA,
IT LIKE TABLE OF WA WITH HEADER LINE.
DATA : BEGIN OF WA1,
NAME(6) TYPE C,
AGE TYPE I,
DES(4) TYPE C,
SALARY TYPE I,
INCENT TYPE I,
END OF WA1,
IT1 LIKE TABLE OF WA1 WITH HEADER LINE.
OPEN DATASET 'SAMP' FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = 'C:\Documents and Settings\Desktop\Book62.XLS' --> XLS
for Excel file.
FILETYPE = 'ASC'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = IT
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT IT .
IT1-NAME = IT-NAME.
IT1-AGE = IT-AGE.
IT1-DES = IT-DES.
IT1-SALARY = IT-SALARY.
IT1-INCENT = IT-INCENT.
APPEND IT1.
ENDLOOP.
LOOP AT IT1.
ZVIJ-NAME = IT1-NAME.
ZVIJ-AGE = IT1-AGE.
ZVIJ-DES = IT1-DES.
ZVIJ-SALARY = IT1-SALARY.
ZVIJ-INCENT = IT1-INCENT.
INSERT ZVIJ.
ENDLOOP.
Thanks.
Reward If Helpful. -
Hello ,
I am sending file to print server and i am accounting problems with special characters
In first version of program ( please see the code below )
"OPEN DATASET g_filename FOR OUTPUT IN TEXT MODE ENCODING DEFAULT."
The special characters l from German and French alphabet were NOT printed properly , and we had some nonsense results . Other '"Normal "characters like A , B... are printed without errors .
To prevent this error i wrote new line of code for open data set ( below ).
"OPEN DATASET g_filename FOR OUTPUT IN LEGACY TEXT MODE CODE PAGE '4110' IGNORING CONVERSION ERRORS."
This was working only when FTP was NOT used , when FTP was used i had following short dump.
I am working in SAP release 6.0
Please Advice
SHORT DUMP Message :
What happened?
The conversion of texts in code page '4102' to code page '4110' is not
supported here.
The current ABAP program 'SAPLZPRN_AUTO_LBL' had to be interrupted because
incorrect
data would have been created by the conversion.
Error analysis
An exception occurred that is explained in detail below.
The exception, which is assigned to class 'CX_SY_CODEPAGE_CONVERTER_INIT', was
not caught in
procedure "Z_TRANSFER_FILE" "(FUNCTION)", nor was it propagated by a RAISING
clause.
Since the caller of the procedure could not have anticipated that the
exception would occur, the current program is terminated.
The reason for the exception is:
Possibly, one of the codepages '4102' or '4110' - needed for the
conversion - is unknown to the system. Another option is, that a Unicode
codepage was specified for a file in LEGACY MODE, which is not allowed.
Additional parameters for the codepage conversion (as , for example, the
replacement character) might have invalid values. You can find further
information under 'Inernal notes'.
If the problem occurred at opening, reading, or writing of a file, then
the file name was '/te/mm/labels/0488_20091208_051317_EC008119_01_001.dd'.
(Further information about this file: " X ")Hi,
Also check the character set supported by the Printer. Printer configuration should also be checked on SAP side to determine character set and code page using SPAD.
Regards,
Nishad -
OPEN DATA SET change character "SPACE" to '..'
Hi!
I am loadind a XML file by OPEN DATA SET but it is changing from the "space" Hex = 20 to '..' Hex = "0D0C".
Do you know where is the problem?
Thanks.
ABAP -
>
OPEN DATASET VP_FILEXML FOR INPUT IN BINARY MODE.
OPEN DATASET VP_FILEXML FOR INPUT IN TEXT MODE ENCODING UTF-8.
REFRESH objbin.
DO.
READ DATASET VP_FILEXML INTO objbin.
IF sy-subrc EQ 0.
APPEND objbin.
CLEAR objbin.
ELSE.
APPEND objbin.
CLEAR objbin.
IF V_FLAG_EXIT = 'X'.
EXIT.
ENDIF.
V_FLAG_EXIT = 'X'.
ENDIF.
ENDDO.
CLOSE DATASET VP_FILEXML.Hi
Change TYPE X values to TYPE C in data declaration ans then call class CL_ABAP_CHAR_UTILITIES
For "0D0C" call class:
for 0D:
CLASS cl_abap_char_utilities DEFINITION LOAD.
DATA : C_CR TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>CR_LF.
for 0C:
CLASS cl_abap_char_utilities DEFINITION LOAD.
DATA : C_FORM TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>FORM_FEED.
check this link for more details.. [Link|http://help.sap.com/saphelp_nw04/helpdata/en/79/c554d9b3dc11d5993800508b6b8b11/frameset.htm]
you will get more information on hexa decimal related
Thanks and regards. -
Hello ,
I use the command OPEN DATA SET in order to upload file content from server ,
the problem is that i getting error :_No such file or directory ._
the file is exist in server I can see it when i put the path on windows start->run
and i give the permission for the folder to everyone .
1. My question is what i miss here
2. when i do little test and try to use GUI_UPLOAD i see the file content so i don't understand what is wrong here the file is not on my local PC
Regards
Jameshi James,
the parameter file_name receives the name of the file (ja, ja, ja.......)
here comes the explanation:
in the transaction FILE you must define phisical and logical path for a file:
for example:
MY_FILE => pointing to the folder /host/temp/
and here comes the call to the function in your program:
CALL FUNCTION 'FILE_GET_NAME_USING_PATH'
EXPORTING
client = sy-mandt
logical_path = l_path " the name of your logical path defined in trx FILE (MY_FILE)
file_name = p_filename " the name of the file you want to read (for example: file.txt )
IMPORTING
file_name_with_path = file_trg
EXCEPTIONS
path_not_found = 1
missing_parameter = 2
operating_system_not_found = 3
file_system_not_found = 4
OTHERS = 5.
in the variable file_trg you should get the value /host/temp/file.txt (from the example) to do the open dataset.
sorry about my english
regards, Sebastiá -
Difference between SXPG_COMMAND_EXECUTE and Open data set mechanism
Can you please help me to know the difference between moving a file using FM "SXPG_COMMAND_EXECUTE" and moving file using "open data set - transfer file- close data set" mechanism?
Through 'SXPG_COMMAND_EXECUTE' u can execute a External command (ie.. UNIX /Windows/OS/400) In ABAP programming..
for Conversion Of Aplication server File/Move the file from one directory to Other...
The Command must be present in SM69.
Using this function module'SXPG_COMMAND_EXECUTE' , you can check the authorization of a user to execute a particular external command and run the command:
With the arguments specified in ADDITIONAL_PARAMETERS
On the target host system defined by OPERATINGSYSTEM and TARGETSYSTEM
If an SAP profile parameter is inserted in the portion of the command stored in the database, then the value of this parameter is substituted into the command. If an SAP application server is active on the target system (TARGETSYSTEM), then the profile parameter values are read from the profile that is active on that system. No parameter substitution is made in ADDITIONAL_PARAMETERS.
After substitution, the command is checked for the presence of "dangerous" characters such as the semicolon ( ; ) on UNIX systems.
If an additional "security function module" is specified in the command definition, this function module is also called in the course of processingebenfalls. This function module can prevent execution of the command.
If the authorization checks complete successfully, the command is run on the target host system.
Through Open Data Set u can read and write the file in the same directory...
Thnaks,
SD
Moderator message: copy/paste without credit, points removed, please do not repeat!
http://www.google.de/search?hl=de&q=%22youcanchecktheauthorizationofauserto+execute%22&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=
http://www.google.de/search?hl=de&q=%22Aftersubstitution%2Cthecommandischeckedforthepresence%22&meta=&aq=f&aqi=&aql=&oq=&gs_rfai=
Edited by: Thomas Zloch on Aug 17, 2010 12:47 PM -
I am going to try asking this same question a different way as I have yet to find a working solution to my problem. I have a main report and then 8 sub reports. My main report has one data set and returns one row of data per account number. One
of the fields in the main data set is called AccountProf. My main report displays one page per Account number and then calls a different sub report based on that account's AccountProf value. The sub reports take in the account number as a parameter
and get multiple rows of data to display that accounts usage formatted differntly for each AccountProf (hence the 8 different sub report.
So far I can figure out how to do everything but setting the visibility property of each sub-reports when I have multiple accounts. If I use the following expression for the visibility property on each sub report, it makes all the applicable sub report
for all the accounts requested visible at once:
=IIF(Fields!AccountProf.Value= "USE_PLUS_DMD",False,True)
*The value in bold USE_PLUS_DMD is different for each sub report.
Here is a look at what the main report look like:
Here is the main reports data set:Hi JasonDWilson77,
According to your description, there is a main report and 8 sub reports in the report, you want to set visibility of sub reports, if no value is passed to the parameter of sub report, the sub report will not be displayed. If that is the case, please refer
to the following steps:
1. Create a new parameter named NewAccountNumber, set its data type the same as @AccountNumber, select Allow multiple values, set Visibility to be hidden, then set all available values to default values.
2. Right-click the first sub report and open Subreport Properties dialog box, click Parameters in left pane, set name to AccountNumber, then click (fx) button, type the expression like below:
=Parameters! NewAccountNumber(0)
3. Click Visibility in left pane, select Show or hide based on an expression, then click (fx) button and type the expression like below:
=IIF(InStr(Join(Parameters! AccountNumber.Value), Parameters!NewAccountNumber.Value(0))>0 , false,true)
4. Modify parameter of other sub reports like step2.
5. Set visibility of other sub reports like step3.
If you have any more questions, please feel free to ask.
Thanks,
Wendy Fu
If you have any feedback on our support, please click
here.
Wendy Fu
TechNet Community Support -
Using alternate rows with Spry Data Set
Can anyone provide more information on how to implement alternate row colors with a Spry Data Set? What I have done is:
Create spry data set using HTML page as the data set
The html page that displays the data set is: <div spry:region="equipment">
In the default.css page that is linked, I added the info in note #1 below
When the page displays, no colors appear. Tried changing the colors and still no luck. Is there another step to do?
Note #1:
within the default.css, the following are declared:
#equipment odd {
background-color: #CCC;
#equipment even {
background-color: “#F2F2F2;
Note #2:
Here is a link to see the actual pages referenced above.
Any ideas? Getting frustrated!! Thanks in advance for any advice.You are going to kick yourself, but, you haven't assigned any page element the ID #equipment. The region is called that but the table or the DIV does not have an idea and your selector matches nothing...
-
Is a database table required for temporary interfaces with flat file data set source ?
Folks, this is the situation I have in ODI 11.1.1.7
I have a temporary interface (yellow), called MJ_TEMP_INT, that pulls data from TWO data sets in the source into a temporary target (TEMP_TARG). The catch is one data set pulls from a from a table whereas the other data set pulls from a flat file. A union is done on the data sets.
I then create another interface, called MJ_INT, that uses the MJ_TEMP_INT as a source and the target is a real db. table called "REAL_TARGET"
Two questions:
When I execute my second interface (MJ_INT), I get a message "ORA-00942: table or view does not exist" because it is looking for a real db table TEMP_TARG. Why must I have one ? because I am pulling from a flat file ?
On my second interface (MJ_INT) when I look at the property sheet of my source interface MJ_TEMP_INT (yellow), the checkbox next to "Use temporary interface as Derived table" is DISABLED. Why ? Is is also because my temporary interface is pulling from a flat file ?
I have attached a file that shows a screen shot of my ODI studio.
By the way, IF my temporary interface source has only one data set pulling from a db. table into a temporary target table, say called MJ_TEMP2_TARG, and then when I use this temporary interface as a source to another other real db. target table (REAL2_TARGET), THEN, every thing works. ODI does not require me to have a real db. table MJ_TEMP2_TARG and the checkbox for "Use temporary interface as Derived table" is NOT DISABLED and my REAL2_TARGET table gets populated.
Thank you in advance.
M. Jamal.Thanks SH. I thought so.
Though I understand the reason to materialize the file in a staging area, but that almost defeats the purpose of having a temporary interface in this case if we have to save the data in a permanent db. table first. I assume the db. table sticks around and is not automatically dropped once the interface executing ends. If the db. table sticks around then I also must truncate it first before executing the temporary interface each time. Right ? -
Help with Spry Detail Regions, XML Data Sets, for IMG gallery
Hello,
I'm working on a site for a friend of mine, a photo gallery. You can see the gallery here, it's a temporary one I'm working on
http://www.emiliajozefa.com/a_index.html
Here are some important parts of my code:
//initially load these data sets. the function will be called by the links to update components later<script type="text/javascript">
var intNumPhoto = 0;
dsGallery = new Spry.Data.XMLDataSet("photofile.xml", "galleries/ride/photo");
dsNav = new Spry.Data.XMLDataSet("photofile.xml", "galleries/ride");
function updateSpryComponents(galleryDir){
alert("updating spry components for " + galleryDir);
intNumPhoto = 0;
dsGallery = Spry.Data.XMLDataSet("photofile.xml", "galleries/" + galleryDir + "/photo");
dsNav = Spry.Data.XMLDataSet("photofile.xml", "galleries/" + galleryDir);
dsGallery.setCurrentRow(intNumPhoto);
//document.getElementById('nav').innerHTML='<H1>'+enlarge.inp.value+'</H1>';
document.getElementById('nav').innerHTML=
"<span spry:detailregion = 'dsGallery'>
<a href = 'javascript:' onclick = 'if(intNumPhoto > 0){intNumPhoto -= 1}; dsGallery.setCurrentRow(intNumPhoto);'><</a> {@id} / </span>
<span spry:detailregion = 'dsNav'>{@numPhotos}
<a href = 'javascript:' onclick = 'if(intNumPhoto < ({@numPhotos} - 1)){intNumPhoto += 1; }; dsGallery.setCurrentRow(intNumPhoto);'>></a>
</span>";
</script> <--- later ----><!-- SIDEBAR NAV. When link i clicked, set DataSet to the location of the new gallery -->
<div id = "sideBarNav">
<a href = "javascript:" onclick ='updateSpryComponents('ride');">Tannersville</a>
<br />
<a href = "javascript:" onclick = "updateSpryComponents('dive');">Dive</a>
<br />
<a href = "javascript:" onclick = "updateSpryComponents('poland');">Poland</a>
<br />
<a href = "javascript:" onclick = "updateSpryComponents('alaska');">Alaska</a>
</div>
</div>
<div id = "content2">
<!-- PHOTO CONTAINER I think I somehow need to refresh this section of the code to reload new data-->
<div id = "fotoContainer" spry:detailregion="dsGallery"><img src = "photos/{@path}" width = "{@width}" height = "{@height}"/></div>
<!-- IMAGE NAVIGATION -->
<div id = "nav">
<span spry:detailregion = "dsGallery" id = "galSpan">
<a href = "javascript:" onclick = "if(intNumPhoto > 0){intNumPhoto -= 1}; dsGallery.setCurrentRow(intNumPhoto);"><</a> {@id} / </span>
<span spry:detailregion = "dsNav" id = "navSpan">{@numPhotos}
<a href = "javascript:" onclick = "if(intNumPhoto < ({@numPhotos} - 1)){intNumPhoto += 1; }; dsGallery.setCurrentRow(intNumPhoto);">></a>
</span>
</div>
You could view source there to get the code. Here is what I believe is my problem
I'm trying to automate the site so that when you click on one of the links on the left, without refreshing the page, the paths to the galleries xml file changes, and the spry Detail Regions (1 for the images, 1 for the navigation - left and right arrows). I think the problem is that once the link changes the set and calls my updateSpryComponenets() function, the detail regions need to be refreshed. I'm currently trying to solve this by dynamically rewriting the HTML thru .innterHTML, everytime I call updateSpryComponents().There may also be a problem in the Javascript function updateSpryControllers because if I put the alert after the spry calls, I never get the alert
Thanks in advance for any help!Update:
Ok, the first query on the Recent tab doesnt work for me because it wont show unless its already voted, and since these are supposed to be new blurts, that kind of breaks the whole site:
"SELECT Blurt.Id_blurt, Blurt.Name, Blurt.Location, Blurt.Blurt,Blurt.`Date`,DATE_FORMAT(Blurt.`Date`, '%l:%i %p on %M %D, %Y') as Date, ratings.rating_id, Avg(ratings.rating_value) as average_r FROM ratings Left Join Blurt On ratings.rating_id = Blurt.Id_blurt Group By Id_blurt ORDER BY Blurt.`Date` DESC";
So I replaced it with what I originally had.
"SELECT Blurt.Id_blurt, Blurt.Name, Blurt.Location, Blurt.Blurt,Blurt.`Date`,DATE_FORMAT(Blurt.`Date`, '%l:%i %p on %M %D, %Y') as Date FROM Blurt ORDER BY Blurt.`Date` DESC";
But this doesn't provide me with the initial average rating:( -
I've worked for over a month to study and resolve this but have not recognized the answer.
The web site intent is,
1. A single XML master data base contains all photographs for display. My XML data set does not have quotes.
2. Spry tabbed panels are used to select galleries (Spry regions) (e.g. roses, Big Sur Coast, etc) from the master data base. There are a dozen galleries.
3. Thumbnails of a gallery are displayed in the content panel.
4. Selecting a thumbnail displays a large view of the selected photo in a separate div (Spry detail region).
My studies of XML, Spry and Javascript has brought me to a stumbling block.
Solution 1. I tried to use a single name for the gallery filtered data sets. Each filter would be applied to a separate page of the tabbed panels. However, I was not successful in getting the thumbnails to change. (I was not able to get variables within XPath expressions to work.)
Solution 2. I tried to use unique names for the gallery filtered data sets. Again, each filter (data set) was applied to a separate page of the tabbed panels. However, I have not been successful in displaying the large view of a selected thumbnail because the Spry detail region specifies a single data base. I tried defining a common named data set from the filtered data set but this did not work (see dsrose of the second content panel).
My two questions are,
A. How can I get the thumbnails to change (i.e. update the data base and utilize it) for Solution 1.
B. Can I have a Spry detail region with multiple data sources?
My current source code follows.
I thank you for your consideration.
Scott
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
background-color: #FFF;
text-align: center;
margin: 0px;
padding: 0px;
#wrapper {
width: 85%;
margin-top: 10px;
margin-right: auto;
margin-bottom: 0px;
margin-left: auto;
border: 2px dashed #F0F;
#leftColumn {
float: left;
height: 700px;
width: 400px;
#header {
height: 90px;
font-size: 24px;
font-style: italic;
vertical-align: middle;
padding: 0px;
text-align: center;
float: right;
width: 50%;
border: 2px solid #F00;
#selectedPhoto {
height: 600px;
font-size: 24px;
font-style: italic;
vertical-align: middle;
padding: 0px;
text-align: center;
float: right;
margin-top: 135px;
width: 550px;
border: 2px solid #0F0;
-->
</style>
<script src="SpryAssets/xpath.js" type="text/javascript"></script>
<script src="SpryAssets/SpryData.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
var name;
var width;
var height;
var thumbname;
var thumbwidth;
var thumbheight;
var subject;
var description;
var thumbnail;
var dsphoto;
var dsphotodata;
//-->
</script>
<script type="text/javascript">
var dsdatanew = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsnew = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'new']");
var dsdatarose = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsrose = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'rose']");
var dsdatacallalily = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dscallalily = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'callalily']");
var dsdatablossom = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsblossom = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'blossom']");
var dsdatapgbeach = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dspgbeach = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'pgbeach']");
var dsdataMonterey = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsMonterey = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'Monterey']");
var dsdatabigsurcoast = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsbigsurcoast = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'bigsurcoast']");
var dsdataSalinas = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsSalinas = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'Salinas']");
var dsdataanimal = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsanimal = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'animal']");
var dsdatanight = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsnight = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'night']");
var dsdatachurch = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dschurch = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'church']");
var dsdataother = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "/gallery");
var dsother = new Spry.Data.XMLDataSet("EM_photo_no_Quotes.xml", "gallery/photos/photo [subject = 'other']");
function MM_callJS(jsStr) { //v2.0
return eval(jsStr)
</script>
<script src="SpryAssets/SpryTabbedPanels.js" type="text/javascript"></script>
<link href="SpryAssets/SpryTabbedPanels.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="wrapper">
<div id="leftColumn">
<div id="TabbedPanels1" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">Welcome</li>
<li class="TabbedPanelsTab" tabindex="0">Mechanical Engineering</li>
<li class="TabbedPanelsTab" tabindex="0">Photography</li>
</ul>
<div class="TabbedPanelsContentGroup">
<div class="TabbedPanelsContent">Welcome - Content 1</div>
<div class="TabbedPanelsContent">Mechanical Engineering - Content 2</div>
<div class="TabbedPanelsContent"> <!-- Photography - Content 3 -->
<div id="TabbedPanels2" class="TabbedPanels">
<ul class="TabbedPanelsTabGroup">
<li class="TabbedPanelsTab" tabindex="0">New</li>
<li class="TabbedPanelsTab" tabindex="0">Roses</li>
<li class="TabbedPanelsTab" tabindex="0">Calla Lilies</li>
<li class="TabbedPanelsTab" tabindex="0">Other Blossoms and Leaves</li>
<li class="TabbedPanelsTab" tabindex="0">Pacific Grove Beach</li>
<li class="TabbedPanelsTab" tabindex="0">Monterey Harbor and Beach</li>
<li class="TabbedPanelsTab" tabindex="0">Big Sur Coast</li>
<li class="TabbedPanelsTab" tabindex="0">Salinas Valley</li>
<li class="TabbedPanelsTab" tabindex="0">Animals</li>
<li class="TabbedPanelsTab" tabindex="0">Night</li>
<li class="TabbedPanelsTab" tabindex="0">Church</li>
<li class="TabbedPanelsTab" tabindex="0">Other</li>
</ul>
<div class="TabbedPanelsContentGroup-2">
<div class="TabbedPanelsContent-2">
<div spry:region="dsnew dsdatanew"> <img src="{dsdatanew::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsnew" onclick="dsnew.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsrose dsdatarose"> <img src="{dsdatarose::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsrose" onclick="window.dsphoto=dsrose; window.dsphotodata=dsdatarose;window.dsphoto.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dscallalily dsdatacallalily"> <img src="{dsdatacallalily::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dscallalily" onclick="dscallalily.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsblossom dsdatablossom"> <img src="{dsdatablossom::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsblossom" onclick="dsblossom.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dspgbeach dsdatapgbeach"> <img src="{dsdatapgbeach::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dspgbeach" onclick="dspgbeach.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsMonterey dsdataMonterey"> <img src="{dsdataMonterey::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsMonterey" onclick="dsMonterey.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsbigsurcoast dsdatabigsurcoast"> <img src="{dsdatabigsurcoast::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsbigsurcoast" onclick="dsbigsurcoast.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsSalinas dsdataSalinas"> <img src="{dsdataSalinas::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsSalinas" onclick="dsSalinas.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsanimal dsdataanimal"> <img src="{dsdataanimal::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsanimal" onclick="dsanimal.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsnight dsdatanight"> <img src="{dsdatanight::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsnight" onclick="dsnight.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dschurch dsdatachurch"> <img src="{dsdatachurch::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dschurch" onclick="dschurch.setCurrentRow('{ds_RowID}');" /></div>
</div>
<div class="TabbedPanelsContent-2">
<div spry:region="dsother dsdataother"> <img src="{dsdataother::thumbnail/@base}{thumbname}" width = {thumbwidth}px height = {thumbheight}px spry:repeat="dsother" onclick="dsother.setCurrentRow('{ds_RowID}');" /></div>
</div>
</div>
</div>
</div>
<!-- End "Photography Content 3" Tabbed Panels Content. -->
</div>
</div>
</div><!-- End div "leftColumn" -->
<div id="header">
<p>Envision Moore<br />
Mechanical Engineering and Photography<br />
Scott W. Moore </p>
</div><!-- End div "header". -->
<div id="selectedPhoto">
<div id="Selection" spry:detailregion = "dsphoto dsphotodata" >
<!-- Selected photographs are 400px tall. -->
<img src="Photo-Email/{name}" width = {width}px height = {height}px align="center" />
<br />
Description<br /><br />
<p> {dsphotodata::email/base}{description} </p>
</div>
</div> <!-- End div "selectedPhoto". -->
</div> <!-- End div "wrapper" -->
<script type="text/javascript">
<!--
var TabbedPanels1 = new Spry.Widget.TabbedPanels("TabbedPanels1");
var TabbedPanels2 = new Spry.Widget.TabbedPanels("TabbedPanels2");
//-->
</script>
</body>
</html>You do not need multiple data sets. Just the one dataset with all of your photos is sufficient. Then in each tab content you filter the data that you want shown using spry:test="'{subject'}=='roses'" or similar. You will have one spry:region and one spry:detailregion. All very simple
For master/detail see http://livedocs.adobe.com/en_US/Spry/1.4/help.html?content=WS9F9E1959-1FDF-4fa3-A9AC-20E92 8E07ED1.html
For spry:test see http://labs.adobe.com/technologies/spry/articles/data_api/apis/attributes.html
I hope this helps.
Ben
Maybe you are looking for
-
Hi, Can anyone give the procedure for DB Refresh pls? I couldnot find a clear explanation anywhere. Bipin
-
I cant uninstall my itunes off my computer, i have followed instructions and i still have errors, including error 2330 and redundance cyclic. the only software i have left is itunes.exe and file es.lproj which is located in the ituneshelpresources fo
-
Processing camera raw image files
This question was posted in response to the following article: http://help.adobe.com/en_US/photoshopelements/using/WS287f927bd30d4b1f5548d97812e28a69a90- 7fff.html
-
Networking and printer- making hard wire Hp Officejet wireless
Question- How does one make a hard wired printer wireless? I have 3 macs that are set up wirelessly for internet. 2 running 10.5 ( Mac book & Imac G5) and one running 10.4 ( Power Mac G4 ). I have a belkin wireless G router . I ran to walmart last ni
-
[Solved] Xfce4.8: App shortcuts not working after update
Hello, since pacman upgraded my Xfce to 4.8, my application shortcuts are no longer working. I especially need them to emulate a third button with Super_L and bind the netbook function keys for audio volume/muting to amixer calls. I already tried to