Report on Smartform..To make it efficient by removing SELECT ,ENDSELECT

To make a smartform report efficient by removing all occurs & modify internal table statements.
What i have been given to do is to select all data from respective tables put them into one internal table & then finally making tab2 or tab3 in the report to be the final table.I am not sure which among these two i can make final table.
THE CODE is:
REPORT  zgr_note.
TABLES : mseg,  "Document Segment : Material
         prps,  "WBS element master data
         proj,  "Project Definition
         mkpf,  "Header : Material Document
         lfa1,  "Vendor Master
         makt,  "Material Description
         aufk,  "Order Master Data
         afvc.  "Operation within an order
DATA : fname LIKE rs38l-name. "Name of Function Module
DATA: lf_fm_name            TYPE rs38l_fnam.
DATA: ls_control_param      TYPE ssfctrlop.
DATA: ls_composer_param     TYPE ssfcompop.
DATA: ls_recipient          TYPE swotobjid.
DATA: ls_sender             TYPE swotobjid.
DATA: lf_formname           TYPE tdsfname.
DATA: ls_addr_key           LIKE addr_key.
DATA: ls_dlv_land           LIKE vbrk-land1.
DATA: ls_job_info           TYPE ssfcrescl.
DATA: ls_otpt_opt           TYPE ssfcompop.
DATA: retcode TYPE sy-subrc.
DATA: cntr TYPE i VALUE 0.
DATA: cntr1 TYPE i .
DATA: number TYPE SSFCRESCL-SPOOLIDS. " OCCURS 0 WITH HEADER LINE.
DATA: TSP01 type TABLE OF TSP01_SP0R.
DATA : BEGIN OF itab OCCURS 0.
        INCLUDE STRUCTURE mseg.
DATA : post1 LIKE proj-post1,           "Project Definition
       pspnr LIKE proj-pspnr,           "WBS element
       maktx LIKE makt-maktx,           "Material Description
       name1 LIKE lfa1-name1,           "Name of the supplier
       budat LIKE mkpf-budat,           "Posting date
       bldat LIKE mkpf-bldat,           "Document date
       cpudt LIKE mkpf-cpudt,           "Date on which account document was entered
       psphi LIKE prps-psphi,           "Current number of project
       post2 LIKE prps-post1,           "WBS Definition
       xblnr LIKE mkpf-xblnr,           "Reference number( in this case challan number)
       bktxt LIKE mkpf-bktxt,           "Header text
       ort01 LIKE lfa1-ort01,           "vendor city
       ktext LIKE aufk-ktext,           "network description
       ltxa1 LIKE afvc-ltxa1.           "operation short text
DATA : END OF itab.
DATA : BEGIN OF jtab OCCURS 0.
        INCLUDE STRUCTURE itab.
DATA : END OF jtab.
DATA : itab1 LIKE itab OCCURS 0
      WITH HEADER LINE.
DATA :itab2 LIKE itab OCCURS 0
      WITH HEADER LINE.
DATA: itab3 LIKE itab OCCURS 0 WITH HEADER LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
SELECT-OPTIONS : gr_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : gr_note LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN SKIP.
SELECT-OPTIONS : mat_num FOR mseg-mblnr . "no INTERVALS.
PARAMETERS : mat_slip LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN SKIP.
CASE 'X'.
  WHEN gr_note.
    PERFORM gr_display.
  WHEN mat_slip.
    PERFORM mat_display.
ENDCASE.
FORM gr_display .
*break developer1.
  SELECT mblnr mjahr matnr werks lgort lifnr menge meins
         erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
  FROM mseg
  INTO CORRESPONDING FIELDS OF TABLE itab
   WHERE mblnr IN gr_num.
  LOOP AT itab.
    SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
      FROM prps WHERE pspnr = itab-ps_psp_pnr.
      itab-psphi = itab1-psphi.
      itab-pspnr = itab1-pspnr.
      itab-post2 = itab1-post1.
      MODIFY itab TRANSPORTING psphi pspnr post2.
    ENDSELECT.
    SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
    WHERE pspnr = itab-psphi.
      itab-post1 = itab2-post1.
      MODIFY itab TRANSPORTING post1.
    ENDSELECT.
    REFRESH itab2.
    SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
      WHERE matnr = itab-matnr.
      itab-maktx = itab2-maktx.
      MODIFY itab TRANSPORTING maktx.
    ENDSELECT.
    REFRESH itab2.
    SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
      WHERE lifnr = itab-lifnr.
      itab-name1 = itab2-name1.
      itab-ort01 = itab2-ort01.
      MODIFY itab TRANSPORTING name1 ort01.
    ENDSELECT.
    REFRESH itab2.
    SELECT budat bldat cpudt xblnr bktxt FROM mkpf
      INTO CORRESPONDING FIELDS OF itab2
      WHERE mblnr = itab-mblnr.
      itab-budat = itab2-budat.
      itab-bldat = itab2-bldat.
      itab-cpudt = itab2-cpudt.
      itab-xblnr = itab2-xblnr.
      itab-bktxt = itab2-bktxt.
      MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
    ENDSELECT.
  ENDLOOP.
  LOOP AT itab .
    ON CHANGE OF itab-mblnr.
      itab3-mblnr = itab-mblnr.
      itab3-post1 = itab-post1.
      itab3-post2 = itab-post2.
      itab3-name1 = itab-name1.
      itab3-ort01 = itab-ort01.
      itab3-bldat = itab-bldat.
      APPEND itab3.
      CLEAR itab3.
    ENDON.
  ENDLOOP.
  jtab-mblnr = itab-mblnr.
  jtab-xblnr = itab-xblnr.
  jtab-budat = itab-budat.
  jtab-bktxt = itab-bktxt.
  jtab-lsmng = itab-lsmng.
  jtab-erfmg = itab-erfmg.
  jtab-erfme = itab-erfme.
  jtab-matnr = itab-matnr.
  jtab-maktx = itab-maktx.
  jtab-zeile = itab-zeile.
  APPEND jtab.
  LOOP AT itab3.
    CLEAR: itab2,itab2[].
    LOOP AT itab WHERE mblnr = itab3-mblnr.
      MOVE-CORRESPONDING itab TO itab2.
      APPEND itab2.
      CLEAR itab2.
    ENDLOOP.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname                 = 'ZMM_GOODS_RECEIPT1'
  VARIANT                  = ' '
  DIRECT_CALL              = ' '
     IMPORTING
       fm_name                  = fname
EXCEPTIONS
  NO_FORM                  = 1
  NO_FUNCTION_MODULE       = 2
  OTHERS                   = 3
    IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
*break developer1.
PERFORM print_parameters.
    CALL FUNCTION fname
      EXPORTING
       control_parameters         = ls_control_param
       output_options             = ls_otpt_opt
       user_settings              = 'X'
       gr_mseg_hdr                = itab3
IMPORTING
  DOCUMENT_OUTPUT_INFO       =
  JOB_OUTPUT_INFO            =
  JOB_OUTPUT_OPTIONS         =
      TABLES
        gr_mseg                    = itab2
     EXCEPTIONS
       formatting_error           = 1
       internal_error             = 2
       send_error                 = 3
       user_canceled              = 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.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " GR_DISPLAY
FORM mat_display .
  SELECT mblnr mjahr matnr werks lgort lifnr menge meins
         erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
         mat_pspnr nplnr aufpl aplzl
  FROM mseg
  INTO CORRESPONDING FIELDS OF TABLE itab
   WHERE mblnr IN mat_num.
  LOOP AT itab.
    SELECT ltxa1 FROM afvc INTO CORRESPONDING FIELDS OF itab1
      WHERE aufpl = itab-aufpl AND aplzl = itab-aplzl.
      itab-ltxa1 = itab1-ltxa1.
      MODIFY itab TRANSPORTING ltxa1.
    ENDSELECT.
    REFRESH itab1.
    SELECT ktext FROM aufk INTO CORRESPONDING FIELDS OF itab1
      WHERE aufnr = itab-nplnr.
      itab-ktext = itab1-ktext.
      MODIFY itab TRANSPORTING ktext.
    ENDSELECT.
    REFRESH itab1.
    SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
      FROM prps WHERE pspnr = itab-mat_pspnr.
      itab-psphi = itab1-psphi.
      itab-pspnr = itab1-pspnr.
      itab-post2 = itab1-post1.
      MODIFY itab TRANSPORTING psphi pspnr post2.
    ENDSELECT.
    SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
    WHERE pspnr = itab-psphi.
      itab-post1 = itab2-post1.
      MODIFY itab TRANSPORTING post1.
    ENDSELECT.
    REFRESH itab2.
    SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
      WHERE matnr = itab-matnr.
      itab-maktx = itab2-maktx.
      MODIFY itab TRANSPORTING maktx.
    ENDSELECT.
    REFRESH itab2.
    SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
      WHERE lifnr = itab-lifnr.
      itab-name1 = itab2-name1.
      itab-ort01 = itab2-ort01.
      MODIFY itab TRANSPORTING name1 ort01.
    ENDSELECT.
    REFRESH itab2.
    SELECT budat bldat cpudt xblnr bktxt FROM mkpf
      INTO CORRESPONDING FIELDS OF itab2
      WHERE mblnr = itab-mblnr.
      itab-budat = itab2-budat.
      itab-bldat = itab2-bldat.
      itab-cpudt = itab2-cpudt.
      itab-xblnr = itab2-xblnr.
      itab-bktxt = itab2-bktxt.
     break developer1.
      MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
    ENDSELECT.
  ENDLOOP.
  LOOP AT itab.
    ON CHANGE OF itab-mblnr.
      itab3-mblnr = itab-mblnr.
      itab3-budat = itab-budat.
      itab3-bldat = itab-bldat.
      itab3-post1 = itab-post1.
      itab3-ktext = itab-ktext.
      APPEND itab3.
      CLEAR itab3.
    ENDON.
  ENDLOOP.
  LOOP AT itab3.
    CLEAR: itab2, itab2[].
    LOOP AT itab WHERE mblnr EQ itab3-mblnr.
      MOVE-CORRESPONDING itab TO itab2.
      APPEND itab2.
      CLEAR itab2.
    ENDLOOP.
    CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
      EXPORTING
        formname                 = 'ZMM_MAT_ISSUE_SLIP'
  VARIANT                  = ' '
  DIRECT_CALL              = ' '
     IMPORTING
       fm_name                  = fname
EXCEPTIONS
  NO_FORM                  = 1
  NO_FUNCTION_MODULE       = 2
  OTHERS                   = 3
    IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ls_control_param-no_dialog = 'X'.
*ls_control_param-preview = 'X'.
*ls_control_param-getotf = 'X'.
   ls_otpt_opt-tdnoprev = 'X'.
    ls_otpt_opt-tdnewid = ''.
    ls_otpt_opt-tdimmed = 'X'.
    ls_otpt_opt-tddest  = 'LP01'.
    CALL FUNCTION fname
      EXPORTING
    ARCHIVE_INDEX              =
    ARCHIVE_INDEX_TAB          =
    ARCHIVE_PARAMETERS         =
       control_parameters         = ls_control_param
    MAIL_APPL_OBJ              =
    MAIL_RECIPIENT             =
    MAIL_SENDER                =
       output_options             = ls_otpt_opt
       user_settings              = 'X'
        mat_slip_hdr               = itab3
   IMPORTING
    DOCUMENT_OUTPUT_INFO       =
     JOB_OUTPUT_INFO            = ls_job_info
    JOB_OUTPUT_OPTIONS         =
      TABLES
        mat_slip                   = itab2
  EXCEPTIONS
    FORMATTING_ERROR           = 1
    INTERNAL_ERROR             = 2
    SEND_ERROR                 = 3
    USER_CANCELED              = 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.
    ENDIF.
  ENDLOOP.
ENDFORM.

Hello Saswat,
There are a couple of criteria to make a SmartForm report efficient, i.e. to achieve a better performance:
- provide the best possible interface to the temporary FM (fname). When you do so, SmartForm itself has not to perform so much programming stuff by itself.
- The Driver program (zgr_note) has to be designed and coded well. What mean the performance of the Driver has to be optimized. In your case there should be a couple of performance improvements:
-- adjust your program declaration to the new ABAP syntax, i.e. don't use OCCURS clauses and do not use HEADER LINE. Instead, implement TYPES and use them. Here is an example:
TYPES: BEGIN OF ty_itab.
             INCLUDE STRUCTURE mseg.
TYPES: post1 LIKE proj-post1, "Project Definition
             pspnr LIKE proj-pspnr, "WBS element
             maktx LIKE makt-maktx, "Material Description
             name1 LIKE lfa1-name1, "Name of the supplier
             budat LIKE mkpf-budat, "Posting date
             bldat LIKE mkpf-bldat, "Document date
             cpudt LIKE mkpf-cpudt, "Date on which account document was entered
             psphi LIKE prps-psphi, "Current number of project
             post2 LIKE prps-post1, "WBS Definition
             xblnr LIKE mkpf-xblnr, "Reference number( in this case challan number)
             bktxt LIKE mkpf-bktxt, "Header text
             ort01 LIKE lfa1-ort01, "vendor city
             ktext LIKE aufk-ktext, "network description
             ltxa1 LIKE afvc-ltxa1, "operation short text
             END OF ty_itab.
* Declare your internal tables and the corresponding working structures
DATA: itab1 type standard table of ty_itab,
           itab2 type standard table of ty_itab,
           itab3 type standard table of ty_itab,
           jtab  type standard table of ty_itab,
          wa_itab1 type ty_itab,
          wa_itab2 type ty_itab,
          wa_itab3 type ty_itab,
          wa_jtab   type ty_itab.
-- Don't use
LOOP at itab.
  SELECT ...... WHERE pspnr = itab-ps_psp_pnr.
  ENDSELECT.
  SELECT * ...
  ENDSELECT
  SELECT * .....
  ENDSELECT
ENDLOOP.
Instead try to populate itab, itab1, itab2 each in ONE select statement using FOR ALL ENTRIES clause. After that you have to perform the LOOP runs using LOOP at itab INTO wa_itab. The more redundant SELECTs, the slower the program! When you perform a LOOP run, let say over itab1 and you need a corresponding record from table itab2 the use READ <itab> with key.
One additional, very important hint: Using internal tables w/o header line the CLEAR statement has another functionality than with HEADER LINE
CLEAR with HEADER LINE clears the HEADER line only
CLEAR w/o HEADER LINE clears the entire table. CLEAR does the same as REFRESH.
Another performance improvement is (when itab contains a lot of records) using FIELD-SYMBOLS.
A simple example is
FIELD-SYMBOLS: <fs> type itab.
LOOP at itab assigning <fs>.
  wa_itab3-post1 = <fs>-post1.
  wa_itab3-post2 = <fs>-post2.
  APPEND wa_itab3 to itab.
ENDLOOP.
In this case no data values have to be transfered to a working field. The values are taken directly from the current line of the internal table.
-- For better readability disign some events like START-OF-SELECTION, END-OF-SELECTION, INITIALIZATION and others.
Try to gather all in SmartForms needed fields and pop them into table itab3.
I hope this helps improving zgr_note's efficiency.
Good luck,
Heinz

Similar Messages

  • Report on smartform.Replace select endselect with something to efficient it

    To make a smartform report efficient by removing all occurs & modify internal table statements.
    What i have been given to do is to select all data from respective tables put them into one internal table & then finally making tab2 or tab3 in the report to be the final table.I am not sure which among these two i can make final table.
    THE CODE is:
    REPORT  zgr_note.
    TABLES : mseg,  "Document Segment : Material
             prps,  "WBS element master data
             proj,  "Project Definition
             mkpf,  "Header : Material Document
             lfa1,  "Vendor Master
             makt,  "Material Description
             aufk,  "Order Master Data
             afvc.  "Operation within an order
    DATA : fname LIKE rs38l-name. "Name of Function Module
    DATA: lf_fm_name            TYPE rs38l_fnam.
    DATA: ls_control_param      TYPE ssfctrlop.
    DATA: ls_composer_param     TYPE ssfcompop.
    DATA: ls_recipient          TYPE swotobjid.
    DATA: ls_sender             TYPE swotobjid.
    DATA: lf_formname           TYPE tdsfname.
    DATA: ls_addr_key           LIKE addr_key.
    DATA: ls_dlv_land           LIKE vbrk-land1.
    DATA: ls_job_info           TYPE ssfcrescl.
    DATA: ls_otpt_opt           TYPE ssfcompop.
    DATA: retcode TYPE sy-subrc.
    DATA: cntr TYPE i VALUE 0.
    DATA: cntr1 TYPE i .
    DATA: number TYPE SSFCRESCL-SPOOLIDS. " OCCURS 0 WITH HEADER LINE.
    DATA: TSP01 type TABLE OF TSP01_SP0R.
    DATA : BEGIN OF itab OCCURS 0.
            INCLUDE STRUCTURE mseg.
    DATA : post1 LIKE proj-post1,           "Project Definition
           pspnr LIKE proj-pspnr,           "WBS element
           maktx LIKE makt-maktx,           "Material Description
           name1 LIKE lfa1-name1,           "Name of the supplier
           budat LIKE mkpf-budat,           "Posting date
           bldat LIKE mkpf-bldat,           "Document date
           cpudt LIKE mkpf-cpudt,           "Date on which account document was entered
           psphi LIKE prps-psphi,           "Current number of project
           post2 LIKE prps-post1,           "WBS Definition
           xblnr LIKE mkpf-xblnr,           "Reference number( in this case challan number)
           bktxt LIKE mkpf-bktxt,           "Header text
           ort01 LIKE lfa1-ort01,           "vendor city
           ktext LIKE aufk-ktext,           "network description
           ltxa1 LIKE afvc-ltxa1.           "operation short text
    DATA : END OF itab.
    DATA : BEGIN OF jtab OCCURS 0.
            INCLUDE STRUCTURE itab.
    DATA : END OF jtab.
    DATA : itab1 LIKE itab OCCURS 0
          WITH HEADER LINE.
    DATA :itab2 LIKE itab OCCURS 0
          WITH HEADER LINE.
    DATA: itab3 LIKE itab OCCURS 0 WITH HEADER LINE.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text_001.
    SELECT-OPTIONS : gr_num FOR mseg-mblnr . "no INTERVALS.
    PARAMETERS : gr_note LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
    SELECTION-SCREEN SKIP.
    SELECT-OPTIONS : mat_num FOR mseg-mblnr . "no INTERVALS.
    PARAMETERS : mat_slip LIKE itemset-xopsel RADIOBUTTON GROUP rad1.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN SKIP.
    CASE 'X'.
      WHEN gr_note.
        PERFORM gr_display.
      WHEN mat_slip.
        PERFORM mat_display.
    ENDCASE.
    FORM gr_display .
    *break developer1.
      SELECT mblnr mjahr matnr werks lgort lifnr menge meins
             erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
      FROM mseg
      INTO CORRESPONDING FIELDS OF TABLE itab
       WHERE mblnr IN gr_num.
      LOOP AT itab.
        SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
          FROM prps WHERE pspnr = itab-ps_psp_pnr.
          itab-psphi = itab1-psphi.
          itab-pspnr = itab1-pspnr.
          itab-post2 = itab1-post1.
          MODIFY itab TRANSPORTING psphi pspnr post2.
        ENDSELECT.
        SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
        WHERE pspnr = itab-psphi.
          itab-post1 = itab2-post1.
          MODIFY itab TRANSPORTING post1.
        ENDSELECT.
        REFRESH itab2.
        SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
          WHERE matnr = itab-matnr.
          itab-maktx = itab2-maktx.
          MODIFY itab TRANSPORTING maktx.
        ENDSELECT.
        REFRESH itab2.
        SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
          WHERE lifnr = itab-lifnr.
          itab-name1 = itab2-name1.
          itab-ort01 = itab2-ort01.
          MODIFY itab TRANSPORTING name1 ort01.
        ENDSELECT.
        REFRESH itab2.
        SELECT budat bldat cpudt xblnr bktxt FROM mkpf
          INTO CORRESPONDING FIELDS OF itab2
          WHERE mblnr = itab-mblnr.
          itab-budat = itab2-budat.
          itab-bldat = itab2-bldat.
          itab-cpudt = itab2-cpudt.
          itab-xblnr = itab2-xblnr.
          itab-bktxt = itab2-bktxt.
          MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
        ENDSELECT.
      ENDLOOP.
      LOOP AT itab .
        ON CHANGE OF itab-mblnr.
          itab3-mblnr = itab-mblnr.
          itab3-post1 = itab-post1.
          itab3-post2 = itab-post2.
          itab3-name1 = itab-name1.
          itab3-ort01 = itab-ort01.
          itab3-bldat = itab-bldat.
          APPEND itab3.
          CLEAR itab3.
        ENDON.
      ENDLOOP.
      jtab-mblnr = itab-mblnr.
      jtab-xblnr = itab-xblnr.
      jtab-budat = itab-budat.
      jtab-bktxt = itab-bktxt.
      jtab-lsmng = itab-lsmng.
      jtab-erfmg = itab-erfmg.
      jtab-erfme = itab-erfme.
      jtab-matnr = itab-matnr.
      jtab-maktx = itab-maktx.
      jtab-zeile = itab-zeile.
      APPEND jtab.
      LOOP AT itab3.
        CLEAR: itab2,itab2[].
        LOOP AT itab WHERE mblnr = itab3-mblnr.
          MOVE-CORRESPONDING itab TO itab2.
          APPEND itab2.
          CLEAR itab2.
        ENDLOOP.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname                 = 'ZMM_GOODS_RECEIPT1'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
         IMPORTING
           fm_name                  = fname
    EXCEPTIONS
      NO_FORM                  = 1
      NO_FUNCTION_MODULE       = 2
      OTHERS                   = 3
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
    *break developer1.
    PERFORM print_parameters.
        CALL FUNCTION fname
          EXPORTING
           control_parameters         = ls_control_param
           output_options             = ls_otpt_opt
           user_settings              = 'X'
           gr_mseg_hdr                = itab3
    IMPORTING
      DOCUMENT_OUTPUT_INFO       =
      JOB_OUTPUT_INFO            =
      JOB_OUTPUT_OPTIONS         =
          TABLES
            gr_mseg                    = itab2
         EXCEPTIONS
           formatting_error           = 1
           internal_error             = 2
           send_error                 = 3
           user_canceled              = 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.
        ENDIF.
      ENDLOOP.
    ENDFORM.                    " GR_DISPLAY
    FORM mat_display .
      SELECT mblnr mjahr matnr werks lgort lifnr menge meins
             erfmg bpmng ebeln ps_psp_pnr zeile lsmng erfme
             mat_pspnr nplnr aufpl aplzl
      FROM mseg
      INTO CORRESPONDING FIELDS OF TABLE itab
       WHERE mblnr IN mat_num.
      LOOP AT itab.
        SELECT ltxa1 FROM afvc INTO CORRESPONDING FIELDS OF itab1
          WHERE aufpl = itab-aufpl AND aplzl = itab-aplzl.
          itab-ltxa1 = itab1-ltxa1.
          MODIFY itab TRANSPORTING ltxa1.
        ENDSELECT.
        REFRESH itab1.
        SELECT ktext FROM aufk INTO CORRESPONDING FIELDS OF itab1
          WHERE aufnr = itab-nplnr.
          itab-ktext = itab1-ktext.
          MODIFY itab TRANSPORTING ktext.
        ENDSELECT.
        REFRESH itab1.
        SELECT pspnr psphi post1 INTO CORRESPONDING FIELDS OF itab1
          FROM prps WHERE pspnr = itab-mat_pspnr.
          itab-psphi = itab1-psphi.
          itab-pspnr = itab1-pspnr.
          itab-post2 = itab1-post1.
          MODIFY itab TRANSPORTING psphi pspnr post2.
        ENDSELECT.
        SELECT post1 FROM proj INTO CORRESPONDING FIELDS OF itab2
        WHERE pspnr = itab-psphi.
          itab-post1 = itab2-post1.
          MODIFY itab TRANSPORTING post1.
        ENDSELECT.
        REFRESH itab2.
        SELECT maktx FROM makt INTO CORRESPONDING FIELDS OF itab2
          WHERE matnr = itab-matnr.
          itab-maktx = itab2-maktx.
          MODIFY itab TRANSPORTING maktx.
        ENDSELECT.
        REFRESH itab2.
        SELECT name1 ort01 FROM lfa1 INTO CORRESPONDING FIELDS OF itab2
          WHERE lifnr = itab-lifnr.
          itab-name1 = itab2-name1.
          itab-ort01 = itab2-ort01.
          MODIFY itab TRANSPORTING name1 ort01.
        ENDSELECT.
        REFRESH itab2.
        SELECT budat bldat cpudt xblnr bktxt FROM mkpf
          INTO CORRESPONDING FIELDS OF itab2
          WHERE mblnr = itab-mblnr.
          itab-budat = itab2-budat.
          itab-bldat = itab2-bldat.
          itab-cpudt = itab2-cpudt.
          itab-xblnr = itab2-xblnr.
          itab-bktxt = itab2-bktxt.
         break developer1.
          MODIFY itab TRANSPORTING budat bldat cpudt xblnr bktxt.
        ENDSELECT.
      ENDLOOP.
      LOOP AT itab.
        ON CHANGE OF itab-mblnr.
          itab3-mblnr = itab-mblnr.
          itab3-budat = itab-budat.
          itab3-bldat = itab-bldat.
          itab3-post1 = itab-post1.
          itab3-ktext = itab-ktext.
          APPEND itab3.
          CLEAR itab3.
        ENDON.
      ENDLOOP.
      LOOP AT itab3.
        CLEAR: itab2, itab2[].
        LOOP AT itab WHERE mblnr EQ itab3-mblnr.
          MOVE-CORRESPONDING itab TO itab2.
          APPEND itab2.
          CLEAR itab2.
        ENDLOOP.
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
          EXPORTING
            formname                 = 'ZMM_MAT_ISSUE_SLIP'
      VARIANT                  = ' '
      DIRECT_CALL              = ' '
         IMPORTING
           fm_name                  = fname
    EXCEPTIONS
      NO_FORM                  = 1
      NO_FUNCTION_MODULE       = 2
      OTHERS                   = 3
        IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
        ENDIF.
        ls_control_param-no_dialog = 'X'.
    *ls_control_param-preview = 'X'.
    *ls_control_param-getotf = 'X'.
       ls_otpt_opt-tdnoprev = 'X'.
        ls_otpt_opt-tdnewid = ''.
        ls_otpt_opt-tdimmed = 'X'.
        ls_otpt_opt-tddest  = 'LP01'.
        CALL FUNCTION fname
          EXPORTING
        ARCHIVE_INDEX              =
        ARCHIVE_INDEX_TAB          =
        ARCHIVE_PARAMETERS         =
           control_parameters         = ls_control_param
        MAIL_APPL_OBJ              =
        MAIL_RECIPIENT             =
        MAIL_SENDER                =
           output_options             = ls_otpt_opt
           user_settings              = 'X'
            mat_slip_hdr               = itab3
       IMPORTING
        DOCUMENT_OUTPUT_INFO       =
         JOB_OUTPUT_INFO            = ls_job_info
        JOB_OUTPUT_OPTIONS         =
          TABLES
            mat_slip                   = itab2
      EXCEPTIONS
        FORMATTING_ERROR           = 1
        INTERNAL_ERROR             = 2
        SEND_ERROR                 = 3
        USER_CANCELED              = 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.
        ENDIF.
      ENDLOOP.
    ENDFORM.

    Hi saswat mohanty ,
    Welcome to SDN.  Ya your program takes lot of time to give the output becauase of more select endselects in  a loop.
    You are hitting as  many times as the records in the ITAB.
    Instead use "for all entries"   clause for fetching the complete data from a table atonce.
    Example: your itab is there.
    Select *  from  xyz
       into table itab2
       for all entries in itab
    where  field1 eq itab-field1
        and field2 eq itab-field2.
    After fetching the data you can populate the final table by looping through ITAB  and itab2.
    This is best procedure to reduce the load on database.
    Implement this in your program to improve performance.
    REWARD POINTS IF USEFUL.
    Venkat.

  • How to bring output of report on smartform

    Hi experts,
                      I want to display output of one std report on the smartform. Output of the Z report is using large no. of write statements. I want to create one smartform which displays output same as the output of report.
    Is it possible to directly bring output of report on smartform??
    Please give me solution
    Thanks
    Sameer
    Edited by: sameer dhuke on Mar 17, 2008 6:53 AM

    Hi,
    To The best of my knowledge it is not possible directly.
    You have to design the smartform with all the fields in the report.
    And u have create the driver program for the Smartform or u can use the report as a driver program itself.
    Then Call the smartform using FM SSF_FUNCTION_MODULE_NAME to call the smartform.
    Regards
    Sandipan

  • How to call ALV Report and SMARTFORMS through Pushbutton

    hi,
    i have created a report.My task is to create two buttons:
    1)ALV Report.
    2)SMARTFROMS.
    Through these button i have to call ALV Report and SMARTFORMS. i have created both button and when i execute the program,
    it shows me the button but not working when i click on it.
    this is the coding i have used in my report for calling ALV Report.
    ''Tables sscrfields,
    DATA flag(1) Type c.
    selection-screen: begin of screen 500 AS WINDOW TITLE tit,
    BEGIN OF LINE,
    PUSHBUTTON 2(18) but1 USER-COMMAND cli1,
    end of line,
    BEGIN OF LINE,
    PUSHBUTTON 2(18) but2 USER-COMMAND cli2,
    end of line,
    end of screen 500.
    SET PF-STATUS 'STATUS_0100'.
    at selection-screen.
    case sscrfields.
    WHEN 'cli1'.
    flag = '1'.
    WHEN 'cli2'.
    flag = '2'.
    endcase.
    at USER-COMMAND.
    CASE SY-UCOMM.
    WHEN 'Detail'.
    select vbakkunnr VBakernam VBAkaudat vbakaufnr vbapKWMENG vbapmatnr vbap~ARKTX
    into but1
    from vbak inner join vbap
    on vbakvbeln = vbapvbeln.
    ENDSELECT.
    ENDCASE.
    START-OF-SELECTION.
    tit = 'Format'.
    but1 = 'ALV Report'.
    but2 = 'SMARTFORMS'.
    CALL SELECTION-SCREEN 500.
    and i also use in my report
    ''case sscrfields-ucomm'' and ''submit my_report'' but the still button doesn't show the result.
    Thanks & Regards,

    Hi,
             I  understood your requirement. What i found is,  you are creating screen 500 and call it after START-OF-SELECTION,
    at that time your AT USER-COMMAND doesn't work.
    So what i would suggest , u should create GUI STATUS named ' PFSTAT' 
    having one functional key 'EXIT'  that is standard u can just name it
    and
    other two u can assign in Freely assigned Function keys as 'BUT1' & 'BUT2'.  and than in Application Toolbar u jst have it in ITEM LIST by typing BUT1 and BUT2.
    For 'BUT1'  text would be 'ALV'  and 'BUT2' text would be 'SMARTFORMS'.
    Now in Program you can code,,,
    START-OF-SELECTION.
    SET PF-STATUS 'PFSTAT'.
    WRITE:/ 'TEST'.
    at user-command.
      case SY-UCOMM.
        WHEN 'BUT1'.
        WHEN 'BUT2'.
        WHEN 'EXIT'.
           LEAVE PROGRAM.
      endcase.
    In Program u set PF STATUS and use at user-command event, whcih gets triggered when u click on button . When u execute program you get two button in application tooldbar.
    Please do needful.
    Thanks,
    Saurin SHah

  • I use global structure in another report how can i make it local ?

    i use global structure in another report how can i make it local ?

    Naresh,
    Right click on structure and choose remove reference. Then you can add new fields, and this structure is local.
    Hope it Helps
    Srini

  • May I know some easy MM reports which I can make to practice it?

    Hi,
    Can anyone tell me some easy(not complex reports) so that I can practice.
    If possible, please mention tables which can be used in that reports and flow to make that report?
    Thanks & Regards,
    Gagan

    hi,
    check with ML85 tcode and program name RMSRVF00, which is relevant with service entry sheets.
    The following tabels are used in that report.
    ESSR_REL,ESSR,*ESSR,EKKO,EKPO,IMKPF,LFA1,EKET,T16SC,T160O,T160B,T16SA,TSTCT,T16FG,T16FH,T16FC,T16FT.
    cheers,
    sasi

  • What makes a field eligible for selecting data in a subreport?

    Hello,
    I have posted the following question to [StackOverflow|http://stackoverflow.com/questions/4366702/what-makes-a-field-eligible-for-selecting-data-in-a-subreport], but it has so far generated no replies. I decided to cross-post it here to see if I could get a better result.
    The TL;DR of it is that I have a field which I should be able to link in my Subreport, but it does not appear, and I was wondering what I need to do to make it appear.
    I have a Crystal Report I'm trying to recreate from scratch after an update from VS2008 to VS2010 caused it to implode horribly.
    I've gotten most of the way through, but I'm at a stage where I'm linking a field in the Main Report to a corresponding field in the Subreport.
    I have set up a bunch of Database fields in the Subreport, I've added the table I want, TableA, I've linked it up as everything was linked in the original report, with TableA at the head of the linking chain, so that all the rows I want can be derived from the result of that first query ( Actually, all of the links from the original Report were red in the Database Fields linking dialog, whereas mine are a bit rainbow-y. All the links in TableA are red, though... _ )
    In the "Subreport Links" dialog, I have an integer which I know is being pulled from the database correctly. I've added it in the "Fields to link to" listbox, and selected the newly-created parameter in the "Subreport parameter to use" combobox. I've ticked the "Select data in subreport based on field" checkbox.
    The database field I want to link to then does not appear in the second combobox.
    Another integer field in TableA shows up fine in the "Select data..." combobox (and is linked to another field being passed in), so I don't know why these two integer fields, which are equally important, and exist on the same level, on the same table, are being treated differently by the report designed.
    Any ideas what I'm doing wrong?

    Here is what I'd do:
    1) Download CR 2008 eval designer from here:
    http://www.sap.com/solutions/sapbusinessobjects/sme/freetrials/index.epx
    2) Try the linking in CR 2008 designer
    3) If it does not work there, ask why not in the [CR design|SAP Crystal Reports, version for Visual Studio; forum.
    4) If you get the linking working in the CR 200 designer, try to run the report in your VS2010 app (after ensuring the report woks as expected in CR 2008).
    5) If (4) above works out for you, please let me know as this may be an issue with CRVS2010.
    Ludek
    Follow us on Twitter http://twitter.com/SAPCRNetSup
    Got Enhancement ideas? Try the [SAP Idea Place|https://ideas.sap.com/community/products_and_solutions/crystalreports]

  • Hr report category remove selection fields..

    hi again All,
    I am facing a problem again. I tried generating a new category for my report. Now again after creating the category i do not see how to add fields and remove selection fields. I need only company code in my selection criteria and nothing else.
    can neone help me?
    suresh and sarika, i m expecting lot of you..
    please help..
    Reena..

    Reena,
    Pl follow these steps..
    1.In the Program Attributes, click on the pushbutton 'HR Report Category'.Click on the 'Create' icon in the pop-up window that comes up.
    2. On the next screen click on the 'New entries ' pushbutton in the menu bar.
    3. In the next screen enter a anme for the report Category, say, 0COMPCODE.
    4.On the same screen, you have a Navigation tree to the left hand side, click on the Allowable selection Criteria Node
    5. On the next screen, click on the New Entriees pushbutton
    6. On the next screen enter 'PNPBUKRS'.
    7. You will be prompted to tie it to a Transaport Request. Attach it to the sam ereq that your Report is tied to.
    8. SAVE it & attach it to your Program.
    ~Suresh

  • How to make a rectangle around activeDocument.selection?

    Hi,everyone!
    Recently I met a awful problem. I want to make a rectangle around current selection, but Not success.
    Could you help me or give some clues? Thanks!

    Try the following code.
    Cheers Daniel
    boundingbox();
    function boundingbox()
        // zet nulpunt linksonder
        app.activeDocument.pageOrigin = Array(0,0);
        app.activeDocument.rulerOrigin = Array(0,0);
        // set variable
        var breedte = app.activeDocument.width;
        var hoogte = app.activeDocument.height;
        var doc = app.activeDocument;
        // omrekenfactor
        var omf = 2.834645;
        // maak lijnkleur aan
        var newRGBColor = new RGBColor();
        newRGBColor.red = 0;
        newRGBColor.green = 255;
        newRGBColor.blue = 0;
        var black = new GrayColor();
        black.gray = 100;
        var layercheck = 0;
        var targetDocument = app.activeDocument;
        var layerCount = targetDocument.layers.length;
        var a=1;
        for (var i=1 ; i < 2; i++) {
            if (a==1){var txt = ''; var layname = 'BB';};
            var layercheck = 0;
            for (u = layerCount -1; u >= 0; u--){
                targetLayer = targetDocument.layers[u];
                var layerName = new String (targetLayer.name);
                    if (layerName.indexOf(layname) == 0){
                    targetDocument.layers[u].visible= true;
                    targetDocument.layers[u].locked= false;
                    var layercheck = 1;
            if (layercheck == 0){
                newlayer = documents[0].layers.add();
                newlayer.name = (layname);
                newlayer.color = newRGBColor;   
        alignType = 'top';
        mySelection = activeDocument.selection;
            if (mySelection.length > 0) {
                anchorBounds = getPosition(mySelection[0]);
                var artLayer = doc.layers['BB'].groupItems.add();
                targetDocument.layers['BB'].preview = false;
                var breedte = bnds[2] - bnds[0];
                var hoogte = bnds[1] - bnds[3];
                var rect = artLayer.pathItems.rectangle ((bnds[1] + (20*omf)),(bnds[0] - (20*omf)), breedte + (40*omf), hoogte + (40*omf));
                rect.filled = false;
                rect.stroked = false;
            } else {
                anchorBounds = getDocPosition();
                var doc = app.activeDocument;
                var omtrekartwork = app.activeDocument.geometricBounds;
                var leftartwork = omtrekartwork[0];
                var topartwork = omtrekartwork[1];
                var rightartwork = omtrekartwork[2];
                var bottomartwork = omtrekartwork[3];
                var origin = doc.rulerOrigin;
                var leftpage    = -origin[0];
                var toppage    = -origin[1] + doc.height;
                var rightpage    = -origin[0] + doc.width;
                var bottompage    = -origin[1];
                var centerxpage    = -origin[0] + doc.width/2;
                var centerypage    = -origin[1] + doc.height/2;
                var bleedleft = leftpage - leftartwork;
                var bleedright = rightartwork - rightpage;
                var bleedtop = topartwork - toppage;
                var bleedbottom = bottompage - bottomartwork;
                var breedteartwork = rightpage - leftpage;
                var hoogteartwork = toppage - bottompage;
                if (bleedleft <= 0 && bleedright <= 0 && bleedtop <= 0 && bleedbottom <=0){
                        var artLayer = doc.layers['BB'].groupItems.add();
                        targetDocument.layers['BB'].preview = false;
                        var rect = artLayer.pathItems.rectangle ((toppage + (20*omf)),(leftpage - (20*omf)), (breedteartwork + (40*omf)), (hoogteartwork + (40*omf)));
                        rect.filled = false;
                        rect.stroked = false;
                } else {
                        if    (bleedleft >= bleedright){
                            var bleedx = bleedleft + (20*omf);
                        } else {
                            var bleedx = bleedright + (20*omf);
                        if    (bleedbottom >= bleedtop){
                            var bleedy = bleedbottom + (20*omf);
                        } else {
                            var bleedy = bleedtop + (20*omf);
                        var artLayer = doc.layers['BB'].groupItems.add();
                        targetDocument.layers['BB'].preview = false;
                        var rect = artLayer.pathItems.rectangle ((toppage + bleedy),(leftpage - bleedx), (breedteartwork + (2*bleedx)), (hoogteartwork + (2*bleedy)));
                        rect.filled = false;
                        rect.stroked = false;
    function getBounds(obj) {
        var vbounds = new Array();
        if( obj.typename == 'TextFrame' ) {
            objcopy=obj.duplicate().createOutline();
            vbounds = objcopy.visibleBounds;
            objcopy.remove();
        else if( (obj.typename == 'GroupItem') && !obj.clipped ) {
            vbounds = getBounds(obj.pageItems[0]);
            for( n=1; n<obj.pageItems.length; n++  ) {
                vgb = getBounds(obj.pageItems[n]);
                if( vbounds[0] > vgb[0] ) vbounds[0] = vgb[0];
                if( vbounds[1] < vgb[1] ) vbounds[1] = vgb[1];
                if( vbounds[2] < vgb[2] ) vbounds[2] = vgb[2];
                if( vbounds[3] > vgb[3] ) vbounds[3] = vgb[3];
        else if( (obj.typename == 'GroupItem') && obj.clipped && (obj.pageItems.length > 1) ) {
            vbounds = getBounds(obj.pageItems[0]);
            cvgb = getBounds(obj.pageItems[1]);
            objleft = cvgb[0];
            objtop = cvgb[1];
            objright = cvgb[2];
            objbottom = cvgb[3];
            obj.pageItems[0].stroked ? so = 0 : so = 1;
            for( n=so; n<obj.pageItems.length; n++ ) {
                cvgb = getBounds(obj.pageItems[n]);
                if( objleft > cvgb[0] ) objleft = cvgb[0];
                if( objtop < cvgb[1] ) objtop = cvgb[1];
                if( objright < (cvgb[2]) ) objright = cvgb[2];
                if( objbottom > (cvgb[3]) ) objbottom = cvgb[3];
            if( vbounds[0] < objleft ) vbounds[0] = objleft;
            if( vbounds[1] > objtop ) vbounds[1] = objtop;
            if( vbounds[2] > objright ) vbounds[2] = objright;
            if( vbounds[3] < objbottom ) vbounds[3] = objbottom;
        else {
            vbounds = obj.visibleBounds;
        return vbounds;
    function getPosition(obj) {
        var b = new Array();
        bnds = getBounds(obj);
        b['left']    = bnds[0];
        b['top']    = bnds[1];
        b['right']    = bnds[2];
        b['bottom']    = bnds[3];
        b['centerX']    = bnds[0] + (bnds[2]-bnds[0])/2;
        b['centerY']    = bnds[1] - (bnds[1]-bnds[3])/2;
        return b;
    function getDocPosition() {
        var b = new Array();
        doc = activeDocument;
        var origin = doc.rulerOrigin;
        b['left']    = -origin[0];
        b['top']    = -origin[1] + doc.height;
        b['right']    = -origin[0] + doc.width;
        b['bottom']    = -origin[1];
        b['centerX']    = -origin[0] + doc.width/2;
        b['centerY']    = -origin[1] + doc.height/2;
        return b;

  • Should Apple make VoiceOver be permanently removable or disable-able?

    Should Apple make VoiceOver be permanently removable or disable-able? It is interfering with my games, I can no longer use F5 in my games because it just turns on voiceover every second time. Or Just make the command to turn it on editable?
    I'd really appreciate anyone with an apple support program asking them about this, because for some dumb reason they charge for support now.
    This is quite infuriating because there was no warning that I was going to lose my F5 button to something I don't need.

    P&#39;d Off Customer wrote:
    Should Apple make VoiceOver be permanently removable or disable-able? It is interfering with my games, I can no longer use F5 in my games because it just turns on voiceover every second time. Or Just make the command to turn it on editable?
    Do you mean like this?

  • I can't make a new level through selection (Adobe Photoshop Elements 9/Windows 7)

    It doesn't work: make a new level through selection. It shows every time an error message:It don't work because of a bug.

    dh991408 a écrit:
    Yes I want to create a new layer with a selection, but i doesn't work. An error messae says that there's a bug.
    *I serarch on this page, but the page told me that the forum is just in english
    Just in english? Not necessarily, you'll find discussions in German too, and forum users can use the 'translate' button on the right part of the bottom action bar.
    I can understand German and if it's a question I can't answer myself, I'll provide the translation if you wish for more competent users. I don't use the projects myself, as I prefer to work totally manually; if you state which kind of Elements project you are doing, others may better understand your problem.
    Generally, copying a selection on a new layer is done with the keyboard shortcut 'Ctrl J'.
    Can you give the exact error message in German?

  • Make  columns editable in a selected row of SALV

    Hello ,
    I have a requirement,im using SALV for listing  some records,On lead select of a row in SALV,i need to make two columns of that selected row editable and make the remaining in display mode.
    Useful answers would be rewarded.

    Hi Reema Elsy Easow,
                               Changing the type of a single field in a column is i think not possible. you can make whole column editable.
    I will suggest you a solution-- when a row is selected for editting , you can display that row  in another alv or table with single row and provide the record for editiing.
    Regards
    Sarath

  • [svn:fx-3.x] 5719: User-submitted patch to make keypad numbers work for selection in ComboBox

    Revision: 5719
    Author: [email protected]
    Date: 2009-03-28 18:50:54 -0700 (Sat, 28 Mar 2009)
    Log Message:
    User-submitted patch to make keypad numbers work for selection in ComboBox
    QE Notes: None
    Doc Notes: None
    Bugs: sdk-17276
    Reviewer: alex
    tests: checkintests
    Ticket Links:
    http://bugs.adobe.com/jira/browse/sdk-17276
    Patch submitter: Paul Taylor
    Community reviewer: Iwo Banas
    Ticket Links:
    http://bugs.adobe.com/jira/browse/sdk-17276
    http://bugs.adobe.com/jira/browse/sdk-17276
    Modified Paths:
    flex/sdk/branches/3.x/frameworks/projects/framework/src/mx/controls/listClasses/ListBase. as

    Hi,
    Found the reason for the problem. I think there's a bug in Flex that causes this. One of my formItem had an id="owner" and maybe flex has used this "owner" id somewhere internally. I changed the name and now all the comboboxes are working fine.

  • More efficient one. Select Db and then delete OR using DELETE stmt on DB

    Hi Gurus,
    Which is more efficient one.
    1. Select from Database on some condition.
         Then use delete statement on smae DB
    2. Delete from DB on some condition.

    The efficient method is
    SELECTING REQUIRED FIELDS AND THEN SORT THE TABLE AND PERFORM DELETE OPERATION LIKE
    1)  SELECT (REQFIELDS)
           FROM spfli
           INTO TABLE itab
           WHERE carrid = 'LH'.     
    2)   SORT itab BY cityto.
       3)  DELETE ADJACENT DUPLICATES  FROM itab COMPARING cityto.
    It has reasonable amount of completing the transaction

  • Does Classic report provide facility to make report total to be hyperlink

    Hi ,
    Does Classic report in apex provide provision to make the report-total row editable(hyperlinked) ? if so how to implement that.
    Acq     WIP     Closed
    Abc     1     3
    Def     2     5
    report total :     3     8
    Also is it possible to provide more than 2 downloadable options for classic report :
    For eg: now i have provided options to export a report to csv and excel format, along with these two can i provide pdf option!!!!
    Thanks in advance

    You didn't mention what version of Apex you are using. If you are on 4.0, this can be done easily using dynamic actions.
    Here is an example http://apex.oracle.com/pls/apex/f?p=24317:92
    One DA that looks like this http://screencast.com/t/djyAG6F4WFM
    The first TRUE action (fire on page load) changes the cursor style to indicate that the row is clickable http://screencast.com/t/Z3YIXo6c
    The second one actually does the redirect http://screencast.com/t/jHMtyDwK8lM in the example it just shows an alert message but you can modify it to pass in whatever parameters you need and construct the location.href to redirect to.

Maybe you are looking for

  • Trigger  alert  on basis of certain field in interface

    Dear Experts, This is a concern regarding sending Alert to users by mail in XI. IDOCs are reaching XI.The validations are not done in the Sender Side. For a certain field of the IDOC, the permitted values are 2/3/4 . If  user passes some other values

  • Getting "iPhone needs to cool down" warning while using Apple Maps

    I bought the iPhone 6 yesterday and today I used the Apple Maps navigation on it. Not 30 mins into the navigation I got following warning from the phone "iPhone needs to cool down". 30 minutes of GPS usage is not too much. This happened twice. Are ot

  • Trying to install Windows 7 Ultimate on a MAC Mini

    I originally installed Bootcamp from the MAC Min and downloaded all the tools associated with it.  I ended up having to xcopy the Windows 7 Install disk to a USB Flash drive.  When it came up it started to load and go to the point where it wanted me

  • Autonumber for several fixed rows

    I have often used the autonumber for dynamic row instances with no problem, but now have a problem where my table starts with 3 rows with different content, and the user needs to be able to add and delete rows, at the same time maintaining the autonu

  • PC and MAC

    i have previously purchased adobe cs6 for PC however i am looking to purchase a mac now, i was wondering if there was a way to convert my membership to the same cs6 version that is compatible with a mac?