Problem in saving data.

Hi all.
i am using oracle 10g forms & reports.
i have tables EXPHEAD and EXPENSES.
i populate a list item in EXPENSES using the following code:-
declare
     obj_name varchar2(40):='OBJ_G';
     status number;
     groupid recordgroup;
begin
     groupid:=create_group_from_query(obj_name,'SELECT exp_name, TO_CHAR(exp_code) exp_code FROM exphead');
     status:=populate_group(groupid);
     populate_list('expences.exp_name',groupid);
end;
DECLARE
vStatus NUMBER;
BEGIN
vStatus := POPULATE_GROUP('OBJ_G');
POPULATE_LIST('expences.exp_name', 'OBJ_G');
END;
when i change values in list items (Exp_Name) exp_code change automatically like:-
when i select RENT (Exp_Name) in list item its code (1) automatically shown in exp_code text item, i used this code on WHEN-LIST-CHANGE:-
:expences.exp_code:=:expences.exp_name;
now the problem is that data in the fields shows correctly but when i store data, in both fields exp_code is store.
means in Exp_Name field data of exp_code inserted.
hope u understand my problem
Regards
Saqib
Edited by: Saqib Alam on Jan 4, 2012 7:52 PM

means in Exp_Name field data of exp_code inserted. Yes, that is the whole point. A list item shows the description of a code. Like the department code 10 has description ACCOUNTING. You don't store ACCOUNTING in table EMP, you store department code 10 in EMP.
:expences.exp_code:=:expences.exp_name;That is a pretty strange line of code (giving a code a name).
Edited by: InoL on Jan 4, 2012 10:39 AM

Similar Messages

  • Problem while saving date field in custom table

    Hi,
    Iam facing the following problem while saving a date field in custome table
    i have a date field zdate in which the value is 02082010.
    now when i try to insert this value in the custom table it is getting updated as 20/10/0208 , but it should be 08/02/2010
    How can i correct it..
    Regards
    Kumar

    just before saving u might have to use a string reverse FM and then save it..
    CALL FUNCTION 'STRING_REVERSE'
      EXPORTING
        STRING          = p_string
        LANG            = sy-langu
    IMPORTING
       RSTRING          = r_string
    EXCEPTIONS
       TOO_SMALL        = 1
       OTHERS           = 2

  • Facing problem in saving data without overlapping in for loop

    Hi,
    I am facing problem in writting data withou overlapping if i run outer loop for 2 or more times and in inner for loop i am getting array in a way I want but when i try to build that array with logging temperature i am not able to do it. Please guide me through ths.
    Thank You
    Hnagpal
    Solved!
    Go to Solution.
    Attachments:
    data storage.vi ‏31 KB
    what i am getting.xlsx ‏10 KB
    what i want.xlsx ‏10 KB

    Thanks odessy27, Matthew Kelton, for replying.
    Matthew Kelton: Thanks for the solution i am adding outer loop so that i can increase the number of row. I am using it for some application which require me to save data several time and i used random number here but originally instead of random number there will be power meter reading and i want to save it every hour and plot it. I am also attaching a file what i made I don't know is this a good way or not. Actually i will also beneeded to plot a graph. But again how to increase a row and without replacing previous data i can write another row.
    Yes i want to make one row for each iteration.
    I attached both files in 2009 version.
    Thank You
    Himanshu Nagpal 
    Attachments:
    desired result.xlsx ‏10 KB
    data storage (1).vi ‏26 KB
    data storage.vi ‏37 KB

  • Problem in saving data in spreadshee​t that comes from DAQ

    Hi
    I am new for using the Labview. I have problem saving the data in spreadsheet. mine just save the last reading that come from DAQ. And can not figure it out .
    If  there is way to make it save all the data with the time when I start run it till I stop it,please
    Thanks in advince
    Attachments:
    2 temp recording spreadsheet Ver_ 3.vi ‏141 KB

    I've changed the architecture to something that is way better then the sequence structure you had (State Machine).  Just to give you an idea on how it could be done.
    Still the dynamic data type is in there (which I don't like), but I'm not going to change your method.
    I've cleaned up your code a bit.  It's still not perfect, but it's done in 2mins. 
    I do have one question though : why are you saving an entire column (the last) of data which contains the same value (namely the total time the test ran)???
    Kind regards,
    - Bjorn -
    Have fun using LabVIEW... and if you like my answer, please pay me back in Kudo's
    LabVIEW 5.1 - LabVIEW 2012
    Attachments:
    2 temp recording spreadsheet Ver_ 4SM.vi ‏100 KB

  • Problem with saving data in text file in Application server

    Hello Experts,
    I am trying to save a text file in application server.When I text file have less that 60000 (i.e 59999) records, it saves the file successfully, but if records in text file (saved in application server) is more than 60000 (i.e 60002), it creates a new file at the 60000th record with the continued records.
    Can anyone please advise, why it is creating a new file if records are more that 60000. I tested it with 59000 records in my internal table and it is working fine. I have not given any restriction in my program to create a new file if records are more than 60000.
    The logic I implemented is the following:
    *Open file
      open dataset g_accnt_file for output in text mode encoding utf-8.
      if sy-subrc = 0.
        clear g_header_record.
    *Building header record for Accounting Validation file
        concatenate gc_hdr_desc
                    gc_filetype
                    gc_sequence
                    gc_idntf_refresh
                    gc_cmpny_idntf
                    gc_accnt_id
                    sy-datum
                    sy-uzeit
                    gc_linde_group
                    sy-sysid
                    gc_not_used into g_header_record separated by
                                               gc_deliminator.
        transfer g_header_record to g_accnt_file.
    *Move Cost center data to file to create a detail record for Accounting
    *Validation file
        loop at gt_csks into gs_csks.
    *Remove leading Zeros
          call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
            exporting
              input  = gs_csks-kostl
            importing
              output = gs_csks-kostl.
    *      Overlay gs_csks-kostl with space.
    *      SHIFT gs_csks-kostl RIGHT DELETING TRAILING gc_space.
    *Prepare Cost Centre String
          perform prepare_costcentre_string.
    *Prepare detail record with Company Code & Cost Centre
          perform prepare_detail_record.
          clear:g_detail_record,gs_csks,g_coa.
        endloop.
    *Move Order data to file to create a detail record for Accounting
    *Validation file
        loop at gt_aufk into gs_aufk.
    *Remove leading Zeros
          call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
            exporting
              input  = gs_aufk-aufnr
            importing
              output = gs_aufk-aufnr.
    *      SHIFT gs_aufk-aufnr RIGHT DELETING TRAILING gc_space.
    *Prepare Order String
          perform prepare_order_string.
    *Prepare detail record with Company Code & Order
          perform prepare_detail_record.
          clear:g_detail_record,gs_aufk,g_coa.
        endloop.
    *Move WBS data to file to create a detail record for Accounting
    *Validation file
        loop at gt_prps into gs_prps.
          call function 'CONVERSION_EXIT_ABPSP_OUTPUT'
            exporting
              input  = gs_prps-pspnr
            importing
              output = g_wbs_element.
    *      SHIFT g_wbs_element RIGHT DELETING TRAILING gc_space.
    *Prepare WBS Element String
          perform prepare_wbs_string.
    *Prepare detail record with Company Code & WBS Element
          perform prepare_detail_record.
          clear:g_detail_record,gs_prps,g_coa.
        endloop.
    *Building trailer record for Accounting Validation file which will
    *contain the total number of detail records in file
        concatenate gc_trail_desc
                    g_total_count
                    into g_trailer_record
                    separated by gc_deliminator.
        transfer g_trailer_record to g_accnt_file.
    *Close file
        close dataset g_accnt_file.
        if sy-subrc = 0.
          message s036(/lig/fi).
        endif.
      endif.
    endform.                    " SELECT_DATA
    Edited by: Matt on Sep 30, 2010 11:02 AM - added   tags

    Hi Pankaj,
    Can u check the concatenate statement with one more data. Check the no of lines for a single file.
        concatenate gc_hdr_desc
                    gc_filetype
                    gc_sequence
                    gc_idntf_refresh
                    gc_cmpny_idntf
                    gc_accnt_id
                    sy-datum
                    sy-uzeit
                    gc_linde_group
                    sy-sysid
                    sy-subrc
                    gc_not_used into g_header_record separated by
                                               gc_deliminator.
    Regards,
    Amitava

  • Problem in Saving Data Fields to an Object

    Hi,
    I have a form which includes the User Information when you insert the user Id on to a field. When you enter the user Id in the field and submit the results get inserted into a  UserInfoBean class in java. The UserInfoBean object is retrieved to the getUserDat() in flex. The first time I do this it assignes the data to the  "userInfo" and I include this into the fields as
                               <s:TextInput id="firstNameId" text="{userInfo.FirstName}"/>
    The issue I am having is IF I do move to another section and comeback and try to look for another user the "userInfo" becomes NULL but the results.getItemAt(0) has data object UserInfoBean. When I try to print inside the getUserData() the userInfo.FirstName I get Null since the userInfo is NULL and results.getItemAt(0).FirstName I get the values.
    The code is attached below.
    Is there a way to fix this issue? How should I get the result into the userInfo?
    Thank you,
    Hass
    CODE:
    MXML Code
    <<UserInfo.mxml>>
    <fx:Script source="UserScript.as"/>
    <fx:Declarations>
    <services:DepositInfo id="userData" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true"/>
    <s:CallResponder id="getUserDataResult" result="getUserData (event)"/>
    </fx:Declarations>  
    <s:Label text="User Id:" id="userIdLb"/>  <s:TextInput id="userId" text=""/>
    <s:Button label="Show" id="showBtn" click="loadUser()"/>
    <s:TextInput id="firstNameId" text="{userInfo.FirstName}"/>
    <s:TextInput id="lastNameId" text="{userInfo.LastName}"/>
    <s:TextInput id="emailId" text="{userInfo.Email}"/>
    ActionScript Code
    <<<UserScript.as>>>
    [Bindable] public  var userInfo:UserInfoBean = new UserInfoBean();
    private function loadUser(){
    getUserDataResult.token = userData.getUserInfoData(userId.text.toString());
    private function getUserData (event:ResultEvent):void{
        var results :ArrayCollection;
        results=event.result as ArrayCollection;
        if(results.length != 0){
            userInfo=results.getItemAt(0) as UserInfoBean;

    Hi,
    all development and client independend customizing is visible at once at all clients of an SAP instance.
    You have create separate instances like YA1(100) = DEV; YA2(100) = TEST; and YA3(100) = PROD. As a customizing sandbox in DEV a separate cleient might be helpfull.
    All instances could be created at the same server in an early stage of the project. Later at least for production a separate server should be used.
    Some consultants with some experience could save costs in such a project.
    Kind regards,
    HP

  • Problem with saving data in database table.

    i have ceated on screen prgram...
    screen contains one text field of leth 40(type c)...
    if user enters some text in that and enters save button it will store in dbtable which is created by me(ztable)...
    but that text storing in big letters...even i enter the samll letters....
    i want to store as user enters in  fiels on screen
    woe can i do that?

    go to screen(painter) of that program and double clik on that field
    u will get a small screen there u check the upper/lower letters check box
    <b>Reward Points if USEFUL</b>

  • How to saving data in csv file

    I have problem with saving data in csv file. I would like save my data look
    like this example :
    excel preview :
    A B C
    1 10 11 12
    2 13 14 15
    As we see all values are in separate cell A1=10, B1=11, C1=12 ...
    so I try :
    PrintWriter wy = new PrintWriter(new FileWriter("test.csv"));
    values[0][0]="10";
    values[0][1]="11";
    values[0][2]="12";
    values[1][0]="13";
    values[1][1]="14";
    values[1][2]="15";
    for (String[] row : values){
    for (String col : row) {
    wy.print(col + "\t");
    but csv file look like :
    A1=10 11 12
    A2=13 14 15
    but B1-B2 and C1-C2 is empty
    the second steep is use Ostermiller library :
    OutputStream out;
    out = new FileOutputStream("temp.csv");
    CSVPrinter csvp = new CSVPrinter(out);
    String[][] values = new String[2][3];
    csvp.changeDelimiter('\t');
    values[0][0]="10";
    values[0][1]="11";
    values[0][2]="12";
    values[1][0]="13";
    values[1][1]="14";
    values[1][2]="15";
    csvp.println(values);
    but the result is also this same, is anyone do how to resolve this problem
    ?

    but iI don`t want to seperate with comma....value
    I
    want to seperate each value to seperate cellWhen you save the file, separate w/ comma
    When excel loads it, it will automagicarifficallyput
    it in it's own cell.what it is "w/ " ? when I separate my data with
    comma excel don`t put value to spererate cells"w/" is an abbreviation of "with". Post the code that doesn't work, along with the results you get. If it's not working with commas, you must be doing something else wrong.

  • Different values beetween front page and saved data

    Hello,
    I have problems to saved data correctly. I acquire data with Labview 6.0 and a counter/timer card. These data appear on my front page. But when I save them in a table file, their format is modified, rounded.
    For exemple: on my front page values are 20.675 , 21.012 and in my saved file these values are 20.750 and 21.000, even if I checked all the numbers format in the diagram, and declare them in extended precision.
    Where is my mistake ?
    Thank you for your help

    Hello shadok,
    that's strange :-)
    Try this simple example. If this works, then something with your data is wrong...
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome
    Attachments:
    Test_Save.vi ‏12 KB

  • Problem: new entered data is saved but I am facing one error message --- no

    This is a module program for gate entry of materials(miro). This is a simple entry form which updates z tables with data entered. I have to send the new record details automatically through mail to the particular vendor email  id from where the material has been purchased.
    Problem: new entered data is saved but I am facing one error message --- no authorization to unpack list with rfc when the program is sending list through mail.
    PROGRAM  ZMMI001_GRN_ENTRY_BARCODE  MESSAGE-ID ZMM .
    *Table Declaration
    TABLES : EKKO , EKPO , LFA1 , MARC ,
             MARD , J_1IMTCHID , EKET , MSEG,
             MKPF , ZMMT001_GRN_GATE,
             ZMMT002_GRN_ITEM.
    TABLES: ADR6.
    *Table Control Declaration
    CONTROLS : TC1 TYPE TABLEVIEW USING SCREEN 1000.
    DATA: COLS LIKE LINE OF TC1-COLS.
    *Internal Table Declaration
    DATA : BEGIN OF IT_TC1 OCCURS 0,
            SEL,
            SNO(2) TYPE C,
            ITEMCODE(18) TYPE C,
            ITEMNAME(40) TYPE C,
            QUANTITY TYPE P DECIMALS 2,
            EXCISE(13) TYPE P DECIMALS 2,
           END OF IT_TC1.
    DATA : IT_TEMP_TC1 LIKE IT_TC1 OCCURS 0  WITH HEADER LINE.
    DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE.
    DATA : IT_EKPO LIKE EKPO OCCURS 0 WITH HEADER LINE.
    DATA : IT_EKKO LIKE EKKO OCCURS 0 WITH HEADER LINE.
    DATA : IT_EKET LIKE EKET OCCURS 0 WITH HEADER LINE.
    DATA : WK_ZMMT01 LIKE ZMMT001_GRN_GATE.
    DATA : IT_ZMMT01 LIKE ZMMT001_GRN_GATE OCCURS 0 WITH HEADER LINE.
    DATA : IT_ZMMT02 LIKE ZMMT002_GRN_ITEM OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF IT_TEMP_EKPO OCCURS 0,
            EBELN LIKE EKPO-EBELN,
            EBELP LIKE EKPO-EBELP,
            MATNR LIKE EKPO-MATNR,
           END OF IT_TEMP_EKPO.
    DATA : BEGIN OF IT_MSEG OCCURS 0,
             MBLNR LIKE MSEG-MBLNR,
             MJAHR LIKE MSEG-MJAHR,
             ZEILE LIKE MSEG-ZEILE,
             BWART LIKE MSEG-BWART,
             MATNR LIKE MSEG-MATNR,
             EBELN LIKE MSEG-EBELN,
             EBELP LIKE MSEG-EBELP,
             BUDAT LIKE MKPF-BUDAT,
             MENGE LIKE MSEG-MENGE,
            END OF IT_MSEG.
    DATA : BEGIN OF IT_TEMP_MSEG OCCURS 0,
            MBLNR LIKE MSEG-MBLNR,
            MJAHR LIKE MSEG-MJAHR,
            ZEILE LIKE MSEG-ZEILE,
            BWART LIKE MSEG-BWART,
            EBELN LIKE MSEG-EBELN,
           END OF IT_TEMP_MSEG.
    DATA : BEGIN OF IT_TEMP_MKPF OCCURS 0,
            MBLNR LIKE MKPF-MBLNR,
            MJAHR LIKE MKPF-MJAHR,
            BUDAT LIKE MKPF-BUDAT,
            BKTXT LIKE MKPF-BKTXT,
           END OF IT_TEMP_MKPF.
    *Data Declaration
    DATA : WK_SNO TYPE I,
           WK_LIFNR LIKE LFA1-LIFNR,
           WK_EBELN(10) TYPE C,
           WK_VBELN(10) TYPE C,
           WK_FKDAT TYPE D,
           WK_NAME LIKE LFA1-NAME1,
           WK_SCHNO(10) TYPE C,
           WK_CHALNO(10) TYPE C,
           WK_CHALDATE(10) TYPE C,
           WK_GRNO(10) TYPE C,
           WK_GRDATE(10) TYPE C,
           WK_VEHICLE(10) TYPE C,
           WK_CARRIER(10) TYPE C,
           WK_FREIGHT(13) TYPE P DECIMALS 2,
           WK_MDOC(3) TYPE C,
           WK_DEPT(7) TYPE C,
           WK_MODE(7) TYPE C,
           WK_BASIC(13) TYPE P DECIMALS 2,
           WK_EXCISE(13) TYPE P DECIMALS 2,
           WK_TAX(13) TYPE P DECIMALS 2,
           WK_APPVAL(13) TYPE P DECIMALS 2,
           WK_CHAL(2) TYPE C,
           WK_FORM38(9) TYPE C,
           WK_COMMENT(30) TYPE C,
           WK_MAKTX(40) TYPE C,
           WK_LINES TYPE I,
           WK_TOTAL LIKE MARD-LABST,
           WK_LGORT LIKE MARD-LGORT,
           WK_EXCISE_IND,
           WK_TOT_EXCISE LIKE EKPO-NETWR,
           WK_DIFF LIKE EKPO-NETWR,
           WK_BSTYP LIKE EKKO-BSTYP,
           WK_BSART LIKE EKKO-BSART,
           WK_DIFF_QTY LIKE EKET-MENGE,
           WK_101_QTY LIKE EKET-MENGE,
           WK_102_QTY LIKE EKET-MENGE,
           WK_122_QTY LIKE EKET-MENGE,
           WK_WERKS LIKE EKPO-WERKS,
           WK_CHAR_SNO TYPE STRING,
           WK_DATE LIKE SY-DATUM,
           WK_TIME LIKE SY-UZEIT.
    DATA : WK_DATE1 LIKE SY-DATUM,
           WK_DATE2 LIKE SY-DATUM,
           WK_FISYEAR TYPE I,
           WK_CHAR_YEAR(20) TYPE C.
    DATA : V_UCOMM TYPE SY-UCOMM,
           V_INDEX(10) TYPE   C,
           V_QUANTITY(8) TYPE C.
    **DECLARATION FOR INPUT HELP*
    TYPES : BEGIN OF VALUES,
             TXZ01 LIKE EKPO-TXZ01,
             MENGE LIKE EKPO-MENGE,
             MATNR LIKE EKPO-MATNR,
            END OF VALUES.
    TYPES : BEGIN OF VALUES1,
             EBELN LIKE EKKO-EBELN,
            END OF VALUES1.
    TYPES : BEGIN OF VALUES2,
             NAME1 LIKE LFA1-NAME1,
             LIFNR LIKE LFA1-LIFNR,
            END OF VALUES2.
    DATA: PROGNAME LIKE SY-REPID,
          DYNNUM   LIKE SY-DYNNR,
          DYNPRO_VALUES TYPE TABLE OF DYNPREAD,
          FIELD_VALUE LIKE LINE OF DYNPRO_VALUES,
          VALUES_TAB TYPE TABLE OF VALUES WITH HEADER LINE,
          VALUES_TAB1 TYPE TABLE OF VALUES1,
          VALUE_EBELN TYPE TABLE OF VALUES1.
         VALUES_TAB2 TYPE TABLE OF VALUES2.
    DATA : VALUES_TAB2 TYPE VALUES2 OCCURS 0 WITH HEADER LINE.
    DATA : RETURN_TAB  LIKE DDSHRETVAL OCCURS 0 WITH HEADER LINE.
    *nidhi
    DATA: BEGIN OF IT_LFA1 OCCURS 0,
    LIFNR LIKE LFA1-LIFNR,
    ADRNR LIKE LFA1-ADRNR,
    END OF IT_LFA1.
    DATA: BEGIN OF IT_ADR6 OCCURS 0,
          ADDRNUMBER TYPE ADR6-ADDRNUMBER,
          SMTP_ADDR  TYPE ADR6-SMTP_ADDR,
                   END OF IT_ADR6.
    *nidhi
    *&      Module  FILL_TABLE_CONTROL  OUTPUT
          text
    MODULE FILL_TABLE_CONTROL OUTPUT.
      READ TABLE IT_TEMP_TC1 INTO IT_TC1 INDEX TC1-CURRENT_LINE.
    ENDMODULE.                 " FILL_TABLE_CONTROL  OUTPUT
    *&      Module  READ_TABLE_CONTROL  INPUT
          text
    MODULE READ_TABLE_CONTROL INPUT.
    *Validation for Item code
      CLEAR : EKPO-MATNR,
              EKPO-WERKS.
    IF sy-uname = 'GATE1020'.
      IF ( SY-UNAME = 'GATE1010' OR  SY-UNAME = 'GATE1020' OR
           SY-UNAME = 'GATE1030' OR  SY-UNAME = 'GATE1040' OR
           SY-UNAME = 'GATE1050' OR  SY-UNAME = 'GATE1060' OR
           SY-UNAME = 'GATE1070' OR  SY-UNAME = 'GATE1080' OR
           SY-UNAME = 'ABAP'  ).
    **SELECT SINGLE bstyp  FROM EKKO INTO WK_BSTYP  WHERE ebeln = wk_ebeln.
    **SELECT SINGLE bsart FROM EKKO INTO WK_BSART WHERE ebeln = wk_ebeln.
        READ TABLE VALUES_TAB WITH KEY MATNR = IT_TC1-ITEMCODE.
    **ELSE.
        SELECT SINGLE MATNR WERKS
                  FROM EKPO CLIENT SPECIFIED
                  INTO (EKPO-MATNR , EKPO-WERKS )
                  WHERE MANDT = SY-MANDT AND
                  EBELN = WK_EBELN AND
                  MATNR EQ IT_TC1-ITEMCODE.
    ENDIF.
        IF SY-SUBRC NE 0 AND NOT IT_TC1-ITEMCODE IS INITIAL.
      CLEAR it_tc1.
          MESSAGE E003 WITH TEXT-002.
        ELSE.
          SELECT SINGLE MAKTX FROM MAKT
                       CLIENT SPECIFIED
                       INTO WK_MAKTX WHERE
                       MANDT = SY-MANDT AND
                       MATNR = IT_TC1-ITEMCODE AND SPRAS = SY-LANGU.
        ENDIF.
      ENDIF.
    **SELECT SINGLE bstyp  FROM EKKO INTO WK_BSTYP  WHERE ebeln = wk_ebeln.
    **SELECT SINGLE bsart FROM EKKO INTO WK_BSART WHERE ebeln = wk_ebeln.
      IF ( SY-UNAME = 'GATE1010' OR  SY-UNAME = 'GATE1020' OR
           SY-UNAME = 'GATE1030' OR  SY-UNAME = 'GATE1040' OR
           SY-UNAME = 'GATE1050' OR  SY-UNAME = 'GATE1060' OR
           SY-UNAME = 'GATE1070' OR  SY-UNAME = 'GATE1080' OR  SY-UNAME =
           'ABAP'  ).
        IF WK_BSART = 'ZLR' .
    Validation for Quantity.
          IF NOT IT_TC1-QUANTITY IS INITIAL.
            READ TABLE VALUES_TAB WITH KEY MATNR = IT_TC1-ITEMCODE.
            IF SY-SUBRC EQ 0 AND IT_TC1-QUANTITY GT VALUES_TAB-MENGE.
              MESSAGE E003 WITH TEXT-013.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDIF.
    *Validation for Max.Stock Level
      CLEAR : MARC-MABST.
      SELECT SINGLE MABST FROM MARC
              CLIENT SPECIFIED
              INTO MARC-MABST
              WHERE MANDT = SY-MANDT AND
              MATNR = IT_TC1-ITEMCODE AND
              WERKS = EKPO-WERKS.
      CLEAR : MARD-LABST ,
              MARD-INSME .
    SELECT SINGLE labst insme FROM mard
              CLIENT SPECIFIED
              INTO (mard-labst , mard-insme )
              WHERE MANDT = SY-MANDT AND
              matnr = it_tc1-itemcode
              AND werks = ekpo-werks.
      SELECT  SUM( LABST ) SUM( INSME ) FROM MARD
               CLIENT SPECIFIED
               INTO (MARD-LABST , MARD-INSME )
               WHERE MANDT = SY-MANDT AND
               MATNR = IT_TC1-ITEMCODE
               AND WERKS = EKPO-WERKS.
      CLEAR : WK_TOTAL.
      WK_TOTAL = MARD-LABST + MARD-INSME + IT_TC1-QUANTITY.
      IF WK_BSART = 'ZLR'.
        IF WK_TOTAL GT MARC-MABST.
          MESSAGE E001 WITH IT_TC1-ITEMCODE.
        ENDIF.
      ENDIF.
    Appending the table control data to Internal table
      READ TABLE IT_TEMP_TC1 INDEX TC1-CURRENT_LINE.
      IT_TC1-SNO = TC1-CURRENT_LINE.
      IF SY-SUBRC EQ 0.
        MODIFY IT_TEMP_TC1 FROM IT_TC1 INDEX TC1-CURRENT_LINE.
      ELSE.
        READ TABLE IT_TEMP_TC1 WITH KEY ITEMCODE = IT_TC1-ITEMCODE.
        IF SY-SUBRC NE 0.
          IT_TC1-ITEMNAME = WK_MAKTX.
          IF IT_TC1-ITEMCODE IS INITIAL.
            CLEAR IT_TC1.
          ELSE.
            APPEND IT_TC1 TO IT_TEMP_TC1.
          ENDIF.
        ELSE.
          MESSAGE E003 WITH TEXT-004.
        ENDIF.
      ENDIF.
      CLEAR : J_1IMTCHID-J_1ICAPIND.
      SELECT SINGLE J_1ICAPIND FROM J_1IMTCHID
                    CLIENT SPECIFIED
                    INTO  J_1IMTCHID-J_1ICAPIND
                    WHERE MANDT = SY-MANDT AND
                    MATNR = IT_TC1-ITEMCODE AND
                    WERKS = EKPO-WERKS.
      IF SY-SUBRC EQ 0.
        IF J_1IMTCHID-J_1ICAPIND = 'N'.
          WK_EXCISE_IND = 'N'.
        ELSE.
          WK_EXCISE_IND = 'E'.
        ENDIF.
      ENDIF.
    ENDMODULE.                 " READ_TABLE_CONTROL  INPUT
    *&      Module  USER_COMMAND_1000  INPUT
          text
    MODULE USER_COMMAND_1000 INPUT.
      V_UCOMM = SY-UCOMM.
      CASE V_UCOMM.
        WHEN 'WK_SAVE'.
          IF WK_APPVAL > 0.
            IF ( SY-UNAME = 'STORE1010'  OR SY-UNAME = 'STORE1020' OR
                 SY-UNAME = 'STORE1030'  OR SY-UNAME = 'STORE1040' OR
                 SY-UNAME = 'STORE1050'  OR SY-UNAME = 'STORE1060' OR
                 SY-UNAME = 'STORE1070'  OR SY-UNAME = 'STORE1080'  ).
              CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
                EXPORTING
                  INPUT  = WK_VBELN
                IMPORTING
                  OUTPUT = WK_VBELN.
              SELECT * FROM EKKO INTO TABLE IT_EKKO WHERE EBELN = WK_EBELN
              AND
                                                          LOEKZ NE 'X'.
              IF SY-SUBRC EQ 0.
                READ TABLE IT_EKKO INDEX 1.
                WK_BSTYP = IT_EKKO-BSTYP.
              ENDIF.
              SELECT * FROM EKPO CLIENT SPECIFIED
              INTO TABLE IT_EKPO WHERE
              MANDT = SY-MANDT AND
              EBELN = WK_EBELN AND LOEKZ NE 'X'.
              SORT IT_EKPO BY EBELN EBELP.
              IF WK_BSTYP = 'L'.
                SELECT * FROM EKET CLIENT SPECIFIED
                INTO TABLE IT_EKET WHERE
                MANDT = SY-MANDT AND
                EBELN = WK_EBELN.
                IF SY-SUBRC EQ 0.
                  SORT IT_EKET BY EBELN EBELP ETENR.
                  LOOP AT IT_EKPO.
                    CLEAR WK_DIFF_QTY.
                    LOOP AT IT_EKET WHERE EBELN = IT_EKPO-EBELN
                                      AND EBELP = IT_EKPO-EBELP
                                      AND EINDT LE SY-DATUM.
                      WK_DIFF_QTY = WK_DIFF_QTY + IT_EKET-MENGE -
                      IT_EKET-WEMNG.
                    ENDLOOP.
                    IF WK_DIFF_QTY GT 0.
                      IT_TEMP_EKPO-EBELN = IT_EKET-EBELN.
                      IT_TEMP_EKPO-EBELP = IT_EKET-EBELP.
                      IT_TEMP_EKPO-MATNR = IT_EKPO-MATNR.
                      APPEND IT_TEMP_EKPO.
                    ENDIF.
                  ENDLOOP.
                ENDIF.
              ELSEIF WK_BSTYP = 'F'.
                SELECT * FROM EKET
                CLIENT SPECIFIED
                INTO TABLE IT_EKET
                WHERE MANDT = SY-MANDT AND
                EBELN = IT_EKPO-EBELN.
                LOOP AT IT_EKPO.
                  CLEAR : WK_DIFF_QTY.
                  READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
                                              EBELP = IT_EKPO-EBELP.
                  IF SY-SUBRC EQ 0.
                    WK_DIFF_QTY = IT_EKPO-MENGE - IT_EKET-WEMNG.
                  ENDIF.
                  IF WK_DIFF_QTY GT 0.
                    IT_TEMP_EKPO-EBELN = IT_EKET-EBELN.
                    IT_TEMP_EKPO-EBELP = IT_EKET-EBELP.
                    IT_TEMP_EKPO-MATNR = IT_EKPO-MATNR.
                    APPEND IT_TEMP_EKPO.
                  ENDIF.
                ENDLOOP.
              ENDIF.
              SORT IT_TEMP_EKPO BY EBELN EBELP.
              PERFORM BDC_DYNPRO      USING 'SAPLMIGO' '0001'.
              PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=OK_GO'.
              PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                       'GODYNPRO-PO_NUMBER'.
              PERFORM BDC_FIELD       USING 'GODYNPRO-PO_NUMBER'
                                       WK_EBELN.
              PERFORM BDC_DYNPRO      USING 'SAPLMIGO' '0001'.
              PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                       '=OK_GO'.
              IF WK_EXCISE_IND = 'E'.
                PERFORM BDC_FIELD       USING 'J_1IEXHEAD-EXNUM'
                                         WK_VBELN.
                PERFORM BDC_FIELD       USING 'J_1IEXHEAD-EXDAT'
                                        WK_FKDAT.
                PERFORM BDC_FIELD       USING 'GOHEAD-LFSNR'
                                         WK_VBELN.
              ELSE.
                PERFORM BDC_FIELD       USING 'GOHEAD-LFSNR'
                                         WK_VBELN.
              ENDIF.
              CLEAR : WK_CHAR_SNO.
              WK_CHAR_SNO = WK_SNO.
              CONDENSE WK_CHAR_SNO NO-GAPS.
              PERFORM BDC_FIELD       USING 'GOHEAD-BKTXT'
                                       WK_CHAR_SNO.
              LOOP AT IT_TEMP_TC1.
                READ TABLE IT_TEMP_EKPO WITH KEY MATNR =
                IT_TEMP_TC1-ITEMCODE.
                IF SY-SUBRC EQ 0.
                  CLEAR V_INDEX.
                  V_INDEX = SY-TABIX.
                  CONDENSE V_INDEX NO-GAPS.
                  PERFORM BDC_DYNPRO      USING 'SAPLMIGO' '0001'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=OK_GO'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                           'GODYNPRO-DETAIL_ZEILE'.
                  PERFORM BDC_FIELD       USING 'GODYNPRO-DETAIL_ZEILE'
                  PERFORM BDC_FIELD       USING 'GODYNPRO-DETAIL_ZEILE'
                                           V_INDEX.
                  PERFORM BDC_DYNPRO      USING 'SAPLMIGO' '0001'.
                  PERFORM BDC_FIELD       USING 'BDC_OKCODE'
                                           '=OK_GO'.
                  PERFORM BDC_FIELD       USING 'BDC_CURSOR'
                                           'GOITEM-ERFMG'.
                  PERFORM BDC_FIELD       USING 'GOITEM-ERFMG'
                  CLEAR V_QUANTITY.
                  V_QUANTITY = IT_TEMP_TC1-QUANTITY.
                  CONDENSE V_QUANTITY NO-GAPS.
                  PERFORM BDC_FIELD       USING 'GOITEM-ERFMG'
                                           V_QUANTITY.
                  PERFORM BDC_FIELD       USING 'GOITEM-LSMNG'
                                          V_QUANTITY.
                perform bdc_field       using 'GOITEM-LGOBE'
                                        WK_LGORT.
                ENDIF.
              ENDLOOP.
              CALL TRANSACTION 'MIGO' USING BDCDATA
                              MODE   'E'
                              UPDATE 'L'.
              IF SY-SUBRC NE 0.
                MESSAGE E003 WITH TEXT-003.
                LOOP AT SCREEN.
                  SCREEN-INPUT = 1.
                  MODIFY SCREEN.
                ENDLOOP.
              ENDIF.
              LEAVE PROGRAM.
            ELSE.
              CLEAR : WK_TOT_EXCISE.
              IF NOT WK_EXCISE IS INITIAL.
                LOOP AT IT_TEMP_TC1.
                  READ TABLE IT_EKPO WITH KEY MATNR = IT_TEMP_TC1-ITEMCODE.
                  IF SY-SUBRC EQ 0.
                    WK_TOT_EXCISE = WK_TOT_EXCISE +
               ( ( ( IT_EKPO-NETWR / IT_EKPO-MENGE ) * 16  / 100 )
    IT_TEMP_TC1-QUANTITY ).
                  ENDIF.
                ENDLOOP.
                WK_DIFF = WK_EXCISE - WK_TOT_EXCISE.
                IF WK_DIFF LE 0.
                  WK_DIFF = -1 * WK_DIFF.
                ENDIF.
                IF WK_DIFF GE 1.
                  WK_COMMENT = 'Difference in Excise. Please Check!'.
                ENDIF.
              ENDIF.
              SELECT * FROM EKPO CLIENT SPECIFIED
              INTO TABLE IT_EKPO WHERE
              MANDT = SY-MANDT AND
              EBELN = WK_EBELN.
              IF SY-SUBRC EQ 0.
                READ TABLE IT_EKPO INDEX 1.
                WK_WERKS = IT_EKPO-WERKS.
              ENDIF.
              SELECT * FROM ZMMT001_GRN_GATE
              CLIENT SPECIFIED
              INTO TABLE IT_ZMMT01
              WHERE MANDT = SY-MANDT AND
              WERKS = WK_WERKS.
              IF SY-SUBRC EQ 0.
                SORT IT_ZMMT01 BY SERIAL DESCENDING.
                READ TABLE IT_ZMMT01 INDEX 1.
                WK_SNO = IT_ZMMT01-SERIAL + 1.
              ELSE.
                WK_SNO = 1.
              ENDIF.
              CLEAR WK_ZMMT01.
              WK_ZMMT01-MANDT = SY-MANDT.
              WK_ZMMT01-SERIAL = WK_SNO.
              WK_ZMMT01-WERKS = WK_WERKS.
              WK_ZMMT01-EBELN = WK_EBELN.
              WK_ZMMT01-LIFNR = WK_LIFNR.
              WK_ZMMT01-CHALNO = WK_CHALNO.
              WK_ZMMT01-CHALDATE = WK_CHALDATE.
              WK_ZMMT01-BILLNO = WK_VBELN.
              WK_ZMMT01-BILLDATE = WK_FKDAT.
              WK_ZMMT01-GRNUMBER = WK_GRNO.
              WK_ZMMT01-GRDATE = WK_GRDATE.
              WK_ZMMT01-VEHICLE = WK_VEHICLE.
              WK_ZMMT01-CARRIER = WK_CARRIER.
              WK_ZMMT01-FREIGHT = WK_FREIGHT.
              WK_ZMMT01-MDOC = WK_MDOC.
              WK_ZMMT01-DEPT = WK_DEPT.
              WK_ZMMT01-PAYMODE = WK_MODE.
              WK_ZMMT01-BASIC = WK_BASIC.
              WK_ZMMT01-EXCISE = WK_EXCISE.
              WK_ZMMT01-TAXAMT = WK_TAX.
              WK_ZMMT01-APPVAL = WK_APPVAL.
              WK_ZMMT01-CHALINV = WK_CHAL.
              WK_ZMMT01-FORM38 = WK_FORM38.
              WK_ZMMT01-COMMENTS = WK_COMMENT.
              WK_ZMMT01-CDATE    = SY-DATUM.
              WK_ZMMT01-CTIME    = SY-UZEIT.
              WK_ZMMT01-PERSON   = SY-UNAME.
              IF WK_FKDAT+4(2) = '04' OR
                 WK_FKDAT+4(2) = '05' OR
                 WK_FKDAT+4(2) = '06' OR
                 WK_FKDAT+4(2) = '07' OR
                 WK_FKDAT+4(2) = '08' OR
                 WK_FKDAT+4(2) = '09' OR
                 WK_FKDAT+4(2) = '10' OR
                 WK_FKDAT+4(2) = '11' OR
                 WK_FKDAT+4(2) = '12'.
                WK_DATE10(4) = WK_FKDAT0(4).
                WK_DATE1+4(2) = '04'.
                WK_DATE1+6(2) = '01'.
              ELSEIF
                 WK_FKDAT+4(2) = '01' OR
                 WK_FKDAT+4(2) = '02' OR
                 WK_FKDAT+4(2) = '03'.
                WK_FISYEAR = WK_FKDAT+0(4).
                WK_FISYEAR = WK_FISYEAR - 1.
                WK_CHAR_YEAR = WK_FISYEAR.
                CONDENSE WK_CHAR_YEAR NO-GAPS.
                WK_DATE1+0(4) = WK_CHAR_YEAR.
                WK_DATE1+4(2) = '04'.
                WK_DATE1+6(2) = '01'.
              ELSE.
              ENDIF.
    nidhi
              SELECT LIFNR ADRNR FROM LFA1 INTO TABLE IT_LFA1 WHERE LIFNR =
              WK_ZMMT01-LIFNR.
              SELECT ADDRNUMBER SMTP_ADDR FROM ADR6 INTO TABLE IT_ADR6 FOR
    ALL ENTRIES IN IT_LFA1 WHERE ADDRNUMBER = IT_LFA1-ADRNR.
              SELECT SINGLE * FROM ZMMT001_GRN_GATE
              CLIENT SPECIFIED
              WHERE MANDT = SY-MANDT AND
              WERKS = WK_WERKS AND
              LIFNR = WK_LIFNR AND
              BILLNO = WK_VBELN AND
              BILLDATE GE WK_DATE1.
              IF SY-SUBRC EQ 0.
                MESSAGE E003 WITH TEXT-006.
              ENDIF.
              CLEAR IT_ZMMT02.
              REFRESH IT_ZMMT02.
              LOOP AT IT_TEMP_TC1.
                IT_ZMMT02-MANDT = SY-MANDT.
                IT_ZMMT02-SERIAL = WK_SNO.
                IT_ZMMT02-WERKS = WK_WERKS.
                IT_ZMMT02-EBELN = WK_EBELN.
                IT_ZMMT02-ITEMCODE = IT_TEMP_TC1-ITEMCODE.
                IT_ZMMT02-DESCRIPTION = IT_TEMP_TC1-ITEMNAME.
                IT_ZMMT02-QUANTITY = IT_TEMP_TC1-QUANTITY.
                IT_ZMMT02-EXCISE = IT_TEMP_TC1-EXCISE.
                APPEND IT_ZMMT02.
                CLEAR IT_ZMMT02.
              ENDLOOP.
              IF IT_ZMMT02[] IS INITIAL.
                MESSAGE E003 WITH TEXT-007.
              ENDIF.
              IF SY-UNAME = 'GATE1010' AND WK_WERKS NE '1010'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1020' AND WK_WERKS NE '1020'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1030' AND WK_WERKS NE '1030'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1040' AND WK_WERKS NE '1040'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1050' AND WK_WERKS NE '1050'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1060' AND WK_WERKS NE '1060'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'ABAP' AND WK_WERKS NE 'ABAP'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1070' AND WK_WERKS NE '1070'.
                MESSAGE E003 WITH TEXT-008.
              ELSEIF SY-UNAME = 'GATE1080' AND WK_WERKS NE '1080'.
                MESSAGE E003 WITH TEXT-008.
              ENDIF.
              INSERT ZMMT001_GRN_GATE FROM WK_ZMMT01.
              INSERT ZMMT002_GRN_ITEM FROM TABLE IT_ZMMT02.
              IF SY-SUBRC EQ 0.
                COMMIT WORK.
                MESSAGE I002 WITH WK_SNO.
    ********nidhi*******************************************************
                CALL SCREEN 1001.
                CLEAR WK_LIFNR.
                CLEAR WK_EBELN.
                CLEAR WK_NAME.
                CLEAR WK_SCHNO.
                CLEAR WK_CHALNO.
                CLEAR WK_CHALDATE.
                CLEAR WK_VBELN.
                CLEAR WK_FKDAT.
                CLEAR WK_GRNO.
                CLEAR WK_GRDATE.
                CLEAR WK_VEHICLE.
                CLEAR WK_CARRIER.
                CLEAR WK_FREIGHT.
                CLEAR WK_MDOC.
                CLEAR WK_DEPT.
                CLEAR WK_MODE.
                CLEAR WK_BASIC.
                CLEAR WK_EXCISE.
                CLEAR WK_TAX.
                CLEAR WK_APPVAL.
                CLEAR WK_CHAL.
                CLEAR WK_FORM38.
                REFRESH IT_TEMP_TC1.
                CLEAR WK_FISYEAR.
                CLEAR WK_DATE1.
                CLEAR WK_CHAR_YEAR.
             CALL TRANSACTION 'ZMMI001'.
              ELSE.
                ROLLBACK WORK.
                MESSAGE E003 WITH TEXT-006.
              ENDIF.
            ENDIF.
          ELSE.
            MESSAGE E009 WITH TEXT-014.
          ENDIF.
        WHEN 'WK_EXIT'.
        WHEN 'WK_CLEAR'.
          CLEAR WK_LIFNR.
          CLEAR WK_EBELN.
          CLEAR WK_NAME.
          CLEAR WK_SCHNO.
          CLEAR WK_CHALNO.
          CLEAR WK_CHALDATE.
          CLEAR WK_VBELN.
          CLEAR WK_FKDAT.
          CLEAR WK_GRNO.
          CLEAR WK_GRDATE.
          CLEAR WK_VEHICLE.
          CLEAR WK_CARRIER.
          CLEAR WK_FREIGHT.
          CLEAR WK_MDOC.
          CLEAR WK_DEPT.
          CLEAR WK_MODE.
          CLEAR WK_BASIC.
          CLEAR WK_EXCISE.
          CLEAR WK_TAX.
          CLEAR WK_APPVAL.
          CLEAR WK_CHAL.
          CLEAR WK_FORM38.
          REFRESH IT_TEMP_TC1 .
          CLEAR WK_FISYEAR.
          CLEAR WK_DATE1.
          CLEAR WK_CHAR_YEAR.
        WHEN 'DELETE'.
          DELETE IT_TEMP_TC1 WHERE SEL = 'X'.
      ENDCASE.
    ENDMODULE.                 " USER_COMMAND_1000  INPUT
           Start new screen                                              *
    FORM BDC_DYNPRO USING PROGRAM DYNPRO.
      CLEAR BDCDATA.
      BDCDATA-PROGRAM  = PROGRAM.
      BDCDATA-DYNPRO   = DYNPRO.
      BDCDATA-DYNBEGIN = 'X'.
      APPEND BDCDATA.
    ENDFORM.                    "BDC_DYNPRO
           Insert field                                                  *
    FORM BDC_FIELD USING FNAM FVAL.
    IF FVAL <> NODATA.
      CLEAR BDCDATA.
      BDCDATA-FNAM = FNAM.
      BDCDATA-FVAL = FVAL.
      APPEND BDCDATA.
    ENDIF.
    ENDFORM.                    "BDC_FIELD
    *&      Module  STATUS_1000  OUTPUT
          text
    MODULE STATUS_1000 OUTPUT.
      SET PF-STATUS 'GRN'.
      SET TITLEBAR 'GRN'.
      PROGNAME = SY-REPID.
      DYNNUM   = SY-DYNNR.
      CLEAR: FIELD_VALUE, DYNPRO_VALUES.
      FIELD_VALUE-FIELDNAME = 'IT_TC1-ITEMCODE'.
      APPEND FIELD_VALUE TO DYNPRO_VALUES.
      FIELD_VALUE-FIELDNAME = 'WK_EBELN'.
      APPEND FIELD_VALUE TO DYNPRO_VALUES.
      FIELD_VALUE-FIELDNAME = 'WK_LIFNR'.
      APPEND FIELD_VALUE TO DYNPRO_VALUES.
      LOOP AT SCREEN.
        IF SCREEN-NAME NE 'WK_COMMENT'.
          SCREEN-INPUT = 1.
        ENDIF.
        MODIFY SCREEN.
      ENDLOOP.
      IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
           SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
           SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
           SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR  SY-UNAME =
           'ABAP' ).
        LOOP AT SCREEN.
          IF SCREEN-NAME = 'WK_SNO' OR
             SCREEN-NAME = 'SNO' OR
             SCREEN-NAME = 'WK_COMMENT' .
            SCREEN-INVISIBLE = 1.
            SCREEN-ACTIVE = 0.
            SCREEN-INPUT = 0.
            SCREEN-OUTPUT = 0.
          ENDIF.
          MODIFY SCREEN.
        ENDLOOP.
        IF WK_LIFNR IS INITIAL.
          SET CURSOR FIELD 'WK_LIFNR'.
        ELSEIF WK_EBELN IS INITIAL.
          SET CURSOR FIELD 'WK_EBELN'.
        ELSEIF WK_VBELN IS INITIAL.
          SET CURSOR FIELD 'WK_VBELN'.
        ELSEIF WK_FKDAT IS INITIAL.
          SET CURSOR FIELD 'WK_FKDAT'.
        ENDIF.
      ELSE.
        IF NOT WK_SNO IS INITIAL.
          IF SY-UNAME = 'STORE1010'.
            WK_WERKS = '1010'.
          ELSEIF SY-UNAME = 'STORE1020'.
            WK_WERKS = '1020'.
          ELSEIF SY-UNAME = 'STORE1030'.
            WK_WERKS = '1030'.
          ELSEIF SY-UNAME = 'STORE1040'.
            WK_WERKS = '1040'.
          ELSEIF SY-UNAME = 'STORE1050'.
            WK_WERKS = '1050'.
          ELSEIF SY-UNAME = 'STORE1060'.
            WK_WERKS = '1060'.
          ELSEIF SY-UNAME = 'STORE1070'.
            WK_WERKS = '1070'.
          ELSEIF SY-UNAME = 'STORE1080'.
            WK_WERKS = '1080'.
          ENDIF.
          SELECT SINGLE * FROM ZMMT001_GRN_GATE INTO WK_ZMMT01
                       WHERE SERIAL = WK_SNO AND
                       WERKS = WK_WERKS.
          IF SY-SUBRC EQ 0.
            WK_WERKS = WK_ZMMT01-WERKS.
            WK_EBELN = WK_ZMMT01-EBELN.
            WK_LIFNR = WK_ZMMT01-LIFNR.
            WK_CHALNO = WK_ZMMT01-CHALNO.
            WK_CHALDATE = WK_ZMMT01-CHALDATE.
            WK_VBELN = WK_ZMMT01-BILLNO.
            WK_FKDAT = WK_ZMMT01-BILLDATE.
            WK_GRNO = WK_ZMMT01-GRNUMBER.
            WK_GRDATE = WK_ZMMT01-GRDATE.
            WK_VEHICLE = WK_ZMMT01-VEHICLE.
            WK_CARRIER = WK_ZMMT01-CARRIER.
            WK_FREIGHT = WK_ZMMT01-FREIGHT.
            WK_MDOC = WK_ZMMT01-MDOC.
            WK_DEPT = WK_ZMMT01-DEPT.
            WK_MODE = WK_ZMMT01-PAYMODE.
            WK_BASIC = WK_ZMMT01-BASIC.
            WK_EXCISE = WK_ZMMT01-EXCISE.
            WK_TAX = WK_ZMMT01-TAXAMT.
            WK_APPVAL = WK_ZMMT01-APPVAL.
            WK_CHAL = WK_ZMMT01-CHALINV.
            WK_FORM38 = WK_ZMMT01-FORM38.
            WK_COMMENT = WK_ZMMT01-COMMENTS.
            SELECT * FROM ZMMT002_GRN_ITEM INTO TABLE IT_ZMMT02
                            WHERE SERIAL = WK_SNO AND
                            WERKS = WK_WERKS.
            IF SY-SUBRC EQ 0.
              CLEAR IT_TEMP_TC1.
              REFRESH IT_TEMP_TC1.
              LOOP AT IT_ZMMT02.
                IT_TEMP_TC1-SNO = SY-TABIX.
                IT_TEMP_TC1-ITEMCODE = IT_ZMMT02-ITEMCODE.
                IT_TEMP_TC1-ITEMNAME = IT_ZMMT02-DESCRIPTION.
                IT_TEMP_TC1-QUANTITY = IT_ZMMT02-QUANTITY.
                APPEND IT_TEMP_TC1.
                CLEAR IT_TEMP_TC1.
              ENDLOOP.
            ENDIF.
          ENDIF.
          LOOP AT SCREEN.
            IF ( SCREEN-NAME NE 'WK_SNO' ) AND
               ( SCREEN-NAME NE 'WK_SAVE' ) AND
               ( SCREEN-NAME NE 'WK_CLEAR' ) AND
               ( SCREEN-NAME NE 'WK_EXIT' ).
              SCREEN-INPUT = 0.
            ENDIF.
            MODIFY SCREEN.
          ENDLOOP.
          LOOP AT TC1-COLS INTO COLS WHERE INDEX GT 0.
            COLS-SCREEN-INPUT = '0'.
            MODIFY TC1-COLS FROM COLS INDEX SY-TABIX.
          ENDLOOP.
        ENDIF.
      ENDIF.
      WK_DATE = SY-DATUM.
      WK_TIME = SY-UZEIT.
      TC1-LINES = 20.
    ENDMODULE.                 " STATUS_1000  OUTPUT
    *&      Module  EXIT_1000  INPUT
          text
    MODULE EXIT_1000 INPUT.
      CASE SY-UCOMM.
        WHEN 'BACK' OR 'CANCEL' OR 'EXIT' OR 'WK_EXIT'.
          LEAVE PROGRAM.
      ENDCASE.
    ENDMODULE.                 " EXIT_1000  INPUT
    *&      Module  ITEM_CODE  INPUT
          text
    MODULE ITEM_CODE INPUT.
      REFRESH : VALUES_TAB.
      CLEAR : VALUES_TAB.
      IF ( SY-UNAME = 'GATE1020' OR
    SY-UNAME = 'GATE1010' OR
    SY-UNAME = 'GATE1030' OR
    SY-UNAME = 'GATE1040' OR
    SY-UNAME = 'GATE1050' OR
    SY-UNAME = 'GATE1060' OR
    SY-UNAME = 'GATE1070' OR
    SY-UNAME = 'STORE1020' OR
    SY-UNAME = 'STORE1030' OR
    SY-UNAME = 'STORE1040' OR
    SY-UNAME = 'STORE1050' OR
    SY-UNAME = 'STORE1060' OR
    SY-UNAME = 'STORE1070' OR
    SY-UNAME = 'STORE1010' OR
           SY-UNAME = 'ABAP'  ).
        SELECT * FROM EKKO CLIENT SPECIFIED
        INTO TABLE IT_EKKO WHERE
        MANDT = SY-MANDT AND
        EBELN = WK_EBELN AND
        LOEKZ NE 'X'.
        IF SY-SUBRC EQ 0.
          READ TABLE IT_EKKO INDEX 1.
          WK_BSTYP = IT_EKKO-BSTYP.
          WK_BSART = IT_EKKO-BSART.
        ENDIF.
          if wk_bsart = 'ZLR'.
        SELECT * FROM EKPO CLIENT SPECIFIED
        INTO TABLE IT_EKPO WHERE
        MANDT = SY-MANDT AND
        EBELN = WK_EBELN AND
        LOEKZ NE 'X'.
        SORT IT_EKPO BY EBELN EBELP.
        IF WK_BSTYP = 'L' AND WK_BSART = 'ZLR'.
          SELECT * FROM EKET CLIENT SPECIFIED
          INTO TABLE IT_EKET WHERE
          MANDT = SY-MANDT AND
          EBELN = WK_EBELN.
          IF SY-SUBRC EQ 0.
            SORT IT_EKET BY EBELN EBELP ETENR.
            LOOP AT IT_EKPO.
              CLEAR WK_DIFF_QTY.
              LOOP AT IT_EKET WHERE EBELN = IT_EKPO-EBELN
                                AND EBELP = IT_EKPO-EBELP
                                AND EINDT LE SY-DATUM.
                WK_DIFF_QTY = WK_DIFF_QTY + IT_EKET-MENGE - IT_EKET-WEMNG.
              ENDLOOP.
              IF WK_DIFF_QTY GT 0.
                VALUES_TAB-TXZ01 = IT_EKPO-TXZ01.
                VALUES_TAB-MENGE = WK_DIFF_QTY.
                VALUES_TAB-MATNR = IT_EKPO-MATNR.
                APPEND VALUES_TAB.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ELSEIF WK_BSTYP = 'F'.
         SELECT mseg~mblnr
                mseg~mjahr
                mseg~zeile
                mseg~bwart
                mseg~matnr
                mseg~ebeln
                mseg~ebelp
                mkpf~budat
                mseg~menge INTO TABLE it_mseg
                FROM mkpf INNER JOIN mseg
                ON mkpfmblnr EQ msegmblnr
                AND mkpfmjahr EQ msegmjahr
    FOR ALL entries IN it_ekpo
    WHERE bwart IN ('101','122','102')
    AND werks = it_ekpo-werks
    AND ebeln = it_ekpo-ebeln
    AND ebelp = it_ekpo-ebelp.
          SELECT * FROM EKET CLIENT SPECIFIED
          INTO TABLE IT_EKET
          WHERE MANDT = SY-MANDT AND
          EBELN = IT_EKPO-EBELN.
          LOOP AT IT_EKPO.
            CLEAR : WK_DIFF_QTY.
                   wk_101_qty,
                   wk_102_qty,
                   wk_122_qty.
           LOOP AT it_mseg WHERE ebeln = it_ekpo-ebeln AND
                                 ebelp = it_ekpo-ebelp.
             IF it_mseg-bwart = '101'.
               wk_101_qty = wk_101_qty + it_mseg-menge.
             ENDIF.
             IF it_mseg-bwart = '102'.
               wk_102_qty = wk_102_qty + it_mseg-menge.
             ENDIF.
             IF it_mseg-bwart = '122'.
               wk_122_qty = wk_122_qty + it_mseg-menge.
             ENDIF.
           ENDLOOP.
           if not it_mseg[] is initial.
           wk_diff_qty = it_ekpo-menge - wk_101_qty
                                 - wk_102_qty - wk_122_qty.
           else.
            wk_diff_qty = it_ekpo-menge.
           endif.
            READ TABLE IT_EKET WITH KEY EBELN = IT_EKPO-EBELN
                                        EBELP = IT_EKPO-EBELP.
            IF SY-SUBRC EQ 0.
              WK_DIFF_QTY = IT_EKPO-MENGE - IT_EKET-WEMNG.
            ENDIF.
           IF wk_diff_qty LE it_ekpo-menge.
            IF WK_DIFF_QTY GT 0.
              VALUES_TAB-TXZ01 = IT_EKPO-TXZ01.
              VALUES_TAB-MENGE = WK_DIFF_QTY.
              VALUES_TAB-MATNR = IT_EKPO-MATNR.
              APPEND VALUES_TAB.
            ENDIF.
          ENDLOOP.
           ENDIF.
        ELSE.
          SELECT TXZ01
          MATNR FROM EKPO CLIENT SPECIFIED
          INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
          WHERE MANDT = SY-MANDT AND
          EBELN = WK_EBELN AND
          LOEKZ NE 'X'.
        ENDIF.
      ELSE.
        SELECT TXZ01
              MATNR FROM EKPO CLIENT SPECIFIED
              INTO CORRESPONDING FIELDS OF TABLE VALUES_TAB
               WHERE MANDT = SY-MANDT AND
               EBELN = WK_EBELN AND
               LOEKZ NE 'X'.
      ENDIF.
      SORT VALUES_TAB BY TXZ01.
      CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
        EXPORTING
          RETFIELD        = 'IT_TC1-ITEMCODE'
          DYNPPROG        = PROGNAME
          DYNPNR          = DYNNUM
          DYNPROFIELD     = 'IT_TC1-ITEMCODE'
          VALUE_ORG       = 'S'
        TABLES
          VALUE_TAB       = VALUES_TAB
          RETURN_TAB      = RETURN_TAB
        EXCEPTIONS
          PARAMETER_ERROR = 1
          NO_VALUES_FOUND = 2
          OTHERS          = 3.
    *BREAK-POINT.
      IF SY-SUBRC = 0.
        READ TABLE RETURN_TAB INDEX 1.
        SELECT SINGLE MAKTX FROM MAKT CLIENT SPECIFIED
        INTO WK_MAKTX WHERE
        MANDT = SY-MANDT AND
        MATNR = RETURN_TAB-FIELDVAL AND SPRAS = SY-LANGU.
      ENDIF.
    ENDMODULE.                 " ITEM_CODE  INPUT
    *&      Module  CHECK_INPUT  INPUT
          text
    MODULE CHECK_INPUT INPUT.
      CLEAR : EKKO-EBELN , EKKO-LIFNR.
      SELECT SINGLE EBELN LIFNR FROM EKKO CLIENT SPECIFIED
      INTO (EKKO-EBELN , EKKO-LIFNR )  WHERE
      MANDT = SY-MANDT AND
      EBELN = WK_EBELN.
      IF SY-SUBRC NE 0 AND ( SY-UNAME = 'GATE1010' OR
                             SY-UNAME = 'GATE1020' OR
                             SY-UNAME = 'GATE1030' OR
                             SY-UNAME = 'GATE1040' OR
                             SY-UNAME = 'GATE1050' OR
                             SY-UNAME = 'GATE1060' OR
                             SY-UNAME = 'GATE1070' OR
                             SY-UNAME = 'GATE1080' OR  SY-UNAME = 'ABAP' ).
        IF WK_EBELN NE SPACE.
          MESSAGE E003 WITH TEXT-001.
        ENDIF.
      ELSE.
        WK_LIFNR = EKKO-LIFNR.
        CLEAR : LFA1-NAME1.
        SELECT SINGLE NAME1 FROM LFA1 CLIENT SPECIFIED
        INTO LFA1-NAME1 WHERE
        MANDT = SY-MANDT AND
        LIFNR = WK_LIFNR.
        IF SY-SUBRC EQ 0.
          WK_NAME = LFA1-NAME1.
        ENDIF.
      ENDIF.
      IF ( SY-UNAME = 'GATE1010' OR SY-UNAME = 'GATE1020' OR
           SY-UNAME = 'GATE1030' OR SY-UNAME = 'GATE1040' OR
           SY-UNAME = 'GATE1050' OR SY-UNAME = 'GATE1060' OR
           SY-UNAME = 'GATE1070' OR SY-UNAME = 'GATE1080' OR  SY-UNAME =
           'ABAP' ).
       IF wk_vbeln IS INITIAL.
         set cursor field wk_vbeln.
         MESSAGE E003 WITH text-009.
       ENDIF.
       IF wk_fkdat IS INITIAL.
         MESSAGE E003 WITH text-010.
       ENDIF.
      ENDIF.
      IF ( SY-UNAME = 'STORE1010' OR SY-UNAME = 'STORE1020' OR
           SY-UNAME = 'STORE1030' OR SY-UNAME = 'STORE1040' OR
           SY-UNAME = 'STORE1050' OR SY-UNAME = 'STORE1060' OR
           SY-UNAME = 'STORE1070' OR SY-UNAME = 'STORE1080' ).
        CLEAR : ZMMT001_GRN_GATE.
        SELECT SINGLE EBELN CDATE FROM ZMMT001_GRN_GATE
        CLIENT SPECIFIED
        INTO (ZMMT001_GRN_GATE-EBELN ,
        ZMMT001_GRN_GATE-CDATE )
        WHERE MANDT = SY-MANDT AND
        SERIAL = WK_SNO AND WERKS = WK_WERKS.
        IF SY-SUBRC EQ 0.
          SELECT MBLNR
                 MJAHR
                 BUDAT
                 BKTXT FROM MKPF CLIENT SPECIFIED
                 INTO TABLE IT_TEMP_MKPF
                 WHERE MANDT = SY-MANDT AND
                 BUDAT = ZMMT001_GRN_GATE-CDATE
                 AND BKTXT = WK_SNO.
          IF

    Hi,
    after calling you programm and get the message call transaction su53. That willl display the authorization that you need.
    Hope this helps.
    Regards
    Bernd

  • Problems with saving decimal data

    Hello!
    I was faced with problem during saving decimal data via Excel input schedules. We use BPC 7.0 MS, SQL Server 2008.
    One of the main customer demands is using decimal comma (",") due to Russian regional settings and standards. We've switched server regional options and one of the client machine's regional options into Russian, all integer data is sent to SQL correctly but during saving decimal data we got error - Type mismatch.
    Do you mind how to solve this issue? Or it is possible only using English standarts?
    Thanks for your help.
    Regards, Maksim.

    Hi Maksim,
    To understand if you have set correct regional settings for you SAP BPC server you have to check the follow keys:
    HKEY_USERS\.Default\Control Panel \ International
    HKEY_USERS\S-1-5-18\Control Panel \ International
    HKEY_USERS\S-1-5-19\Control Panel \ International
    HKEY_USERS\S-1-5-20\Control Panel \ International
    HKEY_USERS\S-1-5-21\Control Panel \ International
    HKEY_USERS\S-1-5-21.....\Control Panel \ International
    should have all the keys for English US.
    Kind Regards
    Sorin Radulescu

  • Crossword puzzle; reload saved data problem

    This might have been answered before but my searches here didn't turn up anything which worked when I tried them.
    I've a crossword puzzle which has a saved function that I can't get to work properly. Right now I have the puzzle without the save button. The developer said I need to write some php code that will reload the applet with the saved data, along with some html to get the current state of the puzzle. He provided an example html code which I've adapted as seen below.
    Part of the problem is the crossword html running the applet is run from a web page within my vb forum board and not located in any folder on my site. This in itself may make saving any data from the crossword impossible, but I don't know.
    The html I've written, which I'll add later to the existing puzzle html code, is:
    <param name="DATAFILE" value="https://my site.com/forums/crswrds/l.jpz">
              <param name="SUBMITMETHOD" value="POST">
              <param name="SUBMIT" value="https://my site .com/submit.php?data=%SUBMIT%&time=%TIME%&url=https://my site.com&username=sample&puzzle_title=Crossword">
              <param name="SAVE" value="https://my site.com/forums/view.php?pg=crswrdpuz?&progress=%PROGRESS%">
              <param name="PROGRESS" value="">
    The problem is the developer said I should "write a php script to accept the %PROGRESS% string as a GET parameter, then to re-load the applet in the saved state provide it in the PROGRESS applet parameter."
    I was hoping someone here had a way to reload the applet with the saved data from the $PROGRESS% string as I haven't had any luck searching these forums.
    Puzzle, without save, is here , which is open to the public for the next couple of days.
    Edited by: nanaimobar on Apr 21, 2008 1:25 PM

    I'm not applet programmer, so this may not be the best way, but I'd look into serialization. It seems like it would be easy enough to save the "model" object to a file and then send that back and forth from the applet to the server. You could request the serialized file from the webserver, and then reload your model from that file. After that you just have to update your view, and you're set.

  • HT201210 i lost data messages / photos and other saved data worth 2 months cause there was some problem when i was updating ios7 how can i recover that?

    i lost data worth 2 months when i was updating the ios7 software on my iphone 5 .....
    unfortunatley i forgot to perform a backup in that time span as well....
    is there a way of recovering txt msgs photos and other saved data from a particular span? without backups?

    Without a backup there is no way to recover data.
    Seems you've learned a valuable lesson about how important it is do regularly backup the device.

  • Error while saving date value in Java dictionary

    Hello Everybody,
    I got following error while saving date value in one of the fields of the Java table.
    Internal error occured in submit request: Error in method updateRequestContact : The object of type java.sql.Date with the value '2005-12-04 08:00:00.0' assigned to host variable 9 is not normalized. It must not contain time components in the time zone running the virtual machine.
    I can't find why it is taking time value in the date object.
    This value is coming from the RFC as a date value, and I am saving this value in Java dictionary table.
    Same code for this was working fine earlier. But, now suddenly it gives error like this.
    Even if I provide date on the screen from webdynpro application, this date value can't save in the Java dictionary and gives same error.
    What should be the problem behind this?
    Regards,
    Bhavik

    Hi Satyajit,
    I am getting date value from the screen of the webdynpro application from date picker control and passing this value in Java dictionary.
    More Information:
    I have dat value in the Date object: <b>target_date</b>
    But Now I have made new Date object as following:
    Date target_Date1 = new Date(target_date.getYear(),target_date.getMonth(),target_date.getDate());
    Then I am passing this object to Java dictionary. Still it gives same error.
    Then I have changed code as following:
              int l_year;
              int l_month;
              int l_days;
              l_year = target_Date.getYear();
              l_month = target_Date.getMonth();
              l_days = target_Date.getDate();
         Date target_Date1 = new Date(l_year,l_month,l_days);
    Now it works for me.
    But I guess this is not the perment solution. It looks very strange. I have used so many date objects at various palces. So, this solution is not the final for me.
    I want to findout the main cause of it.
    One more thing: This code was working for a mornth or two. But, now suddenly it is giving this error.
    Please help me if anybody knows.
    Regards,
    Bhavik

  • Report prints Saved Data not Refreshed Data

    We were running VS 2005 and using the Basic CR 2005 Basic that comes with it.  We upgraded to use CR 2008 and found MANY issues after we went live in production that were apparent in the development.  This has caused a lot of stress with us as well as our users.  Iu2019ll summarize everything we found, possible workarounds and the open issues including the Printing/Loading of Saved Data.
    First, it was reported that printing changed.  It turns out when PrintMode = u2018PDFu2019 (default setting) it now asks after you choose u2018EXPORTu2019 (use to be u2018OKu2019) that it asks to Open or Save the Adobe.  When our customers were running 20 some reports at a time and we had hundreds of users, this became a nuisance for the heavy reporting users and a training issue in general for us.  With research, I found that we can change the PrintMode to be u2018ActiveXu2019.  This was much better when we were testing.  However, in Production it became a nightmare.  If the user is on a Domain that disallows itu2019s user from installing software or if the user has tight security settings, this became a nightmare.
    The second thing reported was that it was exporting to the wrong format.  It was exporting into RPT format.  It turns out with CR2008, it automatically defaults to RPT and the new pop-up, doesnu2019t isnu2019t clear to the user they even have a choice (the pop-up is much prettier, but it doesnu2019t look like a dropdown anymore).  In addition, they reported it was taking twice as long to export (we think it was related to export file type now).  With CR2005 Basic, it would have no default selection and if the user didnu2019t pick one, it would remind them they need to pick one.  After much research, I found there is no way to customize the operation of the export without writing my own export.  My users 90% of the time want to export to PDF and Excel the rest of the time.  Since we arenu2019t using a CR Server like product, they NEVER will do RPT.  There is no way with CR2008 to limit this list or to default the File Format.  So now, if they forget to select the type, they get the wrong file format instead of being reminded to select one.  Since the new pop-upu2019s dropdown selection isnu2019t easily apparent, this was a BIG issue for us.  Since I have close to 300 reports on 7 websites, this will be a lot of work for me to write my own code and change all the ASPX page to use my own control.
    The third thing reported was that the default name on Exporting was changed.  Export uses the ID property of the Crystal Report Viewer as the default name of a file on export.  When it replaced the viewer on all our pages, it set the ID to CrystalReportViewer1 instead of preserving the original ID.  We now have to go back and change them to what we wanted manually.  BEAWRE of this!  For our power users who wanted to export 40 reports they now have type the name in manually on all of them.  What took minutes now takes over an hour for them to do, until we can fix all the pages.
    Now it was reported that some reports are showing OLD data.  It turns out there shows Saved Data from design time.  In our site, we have a parameter page which getu2019s user selected parameters, save to a session and then load the report page using the session variables, and then redirect them to the report page which on page load we set the reports parameters.  We use the CrystalReportSource using ODBC.  The report has all the connection information.  Well if the user happens to select the same parameters I used at design time, it wonu2019t pull the data from the database.  They see our test data instead which is garbage.  If they select different parameters, display the report and then go back and select the original parameters, they will get the correct data.  This can be catastrophic for us!  So I added at the beginning of the Page Load before setting parameters the following:
         If Not Page.IsPostBack Then
                CRSServiceAlertsReport.ReportDocument.Refresh()
         End If
    This seemed to work.  A pain to add on every report page though when it wasnu2019t necessary before.  But then I just got called this morning and they say when they print, it prited the OLD data.  It seems the refresh pulled new data and updated the display in the viewer but the ActiveX print still used the original Saved Data!  I couldnu2019t find a solution for this.  I found switching PrintMode back to u2018Pdfu2019 worked but now I have the extra click issue again, which I described above.  I tried setting the reports u2018Discard Saved Datau2019 option but it still had the data!
    In the end, had I known about all these issues I would have NEVER upgraded to CR2008.  Iu2019m still looking for help on getting by the following:
    u2022     Stop using Saved Data at runtime (either on Display or Print)
    u2022     Getting the PrintMode=u2019Pdfu2019 to just pull up Adobe in Open mode without prompting the user.
    u2022     Remove File Type options from Export
    u2022     Set the default File Type options to nothing or something I want.
    Another nice feature to have would be the ActiveX control for printing to be part of the .NET Framework so users donu2019t need to download it.  Come on BO is a big company Iu2019m sure they can work with MS.  

    What is that method to clear Saved Data; I looked and couldn't find it.  I never had to call one in the prior version of CR 2005 Basic in .Net.  With the .NET controls, it always refreshed the data before.  This is a change in behavior for me.
    As for the Print using Adobe, with CR2005 Basic, it didn't prompt the user to Open or Save before.  This is new behavior.  It used to just open the report in Adobe in memory before without this specific prompt (it did have the first prompt for All or specific pages, but it would just open after that).  This is a change in behavior from prior versions and it has caused me several issues. 
    Many users don't like change and I didn't know to communicate this to them.  They were taken by surprise.  We'll learn to live it I guess, but I would ask you just to consider, why have an option to "Save" to PDF when you choose to print?  I would think you would use Export if you want to save.  It would never hurt to add an option to allow alternatives either.
    As for including with .NET Framework, it was just an idea.  I know how hard it can be working with third parties.  However, given that CR Basic comes with it, I thought it may be possible to work with them.  The better the integration the better the product is for the developers.  I was thinking the button could call JavaScript/Java to print instead of an ActiveX, or some other method.  Since I donu2019t know how the Control works, I couldnu2019t say.  It just would be nice.  I had a smiley face after that request, it didn't come out right when I saved the post.
    I still don't understand why .Refresh will update the data in the viewer but printing using the ActiveX Control will still print the saved data instead of refreshed data.  Since I never used this in the prior version I don't know what it would of done or not, but it just doesn't seem right it shows one set of data, and prints another.
    In addition, why the designer still saves data with the report when you state not to, I think may be a problem still.
    Edited by: Thomas Johnson on Nov 21, 2008 12:26 PM

Maybe you are looking for