Question on GR/IR clearing - T/code F.19 (Urgent)

Dear Guru,
I have some questions on GR/IR clearing
GR and IR have been done for a PO. I run F.19 for GR/IR clearing. Next, I run a customised report to check whether the GR/IR for this PO has been cleared. However, the detail is still resides in table BSIS.
My question is when I run F.19,
1) Will the detail for PO be cleared from table BSIS if the good receipt and invoice verification is done?
2) Do I need to perform any transactions before or after I executed F.19
3) Any information on this will be helpful.
Thank you in advance.

Hi,
1. If GR(MIGO) and IR (MIRO) has been done for the purchase order what is the requirment for f.19 . As F.19 is to post adjustment entries at the period end for Goods recived for invoice not reiceved and vice nersa...
2.  For GR/IR clearing acount maintainence you can try MR11. check the functionality. after that what ever left for passing an adjustment entries for financial statement run F.19
Hope i am clear
Cheers
PK

Similar Messages

  • GR/IR clearing report code with gl a/c

    hi experts,
    anyone have gr/ir clearing report code with gl a/c
    Moderator message - Please ask a specific question. Don't just post vague requirements hoping that someone will take care of them for you - post locked
    Edited by: Rob Burbank on May 22, 2009 9:37 AM

    go throw below link
    Re: gr/ir clearing account?

  • HT5622 I am very frustrated as I have forgotten my security questions and need to clear them out.  I have all of my other information on the account.

    I am very frustrated as I have forgotten my security questions and need to clear them out.  I have all of my other information on the account.

    If you have a rescue email address (which is not the same thing as an alternate email address) set up on your account then go to https://appleid.apple.com/ and click 'Manage your Apple ID' on the right-hand side of that page and log into your account. Then click on 'Password and Security' on the left-hand side of that page and on the right-hand side you should see an option to send security question reset info to your rescue email address.
    If you don't have a rescue email address (you won't be able to add one until you can answer 2 of your questions) then you will need to contact iTunes Support / Apple to get the questions reset (we are fellow users here on these forums).
    Contacting Apple about account security : http://support.apple.com/kb/HT5699
    When they've been reset (and if you don't already have a rescue email address) you can then use the steps half-way down this page to add a rescue email address for potential future use : http://support.apple.com/kb/HT5312

  • Problem in code.it is urgent.

    problem in code.it is urgent.
    i want to display all po,s with all grs from requistion up to inspection. if for a po gr not happend or inspection not happend it must also display leaving blank for that po. actual flow is pur.reqpur.ordergoods receipt---quality inspection. once u copy this code and execute it. u will get better idea.
    regards!
    prasad.
    REPORT Z_MM_REQDETAILS1.
    TABLES: EKKO, EKPO, MSEG, QALS, EBAN, MKPF, MAKT.
    TYPE-POOLS: SLIS.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
    SELECT-OPTIONS: SBADAT FOR EBAN-BADAT,
    SLIFNR FOR EKKO-LIFNR,
    SEBELN FOR EKKO-EBELN,
    SBEDAT FOR EKKO-BEDAT,
    SBSART FOR EKKO-BSART,
    SMATNR FOR EKPO-MATNR,
    SBUDAT FOR MKPF-BUDAT.
    SELECTION-SCREEN END OF BLOCK B1.
    DATA: BEGIN OF EBAN_TAB OCCURS 0,
    BANFN LIKE EBAN-BANFN,
    BADAT LIKE EBAN-BADAT,
    MENGE LIKE EBAN-MENGE,
    EBELN LIKE EBAN-EBELN,
    AFNAM LIKE EBAN-AFNAM,
    END OF EBAN_TAB.
    DATA: BEGIN OF EKKO_TAB OCCURS 0,
    BSART LIKE EKKO-BSART,
    EBELN LIKE EKKO-EBELN,
    LIFNR LIKE EKKO-LIFNR,
    BEDAT LIKE EKKO-BEDAT,
    END OF EKKO_TAB.
    DATA: BEGIN OF EKPO_TAB OCCURS 0,
    EBELN LIKE EKPO-EBELN,
    MENGE LIKE EKPO-MENGE,
    MATNR LIKE EKPO-MATNR,
    BANFN LIKE EKPO-BANFN,
    EBELP LIKE EKPO-EBELP,
    END OF EKPO_TAB.
    DATA: BEGIN OF MSEG_TAB OCCURS 0,
    EBELN LIKE MSEG-EBELN,
    MBLNR LIKE MSEG-MBLNR,
    MATNR LIKE MSEG-MATNR,
    MENGE LIKE MSEG-MENGE,
    EBELP LIKE MSEG-EBELP,
    END OF MSEG_TAB.
    DATA: BEGIN OF MSEG_TAB1 OCCURS 0,
    MBLNR LIKE MSEG-MBLNR,
    EBELN LIKE MSEG-EBELN,
    END OF MSEG_TAB1.
    DATA: BEGIN OF QALS_TAB OCCURS 0,
    LMENGE01 LIKE QALS-LMENGE01,
    LMENGE07 LIKE QALS-LMENGE07,
    MATNR LIKE QALS-MATNR,
    MBLNR LIKE QALS-MBLNR,
    EBELN LIKE QALS-EBELN,
    EBELP LIKE QALS-EBELP,
    END OF QALS_TAB.
    DATA: BEGIN OF MKPF_TAB OCCURS 0,
    MBLNR LIKE MKPF-MBLNR,
    BUDAT LIKE MKPF-BUDAT,
    END OF MKPF_TAB.
    DATA: BEGIN OF MAKT_TAB OCCURS 0,
    MATNR LIKE MAKT-MATNR,
    MAKTX LIKE MAKT-MAKTX,
    END OF MAKT_TAB.
    DATA: BEGIN OF SELTAB OCCURS 0,
    EBELN LIKE EKKO-EBELN,
    BLDAT LIKE MKPF-BLDAT,
    END OF SELTAB.
    *DATA: BEGIN OF SELTAB1 OCCURS 0,
    BUDAT LIKE MKPF-BUDAT,
    END OF SELTAB1.
    DATA: REPID LIKE SY-REPID.
    DATA: F_OUTPUT1 TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
    DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
    DATA: REMARKS(40) TYPE C.
    DATA: BEGIN OF OUTPUT OCCURS 0,
    BANFN LIKE EBAN-BANFN,
    BADAT LIKE EBAN-BADAT,
    RMENGE LIKE EBAN-MENGE,
    AFNAM LIKE EBAN-AFNAM,
    BSART LIKE EKKO-BSART,
    EBELN LIKE EKKO-EBELN,
    LIFNR LIKE EKKO-LIFNR,
    BEDAT LIKE EKKO-BEDAT,
    PMENGE LIKE EKPO-MENGE,
    MATNR LIKE EKPO-MATNR,
    EBELP LIKE EKPO-EBELP,
    MBLNR LIKE MSEG-MBLNR,
    GMENGE LIKE MSEG-MENGE,
    LMENGE01 LIKE QALS-LMENGE01,
    LMENGE07 LIKE QALS-LMENGE07,
    BUDAT LIKE MKPF-BUDAT,
    MAKTX LIKE MAKT-MAKTX,
    REMARKS(40) TYPE C,
    SL_NO LIKE SY-TABIX,
    END OF OUTPUT.
    START-OF-SELECTION.
    IF SEBELN IS NOT INITIAL OR SLIFNR IS NOT INITIAL OR SBEDAT IS NOT INITIAL OR SBSART IS NOT INITIAL.
    SELECT EBELN
    BSART
    LIFNR
    BEDAT FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB WHERE EBELN IN SEBELN AND LIFNR IN SLIFNR AND BEDAT IN SBEDAT AND
    BSART IN SBSART.
    ELSEIF SBADAT IS NOT INITIAL.
    SELECT EBELN
    BANFN
    BADAT
    MENGE
    AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB where BADAT IN SBADAT.
    SORT EBAN_TAB BY BADAT ASCENDING.
    select ebeln lifnr bedat bsart from ekko into corresponding fields of table ekko_tab for all entries in eban_tab where ebeln = eban_tab-ebeln.
    ELSEIF SMATNR IS NOT INITIAL.
    SELECT EBELN
    EBELP
    FROM EKPO INTO CORRESPONDING FIELDS OF TABLE SELTAB
    WHERE MATNR IN SMATNR.
    SORT SELTAB BY EBELN ASCENDING.
    DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
    SELECT EBELN
    BSART
    BEDAT
    LIFNR FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
    FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
    ELSEIF SBUDAT IS NOT INITIAL.
    SELECT BUDAT
    MBLNR FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB WHERE
    BUDAT IN SBUDAT.
    sort mkpf_tab by budat ascending.
    SELECT EBELN FROM MSEG INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN
    MKPF_TAB WHERE MBLNR = MKPF_TAB-MBLNR.
    *SELECT EBELN
    FROM QALS INTO CORRESPONDING FIELDS OF TABLE SELTAB FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
    SORT SELTAB BY EBELN ASCENDING.
    DELETE ADJACENT DUPLICATES FROM SELTAB COMPARING EBELN.
    SELECT EBELN
    BEDAT
    LIFNR
    BSART FROM EKKO INTO CORRESPONDING FIELDS OF TABLE EKKO_TAB
    FOR ALL ENTRIES IN SELTAB WHERE EBELN = SELTAB-EBELN.
    ENDIF.
    SELECT EBELN
    MENGE
    MATNR
    EBELP FROM EKPO INTO CORRESPONDING FIELDS OF TABLE EKPO_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
    MATNR IN SMATNR.
    SELECT EBELN
    BANFN
    BADAT
    MENGE
    AFNAM FROM EBAN INTO CORRESPONDING FIELDS OF TABLE EBAN_TAB FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN AND
    BADAT IN SBADAT.
    SELECT EBELN
    MBLNR
    MATNR
    MENGE
    EBELP
    FROM MSEG INTO CORRESPONDING FIELDS OF TABLE MSEG_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE EBELN = EKPO_TAB-EBELN AND
    MATNR = EKPO_TAB-MATNR AND
    EBELP = EKPO_TAB-EBELP AND
    BWART IN ('101','105').
    SELECT LMENGE01
    LMENGE07
    MATNR
    MBLNR
    EBELN FROM QALS INTO CORRESPONDING FIELDS OF TABLE QALS_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND
    MATNR = MSEG_TAB-MATNR AND
    EBELN = MSEG_TAB-EBELN AND
    EBELP = MSEG_TAB-EBELP.
    SELECT MBLNR
    BUDAT FROM MKPF INTO CORRESPONDING FIELDS OF TABLE MKPF_TAB FOR ALL ENTRIES IN MSEG_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND BUDAT
    IN SBUDAT.
    SELECT MATNR
    MAKTX FROM MAKT INTO CORRESPONDING FIELDS OF TABLE MAKT_TAB FOR ALL ENTRIES IN EKPO_TAB WHERE MATNR = EKPO_TAB-MATNR.
    *LOOP AT OUTPUT.
    **LOOP AT EKKO_TAB.
    **read table EKKO_TAB with key ebeln = output-ebeln.
    **if sy-subrc = 0.
    *READ TABLE EKPO_TAB WITH KEY EBELN = EKKO_TAB-EBELN.
    *IF SY-SUBRC = 0.
    *READ TABLE MSEG_TAB WITH KEY EBELN = EKPO_TAB-EBELN MATNR = EKPO_TAB-MATNR.
    *IF SY-SUBRC = 0.
    **READ TABLE QALS_TAB WITH KEY MBLNR = MSEG_TAB-MBLNR MATNR = MSEG_TAB-MATNR EBELN = MSEG_TAB-EBELN.
    **IF SY-SUBRC = 0.
              o OUTPUT-EBELN = EKKO_TAB-EBELN.
              o OUTPUT-BSART = EKKO_TAB-BSART.
              o OUTPUT-LIFNR = EKKO_TAB-LIFNR.
              o OUTPUT-BEDAT = EKKO_TAB-BEDAT.
    OUTPUT-PMENGE = EKPO_TAB-MENGE.
    OUTPUT-MATNR = EKPO_TAB-MATNR.
    OUTPUT-MBLNR = MSEG_TAB-MBLNR.
    OUTPUT-GMENGE = MSEG_TAB-MENGE.
              o OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
              o OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
    modify OUTPUT transporting pmenge matnr MBLNR GMENGE.
    **APPEND OUTPUT.
    *ENDIF.
    *ENDIF.
    *ENDLOOP.
    LOOP AT EKKO_TAB.
    LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
    LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
    OUTPUT-EBELN = EKKO_TAB-EBELN.
    OUTPUT-BSART = EKKO_TAB-BSART.
    OUTPUT-LIFNR = EKKO_TAB-LIFNR.
    OUTPUT-BEDAT = EKKO_TAB-BEDAT.
    OUTPUT-PMENGE = EKPO_TAB-MENGE.
    OUTPUT-MATNR = EKPO_TAB-MATNR.
    OUTPUT-EBELP = EKPO_TAB-EBELP.
    APPEND OUTPUT.
    CLEAR OUTPUT.
    ENDLOOP.
    ENDLOOP.
    *LOOP AT OUTPUT.
    *LOOP AT EKPO_TAB WHERE EBELN = OUTPUT-EBELN.
    OUTPUT-PMENGE = EKPO_TAB-MENGE.
    OUTPUT-MATNR = EKPO_TAB-MATNR.
    OUTPUT-EBELP = EKPO_TAB-EBELP.
    *MODIFY OUTPUT TRANSPORTING PMENGE MATNR EBELP.
    *ENDLOOP.
    *ENDLOOP.
    LOOP AT OUTPUT.
    LOOP AT MSEG_TAB WHERE EBELN = OUTPUT-EBELN AND MATNR = OUTPUT-MATNR AND EBELP = OUTPUT-EBELP.
    *LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN AND EBELP = OUTPUT-EBELP.
    OUTPUT-MBLNR = MSEG_TAB-MBLNR.
    OUTPUT-GMENGE = MSEG_TAB-MENGE.
    OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
    OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
    OUTPUT-EBELP = QALS_TAB-EBELP.
    *APPEND OUTPUT.
    MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
    *CLEAR OUTPUT.
    *CLEAR MSEG_TAB.
    ENDLOOP.
    ENDLOOP.
    *ENDLOOP.
    LOOP AT OUTPUT.
    LOOP AT QALS_TAB WHERE MBLNR = OUTPUT-MBLNR AND MATNR = OUTPUT-MATNR AND EBELN = OUTPUT-EBELN.
    OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
    OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
    OUTPUT-EBELP = QALS_TAB-EBELP.
    MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
    ENDLOOP.
    ENDLOOP.
    LOOP AT OUTPUT.
    LOOP AT EBAN_TAB WHERE EBELN = OUTPUT-EBELN.
    OUTPUT-BANFN = EBAN_TAB-BANFN.
    OUTPUT-BADAT = EBAN_TAB-BADAT.
    OUTPUT-RMENGE = EBAN_TAB-MENGE.
    OUTPUT-AFNAM = EBAN_TAB-AFNAM.
    MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
    ENDLOOP.
    ENDLOOP.
    LOOP AT OUTPUT.
    LOOP AT MKPF_TAB WHERE MBLNR = OUTPUT-MBLNR.
    OUTPUT-BUDAT = MKPF_TAB-BUDAT.
    MODIFY OUTPUT TRANSPORTING BUDAT.
    ENDLOOP.
    ENDLOOP.
    *LOOP AT OUTPUT.
    *SELECT SINGLE MATNR FROM EKPO INTO OUTPUT-MATNR WHERE EBELN = OUTPUT-EBELN.
    *MODIFY OUTPUT TRANSPORTING MATNR.
    *SELECT SINGLE MBLNR FROM MSEG INTO OUTPUT-MBLNR WHERE MATNR = OUTPUT-MATNR.
    *MODIFY OUTPUT TRANSPORTING MBLNR.
    *ENDLOOP.
    LOOP AT OUTPUT.
    LOOP AT MAKT_TAB WHERE MATNR = OUTPUT-MATNR.
    OUTPUT-MAKTX = MAKT_TAB-MAKTX.
    MODIFY OUTPUT TRANSPORTING MAKTX.
    ENDLOOP.
    ENDLOOP.
    *LOOP AT EKKO_TAB.
    LOOP AT EKPO_TAB WHERE EBELN = EKKO_TAB-EBELN.
              o LOOP AT MSEG_TAB WHERE EBELN = EKPO_TAB-EBELN AND MATNR = EKPO_TAB-MATNR.
              o LOOP AT QALS_TAB WHERE MBLNR = MSEG_TAB-MBLNR AND MATNR = MSEG_TAB-MATNR AND EBELN = MSEG_TAB-EBELN.
              o LOOP AT MKPF_TAB WHERE MBLNR = MSEG_TAB-MBLNR.
    OUTPUT-EBELN = EKKO_TAB-EBELN.
    OUTPUT-BSART = EKKO_TAB-BSART.
    OUTPUT-LIFNR = EKKO_TAB-LIFNR.
    OUTPUT-BEDAT = EKKO_TAB-BEDAT.
    OUTPUT-PMENGE = EKPO_TAB-MENGE.
    OUTPUT-MATNR = EKPO_TAB-MATNR.
    OUTPUT-EBELP = EKPO_TAB-EBELP.
              o OUTPUT-MBLNR = MSEG_TAB-MBLNR.
              o OUTPUT-GMENGE = MSEG_TAB-MENGE.
              o OUTPUT-BUDAT = MKPF_TAB-BUDAT.
              o OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
              o OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
              o MODIFY OUTPUT TRANSPORTING BSART LIFNR BEDAT PMENGE MATNR.
    APPEND OUTPUT.
    CLEAR OUTPUT.
              o CLEAR QALS_TAB.
              o ENDLOOP.
              o CLEAR MKPF_TAB.
              o ENDLOOP.
              o CLEAR MSEG_TAB.
              o ENDLOOP.
    CLEAR EKPO_TAB.
    ENDLOOP.
    CLEAR EKKO_TAB.
    ENDLOOP.
    **SELECT MBLNR EBELN FROM MSEG INTO TABLE MSEG_TAB1 FOR ALL ENTRIES IN EKKO_TAB WHERE EBELN = EKKO_TAB-EBELN.
              o LOOP AT OUTPUT.
              o MOVE-CORRESPONDING MSEG_TAB1 TO OUTPUT.
              o OUTPUT-MBLNR = MSEG_TAB1-MBLNR.
              o MODIFY OUTPUT TRANSPORTING MBLNR.
              o ENDLOOP.
    *LOOP AT OUTPUT.
    LOOP AT MSEG_TAB WHERE EBELN = output-EBELN AND MATNR = output-MATNR AND EBELP = OUTPUT-EBELP.
    **READ TABLE MSEG_TAB WITH KEY EBELN = OUTPUT-EBELN MATNR = OUTPUT-MATNR.
    *IF SY-SUBRC = 0.
    OUTPUT-MBLNR = MSEG_TAB-MBLNR.
    OUTPUT-GMENGE = MSEG_TAB-MENGE.
    *MODIFY OUTPUT TRANSPORTING MBLNR GMENGE.
    *ENDIF.
    *clear output.
    *ENDLOOP.
    *endloop.
    *LOOP AT OUTPUT.
    READ TABLE QALS_TAB WITH KEY MBLNR = OUTPUT-MBLNR MATNR = OUTPUT-MATNR EBELN = OUTPUT-EBELN.
    *IF SY-SUBRC = 0.
    *OUTPUT-LMENGE01 = QALS_TAB-LMENGE01.
    *OUTPUT-LMENGE07 = QALS_TAB-LMENGE07.
    *MODIFY OUTPUT TRANSPORTING LMENGE01 LMENGE07.
    *ENDIF.
    *ENDLOOP.
    LOOP AT OUTPUT.
    READ TABLE EBAN_TAB WITH KEY EBELN = OUTPUT-EBELN.
    IF SY-SUBRC = 0.
    OUTPUT-BANFN = EBAN_TAB-BANFN.
    OUTPUT-BADAT = EBAN_TAB-BADAT.
    OUTPUT-RMENGE = EBAN_TAB-MENGE.
    OUTPUT-AFNAM = EBAN_TAB-AFNAM.
    MODIFY OUTPUT TRANSPORTING BANFN BADAT RMENGE AFNAM.
    ENDIF.
    ENDLOOP.
    *LOOP AT OUTPUT.
    READ TABLE MKPF_TAB WITH KEY MBLNR = OUTPUT-MBLNR.
    IF SY-SUBRC = 0.
    OUTPUT-BUDAT = MKPF_TAB-BUDAT.
    MODIFY OUTPUT TRANSPORTING BUDAT.
    ENDIF.
    ENDLOOP.
    *LOOP AT OUTPUT.
    *READ TABLE MAKT_TAB WITH KEY MATNR = OUTPUT-MATNR.
    *IF SY-SUBRC = 0.
    *OUTPUT-MAKTX = MAKT_TAB-MAKTX.
    *MODIFY OUTPUT TRANSPORTING MAKTX.
    *ENDIF.
    *ENDLOOP.
    PERFORM F_OUTPUT.
    PERFORM SORT.
    PERFORM GRID.
    FORM F_OUTPUT.
    F_OUTPUT1-FIELDNAME = 'MATNR'.
    F_OUTPUT1-REF_TABNAME = 'EKPO'.
    F_OUTPUT1-REF_FIELDNAME = 'MATNR'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='MAKTX'.
    F_OUTPUT1-SELTEXT_M = 'DESCRIPTION.'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'LIFNR'.
    F_OUTPUT1-REF_TABNAME = 'EKKO'.
    F_OUTPUT1-REF_FIELDNAME = 'LIFNR'.
    F_OUTPUT1-SELTEXT_M = 'SUPPLIER'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'AFNAM'.
    F_OUTPUT1-REF_TABNAME = 'EBAN'.
    F_OUTPUT1-REF_FIELDNAME = 'AFNAM'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'BANFN'.
    F_OUTPUT1-REF_TABNAME = 'EBAN'.
    F_OUTPUT1-REF_FIELDNAME = 'BANFN'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'BADAT'.
    F_OUTPUT1-SELTEXT_M = 'PRS DATE'.
    F_OUTPUT1-REF_TABNAME = 'EBAN'.
    F_OUTPUT1-REF_FIELDNAME = 'BADAT'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='RMENGE'.
    *F_OUTPUT1-REF_TABNAME = 'MSEG'.
    *F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
    F_OUTPUT1-SELTEXT_M = 'PRS QTY'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'EBELN'.
    F_OUTPUT1-REF_TABNAME = 'EKKO'.
    F_OUTPUT1-REF_FIELDNAME = 'EBELN'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'BSART'.
    F_OUTPUT1-REF_TABNAME = 'EKKO'.
    F_OUTPUT1-REF_FIELDNAME = 'BSART'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'BEDAT'.
    F_OUTPUT1-REF_TABNAME = 'EKKO'.
    F_OUTPUT1-REF_FIELDNAME = 'BEDAT'.
    F_OUTPUT1-SELTEXT_M = 'PO DATE'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='PMENGE'.
    F_OUTPUT1-SELTEXT_M = 'PO QTY'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'MBLNR'.
    F_OUTPUT1-REF_TABNAME = 'MSEG'.
    F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
    F_OUTPUT1-SELTEXT_M = 'GR NUMBER'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='BUDAT'.
    F_OUTPUT1-SELTEXT_M = 'GR DATE'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='GMENGE'.
    *F_OUTPUT1-REF_TABNAME = 'MSEG'.
    *F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
    F_OUTPUT1-SELTEXT_M = 'RECEIVED QTY'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'LMENGE01'.
    F_OUTPUT1-REF_TABNAME = 'QALS'.
    F_OUTPUT1-REF_FIELDNAME = 'LMENGE01'.
    F_OUTPUT1-SELTEXT_M = 'ACCEPTED QTY'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME = 'LMENGE07'.
    F_OUTPUT1-REF_TABNAME = 'QALS'.
    F_OUTPUT1-REF_FIELDNAME = 'LMENGE07'.
    F_OUTPUT1-SELTEXT_M = 'REJECTED QTY'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    F_OUTPUT1-FIELDNAME ='REMARKS'.
    **F_OUTPUT1-REF_TABNAME = 'MSEG'.
    **F_OUTPUT1-REF_FIELDNAME = 'MBLNR'.
    F_OUTPUT1-SELTEXT_M = 'REMARKS'.
    APPEND F_OUTPUT1.
    CLEAR F_OUTPUT1.
    ENDFORM.
    FORM SORT.
    IT_SORT-FIELDNAME = 'MATNR'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'MAKTX'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'LIFNR'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'AFNAM'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'BANFN'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'BADAT'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'RMENGE'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'EBELN'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'BSART'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'BEDAT'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'PMENGE'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'MBLNR'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'BUDAT'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'GMENGE'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'LMENGE01'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    IT_SORT-FIELDNAME = 'LMENGE07'.
    IT_SORT-UP = 'X'.
    APPEND IT_SORT.
    CLEAR IT_SORT.
    ENDFORM.
    FORM GRID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    I_INTERFACE_CHECK = ' '
    I_BYPASSING_BUFFER = ' '
    I_BUFFER_ACTIVE = ' '
    I_CALLBACK_PROGRAM = 'REPID'
    I_CALLBACK_PF_STATUS_SET = ' '
    I_CALLBACK_USER_COMMAND = ' '
    I_CALLBACK_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_TOP_OF_PAGE = ' '
    I_CALLBACK_HTML_END_OF_LIST = ' '
    I_STRUCTURE_NAME =
    I_BACKGROUND_ID = ' '
    I_GRID_TITLE =
    I_GRID_SETTINGS =
    IS_LAYOUT =
    IT_FIELDCAT = F_OUTPUT1[]
    IT_EXCLUDING =
    IT_SPECIAL_GROUPS =
    IT_SORT =
    IT_FILTER =
    IS_SEL_HIDE =
    I_DEFAULT = 'X'
    I_SAVE = ' '
    IS_VARIANT =
    IT_EVENTS =
    IT_EVENT_EXIT =
    IS_PRINT =
    IS_REPREP_ID =
    I_SCREEN_START_COLUMN = 0
    I_SCREEN_START_LINE = 0
    I_SCREEN_END_COLUMN = 0
    I_SCREEN_END_LINE = 0
    I_HTML_HEIGHT_TOP = 0
    I_HTML_HEIGHT_END = 0
    IT_ALV_GRAPHICS =
    IT_HYPERLINK =
    IT_ADD_FIELDCAT =
    IT_EXCEPT_QINFO =
    IR_SALV_FULLSCREEN_ADAPTER =
    IMPORTING
    E_EXIT_CAUSED_BY_CALLER =
    ES_EXIT_CAUSED_BY_USER =
    TABLES
    T_OUTTAB = OUTPUT[].
    EXCEPTIONS
    PROGRAM_ERROR = 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.

    Hi prasad,
    Whats the problem exactly. Is it not displaying any records ?
    Thanks,
    bsv.

  • Clearing error code C0000 on Pixma MP640

    Is there a secret to clearing my printer of this error code C0000? I have Pixma MP640.
    I tried powering down and also unplugging for 15 minutes. Thanks for your input

    Hi cdeviney,
    The C000 error is a generic internal error code.  Unfortunately, it could mean one of many things.  To try to resolve the C000 error, please follow the following steps:
     1.  Turn off the printer and disconnect the power cord and USB cable.
     2.  Remove paper from the automatic sheet feeder (in the back).
     3.  Gently pull jammed paper out, if any.
         3-1.  If paper is visible from the ASF, use both hands to pull the paper out slowly.
         3-2.  If paper is visible from the paper output slot, use both hands to pull the paper out slowly.
     4.  If the paper tears and a piece of that remains inside the printer, open the printer cover and remove the paper from inside the printer.
     5.  Check ASF with a bright light to check for obstructions.  Remove any if found.  Please view attached image for an example of pacing material.
     6.  Open the rear cover to check if the paper is jammed.
     7.  Pull out the cassette and check if the paper is jammed inside the cassette area.
     8.  Load paper back into the ASF or cassette.
     9.  Reconnect the power cord, turn on the printer and confirm that the Alarm light is off. (If there was any jammed paper remaining in the printer, the paper may be automatically ejected.)
    If the above procedure does not resolve the C000 error, please contact our support group using the following link:
    http://www.usa.canon.com/cusa/consumer/standard_display/contact_us_consumer
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • Questioning the process to update tax code "rates"

    I am not clear on what the process should be for updating the tax code rates. I would like to know how other entities perform this re-occurring process. My questions are... must the rate updates be transported/imported or entered directly using FTXP? Who in the organization is/should be responsible for updates? Aren't the rates considered master data? How often are the rates updated? If a transport is required, shouldn't the person entering the updates differ from the person doing the import into a client?

    must the rate updates be transported/imported or entered directly using FTXP?
    Yes you can enter manually also.
    Who in the organization is/should be responsible for updates?
    Anybody in Finance who is taking care of taxes
    Aren't the rates considered master data?
    Yes
    How often are the rates updated?
    There is no fixed thumb rule for this.  As and when a new requirement (different tax structure) comes, and if the same is not available in the existing tax codes, it has to be created.
    thanks
    G. Lakshmipathi

  • Clear message code

    how do you clear a message code on a canon MG6220 -- code 6A81 got the jam when printing labels

    Hello mariericks!
    This error can occur if there is a loose object stuck inside the printer.  Please try the following:
    1.  With the cover of the printer open, unplug the power from the back of the printer or the wall.
    2.  Look for any loose objects or packing material in the printer, clear if necessary.
    3.  Try gently moving the ink tank holder as close to you as possible.  Try pushing the closest ink tank down.  Once clicked into place, try moving the ink tank holder closer, repeat as needed.  If you meet resistance, do not attempt to move the ink tank holder any further.
    If the issue persists, please contact our support group using the "Contact Us" link below.
    This didn't answer your question or issue? Find more help at Contact Us. 
    Did this answer your question? Please click the Accept as Solution button so that others may find the answer as well.

  • Questions on Mackeeper and clearing out junk! Help!

    I downloaded Mackeeper and it told me junk was slowing down my Mac but after it asked for $88 i quickly uninstalled it. Im worried it left a virus that slowed down my Macbook Pro. Even tho everyone says Macs don't need antivirus ware, is there something i can run to make sure there isn't anything harmful leftover? Also what is safe to use to clear out junk to improve how my Mac runs?

    kitty8195 wrote:
    ... Also what is safe to use to clear out junk to improve how my Mac runs?
    Don't install junk (like MacKeeper) to begin with. A program to accomplish what you describe and is safe to use does not exist.
    If you have reason to believe your Mac is not performing as it should, please explain. Specific guidance can be provided but it would help if you would correlate that unexpected performance with certain activity, such as the time it takes to start up, to launch programs, to shut down, to load webpages, etc. Provide as much detail as you can.
    Attaching an EtreCheck report will preclude asking additional questions:
    Apple Support Communities contributor etresoft wrote a very useful app to quickly gather certain system information that may help point to a cause of this problem. Read about it here. It contains a link to download EtreCheck. Do not download it from anywhere else (such as may be found by following the results of an Internet search).
    Click Open - etresoft contributes to this forum frequently and can be considered a trustworthy developer.
    It will take a moment to run as it collects its data.
    Copy and paste its output in a reply.
    Do not be concerned about anything that says "Problem" or “failed” or anything else that may appear in red.
    EtreCheck was designed to remove any personal information (such as your computer's name and serial numbers) but if you see anything that looks like an email address or any other personal information that should not be divulged to others, please delete or obscure that information when you post the reply.
    When you are finished with EtreCheck, quit the program. It occupies very little space, and you can keep it or drag it to the Trash as you wish.

  • Clearing account code FR3

    hi,
    1) may i know what tcode i can see the custom clearing or freight clearing account posted during GR? If obyc, then what is the transaction code column? for example, custom clearing FR3, I do not see FR3 in M/06. so where is the link for FR3?
    2) account key used in FTXP is for tax only and not use for condition type, correct?
    thanks

    Dear,
    CVD Clearing or frieght Clearing both are the clearing a/c only .
    Both the conditions are having nature as delivery costs.
    u have to assign the CVD clearing a/c to the a/c key mentioned there for the respective condition type in the T-code OBYC only.
    If u r not finding the CVD clearing a/c there for FR3 key that means the key is something diff.than FR3 otherwise u cant even create PO also.
    regards,
    sujit
    Edited by: SNB on Sep 24, 2008 12:57 PM

  • Question about MAXCPU and clearing data cache

    Hi all,
    We're running MaxDB 7.6.03.15 and have following questions. I apologize for not grouping them together with my earlier set of questions along the similar lines.
    1. What would be an appropriate value for our application for MAXCPU when running on a quad processor machine. The application consists of the MaxDB along with 4 windows services and an instance of tomcat. Can we use 4 for MAXCPU or does it always need to be something less than the total number of CPUs on the machine (less than 4 here?). Please advise.
    2. When we're doing query execution time analysis we need to be able to clear data cache in between query runs. We achieve this so far by simply bringing the database offline and then online again. The problem with this approach is its time consuming and if we do 100 query runs a lot of time is spent in waiting for the database go from online to offline to online again. Please let us know if there's an alternative faster way to achieve the same.
    Thanks for your time.
    Sincerely,
    Sameer

    > 1. What would be an appropriate value for our application for MAXCPU when running on a quad processor machine. The application consists of the MaxDB along with 4 windows services and an instance of tomcat. Can we use 4 for MAXCPU or does it always need to be something less than the total number of CPUs on the machine (less than 4 here?). Please advise.
    Of course you may set MAXCPU to 4 - but you risk that the four Usertask UKTs will use up all CPU resources on your system then.
    So it is usually better to be rather defensive with this. If you're unsure about the CPU needs of your other services better try out and check starting with MAXCPU 2.
    > 2. When we're doing query execution time analysis we need to be able to clear data cache in between query runs. We achieve this so far by simply bringing the database offline and then online again. The problem with this approach is its time consuming and if we do 100 query runs a lot of time is spent in waiting for the database go from online to offline to online again. Please let us know if there's an alternative faster way to achieve the same.
    Well, x_cons pagecache_release should do that for you.
    But I never was able to really see the effect of it (e.g. reading the pages in again).
    If I'm not mistaken in this point - which is pretty easy because the command is rarely used and sparsely documented - it just moves the pages to the lower end of the lru list and thereby making them candidates for getting moved out of cache but not actually doing it.
    However why don't you just use the resource monitor to figure out how many pages are touched by your statements?
    Then you don't have to bounce your instance.
    regards,
    Lars

  • Updated : No question, just example web cam capture code

    Hi,
    I posted this example a while back, but it had some cosmetic bugs in it.
    Here's an updated version.
    Quick Start
    1. Install JMF 2.1.1e (performance pack version)
    ( see imports list in source code if you really want to run it using the older version 2.1.1c )
    2. You have to set the JMF_HOME or JMFHOME environment variable. Can't remember which one.
    "Nearly sure" it's JMF_HOME.
    3. Connect your camera
    4. run jmfinit ( may need to do a few times until it detects your camera )
    When it does, you're in business, and you can try to run the code
    5. Run java -cp .;%JMF_HOME%\lib\jmf.jar JWebCam
    known issue
    Under Java 1.5 / 5 - When capturing a frame, and then resizing that snapshots JFrame, the image did not always scale up and display.
    That does work under Java 1.3.1_06 .
    Tested on Win98 2nd edition, Java 1.3.1_06, and Creative Web Cam Pro.
    Legal stuff in plain english : This code is available for use by everyone, personal or commercial, no need to mention me in licenses or anything. It's just a demo I knocked up for myself. So I am under no obligation to support this. Use it at your own risk.... that implies you can't blame or sue me for anything that goes wrong.
    If you like the code, I'd be happy to hear whereabouts you are in the world :-)
    Also note : this is the limits of my JMF experience at present.
    If you've a separate question, post it to a new topic!
    regards,
    Owen ( Dublin, Ireland )
    import javax.swing.*;
    import javax.swing.border.*;
    import java.io.*;
    import javax.media.*;
    import javax.media.datasink.*;
    import javax.media.format.*;
    import javax.media.protocol.*;
    import javax.media.util.*;
    import javax.media.control.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import com.sun.image.codec.jpeg.*;
    // import com.sun.media.vfw.VFWCapture;         // JMF 2.1.1c version
    import com.sun.media.protocol.vfw.VFWCapture;   // JMF 2.1.1e version
    public class JWebCam extends JFrame
        implements WindowListener,  ComponentListener
        protected final static int MIN_WIDTH  = 100;  // 320;
        protected final static int MIN_HEIGHT = 100;  // 240;
        protected static int shotCounter = 1;
        protected JLabel statusBar = null;
        protected JPanel visualContainer = null;
        protected Component visualComponent = null;
        protected JToolBar toolbar = null;
        protected MyToolBarAction formatButton    = null;
        protected MyToolBarAction captureButton   = null;
        protected Player player = null;
        protected CaptureDeviceInfo webCamDeviceInfo = null;
        protected MediaLocator ml = null;
        protected Dimension imageSize = null;
        protected FormatControl formatControl = null;
        protected VideoFormat currentFormat = null;
        protected Format[] videoFormats = null;
        protected MyVideoFormat[] myFormatList = null;
        protected MyCaptureDeviceInfo[] myCaptureDevices = null;
        protected boolean initialised = false;
         * Constructor
        public JWebCam ( String frameTitle )
            super ( frameTitle );
            try
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
            catch ( Exception cnfe )
                System.out.println ("Note : Cannot load look and feel settings");
            setSize ( 320, 260 ); // default size...
            addWindowListener ( this );
            addComponentListener ( this );
            getContentPane().setLayout ( new BorderLayout() );
            visualContainer = new JPanel();
            visualContainer.setLayout ( new BorderLayout() );
            getContentPane().add ( visualContainer, BorderLayout.CENTER );
            statusBar = new JLabel ("")
                // Nasty bug workaround
                // The minimum JLabel size was determined by the text in the status bar
                // So the layoutmanager wouldn't shrink the window for the video image
                public Dimension getPreferredSize (  )
                    // get the JLabel to "allow" a minimum of 10 pixels width
                    // not to work out the minimum size from the text length
                    return ( new Dimension ( 10, super.getPreferredSize().height ) );
            statusBar.setBorder ( new EtchedBorder() );
            getContentPane().add ( statusBar, BorderLayout.SOUTH );
         * Initialise
         * @returns true if web cam is detected
        public boolean initialise ( )
            throws Exception
            MyCaptureDeviceInfo[] cams = autoDetect();
            if ( cams.length > 0 )
                if ( cams.length == 1 )
                     System.out.println ("Note : 1 web cam detected");
                     return ( initialise ( cams[0].capDevInfo ) );
                else
                    System.out.println ("Note : " + cams.length + " web cams detected");
                    Object selected = JOptionPane.showInputDialog (this,
                                                                   "Select Video format",
                                                                   "Capture format selection",
                                                                   JOptionPane.INFORMATION_MESSAGE,
                                                                   null,        //  Icon icon,
                                                                   cams, // videoFormats,
                                                                   cams[0] );
                    if ( selected != null )
                        return ( initialise ( ((MyCaptureDeviceInfo)selected).capDevInfo ) );
                    else
                        return ( initialise ( null ) );
            else
                return ( initialise ( null ) );
         * Initialise
         * @params _deviceInfo, specific web cam device if not autodetected
         * @returns true if web cam is detected
        public boolean initialise ( CaptureDeviceInfo _deviceInfo )
            throws Exception
            statusBar.setText ( "Initialising...");
            webCamDeviceInfo = _deviceInfo;
            if ( webCamDeviceInfo != null )
                statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
                try
                    setUpToolBar();
                    getContentPane().add ( toolbar, BorderLayout.NORTH );
                    ml = webCamDeviceInfo.getLocator();
                    if ( ml != null )
                        player = Manager.createRealizedPlayer ( ml );
                        if ( player != null )
                            player.start();
                            formatControl = (FormatControl)player.getControl ( "javax.media.control.FormatControl" );
                            videoFormats = webCamDeviceInfo.getFormats();
                            myFormatList = new MyVideoFormat[videoFormats.length];
                            for ( int i=0; i<videoFormats.length; i++ )
                                myFormatList[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
                            Format currFormat = formatControl.getFormat();
                            visualComponent = player.getVisualComponent();
                            if ( visualComponent != null )
                                visualContainer.add ( visualComponent, BorderLayout.CENTER );
                                if ( currFormat instanceof VideoFormat )
                                     currentFormat = (VideoFormat)currFormat;
                                     imageSize = currentFormat.getSize();
                                     visualContainer.setPreferredSize ( imageSize );
                                     setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
                                else
                                    System.err.println ("Error : Cannot get current video format");
                                invalidate();
                                pack();
                                return ( true );
                            else
                                System.err.println ("Error : Could not get visual component");
                                return ( false );
                        else
                            System.err.println ("Error : Cannot create player");
                            statusBar.setText ( "Cannot create player" );
                            return ( false );
                    else
                        System.err.println ("Error : No MediaLocator for " + webCamDeviceInfo.getName() );
                        statusBar.setText ( "No Media Locator for : " + webCamDeviceInfo.getName() );
                        return ( false );
                catch ( IOException ioEx )
                    System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
                    statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
                    return ( false );
                catch ( NoPlayerException npex )
                    statusBar.setText ("Cannot create player");
                    return ( false );
                catch ( CannotRealizeException nre )
                    statusBar.setText ( "Cannot realize player");
                    return ( false );
            else
                return ( false );
         * Dynamically create menu items
         * @returns the device info object if found, null otherwise
        public void setFormat ( VideoFormat selectedFormat )
            if ( formatControl != null )
                // player.stop();       // not needed and big performance hit
                currentFormat = selectedFormat;
                if ( visualComponent != null )
                     visualContainer.remove ( visualComponent );
                imageSize = currentFormat.getSize();
                visualContainer.setPreferredSize ( imageSize );
                statusBar.setText ( "Format : " + currentFormat );
                System.out.println ("Format : " + currentFormat );
                formatControl.setFormat ( currentFormat );
                // player.start();  // not needed and big performance hit
                visualComponent = player.getVisualComponent();
                if ( visualComponent != null )
                    visualContainer.add ( visualComponent, BorderLayout.CENTER );
                invalidate();       // let the layout manager work out the sizes
                pack();
            else
                System.out.println ("Visual component not an instance of FormatControl");
                statusBar.setText ( "Visual component cannot change format" );
        public VideoFormat getFormat ( )
            return ( currentFormat );
        protected void setUpToolBar ( )
            toolbar = new JToolBar();
            // Note : due to cosmetic glitches when undocking and docking the toolbar,
            //        I've set this to false.
            toolbar.setFloatable(false);
            // Note : If you supply the 16 x 16 bitmaps then you can replace
            // the commented line in the MyToolBarAction constructor
            formatButton    = new MyToolBarAction ( "Resolution", "BtnFormat.jpg" );
            captureButton   = new MyToolBarAction ( "Capture",    "BtnCapture.jpg" );
            toolbar.add ( formatButton );
            toolbar.add ( captureButton );
            getContentPane().add ( toolbar, BorderLayout.NORTH );
        protected void toolbarHandler ( MyToolBarAction actionBtn )
            if ( actionBtn == formatButton )
                Object selected = JOptionPane.showInputDialog (this,
                                                               "Select Video format",
                                                               "Capture format selection",
                                                               JOptionPane.INFORMATION_MESSAGE,
                                                               null,        //  Icon icon,
                                                               myFormatList, // videoFormats,
                                                               currentFormat );
                if ( selected != null )
                    setFormat ( ((MyVideoFormat)selected).format );
            else if ( actionBtn == captureButton )
                Image photo = grabFrameImage ( );
                if ( photo != null )
                    MySnapshot snapshot = new MySnapshot ( photo, new Dimension ( imageSize ) );
                else
                    System.err.println ("Error : Could not grab frame");
         * autoDetects the first web camera in the system
         * searches for video for windows ( vfw ) capture devices
         * @returns the device info object if found, null otherwise
        public MyCaptureDeviceInfo[] autoDetect ( )
            Vector list = CaptureDeviceManager.getDeviceList ( null );
            CaptureDeviceInfo devInfo = null;
            String name;
            Vector capDevices = new Vector();
            if ( list != null )
                for ( int i=0; i<list.size(); i++ )
                    devInfo = (CaptureDeviceInfo)list.elementAt ( i );
                    name = devInfo.getName();
                    if ( name.startsWith ("vfw:") )
                        System.out.println ("DeviceManager List : " + name );
                        capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
            else
                for ( int i = 0; i < 10; i++ )
                    try
                        name = VFWCapture.capGetDriverDescriptionName ( i );
                        if (name != null && name.length() > 1)
                            devInfo = com.sun.media.protocol.vfw.VFWSourceStream.autoDetect ( i );
                            if ( devInfo != null )
                                System.out.println ("VFW Autodetect List : " + name );
                                capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
                    catch ( Exception ioEx )
                        System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
                        // ignore errors detecting device
                        statusBar.setText ( "AutoDetect failed : " + ioEx.getMessage() );
            MyCaptureDeviceInfo[] detected = new MyCaptureDeviceInfo[ capDevices.size() ];
            for ( int i=0; i<capDevices.size(); i++ )
                detected[i] = (MyCaptureDeviceInfo)capDevices.elementAt ( i );
            return ( detected );
         * deviceInfo
         * @note outputs text information
        public void deviceInfo ( )
            if ( webCamDeviceInfo != null )
                Format[] formats = webCamDeviceInfo.getFormats();
                if ( ( formats != null ) && ( formats.length > 0 ) )
                for ( int i=0; i<formats.length; i++ )
                    Format aFormat = formats;
    if ( aFormat instanceof VideoFormat )
    Dimension dim = ((VideoFormat)aFormat).getSize();
    // System.out.println ("Video Format " + i + " : " + formats[i].getEncoding() + ", " + dim.width + " x " + dim.height );
    else
    System.out.println ("Error : No web cam detected");
    * grabs a frame's buffer from the web cam / device
    * @returns A frames buffer
    public Buffer grabFrameBuffer ( )
    if ( player != null )
    FrameGrabbingControl fgc = (FrameGrabbingControl)player.getControl ( "javax.media.control.FrameGrabbingControl" );
    if ( fgc != null )
    return ( fgc.grabFrame() );
    else
    System.err.println ("Error : FrameGrabbingControl is null");
    return ( null );
    else
    System.err.println ("Error : Player is null");
    return ( null );
    * grabs a frame's buffer, as an image, from the web cam / device
    * @returns A frames buffer as an image
    public Image grabFrameImage ( )
    Buffer buffer = grabFrameBuffer();
    if ( buffer != null )
    // Convert it to an image
    BufferToImage btoi = new BufferToImage ( (VideoFormat)buffer.getFormat() );
    if ( btoi != null )
    Image image = btoi.createImage ( buffer );
    if ( image != null )
    return ( image );
    else
    System.err.println ("Error : BufferToImage cannot convert buffer");
    return ( null );
    else
    System.err.println ("Error : cannot create BufferToImage instance");
    return ( null );
    else
    System.out.println ("Error : Buffer grabbed is null");
    return ( null );
    * Closes and cleans up the player
    public void playerClose ( )
    if ( player != null )
    player.close();
    player.deallocate();
    player = null;
    public void windowClosing ( WindowEvent e )
    playerClose();
    System.exit ( 1 );
    public void componentResized ( ComponentEvent e )
    Dimension dim = getSize();
    boolean mustResize = false;
    if ( dim.width < MIN_WIDTH )
    dim.width = MIN_WIDTH;
    mustResize = true;
    if ( dim.height < MIN_HEIGHT )
    dim.height = MIN_HEIGHT;
    mustResize = true;
    if ( mustResize )
    setSize ( dim );
    public void windowActivated ( WindowEvent e ) {   }
    public void windowClosed ( WindowEvent e ) {   }
    public void windowDeactivated ( WindowEvent e ) {   }
    public void windowDeiconified ( WindowEvent e ) {   }
    public void windowIconified ( WindowEvent e ) {   }
    public void windowOpened ( WindowEvent e ) {   }
    public void componentHidden(ComponentEvent e) {   }
    public void componentMoved(ComponentEvent e) {   }
    public void componentShown(ComponentEvent e) {   }
    protected void finalize ( ) throws Throwable
    playerClose();
    super.finalize();
    class MyToolBarAction extends AbstractAction
    public MyToolBarAction ( String name, String imagefile )
    // Note : Use version this if you supply your own toolbar icons
    // super ( name, new ImageIcon ( imagefile ) );
    super ( name );
    public void actionPerformed ( ActionEvent event )
    toolbarHandler ( this );
    class MyVideoFormat
    public VideoFormat format;
    public MyVideoFormat ( VideoFormat format )
    this.format = format;
    public String toString ( )
    Dimension dim = format.getSize();
    return ( format.getEncoding() + " [ " + dim.width + " x " + dim.height + " ]" );
    class MyCaptureDeviceInfo
    public CaptureDeviceInfo capDevInfo;
    public MyCaptureDeviceInfo ( CaptureDeviceInfo devInfo )
    capDevInfo = devInfo;
    public String toString ( )
    return ( capDevInfo.getName() );
    class MySnapshot extends JFrame implements ImageObserver
    protected Image photo = null;
    protected int shotNumber;
    public MySnapshot ( Image grabbedFrame, Dimension imageSize )
    super ( );
    shotNumber = shotCounter++;
    setTitle ( "Photo" + shotNumber );
    photo = grabbedFrame;
    setDefaultCloseOperation ( WindowConstants.DISPOSE_ON_CLOSE );
    int imageHeight = photo.getWidth ( this );
    int imageWidth = photo.getHeight ( this );
    setSize ( imageSize.width, imageSize.height );
    final FileDialog saveDialog = new FileDialog ( this, "Save JPEG", FileDialog.SAVE );
    final JFrame thisCopy = this;
    saveDialog.setFile ( "Photo" + shotNumber );
    addWindowListener ( new WindowAdapter()
    public void windowClosing ( WindowEvent e )
    saveDialog.show();
    String filename = saveDialog.getFile();
    if ( filename != null )
    if ( saveJPEG ( filename ) )
    JOptionPane.showMessageDialog ( thisCopy, "Saved " + filename );
    setVisible ( false );
    dispose();
    else
    JOptionPane.showMessageDialog ( thisCopy, "Error saving " + filename );
    else
    setVisible ( false );
    dispose();
    setVisible ( true );
    public void paint ( Graphics g )
    super.paint ( g );
    g.drawImage ( photo, 0, 0, getWidth(), getHeight(), Color.black, this );
    * Saves an image as a JPEG
    * @params the image to save
    * @params the filename to save the image as
    public boolean saveJPEG ( String filename )
    boolean saved = false;
    BufferedImage bi = new BufferedImage ( photo.getWidth(null),
    photo.getHeight(null),
    BufferedImage.TYPE_INT_RGB );
    Graphics2D g2 = bi.createGraphics();
    g2.drawImage ( photo, null, null );
    FileOutputStream out = null;
    try
    out = new FileOutputStream ( filename );
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder ( out );
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam ( bi );
    param.setQuality ( 1.0f, false ); // 100% high quality setting, no compression
    encoder.setJPEGEncodeParam ( param );
    encoder.encode ( bi );
    out.close();
    saved = true;
    catch ( Exception ex )
    System.out.println ("Error saving JPEG : " + ex.getMessage() );
    return ( saved );
    } // of MySnapshot
    public static void main (String[] args )
    try
    JWebCam myWebCam = new JWebCam ( "Web Cam Capture" );
    myWebCam.setVisible ( true );
    if ( !myWebCam.initialise() )
    System.out.println ("Web Cam not detected / initialised");
    catch ( Exception ex )
    ex.printStackTrace();

    Hi,
    Here's a working version.
    If there are no spaces after the "<" symbol, it thinks it's a HTML tag.
    Putting spaces in, stops this.
    cheers,
    Owen
    import javax.swing.*;
    import javax.swing.border.*;
    import java.io.*;
    import javax.media.*;
    import javax.media.datasink.*;
    import javax.media.format.*;
    import javax.media.protocol.*;
    import javax.media.util.*;
    import javax.media.control.*;
    import java.util.*;
    import java.awt.*;
    import java.awt.image.*;
    import java.awt.event.*;
    import com.sun.image.codec.jpeg.*;
    // import com.sun.media.vfw.VFWCapture;         // JMF 2.1.1c version
    import com.sun.media.protocol.vfw.VFWCapture;   // JMF 2.1.1e version
    public class JWebCam extends JFrame
        implements WindowListener,  ComponentListener
        protected final static int MIN_WIDTH  = 100;  // 320;
        protected final static int MIN_HEIGHT = 100;  // 240;
        protected static int shotCounter = 1;
        protected JLabel statusBar = null;
        protected JPanel visualContainer = null;
        protected Component visualComponent = null;
        protected JToolBar toolbar = null;
        protected MyToolBarAction formatButton    = null;
        protected MyToolBarAction captureButton   = null;
        protected Player player = null;
        protected CaptureDeviceInfo webCamDeviceInfo = null;
        protected MediaLocator ml = null;
        protected Dimension imageSize = null;
        protected FormatControl formatControl = null;
        protected VideoFormat currentFormat = null;
        protected Format[] videoFormats = null;
        protected MyVideoFormat[] myFormatList = null;
        protected MyCaptureDeviceInfo[] myCaptureDevices = null;
        protected boolean initialised = false;
         * Constructor
        public JWebCam ( String frameTitle )
            super ( frameTitle );
            try
                UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
            catch ( Exception cnfe )
                System.out.println ("Note : Cannot load look and feel settings");
            setSize ( 320, 260 ); // default size...
            addWindowListener ( this );
            addComponentListener ( this );
            getContentPane().setLayout ( new BorderLayout() );
            visualContainer = new JPanel();
            visualContainer.setLayout ( new BorderLayout() );
            getContentPane().add ( visualContainer, BorderLayout.CENTER );
            statusBar = new JLabel ("")
                // Nasty bug workaround
                // The minimum JLabel size was determined by the text in the status bar
                // So the layoutmanager wouldn't shrink the window for the video image
                public Dimension getPreferredSize (  )
                    // get the JLabel to "allow" a minimum of 10 pixels width
                    // not to work out the minimum size from the text length
                    return ( new Dimension ( 10, super.getPreferredSize().height ) );
            statusBar.setBorder ( new EtchedBorder() );
            getContentPane().add ( statusBar, BorderLayout.SOUTH );
         * Initialise
         * @returns true if web cam is detected
        public boolean initialise ( )
            throws Exception
            MyCaptureDeviceInfo[] cams = autoDetect();
            if ( cams.length > 0 )
                if ( cams.length == 1 )
                     System.out.println ("Note : 1 web cam detected");
                     return ( initialise ( cams[0].capDevInfo ) );
                else
                    System.out.println ("Note : " + cams.length + " web cams detected");
                    Object selected = JOptionPane.showInputDialog (this,
                                                                   "Select Video format",
                                                                   "Capture format selection",
                                                                   JOptionPane.INFORMATION_MESSAGE,
                                                                   null,        //  Icon icon,
                                                                   cams, // videoFormats,
                                                                   cams[0] );
                    if ( selected != null )
                        return ( initialise ( ((MyCaptureDeviceInfo)selected).capDevInfo ) );
                    else
                        return ( initialise ( null ) );
            else
                return ( initialise ( null ) );
         * Initialise
         * @params _deviceInfo, specific web cam device if not autodetected
         * @returns true if web cam is detected
        public boolean initialise ( CaptureDeviceInfo _deviceInfo )
            throws Exception
            statusBar.setText ( "Initialising...");
            webCamDeviceInfo = _deviceInfo;
            if ( webCamDeviceInfo != null )
                statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
                try
                    setUpToolBar();
                    getContentPane().add ( toolbar, BorderLayout.NORTH );
                    ml = webCamDeviceInfo.getLocator();
                    if ( ml != null )
                        player = Manager.createRealizedPlayer ( ml );
                        if ( player != null )
                            player.start();
                            formatControl = (FormatControl)player.getControl ( "javax.media.control.FormatControl" );
                            videoFormats = webCamDeviceInfo.getFormats();
                            myFormatList = new MyVideoFormat[videoFormats.length];
                            for ( int i=0; i < videoFormats.length; i++ )
                                myFormatList[i] = new MyVideoFormat ( (VideoFormat)videoFormats[i] );
                            Format currFormat = formatControl.getFormat();
                            visualComponent = player.getVisualComponent();
                            if ( visualComponent != null )
                                visualContainer.add ( visualComponent, BorderLayout.CENTER );
                                if ( currFormat instanceof VideoFormat )
                                     currentFormat = (VideoFormat)currFormat;
                                     imageSize = currentFormat.getSize();
                                     visualContainer.setPreferredSize ( imageSize );
                                     setSize ( imageSize.width, imageSize.height + statusBar.getHeight() + toolbar.getHeight() );
                                else
                                    System.err.println ("Error : Cannot get current video format");
                                invalidate();
                                pack();
                                return ( true );
                            else
                                System.err.println ("Error : Could not get visual component");
                                return ( false );
                        else
                            System.err.println ("Error : Cannot create player");
                            statusBar.setText ( "Cannot create player" );
                            return ( false );
                    else
                        System.err.println ("Error : No MediaLocator for " + webCamDeviceInfo.getName() );
                        statusBar.setText ( "No Media Locator for : " + webCamDeviceInfo.getName() );
                        return ( false );
                catch ( IOException ioEx )
                    System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
                    statusBar.setText ( "Connecting to : " + webCamDeviceInfo.getName() );
                    return ( false );
                catch ( NoPlayerException npex )
                    statusBar.setText ("Cannot create player");
                    return ( false );
                catch ( CannotRealizeException nre )
                    statusBar.setText ( "Cannot realize player");
                    return ( false );
            else
                return ( false );
         * Dynamically create menu items
         * @returns the device info object if found, null otherwise
        public void setFormat ( VideoFormat selectedFormat )
            if ( formatControl != null )
                player.stop();
                currentFormat = selectedFormat;
                if ( visualComponent != null )
                     visualContainer.remove ( visualComponent );
                imageSize = currentFormat.getSize();
                visualContainer.setPreferredSize ( imageSize );
                statusBar.setText ( "Format : " + currentFormat );
                System.out.println ("Format : " + currentFormat );
                formatControl.setFormat ( currentFormat );
                player.start();
                visualComponent = player.getVisualComponent();
                if ( visualComponent != null )
                    visualContainer.add ( visualComponent, BorderLayout.CENTER );
                invalidate();       // let the layout manager work out the sizes
                pack();
            else
                System.out.println ("Visual component not an instance of FormatControl");
                statusBar.setText ( "Visual component cannot change format" );
        public VideoFormat getFormat ( )
            return ( currentFormat );
        protected void setUpToolBar ( )
            toolbar = new JToolBar();
            // Note : due to cosmetic glitches when undocking and docking the toolbar,
            //        I've set this to false.
            toolbar.setFloatable(false);
            // Note : If you supply the 16 x 16 bitmaps then you can replace
            // the commented line in the MyToolBarAction constructor
            formatButton    = new MyToolBarAction ( "Resolution", "BtnFormat.jpg" );
            captureButton   = new MyToolBarAction ( "Capture",    "BtnCapture.jpg" );
            toolbar.add ( formatButton );
            toolbar.add ( captureButton );
            getContentPane().add ( toolbar, BorderLayout.NORTH );
        protected void toolbarHandler ( MyToolBarAction actionBtn )
            if ( actionBtn == formatButton )
                Object selected = JOptionPane.showInputDialog (this,
                                                               "Select Video format",
                                                               "Capture format selection",
                                                               JOptionPane.INFORMATION_MESSAGE,
                                                               null,        //  Icon icon,
                                                               myFormatList, // videoFormats,
                                                               currentFormat );
                if ( selected != null )
                    setFormat ( ((MyVideoFormat)selected).format );
            else if ( actionBtn == captureButton )
                Image photo = grabFrameImage ( );
                if ( photo != null )
                    MySnapshot snapshot = new MySnapshot ( photo, new Dimension ( imageSize ) );
                else
                    System.err.println ("Error : Could not grab frame");
         * autoDetects the first web camera in the system
         * searches for video for windows ( vfw ) capture devices
         * @returns the device info object if found, null otherwise
        public MyCaptureDeviceInfo[] autoDetect ( )
            Vector list = CaptureDeviceManager.getDeviceList ( null );
            CaptureDeviceInfo devInfo = null;
            String name;
            Vector capDevices = new Vector();
            if ( list != null )
                for ( int i=0; i < list.size(); i++ )
                    devInfo = (CaptureDeviceInfo)list.elementAt ( i );
                    name = devInfo.getName();
                    if ( name.startsWith ("vfw:") )
                        System.out.println ("DeviceManager List : " + name );
                        capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
            else
                for ( int i = 0; i < 10; i++ )
                    try
                        name = VFWCapture.capGetDriverDescriptionName ( i );
                        if (name != null && name.length() > 1)
                            devInfo = com.sun.media.protocol.vfw.VFWSourceStream.autoDetect ( i );
                            if ( devInfo != null )
                                System.out.println ("VFW Autodetect List : " + name );
                                capDevices.addElement ( new MyCaptureDeviceInfo ( devInfo ) );
                    catch ( Exception ioEx )
                        System.err.println ("Error connecting to [" + webCamDeviceInfo.getName() + "] : " + ioEx.getMessage() );
                        // ignore errors detecting device
                        statusBar.setText ( "AutoDetect failed : " + ioEx.getMessage() );
            MyCaptureDeviceInfo[] detected = new MyCaptureDeviceInfo[ capDevices.size() ];
            for ( int i=0; i < capDevices.size(); i++ )
                detected[i] = (MyCaptureDeviceInfo)capDevices.elementAt ( i );
            return ( detected );
         * deviceInfo
         * @note outputs text information
        public void deviceInfo ( )
            if ( webCamDeviceInfo != null )
                Format[] formats = webCamDeviceInfo.getFormats();
                if ( ( formats != null ) && ( formats.length > 0 ) )
                for ( int i=0; i < formats.length; i++ )
                    Format aFormat = formats;
    if ( aFormat instanceof VideoFormat )
    Dimension dim = ((VideoFormat)aFormat).getSize();
    // System.out.println ("Video Format " + i + " : " + formats[i].getEncoding() + ", " + dim.width + " x " + dim.height );
    else
    System.out.println ("Error : No web cam detected");
    * grabs a frame's buffer from the web cam / device
    * @returns A frames buffer
    public Buffer grabFrameBuffer ( )
    if ( player != null )
    FrameGrabbingControl fgc = (FrameGrabbingControl)player.getControl ( "javax.media.control.FrameGrabbingControl" );
    if ( fgc != null )
    return ( fgc.grabFrame() );
    else
    System.err.println ("Error : FrameGrabbingControl is null");
    return ( null );
    else
    System.err.println ("Error : Player is null");
    return ( null );
    * grabs a frame's buffer, as an image, from the web cam / device
    * @returns A frames buffer as an image
    public Image grabFrameImage ( )
    Buffer buffer = grabFrameBuffer();
    if ( buffer != null )
    // Convert it to an image
    BufferToImage btoi = new BufferToImage ( (VideoFormat)buffer.getFormat() );
    if ( btoi != null )
    Image image = btoi.createImage ( buffer );
    if ( image != null )
    return ( image );
    else
    System.err.println ("Error : BufferToImage cannot convert buffer");
    return ( null );
    else
    System.err.println ("Error : cannot create BufferToImage instance");
    return ( null );
    else
    System.out.println ("Error : Buffer grabbed is null");
    return ( null );
    * Closes and cleans up the player
    public void playerClose ( )
    if ( player != null )
    player.close();
    player.deallocate();
    player = null;
    public void windowClosing ( WindowEvent e )
    playerClose();
    System.exit ( 1 );
    public void componentResized ( ComponentEvent e )
    Dimension dim = getSize();
    boolean mustResize = false;
    if ( dim.width < MIN_WIDTH )
    dim.width = MIN_WIDTH;
    mustResize = true;
    if ( dim.height < MIN_HEIGHT )
    dim.height = MIN_HEIGHT;
    mustResize = true;
    if ( mustResize )
    setSize ( dim );
    public void windowActivated ( WindowEvent e ) {   }
    public void windowClosed ( WindowEvent e ) {   }
    public void windowDeactivated ( WindowEvent e ) {   }
    public void windowDeiconified ( WindowEvent e ) {   }
    public void windowIconified ( WindowEvent e ) {   }
    public void windowOpened ( WindowEvent e ) {   }
    public void componentHidden(ComponentEvent e) {   }
    public void componentMoved(ComponentEvent e) {   }
    public void componentShown(ComponentEvent e) {   }
    protected void finalize ( ) throws Throwable
    playerClose();
    super.finalize();
    class MyToolBarAction extends AbstractAction
    public MyToolBarAction ( String name, String imagefile )
    // Note : Use version this if you supply your own toolbar icons
    // super ( name, new ImageIcon ( imagefile ) );
    super ( name );
    public void actionPerformed ( ActionEvent event )
    toolbarHandler ( this );
    class MyVideoFormat
    public VideoFormat format;
    public MyVideoFormat ( VideoFormat format )
    this.format = format;
    public String toString ( )
    Dimension dim = format.getSize();
    return ( format.getEncoding() + " [ " + dim.width + " x " + dim.height + " ]" );
    class MyCaptureDeviceInfo
    public CaptureDeviceInfo capDevInfo;
    public MyCaptureDeviceInfo ( CaptureDeviceInfo devInfo )
    capDevInfo = devInfo;
    public String toString ( )
    return ( capDevInfo.getName() );
    class MySnapshot extends JFrame implements ImageObserver
    protected Image photo = null;
    protected int shotNumber;
    public MySnapshot ( Image grabbedFrame, Dimension imageSize )
    super ( );
    shotNumber = shotCounter++;
    setTitle ( "Photo" + shotNumber );
    photo = grabbedFrame;
    setDefaultCloseOperation ( WindowConstants.DISPOSE_ON_CLOSE );
    int imageHeight = photo.getWidth ( this );
    int imageWidth = photo.getHeight ( this );
    setSize ( imageSize.width, imageSize.height );
    final FileDialog saveDialog = new FileDialog ( this, "Save JPEG", FileDialog.SAVE );
    final JFrame thisCopy = this;
    saveDialog.setFile ( "Photo" + shotNumber );
    addWindowListener ( new WindowAdapter()
    public void windowClosing ( WindowEvent e )
    saveDialog.show();
    String filename = saveDialog.getFile();
    if ( filename != null )
    if ( saveJPEG ( filename ) )
    JOptionPane.showMessageDialog ( thisCopy, "Saved " + filename );
    setVisible ( false );
    dispose();
    else
    JOptionPane.showMessageDialog ( thisCopy, "Error saving " + filename );
    else
    setVisible ( false );
    dispose();
    setVisible ( true );
    public void paint ( Graphics g )
    super.paint ( g );
    g.drawImage ( photo, 0, 0, getWidth(), getHeight(), Color.black, this );
    * Saves an image as a JPEG
    * @params the image to save
    * @params the filename to save the image as
    public boolean saveJPEG ( String filename )
    boolean saved = false;
    BufferedImage bi = new BufferedImage ( photo.getWidth(null),
    photo.getHeight(null),
    BufferedImage.TYPE_INT_RGB );
    Graphics2D g2 = bi.createGraphics();
    g2.drawImage ( photo, null, null );
    FileOutputStream out = null;
    try
    out = new FileOutputStream ( filename );
    JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder ( out );
    JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam ( bi );
    param.setQuality ( 1.0f, false ); // 100% high quality setting, no compression
    encoder.setJPEGEncodeParam ( param );
    encoder.encode ( bi );
    out.close();
    saved = true;
    catch ( Exception ex )
    System.out.println ("Error saving JPEG : " + ex.getMessage() );
    return ( saved );
    } // of MySnapshot
    public static void main (String[] args )
    try
    JWebCam myWebCam = new JWebCam ( "Web Cam Capture" );
    myWebCam.setVisible ( true );
    if ( !myWebCam.initialise() )
    System.out.println ("Web Cam not detected / initialised");
    catch ( Exception ex )
    ex.printStackTrace();

  • JSP/Servlets functions: clear HTML tags, clear SQL code, validate E-mail

    Hello!
    I am looking for java functions, which:
    - clear HTML tags
    - clear SQL injection code
    - validate an e-mail address
    Probably there are java build-in functions for doing that.
    Maybe anyone could give me their names?
    I would be also grateful for any help, links or something.

    Hi,
    You could try using ,
    DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
    instead of
    DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
    -Amol

  • Clear textfields - code example won't work

    Hello,
    can anyone explain how I can easily clear the textfields of a web-page (especially using a processValueChange-method) ?
    I tried the following code example, but it won't work:
    //set Text:
    getTextField1.setValue("Hello world!");
    public String someButtonAction(){
        clearFields();
        return null;
    public void clearFields() {
        getTextField1.setValue(null);
    //alternative: getTextField1.setText("");
    }Thanks + regards,
    Felix

    You don't say where you have the following code:
    //set Text:
    getTextField1.setValue("Hello world!");If you have this in the wrong place it could be overwriting your cleared fields.
    See http://blogs.sun.com/roller/page/divas?entry=about_a_page_s_lifecycle

  • F-04 and F-03 Clearing T-Codes

    In an F-04 Post with Clearing entry what would the additional accounting entries look like?  In a regular F-03 clearing transaction would the only changes in the system be in the BSIS and BSAS tables?

    Hi,,
    it will effect BSIS , BSAS & BSEG
    Regards,
    R.N.Reedy

  • Question about "mod_security: Access denied with code 400"

    Dear All,
    After merged clone's configure the application tier server nodes. I can get in form window, but after merged clone's finishing tasks:1.Generate JAR files / generate message files / relink executables / copy files to destination. I can't open form window any more.
    The apache error_log will show below
    mod_security: Access denied with code 400. Pattern match "!^([-_@|#!=A-Za-z0-9/ :.$]){0,255}([-_@|#!=A-Za-z0-9/:.$]){0,255}$" at ARGS_NAMES. [hostname "hcp11et30.liteonit.com.tw"] [uri "/oprocmgr-service"] [unique_id TugHyQoG2lsAAFOwD84]
    Then referred Note 389558.1, and can login normally, But the same error messages still keeping reporting in error_log.
    Please advise?
    Thanks,
    Jackie

    Hi;
    Did you check below notes:
    Access Denied With Code 400 When Starting Forms or Calling MOD_PLSQL [ID 394587.1]
    Why do we see Error: mod_security: access denied with code 400 IN OCO pages? [ID 976473.1]
    Regard
    Helios

Maybe you are looking for

  • WCS 5.0.56.2 Auto-Provisioning

    In WCS 5.0 Cisco introduces Auto provisioning of WLCs. Unfortunately there is not much documentation available, except for option explanation. If i understood this right, Auto-Provisioning takes care of the initial setup of an out-of-the-box WLC. A v

  • Mounting a lacie firewire drive on solaris 10

    Ouch! I looked everywhere for some good instructions on sun but nada. As this is a Solaris ready (TM) drive I thought I would have better luck. After several kernal panics I finally go it going using these iffy methods. Is there a better way and did

  • Strange DNS, Group Policy & Active Directory Issues - Can't track down root issue!

    For the last few weeks, we've been getting complaints, from our developers, about not being able to authenticate on various systems.  The issues were hit & miss but still problematic enough to warrant our looking into it.  It seems to be getting wors

  • Software bug in 2310 Mobile

    I am using 2310 mobile since 6 months , yesterday i found a major bug in software : Mobile is in lock position there is no option to open the menu other than using unlock and press * , while using radio FM if i press right button which is in middle f

  • 2 New Free Elearning Courses – vSphere Data Protection Advanced and IT Business Management

    We've added two more elearning courses to the extensive libraryof free VMware training classes. vSphere Data Protection Advanced [V5.8] Fundamentals - provides information about the vSphere Data Protection Advanced backup and recovery solution for vi