Internal condition AND in SELECT
I have table with data
order item
A 123
A 124
B 123
C 125
C 123
C 124
D 123
I need select all data except cause when order in ('A','D') and item=123 but I need another items from order A
I try
select order, item from tableorder where (mo in ('A','D') and item <> '123')
it get me
A 124
but I need
A 124
B 123
C 125
C 123
C 124
Thank you for help
Welcome to the forum.
SQL> WITH sample_data AS (SELECT 'A' ordr,123 item FROM dual UNION ALL
2 SELECT 'A' ordr,124 item FROM dual UNION ALL
3 SELECT 'B' ordr,123 item FROM dual UNION ALL
4 SELECT 'B' ordr,123 item FROM dual UNION ALL
5 SELECT 'C' ordr,125 item FROM dual UNION ALL
6 SELECT 'C' ordr,123 item FROM dual UNION ALL
7 SELECT 'C' ordr,124 item FROM dual UNION ALL
8 SELECT 'D' ordr,123 item FROM dual
9 )
10 --End of sample data creation with subquery Factoring.
11 --You can use the query from here with your original table name.
12 SELECT * FROM sample_data
13 WHERE 1= CASE WHEN (ordr='A' OR ordr='D') AND item=123
14 THEN 0
15 ELSE 1
16 END;
O ITEM
A 124
B 123
B 123
C 125
C 123
C 124
6 rows selected.
SQL>
Similar Messages
-
Field symbols as Table name and in where condition in a select statement
Hello All,
I have a scenario where I need to get user input on table name and old field value and new field value. Then based on user input, I need to select the record from the database. The column name for all the tables in question is different in the database, however there data type is the same and have same values.
I am not able to use a field symbol for comparing the old field value to fetch the relevant record in my where clause.
I cannnot loop through the entire table as it has 10 millilon records, please advice on how to add the where clause as field symbol as the table name is also dynamically assigned.
Here is my code:
DATA: TAB LIKE SY-TNAME,
TAB_COMP1 LIKE X031L-FIELDNAME,
TAB_COMP2 LIKE X031L-FIELDNAME,
NO_OF_FLD TYPE N.
DATA: BEGIN OF BUFFER,
ALIGNMENT TYPE F,
C(8000) TYPE C,
END OF BUFFER.
FIELD-SYMBOLS: <WA> TYPE ANY,
<COMP1> TYPE ANY,
<COMP2> TYPE ANY.
GET TABLE NAME GIVEN BY USER IN LOCAL VARIABLE
TAB = TAB_NAME.
CREATE FIELD NAME BASED ON THE TABLE NAME ENTERED.
CASE TAB_NAME.
WHEN 'OIUH_RV_GL'.
KEY FIELD
TAB_COMP1 = 'GL_GL_SYS_NO'.
NO_OF_FLD = 1.
WHEN 'OIUH_RV_OPSL'.
KEY FIELD
TAB_COMP1 = 'OPSL_GL_SYS_NO'.
NO_OF_FLD = 1.
WHEN 'OIUH_RV_OTAX'.
NOT THE ONLY KEY FIELD
TAB_COMP1 = 'OTAX_GL_SYS_NO'.
TAB_COMP2 = 'OTAX_TAX_POS_NO'.
NO_OF_FLD = 2.
WHEN 'OIUH_RV_GTAX'.
NOT THE ONLY KEY FIELD
TAB_COMP1 = 'GTAX_GL_SYS_NO'.
TAB_COMP2 = 'GTAX_TAX_POS_NO'.
NO_OF_FLD = 2.
WHEN OTHERS.
EXIT.
ENDCASE.
SET FIELD SYMBOL WITH APPROPRIATE TYPE TO BUFFER AREA.
ASSIGN BUFFER TO <WA> CASTING TYPE (TAB).
How to add where clause and remove the if condition in the select -- endselect
SELECT * FROM (TAB) INTO <WA>.
ASSIGN COMPONENT TAB_COMP1 OF STRUCTURE <WA> TO <COMP1>.
IF NO_OF_FLD = 2.
ASSIGN COMPONENT TAB_COMP2 OF STRUCTURE <WA> TO <COMP2>.
ENDIF.
IF <COMP1> = OLD_SYS_NO.
code for updating table would come here
WRITE: 'MATCH FOUND'.
EXIT.
ENDIF.
ENDSELECT.
Please advice. Thanks much.
Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:33 PM
Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:34 PM
Edited by: Shipra Jhunjhunwala on Jul 22, 2009 1:35 PM1. Create single column table for holding field name depending on the table entered.
2. Take input from user: for e.g. table_name
3. Using case load single column table with required fields
for e.g.
CASE TAB_NAME.
WHEN 'OIUH_RV_GL'.
Append 'GL_GL_SYS_NO' to KEY_FIELD --> KEY_FIELD is the single line internal table as mentioned in step 1.
WHEN 'OIUH_RV_OPSL'.
Append 'OPSL_GL_SYS_NO'.
WHEN 'OIUH_RV_OTAX'.
Append 'OTAX_GL_SYS_NO' to KEY_FIELD.
APPEND 'OTAX_TAX_POS_NO' to KEY_FIELD.
WHEN 'OIUH_RV_GTAX'.
Append 'GTAX_GL_SYS_NO' to KEY_FIELD.
APPEND 'OTAX_TAX_POS_NO' to KEY_FIELD.
WHEN OTHERS.
EXIT.
ENDCASE.
Now depending on the table name you have required column ready
4. Create dynamic internal table using following sudo code
Fill the fieldcatlog using the single column field table and DD03L table, See what all columns from DD03L you want to fill in field catlog table
loop at internal table with all the fields.
move it to field catalog.
append field catalog.
endloop.
5. Pass this field catalog table to static method create_dynamic_table method
DATA table TYPE REF TO DATA. --> data object for holding handle to dynamic internal table.
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = fieldcatalog_tab
importing
ep_table = table.
6. Now assign table reference to field symbol of type table.
ASSIGN table->* to <field-tab>.
7. Also create work area <field-wa> using refrence of table.
create data object wa LIKE LINE OF <field-tab>.
ASSIGN wa->* to <field-wa>.
8. Also define field symbol for field name.
for e.g. <field_name>
4. Dynamic internal table is ready
5. Now execute the select statement as follows:
SELECT (KEY_FIELD)
INTO <ITAB> --> created dynamically above
FROM (TABLE_NAME)
WHERE (WHERE). --> WHERE is single line internal table having line type of CHAR72. So for every old value there will be one line
Where condition is same as like we give in static way only difference in this case it will stored in internal table line wise.
In this case you need to append all your where condition line by line in to WHERE.
5. To fill this dynamic internal table using ASSIGN COMPONENT <Comp_number> OF STRUCTURE <field-wa> TO <field-name>
So in this case if first field of structure STRUCT1 is user_id then sudo-code will be
loop at internal table containing list of fields into field_wa --> single column field table
ASSIGN COMPONENT field_wa OF STRUCTURE <field-wa> TO <field>. "Here field_wa is wa area for single column internal table holding all the fieldnames.
Now <field-name> points to user_id field. Move some value into it as nornally we do with variables.
Move <your_new_value> to <field-name>. --> Assign new value
or
<field-name> = <your_new_value>.
Endloop.
6. After completing all the fields one row will be ready in <field_wa>.
APPEND <field_wa> to <field_tab>.
Hope this helps you.
Thanks,
Augustin. -
FM for Internal Condition record MEK1/MEK2 and VK11/VK12
Hi,
Is there any function module to update the internal condition record for both Purchasing(MEK2) as well as SD condition records(VK12).
My requirement is to update the price and price unit in the gross price condition(PB00) and sales price condition (VKP0).
if so Please let me know.
Thanks in advance
Vinoth RHi,
yes you can use he sam module for both conditions:
Function module RV_CONDITION_COPY
paramertes MAINTANI_MODE - 'A' Create; 'B' change
there is no possibility to delete a condition
COMMIT WORK and
Afterwards call RV_CONDITION_RESET to initiailize all global data of condition maintenace.
Regards,
Remek -
Trying to load an app from the itunes store and asked to review the "Terms and Conditions and Apple Privacy Policy" as it has changed. There is no "Agree" selection available. Any suggestions? This appears to be associated with the iOS7 upgrade. Thanks
I have the same problem with my iphone 4 . I solve it with giving permission to the cookies on safari from the settings.
-
We are getting multiple 8623 Errors in SQL Log while running Vendor's software.
How can you catch which Query causes the error?
I tried to catch it using SQL Profiler Trace but it doesn't show which Query/Sp is the one causing an error.
I also tried to use Extended Event session to catch it, but it doesn't create any output either.
Error:
The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that
reference a very large number of tables or partitions. Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.
Extended Event Session that I used;
CREATE EVENT SESSION
overly_complex_queries
ON SERVER
ADD EVENT sqlserver.error_reported
ACTION (sqlserver.sql_text, sqlserver.tsql_stack, sqlserver.database_id, sqlserver.username)
WHERE ([severity] = 16
AND [error_number] = 8623)
ADD TARGET package0.asynchronous_file_target
(SET filename = 'E:\SQLServer2012\MSSQL11.MSSQLSERVER\MSSQL\Log\XE\overly_complex_queries.xel' ,
metadatafile = 'E:\SQLServer2012\MSSQL11.MSSQLSERVER\MSSQL\Log\XE\overly_complex_queries.xem',
max_file_size = 10,
max_rollover_files = 5)
WITH (MAX_DISPATCH_LATENCY = 5SECONDS)
GO
-- Start the session
ALTER EVENT SESSION overly_complex_queries
ON SERVER STATE = START
GO
It creates only .xel file, but not .xem
Any help/advice is greatly appreciatedHi VK_DBA,
According to your error message, about which query statement may fail with error message 8623, as other post, you can use trace flag 4102 & 4118 for overcoming this error. Another way is looking for queries with very long IN lists, a large number of
UNIONs, or a large number of nested sub-queries. These are the most common causes of this particular error message.
The error 8623 occurs when attempting to select records through a query with a large number of entries in the "IN" clause (> 10,000). For avoiding this error, I suggest that you could apply the latest Cumulative Updates media for SQL Server 2012 Service
Pack 1, then simplify the query. You may try divide and conquer approach to get part of the query working (as temp table) and then add extra joins / conditions. Or You could try to run the query using the hint option (force order), option (hash join), option
(merge join) with a plan guide.
For more information about error 8623, you can review the following article.
http://blogs.technet.com/b/mdegre/archive/2012/03/13/8623-the-query-processor-ran-out-of-internal-resources-and-could-not-produce-a-query-plan.aspx
Regards,
Sofiya Li
Sofiya Li
TechNet Community Support -
How to fetch data from bseg based on 2 internal tables in 1 select query?
hi,
i have bukrs and belnr in one internal table and bukrs and vbeln in another internal table..now if i select from bseg twice using for all entries for fields bukrs vbeln and bukrs belnr twice in 2 select statements its fine..but since bseg is a huge table i want to use select only once..but the problem is that none of the belnrs in the one internal table will have vbeln in another internal table....ie if vbeln is selected from bseg based on belnr in 1 internal table non eof those vbeln will be equal to vbeln on another internal tables..in this scenario even if i take all data from two internal tables into 1 single internal table and then use for all entries on vbeln and belnr of that table ..but i think this will not work because and AND operator will not work because no record will satisfy both vbeln and belnr conditions..even if i use OR operator if the 1st condition satisfies the select clause will not enter into the second clause and all the records will not be fetched...Please help how should i tackle this..Hi vijaya,
no simple select statement solution so far.
As BSEG is a huge table you should try to get the full key values into another internal table first.
SAP avoids direct selections from BSEG.
Pleas consider the use of one of the secondary index tables first:
BSAD : Accounting: Secondary Index for Customers (Cleared Items)
BSAK : Accounting: Secondary Index for Vendors (Cleared Items)
BSAS : Accounting: Secondary Index for G/L Accounts (Cleared Item
BSEC : One-Time Account Data Document Segment
BSEG : Accounting Document Segment
BSID : Accounting: Secondary Index for Customers
BSIK : Accounting: Secondary Index for Vendors
BSIS : Accounting: Secondary Index for G/L Accounts
you may include
BKPF : Accounting Document Header
for restrictions about time and document type.
The last step is a FOR ALL ENTRIES selection from BSEG providing the full key values.
Although you may have even more selects, the overall performance will be much better.
Regards,
Clemens -
I need use conditions in the select fields of a query.
Hello,
Is possible, that I can have conditions in the select fields of a query? In a invoice when the type is cancellation I want to put *-1 to price and if is other type the price is normally.
If VBRK.FKART = 'S1' THEN KWERT*-1 else KWERT .
Thank you very much.you can do two things:
1. select the data into internal table and loop through the internal table and do the necessary changes
SELECT fkart kwert
FROM vbrk
INTO TABLE itab
WHERE ...
LOOP AT itab.
IF itab-fkart EQ 'S1'.
itab-kwert = itab-kwert * -1 .
MODIFY itab.
ENDIF.
ENDLOOP.
2. use select-endselect and change the data acc. to your needs inbetween and append the internal table.
SELECT fkart kwert
FROM vbrk
INTO wa
WHERE ...
IF wa-fkart EQ 'S1'.
wa-kwert = wa-kwert * -1 .
ENDIF.
APPEND wa TO itab.
ENDSELECT.
(The first approach is probably faster.) -
How to join fields from different internal tables and display into one int
hai i have one doubt...
how to join fields from different internal tables and display into one internal table..
if anybody know the ans for this qus tell me......hii
you can read data as per condition and then can join in one internal table using READ and APPEND statement..refer to following code.
SELECT bwkey " Valuation Area
bukrs " Company Code
FROM t001k
INTO TABLE i_t001k
WHERE bukrs IN s_bukrs.
IF sy-subrc EQ 0.
SELECT bwkey " Valuation Area
werks " Plant
FROM t001w
INTO TABLE i_t001w
FOR ALL ENTRIES IN i_t001k
WHERE bwkey = i_t001k-bwkey
AND werks IN s_werks.
IF sy-subrc EQ 0.
LOOP AT i_output INTO wa_output.
READ TABLE i_t001w INTO wa_t001w WITH KEY werks = wa_output-werks.
READ TABLE i_t001k INTO wa_t001k WITH KEY bwkey = wa_t001w-bwkey.
wa_output-bukrs = wa_t001k-bukrs.
MODIFY i_output FROM wa_output.
CLEAR wa_output.
ENDLOOP. " LOOP AT i_output
ENDIF. " IF sy-subrc EQ 0
regards
twinkal -
I have two Apple IDs because i travel frequently between Mexico and the US, and the apple stores offer different products, so i like to download music, movies and TV series from both sites.
Apparently apple changed the conditions, becauise until a few days ago i could log our from one account and log in from my other one. Yesterday i was at Miami International Airport and wanted to download a few chapters from one of my TV series (Walking Dead) to watch on my way to Mexico City, but a pop up window came up saying "this device is already associated with an apple id". Curoiously, the ID to which i was connected to was precisely the one under which i had bought weeks ago the chapters i was wanting to download from the cloud. So it says i have to wait 90 days to change apple id.... weard! probably i accepted these terms when dowloading a new IOS version, so legally I'm dead in complaining, but why is it that if i am paying for all that i buy as a model citizen i am now blocked from jumping from one apple id to another one???? I can certainly buy another ipad and have one with one id and another one with the other, but is there any other way i can keep the two in just one device?? If i don't use i-could would anything change? This is really making me mad, and is the first time i have thought of moving our of mac products into samsung or others and buy my music and movies somewhere else where stupid restrictions like this one do not exist. Please help with a solution!OK, but in my ipad, the apple id i have in itues is already the one iwant to have, but th one i used to sin in for i-coud is the other one. Any tip as to how to change the apple id for icloud and any idea how to know what apps i bought with the other apple id so as to delete them from my ipad to avoid being asked to enter another apple id every time they get updated? thanks!
-
I have an iMac with 2 internal drives and a multiple user account set-up. Hw do I create a path to store data files on the second drive within an application?
This is the Mac mini forum not the iMac forum however...
Applications written for average users like Photoshop, Word, i.e. GUI based applications provide a 'Save' dialog box which while allow selecting second drives or any drive. The dialob box initially shown might be in the simple mode but you just need to click on the triangle to show the full set of options. You should then see the different drive names amongst other options.
If your referring to an application your writing yourself then you need to build a pathname. This can be in one of two styles depending on the programming system your using. This could be a POSIX style path or a Mac style path.
POSIX = /Volumes/volname/foldername
Mac style = Volname:foldername: -
How to get internal order and activity type other than from BSEG
We want the Internal order and activity type fields. From BSEG, it is taking a long time, and it hangs.
Is there any other table we can get these values from?
Our query is this:
select bukrs "Company code
gjahr "Fiscal year
belnr "Document no.
buzei "Document Item no.
aufnr "Internal order
lstar "Activity type
from bseg
into table gt_add_info
for all entries in gt_gl_detail
where bukrs = gt_gl_detail-rbukrs"Comcode from G/L acct detail
and buzei = gt_gl_detail-buzei "Doc item no. from G/L acct detail
and belnr = gt_gl_detail-belnr "Doc no. G/L acct detail
and gjahr = gt_gl_detail-gjahr."Fiscal yea
Can advise please how to make it faster. My internal table (GT_GL_DETAIL) has over 100000 records. ? thanks.I did a SQL trace, and saw that tables CSLA, CSSL, COKL and COKA are being hit with the values I entered inthe Activity type in transaction FB50.
Still not clear but where it gets stored. If in any of these tables, how do I get the object key? -
Find Tax conditions and amounts while creating a PO from reference.
Hi friends,
I am creating a PO from another reference PO. When I create the PO the Tax conditions and
amounts come from Sabrix 3rd party system. This data gets saved into SAP internal memory and
is visible when we follow PO item-> Invoice Tab->Taxes-->then we can see Tax
conditions and there amounts as well. when we press SAVE button PO gets created and KNUMV
(Condition Number) gets formed and then we can access this Condition types and Amounts data
from KONV table by specifying the Condition number which is the Primary key of KONV table.
But we need to access this data of Condition types and Amounts even before we press SAVe
button on ME21N screen.
Please help me on this.Hi,
As mentioned that this error was one of the wierdest SAP issues I have faced, it was due to the silliest copy paste errors on my behalf. I completely overlooked the POITEMX naming.
For 4 values of RFQ_NO, RFQ_ITEM, PREQ_NO, PREQ_ITEM, I didnt have the 'X' for POITEMX and kept on looking for errors for days.
BAPI_PO_CREATE1 works with min. possible inputs successfully.
Thanks to all! -
ALV - need to sum values of internal table and display in ALV
I have data in internal table as:
Material date sum1 sum2
Mat_A 19990101 4 4
Mat_A 20080501 3 0
Mat_A 20080601 2 0
Mat_B 19990101 2 0
Mat_B 20080601 5 5
Required output is :
Material qty1 qty2 19990101 20080501 20080601
Mat_A 432 4 4 3 2
Mat_B 2+5 5 2 5
Thinking of using ALV to pass the internal table and display as classical report (and also to save as excel spreadsheet).
Counting your help on the following questions:
1) How to accomplish the sum in ALV report? Can ALV FM do that or one has to use ABAP to compute the sum from the given internal table?
2) Mat_A can have more date values. Here it got 3 distinct date values 19990101, 20080601, 20080501. If it has say 5 date values, how to create the ALV date columns (from 3 to 5 date columns) dynamically?
Thanks for the help.for the sum inalv we use generally..
it_fieldcat-do_sum = 1.
check this examples...
http://www.****************/Tutorials/ALV/Subtotals/text.htm
*& Report ZTEST_ALV_PERC_13317
REPORT ztest_alv_perc_13317.
TYPE-POOLS: slis.
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
wa_fieldcat TYPE slis_fieldcat_alv,
it_events TYPE slis_t_event,
wa_events TYPE slis_alv_event,
it_sort TYPE slis_t_sortinfo_alv,
wa_sort TYPE slis_sortinfo_alv,
l_layout TYPE slis_layout_alv.
TYPES: BEGIN OF ty_itab,
field1(10),
qty1 TYPE i,
qty2 TYPE i,
qty3 TYPE i,
dummy TYPE c,
END OF ty_itab.
DATA: itab TYPE STANDARD TABLE OF ty_itab WITH HEADER LINE,
itab1 TYPE ty_itab.
START-OF-SELECTION.
itab-field1 = 'FIRST'.
itab-qty1 = 2.
itab-qty2 = 1.
itab-qty3 = 5.
itab-dummy = 10.
APPEND itab.
itab-field1 = 'FIRST'.
itab-qty1 = 2.
itab-qty2 = 1.
itab-qty3 = 5.
itab-dummy = 10.
APPEND itab.
itab-field1 = 'FIRST'.
itab-qty1 = 2.
itab-qty2 = 1.
itab-qty3 = 5.
itab-dummy = 10.
APPEND itab.
wa_fieldcat-col_pos = 1.
wa_fieldcat-fieldname = 'FIELD1'.
wa_fieldcat-tabname = 'ITAB'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-col_pos = 2.
wa_fieldcat-fieldname = 'QTY1'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-col_pos = 3.
wa_fieldcat-fieldname = 'QTY2'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-col_pos = 4.
wa_fieldcat-fieldname = 'QTY3'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-do_sum = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
wa_fieldcat-col_pos = 5.
wa_fieldcat-fieldname = 'DUMMY'.
wa_fieldcat-tabname = 'ITAB'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-no_out = 'X'.
APPEND wa_fieldcat TO it_fieldcat.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = it_events
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.
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-repid
it_fieldcat = it_fieldcat
TABLES
t_outtab = itab
EXCEPTIONS
program_error = 1
OTHERS = 2
IF sy-subrc <> 0.
ENDIF. -
At selection-screen output and at selection-screen on
Hi Experts,
I had coded in both at selection-screen output for disabling input of certain fields and at selection-screen for validation like this:
AT SELECTION-SCREEN output.
IF p_amt = 'X'.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_AMT'.
screen-input = '1'.
WHEN 'P_TST'.
screen-input = '1'.
WHEN 'P_B4C'.
screen-input = '1'.
WHEN 'P_AFC'.
screen-input = '1'.
WHEN 'P_COM'.
screen-input = '1'.
WHEN 'P_COM1'.
screen-input = '1'.
WHEN 'P_COM2'.
screen-input = '1'.
WHEN OTHERS.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
IF p_amt = 'X'.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_AMT'.
screen-input = '1'.
WHEN 'P_TST'.
screen-input = '1'.
WHEN 'P_B4C'.
screen-input = '1'.
WHEN 'P_AFC'.
screen-input = '1'.
WHEN 'P_COM'.
screen-input = '1'.
WHEN 'P_COM1'.
screen-input = '1'.
WHEN 'P_COM2'.
screen-input = '1'.
WHEN OTHERS.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
IF p_pdf = 'X'.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_PDF'.
screen-input = '1'.
WHEN 'P_TST'.
screen-input = '1'.
WHEN 'P_PATH'.
screen-input = '1'.
WHEN OTHERS.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
IF p_afc = 'X'.
LOOP AT SCREEN.
CASE screen-name.
WHEN 'P_TST'.
screen-input = '1'.
WHEN 'S_FID-LOW' OR 'S_FID-HIGH'.
screen-input = '0'.
WHEN 'S_ORG-LOW' OR 'S_ORG-HIGH'.
screen-input = '0'.
WHEN 'S_OFF-LOW' OR 'S_OFF-HIGH'.
screen-input = '0'.
WHEN 'S_DAT-LOW' OR 'S_DAT-HIGH'.
screen-input = '0'.
ENDCASE.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
AT selection-screen on block b5.
if p_tst is initial.
message text-016 type 'E'.
endif.
AT selection-screen on block b2.
if p_amt ne 'X' and p_pdf ne 'X'.
if s_fid is initial and s_org is initial.
message text-000 type 'E'.
endif.
if s_dat is initial.
message text-000 type 'E'.
endif.
endif.
when i comment out at selection-screen validations the input is disabled for the screen fields as set, else the validations are executed first.
Any solution for this???
Thanks in advance.AT SELECTION-SCREEN
Syntax
AT SELECTION-SCREEN selscreen_event.
Effect
This statement defines event blocks for different events selscreen_event that are triggered by the ABAP runtime environment during selection screen processing.
Selection screen events occur immediately before sending a selection screen and after certain user actions on a displayed selection screen. They assist in selection screen processing in the ABAP program.
AT SELECTION-SCREEN is triggered at least twice during actions on selection screens that are linked into another selection screen as a subscreen - first for the linked selection screen itself, and then for the linking selection screens.
Note
The event blocks after AT SELECTION-SCREEN are implemented internally as procedures. Declarative statments in these event blocks create local data. -
How to export internal table and pass the internal table to another screen?
Hi,
I have a sql SELECT statement that select data from table into internal table. I would like to export out the internal table and pass to another screen and display the data in ALV list. How to export it out? I try but the error given was " The type of "OUT_SELECT_ITAB" cannot be converted to the type of "itab_result".
Another question is, how to pass the internal table that i export out from the function module to another screen?
Here is the code
==============================================================
FUNCTION ZNEW_SELECT_ZSTUD00.
""Local Interface:
*" IMPORTING
*" REFERENCE(IN_SELECT_YEAR) TYPE ZSTUD00-EYEAR
*" EXPORTING
*" REFERENCE(OUT_RESULT) TYPE CHAR9
*" REFERENCE(OUT_SELECT_ITAB) TYPE ZSTUD00
*& Global Declarations
DATA: itab TYPE ZSTUD00,
itab_result TYPE TABLE OF ZSTUD00.
*& Processing Blocks called by the Runtime Environment
itab-eyear = IN_SELECT_YEAR.
SELECT *
FROM ZSTUD00
INTO TABLE itab_result
WHERE eyear = IN_SELECT_YEAR.
IF sy-subrc = 0.
out_result = 'Success'.
OUT_SELECT_ITAB = itab_result.
ELSE.
out_result = 'Fail'.
ENDIF.
ENDFUNCTION.
===============================================================
Please advise. Thanks
Regards,
RaydenHi Nagaraj,
I try to change it in Tables tab page but it state that TABLES parameters are obsolete. when i "Enter". I try to "Enter" again. it seem to be ok but it stil give me the same error.
================================================================
FUNCTION ZNEW_SELECT_ZSTUD00.
""Local Interface:
*" IMPORTING
*" REFERENCE(IN_SELECT_YEAR) TYPE ZSTUD00-EYEAR
*" EXPORTING
*" REFERENCE(OUT_RESULT) TYPE CHAR9
*" TABLES
*" OUT_SELECT_ITAB STRUCTURE ZSTUD00
*& Global Declarations
DATA: itab TYPE ZSTUD00,
itab_result TYPE TABLE OF ZSTUD00.
*& Processing Blocks called by the Runtime Environment
itab-eyear = IN_SELECT_YEAR.
SELECT *
FROM ZSTUD00
INTO TABLE itab_result
WHERE eyear = IN_SELECT_YEAR.
IF sy-subrc = 0.
out_result = 'Success'.
OUT_SELECT_ITAB = itab_result.
ELSE.
out_result = 'Fail'.
ENDIF.
ENDFUNCTION.
===============================================================
regards,
Rayden
Maybe you are looking for
-
How Can I debug a Wle CORBA Server Program by JBuilder 5 Or other Java develop tool.
-
Video Posting Not Working for One Page - Working fine on others...
I have a page created using iWeb that features a video, however the video will not load properly when the page is opened. here is a link to the page where the video DOES NOT work: http://web.mac.com/minorstrachan/iWeb/Surviving/Surviving%20WEB.html\
-
Firefox crashes when opening "Extras Add-ons"
Firefox crashes when opening "Extras>Add-ons" (German user interface - I don't know what the according menu points are labeled in English). The crash seems to be so severe that no crash ID is created. On every restart after a crash Firefox 4 is in of
-
I have just spent 20 minutes trying to find the option to chat with somebody. I managed to get offered that yesterday, but today I cannot find that option anywhere. Worthless. I have downloaded and installed the trial version of Pagemaker 7. It was a
-
Clip Mask and MovieClip pivot questions
Two more beginner questions: 1) What's the easiest way to invert a clipping mask for a MovieClip in ActionScript? I tried using a ColorTransformMatrix to invert the alpha of the mask MovieClip, but it didn't work (looks like the clip mask simply does