Catching onExpand and onCollapse events of treetableview
Hello,
I am using the bsp extension treeTableView of crm_bsp_library.
With this control it is possible to expand and collapse nodes.
In my controller I catch the onCollapse and onExpand events by the following code:
event = cl_htmlb_manager=>get_event_ex( request ).
tabview = ?= event.
case event->event_server_name.
when 'myExpand' or 'myCollapse'.
endcase.
this code is working so far. Now I would like to get to know in which row the myExpand or myCollapse node is fired.
event->rowselected contains the currently selected row (the one, which is red), but I cannot find any information on which row was expanded or collapsed.
Does anybody know where to get this information from?
Thanks for your help!!!
Andreas
Please log a SR with the product team to confirm is this approach is recommended or not.
Thanks,
Hussein
Similar Messages
-
How to catch Find and add event of toolbar in UDO addon ?
Hi experts ,
please help me anyone How can i catch Find and add event of SAP toolbar in my UDO addon ?
thanks in advance
SurajitHi,
Try This.....
'In Menu Event
If pVal.MenuUID = "1281" And pVal.BeforeAction = True Then 'Find
sbo_application.Messagebox("Find Mode")
end if
If pVal.MenuUID = "1282" And pVal.BeforeAction = True Then 'Add
sbo_application.Messagebox("Add Mode")
end if
Thanks
Shafi -
How to catch "Move" and "Copy" Events
I want certain functions to be called whenever a user moves an existing PageItem on a Page, or when he copied a PageItem onto a Page.
Which event should I be listening for, and to which object should the listener be attached?
TIA,
mlavieHarbs - you there?
I can;t find any help for this elsewhere on the web - would really apprciate a response.
mlavie -
How can i catch the gotfocus and lostfocus events
Hi Dear;
i tried to catch the gotfocus and lostfocus events, but i can't.
in the same code i can catch the onclick events.
is there any special code for the gotfocus and lostfocus events?
regards;Danny;
Whenever I have an issue such as this I fire up the event logger and it will show you exactly which events you can put your hooks into. If you are not using it you should really check it out. Will save you tons of time.
https://www.sdn.sap.com/irj/sdn/businessone-tools
I know it's not the exact answer you were looking for but I hope it helps.
Wayne -
Cant add Rows In a Matrix (Child) and No event catching
Hi,
I created a Master File and its Child. Registered as an UDO. Created an UDO Form with the UDO Form Generator.
I Can Add, find, update, records to de Master File, but The Matrix related to the Child Table Only allows me enter information in the first Row.
I Have tried the addrow command in every place possible, but It doesnt work.
Dim oXmlDoc As Xml.XmlDocument
oXmlDoc = New Xml.XmlDocument
Dim sPath As String
sPath = IO.Directory.GetParent(Application.StartupPath).ToString
oXmlDoc.Load(sPath & "" & FileName)
SBO_Application.LoadBatchActions(oXmlDoc.InnerXml)
oForm = SBO_Application.Forms.Item("F_MX_C071")
The last thing I tried was include this next lines after
oItem = oForm.Items.Item("mtx_0")
oMatrix = oItem.Specific
oMatrix.AddRow(3)
I Also Cant catch the AddRow Event Button. I Set the filters and the event handling for menus and
oFilters = New SAPbouiCOM.EventFilters
oFilter = oFilters.Add(SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED)
oFilter.AddEx("F_MX_C071")
SBO_Application.SetFilter(oFilters)
If (pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED) Then
Events are catched before oForm = SBO_Application.Forms.Item("F_MX_C071"). After that, there´s no event catching
Can anyone help me? I have a lot of time spent in this issue.
Thanks a lot.I dont know if Is it clera for me now, but i try it.
You have matrix on user form. The matrix contains child data. This child data are inserted to matrix manualy or bounded to some datatable, i think with datatable?
When you add new line to matrix, Im using
omatrix.AddRow(1, 0) - 1 is that I want to add 1 row, 0 is position, where the new line will be in matrix
When the matrix is filled with code, Im doing it as
I update usertable
oUserTable.UserFields.Fields.Item("U_Popis").Value = ""
oUserTable.UserFields.Fields.Item("U_PATH").Value = ed.String
then update the form to affect changes to db
oOrderForm.Update()
and then I make new bounding to datatable.
Undestand I correctly it now? -
Using databases and container events?
I'm having trouble finding documents show how one should use databases and listen for container events? I'm using Berkley Java DB. I'll need all my remote object to have access to the database. How do I pass that in? Custom adapters? Also, when Tomcat shuts down I need to close the database, how would this be down? Custom adapters? So I may be answering my own question, but I'm asking cause I really don't see anything in the documentation that points this out. It really looks like I'd be using singletons and factories for this. I could register a Servlet or Servlet Context to listen for Tomcat events, but I figured it couldn't hurt to ask others using Blaze, as I'm very new to it. Thanks.
So how would you tell Blaze to use this? Is there something you put into the config file? My thoughts on all this is to use PicoContainer to manage all services then create an adapter to inject all resources when creating remote objects. But this seems a little heavy if Blaze can do all this for me. The adapter seems like the injection point to me. Is that not what it's used for? Or is using it like that bad practice under Blaze? I've read all I can find on Blaze, so either it's missing docs, or I'm not finding them all. If I'm missing them, by all means let me know where to go. I don't want to ask questions that are already answered in documents else where.
On Tue, May 20, 2008 at 10:51 AM, Mete Atamel <
[email protected]> wrote:
A new message was posted by Mete Atamel in
General Discussion --
Using databases and container events?
I think it's mainly in JavaDocs but here's a sample I have where I check to make sure the HSQLDB is running as the BlazeDS starts up:
import java.sql.Connection;
import java.sql.SQLException;
import flex.messaging.config.ConfigMap;
import flex.messaging.services.AbstractBootstrapService;
public class DatabaseCheckService extends AbstractBootstrapService
// This is called right before server starts up.
public void initialize(String id, ConfigMap properties)
Connection c = null;
try
// Check that the database is running...
c = ConnectionHelper.getConnection();
// ... if yes return
return;
catch (SQLException e)
System.out.println("DB is not running!");
finally
ConnectionHelper.close(c);
// This is called as server is starting.
public void start()
// No-op
// This is called as server is stopping.
public void stop()
// No-op
View/reply at
Using databases and container events?
Replies by email are OK.
Use the
unsubscribe form to cancel your email subscription.
"All that is necessary for the triumph of evil is that good men do nothing." - Edmund Burke -
Why can not catch the standard BACK event in ALV's USER_COMMAND event,
Hi expert, why i can not catch the standard BACK event in ALV's USER_COMMAND event,
Code:
DATA G_CON_UC_FORM TYPE SLIS_FORMNAME VALUE 'F_USER_COMMAND',
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = G_CON_FORM
I_CALLBACK_USER_COMMAND = G_CON_UC_FORM
IT_FIELDCAT = G_TAB_FIELDCAT
IT_SORT = G_TAB_SORT_INF
I_SAVE = G_CON_U
*<<<Liang
IT_EVENTS = G_TAB_ALV_EVENTS
*<<<Liang
TABLES
T_OUTTAB = G_TAB_OUTPUT_DATA
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
*& Form F_USER_COMMAND
ALV USER COMMAND processing
FORM F_USER_COMMAND .
IF SY-UCOMM = '&FO3'.
LEAVE TO SCREEN 0.
ENDIF.
ENDFORM. " F_USER_COMMAND
When I set breakpoint on this subrouting ,and try to click stardard BACK or CANCEL button, the callback form do not run, but if double click one of line of alv report, the callback form works well,
so why??hi
good
check this report and change your code accordingly.
THESE LINES ARE FOR THE MAIN PROGRAM ***
SAP V40B ***
REPORT Z_PICK_LIST .
TABLES: RESB.
SELECTION-SCREEN BEGIN OF BLOCK BL1 WITH FRAME TITLE TEXT-BL1.
SELECT-OPTIONS: S_WERKS FOR RESB-WERKS," Plant
S_AUFNR FOR RESB-AUFNR," Order number
S_BDTER FOR RESB-BDTER." Req. date
SELECTION-SCREEN END OF BLOCK BL1.
PARAMETERS: P_VARI LIKE DISVARIANT-VARIANT DEFAULT '/STANDARD'.
DATA: BEGIN OF OUT OCCURS 10,
AUFNR LIKE RESB-AUFNR, " Order number
MATNR LIKE RESB-MATNR, " Material
BDMNG LIKE RESB-BDMNG, " Requirements in UM
MEINS LIKE RESB-MEINS, " Unit of Measure (UM)
ERFMG LIKE RESB-ERFMG, " Requirements in UE
ERFME LIKE RESB-ERFME, " Unit of Entry (UE)
MAKTX LIKE MAKT-MAKTX, " Mat. description
END OF OUT.
INCLUDE Z_ALV_VARIABLES.
INITIALIZATION.
REPNAME = SY-REPID.
PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].
PERFORM BUILD_EVENTTAB USING EVENTS[].
PERFORM BUILD_COMMENT USING HEADING[].
PERFORM INITIALIZE_VARIANT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.
PERFORM F4_FOR_VARIANT.
AT SELECTION-SCREEN.
PERFORM PAI_OF_SELECTION_SCREEN.
START-OF-SELECTION.
PERFORM GET_ORDERS.
PERFORM GET_MATERIAL_DESCRIPTION.
END-OF-SELECTION.
PERFORM BUILD_LAYOUT USING LAYOUT.
PERFORM BUILD_PRINT USING PRINTS.
PERFORM WRITE_USING_ALV.
FORM INITIALIZE_FIELDCAT *
--> P_TAB *
FORM INITIALIZE_FIELDCAT USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: CAT TYPE SLIS_FIELDCAT_ALV.
CLEAR CAT.
ENDFORM. " INITIALIZE_FIELDCAT
*& Form GET_ORDERS
text
FORM GET_ORDERS.
SELECT AUFNR MATNR BDMNG MEINS ERFMG ERFME
FROM RESB
APPENDING TABLE OUT
WHERE XLOEK EQ SPACE " deletion indicator
AND XWAOK EQ 'X' " goods movement indicator
AND WERKS IN S_WERKS " plant
AND BDTER IN S_BDTER " req. date
AND AUFNR IN S_AUFNR. " pr. order
ENDFORM. " GET_ORDERS
*& Form GET_MATERIAL_DESCRIPTION
text
FORM GET_MATERIAL_DESCRIPTION.
SORT OUT BY MATNR.
LOOP AT OUT.
SELECT SINGLE MAKTX
INTO OUT-MAKTX
FROM MAKT
WHERE MATNR EQ OUT-MATNR
AND SPRAS EQ 'EN'.
MODIFY OUT.
ENDLOOP.
SORT OUT BY AUFNR MATNR.
ENDFORM. " GET_MATERIAL_DESCRIPTION
FORM TOP_OF_PAGE *
FORM TOP_OF_PAGE.
DATA: L_POS TYPE P.
first line
WRITE:/ TEXT-001. " Plant:
IF S_WERKS-HIGH NE SPACE.
WRITE: S_WERKS-LOW, TEXT-TO1, S_WERKS-HIGH.
ELSEIF S_WERKS-LOW NE SPACE.
LOOP AT S_WERKS.
WRITE: S_WERKS-LOW.
ENDLOOP.
ELSEIF S_WERKS-LOW EQ SPACE.
WRITE: TEXT-ALL.
ENDIF.
L_POS = ( SY-LINSZ DIV 2 ) - ( STRLEN( TEXT-TIT ) DIV 2 ).
POSITION L_POS. WRITE: TEXT-TIT.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-011, SY-UNAME RIGHT-JUSTIFIED. " User:
second line
WRITE:/ TEXT-002. " Order:
IF S_AUFNR-HIGH NE SPACE.
WRITE: S_AUFNR-LOW, TEXT-TO1, S_AUFNR-HIGH.
ELSEIF S_AUFNR-LOW NE SPACE.
LOOP AT S_AUFNR.
WRITE: S_AUFNR-LOW.
ENDLOOP.
ELSEIF S_AUFNR-LOW EQ SPACE.
WRITE: TEXT-ALL.
ENDIF.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-012,SY-DATUM. " Date:
third line
WRITE:/ TEXT-003. " Req. Date:
IF S_BDTER-HIGH(1) NE '0'.
WRITE: S_BDTER-LOW, TEXT-TO1, S_BDTER-HIGH.
ELSEIF S_BDTER-LOW(1) NE '0'.
LOOP AT S_BDTER.
WRITE: S_BDTER-LOW.
ENDLOOP.
ELSEIF S_BDTER-LOW(1) EQ '0'.
WRITE: TEXT-ALL.
ENDIF.
L_POS = SY-LINSZ - 20.
POSITION L_POS. WRITE: TEXT-013, SY-PAGNO. " Page:
ENDFORM. " TOP_OF_PAGE
FORM END_OF_LIST *
FORM END_OF_LIST.
DATA: L_POS TYPE P.
ULINE.
WRITE:/ '|', TEXT-021. " Delivered by:
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|', TEXT-031. " Received by:
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
WRITE:/ '|'.
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|'.
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
ULINE.
WRITE:/ '|', TEXT-012. " Date:
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|', TEXT-012. " Date:
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
WRITE:/ '|'.
L_POS = SY-LINSZ DIV 2.
POSITION L_POS. WRITE: '|'.
L_POS = SY-LINSZ.
POSITION L_POS. WRITE: '|'.
ULINE.
ENDFORM. " END_OF_LIST
*& Form WRITE_USING_ALV
text
FORM WRITE_USING_ALV.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = REPNAME
I_INTERNAL_TABNAME = 'OUT'
I_INCLNAME = REPNAME
CHANGING
CT_FIELDCAT = FIELDTAB.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.
ENDIF.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = REPNAME
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
I_STRUCTURE_NAME = 'OUT'
IS_LAYOUT = LAYOUT
IT_FIELDCAT = FIELDTAB
I_DEFAULT = 'A'
I_SAVE = G_SAVE
IS_VARIANT = G_VARIANT
IT_EVENTS = EVENTS[]
IS_PRINT = PRINTS
TABLES
T_OUTTAB = OUT.
IF SY-SUBRC <> 0.
WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.
ENDIF.
ENDFORM. " WRITE_USING_ALV
THESE LINES ARE FOR THE INCLUDE ***
***INCLUDE Z_ALV_VARIABLES .
TYPE-POOLS: SLIS.
DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,
HEADING TYPE SLIS_T_LISTHEADER,
LAYOUT TYPE SLIS_LAYOUT_ALV,
EVENTS TYPE SLIS_T_EVENT,
REPNAME LIKE SY-REPID,
F2CODE LIKE SY-UCOMM VALUE '&ETA',
PRINTS TYPE SLIS_PRINT_ALV,
TITLE(40) TYPE C,
G_SAVE(1) TYPE C,
G_EXIT(1) TYPE C,
G_VARIANT LIKE DISVARIANT,
GX_VARIANT LIKE DISVARIANT.
CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
FORMNAME_END_OF_LIST TYPE SLIS_FORMNAME VALUE 'END_OF_LIST',
FORMNAME_BEFORE_LINE TYPE SLIS_FORMNAME VALUE 'BEFORE_LINE',
FORMNAME_AFTER_LINE TYPE SLIS_FORMNAME VALUE 'AFTER_LINE'.
FORM MAIN_STATEMENTS *
THIS IS THE CODE THAT MUST BE INSERTED IN THE MAIN PROGRAM
FORM MAIN_STATEMENTS.
Declare the parameter P_VARI wherever you want it. If you don't
want it, hide it with NO-DISPLAY, but it must exist.
parameters: p_vari like disvariant-variant. " ALV Variant
You have to add the following line after the data and parameter
declaration:
include z_alv_variables.
Then, after the data/parameter declaration, add these lines:
*initialization.
repname = sy-repid.
perform initialize_fieldcat using fieldtab[].
perform build_eventtab using events[].
perform build_comment using heading[].
perform initialize_variant.
If you are using the variable P_VARI (ALV Variant), also add this:
*at selection-screen on value-request for p_vari.
perform f4_for_variant.
*at selection-screen.
perform pai_of_selection_screen.
After the "END-OF-SELECTION" statement, add these lines:
perform build_layout using layout.
perform build_print using prints.
perform write_using_alv.
You also have to create the following forms: (you can find samples
in this program)
INITIALIZE_FIELDCAT
USER_COMMAND (only if you are creating a STATUS)
WRITE_USING_ALV
ENDFORM.
*& Form INITIALIZE_FIELDCAT_SAMPLE
THIS IS A SAMPLE, DO NOT USE THIS FORM IN YOUR PROGRAM
-->P_FIELDTAB[] text *
FORM INITIALIZE_FIELDCAT_SAMPLE USING P_TAB TYPE SLIS_T_FIELDCAT_ALV.
DATA: CAT TYPE SLIS_FIELDCAT_ALV.
CLEAR CAT. " Always clear before use
CAT-TABNAME = 'I'. " Your internal table
CAT-REF_TABNAME = 'ZCUSTMAS'. " The data dictionary reference table
CAT-FIELDNAME = 'KUNNR'. " Name of your field in the itable.
CAT-COL_POS = 1. " Output position
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'NAME1'. " Next field
CAT-COL_POS = 2.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'STRAS'. " and the next
CAT-COL_POS = 3.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'LOEVM'.
CAT-SELTEXT_S = 'Del'. " You can always override the descrip-
CAT-SELTEXT_M = 'Delivery'. " tion (short, medium, large)
CAT-SELTEXT_L = 'Delivery Num'.
CAT-COL_POS = 4.
APPEND CAT TO P_TAB.
CAT-FIELDNAME = 'FKIMG'.
CAT-DO_SUM = 'X'. " You want totals calculated.
CAT-NO_OUT = 'X'. " and hidden.
APPEND CAT TO P_TAB.
ENDFORM. " INITIALIZE_FIELDCAT
*& Form BUILD_EVENTTAB
THIS IS THE SAME FOR ALL THE PROGRAMS
-->P_EVENTS[] text *
FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.
DATA: LS_EVENT TYPE SLIS_ALV_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_END_OF_LIST TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_BEFORE_LINE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_AFTER_LINE_OUTPUT
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_AFTER_LINE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
CLEAR LS_EVENT.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*& Form BUILD_COMMENT
NOT REALLY NEEDED, BUT I'LL LEAVE IT THERE, JUST IN CASE...
-->P_HEADING[] text *
FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.
DATA: HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C,
SEP(20) TYPE C.
CLEAR: HLINE, TEXT.
HLINE-TYP = 'H'.
write: text-101 to text+23.
HLINE-INFO = TEXT.
APPEND HLINE TO P_HEADING.
ENDFORM. " BUILD_COMMENT
*& Form INITIALIZE_VARIANT
VERY IMPORTANT WHEN YOU USE VARIANTS!!!
FORM INITIALIZE_VARIANT.
G_SAVE = 'A'.
CLEAR G_VARIANT.
G_VARIANT-REPORT = REPNAME.
GX_VARIANT = G_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 0.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDFORM. " INITIALIZE_VARIANT
*& Form PAI_OF_SELECTION_SCREEN
ALSO FOR VARIANTS
FORM PAI_OF_SELECTION_SCREEN.
IF NOT P_VARI IS INITIAL.
MOVE G_VARIANT TO GX_VARIANT.
MOVE P_VARI TO GX_VARIANT-VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
I_SAVE = G_SAVE
CHANGING
CS_VARIANT = GX_VARIANT
EXCEPTIONS
WRONG_INPUT = 1
NOT_FOUND = 2
PROGRAM_ERROR = 3.
IF SY-SUBRC EQ 0.
G_VARIANT = GX_VARIANT.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ELSE.
PERFORM INITIALIZE_VARIANT.
ENDIF.
ENDFORM. " PAI_OF_SELECTION_SCREEN
*& Form F4_FOR_VARIANT
text
FORM F4_FOR_VARIANT.
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = G_VARIANT
I_SAVE = G_SAVE
IMPORTING
E_EXIT = G_EXIT
ES_VARIANT = GX_VARIANT
EXCEPTIONS
NOT_FOUND = 2.
IF SY-SUBRC = 2.
MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
IF G_EXIT = SPACE.
P_VARI = GX_VARIANT-VARIANT.
ENDIF.
ENDIF.
ENDFORM. " F4_FOR_VARIANT
*& Form BUILD_LAYOUT
STANDARD LAYOUT
-->P_LAYOUT text *
FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.
P_LAYOUT-F2CODE = F2CODE.
P_LAYOUT-ZEBRA = 'X'.
p_layout-detail_popup = 'X'.
P_LAYOUT-TOTALS_TEXT = SPACE.
P_LAYOUT-SUBTOTALS_TEXT = SPACE.
ENDFORM. " BUILD_LAYOUT
FORM BUILD_PRINT *
STANDARD PRINT OPTIONS *
--> P_PRINT *
FORM BUILD_PRINT USING P_PRINT TYPE SLIS_PRINT_ALV.
P_PRINT-NO_PRINT_LISTINFOS = 'X'.
P_PRINT-NO_PRINT_SELINFOS = ' '.
ENDFORM. " BUILD_PRINT
FORM PF_STATUS_SET *
NAME YOUR STATUS ALV. IF YOU NEED IT.. *
FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
SET PF-STATUS 'ALV' EXCLUDING EXTAB.
ENDFORM. " PF_STATUS_SET
FORM USER_COMMAND_SAMPLE *
--> UCOMM *
--> SELFIELD *
FORM USER_COMMAND_SAMPLE USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
CASE UCOMM.
WHEN 'MSXL'. " Export to Excel
perform set_excel_export.
CLEAR UCOMM.
WHEN 'MM03'.
set parameter id 'MAT' field selfield-value.
call transaction 'MM03' and skip first screen.
CLEAR UCOMM.
WHEN 'BGR1'.
perform fill_available.
perform graph_available.
CLEAR UCOMM.
WHEN 'DOCU'.
call function 'Z_HELP' exporting repname = repname.
ENDCASE.
ENDFORM. " USER_COMMAND
*& Form WRITE_USING_ALV_SAMPLE
*THIS IS A SAMPLE AND MUST BE WRITTEN DIRECTLY IN THE MAIN PROGRAM
FORM WRITE_USING_ALV_SAMPLE.
YOU CAN MERGE WITH A DATA DICTIONARY TABLE USING THIS:
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = repname
i_internal_tabname = 'I'
i_inclname = repname
changing
ct_fieldcat = fieldtab.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_FIELDCATALOG_MERGE'.
endif.
OR JUST DISPLAY IT USING THIS:
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = repname
i_callback_pf_status_set = 'PF_STATUS_SET'
i_callback_user_command = 'USER_COMMAND'
i_structure_name = 'I'
is_layout = layout
it_fieldcat = fieldtab
i_default = 'A'
i_save = g_save
is_variant = g_variant
it_events = events[]
is_print = prints
tables
t_outtab = i.
if sy-subrc <> 0.
write: 'SY-SUBRC: ', sy-subrc, 'REUSE_ALV_LIST_DISPLAY'.
endif.
ENDFORM. " WRITE_USING_ALV
thanks
mrutyun^ -
ADF Drag and drop event inside the single af:treetable
Hi Experts,
I have a af:treeTable in my ADF web project and i would like to implement the drag and drop event to the same tree table for supporting my sample test project use case. Currently i am facing some issue to get the source tree node and the destination tree node of the drop and drop event inside my drop listener method. How can i get those object since i need to perform some business operation inside the listener. Please note that i am not using ADF BC4j in my project. The service layer is implemented as EJB and it's being called from the backing bean.
Looking forward some guide lines to resolve this issue from you experts.
Thank you.It's not a perfect solution, but a work in progress that i'm currently using in my backing bean:
private RichTree navTree;
private void exitContainers() {
boolean success = false;
while (!success) {
try {
navTree.exitContainer();
} catch (Exception e) {
success = true;
private void clearDisclosedRowKeys() {
if (navTree != null && navTree.getDisclosedRowKeys() != null) {
RowKeySet rks = navTree.getDisclosedRowKeys();
Iterator rksIter = rks.iterator();
while (rksIter.hasNext()) {
exitContainers();
List<Integer> rowkey = (List<Integer>) rksIter.next();
List<Integer> newRowkey = new ArrayList<Integer>();
for (Integer row : rowkey) {
if (navTree.isRowAvailable(row)) {
navTree.setRowIndex(row);
navTree.enterContainer();
newRowkey.add(row);
} else {
// Row is no longer available
break;
if (newRowkey.size() == 0) {
rks.remove(rowkey);
} else {
rowkey.clear();
rowkey.addAll(newRowkey);
Whenever you make a 'delete' or 'move' in the tree, call clearDisclosedRowKeys(), it will remove anything that's no longer valid, so your tree won't collapse, and you won't get the error anymore.
I took out my logging and debug statements, but essentially this just gets all the rows, checks to see if they're valid, and if so creates a new RowKeySet with the valid rows in it.
Of course make sure you have the setNavTree and getNavTree accessor's created and that they're bound in your JSFF, otherwise navTree will always be null.
I haven't yet found a way to 'nicely' find out if you're at the top level container, so i'm relying on an Exception to occur to give me that information, if anyone knows a better solution please feel free to share it. -
Catching the browser close event...
Hello Fellow Portal-Heads,
There's a nagging issue that I've been pondering (RE EP6 NW04). In the MSS iViews there is the potential issue of a user viewing an employee and then closing the browser via the 'X' (vs. clicking the logoff link). This 'X-ing' out of the browser leaves the viewed employee locked which is to be expected. So... anyone have a good way to catch the 'X-ing' out of the browser and then trigger some code to perform a proper logoff? I've tried inserting code in the masthead which catches a browser unonload() event... but it was not the smoothest operator.
Cheers,
Mike
Message was edited by: Mike YangHi Mike,
I have got a chance to work in a similar issue.The following code traps the 'X' of the browser and logoff the user.
<script type="text/javascript">
window.onunload = function unloadEvent()
if (gIsPreviewMode)
return;
else
if(window.screenLeft < 10004)
//this is refresh
else
logoff();
</script>
Preview is taken care and the code is working fine. I am posting code so that somebody else can use it,
Regards
Message was edited by: Rem Swa
This is for EP6 SP2 -
Revision: 12481
Revision: 12481
Author: [email protected]
Date: 2009-12-03 18:48:17 -0800 (Thu, 03 Dec 2009)
Log Message:
Because of the Change/Changing changes in VideoPlayer, we need to also listen for a CHANGE as well as the CHANGE_END, CHANGE_START, THUMB_PRESS, and THUMB_RELEASE events.
Also, when clicking on the track and animating, the scrubbar's playedArea should move along with the thumb. We do this by using pendingValue, rather than value in updateSkinDisplayList().
QE notes: -
Doc notes: -
Bugs: SDK-24528
Reviewer: Kevin
Tests run: checkintests
Is noteworthy for integration: No
Ticket Links:
http://bugs.adobe.com/jira/browse/SDK-24528
Modified Paths:
flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as
flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/ScrubBar.asMy first observation is that you don't reraise the error in the CATCH handler. That is bad, because it makes the proceedure fail silently which may be very difficult to troubleshoot.
The version numbers for Change Tracking are indeed database-global. MIN_VALID_VERSION can be different for different tables, if they have different retention periods. But if they all have the same retention period, it seems likely that MIN_VALID_VERSION
would increase as the database moves on.
I'm not sure about your question Can we use the CHANGE_TRACKING_CURRENT_VERSION even though we want to download subset of data from the table (only records matching for one data_source_key at a time). Where would you use it? How would you use
it?
Erland Sommarskog, SQL Server MVP, [email protected] -
How to catch a key down event in TextEdit UI element ?
Is it possible for me to catch 'Enter' and 'Esc' key when I input something ?
Best regads ,hi, Shishir ,
I see the on key event in input field , yes , the TextEdit does not has any event . But how can I meet such requirement ?
When the user click enter on TextEdit , I should do something , When the user click escape , I should do something ?
Best regards , -
How to catch IE7 tab change event in Java Applet?
My applet have some modeless dialogs, When I start my applet with modeless dialog in tab1, if I swith to tab2, the modeless dialog of tab1 remains open.
So I want to catch the tab change event, and set modeless dialog invisible when tab changes.
Who knows the solutions.... ThanksTo get to the IE7 browser, you'll have to go through JNI if you're using Java to get to a C level interface. You'll have to write the code to interface to it also. IE7 does not have a Java interface, inface, MS has a vested interest in not supporting a Java interface. You'll have to look up the IE7 developers docs to see the OLE interface you'll have to hit.
-
Catching the Record Change Event
Hello,
We are currently using SAP 2004, and would like to catch an event when a sap record changes, for example in Item Master Data window when the user clicks on the << < > >> and the Item Number/ Information changes. From what I can tell there is no specific form event that can be caught like on item number text change
Any help with this problem would be greatly appreciated
ThanksHi Bill,
Unfortunately, there is not a "record change".
You'll have to catch all the menu event when the user click on the << < > >>
Private Sub SBO_Application_MenuEvent(pVal As SAPbouiCOM.IMenuEvent, BubbleEvent As Boolean)
If pVal.BeforeAction = False Then
Select Case pVal.MenuUID
Case "1288" 'Next Record
oRecordSet.MoveNext
'// If reached EOF show last
If oRecordSet.EOF = True Then
oRecordSet.MoveLast
End If
Case "1289" 'Previous record
Case "1290" 'First record
Case "1291" 'Last record
End Select
End If
End Sub -
Catch logout or shutdown event
Hi all,
is there a way to catch a Windows log off or/and shutdown event in LV? For me it's totally anoying that with a running DSC Engine a first log off/shutdown does only stop the DSC Engine and then forgets about it. Further on I have a second "background" process running that looks at the DSC Engine. As it doesn't know about the shutdown/log off it's just registering the DSC Engine stop (that's fine so far), but needs an additional log off event to be stopped.
I found a promising thread http://forums.ni.com/ni/board/message?board.id=170&message.id=89988 identifying the problem. What I would like to do now, is catching the WM_QUERYENDSESSION message of windows using the nevertheless running backgroud process of mine, wait for the shutdown of the DSC Engine (or shutting down it explicitely) and then call the shutdown/log off again (that means I'll have to know whether a shutdown or a log off was requested). But that will soon be annyoing, if there are some more LabVIEW apps running.
Better would be a bug fix by NI which doesn't kill the WM_QUERYENDSESSION...
So far,
CarstenHi Kai,
actually I'm not closing the VI at all. It's running all the time as well as the DSC engine.
The problem is not really, that the DSC engine and the VI don't close, *but* that they seam to tell Windows "hey - we don't want to quit" by setting WM_QUERYENDSESSION to 0 (as the thread mentioned above states). By that Windows simply "forgets" to procede with the shutdown or log off. The funny thing is, that almost anytime the DSC Engine seems to be the first of my two problematic LabVIEW programs getting the WM_QUERYENDSESSION message.
So I don't want to shutdown Windows directly from my VI at all. It's just a "dirty" hack I hope to accomplish:
* catch WM_QUERYENDSESSION
* shutdown the DSC Engine deliberately to be sure
* call a shutdown program wich will wait some seconds in the background
* exit my program
So the problem is how I got knowledge of the requested shutdown and how I can distinguish beetween log off and shutdown (poweroff, restart). Maybe I'll have to write a small C program and communicate with my LabVIEW program :-(... Maybe it's a task to do in LabWindows/CVI?
Carsten -
Unable to capture startup and shutdown event of Photoshop in automation Plugin.
Hi,
I am creating an automation plugin and I want to register some events. I have seen listener plugin sample to register event in startup and unregister event in shutdown. I have used same code in my plugin but I am unable to capture the startup nad shutdown event of Photoshop. On clicking the menu item of my plugin the calls come inside the AutoPluginMain but during the startup or shutdown of plugin, the calls does not come inside the AutoPluginMain.
I am unable to detect the cause of the problem. Can someone please giude me??
Thanks in advance.Hi Tom,
Thanks for the suggestion.
Yes, I am working on Windows. As you suggested, I compiled .rc file but the compile option for .r file was disabled. After compiling the .rc file, I again rebuild the complete project and tested my build. But still I was not able to achive the desired result.
Any other thing that I need to do to make it work?
Thanks
Maybe you are looking for
-
Error Message to Warning Message in Class M7 - transaction Please ?
Hi, Please could someone tell me the transaction to maintain Message 395 in class M7 I wish to change this from an error to a warning, - or preferably switch this off. Just upgraded from 4.6c to ECC6 , I cannot recall the problem occurring in 4.6c, p
-
Can I Install OS X 10.5 Leopard on my Mac?
I use a PowerPC G4 (QuickSilver 2002) computer. Can I install OS X 10.5 Leopard on my Mac? * Processor: Dual 1 GHz PowerPC G4 2 MB L3 cache per processor * Memory: 1.5 GB SDRAM
-
Depreciation Posting Run Error
i'm trying to run depreciation posting for company code X from AFAB. but during test run i got the following error message; "Field Bus. Area is a required field for G/L account MEYA 2572530000" however all asset's "field area" are filled by a value.
-
I am mac user and want to create Object in VBA macro. when i write "set objwrd=createObject("Word.Application")"- it returns "runtime error "492" can't create object". now what it alternative to create object for word in excel macro???
-
(10.4.9 update) Samsung d900
although the samsung (sgh) d900 is on the list of supported phones isync says it's not supported. anybody has an aswer to this one? i'm pretty sure it's not the only phone that is on that list and isync says it's not supported still. ibook g4 Mac O