Hi,
I am trying to put search help for the vendor field in BSP. The window for the field is opening and based on the input in the fields in the window a table is being displayed, but when I select the row and press the button Ok, no action is being performed. A message is being showed as JAVASCRIPT:VOID(0); when I place the cursor on the button Ok. I am new to BSP, kindly need your help on this.
Below is the code in the layout:
<%@page language="abap"%>
<%@extension name="htmlb" prefix="htmlb"%>
<script type="text/javascript">
function getData()
{
opener.transf("<%= lv_lifnr %>");
window.close();
return true;
}
</script>
<htmlb:content design="design2003">
<htmlb:page title = "Search Help for vendor ">
<htmlb:form>
<htmlb:label for = "ip_lifnr"
text = "Supplier: " />
<htmlb:inputField id = "ip_lifnr"
value = "<%= lv_lifnr%>"/>
<htmlb:label for = "ip_name"
text = "Name: " />
<htmlb:inputField id = "ip_name"
value = "<%= lv_name%>"/>
<htmlb:button text = "Search"
id = "search"
onClick = "myClickHandler" />
<br><br>
<%
IF not lt_vendor is initial.
%>
<htmlb:tableView id = "tv_lifnr"
table = "<%= lt_vendor %>"
design = "ALTERNATING"
onRowSelection = "rowSelection"
selectionMode = "SINGLESELECT"
keyColumn = "LIFNR" >
</htmlb:tableView>
<br><br>
<htmlb:button text = "Ok"
id = "ok"
onClientClick = "getData()" />
<%
ENDIF.
%>
</htmlb:form>
</htmlb:page>
</htmlb:content>
Below is the code in OnInput event
DATA: event TYPE REF TO cl_htmlb_event,
obj TYPE REF TO cl_htmlb_inputfield,
tv TYPE REF TO cl_htmlb_tableview,
table_event TYPE REF TO cl_htmlb_event_tableview,
lso_lifnr TYPE RANGE OF lifnr,
lso_name TYPE RANGE OF name1,
lws_lifnr LIKE LINE OF lso_lifnr,
lws_name LIKE LINE OF lso_name.
obj ?= cl_htmlb_manager=>get_data(
request = runtime->server->request
name = 'inputField'
id = 'ip_lifnr' ).
IF obj IS BOUND.
lv_lifnr = obj->value.
IF NOT lv_lifnr IS INITIAL.
lws_lifnr-sign = 'I'.
lws_lifnr-option = 'EQ'.
lws_lifnr-low = lv_lifnr.
APPEND lws_lifnr TO lso_lifnr.
CLEAR lws_lifnr.
CLEAR obj.
ENDIF.
ENDIF.
obj ?= cl_htmlb_manager=>get_data(
request = runtime->server->request
name = 'inputField'
id = 'ip_name' ).
IF obj IS BOUND.
lv_name = obj->value.
IF NOT lv_name IS INITIAL.
lws_name-sign = 'I'.
lws_name-option = 'EQ'.
lws_name-low = lv_name.
APPEND lws_name TO lso_name.
CLEAR lws_name.
CLEAR obj.
ENDIF.
ENDIF.
event ?= cl_htmlb_manager=>get_event( runtime->server->request ).
IF event->id = 'search' or event->id = 'tv_lifnr'.
IF event->id = 'tv_lifnr'.
tv ?= cl_htmlb_manager=>get_data( request = runtime->server->request
name = 'tableView'
id = 'tv_lifnr' ).
IF tv IS NOT INITIAL.
table_event = tv->data.
lv_lifnr = table_event->selectedrowkey.
ENDIF.
IF NOT lv_lifnr IS INITIAL.
lws_lifnr-sign = 'I'.
lws_lifnr-option = 'EQ'.
lws_lifnr-low = lv_lifnr.
APPEND lws_lifnr TO lso_lifnr.
CLEAR lws_lifnr.
CLEAR obj.
ENDIF.
ENDIF.
SELECT *
FROM lfa1
INTO CORRESPONDING FIELDS OF TABLE lt_vendor
WHERE lifnr IN lso_lifnr
AND name1 IN lso_name.
IF sy-subrc = 0.
SELECT *
FROM zgss_catalog
INTO TABLE lt_zgss_catalog
FOR ALL ENTRIES IN lt_vendor
WHERE vendor = lt_vendor-lifnr.
IF sy-subrc <> 0.
DELETE lt_vendor.
ENDIF.
ENDIF.
ENDIF.