Need help on smartform to print purchase order.

Hello all,
            I need your help. I am struck in the following problem. In transaction ME23N for displaying purchase order, you enter the
purchase order number and then you click on print preview and print off from the printer icon in the top of the preview. My client
wants me to remove the print button or print icon from the print preview of the purchase order. How can i accomplish this? Iam new to
abap, plz help me out... thanks in advance...
Is there any user exit/ field exit to accomplish this? Or is there any better alternative to this... please let me know at the earliest possible. thanks
Cheers,
Jwelit.

You need to change the driver program of the Smartform to restrict to only Print Preview.
If you are using any standard Output/message type than you need to copy that to your Z output type. Tcode NACE can help you. Than you need to copy the driver program attached to your output type.
Now, in your copied Z program, you need to set some parameter of the Smartform FM.
  DATA: LS_COMPOSER_PARAM     TYPE SSFCOMPOP.
  LS_COMPOSER_PARAM-TDNOPRINT = 'X'.
Than you need to pass this to your SMARTForm FM.
Like:
    CALL FUNCTION LF_FM_NAME
      EXPORTING
        ARCHIVE_INDEX      = TOA_DARA
        ARCHIVE_PARAMETERS = ARC_PARAMS
        CONTROL_PARAMETERS = LS_CONTROL_PARAM
        MAIL_RECIPIENT     = LS_RECIPIENT
        MAIL_SENDER        = LS_SENDER
        OUTPUT_OPTIONS     = LS_COMPOSER_PARAM   " <<
        ZXEKKO             = L_DOC-XEKKO  " user_settings = ' '
        ZXPEKKO            = L_DOC-XPEKKO
Regards,
Naimesh Patel

Similar Messages

  • Printing Purchase Order from ME9F using custom program and smartform

    I was able to use my custom program which calls a smartform to print purchase orders from transaction ME9F. I did this using transaction NACE.
    However, when I call "Output Message" from ME9F, the output always fails (shown by an 'X' icon after the checkbox). When I try to put back the standard program in NACE, it does not show an 'X' but a check which indicates that the printing was successful.
    Do you know why this happens? What did I miss?
    Here's my call to my smartform from my custom driver program:
        " Change Smartform ZP_MMSF_P01_PURCHASE_ORDER
        " to internal Function module name
        CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
            EXPORTING
                FORMNAME   = 'ZP_MMSF_P01_PURCHASE_ORDER'
            IMPORTING
                FM_NAME    = fmname
        wa_cparam-no_dialog = 'X'.
        wa_output-tddest = 'LOCL'. "or 'LP01'.  "Spool: Output device
        CALL FUNCTION fmname
            EXPORTING
                control_parameters         = wa_cparam
                output_options             = wa_output
                i_data                     = i_data
                wa_lookup                  = wa_data_lookup
                goods_amt                  = goods_amt
                discount_amt               = discount_amt
                vat                        = vat
                total_amt                  = total_amt
                total_amt_inwords          = total_amt_inwords

    Vijaya,
    I have this problem though,
    Whenever I try to provide values for CONTROL_PARAMETERS and OUTPUT_OPTIONS to the sapscript call in your code, the PO printing (even the preview) does not proceed. I do this because I wanted to suppress the printer dialog.
    here is a fragment of the code:
    " code I added
    LS_COMPOSER_PARAM-tddest = 'LOCL'. "or 'LP01'.  "Spool: Output device
    LS_COMPOSER_PARAM-bcs_langu = sy-langu.
    LS_CONTROL_PARAM-preview = 'X'.
    LS_CONTROL_PARAM-no_open = 'X'.
    LS_CONTROL_PARAM-no_close = 'X'.
    LS_CONTROL_PARAM-device = 'PRINTER'.
    LS_CONTROL_PARAM-no_dialog = 'X'.
    DO NAST_ANZAL TIMES.
    *--In case of repetition only one time archiving
    * if sy-index > 1 and nast-tdarmod = 3.
    * nast_tdarmod = nast-tdarmod.
    * nast-tdarmod = 1.
    * ls_composer_param-tdarmod = 1.
    * endif.
    IF SY-INDEX NE 1 AND REPEAT IS INITIAL.
    REPEAT = 'X'.
    ENDIF.
    CALL FUNCTION LF_FM_NAME
    EXPORTING
    ARCHIVE_INDEX = TOA_DARA
    ARCHIVE_PARAMETERS = ARC_PARAMS
    CONTROL_PARAMETERS = LS_CONTROL_PARAM
    MAIL_RECIPIENT = LS_RECIPIENT
    MAIL_SENDER = LS_SENDER
    OUTPUT_OPTIONS = LS_COMPOSER_PARAM
    USER_SETTINGS = SPACE
    IS_NAST = NAST
    IS_REPEAT = REPEAT
    I tried to trace it to the function module generated by smartform. The error propagates this way: From the function module, there is a call to function SSFCOMP_PROCESS_DOCUMENT. Then inside that function, there is a perform operation to tr_ssfcomp_process_doc
    perform tr_ssfcomp_process_doc using startpage docstruc
                                           header.
    Inside that form, it calls the macro tr_active which checks the value of ssfcstat-trlevel (tracelevel) against c_trlevel_document. In the macro, if ssfcstat-trlevel is less than c_trlevel_document, the smartform will fail. c_trlevel_document is 15 and ssfcstat-trlevel is 0, and so the smartform fails.
    (you can see the macro tr_active in include LSTXBCMAC and the form tr_ssfcomp_process_doc is in the include LSTXBCFTR)
    When I do not put values in CONTROL_PARAMETERS and OUTPUT_OPTIONS, everything is ok.
    Do you know why this happens?
    Thanks in advance!
    Edit: I have found out about transaction SFTRACE, but this is disabled.
    Kyle

  • Printed Purchase Order Report Custom version FAX enabling

    Hi All,
    We customized Printed Purchase Order Report(Landscape) 'POXPRPOL' and is runnig fine. Our client want FAX enabled to the output of custom report.
    Is there any option like print option for this. Or do we need to write and code for this.
    Please help.
    Thanks

    Hi;
    Please see below which could be helpful for your issue:
    http://blogs.oracle.com/xmlpublisher/entry/faxing_from_ebs
    http://www.strsoftware.com/blog/oracle-ebs-r12-1-3-submit-request-delivery-options-button-fax-4-of-6/
    Also see <a href=https://forums.oracle.com/forums/search.jspa?threadID=&q=fax&objID=c3&dateRange=all&userID=&numResults=15
    this search</a>Regard
    Helios

  • Issues with printing purchase order

    Dear friends,
    I'm having some issues with printing purchase orders.
    Normally when I create a purchase order via ME21N and then when I save the purchase order it then gets automatically printed.
    Suddenly it is not anymore working. I have created a purchase order this morning and it did not get printed. I get the message "frontend is not available"when i check the spool in SP01
    The funny think is if i call up the spool nr via SP01and then do a reprint then i'm able to reprint.
    What can be possibly the issue that I can't print the purchase order when I create the purchase order via ME21 when I save the purchase order? Can you help me with any guide on where I need to check why the PO is not printing immediatelly when i create the PO via ME21N?
    kind regards,
    Camilla

    hello all,
    thanks so far for your reply.
    i have checked today my user settings and that shows that my prints should go to LOCL (local default printer)
    The output conditions fpr purchase order have also LOCL (local printer)
    The weird thing is that I can print other reports to the default printer without any issues. The issue arise when I create a purchase order via ME21N. Normally when I save the PO it automatically prints. So no manual print instructions are required from my side. Because if I give manual instructions then I'm able to print the purchase order.
    Is it possible that the automatic printing is switched off and that it only prints when I hit manually the print button?
    Is the automatic printing something that is maintained in SPAD?
    kind regards and thanks for your help sofar

  • Customizing 'Print Purchase Order' Report

    Hi All,
    We need to customize the 'Print Purchase Orders' report, for communicating the PO to supplier. But the Fax commnds, and the output format we have to change accordingly. Also we need to move the generated output file to another directory.
    Please let me know the recommended customizing procedure for the above.
    Thans,
    Gowri.

    Hi,
    If you want to modify Print PO Report (POXPOPDF), refer to the following document.
    Note: 305307.1 - How To Modify Print PO Report POXPOPDF With Custom Template
    https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=305307.1
    Regards,
    Hussein

  • Customize printed purchase order report

    Hi all
    i need to customize Printed purchase order report
    i need to add supplier item number to printed purchase order report
    where(group) i need to add item number i think it g_lines right?
    item number is sengment from tml_system_items_b is it correct
    ple reply it is urgent
    ashok

    Ashok,
    Try to get a sample and understand the concern from your users. See if that is already customized to not show the supplier item number (as far as I remember I don't think there are any conditions in the standard report that qulify the printing of the supplier item number, it should print as long as it is entered in the supplier item number field in the PO lines). So see where your users are entering this in PO lines.
    Yes it is vendor_product_num in PO lines table.
    Thanks
    Nagamohan

  • Printed Purchase order Report

    Hi all
    i need to customize Printed purchase order report(Lanadsacp)
    i need to add supplier item number to printed purchase order report
    where(group) i need to add item number i think it is g_lines right?
    item number is sengment1 from tml_system_items_b is it correct?
    ple reply it is urgent
    ashok

    Ashok,
    Try to get a sample and understand the concern from your users. See if that is already customized to not show the supplier item number (as far as I remember I don't think there are any conditions in the standard report that qulify the printing of the supplier item number, it should print as long as it is entered in the supplier item number field in the PO lines). So see where your users are entering this in PO lines.
    Yes it is vendor_product_num in PO lines table.
    Thanks
    Nagamohan

  • Printed Purchase Order Report gives no output

    hello,
    The standard report "Printed Purchase Order Report(Landscape)" gives a a zero size output file for a certain po . Although i have checked the tables PO_HEADERS_ALL and PO_LINES_ALL and that purchase order has all the data entered in the tables above.
    what can the problem possibbly be and how can i fix it?
    please help...

    hello,
    as an update i found that the specified purchase orders has 9 lines entered and in PO_LINES_ALL only 5 are there !!!

  • Customizing Printed Purchase Order (XML) in R12

    Hi,
    I need to customize the Printed Purchase Order (which is sent to Supplier).
    I see the existing report (Executable: XDODTEXE Method: Java Concurrent Program) , I tried to download the template with data definition code=POXPRPOL_XML
    but i dont see any tempate for that.
    Conc Prog:Printed Purchase Order Report(Landscape) (XML)
    Short name:POXPRPOL_XML
    Could you let me know how to approach for customizing the report.
    Thanks.

    855902 wrote:
    Hi,
    I need to customize the Printed Purchase Order (which is sent to Supplier).
    I see the existing report (Executable: XDODTEXE Method: Java Concurrent Program) , I tried to download the template with data definition code=POXPRPOL_XML
    but i dont see any tempate for that.
    Conc Prog:Printed Purchase Order Report(Landscape) (XML)
    Short name:POXPRPOL_XML
    Could you let me know how to approach for customizing the report.
    Thanks.Yes..there is no xml associated with it..I have seen it even in my instance..better to log a SR with oracle to get the data template...even when you submit the program it will end up saying no data template...program will be errored out..because there is no template available to pick that
    All Parameters: P_REPORT_TYPE=R:P_AGENT_ID=:P_PO_NUM_FROM=:P_PO_NUM_TO=:P_RELEASE_NUM_FROM=:P_RELEASE_NUM_TO=:P_DATE_FROM=:P_DATE_TO=:P_APPROVED_FLAG=:P_TEST_FLAG=:P_PRINT_RELEASES=Y:P_SORTBY=:P_USER_ID=1013895:P_QTY_PRECISION=2:P_FAX_ENABLE=:P_FAX_NUM=:P_CANCEL_LINE=Y:P_BLANKET_LINES=N:DebugFlag=N
    Data Template Code: POXPRPOL_XML
    Data Template Application Short Name: PO
    Debug Flag: N
    {P_RELEASE_NUM_FROM=, P_DATE_FROM=, P_CANCEL_LINE=Y, P_FAX_NUM=, P_SORTBY=, P_RELEASE_NUM_TO=, P_PO_NUM_TO=, P_REPORT_TYPE=R, P_USER_ID=1013895, P_AGENT_ID=, P_APPROVED_FLAG=, P_PO_NUM_FROM=, P_BLANKET_LINES=N, P_TEST_FLAG=, P_FAX_ENABLE=, P_QTY_PRECISION=2, P_DATE_TO=, P_PRINT_RELEASES=Y}
    Calling XDO Data Engine...
    java.lang.NullPointerException
         at oracle.apps.xdo.oa.util.DataTemplate.getDataTemplate(DataTemplate.java:379)
         at oracle.apps.xdo.oa.util.DataTemplate.<init>(DataTemplate.java:226)
         at oracle.apps.xdo.oa.cp.JCP4XDODataEngine.runProgram(JCP4XDODataEngine.java:283)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:157)
    HTH
    Mahendra

  • Printing purchase order 'in release' !

    Hello,
    we need to add a second printing document for purchase order. I think it's possible with a new message. But i've read that message works only if the purchase order is not 'in realease'.
    Is it possible to print purchase order document when the purchase is 'in release' ?
    Thank's

    hi,
    AS per my knowledge it shd be possible after full release only...because then only it make sense of the printing and sending to the vendor...
    If it would be possible before or within release only, and if the changes are made in between while the release by any officer, then it'll not get reflected....
    Regards
    Priyanka.P

  • Any standard SMARTFORMS available for purchase order, sales order, invoice

    Hi,
    Any standard SMARTFORMS available for purchase order, sales order, invoice ?
    RR.

    Hi Rama,
    Goto NACE tcode-> choose the application u want( like billing for invoice, PO)->output type->output type->processing routineon left side
    Here u will find the standard program name and smartform .
    Hope it helps.
    Regards,
    Sonika

  • HT4199 I need help with getting my printer to print, PLEASE.

    I need help with getting my printer to print, Please.

    What have you done so far?
    I suggest you connect it via a usb  cable first.  Once you get the printer working, move to wifi.  You will have to use an existing printer usb cable or purchase a cable.  Be sure to get the correct cable.  Ask for help.
    The warrenty indicates there is phone support.  Give HP a call.
    Warranty
    One-year limited hardware warranty; 24-hour, 7 days a week phone support
    Robert

  • Printed Purchase Order Report  R12

    Hi,
    I'm looking for Oracle Printed Purchase Order Report rdf file POXPRPOL
    Could you let me know the path to get this rdf.
    Thanks.

    got it.

  • Mass display or print Purchase Order History

    Instead of checking your Purchase Order History one at a time, you can now mass display or print them with this customized abap report.
    Mass display or print Purchase Order History
    You can request report by :
    1.  Change date
    2.  User Name
    3.  Purchase Order Number
    4.  Vendor Code
    Written by : SAP Basis, ABAP Programming and Other IMG Stuff
                 http://www.sap-img.com
    REPORT ZPOCHANGE LINE-SIZE 132 NO STANDARD PAGE HEADING
                     LINE-COUNT 065(001)
                     MESSAGE-ID VR.
    TABLES: DD04T,
            CDHDR,
            CDPOS,
            DD03L,
            DD41V,
            T685T,
            VBPA,
            TPART,
            KONVC,
            EKKO.
    SELECT-OPTIONS: XUDATE FOR CDHDR-UDATE,
                    XNAME  FOR CDHDR-USERNAME,
                    XEBELN FOR EKKO-EBELN,
                    XLIFNR FOR EKKO-LIFNR.
    SELECTION-SCREEN SKIP.
    TEXT-001 - Sorting Sequence
    SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001.
    PARAMETERS: SUDATE RADIOBUTTON GROUP R1,
                SNAME  RADIOBUTTON GROUP R1,
                SOBID  RADIOBUTTON GROUP R1.
    SELECTION-SCREEN END OF BLOCK BLK1.
    DATA: WFLAG,
          WCHANGENR LIKE CDHDR-CHANGENR.
    DATA: INDTEXT(60) TYPE C.
    DATA: BEGIN OF ICDHDR OCCURS 50.
            INCLUDE STRUCTURE CDHDR.
    DATA: END OF ICDHDR.
    DATA: BEGIN OF ICDSHW OCCURS 50.
            INCLUDE STRUCTURE CDSHW.
    DATA: END OF ICDSHW.
    DATA: BEGIN OF EKKEY,
            EBELN LIKE EKET-EBELN,
            EBELP LIKE EKET-EBELP,
            ETENR LIKE EKET-ETENR,
          END OF EKKEY.
    DATA: BEGIN OF ITAB OCCURS 50,
            BEGIN OF EKKEY,
              EBELN LIKE EKET-EBELN,
              EBELP LIKE EKET-EBELP,
              ETENR LIKE EKET-ETENR,
            END OF EKKEY,
            CHANGENR LIKE CDHDR-CHANGENR,
            UDATE    LIKE CDHDR-UDATE,
            UTIME    LIKE CDHDR-UTIME,
            USERNAME LIKE CDHDR-USERNAME,
            CHNGIND  LIKE CDSHW-CHNGIND,
            FTEXT    LIKE CDSHW-FTEXT,
            OUTLEN   LIKE CDSHW-OUTLEN,
            F_OLD    LIKE CDSHW-F_OLD,
            F_NEW    LIKE CDSHW-F_NEW,
          END OF ITAB.
    DATA: OLD_OBJECTID LIKE CDHDR-OBJECTID.
    FIELD-SYMBOLS: <F_OLD>, <F_NEW>.
    SELECT * FROM EKKO WHERE EBELN IN XEBELN AND
                             LIFNR IN XLIFNR.
      CLEAR CDHDR.
      CLEAR CDPOS.
      CDHDR-OBJECTCLAS = 'EINKBELEG'.
      CDHDR-OBJECTID   = EKKO-EBELN.
      PERFORM GETCHGDOCS.
    ENDSELECT.
    IF SUDATE = 'X'.
      SORT ITAB BY UDATE EKKEY-EBELN CHANGENR EKKEY-EBELP
                   EKKEY-ETENR.
    ELSEIF SNAME = 'X'.
      SORT ITAB BY USERNAME EKKEY-EBELN CHANGENR EKKEY-EBELP
                   EKKEY-ETENR.
    ELSE.
      SORT ITAB BY EKKEY-EBELN CHANGENR EKKEY-EBELP EKKEY-ETENR.
    ENDIF.
    LOOP AT ITAB.
      CLEAR: INDTEXT, EKKEY.
      CASE ITAB-CHNGIND.
        WHEN 'U'.
            INDTEXT(50) = ITAB-FTEXT.
            INDTEXT+51  = TEXT-020.
            CONDENSE INDTEXT.
        WHEN 'D'.
            INDTEXT = TEXT-021.
        WHEN 'E'.
            INDTEXT(5) = ITAB-FTEXT.
            INDTEXT+51 = TEXT-021.
            CONDENSE INDTEXT.
          WHEN 'I'.
            INDTEXT = TEXT-022.
        ENDCASE.
        RESERVE 4 LINES.
        IF WCHANGENR NE ITAB-CHANGENR.
          WCHANGENR = ITAB-CHANGENR.
          EKKEY = ITAB-EKKEY.
          WRITE:/ ITAB-UDATE UNDER 'Change Date',
                  ITAB-UTIME UNDER 'Time',
                  ITAB-USERNAME UNDER 'User Name',
                  ITAB-EKKEY-EBELN UNDER 'PO No',
                  ITAB-EKKEY-EBELP UNDER 'Item',
                  ITAB-EKKEY-ETENR UNDER 'Sch No',
                  INDTEXT     UNDER 'Changes'.
        ELSEIF ITAB-EKKEY NE EKKEY.
          WRITE:/ ITAB-EKKEY-EBELP UNDER 'Item',
                  ITAB-EKKEY-ETENR UNDER 'Sch No',
                  INDTEXT     UNDER 'Changes'.
        ENDIF.
        CASE ITAB-CHNGIND.
          WHEN 'U'.
            ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>.
            ASSIGN ITAB-F_NEW(ITAB-OUTLEN) TO <F_NEW>.
            WRITE: / TEXT-023  UNDER 'Changes',
                     <F_OLD>.
            WRITE: / TEXT-024 UNDER 'Changes',
                     <F_NEW>.
          WHEN 'E'.
            ASSIGN ITAB-F_OLD(ITAB-OUTLEN) TO <F_OLD>.
            WRITE: TEXT-023 UNDER 'Changes',
                   <F_OLD>.
        ENDCASE.
        SKIP.
    ENDLOOP.
    TOP-OF-PAGE.
    WRITE:/ SY-DATUM,SY-UZEIT,
           50 'P U R C H A S E  O R D E R   H I S T O R Y',
          120 'Page', SY-PAGNO.
    WRITE: / SY-REPID,
             60 'Purchase Orders Changes'.
    SKIP.
    ULINE.
    IF SUDATE = 'X'.
      WRITE:/001 'Change Date',
             014 'Time',
             024 'User Name',
             038 'PO No',
             050 'Item',
             057 'Sch No',
             065 'Changes'.
    ELSEIF SOBID = 'X'.
      WRITE:/001 'PO No',
             013 'Item',
             020 'Sch No',
             028 'Change Date',
             041 'Time',
             051 'User Name',
             065 'Changes'.
    ELSE.
      WRITE:/001 'User Name',
             015 'Change Date',
             028 'Time',
             038 'PO No',
             050 'Item',
             057 'Sch No',
             065 'Changes'.
    ENDIF.
    ULINE.
    FORM GETCHGDOCS.
      CALL FUNCTION 'CHANGEDOCUMENT_READ_HEADERS'
           EXPORTING
                DATE_OF_CHANGE    = CDHDR-UDATE
                OBJECTCLASS       = CDHDR-OBJECTCLAS
                OBJECTID          = CDHDR-OBJECTID
                TIME_OF_CHANGE    = CDHDR-UTIME
                USERNAME          = CDHDR-USERNAME
           TABLES
                I_CDHDR           = ICDHDR
           EXCEPTIONS
                NO_POSITION_FOUND = 1
                OTHERS            = 2.
      CHECK SY-SUBRC EQ 0.
      DELETE ICDHDR WHERE CHANGE_IND EQ 'I'.
      CHECK NOT ICDHDR[] IS INITIAL.
      LOOP AT ICDHDR.
        CHECK ICDHDR-UDATE IN XUDATE.
        CHECK ICDHDR-USERNAME IN XNAME.
        CALL FUNCTION 'CHANGEDOCUMENT_READ_POSITIONS'
                     EXPORTING  CHANGENUMBER       = ICDHDR-CHANGENR
                     IMPORTING  HEADER             = CDHDR
                     TABLES     EDITPOS            = ICDSHW
                     EXCEPTIONS NO_POSITION_FOUND  = 1
                                OTHERS             = 2.
        CHECK SY-SUBRC EQ 0.
        LOOP AT ICDSHW.
          CHECK ICDSHW-TEXT_CASE EQ SPACE.
          MOVE-CORRESPONDING ICDSHW TO ITAB.
          MOVE-CORRESPONDING ICDHDR TO ITAB.
          MOVE ICDSHW-TABKEY+3 TO ITAB-EKKEY.
          APPEND ITAB.
        ENDLOOP.
      ENDLOOP.
    ENDFORM.
    END OF PROGRAM

    Hi,
    copied from          http://www.sap-img.com/mm001.htm

  • I Need interactive report to list the purchase orders details for a vendor

    I Need interactive report to list the purchase orders details for a vendor that has    interactive drill down options to give the detail of vendor from vendor master.

    Hi
    see this sample report
    this is Customer wise sales orders
    just make similar report just using LFA1, EKKO and EKPO tables instead of KNA1,VBAK,VBAP
    REPORT ZTEJ_INTAB1 LINE-SIZE 103 LINE-COUNT 35(5) NO STANDARD PAGE
    HEADING.
    *TABLES DECLARATION
    TABLES : KNA1, VBAK, VBAP.
    *SELECT OPTIONS
    SELECT-OPTIONS: CUST_NO FOR KNA1-KUNNR.
    *INITIALIZATION
    INITIALIZATION.
    CUST_NO-LOW = '01'.
    CUST_NO-HIGH = '5000'.
    CUST_NO-SIGN = 'I'.
    CUST_NO-OPTION = 'BT'.
    APPEND CUST_NO.
    *SELECTION SCREEN VALIDATION
    AT SELECTION-SCREEN ON CUST_NO.
    LOOP AT SCREEN.
    IF CUST_NO-LOW < 1 OR CUST_NO-HIGH > 5000.
    MESSAGE E001(ZTJ1).
    ENDIF.
    ENDLOOP.
    *BASIC LIST SELECTION
    START-OF-SELECTION.
    SELECT KUNNR NAME1 ORT01 LAND1 INTO
    (KNA1-KUNNR, KNA1-NAME1,KNA1-ORT01,KNA1-LAND1)
    FROM KNA1
    WHERE KUNNR IN CUST_NO.
    WRITE:/1 SY-VLINE,
    KNA1-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    KNA1-NAME1 UNDER 'NAME',
    61 SY-VLINE,
    KNA1-ORT01 UNDER 'CITY',
    86 SY-VLINE,
    KNA1-LAND1 UNDER 'COUNTRY',
    103 SY-VLINE.
    HIDE: KNA1-KUNNR.
    ENDSELECT.
    ULINE.
    *SECONDARY LIST ACCESS
    AT user-command.
    IF SY-UCOMM = 'IONE'.
    PERFORM SALES_ORD.
    ENDIF.
    IF SY-UCOMM = 'ITWO'.
    PERFORM ITEM_DET.
    ENDIF.
    *TOP OF PAGE
    TOP-OF-PAGE.
    FORMAT COLOR 1.
    WRITE : 'CUSTOMER DETAILS'.
    FORMAT COLOR 1 OFF.
    ULINE.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'NAME',
    61 SY-VLINE,
    63 'CITY',
    86 SY-VLINE,
    88 'COUNTRY',
    103 SY-VLINE.
    ULINE.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR SECONDARY LISTS
    TOP-OF-PAGE DURING LINE-SELECTION.
    *TOP OF PAGE FOR 1ST SECONDARY LIST
    IF SY-UCOMM = 'IONE'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'SALES ORDER DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'CUSTOMER NO.',
    16 SY-VLINE,
    18 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'DATE',
    60 SY-VLINE,
    62 'CREATOR',
    85 SY-VLINE,
    87 'DOC DATE',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *TOP OF PAGE FOR 2ND SECONDARY LIST
    IF SY-UCOMM = 'ITWO'.
    ULINE.
    FORMAT COLOR 1.
    WRITE : 'ITEM DETAILS'.
    ULINE.
    FORMAT COLOR 1 OFF.
    FORMAT COLOR 3.
    WRITE : 1 SY-VLINE,
    3 'SALES ORDER NO.',
    40 SY-VLINE,
    42 'SALES ITEM NO.',
    60 SY-VLINE,
    62 'ORDER QUANTITY',
    103 SY-VLINE.
    ULINE.
    ENDIF.
    FORMAT COLOR 3 OFF.
    *END OF PAGE
    END-OF-PAGE.
    ULINE.
    WRITE :'USER :',SY-UNAME,/,'DATE :', SY-DATUM, 85 'END OF PAGE:',
    SY-PAGNO.
    SKIP.
    *& Form SALES_ORD
    *& FIRST SECONDARY LIST FORM
    FORM SALES_ORD .
    SELECT KUNNR VBELN ERDAT ERNAM AUDAT INTO
    (VBAK-KUNNR, VBAK-VBELN, VBAK-ERDAT, VBAK-ERNAM, VBAK-AUDAT)
    FROM VBAK
    WHERE KUNNR = KNA1-KUNNR.
    WRITE:/1 SY-VLINE,
    VBAK-KUNNR UNDER 'CUSTOMER NO.' HOTSPOT ON,
    16 SY-VLINE,
    VBAK-VBELN UNDER 'SALES ORDER NO.' HOTSPOT ON,
    40 SY-VLINE,
    VBAK-ERDAT UNDER 'DATE',
    60 SY-VLINE,
    VBAK-ERNAM UNDER 'CREATOR',
    85 SY-VLINE,
    VBAK-AUDAT UNDER 'DOC DATE',
    103 SY-VLINE.
    HIDE : VBAK-VBELN.
    ENDSELECT.
    ULINE.
    ENDFORM. " SALES_ORD
    *& Form ITEM_DET
    *& SECOND SECONDARY LIST FORM
    FORM ITEM_DET .
    SELECT VBELN POSNR KWMENG INTO
    (VBAP-VBELN, VBAP-POSNR, VBAP-KWMENG)
    FROM VBAP
    WHERE VBELN = VBAK-VBELN.
    WRITE : /1 SY-VLINE,
    VBAP-VBELN UNDER 'SALES ORDER NO.',
    40 SY-VLINE,
    VBAP-POSNR UNDER 'SALES ITEM NO.',
    60 SY-VLINE,
    VBAP-KWMENG UNDER 'ORDER QUANTITY',
    103 SY-VLINE.
    ENDSELECT.
    ULINE.
    ENDFORM. " ITEM_DET
    REPORT demo_list_at_pf.
    START-OF-SELECTION.
    WRITE 'Basic List, Press PF5, PF6, PF7, or PF8'.
    AT pf5.
    PERFORM out.
    AT pf6.
    PERFORM out.
    AT pf7.
    PERFORM out.
    AT pf8.
    PERFORM out.
    FORM out.
    WRITE: 'Secondary List by PF-Key Selection',
    / 'SY-LSIND =', sy-lsind,
    / 'SY-UCOMM =', sy-ucomm.
    ENDFORM.
    After executing the program, the system displays the basic list. The user can press the function keys F5 , F6 , F7 , and F8 to create secondary lists. If, for example, the 14th key the user presses is F6 , the output on the displayed secondary list looks as follows:
    Secondary List by PF-Key Selection
    SY-LSIND = 14
    SY-UCOMM = PF06
    Example for AT USER-COMMAND.
    REPORT demo_list_at_user_command NO STANDARD PAGE HEADING.
    START-OF-SELECTION.
    WRITE: 'Basic List',
    / 'SY-LSIND:', sy-lsind.
    TOP-OF-PAGE.
    WRITE 'Top-of-Page'.
    ULINE.
    TOP-OF-PAGE DURING LINE-SELECTION.
    CASE sy-pfkey.
    WHEN 'TEST'.
    WRITE 'Self-defined GUI for Function Codes'.
    ULINE.
    ENDCASE.
    AT LINE-SELECTION.
    SET PF-STATUS 'TEST' EXCLUDING 'PICK'.
    PERFORM out.
    sy-lsind = sy-lsind - 1.
    AT USER-COMMAND.
    CASE sy-ucomm.
    WHEN 'FC1'.
    PERFORM out.
    WRITE / 'Button FUN 1 was pressed'.
    WHEN 'FC2'.
    PERFORM out.
    WRITE / 'Button FUN 2 was pressed'.
    WHEN 'FC3'.
    PERFORM out.
    WRITE / 'Button FUN 3 was pressed'.
    WHEN 'FC4'.
    PERFORM out.
    WRITE / 'Button FUN 4 was pressed'.
    WHEN 'FC5'.
    PERFORM out.
    WRITE / 'Button FUN 5 was pressed'.
    ENDCASE.
    sy-lsind = sy-lsind - 1.
    FORM out.
    WRITE: 'Secondary List',
    / 'SY-LSIND:', sy-lsind,
    / 'SY-PFKEY:', sy-pfkey.
    ENDFORM.
    When you run the program, the system displays the following basic list with a the page header defined in the program:
    You can trigger the AT LINE-SELECTION event by double-clicking a line. The system sets the status TEST and deactivates the function code PICK. The status TEST contains function codes FC1 to FC5. These are assigned to pushbuttons in the application toolbar. The page header of the detail list depends on the status.
    Here, double-clicking a line no longer triggers an event. However, there is now an application toolbar containing five user-defined pushbuttons. You can use these to trigger the AT USER-COMMAND event. The CASE statement contains a different reaction for each pushbutton.
    For each interactive event, the system decreases the SY-LSIND system field by one, thus canceling out the automatic increase. All detail lists now have the same level as the basic list and thus overwrite it. While the detail list is being created, SY-LSIND still has the value 1.
    Regards
    Anji

Maybe you are looking for

  • Hp F4180 not on Apples list, its an AIO, am I snookered?

    OK, I just checked Printer FAQ on APple for my AIO hp F4180 printer/scanner, but its not there. The F4200 series is there. hp site has no update of drivers etc, does this mean I cannot use my Printer AIO with Snow? cheers

  • How do I get my iPhone iMessage to reach my iPad

    My iPad used to have my phone number on it to get an iMessage text going to my phone but then it came off

  • How do I select rows from the same table that have multiple occurances

    Hi Everybody, I am trying to select records from a detail table by grouping it. The table has more than 1 million records and the query is not performing well. The basic question is how to select a distinct record from a table which matches all value

  • Burning discs that work in low-end DVD players

    Hi everybody. Situation: I'm burning DVDs of a rough cut of a documentary for festivals and various interested parties. I'm burning with DVD SP. I was using Memorex 16X DVDs. The resulting DVDs work on computers and most DVD players. But they don't w

  • FCP movie not accepted by I DVD

    I edited a short movie (26 min) in FCP. Some of the footage was short in HD. It's all DV/DVCPRO in the compressor column. I exported it as a self contained DV NTSC  Anamorphic Quicktime file. When I try to bring it into IDVD I get... broken reference