Thursday 23 July 2015

Different types of window creation in Webdynpro - Part1

We can create windows in dynpro component and can use them in many different ways. This post will have number of parts and each part will be dedicated for one type of window creation.

So here we go with the first type.

Creation of external window: This type of window creation will be done when we want to open another webdynpro  application in next tab.

As the name suggests itself, this would be an external window. On some event in one window, another window will be created but that 2nd window will get open in a different tab. So our first window and second window exists side by side.

Below are the major steps which we will follow.
  1. Create one webdynpro component which will have one button on the view.
  2. Create another webdynpro component which also can have anything on the screen. For ease, I am only displaying one text message here. Create application for this component.
  3. Now in the first componet, do the below coding in onAction event of button.
  •  Get the URL of the 2nd webdynpro application which we have crated in 2nd point. Do this by using method CONSTRUCT_WD_URL of class CONSTRUCT_WD_URL.

  • Use CREATE_EXTERNAL_WINDOW method of interface if_wd_window_manager for creation of external window.
Create application for first component and test it.

Now clock the button next. A new tab will get open with the window of 2nd WD component.

 Happy Learning :)

Saturday 18 July 2015

Radio button as a cell editor for a column in Table UI element - Part 2

 We have seen creation of radio button in a table column. In case you have missed the part 1 of this tutorial here it is Part 1.

This post is all about how to save that radio buttons data in database table so that next time when one comes back to the application, previously selected radio buttons come selected for the user. Much in tune with the checkboxes thing. Though in general, we use radio button to select one option out of available ones, so in that case there is no need to save that data in database table, but still there are many scenarios where one would like to save the data for further use in some other component.

The idea would be to fill the value of the attribute, which is bind to the selectedKey poperty, in a way that it always holds one single value for the row whose radio button is selected. This coding we will do in the method which we have given for onSelect property of radio button.

So we will take base of the component which we have created in part 1 and we will add one button. On click of that, data will be saved in a database table. Next time when we will open the application, we will get the earlier saved data.

So in main view add one button and assign one method for onAction event.


Create one database table with below fields.

Add below logic in method for onAction event.

Paste below code in WDDOINIT method of the view.



Now go into the properties of radio button and for event onSelect create one mthod TOGGLE_RADIO_BTN. In that method add below lines of code.



Now test the application and also check the content of the database table. You will get the fair idea of the working of the radio buttons.








Happy Learning :)



Wednesday 1 July 2015

Radio button as a cell editor for a column in Table UI element - Part 1

Having radio button as cell editor of column in Table is more than just binding cell editor as is the case with any other cell editor.

First of all there would be no "RadioButtonGroupByIndex" and "RadioButtonGroupByKey". There would be just "RadioButton" when you will try using radio button as a column. So the question arises here, how we are going to bind radio button in a group so that they behave like in a set and we can select any one of them. Further how we can create more such groups. Two fields in the properties of radio button, hold the answers.

KeyToSelect: It's value varies for every radio button which falles in same group.

SelectedKey: It's value remains same for radio button of a single group. And (most important) is equal to KeyToSelect property of the selected radio button of the group. So, if we allow ourselves to think other way around, how we are gonna decide which row will have radio button selected? By comparing these 2 fields of a row. Simple :)

So in another way, this field is responsible for creating different groups of radio buttons and we can select one radio button per group. I hope I am sounding simple and clear :)

Let's see an exemplary data in a table.


Let's try with some practical stuff..

Create one attribute directly under context node and one node with below attribute.

Radio_btn attribute would be of the same type ans selected_key. design layout for Table and bind the properties of radio button like below.

SelectedKey property should be binded to the context attribute which is outside the node, which is bind to the table. This attribute will automatically take the value of Radio_btn attribute once we check the radio button.

In WDDOINIT method write some logic to fill the node which is bind to the table, so that initially some data will be displayed in screen.

Activate the component, make application and test it. Will come liek below screen shots.