When clicking on datagrid row it throws me exception - WPF C#

Whenever I try to double click my datagrid row to edit it, I throws me a few exceptions which doesn't say anything to me. Hovever if
I set the whole datagrid to IsReadOnly to true, I want have the problem, but I need the second and third columns editable.
XAML
<DataGrid x:Name="clientList" HorizontalAlignment="Left" Height="225" Margin="11,126,0,0" VerticalAlignment="Top" Width="349" IsSynchronizedWithCurrentItem="False" AutoGenerateColumns="False" HorizontalGridLinesBrush="#FFB9B9B9" VerticalGridLinesBrush="#FF8B8B8B" GridLinesVisibility="Horizontal" CellStyle="{StaticResource Body_Content_DataGrid_Centering}">
<DataGrid.Resources>
<LinearGradientBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" StartPoint="0,0" EndPoint="0,1" >
<GradientStop Color="#66240000" Offset="0"/>
<GradientStop Color="#CC240000" Offset="0.65"/>
</LinearGradientBrush>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn Width="30" Header="Id" IsReadOnly="True" Binding="{Binding Id}"/>
<DataGridTextColumn Width="100" Header="Company" IsReadOnly="False" Binding="{Binding Company}"/>
<DataGridTextColumn Width="130" Header="Name, Surname" IsReadOnly="False" Binding="{Binding Name}"/>
<DataGridTemplateColumn Header="Actions" CellTemplate="{StaticResource myTemplate}"/>
</DataGrid.Columns>
</DataGrid>
C#
clientList.Items.Add(new DataClients { Id = 1, Company = "My Company", Name = "Jane Roe"});
Exceptions
Exception:Thrown: "'EditItem' is not allowed for this view."(System.InvalidOperationException)
Exception:Thrown: "The string was not recognized as a valid DateTime. There is an unknown word starting at index 0." (System.FormatException)

You need to set the ItemsSource property of the clientList DataGrid to a collection of DataClients objects that supports editing. HashSet<DataClients> does not for example but List<DataClients> and ObservableCollection<DataClients> does.
You could call the ToList() method on the collection that you set as the ItemsSource for the DataGrid to convert it to a List<DataClients>:
clientList.ItemsSource = yourCollection.ToList();
The "The string was not recognized as a valid DateTime" error message should be pretty self-explanatory. You are trying to convert a string which doesn't contain a valid date or time value to a DateTime value somewhere, perhaps in the 'myTemplate'.
There is nothing in the DataClients class that you have posted that will cause this exception to be thrown so it is impossible for anyone to tell.
But please only ask one question per thread and then start a new thread if you have a new question.
Please also remember to mark helpful posts as answer to close your threads.

Similar Messages

  • How to display data in ComboBox when click on DataGrid Row.

    Hi!
         I am new to Adobe Flex. I am building one Project that was related to Comapny and Customer. First I created Company Master. Then I create Customer Master successfully and My Backkend is SQLite Database.
         My Problem is I have two files one is CustomerMaster and second one is CustomerForm.
         In CustomerMaster I have a datagrid in that data was displaying thru Array Collection. When ever we doublick on datagrid row it's displayed a CompanyForm. CompanyForm  contains TextFiled and ComboBox. TextFiled populating data but Combobox doesnot. It display always prompt message.
          Please help.
    Thanks,
    Sree Kumar

    Hi! Vibhuti Gosavi,
                          First of all thanks for your quick reply. Already I saw that link.
    Actually, In CustomerForm successfully store the information into the database. While retrieving the data problem cames. Sample Code:
    CustomerMaster:
    private function createItem():void
                                            openTab(new Object());
                                  public function openTab(customer:Object):void
                                            var children:Array = tn.getChildren();
                                            var length:int = children.length;
                                            for (var i:int = 0; i<length; i++)
                                                      if (children[i].customer.customerId == customer.customerId)
                                                                tn.selectedIndex = i;
                                                                return;
                                            var form:CustomerForm = new CustomerForm();
                                            tn.addChild(form);
                                            form.customer = customer;
                                            form.dao = dao;
                                            form.addEventListener(CustomerEvent.CREATE, customerChangeHandler),
                                                      form.addEventListener(CustomerEvent.UPDATE, customerChangeHandler),
                                                      form.addEventListener(CustomerEvent.DELETE, customerChangeHandler),
                                                      tn.selectedChild = form;
                                  private function customerChangeHandler(event:CustomerEvent):void
                                            customerArrayList = dao.findByCustomerAll();
                                            if (event.type == CustomerEvent.DELETE)
                                                      tn.removeChild(event.target as CustomerForm);
                        ]]>
              </fx:Script>
              <mx:Canvas id="container" left="12" right="12" top="12" bottom="12">
                        <mx:Canvas left="0" top="2" right="0" height="33">
                                  <mx:Button id="AddCustomer" x="1" width="108" height="32" click="createItem()"
                                                         icon="@Embed('assets/icon_plus.png')" label="Add Customer" toolTip="Add Customer"
                                                         verticalCenter="-1"/>
                        </mx:Canvas>
                        <code:SuperTabNavigator id="tn" x="0" y="39" width="681" height="197"/>
                        <mx:DataGrid id="customerList" x="1" y="262" width="680" height="231"
                                                       dataProvider="{customerArrayList}"
                                                       doubleClick="openTab(customerList.selectedItem)" doubleClickEnabled="true">
                                  <mx:columns>
                                            <mx:DataGridColumn dataField="customerId" headerText="Id"/>
                                            <mx:DataGridColumn dataField="customerName" headerText="Name" />
                                            <mx:DataGridColumn dataField="companyName" headerText="companyName" />
                                  </mx:columns>
                        </mx:DataGrid>
              </mx:Canvas>
    CustomerForm:
    public function set customer(customer:Object):void
                                            this._customer = customer;
                                  public function get customer():Object
                                            return this._customer;
                                  private function saveCustomer():void
                                            if (Validator.validateAll(customerValidators).length>0)
                                                      return;
                                            _customer.customerName = customerName.text;
                                             _customer.companyName = companyName.text;
                                            if (_customer.customerId > 0)
                                                      updateCustomer();
                                            else
                                                      insertCustomer();
                                  private function insertCustomer():void
                                            try
                                                      Alert.show(_customer.normalPkts);
                                                      dao.insertCustomer(_customer);
                                                      customerId.text = _customer.customerId;
                                                      dispatchEvent(new CustomerEvent(CustomerEvent.CREATE, _customer, true));
                                                      var alertText:String="Company Created Successfully!";
                                                      Alert.show(alertText,"",4,null,null,ConfirmMessage);
                                            catch (error:SQLError)
                                                      var alertErrorCreate:String="Company not Created...";
                                                      Alert.show(alertErrorCreate+"\n"+error.details,"",4,null,null,ErrorMessage);
                                  private function updateCustomer():void
                                            try
                                                      dao.updateCustomer(_customer);
                                                      dispatchEvent(new CustomerEvent(CustomerEvent.UPDATE, _customer, true));
                                                      var alertText:String="Company Updated Successfully!";
                                                      Alert.show(alertText,"",4,null,null,ConfirmMessage);
                                            catch (error:SQLError)
                                                      var alertErrorText:String="Company not Updated...";
                                                      Alert.show(alertErrorText+"\n"+error.details,"",4,null,null,ErrorMessage);
                                  private function deleteItem():void
                                            try
                                                      dao.deleteCustomer(_customer);
                                                      dispatchEvent(new CustomerEvent(CustomerEvent.DELETE, _customer, true));
                                            catch (error:SQLError)
                                                      Alert.show(error.details, "Error");
                        ]]>
              </mx:Script>
       <mx:Grid x="10" y="10" width="665" height="130" verticalAlign="middle">
                        <mx:GridRow width="665" height="100%">
                                  <mx:GridItem width="85" height="100%">
                                            <mx:Label width="85" text="Customer Id:"/>
                                  </mx:GridItem>
                                  <mx:GridItem width="115" height="100%">
                                            <mx:TextInput id="customerId" text="{_customer.customerId}" editable="false" width="115"/>
                                  </mx:GridItem>
                                  <mx:GridItem width="102" height="100%">
                                            <mx:Label width="102" text="Company Name:"/>
                                  </mx:GridItem>
                                  <mx:GridItem width="100" height="100%">
                                            <mx:ComboBox id="companyName" dataProvider="{companyIdList}" labelField="companyName"
                                                                           prompt="Select..." text="{_customer.companyName}" width="100"/>
                                  </mx:GridItem>
                          <mx:GridItem width="230" height="100%" horizontalAlign="center" verticalAlign="middle">
                                            <mx:Button label="Save" click="saveCustomer()"/>
                                            <mx:Button label="Delete" click="deleteItem()"/>
                                  </mx:GridItem>
                        </mx:GridRow>
              </mx:Grid>
    =====================================================================
    I have two ArrayCollections 1) companyIdList (CustomerForm)
                                              2) customerArrayList(CustomerMaster)
    please go through the bold text. Please focus on two dataProviders. These dataproviders are binding for One Combo Field.
    Thanks,
    Sree Kumar
    Message was edited by: sreekumar1976

  • ALV hot spot to open a transaction when clicked on a row

    hi all
           can you please suggest me where i can get the best code for
           adding hotspot functionality in ALV display  in which I have to open a  
            related transaction as we click on any row of ALV.
    Thanks in Advance.
    Naval bhatt

    try this code
    *& Report  ZBATCHNO21N                                                 *
    REPORT  ZBATCHNO21N LINE-SIZE 280    .
    TABLES : CHVW,ZMMSE_BATCH,LFA1,MAKT,MARA.
    tables : godynpro.
    TYPE-POOLS : SLIS.
    DATA : IMMSE LIKE ZMMSE_BATCH OCCURS 0 WITH HEADER LINE.
    DATA : BEGIN OF ITAB OCCURS 0,
           CHARG  LIKE CHVW-CHARG,
           MATNR  LIKE CHVW-MATNR,
           LEVEL TYPE I,
           MACID  LIKE ZMMSE_BATCH-MACID,
           LEGNO  LIKE ZMMSE_BATCH-LEGNO,
           FEDID  LIKE ZMMSE_BATCH-FEDID,
           MAKTX  LIKE MAKT-MAKTX,
           PRDATE LIKE ZMMSE_BATCH-PRDATE,
           LICHA  LIKE CHVW-LICHA,
           NAME1  LIKE LFA1-NAME1,
           LIFNR  LIKE CHVW-LIFNR,
           MBLNR LIKE CHVW-MBLNR,
           BISMT  LIKE MARA-BISMT,
           END OF ITAB.
    DATA : LEVEL TYPE I VALUE 1.
    DATA: PA_MATNR LIKE CHVW-MATNR,
          PA_CHARG1 LIKE CHVW-CHARG,
          PA_CHARG LIKE CHVW-CHARG,
          PA_MBLNR LIKE CHVW-MBLNR,
          CH_MATNR LIKE CHVW-MATNR.
    DATA : TTABIX LIKE SY-TABIX.
    DATA : V_CHARG LIKE CHVW-CHARG.
    DATA : IFIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
           WFIELDCAT TYPE SLIS_FIELDCAT_ALV,
           ILAYOUT   TYPE SLIS_LAYOUT_ALV.
    DATA : COUNTER TYPE I VALUE 1.
    DATA : V_MBLNR LIKE CHVW-MBLNR.
    SELECT-OPTIONS: MATNR FOR CHVW-MATNR OBLIGATORY NO INTERVALS NO-EXTENSION,
                    CHARG1 FOR CHVW-CHARG OBLIGATORY NO INTERVALS NO-EXTENSION,
                    WERKS FOR CHVW-WERKS OBLIGATORY NO INTERVALS NO-EXTENSION.
    START-OF-SELECTION.
    SELECT * FROM ZMMSE_BATCH INTO TABLE IMMSE WHERE ACHARG IN CHARG1 AND OMATNR IN MATNR.
    SELECT SINGLE * FROM CHVW WHERE MATNR IN MATNR AND
                             CHARG IN CHARG1 AND WERKS IN WERKS AND
                             ( BWART EQ '131' OR BWART EQ '931' ).
        MOVE CHVW-MATNR TO PA_MATNR.
        MOVE CHVW-MATNR TO CH_MATNR.
        MOVE CHVW-CHARG TO PA_CHARG.
        MOVE CHVW-MBLNR TO PA_MBLNR.
        SELECT SINGLE BISMT FROM MARA INTO MARA-BISMT WHERE MATNR EQ PA_MATNR .
        SELECT SINGLE MAX( PRDATE ) INTO ZMMSE_BATCH-PRDATE FROM ZMMSE_BATCH
        WHERE OMATNR IN MATNR AND ACHARG IN CHARG1.
    *    APPEND ITAB.
    *ENDSELECT.
    CLEAR : CHVW.
    SELECT MBLNR CHARG MATNR INTO CORRESPONDING FIELDS OF  ITAB FROM CHVW
                                  WHERE MBLNR = PA_MBLNR AND BWART = '261'.
    *READ TABLE IMMSE INDEX COUNTER.
    *SELECT SINGLE MACID LEGNO FEDID PRDATE INTO CORRESPONDING FIELDS OF ITAB FROM ZMMSE_BATCH
    *              WHERE IMATNR EQ ITAB-MATNR AND CHARG EQ ITAB-CHARG AND ACHARG EQ PA_CHARG
    *              AND SBATCH = IMMSE-SBATCH.
    *COUNTER = COUNTER + 1.
    ITAB-LEVEL = 1.
    APPEND ITAB.
    ENDSELECT.
    SORT ITAB BY MATNR CHARG.
    SORT IMMSE BY IMATNR CHARG.
    DATA : WTAB LIKE ITAB,
           TABIX LIKE SY-TABIX,
           WTAB1 LIKE ITAB.
    LOOP AT ITAB.
    TABIX = SY-TABIX.
    MOVE-CORRESPONDING ITAB TO WTAB.
    AT NEW MATNR.
    LOOP AT IMMSE WHERE IMATNR = WTAB-MATNR AND CHARG = WTAB-CHARG.
    WTAB-LEGNO = IMMSE-LEGNO.
    WTAB-MACID = IMMSE-MACID.
    WTAB-FEDID = IMMSE-FEDID.
    WTAB-PRDATE = IMMSE-PRDATE.
    MODIFY ITAB FROM WTAB INDEX TABIX.
    TABIX = TABIX + 1.
    READ TABLE ITAB INTO WTAB1 INDEX TABIX.
    IF WTAB1-MATNR NE IMMSE-IMATNR.
    EXIT.
    ENDIF.
    ENDLOOP.
    ENDAT.
    ENDLOOP.
    LOOP AT ITAB.
    *ITAB-LEVEL = LEVEL.
    SELECT SINGLE MAKTX INTO ITAB-MAKTX FROM MAKT WHERE MATNR = ITAB-MATNR.
    SELECT SINGLE LICHA LIFNR FROM CHVW INTO (ITAB-LICHA, ITAB-LIFNR) WHERE MATNR
                 EQ ITAB-MATNR AND ( BWART EQ '105' OR BWART EQ '101' )
                 AND CHARG EQ ITAB-CHARG.
    IF ITAB-CHARG CP '2IN*'.
    V_CHARG = ITAB-CHARG.
    REPLACE FIRST OCCURRENCE OF '2IN' IN V_CHARG WITH '500' .
    SELECT SINGLE LIFNR INTO ITAB-LIFNR FROM MSEG WHERE MBLNR = V_CHARG.
    ENDIF.
    SELECT SINGLE NAME1 INTO ITAB-NAME1 FROM LFA1 WHERE LIFNR = ITAB-LIFNR.
    SELECT SINGLE MBLNR INTO ITAB-MBLNR FROM CHVW WHERE MATNR = ITAB-MATNR AND
                                                 CHARG = ITAB-CHARG AND
                                                 BWART IN ('101','105','561').
    MODIFY ITAB.
    TTABIX = SY-TABIX.
    PERFORM GET_DATA.
    ENDLOOP.
    PERFORM BUILDFIELDCAT.
    PERFORM BUILDLAYOUT.
    PERFORM DISPLAYDATA.
    *&      Form  GET_DATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM GET_DATA .
    SELECT SINGLE * FROM CHVW WHERE MATNR = ITAB-MATNR AND
                             CHARG EQ ITAB-CHARG AND WERKS IN WERKS AND
                             ( BWART EQ '131' OR BWART EQ '931' ).
      IF SY-SUBRC = 0.
        MOVE CHVW-MATNR TO PA_MATNR.
        MOVE CHVW-MATNR TO CH_MATNR.
        MOVE CHVW-CHARG TO PA_CHARG.
        MOVE CHVW-MBLNR TO PA_MBLNR.
        ITAB-LEVEL = ITAB-LEVEL + 1.
    SELECT MBLNR CHARG MATNR INTO CORRESPONDING FIELDS OF  ITAB FROM CHVW
                                  WHERE MBLNR = PA_MBLNR AND BWART = '261'.
    SELECT SINGLE MACID LEGNO FEDID PRDATE INTO CORRESPONDING FIELDS OF ITAB FROM ZMMSE_BATCH
                  WHERE IMATNR EQ ITAB-MATNR AND CHARG EQ ITAB-CHARG AND ACHARG EQ PA_CHARG.
    TTABIX = TTABIX + 1.
    INSERT ITAB INDEX TTABIX.
    ENDSELECT.
    ELSE.
    EXIT.
    ENDIF.
    ENDFORM.                    " GET_DATA
    *&      Form  BUILDFIELDCAT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM BUILDFIELDCAT .
    WFIELDCAT-FIELDNAME = 'LEVEL'.
    WFIELDCAT-COL_POS = 1.
    WFIELDCAT-SELTEXT_L = 'Level'.
    WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'MACID'.
    WFIELDCAT-COL_POS = 2.
    WFIELDCAT-SELTEXT_L = 'Machine Id'.
    *WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'LEGNO'.
    WFIELDCAT-COL_POS = 3.
    WFIELDCAT-SELTEXT_L = 'Legend No'.
    *WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'FEDID'.
    WFIELDCAT-COL_POS = 4.
    WFIELDCAT-SELTEXT_L = 'Feeder Identification'.
    *WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'CHARG'.
    WFIELDCAT-COL_POS = 5.
    WFIELDCAT-SELTEXT_L = 'Batch No'.
    *WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'MATNR'.
    WFIELDCAT-COL_POS = 6.
    WFIELDCAT-SELTEXT_L = 'Part No'.
    *WFIELDCAT-OUTPUTLEN = 5.
    wfieldcat-key = 'X'.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'MAKTX'.
    WFIELDCAT-COL_POS = 7.
    WFIELDCAT-SELTEXT_L = 'Part Name'.
    *WFIELDCAT-OUTPUTLEN = 5.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'LICHA'.
    WFIELDCAT-COL_POS = 8.
    WFIELDCAT-SELTEXT_L = 'Supplier Lot No'.
    *WFIELDCAT-OUTPUTLEN = 5.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'NAME1'.
    WFIELDCAT-COL_POS = 9.
    WFIELDCAT-SELTEXT_L = 'Supplier Name'.
    *WFIELDCAT-OUTPUTLEN = 5.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'PRDATE'.
    WFIELDCAT-COL_POS = 10.
    WFIELDCAT-SELTEXT_L = 'Production Date & Time'.
    *WFIELDCAT-OUTPUTLEN = 5.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    WFIELDCAT-FIELDNAME = 'MBLNR'.
    WFIELDCAT-COL_POS = 11.
    WFIELDCAT-SELTEXT_L = 'Material Document No'.
    WFIELDCAT-HOTSPOT = 'X'.
    WFIELDCAT-NO_OUT = 'X'.
    **WFIELDCAT-OUTPUTLEN = 5.
    APPEND WFIELDCAT TO IFIELDCAT.
    CLEAR WFIELDCAT.
    ENDFORM.                    " BUILDFIELDCAT
    *&      Form  BUILDLAYOUT
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM BUILDLAYOUT .
    ILAYOUT-ZEBRA = 'X'.
    ILAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    *ILAYOUT-F2CODE = '&IC1'.
    ENDFORM.                    " BUILDLAYOUT
    *&      Form  DISPLAYDATA
    *       text
    *  -->  p1        text
    *  <--  p2        text
    FORM DISPLAYDATA .
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    *   I_INTERFACE_CHECK                 = ' '
    *   I_BYPASSING_BUFFER                = ' '
    *   I_BUFFER_ACTIVE                   = ' '
       I_CALLBACK_PROGRAM                = SY-REPID
    **   I_CALLBACK_PF_STATUS_SET          = 'PFSTATUS'
       I_CALLBACK_USER_COMMAND           = 'USERCOMMAND'
       I_CALLBACK_TOP_OF_PAGE            = 'TOPOFPAGE'
    *   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                         = ILAYOUT
       IT_FIELDCAT                       = IFIELDCAT
    *   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
    *   IT_ALV_GRAPHICS                   =
    *   IT_HYPERLINK                      =
    *   IT_ADD_FIELDCAT                   =
    *   IT_EXCEPT_QINFO                   =
    *   I_HTML_HEIGHT_TOP                 =
    *   I_HTML_HEIGHT_END                 =
    * IMPORTING
    *   E_EXIT_CAUSED_BY_CALLER           =
    *   ES_EXIT_CAUSED_BY_USER            =
      TABLES
        T_OUTTAB                          = ITAB
    * 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.                    " DISPLAYDATA
    FORM TOPOFPAGE.
    DATA : ILISTHEADER TYPE SLIS_T_LISTHEADER,
           WLISTHEADER TYPE SLIS_LISTHEADER,
           TEXT(100),
           TEXT1(50),
           SPACES(5).
    SPACES = '     '.
    WLISTHEADER-INFO = 'LOGAN Product Traceablity Report'.
    WLISTHEADER-TYP = 'H'.
    APPEND WLISTHEADER TO ILISTHEADER.
    CONCATENATE 'NIP Code :' CHARG1-LOW INTO TEXT SEPARATED BY SPACE.
    CONCATENATE 'Pricol Part No :' MATNR-LOW INTO TEXT1 SEPARATED BY SPACE.
    CONCATENATE TEXT TEXT1 INTO TEXT SEPARATED BY SPACE.
    WLISTHEADER-INFO = TEXT.
    WLISTHEADER-TYP = 'S'.
    APPEND WLISTHEADER TO ILISTHEADER.
    CLEAR TEXT.
    SELECT SINGLE BISMT FROM MARA INTO MARA-BISMT WHERE MATNR IN MATNR.
    SELECT SINGLE MAX( PRDATE ) INTO ZMMSE_BATCH-PRDATE FROM ZMMSE_BATCH
      WHERE OMATNR IN MATNR AND ACHARG IN CHARG1.
    CONCATENATE 'Customer Part No :'  MARA-BISMT INTO TEXT SEPARATED BY SPACE.
    WLISTHEADER-INFO = TEXT.
    WLISTHEADER-TYP = 'S'.
    APPEND WLISTHEADER TO ILISTHEADER.
    CLEAR TEXT.
    CONCATENATE 'Date & Time:'
                ZMMSE_BATCH-PRDATE INTO TEXT SEPARATED BY SPACE.
    WLISTHEADER-INFO = TEXT.
    WLISTHEADER-TYP = 'S'.
    APPEND WLISTHEADER TO ILISTHEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = ILISTHEADER
    *   I_LOGO                   =
    *   I_END_OF_LIST_GRID       =
    ENDFORM.
    FORM USERCOMMAND USING PUCOM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.
    CASE PUCOM.
    WHEN '&IC1'.
    IF SELFIELD-FIELDNAME = 'MBLNR'.
    SET PARAMETER ID 'MBN' FIELD SELFIELD-VALUE.
    CALL TRANSACTION 'MIGO' AND SKIP FIRST SCREEN.
    *GODYNPRO-ACTION = 'Display'.
    ENDIF.
    ENDCASE.
    ENDFORM.
    *FORM PFSTATUS USING EXTAB TYPE SLIS_T_EXTAB.
    *SET PF-STATUS 'ZSTANDARD'.
    *ENDFORM.
    regards
    shiba dutta

  • Insert String array as label content in datagrid row through radio button C# wpf?

    I have written some code for inserting label at runtime having its content set to a string array and then insert that label into a datagrid row . All of this will initiate when certain radiobuttons are checked. code is working perfectly fine. But i need
    to improve this code as i am learning C#, wpf and datagrid. I know there can be a certain way to improve this code. 
    This code will be a nightmare when there are 50 radiobuttons. 
    can it be improve and how it can be? if u can explain that will be very kind of you  
    Xaml Code:
    <Grid>
    <RadioButton x:Name="rb_1" Content="RadioButton" HorizontalAlignment="Left" Margin="351,85,0,0" VerticalAlignment="Top" GroupName="1" />
    <RadioButton x:Name="rb_2" Content="RadioButton" HorizontalAlignment="Left" Margin="351,105,0,0" VerticalAlignment="Top" GroupName="1"/>
    <RadioButton x:Name="rb_3" Content="RadioButton" HorizontalAlignment="Left" Margin="351,120,0,0" VerticalAlignment="Top" GroupName="1" />
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,159,0,0" VerticalAlignment="Top" GroupName="2" />
    <RadioButton x:Name="rb_4" Content="RadioButton" HorizontalAlignment="Left" Margin="351,179,0,0" VerticalAlignment="Top" GroupName="2"/>
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,199,0,0" VerticalAlignment="Top" GroupName="2" />
    <Button Content="Button" HorizontalAlignment="Left" Margin="713,60,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click_2"/>
    <DataGrid x:Name="datagrid_" HorizontalAlignment="Left" Margin="549,85,0,0" VerticalAlignment="Top" Height="253" Width="399" />
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,226,0,0" VerticalAlignment="Top" GroupName="3" />
    <RadioButton x:Name="rb_6" Content="RadioButton" HorizontalAlignment="Left" Margin="351,246,0,0" VerticalAlignment="Top" GroupName="3"/>
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,266,0,0" VerticalAlignment="Top" GroupName="3" />
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,298,0,0" VerticalAlignment="Top" GroupName="4" />
    <RadioButton x:Name="rb_8" Content="RadioButton" HorizontalAlignment="Left" Margin="351,318,0,0" VerticalAlignment="Top" GroupName="4"/>
    <RadioButton Content="RadioButton" HorizontalAlignment="Left" Margin="351,338,0,0" VerticalAlignment="Top" GroupName="4" />
    </Grid>
    Code Behind:
    public partial class MainWindow : Window
    public MainWindow()
    InitializeComponent();
    DataTable dt;
    DataRow dr;
    string[] str = new string[4];
    int location = 0;
    int count = 0;
    private void Window_Loaded(object sender, RoutedEventArgs e)
    dt = new DataTable("emp");
    DataColumn dc1 = new DataColumn("Factors", typeof(string));
    DataColumn dc2 = new DataColumn("Non_Compliant", typeof(string));
    dt.Columns.Add(dc1);
    dt.Columns.Add(dc2);
    datagrid_.ItemsSource = dt.DefaultView;
    private void Button_Click_2(object sender, RoutedEventArgs e)
    if (count >= 1)
    datagrid_.ItemsSource = dt.DefaultView;
    dt.Clear();
    str[0] = "Load Path1";
    str[1] = "Load Path2";
    str[2] = "Load Path3";
    str[3] = "Load Path4";
    int j = 0;
    if (rb_2.IsChecked == true)
    j = 0;
    int k = 0;
    dr = dt.NewRow();
    Label label = new Label();
    label.Height = 28;
    label.Width = 100;
    label.HorizontalAlignment = HorizontalAlignment.Center;
    label.VerticalAlignment = VerticalAlignment.Center;
    label.Content = str[j];
    dr[k] = label.Content;
    dt.Rows.Add(dr);
    datagrid_.ItemsSource = dt.DefaultView;
    location += 34;
    if (rb_4.IsChecked == true)
    j = 1;
    int k = 0;
    dr = dt.NewRow();
    Label label = new Label();
    label.Height = 28;
    label.Width = 100;
    label.HorizontalAlignment = HorizontalAlignment.Center;
    label.VerticalAlignment = VerticalAlignment.Center;
    label.Content = str[j];
    dr[k] = label.Content;
    dt.Rows.Add(dr);
    datagrid_.ItemsSource = dt.DefaultView;
    location += 34;
    if (rb_6.IsChecked == true)
    j = 2;
    int k = 0;
    dr = dt.NewRow();
    Label label = new Label();
    label.Height = 28;
    label.Width = 100;
    label.HorizontalAlignment = HorizontalAlignment.Center;
    label.VerticalAlignment = VerticalAlignment.Center;
    label.Content = str[j];
    dr[k] = label.Content;
    dt.Rows.Add(dr);
    datagrid_.ItemsSource = dt.DefaultView;
    location += 34;
    if (rb_8.IsChecked == true)
    j = 3;
    int k = 0;
    dr = dt.NewRow();
    Label label = new Label();
    label.Height = 28;
    label.Width = 100;
    label.HorizontalAlignment = HorizontalAlignment.Center;
    label.VerticalAlignment = VerticalAlignment.Center;
    label.Content = str[j];
    dr[k] = label.Content;
    dt.Rows.Add(dr);
    datagrid_.ItemsSource = dt.DefaultView;
    location += 34;
    count++;

    @Usamakhan1990,
    Use usercontrol with label and checkbox is reasonable for a datagrid control if you don't want to have too much code for those radio buttons. So I agree with andy here with that usercontrol.
    So is it required that your radiobutton should be outside the datagrid?
    Anyway, I think you already know that you can bind data to columns yourself. So please check the following thread:
    http://stackoverflow.com/questions/22922533/how-do-i-automagically-bind-a-string-array-to-a-wpf-datagrid
    <DataGrid Name="_dataGrid" Grid.Row="0" AutoGenerateColumns="False">
    <DataGrid.Columns>
    <DataGridTextColumn Header="Column 1" Binding="{Binding [0]}"/>
    <DataGridTextColumn Header="Column 2" Binding="{Binding [1]}"/>
    </DataGrid.Columns>
    </DataGrid>
    Or define the columns from code, in case you have dynamic number of columns, for example :
    string[][] array = fs.CSVToStringArray();
    for (int i = 0; i < array[0].Length; i++)
    var col = new DataGridTextColumn();
    col.Header = "Column " + i;
    col.Binding = new Binding(string.Format("[{0}]", i));
    _dataGrid.Columns.Add(col);
    this.ExternalData._dataGrid.ItemsSource = array;
    And for Radio button part, please see here:
    http://stackoverflow.com/questions/397556/how-to-bind-radiobuttons-to-an-enum
    Best regards,
    Barry
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Toolbar button is disappearing when clicked table's row

    Hi
    I use jdeveloper Studio Edition Version 11.1.1.3.0,Build JDEVADF_11.1.1.3.PS2_GENERIC_100408.2356.5660 .
    I have problem about click table row that surround with panel collection.I tested my small application on explorer 8.When I click the table's row ,table moves up and toolbar buttons disapper.How can I solve this problem.
    Can anybody give suggestions.
    Thks

    I use jdeveloper Studio Edition Version 11.1.1.3.0,Build JDEVADF_11.1.1.3.PS2_GENERIC_100408.2356.5660 .
    I my little project I use <af:inputListOfValues component.It works well but I want resize popUp window that opened by this component.How can I do it?

  • Color a specific row in ALV GRID display when user clicks on that row

    hi
    i have the entire code ready of how to check the line selected by the user and also to color that line but after settings those parameters
    for to refresh the GRID so that the row apppears coloured .plz reply soon.... points will be awarded.....
    wat i have done is
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       i_callback_program                 = i_repid
       i_callback_user_command           = 'USER_COMMAND'
       is_layout                         = it_layout
       it_fieldcat                       = int_fieldcat
      TABLES
           t_outtab                          = int
      EXCEPTIONS
       program_error                     = 1
       OTHERS                            = 2.
    to display the GRID then when user clicks on any row this module gets called
       FORM user_command USING r_ucomm TYPE sy-ucomm
                               rs_selfield TYPE slis_selfield.
         READ TABLE int INDEX rs_selfield-tabindex.
         int-rowcolor = 'C410'.
         MODIFY  int INDEX rs_selfield-tabindex TRANSPORTING rowcolor.
         it_layout-info_fieldname = 'ROWCOLOR'.
    then  again i call 'REUSE_ALV_GRID_DISPLAY'
    to display the GRID with the user selected line colored . the problem with this is when u go back from this screen u go to the previously displayed grid ....... whihc i dont want .....
       ENDFORM.                    "user_command

    Hi,
    By using following code,you can set the colors for each row,
    Change this based on your requirement.
    TABLES VBAK.
    TYPE-POOLS SLIS.
    Data Declaration
    TYPES: BEGIN OF T_VBAK,
          VBELN TYPE VBAK-VBELN,
          ERDAT TYPE VBAK-ERDAT,
          ERNAM TYPE VBAK-ERNAM,
          AUDAT TYPE VBAK-AUDAT,
          VBTYP TYPE VBAK-VBTYP,
          NETWR TYPE VBAK-NETWR,
          VKORG TYPE VBAK-VKORG,
          VKGRP TYPE VBAK-VKGRP,
          LINE_COLOR(4) TYPE C,
          END OF T_VBAK.
    DATA: IT_VBAK TYPE STANDARD TABLE OF T_VBAK INITIAL SIZE 0,
          WA_VBAK TYPE T_VBAK.
    ALV Data Declaration
    DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_LAYOUT TYPE SLIS_LAYOUT_ALV,
          GD_REPID TYPE SY-REPID.
    START-OF-SELECTION.
    PERFORM DATA_RETRIEVAL.
    PERFORM BLD_FLDCAT.
    PERFORM BLD_LAYOUT.
    PERFORM DISPLAY_ALV_REPORT.
    Build Field Catalog for ALV Report
    FORM BLD_FLDCAT.
    FLDCAT-FIELDNAME = 'VBELN'.
    FLDCAT-SELTEXT_M = 'Sales Document'.
    FLDCAT-COL_POS = 0.
    *FLDCAT-EMPHASIZE = 'C411'.
    FLDCAT-OUTPUTLEN = 20.
    FLDCAT-KEY = 'X'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'ERDAT'.
    FLDCAT-SELTEXT_L = 'Record Date created'.
    FLDCAT-COL_POS = 1.
    FLDCAT-KEY = 'X'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'ERNAM'.
    FLDCAT-SELTEXT_L = 'Cteated Object Person Name'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'AUDAT'.
    FLDCAT-SELTEXT_M = 'Document Date'.
    FLDCAT-COL_POS = 3.
    FLDCAT-EMPHASIZE = 'C110'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'VBTYP'.
    FLDCAT-SELTEXT_L = 'SD Document category'.
    FLDCAT-COL_POS = 4.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'NETWR'.
    FLDCAT-SELTEXT_L = 'Net Value of the SO in Document Currency'.
    FLDCAT-COL_POS = 5.
    FLDCAT-OUTPUTLEN = 60.
    FLDCAT-DO_SUM = 'X'.
    FLDCAT-DATATYPE = 'CURR'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'VKORG'.
    FLDCAT-SELTEXT_L = 'Sales Organization'.
    FLDCAT-COL_POS = 6.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    FLDCAT-FIELDNAME = 'VKGRP'.
    FLDCAT-SELTEXT_M = 'Sales Group'.
    FLDCAT-COL_POS = 7.
    FLDCAT-EMPHASIZE = 'C801'.
    APPEND FLDCAT TO FLDCAT.
    CLEAR FLDCAT.
    ENDFORM.
    Build Layout for ALV Grid Report
    FORM BLD_LAYOUT.
    GD_LAYOUT-NO_INPUT = 'X'.
    GD_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.
    GD_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
    GD_LAYOUT-WINDOW_TITLEBAR = 'GRID DISPLAY'.
    GD_LAYOUT-CONFIRMATION_PROMPT = 'X'.  “ This asks the confirmation before leaving the screen.
    ENDFORM.
    Display report using ALV grid
    FORM DISPLAY_ALV_REPORT.
    GD_REPID = SY-REPID.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
       I_CALLBACK_PROGRAM                = GD_REPID
       IS_LAYOUT                         = GD_LAYOUT
       I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
       I_GRID_TITLE                      = 'SALES DOCUMENT HEADER'
       IT_FIELDCAT                       = FLDCAT[]
       I_SAVE                            = 'X'
      TABLES
        T_OUTTAB                          = IT_VBAK
    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.
    Retrieve data from VBAK table and populate itab IT_VBAK
    FORM DATA_RETRIEVAL.
    DATA LD_COLOR(1) TYPE C.
    SELECT VBELN ERDAT ERNAM AUDAT VBTYP NETWR VKORG
    UP TO 20 ROWS
    FROM VBAK
    INTO TABLE IT_VBAK.
    LOOP AT IT_VBAK INTO WA_VBAK.
    LD_COLOR = LD_COLOR + 1.
    IF LD_COLOR = 8.
      LD_COLOR = 1.
    ENDIF.
    CONCATENATE 'C' LD_COLOR '10' INTO WA_VBAK-LINE_COLOR.
    MODIFY IT_VBAK FROM WA_VBAK.
    ENDLOOP.
    ENDFORM.
    FORM TOP_OF_PAGE.
    DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
          W_HEADER TYPE SLIS_LISTHEADER.
    W_HEADER-TYP = 'H'.
    W_HEADER-INFO = 'WELCOME HEADER LIST'.
    APPEND W_HEADER TO T_HEADER.
    W_HEADER-TYP = 'S'.
    W_HEADER-KEY = 'REPORT:'.
    W_HEADER-INFO = SY-REPID.
    APPEND W_HEADER TO T_HEADER.
    W_HEADER-TYP = 'S'.
    W_HEADER-KEY = 'DATE:'.
    CONCATENATE SY-DATUM6(2) ' / ' SY-DATUM4(2) ' / ' SY-DATUM(4) INTO W_HEADER-INFO.
    APPEND W_HEADER TO T_HEADER.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
        IT_LIST_COMMENTARY       = T_HEADER
    ENDFORM.
    Reward points,if it is useful.
    Thanks,
    chandu.

  • How to maintain dynamic rows with data when click on Previous button?

    Hi,
    I have 1 aspx page and divided into 3 pages using panels.Each panel has "Next" and Previous buttons
    I have created and deleted dynamic table rows when click on Add button using javascript. whenever i click on Next button it will navigate to same page of next panel.
    when i click on previous button then it goes to previous panel but whatever i have added dynamic table rows in 1st panel that got removed.
    Can u please help me for how to maintain state of dynamic table rows with entered data when click on Previous button?
    How to get dynamic table rows with entered data in previous panel when click on Previous button?
    Please find the below javascript code:
    function insertRow() {
    if (index >= 2) {
    document.getElementById('deleteRow').style.display = "inline";
    else { document.getElementById('DeleteRow').style.display = "none"; }
    var table = document.getElementById("myTable");
    var row = table.insertRow(table.rows.length);
    cell1 = row.insertCell(0);
    t1 = document.createElement("select");
    t1.options[t1.options.length] = new Option('--Select--', '0');
    t1.id = "ddlYear" + index;
    cell1.appendChild(t1);
    for (var i = 1975; i <= 2015; i++) {
    opt = document.createElement("option");
    opt.value = i;
    opt.text = i;
    t1.add(opt);
    t1.style.width = "155px";
    var cell2 = row.insertCell(1);
    t2 = document.createElement("Select");
    t2.options[t2.options.length]=new Option('--Select--','0');
    t2.options[t2.options.length]=new Option('State Board','1');
    t2.options[t2.options.length]=new Option('CBSE','2');
    t2.options[t2.options.length]=new Option('ICSE','3');
    t2.options[t2.options.length] = new Option('Others', '4');
    t2.style.width = "155px";
    t2.id = "ddlCourse" + index;
    cell2.appendChild(t2);
    var cell3 = row.insertCell(2);
    t3 = document.createElement("input");
    t3.id = "txtCity" + index;
    cell3.appendChild(t3);
    var cell4 = row.insertCell(3);
    t4 = document.createElement("input");
    t4.id = "txtInstitute" + index;
    cell4.appendChild(t4);
    var cell5 = row.insertCell(4);
    t5 = document.createElement("Select");
    t5.options[t5.options.length] = new Option('--Select--', '0');
    t5.options[t5.options.length] = new Option('English', '1');
    t5.options[t5.options.length] = new Option('Hindi', '2');
    t5.options[t5.options.length] = new Option('Telugu', '3');
    t5.options[t5.options.length] = new Option('Others', '4');
    t5.style.width = "155px";
    t5.id = "ddlMedium" + index;
    cell5.appendChild(t5);
    var cell6 = row.insertCell(5);
    t6 = document.createElement("input");
    t6.id = "txtSpecialization" + index;
    cell6.appendChild(t6);
    var cell7 = row.insertCell(6);
    t7 = document.createElement("input");
    t7.id = "txtFnl" + index;
    cell7.appendChild(t7);
    index++;
    function DeleteRow(index) {
    var table = document.getElementById("myTable");
    table.deleteRow(index);
    // if (index = 2) { alert("There is no rows added.Please add the new row"); }
    Design:
    <tr style="font-size: 12pt" id="trSecond" runat="server">
    <td colspan="3">
    <table id="myTable" width="100%" border="0">
    </table>
    <tr>
    <td colspan="3" align="right">
    <input type="button" title="Add" value="Add" onclick="insertRow();" />
    <input type="button" id="deleteRow" title="Delete" value="Delete Row" onclick="DeleteRow(this);" style="display:none" />
    </td>
    </tr>
    Thank you.

    Put the button click into an action listener and build the new frame there. The code I have below isn't exactly what you're doing (it's amazingly oversimplified), but it's probably similar enough to get your wheels turning in the right direction.
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    public class sample
         public static void main(String[] args)
              JFrame frame = new JFrame("Sample");
              frame.setSize(400,400);
              Container content = frame.getContentPane();
              content.setLayout(new FlowLayout());
              frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              final JTextField text = new JTextField(10);
              content.add(text);
              JButton button = new JButton("Send");
              content.add(button);
              frame.setVisible(true);
              button.addActionListener(new ActionListener()
                   public void actionPerformed(ActionEvent ae)
                        JFrame myframe = new JFrame("Results");
                        myframe.setSize(200,200);
                        Container mycontent = myframe.getContentPane();
                        mycontent.setLayout(new FlowLayout());
                        String mytext = text.getText();
                        JLabel label = new JLabel();
                        label.setText(String.valueOf(mytext));
                        mycontent.add(label);
                        myframe.setVisible(true);
    }

  • LOV throws NullPointerException when there are no rows to display

    Hi,
    I have cascading LOVs in my application. I have 3 of them. I select values for the first 2 LOVs, and then I click on the 3rd LOV. The query for the third LOV returns no records from the database and so, a NullPointerException is thrown.
    When there are no rows to display in the LOV, I want the LOV to still pop up with a message saying "No rows to display".
    Is there a way I can achieve this functionality using the existing features?
    I am using JDev 11.1.1.3.0
    Thanks
    Srikanth Addanki

    <RegistrationConfigurator><handleError> Server Exception during PPR, #2
    java.lang.NullPointerException
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding.getSearchBinding(FacesCtrlLOVBinding.java:189)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding$ListOfValuesModelImpl.getSearchRegion(FacesCtrlLOVBinding.java:1536)
         at oracle.adfinternal.view.faces.model.binding.FacesCtrlLOVBinding$ListOfValuesModelImpl.getQueryModel(FacesCtrlLOVBinding.java:1163)
         at oracle.adfinternal.view.faces.renderkit.rich.SimpleInputListOfValuesRendererBase$InternalLaunchPopupListener.processLaunch(SimpleInputListOfValuesRendererBase.java:1371)
         at oracle.adf.view.rich.event.LaunchPopupEvent.processListener(LaunchPopupEvent.java:108)
         at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:673)
         at org.apache.myfaces.trinidad.component.UIXEditableValue.broadcast(UIXEditableValue.java:210)
         at oracle.adf.view.rich.component.UIXInputPopup.broadcast(UIXInputPopup.java:152)
         at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
         at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:177)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
         at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
         at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
         at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
         at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:191)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:97)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:420)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:247)
         at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:157)
         at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:94)
         at java.security.AccessController.doPrivileged(Native Method)
         at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
         at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:414)
         at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:138)
         at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at oracle.dms.wls.DMSServletFilter.doFilter(DMSServletFilter.java:330)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
         at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.doIt(WebAppServletContext.java:3684)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3650)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
         at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2268)
         at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2174)
         at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1446)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    Please let me know if I can provide any other info that makes the issue analysis easy.
    Thanks for the quick reply.

  • Right way to change datagrid row, column, cells background colors in code-behind?

    Hi all,
    I have a winform program that I'm upgrading to wpf (I'm new to wpf). The wpf code for the function (SetdataGridBackgroundColors()) is below with the winform code commented out so I can fix it.  I have a datagrid with a Cornsilk background color alteranating
    with LightGreen depending on the content of datetime  cell. If the day portion of the datetime is different then the color changes from one to the other. I used a colorIndex variable because at the end of the month it could go from 31 to 1 and that would
    not work if I use the day directly.
    I tried this line to change the background color:
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.Cornsilk);
    this works but it changes every row. I found this other stuff:
    DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromItem(optionsDataDatagrid.Items[i]) as DataGridRow;
    currentRowColor.Background = new SolidColorBrush(Colors.Cornsilk);
    Either ContainerFromIndex or ContainerFromItem throw an exception because currentRowColor is null. I looked at optionsDataDatagrid.Items[i] and is not null. Then I read that using ItemContainerGenerator is not a good idea.
    BTW I'm calling SetdataGridBackgroundColors() after datagrid is been filled with data.
    So... what is the proper way to set each row, column or cell background color in wpf?
    Thanks
    private void SetdataGridBackgroundColors()
    optionRowData rowData = new optionRowData();
    if (optionsDataDatagrid.Items.Count == 0)
    return;
    int colorIndex = 1;
    DateTime savedDate, currentRowDate;
    rowData = optionsDataDatagrid.Items[0] as optionRowData;
    savedDate = rowData.col_datetime.Date; //only compare the date not the time
    for (int i = 0; i < optionsDataDatagrid.Items.Count; i++)
    //currentRowDate = Convert.ToDateTime(optionsDataDatagrid.Rows[i].Cells[3].Value); //winform code
    //currentRowDate = currentRowDate.Date; //winform code
    rowData = optionsDataDatagrid.Items[i] as optionRowData;
    currentRowDate = rowData.col_datetime.Date;
    if (currentRowDate != savedDate)
    colorIndex++;
    savedDate = currentRowDate;
    if (colorIndex % 2 == 0)
    //optionsDataDatagrid.Rows[i].DefaultCellStyle.BackColor = Color.Cornsilk;
    //------------------- testing new code --------------begin
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.Cornsilk); //this changes all rows
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromIndex(i) as DataGridRow;
    //DataGridRow currentRowColor = optionsDataDatagrid.ItemContainerGenerator.ContainerFromItem(optionsDataDatagrid.Items[i]) as DataGridRow;
    //currentRowColor.Background = new SolidColorBrush(Colors.Cornsilk);
    //------------------- testing new code --------------end
    //optionsDataDatagrid.Columns[4].DefaultCellStyle.BackColor = Color.DarkSalmon;
    //optionsDataDatagrid.Columns[5].DefaultCellStyle.BackColor = Color.Aquamarine;
    //optionsDataDatagrid.Rows[i].Cells[4].Style.ApplyStyle(optionsDataDataGridView.Columns[4].DefaultCellStyle);
    //optionsDataDatagrid.Rows[i].Cells[5].Style.ApplyStyle(optionsDataDataGridView.Columns[5].DefaultCellStyle);
    else
    //optionsDataDatagrid.Rows[i].DefaultCellStyle.BackColor = Color.LightGreen;
    //------------------- testing new code --------------begin
    optionsDataDatagrid.RowBackground = new SolidColorBrush(Colors.LightGreen); //this has no effect
    //------------------- testing new code --------------end
    //optionsDataDatagrid.Columns[4].DefaultCellStyle.BackColor = Color.Coral;
    //optionsDataDatagrid.Columns[5].DefaultCellStyle.BackColor = Color.LimeGreen;
    //optionsDataDatagrid.Rows[i].Cells[4].Style.ApplyStyle(optionsDataDataGridView.Columns[4].DefaultCellStyle);
    //optionsDataDatagrid.Rows[i].Cells[5].Style.ApplyStyle(optionsDataDataGridView.Columns[5].DefaultCellStyle);

    I (also) strongly recommend mvvm.
    Setting values is a particularly bad idea in this case.
    I don't mean to be rude but your explanation of the requirement is kind of vague.
    I would bind solidcolourbrushes.
    Set the properties based on whatever your logic is within the viewmodel.
    You can switch out what each of the brushes holds when the user clicks wherever.
    So you use a highlightbrush when something or other is true.
    That highlightbrush is set to a blue brush when the user clicks left and a red brush when they click right.
    Please don't forget to upvote posts which you like and mark those which answer your question.
    My latest Technet article - Dynamic XAML

  • How to do lead select and double click on a row of table simultaniously ?

    Hello All,
    I am creating a freely programmed search help to search Material Number.
    i am displaying the values in normal table ( Not ALV ) on the search help popup.
    My requirement is
    when I select a row and click on OK button the Material number in that row is getting captured ( This is working fine for me)
    At the same time I also want to capture the value when user double cluck on the particular row.
    I am not able to do both on action methods simultaneously as I am getting syntactic error.
    i.e. When I create action method on the event "on_lead_select" and the event "On select"  and try to save Check & activate it throws error.
    Please find the screen shot below.
    Standard webdynpro component WDR_F4_ELEMENTARY was able to achieve this functionality some how, I have debugged it but didn't get the solution

    Hi,
    There is no double click provision. In the table you could change the cell editor of column to LinktoAction UI, then onclick of that you can set the selected value.  And in the component WDR_F4_ELEMENTARY its not a normal table UI but its a CTable UI, you can try creating a CTable and create an Action for onSelect.
    Regards,
    Kiran

  • How do I pass a value from a selected datagrid row to a popup

    I am working on a project tracking application in flex and need to pass the value of one of the rows from the datagrid to a popup. We have a screen with 2 data grids. The first datagrid lists the projects, their start, and end date and the project owner. The datagrid below the first datagrid lists the tasks for that specific project listed in the datagrid above. When you click on the project name above, the datagrid below is populated with the tasks. Within the tasks datagrid are start and end date boxes.
    What I need to do is be able to pass the project ID from the original datagrid into a popup that is called when a user changes the date of a project task. The popup is designed to submit a reason for why the user is changing the date on the task. In short, when they submit a reason, I need the project id passed from the datagrid into the popup so when submit is clicked, the proper row in the DB table is update via a CFC. Thank you.

    I tried that, but when I try to build the project, I get the error that there is a call to an undefined value. Here is code:
    Project Component:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:VBox xmlns:mx="http://www.adobe.com/2006/mxml"
        width="100%" height="100%" creationComplete="init();" xmlns:mxml="components.mxml.*">
        <mx:Script>
            <![CDATA[
                import mx.events.ListEvent;
                import mx.controls.dataGridClasses.DataGridColumn;
                import mx.rpc.events.ResultEvent;
                import mx.managers.PopUpManager;
                import mx.core.IFlexDisplayObject;
                import components.mxml.NewProject;
                import components.mxml.NewTask;
                import components.mxml.dateChangeNotice;
                import mx.controls.Alert;
                private function init():void{
                    roGetData.getProjects();
                    //roGetData.getTasks();
                private function projectClick(event:ListEvent):void{
                    //Alert.show(dgProjects.selectedItem.projectID);
                    roGetData.getTasks(dgProjects.selectedItem.projectID);
                private function refreshProjects(event:MouseEvent):void{
                    roGetData.getProjects();
                private function ResultEvent_Projects(event:ResultEvent):void{
                    dgProjects.dataProvider = event.result;
                private function ResultEvent_Tasks(event:ResultEvent):void{
                    adgTasks.dataProvider = event.result;
                private function ResultEvent_UpdateTasks(event:ResultEvent):void{
                    Alert.show('Your task was updated');
                private function showNewProject():void{
                    var newProjectWindow:IFlexDisplayObject =
                        PopUpManager.createPopUp(this, NewProject, true);
                    newProjectWindow.addEventListener(MouseEvent.CLICK, refreshProjects);
                private function showNewTask():void{
                    var newTaskWindow:IFlexDisplayObject =
                        PopUpManager.createPopUp(this, NewTask, true);
                private function dateFormat(item:Object, column:DataGridColumn):String{
                    return dateFormatter.format(item[column.dataField]);
                    //Function calls the Reason popup window
                //private function changeReason():void{
                    //Create Popup Window
                    //var resultWindow:IFlexDisplayObject =
                    //PopUpManager.createPopUp(this, dateChangeNotice, false);
            ]]>
        </mx:Script>
        <mx:RemoteObject id="roGetData" destination="ColdFusion" source="projectTracker.components.cfc.controllers.getController">
            <mx:method name="getProjects" result="ResultEvent_Projects(event);" fault="Alert.show(event.fault.faultString);" />
            <mx:method name="getTasks" result="ResultEvent_Tasks(event);" fault="Alert.show(event.fault.faultString);" />
        </mx:RemoteObject>
        <!--<mx:RemoteObject id="roUpdateData" destination="ColdFusion" source="projectTracker.components.cfc.controllers.updateController">
            <mx:method name="updateTasks" result="ResultEvent_UpdateTasks(event);" fault="Alert.show(event.fault.faultString);" />
        </mx:RemoteObject>-->
        <mx:DateFormatter id="dateFormatter" />
        <mx:HBox width="100%">
            <mx:Label text="Projects:" />
            <mx:Button label="Insert New Project" click="showNewProject();"/>
        </mx:HBox>   
        <mx:Panel width="100%" height="45%" title="Projects">
            <mx:DataGrid id="dgProjects" width="100%" height="100%" itemClick="projectClick(event);" dataProvider="">
                <mx:columns>
                   <mx:DataGridColumn dataField="projectID" headerText="ProjectID" visible="false" />- I Need to pass this value
                    <mx:DataGridColumn dataField="name" headerText="Project" />
                    <mx:DataGridColumn dataField="startDate" headerText="Date Started" labelFunction="dateFormat" />
                    <mx:DataGridColumn dataField="endDate" headerText="Completion Date" labelFunction="dateFormat" />
                    <mx:DataGridColumn dataField="description" headerText="Description" />
                    <mx:DataGridColumn dataField="statusName" headerText="Status" />
                    <mx:DataGridColumn dataField="ownerName" headerText="Owner" />
                </mx:columns>
            </mx:DataGrid>
        </mx:Panel>
        <mx:Panel width="100%" height="45%" title="Project Tasks">
            <mx:AdvancedDataGrid id="adgTasks" width="95%" height="100%" variableRowHeight="true">
                <mx:columns>
                    <mx:AdvancedDataGridColumn dataField="taskID" visible="false" width="50" />
                    <mx:AdvancedDataGridColumn dataField="name" width="25" />
                    <!--<mx:AdvancedDataGridColumn dataField="startDate" headerText="Date Started" />
                    <mx:AdvancedDataGridColumn dataField="endDate" headerText="Completion Date" />-->
                    <mx:AdvancedDataGridColumn id="descript" dataField="description" headerText="Description" width="50"/>
                    <mx:AdvancedDataGridColumn dataField="ownerID" headerText="Owner" width="25"  />
                    <mx:AdvancedDataGridColumn dataField="notes" headerText="Project Notes" width="50"/>
                    <mx:AdvancedDataGridColumn dataField="Dates" headerText="Dates" width="50"/>
                </mx:columns>
                <mx:rendererProviders>
                    <mx:AdvancedDataGridRendererProvider dataField="taskID" columnIndex="5">
                        <mx:renderer>
                            <mx:Component>
                                <mxml:dgDateHSlider startDate="{data.startDate}" endDate="{data.endDate}"/>   
                            </mx:Component>
                        </mx:renderer>
                    </mx:AdvancedDataGridRendererProvider>
                </mx:rendererProviders>
            </mx:AdvancedDataGrid>   
        </mx:Panel>
        <mx:HBox width="100%">
            <mx:Label text="Tasks:" />
            <mx:Button label="Insert New Task" click="showNewTask();"/>
            <mx:Spacer width="200"/>
        </mx:HBox>
    </mx:VBox>
    Popup Components
    <?xml version="1.0" encoding="utf-8"?>
    <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="400" title="Reason for Date Change" backgroundColor="#E5E4E4">
    <mx:Script>
        <![CDATA[
                 import mx.events.ValidationResultEvent;
                import mx.rpc.events.ResultEvent;
                import mx.managers.PopUpManager;
                import mx.core.IFlexDisplayObject;
                import components.mxml.NewUser;
                import mx.controls.Alert;
                import components.mxml.Projects;
                import components.mxml.NewTask;
            //Clear Text Area Function
           public function Clear():void{
                reasonText.text = "";
            //function to send notes to db via RO
            public function writeNotes():void{
      into here-->    updateReason.reasonUpdate(taskID.selectedItem,reasonText.text);  taskID.selectedItem is not recognized. It errors on compile
            //remote object Results Event
            public function reasonResult(event:ResultEvent):void{
                Alert.show("Label update successful, thank you!");
                Clear();
        ]]>
    </mx:Script>
    <!--Update Remote Object-->
    <mx:RemoteObject id="updateReason" destination="ColdFusion" source="projectTracker.components.cfc.controllers.createController">
        <mx:method name="reasonUpdate" result="reasonResult(event);" fault="Alert.show(event.fault.faultString);"/>
    </mx:RemoteObject>
    <!--Reason Text Area-->
        <mx:TextArea x="19" y="60" width="90%" height="246" maxChars="1000" wordWrap="true" enabled="true" id="reasonText"/>
        <mx:Button label="Update" click="writeNotes()" right="65" bottom="0"/>
        <mx:Button label="Exit" click="PopUpManager.removePopUp(this);" right="10" bottom="0"/>
        <mx:Text text="Please Specify your reason for changing the dates of this task." width="90%" fontWeight="bold" top="10" horizontalCenter="0"/>
    </mx:TitleWindow>

  • How to bring a Accordion  effect to a datagrid row?

    Actually i am working on datagrid. I have an issue of
    bringing some component in between the row.
    That is when i click a specific row i just want to get a
    panel as a drop down stuff between rows(Something similar to the
    one when we click on accordion node).
    Please help me to get this stuff ready,
    Regards,
    Arun

    Adobe Muse only allows .muse files for editing. You can't import a previously created page say in Dreamweaver into Muse.

  • Unable to refresh page when insert the first row in viewobject

    I am using JDeveloper 10g to develop a JSP page, DataAction, AppModule and ViewObject. But when I am trying to use the following code to insert the first row, the page is not getting refresh. The quite weird thing is when I insert the second row, it returns me the first row as well as the second row. And it works well when I am trying to insert the third row, forth row....
    //code in AppModule
    ViewObject vo= this.getSampleView();
    vo.insertRow(newRow);
    vo.setNewRowState(Row.STATUS_INITIALIZED);
    vo.setAttribute("STR1", str1);
    vo.setAttribute("NUMBER1",new NUMBER(1));
    vo.setAttribute("STR2", str2);
    getTransaction().postChanges();
    getTransaction().commit();
    //Note: SampleView is a simply view created from a EnityObject mapping to a single table.
    Anybody could help me? Thanks very much!

    //The following code is the method in AppModule, which is invoked when clicks on the Add Remarks button on web page.
    public void addRemarks(String strCustCode,String strRemarks,String strUserID)
    ViewObject voRemarks1 = this.getCrmCustomerRemarksView();
    ViewObject voRemarks2 = this.getCrmCustomerRemarksView();
    NUMBER newSeq = new NUMBER();
    try
    voRemarks1.setWhereClause(" CRM_CUST_CODE ='" + strCustCode + "'");
    voRemarks1.setOrderByClause(" CRM_SEQ_NO DESC");
    voRemarks1.executeQuery();
    if (voRemarks1.getEstimatedRowCount()<1)
    newSeq = new NUMBER(1);
    else
    Row row = voRemarks1.first();
    NUMBER seq = (NUMBER)row.getAttribute("CrmSeqNo");
    newSeq = seq.add(new NUMBER(1));
    SimpleDateFormat tmpLocalFormat = new SimpleDateFormat();
    Date tmpDate = new Date();
    tmpDate = Calendar.getInstance().getTime();
    tmpLocalFormat.applyPattern("yyyy-MM-dd");
    System.out.println("NGNCM003 add Remarks with " + strCustCode + "," strRemarks "," + strUserID);
    Row newRow = voRemarks2.createRow();
    voRemarks2.insertRow(newRow);
    newRow.setNewRowState(Row.STATUS_INITIALIZED);
    newRow.setAttribute("CrmCustCode", strCustCode);
    newRow.setAttribute("CrmSeqNo",newSeq);
    newRow.setAttribute("CrmCreatedBy", strUserID);
    newRow.setAttribute("CrmRemarks", strRemarks);
    newRow.setAttribute("CrmLastModifiedBy", strUserID);
    newRow.setAttribute("CrmCreationTimestamp",tmpLocalFormat.format(tmpDate));
    newRow.setAttribute("CrmLastModificationTime",tmpLocalFormat.format(tmpDate));
    getTransaction().postChanges();
    getTransaction().commit();
    catch (Exception ex)
    throw new RuntimeException("Invalid Sequence No.");
    }

  • Single Click on a Row in ALV Grid

    Hello,
    I am using 'CL_GUI_ALV_GRID' class for displaying an ALV grid.
    The requirement is when an user clicks on a row of the grid, a popup should be displayed with the details of that line, the user can edit/enter some fields there and when clicks on the save button, the updated values should get saved in database.
    Which event needs to be used for this? A sample code will be very useful.
    Thanks
    Indrajit.

    Hello Indrajit
    The same behaviour you see in the IDoc Monitor (transaction WE02, report RSEIDOC2). The event you need to handle is DELAYED_CHANGED_SEL_CALLBACK.
    Coding copied from RSEIDOC_ALV_CL:
    ***INCLUDE CLASS_ALV .
    * LOCAL CLASSES: Definition für ALV Ereignisse
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
        handle_delayed_changed_sel_cb
            FOR EVENT delayed_changed_sel_callback OF cl_gui_alv_grid,
    METHOD handle_delayed_changed_sel_cb.
    data: lt_rows TYPE lvc_t_row.
    data: l_row   TYPE lvc_s_row.
      CALL METHOD grid->get_selected_rows
               IMPORTING et_index_rows = lt_rows.
      CALL METHOD cl_gui_cfw=>flush.
      read table lt_rows index 1 transporting no fields.
      if sy-subrc ne 0.
        exit.
      endif.
      perform fill_special_values tables lt_rows.
      need_refresh = 'N'.
      set screen 100.
      leave screen.
    ENDMETHOD.
    Regards
      Uwe

  • How to set a default value in an ADF table when adding a new row

    Hi Guys,
    I have a view object which I am using to create an ADF table. I also have a button which uses a CreateInsert binding to add a new row to the table. I have four fields: created_by, creation_date, last_update_by and last_update_date.
    I want these values to be set automatically when I click add new row.
    The values I want are:
    created_by - admin
    creation_date - sysdate
    last_update_by - admin
    lsat_update_date - sysdate
    Any suggestions on how to do this would be appreciated
    Thanks
    -Mark

    mark,
    Those four fields can be set completely declaratively in the Entity Object (check out the History Colum feature). Copied from the (11g) documentation:
    If you need to keep track of historical information in your entity object, such as when an entity was created or modified and by whom, or the number of times the entity has been modified, you specify an attribute with the History Column option selected (in the Edit Attribute dialog).
    If an attribute's data type is Number, String, or Date, and if it is not part of the primary key, then you can enable this property to have your entity automatically maintain the attribute's value for historical auditing. How the framework handles the attribute depends which type of history attribute you indicate:
    * Created On: This attribute is populated with the time stamp of when the row was created. The time stamp is obtained from the database.
    * Created By: The attribute is populated with the name of the user who created the row. The user name is obtained using the getUserPrincipalName() method on the Session object.
    * Modified On: This attribute is populated with the time stamp whenever the row is updated/created.
    * Modified By: This attribute is populated with the name of the user who creates or updates the row.
    * Version Number: This attribute is populated with a long value that is incremented whenever a row is created or updated.
    John

Maybe you are looking for

  • Custom Report for the Stock and Stock value for a specific date

    Hi SAP Gurus, Is there any SAP standard t-code or any logic to get the transcations (additions (for example: Purchases) and subtractions (Sales) to the inventory) for a particular materials in a plant and with Total Stock and also Total Stock value w

  • BYOD Onboarding issue with Redirects on ISE 1.2

    Hi there, I'm having intermittent issues with onboarding endpoints (both wired and wireless) with ISE 1.2 (Patch 12). I get three differing scenarios upon attempting: 1). I get redirected to the ISE Self Registration Portal, register, download the su

  • What kinds of book do I need for the SCJP Exam...

    Hi all.. Can you tell me the referance book for the SCJP Exam.. I mean book name, author name etc... with regards.. PMH

  • Printing Reports 6i

    Hi, I need to print a report of 4X4 inches size but while i try to print the printer throws paper in A4 size, i changed the height & width everywhere in the report but still it does not work. please help.. dipin

  • My portable hard drive won't show up in iMovie

    Hi there, Recently my portable HD has stopped showing up in iMovie so I cannot save any of my movies which I really need to do as my disc is almost full. Does anyone know why this may be? I've read a few things about time machine stopping it from bac