Doubt in Parameter.
Hi,
In Query, i am having National Key, Regional Key, Area Key three separate fields.
In Discoverer Plus, I am giving one parameter as KEY . They LOV is NAtional, Regional, Area. If i am choosing anyone of this, it should take from corresponding fields. How to do this? Anyone help will be appreciated.
Thanks in advance
Kavitha
The first and easy way would be providing three parameters which are not mandatory.
The second way would be combine the Key(LOVs) into one field( i.e., make crosstab to table ) and provide one parameter.
Similar Messages
-
Doubt in pass of connection by parameter
I have a technical doubt about pass of parameters. I have a method to which I pass as parameter a connection with database like 'public void ejecutarSelect (Connection with, String selec)'. The connection comes opened to the method, and it only executes the select. The connection is closed out of the method.
Here my doubt comes. In java all parameter passed to a method is for value, I mean, to the beginning of the method is created a copy of the variables passed by parameter and at the end of the method it destroys them. But in case of the connection, does the method copy the pointer to the connection or really it clon the connection with database? I am interested becuase I want to know if I would be leaving connections open.
Thanks.Java passes all parameters by value. Parameters hold primitive types and Object references (not Objects). In your case the Object reference is being passed by value but that in effect causes the Object (Connection in your case) to be passed by reference.
-
Doubts on datapump query parameter
Hi,
Oracle Version : 10.2.0.1
Operating system:Windows
Can any one please tell me the difference between the two export statements where i user Query parameter in my export .
E:\oracle\dbdump>expdp scott/tiger directory=dbdump dumpfile=partion.dmp logfile=partion.log exclude=statistics,grants tables=emp QUERY=emp:'"where deptno<20"'
Export: Release 10.2.0.1.0 - Production on Wednesday, 21 October, 2009 11:47:55
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dbdump dumpfile=partion.dmp logfile=partion.log exclude=statistics,grants tables=emp QUERY=emp:'where deptno<20'
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-31693: Table data object "SCOTT"."EMP" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:
E:\ORACLE\DBDUMP\PARTION.DMP
Job "SCOTT"."SYS_EXPORT_TABLE_01" completed with 1 error(s) at 11:48:06
E:\oracle\dbdump>expdp scott/tiger directory=dbdump dumpfile=partion.dmp logfile=partion.log exclude=statistics,grants tables=emp QUERY='"where deptno<20"'
Export: Release 10.2.0.1.0 - Production on Wednesday, 21 October, 2009 11:57:32
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SCOTT"."SYS_EXPORT_TABLE_01": scott/******** directory=dbdump dumpfile=partion.dmp logfile=partion.log exclude=statistics,grants tables=emp QUERY='where deptno<20'
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
. . exported "SCOTT"."EMP" 7.375 KB 3 rows
Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:
E:\ORACLE\DBDUMP\PARTION.DMP
Job "SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at 11:57:44Hi,
Here another doubt i am trying to take a full dump of the scott schema and i want the emp table data based on the salary condition .But i am getting the following error .Please help me that we can't user query option when taking full schema dump.
E:\oracle\dbdump>expdp scott/tiger directory=dbdump dumpfile=full_1.dmp logfile=full_1.log exclude=statistics,grants QUERY=scott.emp:'"where sal<3000"'
Export: Release 10.2.0.1.0 - Production on Wednesday, 21 October, 2009 12:14:44
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=dbdump dumpfile=full_1.dmp logfile=full_1.log exclude=statistics,grants QUERY=scott.emp:'where sal<3
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-31693: Table data object "SCOTT"."DEPT" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
ORA-31693: Table data object "SCOTT"."EMP" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
ORA-31693: Table data object "SCOTT"."SALGRADE" failed to load/unload and is being skipped due to error:
ORA-00933: SQL command not properly ended
. . exported "SCOTT"."BONUS" 0 KB 0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
E:\ORACLE\DBDUMP\FULL_1.DMP
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" completed with 3 error(s) at 12:14:56
E:\oracle\dbdump>expdp scott/tiger directory=dbdump dumpfile=full_11.dmp logfile=full_11.log exclude=statistics,grants QUERY='"where sal<3000"'
Export: Release 10.2.0.1.0 - Production on Wednesday, 21 October, 2009 12:30:30
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01": scott/******** directory=dbdump dumpfile=full_11.dmp logfile=full_11.log exclude=statistics,grants QUERY='where sal<3000'
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/COMMENT
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
ORA-31693: Table data object "SCOTT"."DEPT" failed to load/unload and is being skipped due to error:
ORA-00904: "SAL": invalid identifier
. . exported "SCOTT"."EMP" 7.703 KB 11 rows
ORA-31693: Table data object "SCOTT"."SALGRADE" failed to load/unload and is being skipped due to error:
ORA-00904: "SAL": invalid identifier
. . exported "SCOTT"."BONUS" 0 KB 0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
E:\ORACLE\DBDUMP\FULL_11.DMP
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" completed with 2 error(s) at 12:30:51 -
Doubt in locating a file in context parameter
I have got a file named mylibrary.txt in WEB-INF/data directory.
I wish to map the file in context Parameter.
While trying this,
<context-param>
<param-name>library-file</param-name>
<param-value>/WEB-INF/data/my-library.txt</param-value>
</context-param>
I got a null pointerException while reading the file in my servlet. I am using Eclipse.The code as follows
public class ListLibraryServlet extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
public ListLibraryServlet() {
super();
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/html");
PrintWriter out=response.getWriter();
ServletContext context=getServletContext();
List dvd=(List)context.getAttribute("dvdlist");
out.println("<head><title>ListLibraryServlet</title></head>");
out.println("<body bgcolor='D2B48C'>");
out.println("You currently have <b>3</b> DVDs in your collection<br>");
out.println("<table>");
out.println("<tr>");
out.println("<th>Title</th>");
out.println("<th>Year</th>");
out.println("<th>Genre</th>");
out.println("</tr>");
Iterator it=dvd.iterator();
while(it.hasNext())
DVDItem item=(DVDItem)it.next();
out.println("<tr>");
out.println("<td>");
out.println(item.getTitle());
out.println("</td>");
out.println("<td>"+item.getYear()+"</td>");
out.println("<td>"+item.getGenre()+"</td>");
out.println("</tr>");
out.println("<tr>");
out.println("</table>");
out.println("</body>");
out.println("</html>");
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
} I am retrieving the file as
public class InitializeLibrary extends javax.servlet.http.HttpServlet implements javax.servlet.ServletContextListener {
/* (non-Java-doc)
* @see javax.servlet.http.HttpServlet#HttpServlet()
public InitializeLibrary() {
super();
public void contextInitialized(ServletContextEvent event)
{ InputStream is=null;
BufferedReader reader=null;
List dvdlist=new ArrayList();
ServletContext context=event.getServletContext();
String libraryfile=context.getInitParameter("library-file");
try
is=context.getResourceAsStream("libraryfile");
reader=new BufferedReader(new InputStreamReader(is));
String record;
while((record=reader.readLine())!=null)
String[] fields=record.split("\\|");
String title=fields[0];
String year=fields[1];
String genre=fields[2];
DVDItem item=new DVDItem(title,year,genre);
dvdlist.add(item);
context.setAttribute("dvdlist",dvdlist);
catch(IOException e)
e.printStackTrace();
catch(Exception e)
e.printStackTrace();
public void contextDestroyed(ServletContextEvent event)
} -
SET PARAMETER ID sak - Simple doubt
Hi Experts,
PLs. clarify me that,
I copied standard SAP prog. RFITEMGL into my_z_rfitemgl prog.
Actually, this prog. is for Transaction code of FBL3N.
So, issue is that,
If I(some one else) ran this tx FBL3N, with selection criteria, say, G/L acct of my_acct_01 and with company code of my_cc_01, then get BACK/F3'ed.
Then, If I ran my_z_rfitemgl prog. with my OWN selection criteria in my own selection screen, say,
my_acct_02
my_cc_02
BUT, SOME TIMES, still, system is fetching the data of my_acct_01, my_cc_01.
This is mainly happening with 0000000 values in Acct filed of FBL3N tx.
1) So, pls. let me know , How to fix it?
I guess, SET PARAMETERR ID SAK space; SET PARAMETERR ID BUK space will help me.
2) if so, Shuld I write it at the beginning of the prog?
thanq
Edited by: Srinivas on Apr 9, 2008 5:35 AMthanq
u mean, like
START-OF-SELECTION.
LOAD-OF-PROGRAM.
1) Its enough?
2 )can u explain, pls. the follwing,
Be aware that RFITEMGL use the parameter id to communicate with the LDB program behind. (So if your Z-program does not clear each and every parameter used by the standard program, some "ghostly" selections may arise in ldb program)
am passing G/L accts, BUKRS, 2 check boxes from my_z_prog.
3 )So, do, U mean, I need to clear them, at the beginnning?
thanq
Edited by: Srinivas on Apr 9, 2008 6:19 AM -
Doubt in passing a parameter to a fn module
dear friends,
i want to pass a parameter to the fn module HRHAP_SHOW_DOCUMENT from the abap program.the parameter that iam passing to the fn module is a table type HAP_T_HEADER_APPRAISER.so i have declared a internal table with the same structure with the table type,assigned values to the internal table and i have passed it as the export parameter to the fn module.but when i run the program it is showing a dump with a message that there is a type conflict when calling the fn module.i think that the table type declaration and assignment in the pgm is wrong.can any one help of how to declare and define the table type in the program and how to pass it to the fn module as one of the export parameter.
thanks.Hi Vadivel,
HAP_T_HEADER_APPRAISER is a dictionary table type you need to declare the table with reference to it and a structure to load data into it as it has no header line. Something like this.
data:
myTable type HAP_T_HEADER_APPRAISER,
myStructure type HAP_S_HEADER_APPRAISER.
Then you should have no problems.
Hope this helps.
Gary -
hi,
can anyone tel me wat is error in this coding
AT LINE-SELECTION.
DATA: g(30),
ref_parameter(30) VALUE 'parameter by reference',
val_parameter(30) VALUE 'parameter by value',
field_symbol LIKE itab-lifnr.
FIELD-SYMBOLS: <f> TYPE ANY.
ASSIGN itab-lifnr TO <f>.
GET CURSOR FIELD g.
SET PARAMETER ID 'LIF' FIELD itab-lifnr.
CALL TRANSACTION 'ZAZU'." AND SKIP FIRST SCREEN.
Im not getting the corresponding value in the parameter it is not setting into the parameter box wat is the erzubair,
Check like below.
SET PARAMETER ID 'LIF' FIELD field_symbol.
Don't forget to reward if useful. -
Doubt abt T.C OPKI (Confirmation parameter for collective confirmation)
Hello Friend,
In OPKI Transaction,there are by default 3 categories are maintained and for which confirmation parameters are maintained.
Now my question is , what is meant by third category "Confirmation by Order Information System"? I mean for which transaction (confirmation),this parameter is maintained?
I hope you understood by question.
Thanks and Regards,
Jitendra D ChauhanConfirmation from order info systems:
It refers that in collective entry the work to be confirmed is calculated proportionally to the quantity and is at once proposed on the entry list. and specifies that in the collective entry the quantities still to be confirmed are immediately proposed on the entry list.
Fast data entry:
in the collective entry the quantities still to be confirmed are not proposed and the work still to be confirmed is not proposed..
karthick -
Doubt on initialization parameter in RAC
Hi Gurus,
Can somebody explain the intention behind this kind of setting in cluster database ?
I know when sga_target or memory_target is set ,the db_cache_size configured at instance level will act as the lower limit .
Then what is meant by remaining setting ? *.__db_cache_size= and PDOSB.__db_cache_size
*.__db_cache_size=608M
PDOSB.__db_cache_size=620756992
PDOSB2.__db_cache_size=10200547328
PDOSB3.__db_cache_size=9999220736
PDOSB1.__db_cache_size=10401873920
Thanks in advance,
MahiHi,
>>Then what is meant by remaining setting ? *.__db_cache_size= and PDOSB.__db_cache_size
it means the parameter value are managed by the database automatically. The size *.__db_cache_size=608M, i.e. 608M is the last size allocated to that component.
* - means it was across all instances.
PDOSB.__db_cache_size=620756992 - means it specifies the size for PDOSB instance.
HTH,
Pradeep -
Memory Parameter doubt!!
Hello,
Am trying to implement zero adminstaration memory management on windows 2003 server.
The SAP R/3 version 4.7 running on orcale 10.2 with windows server 2003 (32 bit) enterprise edition .
The server has a RAM of 16 gigs, since the OS is 32 bit and i have enabled the /3gb and /PAE latch. I have a doubt.
What should be the value of PHYS_MEMSIZE.
Now i have 8192 as the value.
Is that OK?
is Ztta/roll_area = 1 byte
is that sufficient?
appreciate insight on above questions.
I followed as per the note 88416.
Regards,
siddhartha.Hi Siddartha,
PAE is an Intel-provided memory address extension that enables support of greater than 4 GB of physical memory for most 32-bit (IA-32) Intel Pentium Pro and later platforms.
Microsoft supports Physical Address Extension (PAE) memory in Microsoft Windows 2000, Windows XP, and Windows Server 2003 products:
Operating system Maximum memory support with PAE
Windows Server 2003 (and SP1), Standard Edition
4 GB of physical RAM*
Windows Server 2003, Enterprise Edition
32 GB of physical RAM
Windows Server 2003, Datacenter Edition
64 GB of physical RAM
Windows Server 2003 SP1, Enterprise Edition
64 GB of physical RAM
So , pls enable a /PAE switch in boot.ini file
Hope this is useful
Best Regards
Umesh -
SORT_AREA_SIZE parameter doubt
Hi guys,
My application connections use MTS and I´m trying to change dinamically the SORT_AREA_SIZE parameter and I´m getting a Oracle error
ALTER SYSTEM SET SORT_AREA_SIZE=1048576 SCOPE=BOTH;
ORA-02096
anybody knows why ?
oracle 9.2.0.8
the pga_aggregate_target parameter is configured to 160432128 , but as I´m using mts connections I would like to see if there´s any improvement in sorts performance changing SORT_AREA_SIZE parameter.
ThanksThe error message is pretty self explanatory,
ORA-02096: specified initialization parameter is not modifiable with this option
Cause: Though the initialization parameter is modifiable, it cannot be modified using the specified command.
Action: Check the DBA guide for information about under what scope the parameter may be modified
You can't change it with SCOPE=BOTH, change with SCOPE=SPFILE and restart to take effect. -
External procedure call. PARAMETER MAXLEN doubt
Hi, I have the following external function definition:
CREATE OR REPLACE FUNCTION myfunc (
tohash IN STRING,
hashres IN OUT STRING)
RETURN BINARY_INTEGER AS LANGUAGE C
LIBRARY myfunc_lib
NAME "myfunc"
PARAMETERS (
strin,
strinINDICATOR,
strout,
strout MAXLEN,
strout INDICATOR,
RETURN);
C prototype: int myfunc(char strin, short strin_ind, char strout, int strout_maxlen, short strout_ind)
When I call it, the strout_maxlen take the pl/sql variable size value ( v_out CHAR(64) --> strout_maxlen == 64 ). The internal mechanism of call a external function take care of pass a 65 bytes buffer (to store the '\0') or if I know that I'll write 64 characters I must declare the pl/sql variable as CHAR(65)
Thanks!
Best regards
Edited by: user1488139 on 26/03/2012 12:29Artem,
It may be possible to do, but with ASP (active server page) code. Here is an example:
A WebI report runs and there are three columns of information that is generated (Report ID, Stat, and Currentdate). Within WebI you create a local variable that looks like this:
[VAR]
="http://www.myserver.com/Ext_Proc.asp?ID="+[Report ID]+"&Stat="+[Stat]+"&TimeTr="+[currentdate()+"&userinfo="+[Usr_Inf]
You would then place the variable VAR on your grid and tag it as read as HTML. If a user hovers over this column and executes the link it will fire off the Ext_Proc.asp code, receiving the arguments ID, Stat, and TimeTr with its values passed in. Within the Ext_Proc.asp code you can then in-turn fire that data to your database server (or whatever you want to do with it). If you need more info on what the ASP code might look like please reply.
Thanks,
John -
Doubt in calltransaction in ALV
Hi, i have doubt in calltransction in alv..In my report am using ALV grid display to display purchase order number , material docu number ..If i click on purchasing docu number it has to call transaction ME23N for the purchase order number that i have clicked and if i click material document number it has to call trainsaction MIGO for the corresponding material document number..Here i have done some coding plz correct me if iam wrong..
*& Report YCALLTRANSACTIONALV *
REPORT YCALLTRANSACTIONALV .
TYPE-POOLS: icon.
TYPE-POOLS: slis.
TABLES: vbak,vbap,vbep, makt,lips.
DATA: BEGIN OF gt_vbak OCCURS 0,
vbeln LIKE vbak-vbeln,
audat LIKE vbak-audat,
vdatu LIKE vbak-vdatu,
kunnr LIKE vbak-kunnr,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
kwmeng LIKE vbap-kwmeng,
END OF gt_vbak.
DATA: BEGIN OF gt_vbep OCCURS 0,
vbeln LIKE vbep-vbeln,
wadat LIKE vbep-wadat,
END OF gt_vbep.
DATA: BEGIN OF gt_lips OCCURS 0,
vbeln LIKE lips-vbeln,
posnr LIKE lips-posnr,
lfimg LIKE lips-lfimg,
vgbel LIKE lips-vgbel,
vgpos LIKE lips-vgpos,
END OF gt_lips.
DATA: BEGIN OF gt_makt OCCURS 0,
matnr LIKE makt-matnr,
maktx LIKE makt-maktx,
END OF gt_makt.
DATA: gv_tab TYPE slis_tabname VALUE 'GT_REPORT'.
DATA: BEGIN OF gt_report OCCURS 0,
vbeln LIKE vbak-vbeln,
posnr LIKE vbep-posnr,
matnr LIKE vbap-matnr,
maktx LIKE makt-maktx,
kwmeng LIKE vbap-kwmeng,
vdatu LIKE vbak-vdatu,
lfimg LIKE lips-lfimg,
wadat LIKE vbep-wadat,
vgbel LIKE lips-vgbel,
icon TYPE icon-id,
tabcolor TYPE lvc_t_scol,
END OF gt_report.
DATA: gt_fieldcat TYPE slis_t_fieldcat_ alv,
gs_fieldcat TYPE slis_fieldcat_ alv,
gs_layout TYPE slis_layout_ alv,
gt_events TYPE slis_t_event,
gs_events TYPE slis_alv_event,
repid LIKE sy-repid.
DATA: gt_lines TYPE TABLE OF tline WITH HEADER LINE,
gv_name LIKE thead-tdname,
gv_fld(40),gv_ fval(50).
DATA: BEGIN OF gt_outlines OCCURS 0,
text TYPE tdline,
END OF gt_outlines.
SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-006.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_cust RADIOBUTTON GROUP rad1 USER-COMMAND ch DEFAULT 'X'.
SELECTION-SCREEN COMMENT 5(20) text-001.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_date RADIOBUTTON GROUP rad1 .
SELECTION-SCREEN COMMENT 5(10) text-002 .
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-005.
SELECT-OPTIONS: s_sale FOR vbak-vbeln MODIF ID cus,
s_cust FOR vbak-kunnr MODIF ID cus.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-005.
SELECT-OPTIONS: s_sale1 FOR vbak-vbeln MODIF ID dat,
s_dat FOR vbak-audat MODIF ID dat.
SELECTION-SCREEN END OF BLOCK b2.
SELECTION-SCREEN END OF BLOCK b3.
SELECTION-SCREEN BEGIN OF BLOCK b4 WITH FRAME TITLE text-007.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_clas RADIOBUTTON GROUP rad2 ."USER-COMMAND ch DEFAULT'X'.
SELECTION-SCREEN COMMENT 5(20) text-003.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS: p_alv RADIOBUTTON GROUP rad2 ."USER-COMMAND ch DEFAULT'X'.
SELECTION-SCREEN COMMENT 5(20) text-004.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK b4.
AT SELECTION-SCREEN.
CHECK sy-ucomm = 'CH'.
AT SELECTION-SCREEN OUTPUT.
IF p_cust = 'X'.
LOOP AT SCREEN.
IF screen-group1 = 'DAT'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ELSE.
LOOP AT SCREEN.
IF screen-group1 = 'CUS'.
screen-active = 0.
ELSE.
screen-active = 1.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
ENDIF.
START-OF-SELECTION.
IF p_cust = 'X' .
CLEAR gt_vbak.
REFRESH gt_vbak.
SELECT avbeln aaudat avdatu akunnr bposnr bmatnr b~kwmeng
INTO TABLE gt_vbak
FROM vbak AS a INNER JOIN vbap AS b
ON avbeln = bvbeln
WHERE a~vbeln IN s_sale
AND a~kunnr IN s_cust.
ELSEIF p_date = 'X'.
CLEAR gt_vbak.
REFRESH gt_vbak.
SELECT avbeln aaudat avdatu akunnr bposnr bmatnr b~kwmeng
INTO TABLE gt_vbak
FROM vbak AS a INNER JOIN vbap AS b
ON avbeln = bvbeln
WHERE a~vbeln IN s_sale1
AND a~audat IN s_dat.
ENDIF.
PERFORM sel_data.
IF p_alv = 'X'.
PERFORM disp_data1.
ELSE.
PERFORM disp_data.
ENDIF.
AT LINE-SELECTION.
GET CURSOR FIELD gv_fld .
CASE gv_fld.
WHEN 'ICON_DISPLAY_ TEXT'.
PERFORM concate_text.
CLEAR gv_name.
CONCATENATE gt_report-vbeln gt_report-posnr INTO gv_name.
PERFORM read_text.
PERFORM write_text.
PERFORM disp_text.
WHEN 'GT_REPORT-VBELN' .
SET PARAMETER ID 'AUN' FIELD gt_report-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDCASE.
*& Form sel_data
FORM sel_data .
CLEAR gt_vbep.
REFRESH gt_vbep.
IF NOT gt_vbak[] IS INITIAL.
SELECT vbeln wadat FROM vbep INTO TABLE gt_vbep
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln.
CLEAR gt_lips.
REFRESH gt_lips.
SELECT vbeln posnr lfimg vgbel vgpos FROM lips INTO TABLE gt_lips
FOR ALL ENTRIES IN gt_vbak
WHERE vgbel = gt_vbak-vbeln
AND vgpos = gt_vbak-posnr.
CLEAR gt_makt.
REFRESH gt_makt.
SELECT matnr maktx FROM makt INTO TABLE gt_makt
FOR ALL ENTRIES IN gt_vbak
WHERE matnr = gt_vbak-matnr.
ENDIF.
REFRESH gt_report.
CLEAR gt_report.
LOOP AT gt_vbak.
gt_report-vbeln = gt_vbak-vbeln.
gt_report-vdatu = gt_vbak-vdatu.
gt_report-posnr = gt_vbak-posnr.
gt_report-matnr = gt_vbak-matnr.
gt_report-kwmeng = gt_vbak-kwmeng.
CLEAR gt_vbep.
READ TABLE gt_vbep WITH KEY vbeln = gt_vbak-vbeln.
gt_report-wadat = gt_vbep-wadat.
CLEAR gt_lips.
READ TABLE gt_lips WITH KEY vgbel = gt_vbak-vbeln
vgpos = gt_vbak-posnr.
gt_report-lfimg = gt_lips-lfimg.
gt_report-vgbel = gt_lips-vbeln.
CLEAR gt_makt.
READ TABLE gt_makt WITH KEY matnr = gt_vbak-matnr.
gt_report-maktx = gt_makt-maktx.
CLEAR gt_report-icon.
PERFORM concate_text.
CLEAR gv_name.
CONCATENATE gt_report-vbeln gt_report-posnr INTO gv_name.
PERFORM read_text.
IF gt_lines[] IS NOT INITIAL.
gt_report-icon = '@0P@'.
ENDIF.
APPEND gt_report.
ENDLOOP.
ENDFORM. " sel_data
*& Form disp_data
FORM disp_data .
WRITE:/(8) 'orderno.',
(8) 'lineno.',
(11) 'mat.',
(27) 'matdes.',
(10) 'ord.qty',
(12) 'req.del.',
(10) 'del.qty',
(10) 'gidate',
(10) 'delno.'.
ULINE.
LOOP AT gt_report.
WRITE:/(8) gt_report-vbeln COLOR 6 HOTSPOT,
(8) gt_report-posnr ,
(8) gt_report-matnr,
(25) gt_report-maktx,
(11) gt_report-kwmeng,
(15) gt_report-vdatu,
(7) gt_report-lfimg,
(10) gt_report-wadat,
(10) gt_report-vgbel.
PERFORM concate_text.
CLEAR gv_name.
CONCATENATE gt_report-vbeln gt_report-posnr INTO gv_name.
PERFORM read_text.
IF gt_lines[] IS NOT INITIAL.
WRITE:120 icon_display_ text AS ICON HOTSPOT.
HIDE: gt_report-vbeln, gt_report- posnr.
ENDIF.
ENDLOOP.
ENDFORM. " disp_data
*& Form disp_data1
FORM disp_data1 .
DATA :
ls_tabcolor TYPE lvc_s_scol.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'VBELN'.
gs_fieldcat- hotspot = 'X'.
gs_fieldcat- seltext_l = 'ORDERNO'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'POSNR'.
gs_fieldcat- seltext_l = 'LINENO'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'MATNR'.
gs_fieldcat- seltext_l = 'MATNO'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'MAKTX'.
gs_fieldcat- seltext_l = 'MATDESCR'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'KWMENG'.
gs_fieldcat- seltext_l = 'ORDERQTY'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'VDATU'.
gs_fieldcat- seltext_l = 'REQ.DEL.DAT' .
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'LFIMG'.
gs_fieldcat- seltext_l = 'QTY.DEL'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'WADAT'.
gs_fieldcat- seltext_l = 'ISS.DATE'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'VGBEL'.
gs_fieldcat- seltext_l = 'DOUC.NO'.
APPEND gs_fieldcat TO gt_fieldcat.
CLEAR gs_fieldcat.
gs_fieldcat- tabname = gv_tab.
gs_fieldcat- fieldname = 'ICON'.
gs_fieldcat- seltext_l = 'TEXT'.
gs_fieldcat- icon = 'X'.
gs_fieldcat- hotspot = 'X'.
APPEND gs_fieldcat TO gt_fieldcat.
gs_layout-coltab_ fieldname = 'TABCOLOR'.
gs_events-name = 'USER_COMMAND' .
gs_events-form = 'VAL'.
APPEND gs_events TO gt_events.
LOOP AT gt_report.
ls_tabcolor- fname = 'VBELN'.
ls_tabcolor- color-col = 4.
ls_tabcolor- color-int = 1.
ls_tabcolor- color-inv = 0.
INSERT ls_tabcolor INTO TABLE gt_report-tabcolor.
MODIFY gt_report.
ENDLOOP.
CALL FUNCTION 'REUSE_ALV_GRID_ DISPLAY'
EXPORTING
i_callback_program = sy-repid
is_layout = gs_layout
it_fieldcat = gt_fieldcat
it_events = gt_events
TABLES
t_outtab = gt_report.
ENDFORM. " disp_data1
*& Form READ_TEXT .
FORM read_text .
CLEAR gt_lines.
REFRESH gt_lines.
CALL FUNCTION 'READ_TEXT'
EXPORTING
id = '0002'
language = sy-langu
name = gv_name
object = 'VBBP'
TABLES
lines = gt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_ to_archive = 7
OTHERS = 8.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. " READ_TEXT
*& Form WRITE_TEXT.
FORM write_text.
REFRESH gt_outlines.
CLEAR gt_outlines.
CLEAR gt_lines.
LOOP AT gt_lines .
MOVE gt_lines-tdline TO gt_outlines- text .
APPEND gt_outlines.
ENDLOOP.
CLEAR gt_outlines.
ENDFORM. "WRITE_TEXT
*& Form VAL .
FORM val USING
user_command LIKE sy-ucomm
sel TYPE slis_selfield.
IF sel-fieldname = 'VBELN'.
SET PARAMETER ID 'AUN' FIELD gt_report-vbeln.
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
IF sel-fieldname = 'ICON'.
CLEAR gt_report.
READ TABLE gt_report INDEX sel-tabindex.
perform concate_text.
CLEAR gv_name.
CONCATENATE gt_report-vbeln gt_report-posnr INTO gv_name.
PERFORM read_text.
PERFORM write_text.
PERFORM disp_text1.
ENDIF.
ENDFORM. "val
*& Form disp_text
FORM disp_text .
CALL FUNCTION 'POPUP_WITH_ TABLE_DISPLAY_ OK'
EXPORTING
endpos_col = 50
endpos_row = 30
startpos_col = 20
startpos_row = 20
titletext = 'TEXT'
TABLES
valuetab = gt_outlines.
ENDFORM. " disp_text
*& Form disp_text1
FORM disp_text1 .
DATA: lt_fieldcat TYPE slis_t_fieldcat_ alv,
ls_fieldcat TYPE slis_fieldcat_ alv.
ls_fieldcat- fieldname = 'TEXT'.
ls_fieldcat- outputlen = 40.
ls_fieldcat- tabname = gt_outlines.
APPEND ls_fieldcat TO lt_fieldcat.
CALL FUNCTION 'REUSE_ALV_POPUP_ TO_SELECT'
EXPORTING
i_title = 'TEXT'
i_tabname = 'TLINE'
it_fieldcat = lt_fieldcat
i_callback_program = sy-repid
TABLES
t_outtab = gt_outlines.
ENDFORM. " disp_text1
*& Form concate_text
FORM concate_text .
CLEAR gv_name.
CONCATENATE gt_report-vbeln gt_report-posnr INTO gv_name.
PERFORM read_text.
ENDFORM. " concate_text
ThanksHello skk
Here is a sample report performing the required task using OO-means. I think you will agree that the OO-based approach is much simpler and easier to understand than the FM-based approach.
The screen '0100' has the following flow logic without any dynpro elements:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
*& Report ZUS_SDN_ALVGRID_EVENTS
REPORT zus_sdn_alvgrid_events.
DATA:
gd_okcode TYPE ui_func,
gt_fcat TYPE lvc_t_fcat,
go_docking TYPE REF TO cl_gui_docking_container,
go_grid1 TYPE REF TO cl_gui_alv_grid.
DATA:
gt_knb1 TYPE STANDARD TABLE OF knb1.
PARAMETERS:
p_bukrs TYPE bukrs DEFAULT '1000' OBLIGATORY.
* CLASS lcl_eventhandler DEFINITION
CLASS lcl_eventhandler DEFINITION.
PUBLIC SECTION.
CLASS-METHODS:
handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
IMPORTING
e_row_id
e_column_id
es_row_no
sender.
ENDCLASS. "lcl_eventhandler DEFINITION
* CLASS lcl_eventhandler IMPLEMENTATION
CLASS lcl_eventhandler IMPLEMENTATION.
METHOD handle_hotspot_click.
* define local data
DATA:
ls_knb1 TYPE knb1,
ls_col_id TYPE lvc_s_col.
READ TABLE gt_knb1 INTO ls_knb1 INDEX e_row_id-index.
CHECK ( ls_knb1-kunnr IS NOT INITIAL ).
CASE e_column_id-fieldname.
WHEN 'KUNNR'.
SET PARAMETER ID 'KUN' FIELD ls_knb1-kunnr.
SET PARAMETER ID 'BUK' FIELD ls_knb1-bukrs.
CALL TRANSACTION 'XD03' AND SKIP FIRST SCREEN.
WHEN 'ERNAM'.
* SET PARAMETER ID 'USR' FIELD ls_knb1-ernam.
* NOTE: no parameter id available, yet simply show the priciple
CALL TRANSACTION 'SU01' AND SKIP FIRST SCREEN.
WHEN OTHERS.
* do nothing
ENDCASE.
* Set active cell to field BUKRS otherwise the focus is still on
* field KUNNR which will always raise event HOTSPOT_CLICK
ls_col_id-fieldname = 'BUKRS'.
CALL METHOD go_grid1->set_current_cell_via_id
EXPORTING
is_row_id = e_row_id
is_column_id = ls_col_id.
ENDMETHOD. "handle_hotspot_click
ENDCLASS. "lcl_eventhandler IMPLEMENTATION
START-OF-SELECTION.
SELECT * FROM knb1 INTO TABLE gt_knb1
WHERE bukrs = p_bukrs.
* Create docking container
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Create ALV grid
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_docking
EXCEPTIONS
OTHERS = 5.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Set event handler
SET HANDLER:
lcl_eventhandler=>handle_hotspot_click FOR go_grid1.
* Build fieldcatalog and set hotspot for field KUNNR
PERFORM build_fieldcatalog_knb1.
* Display data
CALL METHOD go_grid1->set_table_for_first_display
CHANGING
it_outtab = gt_knb1
it_fieldcatalog = gt_fcat
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Link the docking container to the target dynpro
CALL METHOD go_docking->link
EXPORTING
repid = syst-repid
dynnr = '0100'
* CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* ok-code field = GD_OKCODE
CALL SCREEN '0100'.
END-OF-SELECTION.
*& Module STATUS_0100 OUTPUT
* text
MODULE status_0100 OUTPUT.
SET PF-STATUS 'STATUS_0100'.
* SET TITLEBAR 'xxx'.
ENDMODULE. " STATUS_0100 OUTPUT
*& Module USER_COMMAND_0100 INPUT
* text
MODULE user_command_0100 INPUT.
CASE gd_okcode.
WHEN 'BACK' OR
'END' OR
'CANC'.
SET SCREEN 0. LEAVE SCREEN.
WHEN OTHERS.
ENDCASE.
CLEAR: gd_okcode.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& Form BUILD_FIELDCATALOG_KNB1
* text
* --> p1 text
* <-- p2 text
FORM build_fieldcatalog_knb1 .
* define local data
DATA:
ls_fcat TYPE lvc_s_fcat.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
* I_BUFFER_ACTIVE =
i_structure_name = 'KNB1'
* I_CLIENT_NEVER_DISPLAY = 'X'
* I_BYPASSING_BUFFER =
* I_INTERNAL_TABNAME =
CHANGING
ct_fieldcat = gt_fcat
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.
LOOP AT gt_fcat INTO ls_fcat
WHERE ( fieldname = 'KUNNR' OR
fieldname = 'ERNAM' ).
ls_fcat-hotspot = abap_true.
MODIFY gt_fcat FROM ls_fcat.
ENDLOOP.
ENDFORM. " BUILD_FIELDCATALOG_KNB1
Regards
Uwe -
Doubt in user exit for transaction MM03
Hi Friends,
I have a doubt in user-exits. I have to add a button in MM03 which when clicked should open a particular URL taking material no. as the parameter.I have got the function for opening the URL, I just want to know which user exit should I be calling and in what way?Can anyone please give me step by step procedure as I am new in user exits.Thanks in advance....VA01 is a dialog program. The use of WRITE statements in dialog program is really not done.
You will need output your values to existing screen fields or create new ones in SE51.
Sounds like you might want to review dialog prog in general.
Also - the TABLES statement is for database tables. It has nothing to do with internal tables. -
Hi every one i have a small doubt in FI report that is i have to give the following output as per the user requirement i had added all the everything in this program i had given u the entire code the only problem is if make comment for the code of city and postal code the remaining everything is working properly and if i remove comment at CITY and POSTAL CODE there is some error can u find out that and help me please
* Ist-Einzelpostenanzeige EC-PCA *
* - direkte Aufruf *
* - Report Writer *
* - Recherche *
* 45b MIC: default values for poper and ryear depfr. fiscyear variant *
* 46a MIC Warning if too few selection parameters *
* 46a MIC: use up to 'whr_size' single values in select statement *
* 46a MIC: move'Initialization of Rep-Rep-Interface' to Initialization*
* 46a MIC: check only new auth-object *
* 46c MIC: add RMVCT and get more fields from RRI *
REPORT z_rcopca02_1 NO STANDARD PAGE HEADING MESSAGE-ID km
LINE-COUNT (2) LINE-SIZE 81.
* Typen ***************************************************************
*type-pools: kkblo.
TYPE-POOLS: slis, ecarc.
* DDIC-Tabellen *******************************************************
TABLES: glpca, "Einzelposten / Ist
glu1, "Übergabestruktur FI-SL-Anzeige
t000,
tka01,
sscrfields,
lfa1,
kna1,
bseg,
with_item.
* Variablen und int. Tabellen *****************************************
DATA: afield TYPE slis_fieldcat_alv,
sp_group TYPE slis_sp_group_alv,
t_listheader TYPE slis_t_listheader WITH HEADER LINE,
t_layout TYPE slis_layout_alv,
t_fieldcat TYPE slis_t_fieldcat_alv,
t_spec_groups TYPE slis_t_sp_group_alv,
event TYPE slis_alv_event,
t_events TYPE slis_t_event,
g_variant LIKE disvariant,
gx_variant LIKE disvariant,
g_exit(1) TYPE c,
g_save(1) TYPE c,
g_repid LIKE sy-repid,
msgtyp LIKE sy-msgty,
lt_dynpread LIKE dynpread OCCURS 1 WITH HEADER LINE,
ls_rpcak LIKE rpcak, "note 0310592
packsize TYPE i VALUE 1000,
text1(60) TYPE c,
text2(60) TYPE c,
oldkokrs LIKE glpca-kokrs,
oldracct LIKE glpca-racct.
DATA: whr_size TYPE i VALUE 50,"Maximum of single values per MIC 46a
"charact. in the where-clause of the select-statement
lines TYPE i, "number of lines of range table MIC 46a
cnt_rldnr TYPE i, "Zähler Anzahl selektierter Ledger
cnt_kokrs TYPE i, "Zähler Anzahl selektierter KoReKreise
cnt_poper TYPE i, "Zähler Anzahl selektierter Perioden
cnt_ryear TYPE i, "Zähler Anzahl selektierter GeschJahre
cnt_rvers TYPE i, "Zähler Anzahl selektierter Versionen
cnt_bukrs TYPE i, "Zähler Anzahl selektierter BuKreise
empge LIKE dkobr-empge,
ksl_curr LIKE tka01-pcacur,
hsl_curr LIKE t001-waers,
a_rec LIKE rstirec.
DATA: BEGIN OF dim_data.
INCLUDE STRUCTURE rgcdi. "data for dimensions
DATA: END OF dim_data.
DATA: BEGIN OF tab_fields OCCURS 80,
name LIKE dntab-fieldname, "fields in table i_glpca
END OF tab_fields.
DATA: BEGIN OF i_glpca OCCURS 0.
INCLUDE STRUCTURE rpca2.
DATA: racct_ktext LIKE rpcak-ktext,
psppp LIKE prps-posid,
name1 LIKE lfa1-name1,
adrnr like lfa1-adrnr,
stras like lfa1-stras,
c_name1 like kna1-name1,
v_rate like with_item-qsatz,
qsshb like bseg-qsshb,
qbshb like bseg-qbshb,
END OF i_glpca.
DATA: rw_subrc LIKE sy-subrc, "Flag: Report-Writer-Schnittstelle
re_subrc LIKE sy-subrc, "Flag: Recherche-Schnittstelle
subrc LIKE sy-subrc.
DATA: set_id LIKE sethier-setid, "Set-ID "RDI_SETS_4.0
set_class LIKE sethier-setclass, "Setklasse "RDI_SETS_4.0
set_sname LIKE sethier-shortname."Setname (24) "RDI_SETS_4.0
DATA: authorised(1),
s_message(1),
auth_dbcount LIKE sy-tabix,
* Hex-Konstanten für Minimum/Maximum-Werte
BEGIN OF hex00,
x1(12) TYPE c,
x2(12) TYPE c,
END OF hex00,
BEGIN OF hexff,
x1(12) TYPE c,
x2(12) TYPE c,
END OF hexff.
RANGES rclnt FOR glpca-rclnt.
FIELD-SYMBOLS: <glpca> LIKE LINE OF i_glpca,
<glpca_arc> TYPE ecarc_glpca_curr.
* Selektionsoptionen *************************************************
SELECT-OPTIONS:
rldnr FOR glpca-rldnr DEFAULT '8A' NO-DISPLAY,
rassc FOR glpca-rassc NO-DISPLAY,
* rrcty for glpca-rrcty default 0,
rrcty FOR glpca-rrcty,
rvers FOR glpca-rvers DEFAULT '000',
kokrs FOR glpca-kokrs MEMORY ID cac,
bukrs FOR glpca-rbukrs MEMORY ID buk,
* poper for glpca-poper default sy-datlo+4(2),
* ryear for glpca-ryear default sy-datlo,
poper FOR glpca-poper,
ryear FOR glpca-ryear,
prctr FOR glpca-rprctr MATCHCODE OBJECT prct,
pprctr FOR glpca-sprctr MATCHCODE OBJECT prct,
* RACCT FOR GLPCA-RACCT MATCHCODE OBJECT KART, "RD_P30K128304
racct FOR glpca-racct, "RD_P30K128304
drcrk FOR glpca-drcrk,
activ FOR glpca-activ,
rhoart FOR glpca-rhoart,
rfarea FOR glpca-rfarea,
stagr FOR glpca-stagr,
rtcur FOR glpca-rtcur,
runit FOR glpca-runit,
versa FOR glpca-versa NO-DISPLAY,
eprctr FOR glpca-eprctr NO-DISPLAY,
afabe FOR glpca-afabe NO-DISPLAY,
rmvct FOR glpca-rmvct NO-DISPLAY,
hrkft FOR glpca-hrkft NO-DISPLAY, "note 550972
sbukrs FOR glpca-sbukrs NO-DISPLAY, "note 550972
shoart FOR glpca-shoart NO-DISPLAY, "note 550972
sfarea FOR glpca-sfarea NO-DISPLAY, "note 550972
docct FOR glpca-docct,
docnr FOR glpca-docnr,
refdocct FOR glpca-refdocct,
refdocnr FOR glpca-refdocnr,
werks FOR glpca-werks,
repmatnr FOR glpca-rep_matnr MATCHCODE OBJECT pca_shlp_rep_matnr,
rscope FOR glpca-rscope.
PARAMETERS: no_rrint NO-DISPLAY DEFAULT ' '." skip "MICP40K066037
" report-report-interface
* display variant ">>MICP40K039857
SELECTION-SCREEN BEGIN OF BLOCK 0 WITH FRAME TITLE text-e01.
PARAMETERS: p_vari LIKE disvariant-variant.
SELECTION-SCREEN COMMENT 47(40) varname FOR FIELD p_vari.
SELECTION-SCREEN END OF BLOCK 0.
PARAMETERS log_grp(4) TYPE c NO-DISPLAY DEFAULT 'zKE5Z'.
"<<MICP40K039857
RANGES: v_racct FOR glpca-racct,
v_prctr FOR glpca-rprctr,
v_pprctr FOR glpca-sprctr.
* Tabelle mit Werten aus den Berichts-Set vom Report-Writer *
DATA BEGIN OF val_tab OCCURS 50.
INCLUDE STRUCTURE rgciv.
DATA END OF val_tab.
*************************************************** MICP30K166368
* feldkatalog und interface für bb-schnittstelle rw MICP30K166368
*************************************************** MICP30K166368
"MICP30K166368
DATA BEGIN OF bbs_fieldtab OCCURS 20. "MICP30K166368
INCLUDE STRUCTURE rstifields. "MICP30K166368
DATA END OF bbs_fieldtab. "MICP30K166368
* archiv
TYPE-POOLS: rsds.
TYPES: BEGIN OF ty_archive_objects,
object LIKE arch_obj-object,
END OF ty_archive_objects,
ty_t_archive_objects TYPE ty_archive_objects OCCURS 2.
CONSTANTS: lc_set TYPE c VALUE 'X',
lc_report TYPE progname VALUE 'ZKE5Z',
lc_reporttype TYPE reporttype VALUE 'TR'.
TABLES: admi_files.
SELECT-OPTIONS lr_files FOR admi_files-archiv_key NO-DISPLAY.
PARAMETER: read_db TYPE c DEFAULT 'X' NO-DISPLAY,
read_ar TYPE c NO-DISPLAY,
arc_obj LIKE arch_obj-object NO-DISPLAY,
read_as TYPE c DEFAULT 'X' NO-DISPLAY.
DATA : lt_arch_obj TYPE ty_t_archive_objects WITH HEADER LINE,
ls_selections TYPE rsds_frange,
lt_selections TYPE rsds_frange_t,
ls_selopt TYPE rsdsselopt,
lt_glpca_archiv TYPE ecarc_t_glpca_curr.
*********************************************************>>MICP40K039857
* INITIALIZATION
INITIALIZATION.
* Diverse Initialisierungen
PERFORM init_vars.
g_repid = sy-repid.
* Set default values for record type
rrcty-sign = 'I'.
rrcty-option = 'EQ'.
rrcty-low = '0'.
APPEND rrcty.
rrcty-low = '2'.
APPEND rrcty.
* Set default values for period and year (if kokrs or bukrs is known)
GET PARAMETER ID 'BUK' FIELD bukrs-low.
GET PARAMETER ID 'CAC' FIELD kokrs-low.
IF kokrs-low IS INITIAL "get contr. area from company code
AND NOT bukrs-low IS INITIAL.
CALL FUNCTION 'KOKRS_GET_FROM_BUKRS'
EXPORTING
i_bukrs = bukrs-low
IMPORTING
e_kokrs = kokrs-low
EXCEPTIONS
no_kokrs_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
CLEAR kokrs-low.
ENDIF.
ENDIF.
IF NOT kokrs-low IS INITIAL.
CALL FUNCTION 'K_KOKRS_READ' "get fiscal year variant
EXPORTING
kokrs = kokrs-low
IMPORTING
e_tka01 = tka01
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
CALL FUNCTION 'G_PERIOD_GET'
EXPORTING
date = sy-datlo
variant = tka01-lmona
IMPORTING
period = poper-low
year = ryear-low
EXCEPTIONS
ledger_not_assigned_to_company = 1
period_not_defined = 2
variant_not_defined = 3
OTHERS = 4.
IF sy-subrc = 0.
poper-sign = 'I'.
poper-option = 'EQ'.
APPEND poper.
ryear-sign = 'I'.
ryear-option = 'EQ'.
APPEND ryear.
ENDIF.
ENDIF.
ENDIF.
* Settings for display variants
g_save = 'A'. "Schalter Varianten benutz./allg. speichern
CLEAR g_variant.
g_variant-report = g_repid.
g_variant-log_group = log_grp.
g_variant-username = sy-uname.
* Get default variant
gx_variant = g_variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 2.
IF sy-subrc = 0.
p_vari = gx_variant-variant.
ENDIF.
* Set variant
IF p_vari IS INITIAL.
p_vari = '1SAP'.
MOVE p_vari TO gx_variant-variant.
CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'
EXPORTING
i_save = g_save
CHANGING
cs_variant = gx_variant
EXCEPTIONS
not_found = 1.
IF sy-subrc NE 0.
CLEAR p_vari.
CLEAR gx_variant-variant.
ENDIF.
ENDIF.
varname = gx_variant-text.
"<<MICP40K039857
* archiv
CALL FUNCTION 'KARL_DATA_INPUT_INIT'
EXPORTING
i_report = lc_report
i_reporttype = lc_reporttype
IMPORTING
e_xusedb = read_db
e_xusear = read_ar
e_archobj = arc_obj
e_infosys = read_as
TABLES
t_arch_sel = lr_files.
DATA: lt_excluding LIKE sy-ucomm OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'RS_SET_SELSCREEN_STATUS'
EXPORTING
p_status = 'SELSCREEN'
p_program = 'RCOPCA02'
TABLES
p_exclude = lt_excluding.
* Initialisieren der Bericht/Bericht-Schnittstellen *
DATA: ld_no_rrint TYPE boole_d. "note 490484 begin
IMPORT rri = ld_no_rrint FROM MEMORY ID 'RCOPCA02_NO_RRI'.
IF ld_no_rrint = 'X'.
FREE MEMORY ID 'RCOPCA02_NO_RRI'.
ELSE. "note 490484 end
CALL FUNCTION 'G_REPORT_INTERFACE_INIT' "Report-Writer?
EXPORTING "MICP30K166368
table = 'GLPCT' "MICP30K166368
IMPORTING
subrc = rw_subrc "MICP30K166368
TABLES "MICP30K166368
it_fieldr = bbs_fieldtab. "MICP30K166368
CALL FUNCTION 'RSTI_APPL_STACK_POP'"oder Recherche?
IMPORTING
i_rec = a_rec
EXCEPTIONS
appl_stack_not_initialized = 1.
re_subrc = sy-subrc.
IF re_subrc = 0.
* check Receiver is this report
IF NOT ( ( a_rec-rtool = 'RT' AND a_rec-ronam = 'Z_RCOPCA02_1' )
OR ( a_rec-rtool = 'TR' AND a_rec-ronam = 'ZKE5Z' ) ) .
re_subrc = 2.
ENDIF.
ENDIF.
ENDIF.
* AT SELCTION-SCREEN on value request**********************************
*at selection-screen on value-request for racct-low. "RD "4.6a
* "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
* importing "RD "4.6a
* e_racct = racct-low. "RD "4.6a
* "RD "4.6a
* "RD "4.6a
*at selection-screen on value-request for racct-high. "RD "4.6a
* "RD "4.6a
* call function 'K_RACCT_VALUE_REQUEST' "RD "4.6a
* importing "RD "4.6a
* e_racct = racct-high. "RD "4.6a
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari. "MICP40K039857
PERFORM f4_for_variant. "MICP40K039857
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-low. "RD "4.6a
* begin of insertion note 522715
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
* end of insertion note 522715
CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
EXPORTING "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
IMPORTING "RD "4.6a
e_rpmax = poper-low "RD "4.6a
* begin of insertion note 522715
EXCEPTIONS
table_empty = 1.
ENDIF.
* end of insertion note 522715
AT SELECTION-SCREEN ON VALUE-REQUEST FOR poper-high. "RD "4.6a
* begin of insertion note 522715
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc = 0.
* end of insertion note 522715
CALL FUNCTION 'ECPCA_RPMAX_VALUE_REQUEST' "RD "4.6a
EXPORTING "RD "4.6a
i_kokrs = kokrs-low "RD "4.6a
i_ryear = ryear-low "RD "4.6a
IMPORTING "RD "4.6a
e_rpmax = poper-high "RD "4.6a
* begin of insertion note 522715
EXCEPTIONS
table_empty = 1.
ENDIF.
* end of insertion note 522715
* AT SELCTION-SCREEN ***************************************************
AT SELECTION-SCREEN.
PERFORM pai_of_selection_screen.
* begin of insertion note 522715
IF NOT kokrs-low IS INITIAL.
CALL FUNCTION 'K_KOKRS_READ'
EXPORTING
kokrs = kokrs-low
EXCEPTIONS
not_found = 1
not_found_gjahr = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE e101(ki) WITH kokrs-low.
ENDIF.
ENDIF.
* end of insertion note 522715
* archiv
IF sy-ucomm = 'FC01' OR sy-ucomm = 'UCDS'
OR sy-ucomm = 'ONLI' AND read_ar = 'X'
AND read_as IS INITIAL AND lr_files[] IS INITIAL.
IF lt_arch_obj[] IS INITIAL.
lt_arch_obj-object = 'PCA_OBJECT'. APPEND lt_arch_obj.
lt_arch_obj-object = 'EC_PCA_ITM'. APPEND lt_arch_obj.
ENDIF.
CALL FUNCTION 'KARL_DATA_INPUT_SELECT'
EXPORTING
i_db_and_arc = lc_set
i_infosys_possible = lc_set
i_object_fixed = 'V'
i_documentation = 'KARL_DATA_INPUT_SEL_KE5YZ'
i_report = lc_report
i_reporttype = lc_reporttype
TABLES
t_objects = lt_arch_obj
t_arch_sel = lr_files
CHANGING
c_xusedb = read_db
c_xusear = read_ar
c_archobj = arc_obj
c_infosys = read_as.
ENDIF.
* START-OF-SELECTION **************************************************
START-OF-SELECTION.
* Default-Werte löschen, falls Aufruf über Recherche
* oder Report-Writer erfolgt ist
IF no_rrint IS INITIAL AND ld_no_rrint IS INITIAL. "note 490484
IF rw_subrc EQ 0 OR re_subrc EQ 0.
REFRESH: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
CLEAR: rldnr, rrcty, rvers, kokrs, bukrs, poper, ryear,
racct, prctr, pprctr, drcrk, activ, rhoart, rfarea,
versa, afabe, eprctr,
v_racct, v_prctr, v_pprctr.
IF NOT read_as IS INITIAL. "note 625581
CLEAR: lr_files, lr_files[]. "note 625581
ENDIF. "note 625581
ENDIF.
* Parameter einlesen über Report-Writer-Schnittstelle *
IF rw_subrc EQ 0.
PERFORM rw_get_parameters.
* oder Parameter einlesen über Recherche-Schnittstelle *
ELSEIF re_subrc EQ 0.
PERFORM re_get_parameters.
ENDIF.
ENDIF.
IF read_db = 'X'. " read from DB (archiv)
* Bewegungsdaten einlesen und puffern...................................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten selektieren'(p10).
* Use dirty trick to mislead DB-optimizer
CALL FUNCTION 'DB_DO_NOT_USE_CLIENT_INDEX'
EXPORTING
value = sy-mandt
TABLES
mandttab = rclnt.
SELECT (tab_fields) FROM glpca
CLIENT SPECIFIED
PACKAGE SIZE packsize
APPENDING CORRESPONDING FIELDS OF TABLE i_glpca
WHERE rldnr IN rldnr
AND rrcty IN rrcty
AND rvers IN rvers
AND kokrs IN kokrs
AND rbukrs IN bukrs
AND ryear IN ryear
AND rassc IN rassc
AND hrkft IN hrkft "note 550972
AND sbukrs IN sbukrs "note 550972
AND shoart IN shoart "note 550972
AND sfarea IN sfarea "note 550972
AND racct IN racct
AND rprctr IN prctr
AND sprctr IN pprctr
AND poper IN poper
AND drcrk IN drcrk
AND activ IN activ
AND rhoart IN rhoart
AND rfarea IN rfarea
AND versa IN versa
AND eprctr IN eprctr
AND afabe IN afabe
AND rmvct IN rmvct
AND docct IN docct
AND docnr IN docnr
AND stagr IN stagr
AND rtcur IN rtcur
AND runit IN runit
AND refdocct IN refdocct
AND refdocnr IN refdocnr
AND werks IN werks
AND rep_matnr IN repmatnr "RDIP40K020663
AND rscope IN rscope "RDIP40K020663
AND rclnt IN rclnt. "dirty trick to mislead DB-optimizer
IF sy-dbcnt > 1.
text1 = sy-dbcnt.
CONDENSE text1.
CONCATENATE text1 text-m01 INTO text2 SEPARATED BY space.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = text2. " ... Datensätze gelesen
ENDIF.
ENDSELECT.
* Entfernt nicht zugehörige Einträge....................................
LOOP AT i_glpca WHERE ( NOT rprctr IN v_prctr )
or ( not SPRCTR in v_pprctr )
OR ( NOT racct IN v_racct ).
DELETE i_glpca.
ENDLOOP.
ENDIF.
*archiv
IF read_ar = 'X' AND NOT
( read_as IS INITIAL AND lr_files[] IS INITIAL ).
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Lesen im Archiv'(p12).
DEFINE fill_lt_selections.
if not &2[] is initial.
clear ls_selections.
move &1 to ls_selections-fieldname.
loop at &2.
clear ls_selopt.
move-corresponding &2 to ls_selopt.
append ls_selopt to ls_selections-selopt_t.
endloop.
append ls_selections to lt_selections.
endif.
END-OF-DEFINITION.
fill_lt_selections 'RLDNR' rldnr.
fill_lt_selections 'RRCTY' rrcty.
fill_lt_selections 'RVERS' rvers.
fill_lt_selections 'KOKRS' kokrs.
fill_lt_selections 'RBUKRS' bukrs.
fill_lt_selections 'POPER' poper.
fill_lt_selections 'RYEAR' ryear.
fill_lt_selections 'RPRCTR' prctr.
fill_lt_selections 'SPRCTR' pprctr.
fill_lt_selections 'RACCT' racct.
fill_lt_selections 'DRCRK' drcrk.
fill_lt_selections 'ACTIV' activ.
fill_lt_selections 'RHOART' rhoart.
fill_lt_selections 'RFAREA' rfarea. "note 401961
fill_lt_selections 'STAGR' stagr.
fill_lt_selections 'RTCUR' rtcur.
fill_lt_selections 'RUNIT' runit.
fill_lt_selections 'VERSA' versa.
fill_lt_selections 'EPRCTR' eprctr.
fill_lt_selections 'AFABE' afabe.
fill_lt_selections 'RMVCT' rmvct.
fill_lt_selections 'DOCCT' docct.
fill_lt_selections 'DOCNR' docnr.
fill_lt_selections 'REFDOCCT' refdocct.
fill_lt_selections 'REFDOCNR' refdocnr.
fill_lt_selections 'WERKS' werks.
fill_lt_selections 'REP_MATNR' repmatnr.
fill_lt_selections 'RSCOPE' rscope.
fill_lt_selections 'HRKFT' hrkft. "note 550972
fill_lt_selections 'SBUKRS' sbukrs. "note 550972
fill_lt_selections 'SHOART' shoart. "note 550972
fill_lt_selections 'SFAREA' sfarea. "note 550972
CALL FUNCTION 'EC_PCA_SELECT_FROM_ARCHIVE'
EXPORTING
i_selections = lt_selections[]
i_files_sequential_read = lr_files[]
IMPORTING
e_glpca = lt_glpca_archiv[]
EXCEPTIONS
no_infostruc_found = 1.
IF sy-subrc = 1.
MESSAGE ID sy-msgid TYPE 'I' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CLEAR i_glpca.
LOOP AT lt_glpca_archiv ASSIGNING <glpca_arc>
WHERE ( rprctr IN v_prctr )
and ( sprctr IN v_pprctr )
AND ( racct IN v_racct ).
MOVE-CORRESPONDING <glpca_arc> TO i_glpca.
APPEND i_glpca.
ENDLOOP.
* delete duplicate records note 639647
IF NOT read_db IS INITIAL AND NOT lt_glpca_archiv[] IS INITIAL.
SORT i_glpca.
DELETE ADJACENT DUPLICATES FROM i_glpca.
ENDIF.
ENDIF.
IF i_glpca[] IS INITIAL. "Info,nichts gefunden
MESSAGE s000.
EXIT.
ENDIF.
* get texts for accounts ...............................................
SORT i_glpca BY kokrs racct.
LOOP AT i_glpca ASSIGNING <glpca>.
IF <glpca>-kokrs <> oldkokrs OR <glpca>-racct <> oldracct. "AT NEW
CLEAR ls_rpcak.
oldkokrs = <glpca>-kokrs.
oldracct = <glpca>-racct.
CALL FUNCTION 'K_RACCT_SINGLE_CHECK' "note 0310592
EXPORTING
i_kokrs = <glpca>-kokrs
i_racct = <glpca>-racct
i_spras = sy-langu
i_textflag = 'X'
IMPORTING
e_rpcak = ls_rpcak
EXCEPTIONS
not_valid = 1
OTHERS = 2.
IF sy-subrc NE 0.
CLEAR ls_rpcak.
ENDIF.
ENDIF. "ENDAT
<glpca>-racct_ktext = ls_rpcak-ktext.
* Fetching vendor name from vendor number
*break-point.
SELECT SINGLE * FROM LFA1
WHERE LIFNR = <glpca>-LIFNR AND
SPRAS = SY-LANGU.
IF SY-SUBRC eq 0.
<glpca>-name1 = lfa1-name1.
<glpca>-adrnr = lfa1-adrnr.
<glpca>-stras = lfa1-stras.
ENDIF.
* Fetching customer name from customer number
SELECT SINGLE * FROM kna1
WHERE KUNNR = <glpca>-KUNNR.
IF SY-SUBRC eq 0.
<glpca>-c_name1 = kna1-name1.
ENDIF.
SELECT SINGLE * FROM bseg
WHERE BUKRS EQ <glpca>-rbukrs AND
BELNR EQ <glpca>-refdocnr AND
GJAHR EQ <glpca>-ryear AND
KTOSL EQ 'WIT' AND
BUZEI EQ <glpca>-refdocln.
IF SY-SUBRC eq 0.
SELECT SINGLE * FROM WITH_ITEM
WHERE BUKRS EQ <glpca>-rbukrs AND
BELNR EQ <glpca>-refdocnr AND
GJAHR EQ <glpca>-ryear." AND
* BUZEI EQ <glpca>-refdocln AND
* WITHT EQ BSEG-QSSKZ.
IF SY-SUBRC eq 0.
<glpca>-v_rate = with_item-qsatz.
<glpca>-qsshb = with_item-WT_QSSHB.
<glpca>-qbshb = with_item-WT_QBSHB.
ENDIF.
ENDIF
ENDLOOP.
* Liste mit Einzelposten geeignet sortieren.............................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten sortieren'(p30).
* if show_ref is initial.
* sort i_glpca by rldnr ryear rbukrs rrcty rvers
* docct docnr docln.
* else.
SORT i_glpca BY rldnr kokrs ryear rbukrs rrcty rvers poper
refdocct refdocnr refdocln.
* endif.
* Berechtigungsprüfung und gemerkte Belege aufbereiten .................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Berechtigungsprüfungen'(p40).
CLEAR: cnt_rldnr, cnt_kokrs, cnt_ryear, cnt_rvers, cnt_bukrs.
LOOP AT i_glpca ASSIGNING <glpca>.
* Berechtigungscheck
PERFORM check_repo_authority CHANGING authorised.
IF authorised IS INITIAL.
DELETE i_glpca.
s_message = 'X'.
* zählen der Sätze ohne Berechtigung
auth_dbcount = auth_dbcount + 1.
ELSE. "Weitere Bearbeitung nur für berechtigte Belege...
* Zusätzlich merken der Anzahl der Ausprägungen
* bestimmter Dimensionen
ON CHANGE OF <glpca>-rldnr.
ADD 1 TO cnt_rldnr.
ENDON.
ON CHANGE OF <glpca>-kokrs.
ADD 1 TO cnt_kokrs.
CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
EXPORTING
ct = '90'
kokrs = <glpca>-kokrs
rldnr = <glpca>-rldnr
IMPORTING
currency = ksl_curr.
ENDON.
ON CHANGE OF <glpca>-poper.
ADD 1 TO cnt_poper.
ENDON.
ON CHANGE OF <glpca>-ryear.
ADD 1 TO cnt_ryear.
ENDON.
ON CHANGE OF <glpca>-rvers.
ADD 1 TO cnt_rvers.
ENDON.
ON CHANGE OF <glpca>-rbukrs.
ADD 1 TO cnt_bukrs.
CALL FUNCTION 'G_CURRENCY_FROM_CT_GET'
EXPORTING
bukrs = <glpca>-rbukrs
ct = '10'
IMPORTING
currency = hsl_curr.
ENDON.
* externe Immobilienbezeichnung "ww/kb
* on change of i_glpca-imkey.
IF ( NOT <glpca>-imkey IS INITIAL ).
CALL FUNCTION 'REMD_IMKEY_TO_EMPGE'
EXPORTING
i_imkey = <glpca>-imkey
i_dabrz = <glpca>-dabrz
* I_length = 20
IMPORTING
e_empge = <glpca>-empge
e_konty = <glpca>-konty
EXCEPTIONS
not_found = 1.
IF sy-subrc NE 0.
CLEAR <glpca>-empge.
CLEAR <glpca>-konty.
ENDIF.
* CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
ENDIF.
* endon.
* on change of i_glpca-dabrz.
* call function 'REMD_IMKEY_TO_EMPGE'
* exporting
* i_imkey = i_glpca-imkey
* i_dabrz = i_glpca-dabrz
** i_length = 20
* importing
* e_empge = i_glpca-empge
* e_konty = i_glpca-konty.
** CONCATENATE I_GLPCA-KONTY I_GLPCA-EMPGE INTO I_GLPCA-IMBEZ.
* endon.
* Konvertierungsproblem mit PSP-Nummer bereinigen
IF NOT <glpca>-ps_psp_pnr IS INITIAL.
IF <glpca>-ps_psp_pnr EQ space.
CLEAR <glpca>-ps_psp_pnr.
ELSE.
WRITE <glpca>-ps_psp_pnr TO <glpca>-psppp.
CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
EXPORTING
input = <glpca>-psppp
IMPORTING
output = <glpca>-psppp.
ENDIF.
ENDIF.
* Währungen in Hilfsfeldern speichern
IF <glpca>-hsl_curr IS INITIAL.
<glpca>-hsl_curr = hsl_curr.
ENDIF.
IF <glpca>-ksl_curr IS INITIAL.
<glpca>-ksl_curr = ksl_curr.
ENDIF.
* modify i_glpca.
ENDIF.
ENDLOOP.
* Nachricht, wenn nicht alle Einzelposten angezeigt werden.
IF NOT s_message IS INITIAL.
MESSAGE s407(km) WITH auth_dbcount.
ENDIF.
* EP ausgeben...........................................................
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Einzelposten ausgeben'(p50).
t_layout-detail_initial_lines = 'X'.
t_layout-detail_popup = 'X'.
t_layout-f2code = 'PIC1'. "MICP40K039857
t_layout-get_selinfos = 'X'.
t_layout-group_change_edit = 'X'. "note 576149
PERFORM fill_listheader.
PERFORM fieldcat_fill.
PERFORM spec_groups_fill.
PERFORM events_fill. "MICP40K039857
">>MICP40K039857
* call function 'K_KKB_LIST_DISPLAY'
* exporting
* i_callback_program = 'Z_RCOPCA02_1
* i_callback_user_command = 'USR_CMD'
* i_callback_top_of_page = 'TOP_OF_PAGE'
** I_CALLBACK_END_OF_PAGE =
** I_CALLBACK_END_OF_LIST =
* i_callback_pf_status_set = 'SET_PF_STATUS'
** I_CALLBACK_LAYOUT_SAVE =
** I_CALLBACK_FIELDCAT_SAVE =
* i_tabname = 'I_GLPCA'
* is_layout = t_layout
* it_fieldcat = t_fieldcat
** I_FCTYPE = 'R'
** IT_EXCLUDING =
* it_special_groups = t_spec_groups
** IT_SORT =
** IS_SEL_HIDE =
** I_SCREEN_START_COLUMN = 0
** I_SCREEN_START_LINE = 0
** I_SCREEN_END_COLUMN = 0
** I_SCREEN_END_LINE = 0
* tables
* t_outtab = i_glpca
* exceptions
* others = 1.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
* CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
i_callback_program = 'Z_RCOPCA02_1'
i_callback_pf_status_set = 'SET_PF_STATUS'
i_callback_user_command = 'USR_CMD'
i_structure_name = 'I_GLPCA'
is_layout = t_layout
it_fieldcat = t_fieldcat
* IT_EXCLUDING =
it_special_groups = t_spec_groups
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
i_default = 'X'
i_save = g_save
is_variant = g_variant
it_events = t_events
* IT_EVENT_EXIT =
* IS_PRINT =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = i_glpca
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.
"<<MICP40K039857
CLEAR i_glpca.
*& Form CHECK_REPO_AUTHORITY
* Check only new auth-object K_PCA *
* --> p1 text
* <-- p2 text
FORM check_repo_authority CHANGING authorized LIKE authorised.
* fill structure for userexit in K_PCA_RESP_AUTHORITY_CHECK
DATA: auth LIKE pca_i_auth. "46a MIC check K_PCA and G_GLTP
auth-bukrs = <glpca>-rbukrs.
auth-rldnr = <glpca>-rldnr.
auth-rvers = <glpca>-rvers.
auth-rrcty = <glpca>-rrcty.
CLEAR authorized.
* check PrCtr/account/activity
CALL FUNCTION 'K_PCA_RESP_AUTHORITY_CHECK'
EXPORTING
i_kokrs = <glpca>-kokrs
i_prctr = <glpca>-rprctr
i_kstar = <glpca>-racct
i_vorgn = 'REPP'
i_actvt = '28'
i_auth = auth
i_no_dialog_message = 'X'
EXCEPTIONS
no_authority = 1
data_missing = 2
OTHERS = 3.
IF sy-subrc = 0. "ok
* check ledger/version/record type
CALL FUNCTION 'PCA_G_GLTP_AUTH_CHECK'
EXPORTING
rldnr = <glpca>-rldnr
rvers = <glpca>-rvers
rrcty = <glpca>-rrcty
EXCEPTIONS
no_authorisation = 1
OTHERS = 2.
IF sy-subrc = 0. "ok, User is authorized
authorized = 'X'.
ENDIF.
ENDIF.
ENDFORM. " CHECK_REPO_AUTHORITY
*& Form INIT_VARS
* Initialisieren diverser Hilfsvariablen und -tabellen *
FORM init_vars.
DATA BEGIN OF nametab OCCURS 80. "Tabelle mit Feldern aus der RPCA2
INCLUDE STRUCTURE dntab.
DATA END OF nametab.
SELECT SINGLE * FROM t000
CLIENT SPECIFIED
WHERE mandt = sy-mandt.
REFRESH nametab.
CALL FUNCTION 'NAMETAB_GET'
EXPORTING
only = 'T'
tabname = 'RPCA2'
TABLES
nametab = nametab.
* Übernehmen der Feldnamen, die auch in der GLPCA
* vorkommen.
LOOP AT nametab WHERE fieldname NE 'KSL_CURR'
AND fieldname NE 'HSL_CURR'
AND fieldname NE 'EMPGE' "ww/kb
AND fieldname NE 'KONTY'. "ww/kb
MOVE nametab-fieldname TO tab_fields-name.
APPEND tab_fields.
ENDLOOP.
* fill Fields of receiver for BBS "MIC46C
CALL FUNCTION 'RSTI_REPORT_FIELDS_FIND'
EXPORTING
e_repid = 'Z_RCOPCA02_1'
e_type = 'R'
TABLES
it_fields = bbs_fieldtab.
* correct fieldnames
READ TABLE bbs_fieldtab WITH KEY rfield = 'PRCTR'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'RPRCTR'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
READ TABLE bbs_fieldtab WITH KEY rfield = 'PPRCTR'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'SPRCTR'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
READ TABLE bbs_fieldtab WITH KEY rfield = 'BUKRS'.
IF sy-subrc = 0.
bbs_fieldtab-rfield = 'RBUKRS'.
MODIFY bbs_fieldtab INDEX sy-tabix.
ENDIF.
* Unicode
CLASS cl_abap_char_utilities DEFINITION LOAD.
CLEAR hex00 WITH cl_abap_char_utilities=>minchar.
CLEAR hexff WITH cl_abap_char_utilities=>maxchar.
ENDFORM. " INIT_VARS
* FORM FILL_LISTHEADER *
* List-Header in Abhängigkeit der selektierten Daten *
FORM fill_listheader.
READ TABLE i_glpca INDEX 1.
IF sy-subrc NE 0.
EXIT.
ENDIF.
t_listheader-typ = 'S'.
t_listheader-key = 'Ledger '(h01).
IF cnt_rldnr <= 1.
t_listheader-info = i_glpca-rldnr.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Kostenrechnungskreis'(h02).
IF cnt_kokrs <= 1.
t_listheader-info = i_glpca-kokrs.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungskreis '(h03).
IF cnt_bukrs <= 1.
t_listheader-info = i_glpca-rbukrs.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
t_listheader-typ = 'S'.
t_listheader-key = 'Buchungsperiode '(h04).
IF cnt_poper <= 1.
t_listheader-info = i_glpca-poper.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
IF cnt_ryear <= 1.
t_listheader-typ = 'S'.
t_listheader-key = 'Geschäftsjahr '(h05).
t_listheader-info = i_glpca-ryear.
APPEND t_listheader.
ENDIF.
t_listheader-typ = 'S'.
t_listheader-key = 'Version '(h06).
IF cnt_rvers <= 1.
t_listheader-info = i_glpca-rvers.
ELSE.
t_listheader-info = '*'.
ENDIF.
APPEND t_listheader.
ENDFORM. "fill_listheader
*& Form FIELDCAT_FILL
*& Aufbau des Feldkataloges für den K_KKB_LIST_DISPLAY, *
*& bzw REUSE_ALV_LIST_DISPLAY, *
*& weitere Infos enthält die FktBaustein-Doku *
FORM fieldcat_fill.
DATA: i TYPE i VALUE 0.
REFRESH t_fieldcat.
* Ledger
* if cnt_rldnr > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RLDNR'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
* afield-key = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Satzart
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RRCTY'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Version
* if cnt_rvers > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RVERS'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Periode
* if cnt_poper > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'POPER'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Geschäftsjahr
* if cnt_ryear > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RYEAR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* endif.
* Referenzbelegtyp
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCCT'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Typ'(t01).
afield-seltext_m = 'Belegtyp'(t02).
afield-seltext_l = 'Ref.Belegtyp'(t03).
afield-outputlen = 3. "Platz für die Sterne der Zwischensummen
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Referenzbelegnummer
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCNR'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Refbeleg'(t04).
afield-seltext_m = 'Refbelegnr'(t05).
afield-seltext_l = 'Ref.Belegnummer'(t06).
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Referenzbelegzeile
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'REFDOCLN'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '2'.
afield-seltext_s = 'Zeile'(t07).
afield-seltext_m = 'Belegzeile'(t08).
afield-seltext_l = 'Ref.Belegzeile'(t09).
* if not show_ref is initial.
afield-key = 'X'.
* else.
* afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegtyp PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCCT'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
afield-outputlen = 3. "Platz für die Sterne der Zwischensummen
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegnummer PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCNR'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Belegzeile PCA
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DOCLN'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-sp_group = '1'.
* if show_ref is initial.
afield-key = 'X'.
* else.
afield-no_out = 'X'.
* endif.
APPEND afield TO t_fieldcat.
* Kostenrechnungskreis
* if cnt_kokrs > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KOKRS'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* endif.
* Buchungskreis
* if cnt_bukrs > 1.
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RBUKRS'.
afield-ref_tabname = 'GLPCA'.
afield-key_sel = 'X'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-seltext_s = 'BuKrs'(b01).
afield-seltext_m = 'BuKrs'(b02).
afield-seltext_l = 'Empfänger-BuKrs'(b03).
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* endif.
* Profit Center
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Eliminierungs-Profit-Center
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'EPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Sender-Profit-Center
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'SPRCTR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Konto
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RACCT'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
ADD 1 TO i.
* Kontentext
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RACCT_KTEXT'.
afield-no_sum = 'X'.
afield-ref_tabname = 'RPCAK'.
afield-ref_fieldname = 'KTEXT'.
afield-seltext_s = 'Kont-txt.'(m11).
afield-seltext_m = 'Kontentext'(m12).
afield-seltext_l = 'Kontentext'(m13).
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
ADD 1 TO i.
* Statistische Kennzahl
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'STAGR'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '12'.
APPEND afield TO t_fieldcat.
* Soll/Haben-Kennzeichen
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'DRCRK'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Wert in Profit-Center-Währung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KSL'.
afield-do_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
* AFIELD-SELTEXT_S = 'PrCtr-Hauswhr.'(P01).
* AFIELD-SELTEXT_M = 'PrCtr-Hauswährung'(P02).
* AFIELD-SELTEXT_L = 'Profit-Center-Hauswährung'(P03).
afield-cfieldname = 'KSL_CURR'.
afield-sp_group = '3'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel KSL
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KSL_CURR'.
afield-ref_tabname = 'TKA01'.
afield-ref_fieldname = 'PCACUR'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-seltext_s = 'PrCtrHW'(t10).
afield-seltext_m = 'Währungsschl. PrCtrHW'(t11).
afield-seltext_l = 'Währungsschl. PrCtrHW'(t12).
afield-sp_group = '3'.
APPEND afield TO t_fieldcat.
* Betrag in Hauswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'HSL'.
afield-do_sum = 'X'.
afield-no_out = 'X '.
afield-ref_tabname = 'GLPCA'.
afield-cfieldname = 'HSL_CURR'.
afield-sp_group = '4'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel Hauswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'HSL_CURR'.
afield-ref_tabname = 'T001'.
afield-ref_fieldname = 'WAERS'.
afield-no_sum = 'X'.
afield-no_out = 'X '.
afield-seltext_s = 'BukrW.'(t13).
afield-seltext_m = 'Währungsschl. BukrW'(t14).
afield-seltext_l = 'Währungsschl. BukrW'(t15).
afield-sp_group = '4'.
APPEND afield TO t_fieldcat.
* Betrag in Transaktionswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'TSL'.
afield-no_out = 'X '.
afield-ref_tabname = 'GLPCA'.
afield-cfieldname = 'RTCUR'.
afield-sp_group = '5'.
APPEND afield TO t_fieldcat.
* Währungsschlüssel Transaktionswährung
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RTCUR'.
afield-ref_tabname = 'GLPCA'.
afield-ref_fieldname = 'RTCUR'.
afield-no_sum = 'X'.
afield-no_out = 'X '.
afield-seltext_s = 'TW '(t16).
afield-seltext_m = 'Währungsschl. TW'(t17).
afield-seltext_l = 'Währungsschl. TW'(t18).
afield-sp_group = '5'.
APPEND afield TO t_fieldcat.
* Menge
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'MSL'.
afield-qfieldname = 'RUNIT'.
afield-no_out = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '6'.
APPEND afield TO t_fieldcat.
* Mengeneinheit
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RUNIT'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-sp_group = '6'.
APPEND afield TO t_fieldcat.
* Herkunftsobjektart
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RHOART'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Funktionsbereich
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RFAREA'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '7'.
APPEND afield TO t_fieldcat.
* Objektklasse
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'RSCOPE'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* G/L-Vorgang
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'ACTIV'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Vorg.'(t31).
afield-seltext_m = 'Vorgang'(t32).
afield-seltext_l = 'Betriebswirt. Vorgang'(t33).
afield-sp_group = '1'.
APPEND afield TO t_fieldcat.
* Geschäftsbereich
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'GSBER'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Kostenstelle
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KOSTL'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '9'.
APPEND afield TO t_fieldcat.
* CO-Auftrag
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'AUFNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-sp_group = '9'.
APPEND afield TO t_fieldcat.
* Projekt
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'PSPPP'.
afield-no_sum = 'X'.
afield-no_out = 'X'.
afield-sp_group = '9'.
afield-ref_tabname = 'PRPS'.
afield-ref_fieldname = 'POSID'.
APPEND afield TO t_fieldcat.
* Debitor
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'KUNNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Debitor'(d01).
afield-seltext_m = text-d01.
afield-seltext_l = text-d01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Customer Name
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'C_NAME1'.
afield-no_sum = 'X'.
afield-ref_tabname = 'KNA1'.
afield-no_out = 'X'.
afield-seltext_s = 'Customer Name'.
afield-seltext_m = 'Cust Name'.
afield-seltext_l = 'C Name'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Kreditor
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'LIFNR'.
afield-no_sum = 'X'.
afield-ref_tabname = 'GLPCA'.
afield-no_out = 'X'.
afield-seltext_s = 'Kreditor'(k01).
afield-seltext_m = text-k01.
afield-seltext_l = text-k01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Vendor name
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'NAME1'.
afield-no_sum = 'X'.
afield-ref_tabname = 'LFA1'.
afield-no_out = 'X'.
afield-seltext_s = 'Vendor Name'(v01).
afield-seltext_m = text-v01.
afield-seltext_l = text-v01.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Withholding tax rate
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'V_RATE'.
afield-no_sum = 'X'.
afield-ref_tabname = 'WITH_ITEM'.
afield-no_out = 'X'.
afield-seltext_s = 'Withholding tax rate'.
afield-seltext_m = 'With. tax rate'.
afield-seltext_l = 'W. Tax rate'.
afield-sp_group = '8'.
APPEND afield TO t_fieldcat.
* Withholding Tax Base Amount
ADD 1 TO i.
CLEAR afield.
afield-col_pos = i.
afield-fieldname = 'QSSHB'.
afield-no_sum = 'X'.
afield-ref_tabname = 'Hi pavan.
something is definitely wrong with your code: You have an internal table for display with fields from rpca 2 and additional some more fields. I do not see a field ORT01 for CITY or PSTLZ for POSTAL CODE, at least to in table GLPCA from where the data are extracted.
You must fill PSTLZ and ORT01 (if it is for the supplier):
SELECT SINGLE * FROM LFA1
WHERE LIFNR = <glpca>-LIFNR AND
SPRAS = SY-LANGU.
IF SY-SUBRC eq 0.
<glpca>-name1 = lfa1-name1.
<glpca>-adrnr = lfa1-adrnr.
<glpca>-stras = lfa1-stras.
**** add here: ***
select single ort01 pstlz
into corresponding fields of <glpca>
from adrc
where adrnr = <glpca>-adrnr.
ENDIF.
Make sure that fields ORT01 and PSTLZ are defined for internal table i_glpca.
Regards,
Clemens
Maybe you are looking for
-
Need help on how to specify the current select row in a View Object
Hi, I have a ADF table on my page, when I was selecting the rows in this table, I want the set and get methods in the ViewRowImpl class to do some customized actions. I found out that each time regardless the row I select in the table, the viewrowimp
-
can computer expert retrieve deleted videos and photo from and iphone 4 which the photos and video are not sync before? Are there any tools or software to retrieve it?
-
MOS Document: Convert from Oracle to MySQL
An Oracle tech just pointed out this note: Oracle VM Manager 3.2.1 database Migration from Oracle RDBMS to or from MySQL (Doc ID 1522460.1) Good stuff! Rob
-
UTL_DBWS accessing web service gives 'not contain port' error
Hello I am trying to call a web service from https://wgfd-cafa02.uni.mdx.ac.uk:8443/nyx/services/PlanonSession?wsdl In the WSDL xml, i get the targetNamespace (http://PlanonWebServices.ws), the service name (PlanonSession), the wsdl URL (https://wgfd
-
Spellcheck in pages on ipad - can it do multi language?
Is it possible to get pages on ios (ipad) to do spellcheck in more than the one language (the ipad default language)? Other apps, including apple apps, seem to be able to take language from the keyboard and spellcheck accordingly, but pages doesnt se