Double Metaphone
All,
I recently completed converting/writing a Double Metaphone
Class for Flex. Very useful for spell-checkers, etc.
Wiki
Definition
Source
Zip
Cool!
Similar Messages
-
Optimisation of a Name Matching Routine
Good morning,
I'm developing an SSIS package to do the name matching of pupils that I have stored in one table. All the pupils stored on this table have been dumped from 5 different databases.
The package dataflow is:
1. Truncate the destination table in which I'll store the Id of the source pupil, the Id of the candidate pupil and the matching percentage.
2. After empty the destination table, I split the execution flow to extract in 5 different "Recordset Destination" the Id's of the pupils by database.
3. With the id's stored on each "Recordset Destination" I use them in each Loop to extract the pupil information and compare its data with the rest of the pupils.
My package is:
The process done inside each loop is the following:
1. I extract all the pupils that his Double Metaphone key match.
2. With all the pupils extracted by the OLE DB Source, I compare their data and I calculate the matching percentage inside the "Script Component".
3. Finally, if the matching percentage is bigger than the threshold defined in a SSIS variable, I store the data on the Matching table.
Here is the dataflow:
The thing that I want to ask is if you have any idea of how optimise the package because I have to compare 15 million of pupils and I've estimated that the process will finish in more than 1 week!!!
I'm sure that I'm doing something wrong but I've tried different data flows and transformations and the time is the same.
If you need more information to suggest me any change that I can do, just tell me.
Thank you!Thank you for your comments ArthurZ.
I'm matching names with the Double Methaphone Algorithm + N-Gram Algorithm. When I dump the data from the source databases to the mirror databases (DB1, DB2...), I calculate the keys of each algorithm and I store them with the pupil information (Name, Surname,
DOB, Gender, Postcode...).
With this information stored, I extract it with the package that you see on the pictures. After extract the information of the pupil, I extract on the Loops the pupils with the same Double Metaphone keys and I calculate the matching percentage.
In the first Data Flow Tasks (Pupil To Compare - Id Extraction), I extract the source pupils to compare and I store their Ids in a "Recordset Destination". After that, on each loop, I use this recorset destination to compare the source pupil with the
rest of the candidate pupils.
I've studied to use the Fuzzy Lookup or the Group Matching but it's not useful for my case because I don't need to group and clean the data.
I think that I'm losing performance in the use of the recordset on the loops. Any suggestion in which I can skip the use of the loops?
Many thanks! -
Hi All,
I am using Oracle 11g DB.
and I want to search a value with similar sounding.
I come to know that, "Soundex" is caters above functionality.
But its searching whole word only.
I want to search with partial sounding also. (i.e. contains and begins with operations of similar sound).
RegardsHi,
you could have a look at this forum topic about double metaphone: double metaphone In this topic there is a discussion about a lot of other functions similar to soundex. In 11g you can also have a look at UTL_MATCH. It includes some of the functions mentioned in the topic.
Herald ten Dam
http://htendam.wordpress.com -
Hi,
When i used the soundex option, the Soundex facility provides desired results when the search string is starting with vowels (a,e,u,o,i) like when you search for arange system outputs Orange as a result.
But for the string which doesnot start with vowel the desired result is not coming. like, when we have Karbonated , the system is not giving the result Casrbonated with the soundex option,
Could anyone help me with this?
Thanks in advance.Hi,
on Oracle Support there is the document "Which is the Algorithm used by Soundex, Fuzzy Operator? [ID 400676.1]". In this document Oracle describes how soundex is implemented. It gives also the link to the patent it has for the function. Soundex has some limitations also mentioned in some links of the document.
You can also have a look at this thread: double metaphone . This thread give more options of functions of similarity between words.
Herald ten Dam
http://htendam.wordpress.com -
Reporting Level The Value will Double....
Hi Friends,
IN BI 7.O I Build MultiProvider Based on DSO And CUBE.Here My DSO is Standard and the same DSO Fields are Mapped in to CUBE also.Here My Query Also Standard Query Under DSO,But I copied to Multiprovider.When i execute the Query the Value will be Double.Please let me know the solution for this.
Thanx & Regards,
Raghavendra Bellam.Hi,
As you are aware that a Multiprovider perform a union operation on data from all the objects underneath it.
If your Query selection fullfil the criteria from the cube as well as DSO the key figure value would be double.
One solution is to provide a variable/Filter for the infoprovider in the query to get result from only one of them.
Hope this solves.
Regards,
Karan -
Sales quote layout rows doubled in crystal report layout
Dear All,
Sales quote layout rows doubled in crystal report layout.
In sales quote layout the rows are doubled. Even in the standard layout. If the quote contains only two rows. Then it is doubled as 4 rows in the crystal report layout.
It is happening in the particular database. Other database are working fine. I request you people to help me to overcome this issue.
Regards,
SivaHi Siva,
If this is regarding CR in SAP B1 then please repost to the SAP Business One Application space.
-Abhilash -
SSRS Report Returning Double Quote string from a Single Quote String
Hi, I'm getting weird thing in resultset from SSRS report when executed. When I pass parameter to a report, which passes String that has single quote value to a split function , it returns rows with double quote.
For example following string:
'N gage, Wash 'n Curl,Murray's, Don't-B-Bald
Returns:
''N gage, Wash ''n Curl,Murray''s, Don''t-B-Bald
through SSRS report.
Here is the split function Im using in a report.
CREATE Function [dbo].[fnSplit] (
@List varchar(8000),
@Delimiter char(1)
Returns @Temp1 Table (
ItemId int Identity(1, 1) NOT NULL PRIMARY KEY ,
Item varchar(8000) NULL
As
Begin
Declare @item varchar(4000),
@iPos int
Set @Delimiter = ISNULL(@Delimiter, ';' )
Set @List = RTrim(LTrim(@List))
-- check for final delimiter
If Right( @List, 1 ) <> @Delimiter -- append final delimiter
Select @List = @List + @Delimiter -- get position of first element
Select @iPos = Charindex( @Delimiter, @List, 1 )
While @iPos > 0
Begin
-- get item
Select @item = LTrim( RTrim( Substring( @List, 1, @iPos -1 ) ) )
If @@ERROR <> 0 Break -- remove item form list
Select @List = Substring( @List, @iPos + 1, Len(@List) - @iPos + 1 )
If @@ERROR <> 0 Break -- insert item
Insert @Temp1 Values( @item ) If @@ERROR <> 0 Break
-- get position pf next item
Select @iPos = Charindex( @Delimiter, @List, 1 )
If @@ERROR <> 0 Break
End
Return
End
FYI: I'm getting @List value from a table and passing it as a string to split function.
Any help would be appreciated!
ZKAnother user from TSQL forum posted this code which is returning the same resultset but when I execute both codes in SQL server it works and return single quote as expected.
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8d5c96f5-c498-4f43-b2fb-284b0e83b205/passing-string-which-has-single-quote-rowvalue-to-a-function-returns-double-quoate?forum=transactsql
CREATE FUNCTION dbo.splitter(@string VARCHAR(MAX), @delim CHAR(1))
RETURNS @result TABLE (id INT IDENTITY, value VARCHAR(MAX))
AS
BEGIN
WHILE CHARINDEX(@delim,@string) > 0
BEGIN
INSERT INTO @result (value) VALUES (LEFT(@string,CHARINDEX(@delim,@string)-1))
SET @string = RIGHT(@string,LEN(@string)-CHARINDEX(@delim,@string))
END
INSERT INTO @result (value) VALUES (@string)
RETURN
END
GO
ZK -
Double click on field in ALV Report
hi everyone
i have written a program which displays data in an alv grid report, now i need to extend my program a bit more.
when i double click on any field value the corresponding record should be displayed
can anyone suggest if i need to call any fn module for this, if so wht's the fn module
if anyone can give an example that would be fine
Cheers,
ramaHi,
*& Report Z_REPORTFROMKNA1ANDT005T
REPORT Z_REPORTFROMKNA1ANDT005T
LINE-SIZE 180
MESSAGE-ID ZZ.
TABLES:EKKO.
TYPE-POOLS : SLIS.
Internal table for ALV
DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "Field catalog
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV, "WA for Field catalog
IT_EVENT TYPE SLIS_T_EVENT, "events
WA_EVENT TYPE SLIS_ALV_EVENT, "WA for events
IT_COMMENT TYPE SLIS_T_LISTHEADER, "Header details
WA_COMMENT TYPE SLIS_LISTHEADER, "WA for header details
WA_LAYOUT TYPE SLIS_LAYOUT_ALV, "Layout
IT_SORT TYPE SLIS_T_SORTINFO_ALV, "Sort table
WA_SORT TYPE SLIS_SORTINFO_ALV, "WA for sort table
IT_KEYINFO TYPE SLIS_KEYINFO_ALV. "Pass key value
DATA : V_REPID LIKE SY-REPID.
V_REPID = SY-REPID.
DATA : V_DATE LIKE SY-DATUM.
color management.
DATA : IT_COLOR TYPE TABLE OF LVC_S_SCOL. "Color management.
Internal table declearation
DATA:BEGIN OF IT_EKKO OCCURS 0,
EBELN LIKE EKKO-EBELN,
BUKRS LIKE EKKO-BUKRS,
AEDAT LIKE EKKO-AEDAT,
END OF IT_EKKO.
DATA : BEGIN OF IT_EKPO OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
NETWR LIKE EKPO-MENGE,
chk(1) type c,
END OF IT_EKPO.
DATA : BEGIN OF IT_EKBE OCCURS 0,
EBELN LIKE EKBE-EBELN,
EBELP LIKE EKBE-EBELP,
BELNR LIKE EKBE-BELNR,
MENGE LIKE EKBE-MENGE,
MATNR LIKE EKBE-MATNR,
END OF IT_EKBE.
DATA : BEGIN OF IT_FINAL OCCURS 0,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
NETPR LIKE EKPO-NETPR,
NETWR LIKE EKPO-NETWR,
LINE_COLOR(4) TYPE C, "Used to store row color attributes
END OF IT_FINAL.
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_EBELN FOR EKKO-EBELN.
PARAMETERS : RB1 RADIOBUTTON GROUP G1 MODIF ID Z1,
RB2 RADIOBUTTON GROUP G1 MODIF ID Z2,
RB3 RADIOBUTTON GROUP G1 MODIF ID Z3.
SELECTION-SCREEN END OF BLOCK BLK.
AT SELECTION-SCREEN OUTPUT.
PERFORM MODIFY_SCREEN.
START-OF-SELECTION.
PERFORM GET_DETAILS.
PERFORM GET_ALV.
*& Form modify_screen
text
--> p1 text
<-- p2 text
FORM MODIFY_SCREEN .
IF RB1 = 'X'.
LOOP AT SCREEN.
IF SCREEN-GROUP1 = 'Z1' .
SCREEN-INVISIBLE = 1.
SCREEN-ACTIVE = 0.
ELSE.
SCREEN-INVISIBLE = 0.
SCREEN-ACTIVE = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
ENDFORM. " modify_screen
*& Form GET_DETAILS
Get the details
FORM GET_DETAILS .
DATA: LD_COLOR(1) TYPE C.
SELECT EBELN
BUKRS
AEDAT
FROM EKKO
INTO TABLE IT_EKKO
WHERE EBELN IN S_EBELN.
IF SY-SUBRC = 0.
SORT IT_EKKO BY EBELN.
ELSE.
MESSAGE E000 WITH 'DATA NOT FOUND'.
ENDIF.
IF NOT IT_EKKO[] IS INITIAL.
SELECT EBELN
EBELP
MATNR
MENGE
MEINS
NETPR
NETWR
chk
FROM EKPO
INTO TABLE IT_EKPO
FOR ALL ENTRIES IN IT_EKKO
WHERE EBELN = IT_EKKO-EBELN.
IF SY-SUBRC = 0.
SORT IT_EKPO BY EBELN.
ENDIF.
ENDIF.
LOOP AT IT_EKPO.
IT_FINAL-EBELN = IT_EKPO-EBELN.
IT_FINAL-EBELP = IT_EKPO-EBELP.
IT_FINAL-MATNR = IT_EKPO-MATNR.
IT_FINAL-MENGE = IT_EKPO-MENGE.
IT_FINAL-MEINS = IT_EKPO-MEINS.
IT_FINAL-NETPR = IT_EKPO-NETPR.
IT_FINAL-NETWR = IT_EKPO-NETWR.
ON CHANGE OF IT_FINAL-EBELN.
LD_COLOR = 7.
CONCATENATE 'C' LD_COLOR '10' INTO IT_FINAL-LINE_COLOR.
ENDON.
APPEND IT_FINAL.
CLEAR IT_FINAL.
ENDLOOP.
ENDFORM. " GET_DETAILS
*& Form GET_ALV
text
FORM GET_ALV .
PERFORM GENERATE_FIELDCAT.
PERFORM GENERATE_LAYOUT.
PERFORM GENERATE_EVENTS.
PERFORM GENERATE_SORT.
PERFORM ALV_GRID_DISPLAY.
ENDFORM. " GET_ALV
*& Form GENERATE_FIELDCAT
Field catalog
FORM GENERATE_FIELDCAT .
IF RB1 = 'X' OR RB2 = 'X'.
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-COL_POS = '1'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'PO Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-COL_POS = '2'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'Item Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-edit = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'Material Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-COL_POS = '4'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'PO Quantity'.
WA_FIELDCAT-LOWERCASE = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MEINS'.
WA_FIELDCAT-COL_POS = '5'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'Order unit'.
WA_FIELDCAT-LOWERCASE = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NETPR'.
WA_FIELDCAT-COL_POS = '6'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'Net price'.
WA_FIELDCAT-LOWERCASE = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'NETWR'.
WA_FIELDCAT-COL_POS = '7'.
WA_FIELDCAT-JUST = 'C'.
WA_FIELDCAT-SELTEXT_L = 'Net order value'.
WA_FIELDCAT-LOWERCASE = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
wa_fieldcat-fieldname = 'CHK'.
wa_fieldcat-col_pos = '8'.
wa_fieldcat-just = 'C'.
wa_fieldcat-seltext_l = 'Check Box'.
wa_fieldcat-lowercase = 'X'.
wa_fieldcat-checkbox = 'X'.
wa_fieldcat-edit = 'X'.
append wa_fieldcat to it_fieldcat.
ELSE.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_EKKO'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_EKPO'
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
CHANGING
CT_FIELDCAT = IT_FIELDCAT
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
ENDFORM. " GENERATE_FIELDCAT
*& Form GENERATE_EVENTS
Generate Events
FORM GENERATE_EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
IMPORTING
ET_EVENTS = IT_EVENT
EXCEPTIONS
LIST_TYPE_WRONG = 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.
IF NOT IT_EVENT[] IS INITIAL.
READ TABLE IT_EVENT INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.
ENDIF.
<b> READ TABLE IT_EVENT INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC = 0.
WA_EVENT-FORM = 'IT_USER_COMMAND'.
MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.
ENDIF.</b>
ENDIF.
ENDFORM. " GENERATE_EVENTS
*& Form TOP_OF_PAGE
TOP_OF_PAGE
FORM TOP_OF_PAGE.
DATA : V_CONCATE(50) TYPE C.
DATA : V_SPACE(10) TYPE C.
CONCATENATE 'VIKRANTH' 'RAJESH' INTO V_CONCATE.
WA_COMMENT-TYP = 'S'.
WA_COMMENT-KEY = 'USER :'.
WA_COMMENT-INFO = V_CONCATE.
APPEND WA_COMMENT TO IT_COMMENT.
WA_COMMENT-TYP = 'S'.
WA_COMMENT-KEY = 'DATE:'.
WA_COMMENT-INFO = SY-DATUM.
APPEND WA_COMMENT TO IT_COMMENT.
WA_COMMENT-TYP = 'S'.
WA_COMMENT-KEY = 'TIME:'.
WA_COMMENT-INFO = SY-TIMLO.
APPEND WA_COMMENT TO IT_COMMENT.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = IT_COMMENT.
CLEAR IT_COMMENT.
ENDFORM. "TOP_OF_PAGE
*& Form ALV_GRID_DISPLAY
Grid display
FORM ALV_GRID_DISPLAY .
IF RB1 = 'X'.
PERFORM GRID_DISPLAY.
ELSEIF RB2 = 'X'.
PERFORM LIST_DISPLAY.
ELSE.
PERFORM HIERSEQ_DISPLAY.
ENDIF.
ENDFORM. " ALV_GRID_DISPLAY
*& Form GENERATE_LAYOUT
LAYOUT
FORM GENERATE_LAYOUT .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'. "OPTIMIZING FIELD WIDTH
WA_LAYOUT-ZEBRA = 'X'. "PUTTING ZEBRA COLORS
WA_LAYOUT-TOTALS_TEXT = 'Total'.
WA_LAYOUT-SUBTOTALS_TEXT = 'SUB TOTAL'.
WA_LAYOUT-INFO_FIELDNAME = 'LINE_COLOR'.
ENDFORM. " GENERATE_LAYOUT
*& Form GENERATE_SORT
SORT
FORM GENERATE_SORT .
WA_SORT-FIELDNAME = 'EBELN'.
WA_SORT-SPOS = '1'.
WA_SORT-UP = 'X'.
WA_SORT-SUBTOT = 'X'.
APPEND WA_SORT TO IT_SORT.
ENDFORM. " GENERATE_SORT
*& Form GRID_DISPLAY
GRID DISPLAY
FORM GRID_DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = 'IT_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'Purchase Order Details'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENT
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_FINAL
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. " GRID_DISPLAY
*& Form LIST_DISPLAY
LIST DISPLAY
FORM LIST_DISPLAY .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
<b> I_CALLBACK_USER_COMMAND = 'IT_USER_COMMAND'</b>
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENT
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_FINAL
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. " LIST_DISPLAY
*& Form HIERSEQ_DISPLAY
HIERSEQ DISPLAY
FORM HIERSEQ_DISPLAY .
IT_KEYINFO-HEADER01 = 'EBELN'.
IT_KEYINFO-ITEM01 = 'EBELN'.
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENT
IT_EVENT_EXIT = IT_EVENT_EXIT
I_TABNAME_HEADER = 'IT_EKKO'
I_TABNAME_ITEM = 'IT_EKPO'
I_STRUCTURE_NAME_HEADER = I_STRUCTURE_NAME_HEADER
I_STRUCTURE_NAME_ITEM = I_STRUCTURE_NAME_ITEM
IS_KEYINFO = IT_KEYINFO
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = I_BUFFER_ACTIVE
IR_SALV_HIERSEQ_ADAPTER = IR_SALV_HIERSEQ_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB_HEADER = IT_EKKO
T_OUTTAB_ITEM = IT_EKPO
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. " HIERSEQ_DISPLAY
<b>
*& Form IT_USER_COMMAND
text
FORM IT_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
FREE IT_FIELDCAT.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE IT_FINAL INDEX RS_SELFIELD-TABINDEX.
PERFORM GET_EKBE.
PERFORM GET_FIELD_CATALOG.
PERFORM GET_LIST.
ENDCASE.
ENDFORM. "IT_USER_COMMAND</b>
*& Form GET_EKBE
text
FORM GET_EKBE .
IF NOT IT_FINAL[] IS INITIAL.
SELECT EBELN
EBELP
BELNR
MENGE
MATNR
INTO TABLE IT_EKBE
FROM EKBE
FOR ALL ENTRIES IN IT_FINAL
WHERE EBELN = IT_FINAL-EBELN
AND EBELP = IT_FINAL-EBELP.
ENDIF.
ENDFORM. " GET_EKBE
*& Form GET_FIELD_CATALOG
text
FORM GET_FIELD_CATALOG .
WA_FIELDCAT-FIELDNAME = 'EBELN'.
WA_FIELDCAT-COL_POS = '1'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'PO Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'EBELP'.
WA_FIELDCAT-COL_POS = '2'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'Item Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'BELNR'.
WA_FIELDCAT-COL_POS = '3'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'Material Document'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MENGE'.
WA_FIELDCAT-COL_POS = '4'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'Quantity'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
WA_FIELDCAT-FIELDNAME = 'MATNR'.
WA_FIELDCAT-COL_POS = '5'.
WA_FIELDCAT-JUST = 'R'.
WA_FIELDCAT-SELTEXT_L = 'Material Number'.
WA_FIELDCAT-LOWERCASE = 'X'.
WA_FIELDCAT-DO_SUM = 'X'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
ENDFORM. " GET_FIELD_CATALOG
*& Form get_list
text
FORM GET_LIST .
IF RB1 = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'SECONDARY LIST'
I_GRID_SETTINGS = I_GRID_SETTINGS
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS = IT_ALV_GRAPHICS
IT_HYPERLINK = IT_HYPERLINK
IT_ADD_FIELDCAT = IT_ADD_FIELDCAT
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_EKBE
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.
ENDIF.
IF RB2 = 'X'.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = I_BYPASSING_BUFFER
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = V_REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME = I_STRUCTURE_NAME
IS_LAYOUT = IS_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
IT_EXCLUDING = IT_EXCLUDING
IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS
IT_SORT = IT_SORT
IT_FILTER = IT_FILTER
IS_SEL_HIDE = IS_SEL_HIDE
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT = IS_VARIANT
IT_EVENTS = IT_EVENTS
IT_EVENT_EXIT = IT_EVENT_EXIT
IS_PRINT = IS_PRINT
IS_REPREP_ID = IS_REPREP_ID
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IR_SALV_LIST_ADAPTER = IR_SALV_LIST_ADAPTER
IT_EXCEPT_QINFO = IT_EXCEPT_QINFO
I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
IMPORTING
E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER
TABLES
T_OUTTAB = IT_EKBE
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.
ENDIF.
ENDFORM. " get_list
Thanks
Vikranth Khimavath
Message was edited by:
Khimavath Vikranth -
Double click and get and store the value in variable.
Hi,
My intention is when i double click a particular record on a tabular, i want to capture or store the particular value of record into a variable and call that variable in print/preview button PLSQL code.
Below i show the screenshot which contain a tabular and print preview button. After populating the data. the user will double click on the agent code LC354 and click the print/preview button it should display report for only the
agent code of LC354(this is what i want). But normally when i click the print preview button it wil show the report of agent code of LC354 and LC325(this what i dont want).
http://imageshack.us/photo/my-images/811/printpb.png/
My problem is how to capture the value((*LC354*)) of particular record after double click the agent code(*LC354*)?
i tried to store agent code in variable AG_CNT in mouse double click trigger with following plsql code. but it dosent work.
declare
AG_CNT varchar2(10);
begin
*AG_CNT* :=GET_ITEM_PROPERTY('RFQ_AGENT_DETAILS.AGENT_CODE',CURRENT_RECORD);
end;after that pass that AG_CNT value in *:AG_CODE*. below code is in print/preview button.
cursor c1 is select nvl(count(ENQUIRY_NO),0) from scott.EXP_QUOTE_STATUS
where ltrim(rtrim(upper(job_status))) like 'APPROVED%' and ENQUIRY_NO = :REQ_FOR_QUOT.ENQUIRY_NO
AND AGENT_CODE=*:AG_CODE* ;how to do this?
skud.Hi skud
i juast want to store the agent code to variable.if i did get ur point...
Why don't u just use a simple assign statment for example...
DECLARE
V_VALUE NUMBER;
BEGIN
V_VALUE := LC354 ; -- IF it was a value as LC354 static i mean
-- or u could use any value
V_VALUE := :ur_form_item_name; --- if it was dynamic
END;That's it .
Hope this helps...
Regards,
Ammatu Allah. -
How to print/post double-quotes on reportserver
Hi, I am using rwservlet and cannot send double quotes. I can escape single quotes with another single quote, but double doublequotes do not work. I have tried url-encoding and html encoding, and even their combination, but report server just refuses to generate the PDF with a string with a double quote.
this is my URL:
http://rs-server:7778/reports/rwservlet?cmdkey&report=somereport.jsp&desformat=pdf&TESTSTRING=aaaaaaaa&destype=cache&ACTUSER=19
now I would need in TESTSTRING to have double quotes
PS: tried BI Oracle Business Intelligence 10g (10.1.2) and forms and reports 10gPostScript printer - send it to the printer port e.g. LPT1: with a simple copy.
Non-PostScript printer - you'll need to buy a PostScript RIP, or perhaps use Acrobat Distiller to convert the PostScript to PDF, then print the PDF with Acrobat's API - see the Acrobat SDK. (This is not possible with the free Reader). -
When i double click itunes it doesn't open it just comes up with an error saying " The itunes library.itl file cannot be found or created. The default location for this file is in the 'itunes' folder in the 'music' folder. How can i fix this problem?
Anyone can help to advice how to solve this issue ?
-
Double clicking on a region to open it no longer works...
After installing OS 10.8.2 I have problems with Logic 9.1.8. If I double click on a region in the Arrange window, it used to open on the lower part of the Arrange window so I could edit notes, velocity settings etc. Now, when double-clicking, the lower part opens for very short time (0,1 second) and then disappears. I have deleted prefs files, restarted the iMac etc., but nothing helps. - What should i do? Is there any other way to open a region in the lower part of the Arrange window?
I just discovered that I have the same problem when double clicking on instruments. They open for a very short while (0,2 sec) and then close. This means that I can't adjust parameters in the pop-up window (instrument, filter etc.). Very strange. I remember I had this problem some weeks ago, but it disappeared. Not now.A few ideas..
Have you checked your mouse/trackpad settings in System Preferences.... in case something got messed up there... as it sounds like an input device issue in some ways
Also, check Logic Preferences/General/Editing and make sure that Double Clicking a Midi region Opens... is set to Piano Roll (Even if it is.. try unchecking it.. close prefs.. and recheck it again..)
Finally, you said you had trashed the pref files.. which one(s) did you trash? Did you also trash the CS one too.. as it could be related to a control surface issue.. I mention this because a client of mine had an issue after installing an iPad Controller for Logic... If you have an iPad/iPhone.. make sure the iPad/iPhone is powered off (Not just asleep) and test after that too... -
InDesign crashes every time you double click to open an .indd file on Windows system
InDesign crashes every single time you double click to open an InDesign file and has done so since replacement of the original version of InDesign introduced in the Creative Cloud launch. Does anyone else have this problem? I'd say it was unique to my system if I hadn't experienced the issue repeatedly on several different systems now. You have to relaunch InDesign which then opens the file from recovery, so it saw the file you tried to launch in the first place. This leads me to believe the problem lies with the file association registry of InDesign inside Windows systems. I find it unbelievable that this problem still exists and remains unreported and that a solution hasn't been implemented by Adobe to rectify the issue.
The double click is a fundamental tenant of opening files on a Windows system in the same way a single click is on a Mac. Does InDesign crash ever time a Mac user clicks to open their files, I think not.
Anyone got any ideas other than the obvious which is Adobe actually got their figure out and fixed it.
Cheers,
Pat DoyleHi Michael,
I'll give it a go. Don't really like messing with the registry on Windows boxes. Yes you can do it, but it can end up being a case of the operation was a success, but the patient died.
Just was rather hoping someone else had already experienced this problem and posted the registry tweak. Didn't want spend hours reinventing the wheel. Not because I'm lazy, but I have so many demands on my time that resolving a minor issue that effects me only seems like it should be pretty low priority.
The system I'm using is brand new, but the problem seems to have followed me regardless which may indicate that it is seated in my synchronization information somehow. Really don't know how that could happen as I'm not an Adobe engineer or have the remotest idea where to even start looking. So I think I'll mark your suggestion as the "Answer" and just learn to live with it.
Windows eh! Can't live with - can't live without it. I'm sure Mac can be just as temperamental. Just have to chalk this one up as being just another ghost in the machine.
Thanks for all the advice you have kindly offered, much appreciated.
Cheers,
Pat Doyle -
I think my question explains my issue, but I particularly have this issue on www.pogo.com when I try to open a game room. The system tells me someone else with my user name is trying to enter the room at the same time, so it boots us both out. I have contacted Pogo, and they tell me it's a Firefox issue. There must be an option somewhere, like a OS has, to pick between single and double clicks to open an app, but I can't find it in Firefox. My mouse is set in XP for double-click.
Hi Roger
Thank you for your reply.
My original feed is: http://casa-egypt.com/feed/
However, because I modified the feed http://feeds.feedburner.com/imananddinasbroadcast and nothing changed, I redirected it to another feed and then I deleted this feed.
Is there any way to change the feed in itunes? The only feed I have now is http://feeds.feedburner.com/CasaEgyptStation
I tried to restore the feed http://feeds.feedburner.com/imananddinasbroadcast but feedburner refused.
I know that I missed things up but I still have hope in working things out.
Thanks is advance.
Dina
Message was edited by: dinadik -
How to globally change straight double quotes to curly open and close?
I am editing with InDesign (5.5) some documents created by others. I suddenly noticed that the double quote marks were straight, not curly, in one document and Find/Change does not seem to offer and option to distiguish the open (left) double quote mark from the right (close) when starting with double straight quotes. Any suggestions?
And--unrelated--why is so hard to get to a page where you can actually post a question?
Thanks!
JillSince the position of a double quotation mark determines its shape, it is easiest to use GREP with Find/Change. You can (1) find a straight quotation mark at the beginning of a word/phrase and change it to left quotation marks, and then (2) find a straight quotation mark at the end of a word/phrase and change it to right quotation marks.
(1)
Find what:
~"([\l\u\)[:punct:]])
This finds a straight quotation mark in front of any character or punctuation.
Change to:
\x{201C}$1
This puts a left quotation marks in front of what was behind the straight quotation mark.
(2)
Find what:
([\l\u\)[:punct:]])~"
This finds a straight quotation mark behind any character or punctuation.
Change to:
$1\x{201D}
This puts a left quotation mark behind what was behind the straight quotation mark.
I would find/change the first hits one at a time, and when you are confident that it works for your documents, go ahead and Change All.
Maybe you are looking for
-
Lion Server: All network users have disappeared
Hi, A search through the forums and kbase didn't give me anything that mapped well to my problem. Here's the situation: Specs: Mac Pro (2008) 6GB RAM, SSD boot with space available, OS X Lion (latest) with Server.app Services: File Sharing Users: les
-
How to install PHP on OS X 10.2?
Hi, I'm a bit confused. Ther are lots of PHP related files in the library folder, but when i try to open a php file (drag and drop onto safari dock icon), it just opens a blank browser window. How do i install php so i can open php files like this? T
-
IPhoto freezes when I try to import photos - why?
Whenever I try to import photos from my camera (an olympus 780) iPhoto takes a long time to 'think about it' and then just freezes. It's the same when I try to bluetooth photos from my phone to iPhoto. Now when I just try to open iPhoto it freezes -
-
Error when try to build listener project
I am trying to build the listener project using VC++6. But I get such errors:<br />//==============================================================/<br />--------------------Configuration: Listener - Win32 Debug--------------------<br />Compiling res
-
The user exists on the hard drive but I can no longer access it and a new user called "Local Administrator" was created seemingly out of nowhere