Filtering Interactive Report which has combo box
Hi,
I am a rookie in apex.I have an interactive report in which I have a column which contain's only combo box's. Let me say for example that the display values are Yes and No and the return values are Y and N and the name of the column as "required". When I try to filter the report, I can do so for all the other column's but when I try to do so for this column, I get two combo box's when I click on the expression filter instead of the Yes or No choices. I want the choices to appear in the filter for 'required' column instead of the combo box's. How can I do this? ...I have been searching google in vain...Thanks in advance
Edited by: user13073434 on May 3, 2010 8:27 PM
Do I have to recompile this .rdf on the UNIX box again? No.
How to go about this problem?Have a look at the following notes:
Note: 337302.1 - Error REP-0756 Unable to find PL/SQL library 'inv.pll' when Opening Report POXPRPOP in Reports Builder
https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=337302.1
Note: 1015074.1 - REP-756,REP-735,REP-736 OPENING REPORT WITH FILESYSTEM ATTACHED LIBRARY
https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=1015074.1
Note: 1016542.6 - Getting REP-0756 : Unable to Find PLsql when Running Standard Reports
https://metalink2.oracle.com/metalink/plsql/ml2_documents.showDocument?p_database_id=NOT&p_id=1016542.6
Similar Messages
-
Any Orjinal SAP Reports which has currency field and currency key
Hi Friends,
I am looking for a report which has currency field and currency key at selection screen. I want to learn how SAP do selection with currency. Can you say a transaction deal with my desire?
Thanks.try report RFSSLD00
A. -
Report which has to provide me the total payments made to Vendors.
Hello All,
I am looking for a report which has to provide me the total payments made to the vendors for a specified period.
Some one please help.I have tried with FBL1N but of no use.
Thanks,
BalaHI
B K
You can directly go to
-Easy access screen
-Accounting
-Financial accounting
-Account payable
-Information system
-Reports for Accounts Payable Accounting
-Vendor Balances
-Transaction Figures: Account Balance (S_ALR_87012079)
enter collowing fields
Vendor acc ---
company code--
fiscal year -
select execute button
triadhnaidu .a
Edited by: trinadhrao althi on Oct 7, 2008 11:38 AM -
Adding Every Row From a Filtered Interactive Report to a Collection
I'm creating an email list maintenance application in Apex 3.1. I have an Interactive Report on an email address table. I want the users to be able to run this IR and then click a button to add all of the resulting email addresses into a selected mailing list table. The interface needs to be as quick and simple for the user as possible, so I don't want to force them to click a checkbox beside hundreds of rows.
Is there a way to add every resulting row from a custom IR to an apex_collection?
I know that collections can be created based on a query with the CREATE_COLLECTION_FROM_QUERY call. But I don't think it's possible to reference the SQL statement which is dynamically generated through an Interactive Report. I'm referring to the SQL created after the user has applied filters. If there were, then I would just create the collection that way. Please correct me if I'm wrong.
Thanks,
MartinHi Martin
I couldn't find a place where the filters are stored either - it would be nice to know.
It is possible to get to the filters via javascript as they are actually stored in a table with an id of "apexir_CONTROL_PANEL_COMPLETE". Within there, there are rows for each filter and each row has four cells. The second cell contains an A tag that has the filter itself as the text displayed as a hyperlink on screen. The third cell contains the checkbox that enables/disables the filter. Strings and numbers seem to be formatted ok, so you could pick up these values and create your own WHERE clause, populate a hidden field somewhere and then pick that up to generate a full select statement to get to the id's that you need.
I haven't yet tried this, so this is theory only - but I can't see that it wouldn't work
Andy -
Can not view/export a report which has 2 group by field when no data found
Recently I developed a report, which contains 2 group by fields. it runs successfully when the report displays some data.
but when there is no data, i cann't view/export this report.
It shows nothing by html format and shows "this file cannot be opened because it has no pages" message by pdf format.
even there is no records for this report, i still want to see the template file and show some basic information.
please help me.
DanielI've found that, just like I used to do in Oracle Reports, if you put in a COUNT column to count your returning rows, you can put 'No Data Found' when there's no data. That way, your report will return and not error out.
For .pdfs, this is the code I use; COUNT with code of <?if:count(field_name)=0?>.
In the .rtf..
COUNT
No Data Found
END COUNT
Put this in the .rtf before your data should appear or else it won't work.
Hope this helps!
Kris -
Report which has four selection screens called in a specific order
Hi All,
In a report, how can I call multiple selection screens predefined, and create BDC recording in the program based on the values entered in the selection screens. The selection screens are 4 in my scenario in a specific order. Please send across sample code which has the logic to call multiple selection screens and create BDC recording for sales order, delivery, PGI..Thanks
RickyIf ur option is to creat multiple screens...go for tabstrip option in ur report and record it.
selection-screen begin of screen 001 as subscreen.
selection-screen begin of block b1 with frame title text-001.
selection-screen begin of line.
selection-screen comment 2(10) text-003.
parameters:par1 type marc-matnr.
selection-screen end of line.
selection-screen end of block b1.
selection-screen end of screen 001.
selection-screen begin of screen 002 as subscreen.
selection-screen begin of block b2 with frame title text-002.
selection-screen begin of line.
selection-screen comment 2(10) text-003.
parameters:par2 type marc-matnr.
selection-screen end of line.
selection-screen end of block b2.
selection-screen end of screen 002.
selection-screen begin of tabbed block tabstrip for 10 lines.
selection-screen tab (15) tabs1 user-command t1 default screen 001.
selection-screen tab (15) tabs2 user-command t2 default screen 002.
selection-screen end of block tabstrip.
initialization.
tabs1 = 'TAB1'.
tabs2 = 'TAB2'. -
Filtering interactive report question
hi all,
i created an interactive report that uses a query like this..
SELECT i.issue_id "ID",
i.title "TITLE",
i.module "MODULE",
u1.last_name || ', ' || u1.first_name || ' ' || SUBSTR(u1.middle_name, 1, 1) || '.' "OWNER",
u2.last_name || ', ' || u2.first_name || ' ' || SUBSTR(u2.middle_name, 1, 1) || '.' "REPORTED BY",
i.report_date "DATE REPORTED",
u3.last_name || ', ' || u3.first_name || ' ' || SUBSTR(u3.middle_name, 1, 1) || '.' "SUBMITTER"
FROM issues i,
users u1,
users u2,
users u3
WHERE 1 = 1
AND i.owner = u1.user_id
AND i.reported_by = u2.user_id
AND i.submitter = u3.user_idi created an application item called APP_USERID and added a process on the 101 page to select the userid into :APP_USERID from users_table where username = :app_user.
i want to create a default filter based on the current user's user_id. if i change my query like this
WHERE 1 = 1
AND i.owner = u1.user_id
AND i.reported_by = u2.user_id
AND i.submitter = u3.user_id
AND i.owner = :APP_USERIDit works fine but if i wanted to view all records not just owned by the current user, i will have a problem.
can anyone suggest an approach on how i can solve this.
thanks.
regards,
allenHi Allen,
I tried some different things in the Interactive reports (make a default with :ITEM or &ITEM.), but they didn't work.
The only why I can think of now how to get it work is by adding in your query a DECODE or NVL
WHERE 1 = 1
AND i.owner = u1.user_id
AND i.reported_by = u2.user_id
AND i.submitter = u3.user_id
AND i.owner = NVL(:APP_USERID,i.owner)
Basically what it does, if the value of :APP_USERID is set it will use that, if that value is null it will return all records. So you would have a process or computation that sets the item APP_USERID to null when you hit something to get all records.
Regards,
Dimitri
-- http://dgielis.blogspot.com/
-- http://apex-evangelists.com/
-- http://apexblogs.info/ -
Interactive report default has alternating row colors, how to remove this?
Is it possible to remove the alternating row colors from the interactive report.
In a standard report I can select the report template, but in a interactive report not.
Regards,
RobTo customize a single page, add this rule to the CSS Inline page attribute:
.apexir_WORKSHEET_DATA tr.odd td {
background: rgb(242, 242, 242) !important;
To apply to a complete application, either add
.apexir_WORKSHEET_DATA tr.odd td {
background: rgb(242, 242, 242) !important;
to the Cascading Style Sheet Inline attribute on each page template, or create a CSS file containing
.apexir_WORKSHEET_DATA tr.odd td {
background: rgb(242, 242, 242);
upload it to your workspace, and reference it after the theme link in each page template Header:
<link rel="stylesheet" href="#IMAGE_PREFIX#themes/theme_4/css/theme_4_0.css" type="text/css" />
<link rel="stylesheet" href="#WORKSPACE_IMAGES#theme_4_0_no_alt_row.css" type="text/css" /> -
Button branch to filtered interactive report
Is it possible to have a button branch to an interactive report and filter it per click of the button rather than using the search bar? Basically my user wants the same action as the search bar but in button form on the previous page.
I know, I know...somoetimes you've just gotta say, "NO" to users, as well.
Edited by: userRRRYB on Apr 12, 2010 1:06 PMYou could reference your form fields in the where clause like this:
SELECT something
FROM some_table st
WHERE (:F100_FILTER_01 IS NULL OR st.col_name_01=:F100_FILTER_01)
AND (:F100_FILTER_02 IS NULL OR st.col_name_02=:F100_FILTER_02);You have to compare the filter to NULL as well. That way, if they don't enter anything in the form field, they will get all records. I've done this with one app, and the users really like it.
Rick -
Filtering Interactive Reports with Greater Than Less Than Operators
The available filter operators in the interactive reports do not include greater than or less than. How is it possible to enable an application user to filter records where greater than or less then logic is needed?
For example the user wants to query records where sysdate falls between a start and end date.
Regards,
ToddYa know, that's all well and good ... BUT ... WHAT IF you do want to sort text type columns with Greater Than and Less Than operatiors??
SQL does it just Fine ... so WHY does APEX have the limit??? This is an Oracle BUG ... it SHOULD NOT limit the operators ... I realize "they" may be trying to be helpful with proper constraints to field searches ... but ... if SQL can do it, then ... no need for a limit.
EG ...
Show the records where
the "Begin_Year-Wk" data is less than or equal to "2009-09" AND
the "End_Year-Wk" data is greater than or equal to "2009-04"
... to give everything that was running in that 5 week period whether or not it starts within that time frame
I can run this query perfectly fine via SQL ... but not in APEX ... unless I reconvert a lot of strings back to numbers, and for sorting / formatting / explain-to-user purposes, I really don't want them to be numbers.
So ... there's gotta be a hidden tweak for operators somewhere ... -
Report which has forms attached...
This is alot to digest and I'm trying to be as detailed as possible, but also brief. I created a report with form in App Express, report and form is Software_Inventory. Afterwards, I created 2 more tabs attached to this same application, Software_Maintenance and Software_License. The Software table has a foreign key to the Maintenance table. The License table has a foreign key to the Software table. When the report was originally created, it was done using the Inventory table. When I need to edit data in one of the tables, I click the edit button on the report and it takes me to the Inventory table and the data in that table is returned, but does not return the info on the other 2 tables in the forms. 1st problem I've run into: I've modified my report to add the columns from the other tables and link the tables by their foreign keys, Application Express gives me the error: ORA-00972, identifier too long. Query can't be parsed. Ex of code in report source section of the report: select col1...col20 from "#owner#"."table1", "#owner#"."table2"
where "#owner#."table1.foreign_key" = "#owner#"."table2.primary_key"
How do I get rid of the 00972 error? I've written Oracle queries for years and my syntax is correct, but maybe Application Express needs it to be written a certain way.
Problem #2, how do I link my other 2 forms so that when I select to edit a record that's in my report, the info linked to my driving table also populates the other 2 forms, ie, the Maintenance and License form? OR when I fix the query problem, this in turn will fix my other 2 forms population of data?
Thanks for any help you guys can give.thanks for the response. I've been out of the office for a few days due to an ice storm. I have my query working, but my problem now is, when I need to update a record in the maintenance and/or license table, the form has me in insert mode, rather than update. The relationship is, 1 software record has 1 maintenance agreement, but 1 maintenace agreements can 1 or more softwares. 1 piece of software can have 1 or more licenses and 1 license has 1 piece of software.
My foreign key in the software_inventory table is linked to the maintenance and the foeign key in the license table is linked to the software table. But in each case, the FK has to be nullable, until the record is entered into the other table to create the primary key.
I create the software record. When I enter a software record, I create the PK keys in both the software and maintenance tables and the FK in the software table. The user wants the capability to enter the maintenance and license information at another time if they want to, therefore, the PK in the maintenance table is created, but has no other info. When I come back in to modify the record, the maintenance table is in insert mode and not update mode.
Hopefully I haven't confused anyone. How do I change modes of a form? -
Want Interactive Report which displays the Purchase Orders
Hi all,
What are the select-options,parameters and tables used in purchase orders report and if possible send me the code for the same.
Thanks in Advance
Santosh Rsee if this one helps
REPORT YSG_MATSTK_REPT LINE-SIZE 220
LINE-COUNT 50(5).
*& DATA DECLARATION *
TABLES: MARA, "GENERAL MASTER DATA
MARC, "PLANT DATA FOR MATERIAL
MARD, "STORAGE LOCATION DATA FOR MATERIAL
MVKE, "SALES DATA FOR MATERIAL
MAKT, "MATERIAL DESCRIPTION
EKKO, "PURCHASING DOCUMENT HEADER
EKPO, "PURCHASING DOCUMENT ITEM
VBAK, "SALES DOCUMENT HEADER DATA
VBAP. "SALES DOCUMENT ITEM DATA
TYPE-POOLS : SLIS.
DATA: VT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,
V_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
V_LAYOUT TYPE SLIS_LAYOUT_ALV,
BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
BEGIN OF I_MARA OCCURS 0,
MATNR LIKE MARA-MATNR, "MATERIAL NUMBER
MBRSH LIKE MARA-MBRSH, "INDUSTRY SECTOR
MEINS LIKE MARA-MEINS, "BASE UNIT OF MEASURE
MATKL LIKE MARA-MATKL, "MATERIAL GROUP
END OF I_MARA,
BEGIN OF I_MARC OCCURS 0,
MATNR LIKE MARC-MATNR, "MATERIAL NUMBER
WERKS LIKE MARC-WERKS, "PLANT
LVORM LIKE MARC-LVORM, "FLAG MATERIAL FOR DELETION AT PLANT
"LEVEL
DISPO LIKE MARC-DISPO, "MRP CONTROLLER
END OF I_MARC,
BEGIN OF I_MAKT OCCURS 0,
MATNR LIKE MAKT-MATNR, "MATERIAL NUMBER
MAKTX LIKE MAKT-MAKTX, "MATERIAL DESCRIPTION
SPRAS LIKE MAKT-SPRAS, "LANGUAGE KEY
END OF I_MAKT,
BEGIN OF I_MVKE OCCURS 0,
MATNR LIKE MVKE-MATNR, "MATERIAL NUMBER
VKORG LIKE MVKE-VKORG, "SALES ORGANIZATION
VTWEG LIKE MVKE-VTWEG, "DISTRIBUTION CHANNEL
END OF I_MVKE,
BEGIN OF I_MARD OCCURS 0,
MATNR LIKE MARD-MATNR, "MATERIAL NUMBER
LGORT LIKE MARD-LGORT, "STORAGE LOCATION
LABST LIKE MARD-LABST, "VALUATED STOCK WITH UNRESTRICTED USE
END OF I_MARD,
BEGIN OF I_EKPO OCCURS 0,
EBELN LIKE EKPO-EBELN, "PURCHASING DOCUMENT NUMBER
EBELP LIKE EKPO-EBELP, "ITEM NUMBER OF PURCHASING DOCUMENT
MATNR LIKE EKPO-MATNR, "MATERIAL NUMBER
END OF I_EKPO,
BEGIN OF I_VBAP OCCURS 0,
VBELN LIKE VBAP-VBELN, "SALES DOCUMENT
POSNR LIKE VBAP-POSNR, "SALES DOCUMENT ITEM
MATNR LIKE VBAP-MATNR, "MATERIAL NUMBER
END OF I_VBAP,
BEGIN OF I_OUT OCCURS 0,
MATNR LIKE MARC-MATNR,
WERKS LIKE MARC-WERKS,
LVORM LIKE MARC-LVORM,
DISPO LIKE MARC-DISPO,
MBRSH LIKE MARA-MBRSH,
MEINS LIKE MARA-MEINS,
MATKL LIKE MARA-MATKL,
VKORG LIKE MVKE-VKORG,
VTWEG LIKE MVKE-VTWEG,
SPRAS LIKE MAKT-SPRAS,
MAKTX LIKE MAKT-MAKTX,
LGORT LIKE MARD-LGORT,
LABST LIKE MARD-LABST,
EBELN LIKE EKPO-EBELN,
EBELP LIKE EKPO-EBELP,
VBELN LIKE VBAP-VBELN,
POSNR LIKE VBAP-POSNR,
END OF I_OUT,
BEGIN OF I_HEADING OCCURS 0,
TEXT1(20),
TEXT2(20),
TEXT3(20),
TEXT4(20),
TEXT5(20),
TEXT6(20),
TEXT7(20),
TEXT8(20),
TEXT9(20),
TEXT10(20),
TEXT11(40),
TEXT12(20),
TEXT13(20),
TEXT14(20),
TEXT15(20),
TEXT16(20),
TEXT17(20),
END OF I_HEADING.
*& S E L E C T I O N - S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-100.
SELECT-OPTIONS: S_MATNR FOR MARA-MATNR. "OBLIGATORY.
PARAMETERS: P_WERKS LIKE MARC-WERKS. "OBLIGATORY.
SELECT-OPTIONS: S_LGORT FOR MARD-LGORT,
S_DISPO FOR MARC-DISPO,
S_EBELN FOR EKPO-EBELN .
SELECTION-SCREEN END OF BLOCK B1.
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-101.
PARAMETERS : RB1 RADIOBUTTON GROUP G1,
RB2 RADIOBUTTON GROUP G1,
RB3 RADIOBUTTON GROUP G1.
SELECTION-SCREEN END OF BLOCK B2.
*& I N I T I A L I Z A T I O N *
*INITIALIZATION.
*& S T A R T - O F - S E L E C T I O N *
START-OF-SELECTION.
SELECT MATNR WERKS LVORM DISPO FROM MARC
INTO CORRESPONDING FIELDS OF TABLE I_MARC
WHERE MATNR IN S_MATNR
AND DISPO IN S_DISPO
AND WERKS = P_WERKS.
IF I_MARC[] IS INITIAL.
WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARC'.
EXIT.
ENDIF.
PERFORM PURCHASEDATA_VALIDATION.
PERFORM SALESDATA_VALIDATION.
SELECT MATNR LGORT LABST FROM MARD INTO TABLE I_MARD
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR
AND WERKS EQ P_WERKS
AND LGORT IN S_LGORT.
IF I_MARD[] IS INITIAL.
WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MARD'.
EXIT.
ENDIF.
SELECT MATNR VKORG VTWEG FROM MVKE INTO TABLE I_MVKE
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR.
IF I_MVKE[] IS INITIAL.
WRITE:/ 'NO MATCHING DATA AVAILABLE FROM MVKE'.
EXIT.
ENDIF.
LOOP AT I_MARC.
MOVE-CORRESPONDING I_MARC TO I_OUT.
CLEAR MARC.
SELECT SINGLE MATNR MBRSH MEINS MATKL FROM MARA
INTO CORRESPONDING FIELDS OF MARA
WHERE MATNR = I_OUT-MATNR.
IF SY-SUBRC = 0.
MOVE: MARA-MBRSH TO I_OUT-MBRSH,
MARA-MEINS TO I_OUT-MEINS,
MARA-MATKL TO I_OUT-MATKL.
ELSE.
CONTINUE.
ENDIF.
SELECT SINGLE MATNR MAKTX SPRAS FROM MAKT
INTO CORRESPONDING FIELDS OF MAKT
WHERE MATNR = I_OUT-MATNR.
IF SY-SUBRC = 0.
MOVE: MAKT-MAKTX TO I_OUT-MAKTX,
MAKT-SPRAS TO I_OUT-SPRAS.
ELSE.
CONTINUE.
ENDIF.
LOOP AT I_EKPO WHERE MATNR = I_MARC-MATNR.
MOVE: I_EKPO-EBELN TO I_OUT-EBELN,
I_EKPO-EBELP TO I_OUT-EBELP.
ENDLOOP.
LOOP AT I_VBAP WHERE MATNR = I_MARC-MATNR.
MOVE: I_VBAP-VBELN TO I_OUT-VBELN,
I_VBAP-POSNR TO I_OUT-POSNR.
ENDLOOP.
LOOP AT I_MARD WHERE MATNR = I_MARC-MATNR.
MOVE: I_MARD-LABST TO I_OUT-LABST,
I_MARD-LGORT TO I_OUT-LGORT.
ENDLOOP.
LOOP AT I_MVKE WHERE MATNR = I_MARC-MATNR.
MOVE: I_MVKE-VKORG TO I_OUT-VKORG,
I_MVKE-VTWEG TO I_OUT-VTWEG.
ENDLOOP.
APPEND I_OUT.
CLEAR I_OUT.
ENDLOOP.
PERFORM OPTIONS.
* FORM OPTIONS *
FORM OPTIONS.
IF RB2 = 'X'.
PERFORM FIELDCAT.
PERFORM OUTPUT.
ELSE.
IF RB1 = 'X'.
PERFORM HEADINGS.
PERFORM DLOAD.
ELSE.
IF RB3 = 'X'.
PERFORM HEADINGS.
PERFORM DLOAD.
PERFORM FIELDCAT.
PERFORM OUTPUT.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "OPTIONS
* FORM HEADINGS *
FORM HEADINGS.
I_HEADING-TEXT1 = 'MATNR'.
I_HEADING-TEXT2 = 'WERKS'.
I_HEADING-TEXT3 = 'LVORM'.
I_HEADING-TEXT4 = 'DISPO'.
I_HEADING-TEXT5 = 'MBRSH'.
I_HEADING-TEXT6 = 'MEINS'.
I_HEADING-TEXT7 = 'MATKL'.
I_HEADING-TEXT8 = 'VKORG'.
I_HEADING-TEXT9 = 'VTWEG'.
I_HEADING-TEXT10 = 'SPRAS'.
I_HEADING-TEXT11 = 'MAKTX'.
I_HEADING-TEXT12 = 'LGORT'.
I_HEADING-TEXT13 = 'LABST'.
I_HEADING-TEXT14 = 'EBELN'.
I_HEADING-TEXT15 = 'EBELP'.
I_HEADING-TEXT16 = 'VBELN'.
I_HEADING-TEXT17 = 'POSNR'.
APPEND I_HEADING.
ENDFORM. "HEADINGS
* FORM DLOAD *
FORM DLOAD.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:MATSTK.csv'
FILETYPE = 'DAT'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_HEADING
EXCEPTIONS
FILE_WRITE_ERROR = 1.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
FILENAME = 'C:MATSTK.csv'
FILETYPE = 'DAT'
APPEND = 'X'
WRITE_FIELD_SEPARATOR = 'X'
TABLES
DATA_TAB = I_OUT.
ENDFORM. "DLOAD
* FORM FIELDCAT *
FORM FIELDCAT.
V_FIELDCAT-COL_POS = '1'.
V_FIELDCAT-FIELDNAME = 'MATNR'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-HOTSPOT = 'X'.
V_FIELDCAT-REF_FIELDNAME = 'MATNR'.
V_FIELDCAT-REF_TABNAME = 'MARC'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '2'.
V_FIELDCAT-FIELDNAME = 'WERKS'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'WERKS'.
V_FIELDCAT-REF_TABNAME = 'MARC'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '3'.
V_FIELDCAT-FIELDNAME = 'LVORM'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'LVORM'.
V_FIELDCAT-REF_TABNAME = 'MARC'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '4'.
V_FIELDCAT-FIELDNAME = 'DISPO'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'DISPO'.
V_FIELDCAT-REF_TABNAME = 'MARC'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '5'.
V_FIELDCAT-FIELDNAME = 'MBRSH'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'MBRSH'.
V_FIELDCAT-REF_TABNAME = 'MARA'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '6'.
V_FIELDCAT-FIELDNAME = 'MEINS'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'MEINS'.
V_FIELDCAT-REF_TABNAME = 'MARA'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '7'.
V_FIELDCAT-FIELDNAME = 'MATKL'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'MATKL'.
V_FIELDCAT-REF_TABNAME = 'MARA'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '8'.
V_FIELDCAT-FIELDNAME = 'VKORG'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'VKORG'.
V_FIELDCAT-REF_TABNAME = 'MVKE'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '9'.
V_FIELDCAT-FIELDNAME = 'VTWEG'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'VTWEG'.
V_FIELDCAT-REF_TABNAME = 'MVKE'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '10'.
V_FIELDCAT-FIELDNAME = 'SPRAS'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'SPRAS'.
V_FIELDCAT-REF_TABNAME = 'MAKT'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '11'.
V_FIELDCAT-FIELDNAME = 'MAKTX'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'MAKTX'.
V_FIELDCAT-REF_TABNAME = 'MAKT'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '12'.
V_FIELDCAT-FIELDNAME = 'LGORT'.
V_FIELDCAT-TABNAME = 'I_OUT'.
* V_FIELDCAT-REF_FIELDNAME = 'LGORT'.
* V_FIELDCAT-REF_TABNAME = 'MARD'.
V_FIELDCAT-SELTEXT_L = 'STRG LOCT'.
V_FIELDCAT-OUTPUTLEN = 10.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '13'.
V_FIELDCAT-FIELDNAME = 'LABST'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-SELTEXT_M = 'STOCK'.
V_FIELDCAT-OUTPUTLEN = 15.
* V_FIELDCAT-REF_FIELDNAME = 'LABST'.
* V_FIELDCAT-REF_TABNAME = 'MARD'.
V_FIELDCAT-DO_SUM = 'X'.
V_LAYOUT-TOTALS_TEXT = 'TOTAL STOCK:'.
V_FIELDCAT-HOTSPOT = 'X'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '14'.
V_FIELDCAT-FIELDNAME = 'EBELN'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-HOTSPOT = 'X'.
V_FIELDCAT-REF_FIELDNAME = 'EBELN'.
V_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '15'.
V_FIELDCAT-FIELDNAME = 'EBELP'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'EBELP'.
V_FIELDCAT-REF_TABNAME = 'EKPO'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '16'.
V_FIELDCAT-FIELDNAME = 'VBELN'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-HOTSPOT = 'X'.
V_FIELDCAT-REF_FIELDNAME = 'VBELN'.
V_FIELDCAT-REF_TABNAME = 'VBAP'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
V_FIELDCAT-COL_POS = '17'.
V_FIELDCAT-FIELDNAME = 'POSNR'.
V_FIELDCAT-TABNAME = 'I_OUT'.
V_FIELDCAT-REF_FIELDNAME = 'POSNR'.
V_FIELDCAT-REF_TABNAME = 'VBAP'.
APPEND V_FIELDCAT TO VT_FIELDCAT1.
CLEAR V_FIELDCAT.
ENDFORM. "FIELDCAT
* FORM OUTPUT *
FORM OUTPUT.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_TOP_OF_PAGE = 'TOP-OF-PAGE'
I_GRID_TITLE = 'CLICK ON MATERIAL/PURDOC/SALESDOC FOR DETAILS'
I_CALLBACK_USER_COMMAND = 'DISPLAYDETAILS'
IS_LAYOUT = V_LAYOUT
IT_FIELDCAT = VT_FIELDCAT1
TABLES
T_OUTTAB = I_OUT.
IF SY-SUBRC <> 0.
ENDIF.
ENDFORM. "OUTPUT
* FORM TOP-OF-PAGE *
FORM TOP-OF-PAGE.
DATA: T_HEADER TYPE SLIS_T_LISTHEADER,
WA_HEADER TYPE SLIS_LISTHEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'REPORT FOR : '.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-INFO = 'MATERIAL DETAILS'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-INFO = 'PURCHASE ORDER DETAILS'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
WA_HEADER-TYP = 'S'.
WA_HEADER-INFO = 'SALES ORDER DETAILS'.
APPEND WA_HEADER TO T_HEADER.
CLEAR WA_HEADER.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
I_LOGO = 'GEAR'
IT_LIST_COMMENTARY = T_HEADER.
ENDFORM. "TOP-OF-PAGE
*& FORM DISPLAYDETAILS *
FORM DISPLAYDETAILS USING UCOMM LIKE SY-UCOMM
SELFIELD TYPE SLIS_SELFIELD.
IF SELFIELD-FIELDNAME = 'EBELN'.
IF UCOMM = '&IC1'.
READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
PERFORM PORECDNG.
CLEAR BDCDATA[].
ENDIF.
ELSE.
IF SELFIELD-FIELDNAME = 'MATNR'.
IF UCOMM = '&IC1'.
READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
PERFORM MMRECDNG.
CLEAR BDCDATA[].
ENDIF.
ELSE.
IF SELFIELD-FIELDNAME = 'VBELN'.
IF UCOMM = '&IC1'.
READ TABLE I_OUT INDEX SELFIELD-TABINDEX.
PERFORM SALESRECDNG.
CLEAR BDCDATA[].
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDFORM. "DISPLAYDETAILS
* FORM PORECDNG *
FORM PORECDNG.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0105'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-BSTNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RM06E-BSTNR'
I_OUT-EBELN.
PERFORM BDC_DYNPRO USING 'SAPMM06E' '0120'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RM06E-BSTPO(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=AH'.
PERFORM BDC_FIELD USING 'RM06E-EBELP'
I_OUT-EBELP.
PERFORM BDC_FIELD USING 'RM06E-TCSELFLAG(01)'
'X'.
PERFORM BDC_TRANSACTION USING 'ME23'.
ENDFORM. "PORECDNG
* FORM MMRECDNG *
FORM MMRECDNG.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0060'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RMMG1-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RMMG1-MATNR'
I_OUT-MATNR.
PERFORM BDC_DYNPRO USING 'SAPLMGMM' '0070'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENTR'.
PERFORM BDC_FIELD USING 'MSICHTAUSW-KZSEL(01)'
'X'.
PERFORM BDC_TRANSACTION USING 'MM03'.
ENDFORM. "MMRECDNG
* FORM SALESRECDNG *
FORM SALESRECDNG.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '0102'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'VBAK-VBELN'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'VBAK-VBELN'
I_OUT-VBELN.
PERFORM BDC_TRANSACTION USING 'VA03'.
ENDFORM. "SALESRECDNG
* FORM BDC_TRANSACTION *
FORM BDC_TRANSACTION USING TCODE.
CALL TRANSACTION TCODE USING BDCDATA MODE 'E'.
ENDFORM. "BDC_TRANSACTION
* FORM BDC_DYNPRO *
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
CLEAR BDCDATA.
BDCDATA-PROGRAM = PROGRAM.
BDCDATA-DYNPRO = DYNPRO.
BDCDATA-DYNBEGIN = 'X'.
APPEND BDCDATA.
ENDFORM. "BDC_DYNPRO
* INSERT FIELD *
FORM BDC_FIELD USING FNAM FVAL.
CLEAR BDCDATA.
BDCDATA-FNAM = FNAM.
BDCDATA-FVAL = FVAL.
APPEND BDCDATA.
ENDFORM. "BDC_FIELD
*& FORM PURCHASEDATA_VALIDATION *
FORM PURCHASEDATA_VALIDATION.
SELECT EBELN EBELP MATNR
FROM EKPO
INTO TABLE I_EKPO
FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR
AND EBELN IN S_EBELN
AND WERKS EQ P_WERKS.
IF I_EKPO[] IS INITIAL.
WRITE:/ 'NO MATCHING DATA AVAILABLE FROM TABLE EKPO'.
EXIT.
ENDIF.
DATA: T_EKPO LIKE I_EKPO OCCURS 0 WITH HEADER LINE.
T_EKPO[] = I_EKPO[].
REFRESH I_EKPO.
FREE I_EKPO.
LOOP AT T_EKPO.
SELECT SINGLE EBELN FROM EKKO INTO EKPO-EBELN
WHERE EBELN = T_EKPO-EBELN.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING T_EKPO TO I_EKPO.
APPEND I_EKPO.
CLEAR I_EKPO.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
SORT I_EKPO.
ENDFORM. "PURCHASEDATA_VALIDATION
*& FORM SALESDATA_VALIDATION *
FORM SALESDATA_VALIDATION.
SELECT VBELN POSNR MATNR
FROM VBAP
INTO CORRESPONDING FIELDS OF TABLE
I_VBAP FOR ALL ENTRIES IN I_MARC
WHERE MATNR = I_MARC-MATNR.
IF I_VBAP[] IS INITIAL.
WRITE:/ 'NO MATCHING DATA AVAILABLE FROM TABLE VBAP'.
EXIT.
ENDIF.
DATA: T_VBAP LIKE I_VBAP OCCURS 0 WITH HEADER LINE.
T_VBAP[] = I_VBAP[].
REFRESH I_VBAP.
FREE I_VBAP.
LOOP AT T_VBAP.
SELECT SINGLE VBELN FROM VBAK INTO VBAK-VBELN
WHERE VBELN = T_VBAP-VBELN.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING T_VBAP TO I_VBAP.
APPEND I_VBAP.
CLEAR I_VBAP.
ELSE.
CONTINUE.
ENDIF.
ENDLOOP.
SORT I_VBAP.
ENDFORM. "SALESDATA_VALIDATION -
How to devolop a report which has two languages in it
Hi Friends
I got a requirment where in i need to devolop a report with two languages in it English and Arabic Report is divided into two halves one is in english and another one is in ArabicHi
Check the code using this...
DATA: number TYPE tbtcjob-jobcount,
name TYPE tbtcjob-jobname VALUE 'JOB_TEST',
print_parameters TYPE pri_params.
CALL FUNCTION 'JOB_OPEN'
EXPORTING
jobname = name
IMPORTING
jobcount = number
EXCEPTIONS
cant_create_job = 1
invalid_job_data = 2
jobname_missing = 3
OTHERS = 4.
IF sy-subrc = 0.
SUBMIT submitable TO SAP-SPOOL
SPOOL PARAMETERS print_parameters
WITHOUT SPOOL DYNPRO
VIA JOB name NUMBER number
AND RETURN.
IF sy-subrc = 0.
CALL FUNCTION 'JOB_CLOSE'
EXPORTING
jobcount = number
jobname = name
strtimmed = 'X'
EXCEPTIONS
cant_start_immediate = 1
invalid_startdate = 2
jobname_missing = 3
job_close_failed = 4
job_nosteps = 5
job_notex = 6
lock_failed = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDIF.
ENDIF. -
Develop an interactive report which displays the list of purchase requtions
please give the related table and source code
Hi,
Please check this link for purchasing tables.
http://www.erpgenie.com/sap/abap/tables_mm.htm#Purchasing%20Tables
Regards,
Ferry Lianto -
Retrieve SQL with filters applied from an Interactive Report
I want to use an Interactive report as interface for providing parameters to a base report query.
I would like to capture the full SQL code from the filtered interactive report and then run the sql to create a collection.
I have found this tread
Re: Using Data from filtered Interactive Report
which says that you can use APEX_APPLICATION_PAGE_IR to access the reports SQL. This holds the information about the interactive report when the user saves it. The sql code from the interactive report (after the user has added filters) is stored in the field sql_query.I can only retrieve the base query and not the filtered version even after saving.
Any ideas how this can be done would be appreciated.
regards
PPOK Darren I think I've got it working. My solution is an adaption that follows the steps of a blog I found here: http://stewstools.wordpress.com/2009/02/19/get-ir-where-clause/
My solution allows you to click on a button and the records that are currently displayed in the IR report are saved to an APEX collection. You can then use the collection to save records to a table or run a report on another page. (I haven't included code for this last step but it's easy to find on the forum)
First a bit of background knowledge. The following APEX views hold all the information on IRs that you access via PLSQL code in the package you need to download. Run an IR report, save a version of the report, then in SQL Workshop have a look at:
select * from APEX_APPLICATION_PAGE_IR
select * from APEX_APPLICATION_PAGE_IR_COND
select * from APEX_APPLICATION_PAGE_IR_COL
select * from APEX_APPLICATION_PAGE_IR_RPT
When you run an IR report it has an internal ID that you can access and also a Base Id for each Saved report that is currently in context.
Here are the steps:
1) Download the following package and install it in the workspace schema
http://www.mediafire.com/?nj118x9vmc9
click on the link "click here to download"
2)In the HTML header Attribute of the page where your IR runs, put the following Javascript:
<!--===================================================================-->
<!--FUNCTION TO RETRIEVE IR REPORTS SQL WITH WHERE CLAUSE
<!--===================================================================-->
<script language="JavaScript" type="text/javascript">
function SaveAndRunReport() {
document.location='f?p=&APP_ID.:3:&SESSION.:CONSTRUCT_IR_QUERY:NO::'+
'P3_BASE_REPORT_ID:'+$v('apexir_REPORT_ID');
</script>
<!--===================================================================-->
Notes: You will need to obviously change the URL above to reflect your Page No. (3) and the name of a HIDDEN Item (P3_BASE_REPORT_ID) that you will populate with the base ID of the report.
Setting :P3_BASE_REPORT_ID to +$v('apexir_REPORT_ID') is an internal thing and works out of the box. It returns the Id of the Base report.
3) Create a button called SELECT_SPECIMENS (in region position - top of region) in the IR region that will initiate the execution of the IR background SQL to create a collection with the current selected records.
TARGET= URL
URL Target = javascript:SaveAndRunReport();
You might also want to create a condition that only shows the button when there are records selected
CONDITION TYPE=Exists(SQL returns at least one row)
EXPRESSION 1 - put the SQL of the IR report here.
4)Create a branch back to the same page (3) and with the REQUEST attribute set to the value in the Javascript URL above e.g. CONSTRUCT_IR_QUERY. Create a condition on the branch that uses this branch WHEN BUTTON PRESSED= SELECT_SPECIMENS
5) Create an AFTER HEADER PROCESS with the following code:
declare
v_base_query clob;
v_where clob;
v_query clob;
v_base_where varchar2(12):=' where 1=1 '; -- incase there is no where clause in the base query
begin
if apex_collection.collection_exists('IR_COLLECTION') THEN
htmldb_collection.delete_collection( p_collection_name => 'IR_COLLECTION');
end if;
--GET THE BASE QUERY OF THE IR REPORT
select sql_query
into v_base_query
from APEX_APPLICATION_PAGE_IR
where application_id=:APP_ID
and page_id=:APP_PAGE_ID; -- you can only have one IR report per page
--UNCOMMENT TO VIEW THE PARAMETERS TO THE PACKAGED FUNCTION
--raise_application_error(-20001, :APP_ID||'-'||:APP_PAGE_ID||'-'||:SESSION||'-'||:P3_BASE_REPORT_ID);
--GET THE SQL FILTER CODE
select apex_ir_query.ir_query_where(:APP_ID,:APP_PAGE_ID,:SESSION,:P3_BASE_REPORT_ID)
into v_where
from dual;
--CHECK TO SEE THAT THERE IS A "WHERE" CLAUSE IN THE BASE QUERY
if instr(upper(v_base_query),'WHERE ') > 0 then
v_query:=v_base_query||' '||v_where;
else
v_query:=v_base_query||' '||v_base_where||' '||v_where;
end if;
--UNCOMMENT TO SEE THE FULL QUERY SYNTAX
--raise_application_error(-20001,v_query);
--CREATE COLLECTION FROM IR RECORDS
apex_collection.create_collection_from_query(P_collection_name=>'IR_COLLECTION',p_query=>v_query);
exception
when others then
raise_application_error(-20001, 'Interactive report not found. Contact Administrator. Could not create collection of records.');
end;
remember to update P3_BASE_REPORT_ID above to your HIDDEN ITEM name.
Set the following attributes for the process above
CONDITIONAL PROCESSING
CONDITION TYPE = Request=Expression 1
EXPRESSION 1 --> CONSTRUCT_IR_QUERY (Note: this was set on the branch in step 4 above)
6) Run the IR report, click on the "SELECT SPECIMENS" button then click on the Session link on the Developer's Toolbar and select VIEW COLLECTIONS from the popup list then click GO. You should now see the IR records.
By the way I've been testing in IE not Firefox.
...and that's it!
enjoy
Paul P
Maybe you are looking for
-
Can't hear caller/they can't hear me
WARNING FOR ALL PRE OWNERS: For the third time, I've experienced a problem with my Pre that I can answer or place a call, but the other end can't hear me, and I can't hear the other person. This is a common problem with the Palm Pre. It seems to be
-
What is use of Read-Text command in Sapscript plz replay
What is use of Read-Text command in Sapscript plz replay i m geting problem with read-text command in sapscript as will as perform and endperform .
-
I think the logic/video board is bad in my 2006 iMac. Anyone know where I can find a replacement? It's a "vintage" computer, so the board is not available through Apple.
-
Open Item Management activation for GL accounts in ECC 6.00
Hi Experts, There is an issue about Open item Management activation for GL line items of FBLL03 for VAT GL code. Unexpectdly do not check the open item management in VAT GL account Master record while created the GL master record in 2007. Now we acti
-
Hi Gurus, We have stuck with issue, we have created new Z-smartforms based on standard CRM_ORDER_CONFIRMATION_01. We have defined action for sending mail, mail is used new smartform which we defined in action conditons. once the action triggered we c