Parameter in the select
hi,
SELECT hp.party_name CustomerName,
csi.incident_number SRNumber,
csi.incident_date SRDate,
csi.close_date SRCloseDate,
mtl.concatenated_segments SRItemName,
csi.summary Summary,
csi.problem_code,
csi.incident_address SRAddress,
csi.INCIDENT_COUNTRY SRCountry,
COUNT ( * ) over () cnt,
cis.name,
COUNT(
CASE
WHEN cis.name='Low'
THEN 1
END) over () Low,
COUNT(
CASE
WHEN cis.name='Medium'
THEN 1
END) over () Medium,
COUNT(
CASE
WHEN cis.name='High'
THEN 1
END) over () High1
FROM hz_parties hp,
hz_cust_accounts hca,
hz_contact_points hc,
cs_incidents_all_b csi,
ar_lookups arl,
cs_incident_severities_b cis,
mtl_system_items_kfv mtl
WHERE hca.cust_account_id =csi.account_id
AND hp.party_type IN ('PERSON','ORGANIZATION')
AND hp.status ='A'
AND hp.party_id = hca.party_id
AND hca.status ='A'
AND hp.party_id =hc.owner_table_id(+)
AND hc.owner_table_name(+) ='HZ_PARTIES'
AND hp.party_id =hca.cust_account_id
AND hc.contact_point_type(+)='PHONE'
AND hc.primary_flag(+) ='Y'
AND hc.status(+) ='A'
AND arl.lookup_type(+) = 'PHONE_LINE_TYPE'
AND arl.lookup_code(+) = hc.phone_line_type
AND hp.party_name LIKE :partyName
AND csi.incident_date BETWEEN to_date('01-JAN-2000','DD-MON-YYYY') AND to_date(:fromsrdate,'DD-MON-YYYY')
AND cis.incident_severity_id=csi.incident_severity_id
AND mtl.inventory_item_id=csi.inventory_item_id
GROUP BY hp.party_name,
csi.incident_number,
csi.incident_date,
csi.close_date,
csi.summary,
csi.problem_code,
csi.incident_address,
cis.name,
csi.INCIDENT_COUNTRY,
mtl.concatenated_segmentsi want this :fromsrdate parameter in the query for example after running the query with parameter :fromsrdate i want the parameter in the query select
anyone help me
variable fromsrdate date;
SELECT hp.party_name CustomerName,
csi.incident_number SRNumber,
csi.incident_date SRDate,
csi.close_date SRCloseDate,
mtl.concatenated_segments SRItemName,
csi.summary Summary,
csi.problem_code,
csi.incident_address SRAddress,
csi.INCIDENT_COUNTRY SRCountry,
fromsrdate RunReportDate,
COUNT ( * ) over () cnt,
cis.name,
COUNT(
CASE
WHEN cis.name='Low'
THEN 1
END) over () Low,
COUNT(
CASE
WHEN cis.name='Medium'
THEN 1
END) over () Medium,
COUNT(
CASE
WHEN cis.name='High'
THEN 1
END) over () High1
FROM hz_parties hp,
hz_cust_accounts hca,
hz_contact_points hc,
cs_incidents_all_b csi,
ar_lookups arl,
cs_incident_severities_b cis,
mtl_system_items_kfv mtl
WHERE hca.cust_account_id =csi.account_id
AND hp.party_type IN ('PERSON','ORGANIZATION')
AND hp.status ='A'
AND hp.party_id = hca.party_id
AND hca.status ='A'
AND hp.party_id =hc.owner_table_id(+)
AND hc.owner_table_name(+) ='HZ_PARTIES'
AND hp.party_id =hca.cust_account_id
AND hc.contact_point_type(+)='PHONE'
AND hc.primary_flag(+) ='Y'
AND hc.status(+) ='A'
AND arl.lookup_type(+) = 'PHONE_LINE_TYPE'
AND arl.lookup_code(+) = hc.phone_line_type
AND hp.party_name LIKE :partyName
AND csi.incident_date BETWEEN to_date('01-JAN-2000','DD-MON-YYYY') AND to_date(:fromsrdate,'DD-MON-YYYY')
AND cis.incident_severity_id=csi.incident_severity_id
AND mtl.inventory_item_id=csi.inventory_item_id
GROUP BY hp.party_name,
csi.incident_number,
csi.incident_date,
csi.close_date,
csi.summary,
csi.problem_code,
csi.incident_address,
cis.name,
csi.INCIDENT_COUNTRY,
mtl.concatenated_segmentsit says invalid sqlstatment i am working on OAF i have to put that in VO
its not correct solution for me Ravi help me
Similar Messages
-
Parameter on the selection screen
Hi All,
I have a check box and a parameter on the selection screen. If the checkbox is initial, the paramter shouldn't be editable but if the checkbox is ticked, the parameter should be made mandatory to be enetered with value. How can this be done ?
Thanks in advance.Hi,
Refer to the following code.In this change radiobuttons with the checkbox.
SELECTION-SCREEN BEGIN OF BLOCK B1.
parameters: p_erdat like zirpactivity-erdat modif id SC1 ,
r1 radiobutton group RAD1 user-command ABC default 'X',
r2 radiobutton group RAD1.
SELECTION-SCREEN END OF BLOCK B1.
AT SELECTION-SCREEN.
check sy-ucomm = 'ABC'.
check sy-ucomm = 'F8'.
AT SELECTION-SCREEN OUTPUT.
loop at screen.
if r1 = 'X' and screen-group1 = 'SC1' .
screen-input = 0.
ENDIF.
IF r2 = 'X'.
screen-group1 = 'SC1' .
screen-input = 1.
endif.
modify screen.
endloop.
Hope this helps.
Reward if helpful.'
Regards,
Sipra -
Input help required for parameter on the selection screen
hi all,
i have created two parameters on the selection screen.
1. deptno
2.empname
so my requirement is if i input any deptno then i should get all
the empname corresponding to that deptno in the parameter empname
ie for deptno 10 there should be f4 help for empname.
here i am pasting my code plz check where i am doing wrong--
*& Report ZTEST10
*& Developer
*& Date: &DATE
REPORT ZTEST10.
tables: zemployee1.
parameters: p_deptno like zemployee1-deptno,
p_empnam like zemployee1-empname.
Data: begin of itab occurs 0,
deptno like zemployee1-deptno,
empname like zemployee1-empname,
empno like zemployee1-empno,
end of itab.
At selection-screen on value-request for p_empnam.
select empname
from zemployee1
into corresponding fields of table itab
where deptno = p_deptno.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
DDIC_STRUCTURE = ' '
retfield = 'empname'
PVALKEY = ' '
DYNPPROG = sy-repid
DYNPNR = sy-dynnr
DYNPROFIELD = 'p_empnam'
STEPL = 0
WINDOW_TITLE =
VALUE = ' '
VALUE_ORG = 'C'
MULTIPLE_CHOICE = ' '
DISPLAY = ' '
CALLBACK_PROGRAM = ' '
CALLBACK_FORM = ' '
MARK_TAB =
IMPORTING
USER_RESET =
tables
value_tab = itab
FIELD_TAB =
RETURN_TAB =
DYNPFLD_MAPPING =
EXCEPTIONS
PARAMETER_ERROR = 1
NO_VALUES_FOUND = 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.
I will award ur efforts.
Thanks
sanjeevHi Sanjeev,
If you input any deptno and you should get all the empname corresponding then first you need to use CALL FUNCTION 'DYNP_VALUES_READ'.
EXPORTING
DYNAME = sy-repid
DYNUMB = sy-dynnr
TRANSLATE_TO_UPPER = ' '
REQUEST = 'A'
PERFORM_CONVERSION_EXITS = ' '
PERFORM_INPUT_CONVERSION = ' '
DETERMINE_LOOP_INDEX = ' '
TABLES
DYNPFIELDS = gt_dynp
declare: DATA : gt_dynp LIKE dynpread OCCURS 0.
loop at gt_dynp into wt_dynp where fieldname = 'P_SUPRID-LOW'.
lv_low = wt_dynp-fieldvalue.
endloop.
Then while selecting use this p_superid-low instead of p_deptno.
Then :
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
After this funtion module:
write:
IF sy-subrc = 0.
READ TABLE itab
INDEX 1.
'p_empnam' = return_tab-fieldval.
Declare return_tab as:
DATA: return_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.
Thanks,
Shweta
ENDIF. -
Ho to disabled the parameter on the selection screen
Hi all,
I have a parameter (p_matnr) and two radiobutton b1 and b2 on the selection screen. Now what the requirement is if user selects radio button b2, the parameter should get disabled. I know it can be done by <b>loop at screen</b> and then modifying the screen but in this case start-of-seection is to be called. In my case as the user selects the radio button b2 the parameter should be appear disabled. the code which is given below will work in that case where user selects the b2 and then press F8. Bu i don't want the user to pres F8. He will only select the b2 and will find the parameter (p_matnr) disabled.
Please suggest something.
AT SELECTION-SCREEN outpu.
IF b2 = 'X'.
LOOP AT SCREEN.
IF screen-name cs 'p1' .
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
ENDIF.
Thanks,
Annup.Hi,
Try this i have used this in my code
SELECTION-SCREEN BEGIN OF BLOCK b_0 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF BLOCK b_1 WITH FRAME TITLE text-000.
PARAMETERS: rb_img RADIOBUTTON GROUP rad1 user-command rad.
PARAMETERS: rb_invo RADIOBUTTON GROUP rad1.
SELECTION-SCREEN BEGIN OF BLOCK b_2 WITH FRAME TITLE text-001.
*PARAMETERS: rb_img RADIOBUTTON GROUP rad1.
PARAMETERS: p_from like bkpf-bldat modif id gr2,
p_to like bkpf-bldat modif id gr2.
SELECT-OPTIONS: s_arobj FOR toa01-ar_object modif id gr2.
SELECTION-SCREEN END OF BLOCK b_2.
SELECTION-SCREEN BEGIN OF BLOCK b_3 WITH FRAME TITLE text-001.
*PARAMETERS: rb_invo RADIOBUTTON GROUP rad1.
SELECT-OPTIONS: s_bukrs FOR bkpf-bukrs modif id gr1,
s_belnr FOR bkpf-belnr modif id gr1,
s_gjahr FOR bkpf-gjahr modif id gr1,
SELECTION-SCREEN END OF BLOCK b_3.
SELECTION-SCREEN END OF BLOCK b_0.
AT SELECTION-SCREEN OUTPUT.
LOOP AT SCREEN.
IF screen-group1 = 'GR1'. "Name field
IF rb_invo = space.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ELSEIF screen-group1 = 'GR2'.
IF rb_invo = c_x.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
START-OF-SELECTION.
Thanks & Regards,
Judith. -
Set the parameter in the selection screen of a program from another program
Hi ALL,
I need to call the program RHALESMD from another program and the program RHALESMD takes from date as one of the input parameter.how do i set the from date from the calling program and call RHALESMD
Thanks
Bala Duvvurii got the answer
Program accessed
REPORT report1.
DATA text TYPE c LENGTH 10.
SELECTION-SCREEN BEGIN OF SCREEN 1100.
SELECT-OPTIONS: selcrit1 FOR text,
selcrit2 FOR text.
SELECTION-SCREEN END OF SCREEN 1100.
Calling program
REPORT report2.
DATA: text TYPE c LENGTH 10,
rspar_tab TYPE TABLE OF rsparams,
rspar_line LIKE LINE OF rspar_tab,
range_tab LIKE RANGE OF text,
range_line LIKE LINE OF range_tab.
rspar_line-selname = 'SELCRIT1'.
rspar_line-kind = 'S'.
rspar_line-sign = 'I'.
rspar_line-option = 'EQ'.
rspar_line-low = 'ABAP'.
APPEND rspar_line TO rspar_tab.
range_line-sign = 'E'.
range_line-option = 'EQ'.
range_line-low = 'H'.
APPEND range_line TO range_tab.
range_line-sign = 'E'.
range_line-option = 'EQ'.
range_line-low = 'K'.
APPEND range_line TO range_tab.
SUBMIT report1 USING SELECTION-SCREEN '1100'
WITH SELECTION-TABLE rspar_tab
WITH selcrit2 BETWEEN 'H' AND 'K'
WITH selcrit2 IN range_tab
AND RETURN.
Thanks
Bala Duvvuri -
Hi,
I am having a function which accepts a String parameter. And based on that a query forms inside. I tried my level best and unable to achieve. Can anybody give a big hand in this. Here it goes..
create or replace function f1(enames varchar2) return varchar2 is
TYPE REC_TABS IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
V_ID_TAB REC_TABS;
V_STR_ROLEID VARCHAR2(4000);
begin
SELECT ID BULK COLLECT INTO V_ID_TAB FROM
SELECT TO_NUMBER(P_ID) ROLE_ID FROM ROLES START WITH ID IN (SELECT ID FROM ROLES WHERE ROLENAME IN (enames))
CONNECT BY PRIOR P_ID= ID
UNION ALL
SELECT ID FROM ROLES WHERE ROLENAME IN (enames)
IF V_ID_TAB.COUNT=0 THEN
RETURN;
ELSE
FOR J IN V_ID_TAB.FIRST .. V_ID_TAB.LAST LOOP
V_STR_ROLEID:= V_ROLEID_TAB(J)||','||V_STR_ROLEID;
END LOOP;
V_STR_ROLEID:=SUBSTR(V_STR_ROLEID,1,LENGTH(V_STR_ROLEID)-1);
V_STR_ROLEID:='('||V_STR_ROLEID||')';
END IF;
END IF;
end;
sho err
i pass enames like 'blake,smith,john' as parameter to my function. Its not working what shall i do? Please help me out to resolve the issue..
select * from f1('blake,smith,john') from dual
Help me out.
Thanks
Hi,
In report parameter, you can use multi-valued parameter. These are some suggestions in the following document.
Creating Report Parameters and Setting Report Parameter Properties
http://msdn.microsoft.com/en-us/library/aa337234(SQL.90).aspx
Please refer the following tutorial to use parameter for querying.
Lesson 2: Adding Cascading Parameters to a Report
http://msdn.microsoft.com/en-us/library/aa337426(SQL.90).aspx
In addition, if you want to know more information, please check below document.
Integrating Analysis Services with Reporting Services
http://msdn.microsoft.com/en-us/library/aa902647.aspx
Hope this helps.
Garsy Liang - MSFT -
How to Display my Form in the selection screen.(without print format)
Hi all,
I did one gate pass form and i want to view the form in my selection screen or output screen(just in monitor) as a display by giving one Z-code.
i.e, we can view the form thru Print preview...the same preview, i want to display after i give my parameter in the selection screen.
For example.ZGPOUT if i enter as a t-code.
it should ask my Gate Pass number in the Selection screen...if its right then my Form will come out to the display screen. (instead of going by Print method).,
Pls post ur comment and reply me with examples,if possible.
thanks & regards
sankar.Hi Prasad,
Pls refer the below link.
<< Moderator message - Point begging removed >>
http://wiki.sdn.sap.com/wiki/display/Snippets/Displayimagesontheselection-screen
Thanks
Arjun
Edited by: Rob Burbank on Aug 17, 2011 2:24 PM -
How to get the file name dialog on the selection screen
Hi All
I have a selection screen in which there is a parameter where I need to enter file name. Instead of typing filename in the parameter I would like to give a path from presentation server ( I am downloading Data to presentation server ).
How to achive this functionality in case of a parameter on the selection screen. I need to have File open Dialog box like Windows here and then it should show the filename and it's path in this parameter after selectiong from the dialog box.
AmolHi..,
Use the function module <b>F4_FILENAME</b> or <b>WS_FILENAME_GET</b> in the event
<b>AT SELECTION-SCREEN ON VALUE REQUEST FOR P_FILE.</b>
Parameters p_file type rlgrap-filename.
AT SELECTION-SCREEN ON VALUE REQUEST EVENT
at selection-screen on value-request for p_file.
perform value_request.
*& Form value_request
This subroutine proposes the possible input values *
There are no interface parameters to be passed to this subroutine. *
form value_request.
call function 'WS_FILENAME_GET'
importing
filename = p_file
exceptions
inv_winsys = 1
no_batch = 2
selection_cancel = 3
selection_error = 4
others = 5.
check sy-subrc eq 0.
endform.
Reward all helpful answers !!
sai ramesh -
User exists for changing the selection screen of the transaction CS11
Hi,
I want to change the selection screen of the transaction cs11 and modify the ALV output.
I searched the old forums but not got satisfactry results.
I want to change the plant and material from the parameter to the select option.
i dont want to copy the transaction for the zcs11.
any suggestion on this ?
Regards,
udupione more requirement i have is that, i need to remove all the header fields such as material , plant etc and place that field in the item level. i can use the user exists PCSD0002 for the adding the customer field in the item. but how can i removed the header level field such as plant and material. whether we have any user exits for that?
-
Use a multiple selection parameter in the data model
Hi
i have created a parameter with the property multiple selection.
This parameter i use in the Data Model where area,
if i just mark one value the report works well if i mark more the one
the report run into a error.
WHERE PSNR IN :ma
the xdo looks like
<?xml version = '1.0' encoding = 'utf-8'?>
<report version="1.1" xmlns="http://xmlns.oracle.com/oxp/xmlp" defaultDataSourceRef="tisoware">
<title>BDE Nettozeit</title>
<properties>
<property name="showControls" value="true"/>
<property name="online" value="true"/>
<property name="parameterColumns" value="2"/>
<property name="openLinkInNewWindow" value="true"/>
</properties>
<dataModel defaultDataSet="BDERUECK">
<dataSet id="BDERUECK">
<sql dataSourceRef="tisoware">
<![CDATA[SELECT (SUBSTR(DATUM,1,6)) AS DATUM, SUM(NTTOZEIT) AS ZEIT,
TRUNC(SUM(NTTOZEIT)/60) AS STUNDE
FROM BDERUECK
WHERE (DATUM >= :datev) AND (DATUM <= :dateb) AND (KZDELETE = 'N') AND FIRMA = '1' AND ((PSNR IN :ma))
GROUP BY (SUBSTR(DATUM,1,6))]]>
</sql>
<input id="datev" value="${datev}" dataType="xsd:string"/>
<input id="dateb" value="${dateb}" dataType="xsd:string"/>
<input id="ma" value="${ma}" dataType="xsd:string"/>
</dataSet>
</dataModel>
<valueSets>
<valueSet id="date">
<sql dataSourceRef="tisoware">
<![CDATA[SELECT DISTINCT DATUM
FROM BDERUECK]]>
</sql>
</valueSet>
<valueSet id="employee">
<sql dataSourceRef="tisoware">
<![CDATA[select PERSTAMM.PSPERSNR as PSPERSNR,
PERSTAMM.PSNR as PSNR
from TISOWARE.PERSTAMM PERSTAMM
where PERSTAMM.FIRMA = '1'
order by PERSTAMM.PSPERSNR]]>
</sql>
</valueSet>
</valueSets>
<parameters>
<parameter id="datev" defaultValue="20050103">
<select label="Datum von : " valueSet="date" multiple="false" all="false" refreshParameters="false"/>
</parameter>
<parameter id="dateb" defaultValue="20060930">
<select label="Datum bis : " valueSet="date" multiple="false" all="false"/>
</parameter>
<parameter id="ma" defaultValue="152">
<select label="Mitarbeiter : " valueSet="employee" multiple="true" all="false"/>
</parameter>
</parameters>
<templates default="BDE Nettozeit">
<template label="BDE Nettozeit" type="rtf" url="BDE Nettozeit.rtf"/>
</templates>
</report>Alex,
the missing thing in your example is the fact, that if only one value is selected, the parameter has exact this value like BOSTON. If you choose more than one value, the parameter includes the *'*, so that it looks like *'BOSTON','NEW YORK'*. So you need to check in the package, if there's a *,* in the parameter or not. If yes there's more than one value, if not it's only one value or it's null.
So change your package to (you need to expand your variables)
create or replace package bip_departments_2_parameters
as
p_dep_2_param varchar2(1000);
p_loc_1_param varchar2(1000);
p_where_clause varchar2(1000);
function beforereporttrigger
return boolean;
end bip_departments_2_parameters;
create or replace package body bip_departments_2_parameters
as
function beforereporttrigger
return boolean
is
l_return boolean := true;
begin
p_where_clause := ' ';
if p_dep_2_param is not null then
if instr(p_dep_2_param,',')>0 then
p_where_clause := 'WHERE DNAME in ('||p_dep_2_param||')';
else
p_where_clause := 'WHERE DNAME = '''||p_dep_2_param||'''';
end if;
if p_loc_1_param is not null then
if instr(p_loc_1_param,',')>0 then
p_where_clause := p_where_clause || ' AND LOC IN ('||p_loc_1_param||')';
else
p_where_clause := p_where_clause || ' AND LOC = '''||p_loc_1_param||'''';
end if;
end if;
else
if p_loc_1_param is not null then
if instr(p_loc_1_param,',')>0 then
p_where_clause := p_where_clause || 'WHERE LOC in ('||p_loc_1_param||')';
else
p_where_clause := p_where_clause || 'WHERE LOC = '''||p_loc_1_param||'''';
end if;
end if;
end if;
return (l_return);
end beforereporttrigger;
end bip_departments_2_parameters;
I've written a similar example at http://www.oracle.com/global/de/community/bip/tipps/Dynamische_Queries/index.html ... but it's in german.
Regards
Rainer -
How to Add a parameter of currency exchange rate in the selection screen
Dear Friends,
How to Add a parameter of currency exchange rate in the selection screen with format (9999.99999). wich field i need to take.
Thanks,
SridharTCURR-UKURS.
~Suresh -
How to pass the parameter in the where clause of the select statement
Hi All,
Iam getting one of the value from the Input otd and using this value i need to query one of the tables in oracle database and selected the table using the oracle eway otd like shown below .
otdRISKBLOCK_1.getRISKBLOCK().select() .
where clause in side the select takes a string parameter as Iam getting the string parameter from the input otd and passing this to where clause by creating a string literal after deployment it is giving an error saying "ORA-00920: invalid relational operator".
can any one throw some input on this .
Thanks in Advance
SrikanthYou will see this error if the search condition was entered with an invalid or missing relational operator.
You need to include a valid relational operator such as
=, !=, ^=, <>, >, <, >=, <=, ALL, ANY, [NOT] BETWEEN, EXISTS, [NOT] IN, IS [NOT] NULL, or [NOT] LIKE in the condition. in the sql statement.
Can you throw some more light on how are you designing your project? -
How to maximise the length of the Parameter text on Selection screen
Hello,
I am putting the text in the selection screen for a Parameter.
Its text is long and it is not letting me to put the whole text in Text Symbol.
In the report
When I click on GOto--> Text Elements --> Selection Texts
I am sure there is a way we can maximise this...
ANy suggestions will be apprecaiated.
Regards,
KittuHello,
Thank you for all your response!
Here is my code :
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.
PARAMETERS : BOTH RADIOBUTTON GROUP RG1,
EXICLASS RADIOBUTTON GROUP RG1.
SELECTION-SCREEN END OF BLOCK B2.
Here for Both, I need to add the selction text as 'BOTH Existing and Non-existing Classifications'
This is a parameter, can any body explain me how to do it with the Parameters.
Any suggestions will be appreciated.......
Regards,
Kittu -
How to Remove the underline from the selection screen parameter
How to remove the underline from a selection screen parameter ?
>
Anoop Menon wrote:
> hi Avinash,
>
> I am not able to understand the use of the 'comment line properly.
>
> The last part of the statement which says modif id is confusing.
>
> Please clarify..... I am unable to activate my code when I put the selection screen commebnt statement.
Use this and update it to your requierement !
SELECTION-SCREEN begin of line.
SELECTION-SCREEN COMMENT 1(30) comm.
PARAMETERS test(1) type c.
SELECTION-SCREEN end of line.
INITIALIZATION.
comm = 'test'. -
Parsing an input parameter for the where clause or record select value
In my limited CR experience, I've always used a command database connection so that I can write my own SQL. However, now I have to parse a pipe delimited parameter to get my value for the where clause, so I'm selecting several tables and joining them through the Database Expert Links tab. All works fine, but after doing that and then parsing the parameter with the below formula in the Select Expert, I notice that there is no where clause in the SQL query, and although the report eventually displays the proper values, it runs through thousands of records first. Here is my Select Expert - Record formula:
StringVar array Parm1;
Parm1 := Split({?DATA_AREA}, "|");
{SO_ORDERS.CASE_ID} = Parm1[2]
If I change "Parm1[2]" on the last line to a valid Case ID, then there is a where clause in the SQL and the report generates immediately.
It seems like the record select formula is applied AFTER all of the records (without a where clause) are searched when I use the parsed parameter value, but when I hard code a valid value, it places that into the where clause BEFORE the sql is executed. Is there a way to get the parameter parsed first and then use that parsed value in the SQL where clause?
Thanks.
BillYes crystal will run the query first to get 100% data and then applies record selection condition. To increase the performance you need to pass the where condition at the command level instead of report level. So you need to create a report using add command like this
select * from tablename where field={?Parameter}
{?Parameter} is a command level parameter.
Now insert this report as a subreport in another report which has no connection but has a parameter
{?DATA_AREA} and create a formula like this in the main report
Split({?DATA_AREA}, "|")[2]
Now right click on the subreport and go to change subreport links and add this formula from main report and link this to sub report parameter {?Parameter} without linking any database field from the subreport.
Now your subreport runs with the where clause to get the data.
Regards,
Raghavendra
Maybe you are looking for
-
Is it possible (and supported) to create a materialized view log in an Oracle 10gR2 Database and create a materialized view based on this mv-log in an Oracle 8.1.7 (or an Oracle 9i) database ? Regards, Dennis
-
IPad Enterprise workflow/setup.. HELP!
Have any of you guys successfully deployed iPads in the workplace yet? If so, I need your help determining the best way to get them in the hands of my users configured and ready to go. I can't seem to figure out a way for a Help Desk person to config
-
Woke up and lost an Itunes logo and all the music with it!
My Imac was calling for some software update yesterday. I tried to find Itunes app but it wasn't on the screen! I put a new one but all my song, books, podcasts are gone. : ( Can anyone help? Can Mac erase music by itself? Why? Thanks for any advise!
-
JDEVADF_11.1.1.3.PS2_GENERIC_100408.2356.5660 how can i change the complete sql query statement of VO ??
-
Hi everybody. Can i use Java Control Factories to treat Java Controls as singletons ? Is there any issue about multiple threads acessing the same instance of (Built-in or Custom) Java Controls ? When i use the following structure: Page Flow -> Custom