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

  • Working with spry data sets

    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
    chaitanya

    Hi 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 needed

    Hi 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.

  • Open data set / code page

    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.

  • OPEN DATA SET PROBLEM

    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
    James

    hi 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

  • How to activate a different sub-report for each row in the data set as main report page breaks on each row of data in the main dataset

    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);'>&lt;</a> {@id} / </span>
             <span spry:detailregion = 'dsNav'>{@numPhotos}
             <a href = 'javascript:' onclick = 'if(intNumPhoto < ({@numPhotos} - 1)){intNumPhoto += 1; }; dsGallery.setCurrentRow(intNumPhoto);'>&gt;</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);">&lt;</a> {@id} / </span>
             <span spry:detailregion = "dsNav" id = "navSpan">{@numPhotos}
             <a href = "javascript:" onclick = "if(intNumPhoto < ({@numPhotos} - 1)){intNumPhoto += 1; }; dsGallery.setCurrentRow(intNumPhoto);">&gt;</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:(

  • Mulitple Data Sets

    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