Report without 'save as' menu and print control

I have to design a secure report. They want me to design it in a secure way so that people can see their special data on the screen but can not have a 'Save as' menu, and plus people can print their reports only three times in a month, no more.
I have had prepared it in mod/plsql but they wanted me to add these controls later. I think having these controls on html output is impossible, so back to Reports changed my mind.
I need help. Any idea ??
Thanks so much..

Impossible. You control what the server sends the client - a HTML page.
You cannot control what the client does with it. The client can be a number of different browsers. The client can be a tty telnet type client. The client can wear suspenders and a bowler hat. The client can wear ballet shoes and a tutu.
To think that one can control the client's management/control of that data (specifically web browser based) from a mod_plsql server side PL/SQL proc, is a fatal misunderstanding of the very fundamental principles of client-server.

Similar Messages

  • Mod/PlSql Report without 'save as' menu and with print control

    I have to design a secure report. They want me to design it in a secure way so that people can see their special data on the screen but can not have a 'Save as' menu, and plus people can print their reports only three times in a month, no more.
    I have had prepared it in mod/plsql but they wanted me to add these controls later. I think having these controls on html output is impossible, so back to Reports changed my mind.
    I need help. Any idea ??
    Thanks so much..

    Impossible. You control what the server sends the client - a HTML page.
    You cannot control what the client does with it. The client can be a number of different browsers. The client can be a tty telnet type client. The client can wear suspenders and a bowler hat. The client can wear ballet shoes and a tutu.
    To think that one can control the client's management/control of that data (specifically web browser based) from a mod_plsql server side PL/SQL proc, is a fatal misunderstanding of the very fundamental principles of client-server.

  • PDF and Print Control in Reports.

    Dear All,
    I want to set particular format for every report in PDF and Print control option like want to place client's logo in header and page number and date in fotter , how can i achive this,is there any way we can set it globally coz doing on every report is very time consuming.
    Regards,
    Tarang Jain

    You need Firebug....to know how your Dashboard works!!!!!!
    Check these 2 blogs and play.....
    http://oraclebizint.wordpress.com/2008/01/03/oracle-bi-ee-101332-customizing-download-links/
    http://oraclebizint.wordpress.com/2007/10/26/oracle-bi-ee-101332-styles-and-skins-firebug-to-your-rescue/
    i hope i helped....
    http://greekoraclebi.blogspot.com/
    Close the question.....and add a new thread...
    Give if you wish the appropriate points...

  • Linking to an OBIEE report without showing the user and password

    Hi!
    we are trying to access to an obiee report from an external portal (coded with php).
    The idea is that the user clicks on a link an gets the report in pdf format. For that purpose we are using this url:
    http://ttivobiee01:7001/analytics/saw.dll?Go&Path=/shared/Prueba/ogp_obi&Action=Print&P0=1&P1=eq&P2="Criteria"."Key"&P3=1402&NQuser=user&NQPassword=pass&format=pdf
    But this url is expossing OBIEE's user and password.
    In order to avoid this security issue we tried to do an wget of the url but it doesn't return the report. Instead we get an html, which seams to download the report chunk by chunk (using javaScript).
    The question is, is there any way that we could let our portal ussers access to an obbie report without expossing the user and password?
    I have been looking into oracle forums and have found this: OBIEE Go URL with password protected
    but we couldn't use this aproach due to security issues.
    Thanks!
    Nuria

    Hi!
    We have finally done this (and it works!)
    <?php
    $urlInforme='http://obi:7001/analytics/saw.dll?Go&Path=/shared/Prueba/ogp_obi&Action=Print&P0=1&P1=eq&P2="Criterios"."Clave oficial"&P3=1402&NQuser=user&NQPassword=pass&format=pdf';
    $ch = curl_init($urlInforme);
    $ckfile = tempnam ("./", "CURLCOOKIE");
    $ch = curl_init ($urlInforme);
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec ($ch);
    $ch = curl_init ($urlInforme);
    curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $fp = fopen("salida.pdf", "w");
    curl_setopt($ch, CURLOPT_FILE, $fp);
    $output = curl_exec ($ch);
    curl_close($ch);
    fclose($fp);

  • How we can print directly a report without preview to a local printer in web

    How we can print directly a report without preview to a local printer in web-environment, whith Oracle 9ias Report server release 6i patch 11.
    The user want to print ticket, built by Oracle Report, without previuw on PDF format, in a web three-tier environment.
    Please supply my documentation in detail and sample code if you can.

    Hello,
    Take a look to the example provided in the note :
    Note.253881.1 How to Create a Report With a Frame Only on the Last Page at a Fixed Position
    Regards

  • How do I print all the open tabs in Photoshop, without clicking on each and printing manually?

    How do I print all the open tabs in Photoshop, without clicking on each and printing manually?

    If the song are part of an album, the album should have a cloud icon for downloading it in full. If they are separate tracks (not in the same album) you will have to download individually.

  • What are the security settings to lock down a form with fillable fields and yet allow someone with Reader to fill in the fields as will as save the form and print it?

    What are the security settings to lock down a form with fillable fields and yet allow someone with Reader to fill in the fields as will as save the form and print it?

    You want to allow someone to open your document and fill out the form (in the fields you have created), but not change or edit the form, right? Here's the answer - assuming you are using Acrobat Pro and someone will be opening the PDF using at least Acrobat Reader 9 and up:
    Tools > Protection > Encrypt < Encrypt with Password
    Answer YES to change the security.
    A new window opens:
         Do NOT select Document Open (or that will require a password to open the document.)
         Select: Permissions (Check the box next to "Restrict editing and printing of the document.")
         Change the following 2 settings from the drop-down box:
              Printing Allowed: Select High Resolution
              Changes Allowed: Select Commenting, filling in form fields, and signing signature fields
              Leave selected: "Enable text access for screen reader devices for the visually impaired"
              Change Permissions Password (insert a strong password)
              Leave all other settings alone in "Options"
              OK - OK
              Re-enter the Permissions Password (the one you entered above)
              OK - OK
              Save the PDF to apply the security [notice that (SECURED0 will appear after the document title]

  • How do I select "Start" menu and choose "Control Panel"?

    I am working a a problem with the software on a Canon digital camera. My instructions from Canon Support are to:
    1.Select my START menu and choose CONTROL Panel.
    How do I do that? I have Mountain Lion OS.
    Thanks for any help.

    Those are instructions for Windows.  The equivalent action is to go to the Apple menu (left end of Menu Bar at the top of the screen) and select System Preferences.
    However, that may not help with your problem, because the steps after "1" will be different on a Mac (for whatever it's telling you do to for Windows).  It may help if you explained the actual problem "with the software on Canon digital camera."

  • Can i save my form and print it

    Can I save my form and print it

    Hi,
      You will not be able to save the FormsCentral online HTML form locally and print.  If you have Acrobat XI, you could create a PDF form via FormsCentral (Download as PDF) locally and open it via Adobe Acrobat/Reader and print it.  If you are using the online FormsCentral app, then you need a paid subscription to be able to create the PDF form.
    Hope this helps,
    Thanks,
    Lucia

  • Stupid PDF Question:  What's the difference between "Save As PDF" and Printing to a PDF "printer"?

    Is there a quality difference? 
    The "Save As" seems to run Distiller, but if I select "Print Document" and select "Adobe PDF" as the printer, it also seems to work OK, although I sometimes get a "Times" font not available, will be replaced by "Times New Roman", even though I can't find any reference to "times" in my book.
    Is there an advantage to running Distiller?
    Thanks!
    John
    www.controlgeek.net

    > Is there a quality difference?
    I'd expect them (as well as print-to-Ps & Distill) to be the same for the same settings.
    We print to Ps & Distill, for several reasons, not all of which may apply to you:
    More control. Distilling provides menus for everything Adobe lets you control in PDF gen. Print/SaveAs may not (and don't in our environment).
    Faster printing (Frame doesn't have to wait for the tps to pdf gen). You can get back to work while a long job renders.
    Unequal versions/different platforms. We author on FM8/Unix and Distill on Acro9/PC.
    > ... although I sometimes get a "Times" font not available, will be replaced by "Times New Roman", even though I can't find any reference to "times" in my book.
    Save the component files to MIF and examine with a plaintext editor. If not found, the font invocation is probably coming in with a text inset, or a graphic of type DWG, DXF, EPS, PDF or possibly SVG.

  • Reports output to a file and printer/previewer

    Group,
    It's been a while since I messed with reports, but I have been given the requirement to somehow save a copy of a generated report, so that it could be reprinted at some later date exactly as it was originally printed. My initial thought was to save a copy of the report in pdf format at the time it was printed. Uses a unique file name and record that in our app.
    My questions are is that technically possible, ie save to unique (to that printing) named pdf file at the same time it is printed? Or would they have to run the report twice? Once for the printer and once for the pdf file?
    Are there any better alternative methods?
    We are currently using forms/reports 6i, soon to be moving to 10g. But the requirement for this feature is required before we move to 10g. This would be required to work on several different reports.
    Thanks for any advice.
    --pat                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    6i client server. Calling reports from forms.
    So the save to file first then print with host is an option. Will that work with previewer?
    thanks.
    --pat                                                                                                                                                                                                                                                                                                                                       

  • Print Preview is missing from Firefox 6 on Mac OSX Lion in both File Menu and Print Dialog Box

    The question says it all really. Print Preview option is missing from both the File menu and from the Print dialog box when you select Print. I use Print Preview a lot to avoid wasting paper.
    A relevant issue might be that the Mac OSX app Preview is currently having trouble with various printers including my Xerox and so, temporarily, the default application for all Preview items is now Adobe Reader until Apple get their act together. Perhaps this is affecting things?
    Thanks for any help

    It's moved to the PDF dropdown, "Open PDF in Preview"

  • How can I just display the selected value of a listbox in a report without the reverse display and selection buttons?

    I am using a table which contains a text field with a lookup. I want to use the selected value of this field in a form which is acting as a selection form. No editing of the field's value is permitted. How do I just display the value of the field (which
    is considered a listbox on the form) without the reverse display and the up and down selection buttons. 
    I can provide an illustration of the condition I am trying to overcome, but this system doesn't accept it.
    Thank you for any suggestions or clarification you can provide.
    Marj Weir

    Thank you.  I'll try that approach. 
    I found, after much experimentation, on a similar problem involving a multiselect lookup field,  that if I make the field invisible, and add a  textbox that displays the fieldname plus .column(0), it displays all the selected entries. 
    E.g.: staff.Column(0)
    Staff is the field containing the last names of selected staff members. 
    staff.Value only shows the first name in the lookup list whether it is checked or not, so this is useless.
    staff.column(0), however, (inexplicably) shows all the selected names, e.g. Jones, Smith, Wiggins.
    Marj Weir
     

  • ALV report editable to enter text and print with including the text?

    Hi all,
    I have to display output of a  report in ALV format and i have to make two fileds can be editable to enter texts by user  and able to print the list with that texts .
    Is it possible using standard Function modules or I have to go for OO methods? Please give the sample code ?
    Thanks,
    Vamshi
    Edited by: VAMSHI KRISHNA on Oct 31, 2008 4:25 PM

    Hi Vamshi,
    Check out the Below sample code for the editable ALV.
    *& Report  Z7CC_OOPS_ALV_EDITABLE
    report  z7cc_oops_alv_editable.
    tables sflight.
    data: begin of gt_outtab occurs 0.     "with header line
            include structure sflight.
    data: celltab type lvc_t_styl.
    data: end of gt_outtab.
    data: gt_fieldcat type lvc_t_fcat.
    data: g_carrid like sflight-carrid,
          g_connid like sflight-connid.
    data: gs_spfli type spfli.                                  "#EC NEEDED
    data: g_custom_container type ref to cl_gui_custom_container.
    data:  g_container type scrfname value 'BCALV_GRID_DEMO_0100_CONT1'.
    data: g_grid  type ref to cl_gui_alv_grid.
    data: wa_outtab like gt_outtab.
    *       CLASS lcl_event_receiver DEFINITION
    class lcl_event_receiver definition.
      public section.
        types: begin of sflight_key.
        types:   carrid type s_carr_id.
        types:   connid type s_conn_id.
        types:   fldate type s_date.
        types: end of sflight_key.
        types: sflight_keys type standard table of sflight_key,
               sflight_table type standard table of sflight.
        methods:
          handle_data_changed
             for event data_changed of cl_gui_alv_grid
                 importing er_data_changed.
        methods:
          get_inserted_rows
               exporting
                  inserted_rows type sflight_keys.
        methods:
          get_deleted_rows
              exporting
                  deleted_rows type sflight_table.
        methods:
           refresh_delta_tables.
        methods: set_table_is_initial.
        methods: set_table_is_not_initial.
        methods: table_is_initial
                    returning value(initial) type char01.
      private section.
    * §4.Define internal tables to remember inserted and deleted lines,
    *    thus the delta between input made after the last saving.
        data: inserted_rows type sflight_keys,
              deleted_rows type standard table of sflight.
    * This flag is set if any error occured in one of the
    * following methods:
        data: error_in_data type c.
    * This flag signals that no records were read for the flight
    * table initially:
        data: initial_table type c.
    ** Methods to modularize event handler method HANDLE_DATA_CHANGED:
        methods:
          check_double_entries
             importing
                pr_data_changed type ref to cl_alv_changed_data_protocol.
        methods:
          update_delta_tables
             importing
                pr_data_changed type ref to cl_alv_changed_data_protocol.
        methods:
          perform_semantic_checks
             importing
                pr_data_changed type ref to cl_alv_changed_data_protocol.
        methods:
          get_cell_values
               importing
                 row_id          type int4
                 pr_data_changed type ref to cl_alv_changed_data_protocol
               exporting
                 key             type sflight_key.
    endclass.                    "lcl_event_receiver DEFINITION
    class lcl_event_receiver implementation.
      method handle_data_changed.
    *    data: ls_good type lvc_s_modi,
    *          l_price type s_price,
    *          ls_new type lvc_s_moce.
    *    error_in_data = space.
    ** check if there exist double entries
    *    call method check_double_entries( er_data_changed ).
    ** remember new or deleted lines for saving
    *    call method update_delta_tables( er_data_changed ).
    ** check mt_good_cells semantically
    *    call method perform_semantic_checks( er_data_changed ).
    *    if error_in_data = 'X'.
    *      call method er_data_changed->display_protocol.
    *    endif.
      endmethod.                    "handle_data_changed
      method check_double_entries.
        data: lt_good_cells type lvc_t_modi,
              ls_good type lvc_s_modi,
              ls_key type sflight_key,
              ls_sflight type sflight,
              l_flightdate like gt_outtab-fldate,
              l_del_row type lvc_s_moce,
              ls_outtab like line of gt_outtab,
              l_reentered type c.
    * §5.Check if there exist already other records with equal key fields.
    * Check if the user has entered two new lines where the key fields
    * are equal.
    * Since CARRID and CONNID are read only, the check is restrained
    * to field FLDATE.
    * Algorithm: Copy all entries in MT_GOOD_CELLS to a dummy table.
    *            During the copying procedure check if there exists
    *            already a line with the same Flight date.
    *    loop at pr_data_changed->mt_good_cells into ls_good.
    *      case ls_good-fieldname.
    *        when 'FLDATE'.
    *          call method pr_data_changed->get_cell_value
    *                      exporting
    *                            i_row_id = ls_good-row_id
    *                            i_fieldname = ls_good-fieldname
    *                      importing e_value = l_flightdate.
    *          read table lt_good_cells with key
    *                            value = l_flightdate
    *                            transporting no fields.
    *          if sy-subrc = 0.
    ** There exists already a line with the same flight date!
    *            call method pr_data_changed->add_protocol_entry
    *                         exporting
    *              i_msgid = '0K' i_msgno = '000'  i_msgty = 'E'
    *              i_msgv1 = text-m01
    *              i_fieldname = ls_good-fieldname
    *              i_row_id = ls_good-row_id.
    *            error_in_data = 'X'.
    *          else.
    *            ls_good-value = l_flightdate.
    *            append ls_good to lt_good_cells.
    *          endif.
    *      endcase.
    *    endloop.
    ** Check if any new entries already exist in gt_outtab.
    ** At this point, lt_good_cells contains only lines with
    ** FIELDNAME = 'FLDATE'.
    *    loop at lt_good_cells into ls_good.
    *      l_flightdate = ls_good-value.      "flightdate, see above
    *      read table gt_outtab with key
    *                    carrid = g_carrid
    *                    connid = g_connid
    *                    fldate = l_flightdate
    *                    transporting no fields.
    *      if sy-subrc = 0.
    ** Check if this entry was deleted before, i.e. it is in the table
    ** of deleted rows. If so, the entry does not exist twice. The user
    ** has deleted a line and then reentered it.
    *        l_reentered = space.
    *        loop at pr_data_changed->mt_deleted_rows into l_del_row.
    *          read table gt_outtab into ls_outtab index l_del_row-row_id.
    *          if sy-subrc ne 0.
    *            message i000(0k) with text-e01."Fehler beim Löschen
    *          elseif
    *                    ls_outtab-carrid eq g_carrid
    *                and ls_outtab-connid eq g_connid
    *                and ls_outtab-fldate eq ls_good-value.
    *            l_reentered = 'X'.
    *          endif.
    *        endloop.
    *        if l_reentered ne 'X'.
    *          call method pr_data_changed->add_protocol_entry
    *                         exporting
    *              i_msgid = '0K' i_msgno = '000'  i_msgty = 'E'
    *              i_msgv1 = text-m01
    *              i_fieldname = ls_good-fieldname
    *              i_row_id = ls_good-row_id.
    *          error_in_data = 'X'.
    *        endif.
    *      endif.
    *    endloop.
    ** In this demo report you may prevent the selection
    ** of data by setting parameter 'p_ds'.
    ** If this is done, the next check is required:
    *    if me->table_is_initial( ) eq 'X'.
    *      call method get_cell_values
    *           exporting row_id          = 1
    *                     pr_data_changed = pr_data_changed
    *           importing key             = ls_key.
    *      select single * from sflight into ls_sflight
    *                where carrid = ls_key-carrid
    *                  and connid = ls_key-connid
    *                  and fldate = ls_key-fldate.
    *      if sy-subrc = 0.
    *        call method pr_data_changed->add_protocol_entry
    *                       exporting
    *            i_msgid = '0K' i_msgno = '000'  i_msgty = 'E'
    *            i_msgv1 = text-m01
    *            i_fieldname = 'FLDATE'
    *            i_row_id = 1.
    *        error_in_data = 'X'.
    *      endif.
    ** flag initial_table is reset in method 'update_delta_tables'
    *    endif.
      endmethod.                    "check_double_entries
      method update_delta_tables.
    *    data: l_ins_row type lvc_s_moce,
    *          l_del_row type lvc_s_moce,
    *          ls_key type sflight_key,
    *          ls_sflight type sflight,
    *          ls_outtab like line of gt_outtab.
    ** §6.Use protocol attributes MT_DELETED_ROWS and MT_INSERTED_ROWS
    **    to remember which lines where deleted or inserted. Save this
    **    information in your internal tables.
    ** deleted rows
    *    loop at pr_data_changed->mt_deleted_rows into l_del_row.
    *      read table gt_outtab into ls_outtab index l_del_row-row_id.
    *      if sy-subrc ne 0.
    *        message i000(0k) with text-e01."Fehler beim Löschen
    *      else.
    *        move-corresponding ls_outtab to ls_sflight.
    ** It should no be possible that the same line is deleted twice,
    ** so we just add the new key line to 'deleted_rows'.
    *        append ls_sflight to deleted_rows.
    ** If this line was inserted just before it is deleted:
    *        delete me->inserted_rows
    *             where carrid = ls_outtab-carrid
    *             and   connid = ls_outtab-connid
    *             and   fldate = ls_outtab-fldate.
    *      endif.
    *    endloop.
    ** inserted rows
    ** At this point ALV has not added new lines
    ** to gt_outtab, so you can not access their values
    ** by reading gt_outtab.
    ** Table MT_GOOD_CELLS holds new values that can be
    ** referenced using the ROW_ID.
    *    if me->table_is_initial( ) eq 'X'.
    ** No flights were selected initially. This is the first new line.
    *      call method get_cell_values
    *            exporting row_id          = 1
    *                      pr_data_changed = pr_data_changed
    *            importing key             = ls_key.
    *      append ls_key to inserted_rows.
    *      call method me->set_table_is_not_initial.
    *    endif.
    *    loop at pr_data_changed->mt_inserted_rows into l_ins_row.
    *      call method get_cell_values
    *              exporting row_id          = l_ins_row-row_id
    *                        pr_data_changed = pr_data_changed
    *              importing key             = ls_key.
    **      READ TABLE gt_outtab INTO ls_outtab INDEX l_ins_row-row_id.
    ** Just insert the new row regardless if the input is wrong
    *      append ls_key to inserted_rows.
    *    endloop.
      endmethod.                    "update_delta_tables
      method get_cell_values.
    * get values of key cells of row ROW_ID
    ** CARRIER
    *    call method pr_data_changed->get_cell_value
    *          exporting
    *                 i_row_id    = row_id
    *                 i_fieldname = 'CARRID'
    *               importing
    *                 e_value = key-carrid.
    *    if sy-subrc ne 0.
    *      message i000(0k) with text-e02.  "Fehler beim Einfügen
    *    endif.
    ** CONNID
    *    call method pr_data_changed->get_cell_value
    *          exporting
    *                 i_row_id    = row_id
    *                 i_fieldname = 'CONNID'
    *               importing
    *                 e_value = key-connid.
    *    if sy-subrc ne 0.
    *      message i000(0k) with text-e02.  "Fehler beim Einfügen
    *    endif.
    ** FLDATE
    *    call method pr_data_changed->get_cell_value
    *          exporting
    *                 i_row_id    = row_id
    *                 i_fieldname = 'FLDATE'
    *               importing
    *                 e_value = key-fldate.
    *    if sy-subrc ne 0.
    *      message i000(0k) with text-e02.  "Fehler beim Einfügen
    *    endif.
      endmethod.                    "get_cell_values
      method perform_semantic_checks.
    *    data: ls_good type lvc_s_modi,
    *          l_planetype type s_planetye,
    *          l_seatsmax type s_seatsmax.
    *    loop at pr_data_changed->mt_good_cells into ls_good.
    *      case ls_good-fieldname.
    *        when 'PLANETYPE'.
    *          call method pr_data_changed->get_cell_value
    *             exporting
    *               i_row_id = ls_good-row_id
    *               i_fieldname = ls_good-fieldname
    *             importing
    *               e_value = l_planetype.
    *          select single seatsmax from saplane into l_seatsmax
    *                        where planetype = l_planetype.
    *          if sy-subrc ne 0.
    *            call method pr_data_changed->add_protocol_entry
    *                            exporting
    *                 i_msgid = '0K' i_msgno = '000'  i_msgty = 'E'
    *                 i_msgv1 = text-m02
    *                 i_fieldname = ls_good-fieldname
    *                 i_row_id = ls_good-row_id.
    *            error_in_data = 'X'.
    *          else.
    *            call method pr_data_changed->modify_cell
    *              exporting i_row_id    = ls_good-row_id
    *                        i_fieldname = 'SEATSMAX'
    *                        i_value     = l_seatsmax.
    *          endif.
    *      endcase.
    *    endloop.
      endmethod.                    "perform_semantic_checks
      method get_inserted_rows.
    *    inserted_rows = me->inserted_rows.
      endmethod.                    "get_inserted_rows
      method get_deleted_rows.
    *    deleted_rows = me->deleted_rows.
      endmethod.                    "get_deleted_rows
      method refresh_delta_tables.
    *    clear me->inserted_rows[].
    *    clear me->deleted_rows[].
      endmethod.                    "refresh_delta_tables
      method set_table_is_initial.
    *    initial_table = 'X'.
      endmethod.                    "set_table_is_initial
      method set_table_is_not_initial.
    *    initial_table = space.
      endmethod.                    "set_table_is_not_initial
      method table_is_initial.
    *    if initial_table = 'X'.
    *      initial = 'X'.
    *    else.
    *      initial = space.
    *    endif.
      endmethod.                    "table_is_initial
    endclass.                    "lcl_event_receiver IMPLEMENTATION
    data: g_verifier type ref to lcl_event_receiver.
    data: g_max type i value 100.
    data: gs_layout type lvc_s_layo.
    data: ok_code like sy-ucomm,
          save_ok like sy-ucomm.
    parameters: p_ds type c as checkbox.   "delete selection
    select-options s_carrid for sflight-carrid
                                no intervals no-extension default 'LH'.
    select-options s_connid for sflight-connid
                               no intervals no-extension default '0400'.
    start-of-selection.
      g_carrid = s_carrid-low.
      g_connid = s_connid-low.
    * first check airline and connection
      select single * from spfli into gs_spfli
                         where carrid = g_carrid
                         and connid = g_connid.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
    *       text
    module status_0100 output.
      set pf-status 'MAIN100'.
      set titlebar 'MAIN100'.
      if g_custom_container is initial.
        perform create_and_init_alv changing gt_outtab[]
                                             gt_fieldcat.
      endif.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Form  create_and_init_alv
    *       text
    *      <--P_GT_OUTTAB[]  text
    *      <--P_GT_FIELDCAT  text
    form create_and_init_alv changing pt_outtab like gt_outtab[]
                                      pt_fieldcat type lvc_t_fcat.
      data: lt_exclude type ui_functions.
      create object g_custom_container
             exporting container_name = g_container.
      create object g_grid
             exporting i_parent = g_custom_container.
    * Create Objekt to verify input values.
    * (This object is already needed in form SELECT_DATA).
      create object g_verifier.
    *  SET HANDLER g_verifier->handle_data_changed FOR g_grid.
      perform select_data changing pt_outtab[].
      perform build_fieldcat changing pt_fieldcat.
      perform exclude_tb_functions changing lt_exclude.
      gs_layout-stylefname = 'CELLTAB'.
      call method g_grid->set_table_for_first_display
        exporting
          it_toolbar_excluding = lt_exclude
          is_layout            = gs_layout
        changing
          it_fieldcatalog      = pt_fieldcat
          it_outtab            = pt_outtab[].
    * Set editable cells to ready for input initially
      call method g_grid->set_ready_for_input
        exporting
          i_ready_for_input = 1.
    endform.                    " create_and_init_alv
    *&      Form  select_data
    *       text
    *      <--P_GT_OUTTAB  text
    form select_data changing pt_outtab like gt_outtab[].
      data: lt_sflight type table of sflight,
            ls_sflight type sflight,
            ls_outtab like line of gt_outtab,
            l_index type i,
            ls_spfli type spfli,                                "#EC NEEDED
            lt_celltab type lvc_t_styl.
    * Check parameter 'p_ds'=>optionally select no data
      if p_ds is initial.
    * Select data from sflight
        select * from sflight into table lt_sflight up to g_max rows
                         where carrid = g_carrid
                           and connid = g_connid.
      endif.
      if sy-subrc ne 0 or not p_ds is initial.
    * no flights were found!
    * We provide some default values for the first line that is entered:
        ls_outtab-carrid = g_carrid.
        ls_outtab-connid = g_connid.
        case g_carrid.
          when 'LH'.
            ls_outtab-currency = 'DEM'.
          when others.
            ls_outtab-currency = 'US'.
        endcase.
        ls_outtab-seatsocc = 0.
        ls_outtab-paymentsum = 0.
    * set fields FLDATE, PRICE and PLANETYPE to editable
        perform fill_celltab using 'RW'
                             changing lt_celltab.
        insert lines of lt_celltab into table ls_outtab-celltab.
        append ls_outtab to pt_outtab.
    * Tell Verify-Objekt that the table was initial
        call method g_verifier->set_table_is_initial.
      else.
        call method g_verifier->set_table_is_not_initial.
    * move corresponding fields from lt_sflight to gt_outtab
        loop at lt_sflight into ls_sflight.
          move-corresponding ls_sflight to ls_outtab.
          append ls_outtab to pt_outtab.
        endloop.
    * §3.Set all cells of the table non-editable by using the style table.
        loop at pt_outtab into ls_outtab.
          l_index = sy-tabix.
          refresh lt_celltab.
          perform fill_celltab using 'RO'
                            changing lt_celltab.
    * Copy your celltab to the celltab of the current row of gt_outtab.
          insert lines of lt_celltab into table ls_outtab-celltab.
          modify pt_outtab from ls_outtab index l_index.
        endloop.
      endif.
    endform.                               " select_data
    *&      Form  fill_celltab
    *       text
    *      -->VALUE(P_MODE)  text
    *      -->PT_CELLTAB     text
    form fill_celltab using value(p_mode)
                      changing pt_celltab type lvc_t_styl.
      data: ls_celltab type lvc_s_styl,
            l_mode type raw4.
    * This forms sets the style of columns 'PRICE', FLDATE and PLANETYPE
    * editable
      if p_mode eq 'RW'.
        l_mode = cl_gui_alv_grid=>mc_style_enabled.
      else.                                "p_mode eq 'RO'
        l_mode = cl_gui_alv_grid=>mc_style_disabled.
      endif.
      ls_celltab-fieldname = 'FLDATE'.
      ls_celltab-style = l_mode.
      insert ls_celltab into table pt_celltab.
      ls_celltab-fieldname = 'PRICE'.
      ls_celltab-style = l_mode.
      insert ls_celltab into table pt_celltab.
      ls_celltab-fieldname = 'PLANETYPE'.
      ls_celltab-style = l_mode.
      insert ls_celltab into table pt_celltab.
    endform.                               " FILL_CELLTAB
    *&      Form  BUILD_FIELDCAT
    *       text
    *      <--P_GT_FIELDCAT  text
    form build_fieldcat changing pt_fieldcat type lvc_t_fcat.
      data ls_fcat type lvc_s_fcat.
      call function 'LVC_FIELDCATALOG_MERGE'
        exporting
          i_structure_name = 'SFLIGHT'
        changing
          ct_fieldcat      = pt_fieldcat.
      loop at pt_fieldcat into ls_fcat.
        if    ls_fcat-fieldname eq 'PRICE'
           or ls_fcat-fieldname eq 'PLANETYPE'
           or ls_fcat-fieldname eq 'FLDATE'.
    * §1.Set status of columns FLDATA, PRICE and PLANETYPE to editable.
    *    Since all cells are set to non-editable (see step 3) the cells
    *    of this columns will only be editable for new lines.
          ls_fcat-edit = 'X'.
    * Field 'checktable' is set to avoid shortdumps that are caused
    * by inconsistend data in check tables. You may comment this out
    * when the test data of the flight model is consistent in your system.
          ls_fcat-checktable = '!'.        "do not check foreign keys
          modify pt_fieldcat from ls_fcat.
        elseif ls_fcat-fieldname = 'CARRID'
           or ls_fcat-fieldname = 'CONNID'
           or ls_fcat-fieldname = 'CURRENCY'.
    * §2.Use field AUTO_VALUE of the fieldcatalog to preset values when new
    *    lines are added.
          ls_fcat-auto_value = 'X'.
          ls_fcat-checktable = '!'.   "do not check foreign key relations
          modify pt_fieldcat from ls_fcat.
        endif.
      endloop.
    endform.                    "build_fieldcat
    *&      Form  exclude_tb_functions
    *       text
    *      <--P_LT_EXCLUDE  text
    form exclude_tb_functions changing pt_exclude type ui_functions.
      data ls_exclude type ui_func.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
      append ls_exclude to pt_exclude.
      ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
      append ls_exclude to pt_exclude.
    endform.                               " EXCLUDE_TB_FUNCTIONS
    *&      Module  USER_COMMAND_0100  INPUT
    *       text
    module user_command_0100 input.
      save_ok = sy-ucomm.
      clear ok_code.
      case save_ok.
        when 'SAVE'.
    *      perform save_data.
        when 'BACK'.
    * §10.Unlock your database table.
    *      perform unlock_sflight.
          leave to screen 0.
        when 'EXIT'.
          perform exit_program.
        when 'ADD'.
          perform add_line_item.
        when others.
    *     do nothing
      endcase.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *       FORM EXIT_PROGRAM                                             *
    form exit_program.
      leave program.
    endform.                    "exit_program
    *&      Form  ADD_LINE_ITEM
    *       text
    *  -->  p1        text
    *  <--  p2        text
    form add_line_item .
    data: lt_rows type lvc_t_row.
    data: wa_rows type lvc_t_row with header line.
    data: tabix type sy-tabix.
    *&Find the  row ( index ) number
    call method g_grid->get_selected_rows
              importing et_index_rows = lt_rows.
    call method cl_gui_cfw=>flush.
    read table lt_rows into wa_rows index 1.
    tabix = wa_rows-index .
    insert gt_outtab  index tabix.
    *REFRESH_TABLE_DISPLAY
    call method g_grid->refresh_table_display
    *  EXPORTING
    *    IS_STABLE      =
    *    I_SOFT_REFRESH =
    *  EXCEPTIONS
    *    FINISHED       = 1
    *    others         = 2
    if sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    endform.                    " ADD_LINE_ITEM
    Thanks,
    Chidanand

  • WhenI print from firefox on a Mac everything comes out 50% too light, if I save the image and print from the desktop it looks fine. No problem either printing from FF with Win7. How do I fix FF on the Mac?

    My iMac runs bootcamp, so I have both OSX and win7 available. I run the latest Firefox on both as my primary browser. The printing looks like the ink is running low, but when the same image is printed from other desktop apps the printing looks fine.

    Hi, Jordan -
    Welcome to Apple's Discussions.
    If the original drive in the newer Mac is a Western Digital, its jumpers may be set to Single, which WD drives often use when there is only one device on the bus. When a second drive is added, the jumpers on the original must be reset to Master.
    OS 9's utility is named Drive Setup - you should find it in the Utilities folder on the hard drive. Run that. Select the added hard drive in the list, then select Mount Volume from the Functions menu.
    You can also check with that utility to see if the OS believes the drive has been set to automount at boot. Again, select the drive in the list. Then select Volume Settings from the Functions menu - there's a checkbox in that screen to set automount (for freshly initialized drives, that's turned on by default).
    Also, try running Disk First Aid (should also be in the Utilities folder). Let it have a look at the second drive, and repair anything it can.
    Apple System Profiler should report the format of all drives it sees. Is the format of the drive from the old Mac stated as Mac OS Standard, or as Mac OS Extended?

Maybe you are looking for

  • Cancel message is not shown in the page

    Hi All, This is my code for cancel in controller: if ( "Cancel".equals(pageContext.getParameter(EVENT_PARAM)) ) { am.invokeMethod("Cancel"); MessageToken[] token = {}; OAException confirmMessage = new OAException("MTH", "MTH_SETUP_CANCEL", token, OAE

  • Font Book is showing fonts in non-english characters

    Been installing my old fonts and the like to Font Book on Mountain Lion but I seem to be running into a small issue as I install. Besides the fact that I'm getting the 'A-image' for some of the fonts, a fair few of the fonts themselves also seem to b

  • Why budget check does not work with account assigment distrib. by quantity?

    Hi Gurus, I have an issue in the budget check for Purchase Order (PO). I'm using the FM B31I_ACC_PURCHASE_ORDER_CHECK. The case is next: 1 Item with 21 account assignment type AS and distribution by quantity: ASSET_NO QUANTITY 1           1 2        

  • ALV footer problem

    My ALV footer should contain at least 70 characters. I used the standard slis_listheader for my footer but the standard info (type slis_entry) is only 60 characters. Is there any way to build a footer without using the standard? Also, I don't want to

  • How do I get a servlet configured with init parameters

    When I try to add a set of <init-param> parameters to a servlet it seems           like the weblogic server is trying to load it as a bean, which since its not           a bean it can't do. I get the following error trace when I start the           s