Reports: Javascript in Region Footer and Links in cells

Hi all!
I need to put hyperlinks in my APEX (4.0) Report and I read there is no direct option for it... this is how I thought to do, then...
My reports contains two columns:
DEVICE and HEALTH.
The first contains a String with Devices' name, and the second a Number to be intended as percentual.
I need Strings in DEVICE columns are also links to another APEX page where I have to generate a "dynamical" chart.
I.E.: we can intend a Report Row where DEVICE is "000x0" and HEALTH "30".
APEX generate HTML like this:
<td headers="DEVICE" class="data">000x0</td><td headers="HEALTH" class="data">30</td>
But I also need "000x0" to be a link to: "f?p=104:4:2205607043123699::::THE_DEVICE:000x0".
As to say: the fourth page of my APEX site, where "THE_DEVICE" is an APPLICATION_ITEM and it have to contains the name of clicked Device.
First thing I tried is to re-write pl/sql query to automatically returns html code for the link, like:
select
''||DEVICE||'' as DEVICE,
trunc(HEALTH, 2) as HEALTH
from [...]
But APEX convert special characters to &x; values:
&amp;lt;a href=&amp;quot;f?p=104:4:2205607043123699::::THE_DEVICE:000&amp;quot; target=&amp;quot;_self&amp;quot;&amp;quot;&amp;gt;000&amp;lt;/a&amp;gt;
Second thing I thought is to give an Unique ID to Report's Region ("ALARM_DEVICES_REG") and try to modify that text dynamically by adding JavaScript to Footer Region.
I checked and found in this forum a JavaScript suggested to somebody which had similar problem to mine, then I tried to adapt to my situation.
The fact is that my JavaScript in Footer Region doesn't seems to work at all! Neither a simple document.write("bye!"); comand!
How possible?
The JavaScript I tried to create could also contains errors, and it's the following:
<script type="text/javascript">
var y = document.getElementById('report_ALARM_DEVICES_REG')
var x = y.getElementsByTagName('TD');
var s;
if (x)
for (var i = 0; i < x.length; i++)
s = x.item(i);
if(s.getAttribute('headers') == 'DEVICE')
s.data = replaceHtmlEntites(s.data);
</script>
I noticed the innerTable for Reports area has "report_ALARM_DEVICES_REG" id (while the outer has "ALARM_DEVICES_REG") so I used it to be more selective.
replaceHtmlEntites is a function which should bring back special character from "&x;" values, and it's the following (I put it in "Function and Global Variable Declaration" area of Report's APEX page):
var replaceHtmlEntites = (
function() {
var translate_re = "/&(nbsp|amp|quot|lt|gt);/g";
var translate = {
"nbsp": " ",
"amp" : "&",
"quot": "\"",
"lt" : "<",
"gt" : ">"
return function(s) {
return ( s.replace(translate_re, function(match, entity) {
return translate[entity];
Shouldn't this work? And if not, why?
Thank you all!

But APEX convert special characters to &x; values:If you had changed the report column type to "Standard Report column" , it would not hav escaped your HTML codes
As for the JS code
the function "replaceHtmlEntites" had an error at
"lt" : "<"gt" : ">"it has to be
{code}
"lt" : "<",
"gt" : ">"
{code}
In any case , you are doing a lot of extra work unnecessarily , firstly by not using the "column link" functionality and secondly trying to 'unescape' html code.
Anyways,Here's a bit of code that does 'unescaping'
{code}
function htmlDecode(value){
return $('<div/>').html(value).text();
{code}
+Note: This method is not a safe one+

Similar Messages

  • Currency in report taken from regional setting and not infocube

    Dear All,
    I am facing very strange issue. I am using BEx analyzer 7.0
    I executed a report in Windows 2000, Excel 2003. The values are displayed correctly with currency which is in cube irrespective of the currency set in regional option in control panel.
    We are doing testing on windows vista and excel 2007 as we will upgrade to SAP GUI 7.10 and windows vista. I executed the report and the result values are matching but the currency is differant. The currency is taken from the regional settings in control panel. If I go to regional setting and change the currency, the report which is open in BEx analyzer changes the currency.
    We are facing this strange issue for only queries on 1 infocube. Other queries on another infocubes/multicubes are working fine.
    Has anyone faced the same issue. Please provide some pointers/solutions for above issue.
    Regards,
    Niraj

    Hi Shalu
    The Library 0FL has 4 currencies... i.e.
    HSL  - Local Currency  
    TSL   - Transaction Curre
    KSL  - Second Currency 
    OSL  - Third Currency  
    Go to GRR2 (Report form of your report), and double click on any column... You choose Key Figures in the Columns in a areport painter report... there you would have chosen any one of these currencies...
    Right click on the column and Copy it and paste it... Now change the Key Figure of the copied column to the one you desire...
    This should give you values in both currency...
    To identify which form you have used in GRR2 - Execute your report and go to Extras Menu > Technical Information.. In the pop up window that opens, double click on field "Report".
    Regards
    Ajay M

  • Implementing javascript for Navigationbar footer and Banner

    Our company has predefined layouts retrieved by js-files. I put the js files within the projects folder. More detailed I put them in a folder called javascript. This folder is located in the following folder "Project name"\src\web, i.e. the folder where jsp pages are normally stored by JSC. That`s why I reference the js files which should generate the borderlayout in the following way:
    <script language="javascript" src="<intranet url/header.js" type="text/javascript"/>
                    <script language="javascript" src="/javascript/horizontalnav.js" type="text/javascript"/>
                    <script language="javascript" src="/javascript/leftnav.js" type="text/javascript"/>
                    After that i invoke three methods from the js files, whereas the header.js is centrally maintained and the main file.
    <SCRIPT language="javascript" type="text/javascript">
    Running th eapplication doe not make navigation bar appear. I do not know why. Should I put the js files elsewhere (I cannot imagine)?
    On the other hand it is no porblem to work with a company wide css document, which is also, like header.js, referred to by a intranet url and not located locally. So I really got no clue!!!!!!!!!!!! PS: I placed all js code in the body of the jsp page; first the reference an then the invocation of methods. Does anyone has ade similar experiences and resolved such a problem, any hints would be very appreciated Thanks
    {drawHeader();
    drawLeftNavigation();
    drawFooter();
    }

    It is not obvious that your code sample truly illustrates what you are doing, but the "src" attributes on the second and third <script> elements look suspicious. The way you presented them, they will look for a file with URL "/javascript/xxxxx.js" on the host from which the page was loaded. Are you positive that this is the correct URL? Does the JavaScript console in your browser show any errors?
    If "horizontalnav.js" is, in fact, in the top level directory of your web application, the proper URL would be "../horizontal.js" if you are using the standard "/faces/*" servlet maping in your WEB-INF/web.xml file (which is the default).
    Craig
    Craig

  • Linking to an OBIEE report without showing the user and password

    Hi!
    we are trying to access to an obiee report from an external portal (coded with php).
    The idea is that the user clicks on a link an gets the report in pdf format. For that purpose we are using this url:
    http://ttivobiee01:7001/analytics/saw.dll?Go&Path=/shared/Prueba/ogp_obi&Action=Print&P0=1&P1=eq&P2="Criteria"."Key"&P3=1402&NQuser=user&NQPassword=pass&format=pdf
    But this url is expossing OBIEE's user and password.
    In order to avoid this security issue we tried to do an wget of the url but it doesn't return the report. Instead we get an html, which seams to download the report chunk by chunk (using javaScript).
    The question is, is there any way that we could let our portal ussers access to an obbie report without expossing the user and password?
    I have been looking into oracle forums and have found this: OBIEE Go URL with password protected
    but we couldn't use this aproach due to security issues.
    Thanks!
    Nuria

    Hi!
    We have finally done this (and it works!)
    <?php
    $urlInforme='http://obi:7001/analytics/saw.dll?Go&Path=/shared/Prueba/ogp_obi&Action=Print&P0=1&P1=eq&P2="Criterios"."Clave oficial"&P3=1402&NQuser=user&NQPassword=pass&format=pdf';
    $ch = curl_init($urlInforme);
    $ckfile = tempnam ("./", "CURLCOOKIE");
    $ch = curl_init ($urlInforme);
    curl_setopt ($ch, CURLOPT_COOKIEJAR, $ckfile);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $output = curl_exec ($ch);
    $ch = curl_init ($urlInforme);
    curl_setopt ($ch, CURLOPT_COOKIEFILE, $ckfile);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
    $fp = fopen("salida.pdf", "w");
    curl_setopt($ch, CURLOPT_FILE, $fp);
    $output = curl_exec ($ch);
    curl_close($ch);
    fclose($fp);

  • Crystal 6.0 : How to hide the Page footer and Page Header of the Main Report on the Sub report.

    Post Author: pranay
    CA Forum: Crystal Reports
    Hi ,
    I have a Main report and a Sub report .  When a subreport spans across multiple pages , the page header and page footer of the main report gets displayed along with it . I want to hide the Page Footer and Page Header of the main report when a sub report is displayed . Is there any way it could be acheived in Crystal Report 6.0.

    I am assuming you are talking about the JSControl dropdown menu navigation. The easiest way to hide Community pages is to disable the Below Banner View for that navigation scheme, although it also disables the Subcommunties, Related Communities and Go up to Parent Community links. If you still want these in below the banner menu you could not display Community Pages in the "In this Community" tab and only leave the "Community Members and Knowledge Directly" link in there.
    You would think that it would be better to remove the "In this Community" tab althogether but it is tricky to remove it due to the fact that there needs to be a default horizontal menu displayed all the time. Not all Communities will have a Subcommunities or Related Communities tab so these communities would not display any below banner menus at all if there is no "In this Community" tab, which could be confusing.

  • Solar_Eval "Documents and Links" Report

    Hi everybody,
    Maybe someone can help me with this issue.
    I enter to the transaction Solar_Eval and then to the report "Document and Links". When i execute this report with the parameters that i define the column "Name(links)" is empty. someone knows what could be the reason??
    Thanks
    Regards to all,
    Guido
    Edited by: Guido Olomudzski on Jun 26, 2008 5:49 PM

    Hi Guido,
    Do you mean all other adjacent columns - e.g. Documentation Type, Person Responsible, Last Changed by, Status etc. - are visible with right values and only the second column, "Name" appears empty ?
    If so, it's a bit puzzling - one thing that crossed my mind is - whether the documents were loaded in different language while you are viewing reports from a different language sign on. Not sure, if, even in that case, the name written in any other language is supposed to show up or not.
    Please let us know if you were able to fix it.
    Cheers,
    Srini

  • Clarification on how to find region id, and use it with $a_report command

    Hi, I am new to javascript, so bear with me. :)
    we have a tree called species that expands to allow users to select a particular type of fish species. This tree lies in a region called SPECIES.
    the species that a user has selected populate a report which is comprised of a collection and is in the region FAVORITES.
    I have created the hidden variable P900_REPORT_ID and placed it in the region FAVORITES.
    in the footer region of FAVORITES I have the following:
    <script type="text/javascript">
    $s('P900_REPORT_ID',value) = '#REGION_STATIC_ID#'.substr(1);
    </script>
    and finally, in the after header region I have javascript including:
    function addCollection(pValue,r,s,t)
    var get =
    new htmldb_Get(null,&APP_ID.,'APPLICATION_PROCESS=add900ToCollection',0);
    get.add('P110_SELECTED_NODE',pValue);
    gReturn = get.get();
    get = null;
    $a_report('P900_REPORT_ID','1','15','15');
    It does not appear that P900_REPOR_ID is ever populated. The tree does appear, the nodes expand, the user selects a species, and then the tree collapses completely without populating the collection FAVORITES.
    again, I am so new to javascript that I am not certain if I am explaining properly...and thoughts?

    I have modified the region footer in FAVORITES to be:
    $s('P900_REPORT_ID','#REGION_STATIC_ID#'.substr(1));
    </script>
    and modified the javascript for ADDCOLLECTION to:
    $a_report($x('P900_REPORT_ID').value,'1','10','100');
    this appears to work, but just received the following error. Do any of you have experience with this? thanks again? Karen
    Checksum error for Hidden and Protected item ID (84072206841759984), value (314246866896649185), posted checksum (5BD5912E5426E28CF0F87946112B0937), expected checksum (********************************), index_i (14), index_j (2), index_m (9);
    Return to application.

  • Export all sql reports in a region to csv or pdf

    Hello there,
    I have a region on a particular page in apex and that region has about 12 different sql query reports.
    I have enabled csv option for each of them so there are 12 links to export each report. However
    I would like to have only 1 link which will save the contents of all the reports to csv or pdf. The
    column headings are different for some of these reports but wanted to know if something like this
    is possible.
    Thanks in advance for reading this.

    You might try wrapping the regions in html regions that essentially give you the ability to specify a valign=top for the report regions.
    So, your regions look like this:
    30 Report Start - contains region source = (div)<table width="100%" cellspacing="0" cellpadding="0"><tr><td valign="top">
    40 Approved Tests Report (Column 2) Conditional
    45 Report 2 Start - contains </td><td valign="top">
    60 Unapproved Tests Report (Column 2) Conditional
    65 Report 3 Start - contains </td><td valign="top">
    80 Approved Count by Build Report (Column 2) Conditional
    85 Report End - contains "</td></tr></table>(/div)"
    Replace () with the angle brackets
    Maybe there is a more elegant solution with templates or page level CSS or something..
    But that should work.
    Edited by: Bob37 on Sep 17, 2010 3:33 PM
    Edited by: Bob37 on Sep 17, 2010 3:33 PM

  • Region Attributes and Region Header on Tab Template. Apex 5

    All,
    In order to have my pages not scroll, but instead have a region scroll I would do an overflow on the region header and attributes in apex 4.
    When using this same method on a tab template, all of the reports within the tab templates get shown one after another.
    eg;
    region attribute......style="width:350px;height:758px;"
    region header..... <div style="overflow: auto; width: 350; height: 700px;">
    it does make the region scrollable, but the tabs stop working and instead are displayed one after another.
    Does anyone know of a fix / workaround?

    Hi gianpagi,
    gianpagi wrote:
    i would like to know how to have an horizontal scrollbar for an interactive report (5.0) after making a pivot from the user interface; i have a lot of columns and without the pivot the horizontal scrollbar appears . After it doesn't appear.
    I tried with the Region Header <div style="overflow:auto;"> and Region Footer </div>  but without success.
         Please mention the theme and template you are using for the Interactive Report.
         Can you re-produce the issue on apex.oracle.com and share the workspace credentials, so that can have closer look at the issue?
    Regards,
    Kiran

  • Tabular Form and Link to document and No Data Found error

    I have used this numerous times in an INTERACTIVE REPORT to link records out from the report to a document in a folder on our server and it works beautifully thanks to one of you guys who helped me a couple of years ago. In the column for which I want to use as a link I do the following:
    LINK TEST #ISO_NUMBER#
    LINK ATTRIBUTES a href=#DOC_LINK#; TARGET="_BLANK"
    URL #DOC_LINK#
    I've been banging my head against the wall trying to figure out why I keep getting a 'No data found' error in my TABULAR FORM. The good news is I figured out why it's happening. The bad news is I do need to link out to the documents listed in my tabular form that are saved on the server.
    Is there any other way to do this?
    Application Express 4.0.0.00.46
    TIA,
    Alexandra

    Finally back...
    I have a tabular form that lists documents stored on one of our servers. In an interactive report I can set up a link to those docs using the document number column in the IR. I can't get it to work in the same way on the tabular form. Hopefully the steps of the catalog process will shed light on what may be the problem:
    Step One
    1. User1 catalogs doument using standard form (page 3) on DOC_INFO table.
    2. Button on form redirects to Approval Tabular Form (for this example, page 100). This tabular form displays DOCUMENT_NUMBER (display as text saves state), APPROVER (select list), APPROVED(select list), RELEASED (select list) fields among others from DOC_APPRV_DOC table
    3. Add Row adds fields in #2 above and other fields
    4. User1 selects APPROVER in select list and Adds Row for all additional APPROVERS required
    5. User1 hits SUBMIT button
    Step Two
    1. User2 opens different page but Approval Tabular Form (for this example, page 200) on same DOC_APPRV_DOC table, restricted to :P101_USERNAME
    2. User2 uses APPROVED select list to approve or reject
    3. User2 hits SUBMIT button
    Step Three
    1. User1 opens Approval Tabular Form (page 100) with User2 (and all other documents requiring approval) results
    2. If rejected User1 uses Reset Approval checkbox and select list on User2's tabular form is reset
    3. If approved User1 uses Released submit list and and record is deleted from User2's tabular form
    The Problem
    User2 ought to be able to review each of these documents on the server. In other parts of my application, an interactive report is used, I've got a case statement in the report creating the link, and have the column itself setup up so that User2 merely clicks on the DOCUMENT_NUMBER on the report and he's redirected to the document itself.
    This works fine when set up the same way on the tabular form ONLY THE FIRST TIME a row is added. If I ADD ROW for any additional documents the DOCUMENT_NUMBER field on the tabular form does not populate on User1's form.
    The entire process works beautifully if the link is not set up.
    Note that from the standard form, the DOCUMENT_NUMBER is sent to a hidden item (default = :P3_DOCUMENT_NUMBER) in a region above the tabular form (page 100). This is then used to populate the DOCUMENT_NUMBER on the tabular form as the default value (:P200_DOCUMENT_NUMBER).
    Your thoughts? Thanks in advance!
    Alexandra

  • Multiple Reports In One Region - Question For Denes Kubicek

    Denes,
    I looked at what you've done on your demo app 31517, Page 152
    (http://htmldb.oracle.com/pls/otn/f?p=31517:152), in which you place several reports in the same region. It is nicely done and a great example of something I
    need to do at my work place.
    I have two questions.
    1) In your explanation link (takes me to your blog) you say you made changes to a copy of the Report Template and placed this copy into a copy of the Standard Page Template. However, I see that your reports are set to "No Template".
    I've probably missed something here, but don't know what.
    2) A more general question ... I'm intrigued in how you get tab item in, say, your Section 4 Tab Set (or any of the other Tab Sets) to "Stand Out" in bold letters
    when clicked on. How are you doing this?
    Thanks very much for your help. Yours is one of the great sites to learn from.
    Elie

    Apex v4. has parent and child regions (subregions) where child regions display inside the parent. If you make the child regions with no template, they will probably appear as if it's just two reports in one region.
    Problem is, they display one above the other, not side by side. But there's been a recent thread on working around this just in the past few days on this forum.

  • Multiple reports in one region

    Hi
    Ive got 2 views that i want to display in one region, as i have to pass in a value into a page item froma column link, is this possible or is there such a thing as a glbal item that can be incorporated into multiple regions.
    Marco

    Hi Marco,
    You can have as many reports in a region as you like. When you create a report just put it in the same region position - using the sequence numbering to put them in the order you want them to appear.
    However, I think what you really mean is that you want to specify one value for the page that can be used for both reports?
    If so, all you need to do is have a hidden page item at the TOP of the page and set this value with your column link. ALL your reports can then use this value as a filter.
    It is also possible to use Application Items - these are created through Shared Components and can be set/used anywhere
    Andy

  • Timemachine and link not work property...

    At home I have 10.4.2 and no digidesign hardware.
    Timemachine and link not work property...
    I send them: when I use ol algorythm- they caclulating 1 mono file (3 min lengh) about 15 min at dual G5. It is normal? And when I use new algorytm- nothign happen whith file. No result. (1 week it work fine).
    Link in matrix not work
    And what system I shood to use at studio whith PT?

    CRash when change lengh of region whith new algoruthm
    Date/Time: 2005-08-24 12:11:29.752 +0400
    OS Version: 10.4.2 (Build 8C46)
    Report Version: 3
    Command: Logic Pro
    Path: /Applications/Logic Pro.app/Contents/MacOS/Logic Pro
    Parent: WindowServer [91]
    Version: 7.1.0 (7.1.0(877))
    Build Version: 1A73
    Project Name: LogicPro710_ApplicationData
    Source Version: 900001
    PID: 288
    Thread: 0
    Exception: EXCBADACCESS (0x0001)
    Codes: KERNPROTECTIONFAILURE (0x0002) at 0x0000007e
    Thread 0 Crashed:
    0 com.apple.logic.pro      0x0059a8c8 0x1000 + 5871816
    1 com.apple.logic.pro      0x0037183c 0x1000 + 3606588
    2 com.apple.logic.pro      0x00370000 0x1000 + 3600384
    3 com.apple.logic.pro      0x002983b4 0x1000 + 2716596
    4 com.apple.logic.pro      0x00298a84 0x1000 + 2718340
    5 com.apple.logic.pro      0x00298c28 0x1000 + 2718760
    6 com.apple.logic.pro      0x0005e264 0x1000 + 381540
    7 com.apple.logic.pro      0x0005c6e0 0x1000 + 374496
    8 com.apple.logic.pro      0x002aa538 0x1000 + 2790712
    9 com.apple.logic.pro      0x00571e10 0x1000 + 5705232
    10 com.apple.logic.pro      0x0016c090 0x1000 + 1486992
    11 com.apple.logic.pro      0x0017864c 0x1000 + 1537612
    12 com.apple.logic.pro      0x00178ad8 0x1000 + 1538776
    13 com.apple.logic.pro      0x0016c150 0x1000 + 1487184
    14 com.apple.logic.pro      0x0018e388 0x1000 + 1627016
    15 com.apple.logic.pro      0x0018e588 0x1000 + 1627528
    16 com.apple.logic.pro      0x0017d0cc 0x1000 + 1556684
    17 com.apple.logic.pro      0x00124170 0x1000 + 1192304
    18 com.apple.logic.pro      0x002fed40 0x1000 + 3136832
    19 com.apple.logic.pro      0x003026a8 0x1000 + 3151528
    20 com.apple.logic.pro      0x00300a94 0x1000 + 3144340
    21 com.apple.HIToolbox      0x931229f4 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 692
    22 com.apple.HIToolbox      0x9312214c SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372
    23 com.apple.HIToolbox      0x93128ed0 SendEventToEventTarget + 40
    24 com.apple.HIToolbox      0x93229ffc SendEventFromMouseDown + 156
    25 com.apple.HIToolbox      0x93205998 HandleClickInContent + 368
    26 com.apple.HIToolbox      0x93155d6c HandleWindowEvent + 1584
    27 com.apple.HIToolbox      0x931655c8 StandardWindowEventHandler + 160
    28 com.apple.HIToolbox      0x931229f4 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 692
    29 com.apple.HIToolbox      0x9312214c SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372
    30 com.apple.HIToolbox      0x93128ed0 SendEventToEventTarget + 40
    31 com.apple.HIToolbox      0x93229ffc SendEventFromMouseDown + 156
    32 com.apple.HIToolbox      0x931b6b08 HandleWindowClick + 572
    33 com.apple.HIToolbox      0x931b6560 HandleMouseEvent + 456
    34 com.apple.HIToolbox      0x931655bc StandardWindowEventHandler + 148
    35 com.apple.HIToolbox      0x931229f4 DispatchEventToHandlers(EventTargetRec*, OpaqueEventRef*, HandlerCallRec*) + 692
    36 com.apple.HIToolbox      0x9312214c SendEventToEventTargetInternal(OpaqueEventRef*, OpaqueEventTargetRef*, HandlerCallRec*) + 372
    37 com.apple.HIToolbox      0x93128ed0 SendEventToEventTarget + 40
    38 com.apple.HIToolbox      0x931b5530 HandleMouseEventForWindow(OpaqueWindowPtr*, OpaqueEventRef*, unsigned short) + 236
    39 com.apple.HIToolbox      0x931b4aa8 HandleMouseEvent(OpaqueEventRef*) + 368
    40 com.apple.HIToolbox      0x9312923c ToolboxEventDispatcherHandler(OpaqueEventHandlerCallRef*, OpaqueEventRef*, void*) + 496
    41 com.apple.HIToolbox      0x93122c44 DispatchEventToHandlers(EventTargetR

  • Report for Material at subcontract AND PO number

    We are preparing for Inventory verification at subcontractors.
    My boss believes it would be easier for the SC vendor if we could supply the PO number for which the material was shipped.
    I haven't found such a report.  Is there one?
    If you know the tables and links, I can write a ABAP query
    Thank you for any help that can be provided.
    Althea

    Hi,
    ME2O works fine if you want to track which subcontracting PO's are still open and what is the current stock at vendor.
    ME2ON is another version of the same basic ME2O report.
    Try also MBLB - Stocks at subcontractor.
    As far as PO to 541 link is concerned, I do not think it is possible to find it unless there is some specific business process being followed which is supported by custom code.
    The reason is that when you issue against 541, you are simply providing materials to vendor that the vendor needs.
    There might be multiple open SC POs for same material/batch and there is no point in tracking against a particluar PO. Its the same material/batch the vendor receives.
    When you post a PGR for a SC PO, then the stock from vendor premises is consumed by 543 and the track to your SC PO is maintained.
    I tried maintaining EBELN as required in OMJJ for 541 but still no MSEG-EBELN is populated. Maybe I am missing something.

  • Report to find open items and close items for given vendor

    Hi All,
    What are the steps needed to write a REPORT to find out
    open and close items for a given vendor.
    Which are the fields i'll have to take and what are the comparisons i'll have to make.
    I know,
    BSIK is for open Vendor &
    BSAK for closed Vendors..
    what are the conditions i'll have to check.
    Thanks in Advance..
    Pradeep Alex

    Hi Pradeep,
    This report I developed is definitely useful to you.
    *& Report  ZFI_PROV_IT_VENDOR
    REPORT  ZFI_VENDOR.
    TYPE-POOLS: slis.
    tables: BKPF,
            BSEG,
            bsik,
            bsak,
            bsid,
            bsad,
            lfa1,
            t005u,           "Region Description
            J_1IMOVEND.
    TYPES: BEGIN OF ty_bkpf,
            bukrs type bkpf-bukrs,
            belnr TYPE bkpf-belnr,
            gjahr type bkpf-gjahr,
            blart TYPE bkpf-blart,
            budat TYPE bkpf-budat,
           END   OF ty_bkpf.
    types: begin of ty_J_1IMOVEND,
             lifnr     type lfa1-lifnr,
             J_1IPANNO type J_1IMOVEND-J_1IPANNO,
             J_1ICSTNO type J_1IMOVEND-J_1ICSTNO,
             J_1ISERN  type J_1IMOVEND-J_1ISERN,
           end   of ty_J_1IMOVEND.
    TYPES: BEGIN OF ty_bseg,
            belnr TYPE bseg-belnr,
            gjahr type bseg-gjahr,
            bschl TYPE bseg-bschl,
            umskz type bseg-umskz,
            shkzg type bseg-shkzg,
            wrbtr TYPE bseg-wrbtr,
            hkont type bseg-hkont,
            lifnr TYPE bseg-lifnr,
           END   OF ty_bseg.
    types: begin of ty_t005u,
            bland type t005u-bland,
            bezei type t005u-bezei,
           end   of ty_t005u.
    types: begin of ty_lfa1,
            lifnr type lfa1-lifnr,
            name1 type lfa1-name1,   "35
            ort01 type lfa1-ort01,   "35
            ort02 type lfa1-ort02,   "35
            pfach type lfa1-pfach,   "10
            pstlz type lfa1-pstlz,   "10
            regio type lfa1-regio,   "3
            stras type lfa1-stras,   "35
            ktokk type lfa1-ktokk,
            telf1 type lfa1-telf1,   "16
            telf2 type lfa1-telf2,   "16
           end   of ty_lfa1.
    types: begin of ty_bsik,
            bukrs type bsik-bukrs,
            lifnr type bsik-lifnr,
            augdt type bsik-augdt,
            augbl type bsik-augbl,
            belnr type bsik-belnr,
            budat type bsik-budat,
            blart type bsik-blart,
            shkzg type bsik-shkzg,
            wrbtr type bsik-wrbtr,
           end   of ty_bsik.
    types: begin of ty_bsid,
            bukrs type bsid-bukrs,
            lifnr type bsid-kunnr,
            augdt type bsid-augdt,
            augbl type bsid-augbl,
            belnr type bsid-belnr,
            budat type bsid-budat,
            blart type bsid-blart,
            shkzg type bsid-shkzg,
            wrbtr type bsid-wrbtr,
           end   of ty_bsid.
    types: begin of ty_out2,
            lifnr type bsik-lifnr,
            wrbtr type bsik-wrbtr,
            end  of ty_out2.
    types: begin of ty_out,
            lifnr type lfa1-lifnr,
            name1 type lfa1-name1,
            addr(162) type c,
            J_1IPANNO type J_1IMOVEND-J_1IPANNO,
            J_1ICSTNO type J_1IMOVEND-J_1ICSTNO,
            J_1ISERN  type J_1IMOVEND-J_1ISERN,
            opbal  type bseg-wrbtr,
            purch type bseg-wrbtr,
            PAYM  type bseg-wrbtr,
            grdeb type bseg-wrbtr,
            othdeb type bseg-wrbtr,
            othcre type bseg-wrbtr,
            tds   type bseg-wrbtr,
            bal   type bseg-wrbtr,
            blart type bkpf-blart,
            bschl type bseg-bschl,
           end  of ty_out.
    types: begin of ty_bsegtemp,
            lifnr TYPE bseg-lifnr,
           end   of ty_bsegtemp.
    types: begin of ty_bsegnew,
            wrbtr TYPE bseg-wrbtr,
            lifnr TYPE bseg-lifnr,
           end   of ty_bsegnew.
    data: it_bsik type table of ty_bsik with header line,
          it_bsid type table of ty_bsid with header line,
          it_bsak type table of ty_bsik with header line,
          it_out2  type table of ty_out2 with header line,
          it_out3 type table of ty_out2 with header line.
    DATA : it_fieldcat TYPE slis_t_fieldcat_alv,
           it_listheader TYPE slis_t_listheader,
           it_alvevent TYPE slis_t_event,
           gt_events TYPE slis_t_event WITH HEADER LINE.
    DATA: I_SORT TYPE SLIS_T_SORTINFO_ALV.
    DATA : wa_fieldcat TYPE slis_fieldcat_alv,
           wa_listheader TYPE slis_listheader,
           wa_alvevent TYPE slis_alv_event.
    DATA: WA_SORT TYPE SLIS_SORTINFO_ALV.
    DATA: ls_line TYPE slis_listheader.
    DATA : g_repid  LIKE sy-repid,                  " Program ID
           g_layout TYPE slis_layout_alv.           " Layout Workarea
    DEFINE m_fieldcat.
      wa_fieldcat-col_pos       = &1.               " Fieldcat column postion
      wa_fieldcat-fieldname     = &2.               " Field name
      wa_fieldcat-DO_SUM        = &3.
      wa_fieldcat-seltext_m     = &4.               " Column Text
      wa_fieldcat-outputlen    = &5.
      append wa_fieldcat to it_fieldcat.
      clear wa_fieldcat.
    END-OF-DEFINITION.
    DATA: wa_lfa1 TYPE ty_lfa1,
          wa_bkpf TYPE ty_bkpf,
          wa_bkpf1 type ty_bkpf,
          wa_bsegtemp type ty_bsegtemp,
          wa_bsegnew type ty_bsegnew,
          wa_bsegnew1 type ty_bsegnew,
          wa_J_1IMOVEND type ty_J_1IMOVEND,
          wa_t005u type ty_t005u,
          wa_bseg TYPE ty_bseg,
          wa_out    TYPE ty_out.
    DATA: gt_out TYPE STANDARD TABLE OF ty_out,
          gt_out1 TYPE STANDARD TABLE OF ty_out,
          gt_lfa1 TYPE STANDARD TABLE OF ty_lfa1,
          gt_bsegtemp type standard table of ty_bsegtemp with header line,
          gt_bsegnew type standard table of ty_bsegnew with header line,
          gt_bsegnew1 type standard table of ty_bsegnew with header line,
          gt_J_1IMOVEND type standard table of ty_J_1IMOVEND,
          gt_bkpf1 TYPE STANDARD TABLE OF ty_bkpf WITH HEADER LINE,
          gt_t005u type standard table of ty_t005u,
          gt_bseg TYPE STANDARD TABLE OF ty_bseg WITH HEADER LINE,
          gt_bkpf TYPE STANDARD TABLE OF ty_bkpf WITH HEADER LINE.
    selection-screen begin of block b1 with frame title text-001.
    select-options: s_budat for bkpf-budat obligatory,
                    s_ktokk for lfa1-ktokk obligatory.
                   s_wrbtr for bseg-wrbtr.
    parameters: p_bukrs type bkpf-bukrs obligatory default '1000'.
               p_gjahr type bkpf-gjahr obligatory.
               p_lifnr type bseg-lifnr obligatory default '300040',
               p_ktokk type lfa1-ktokk obligatory default 'Z200'.
    selection-screen end   of block b1.
    START-OF-SELECTION.
      PERFORM sub_fetch_data.
      PERFORM sub_process_data.
    END-OF-SELECTION.
      PERFORM sub_build_fieldcat.
      PERFORM sub_build_layout.
      PERFORM eventtab_build USING gt_events[].
      PERFORM comment_build USING it_listheader[].
      PERFORM sub_disp_data.
    *&      Form  SUB_BUILD_FIELDCAT
          text
    -->  p1        text
    <--  p2        text
    FORM sub_build_fieldcat .
    sort gt_out by name1.
    *DEFINE M_SORT.
       ADD 1 TO WA_SORT-SPOS.
       WA_SORT-FIELDNAME = &1.
       WA_SORT-UP        = 'X'.
       WA_SORT-SUBTOT    = &2.
       APPEND WA_SORT TO I_SORT.
    END-OF-DEFINITION.
    *m_sort 'NAME1' 'X'.
    *M_SORT 'ADDR' 'X'.
      m_fieldcat 1  'LIFNR' ' '  text-026 10.
      m_fieldcat 2  'NAME1' ' '  text-006 35.
      m_fieldcat 3  'ADDR' ' ' text-007 162.
      m_fieldcat 4  'J_1IPANNO' ''  text-008 40.
      m_fieldcat 5  'J_1ICSTNO'  '' text-009 40.
      m_fieldcat 6  'J_1ISERN'  '' text-010 40.
      m_fieldcat 7  'OPBAL'  '' text-011 18.
      m_fieldcat 8  'PURCH'    '' text-012 18.
      m_fieldcat 9  'PAYM' ''  text-013 18.
      m_fieldcat 10  'GRDEB'  '' text-014 18.
      m_fieldcat 11  'OTHDEB'  '' text-020 18.
      m_fieldcat 12  'OTHCRE'  '' text-021 18.
      m_fieldcat 13  'BAL'  '' text-023 18.
      m_fieldcat 14  'TDS'  '' text-022 18.
    ENDFORM.                    " SUB_BUILD_FIELDCAT
    *&      Form  SUB_BUILD_LAYOUT
          text
    -->  p1        text
    <--  p2        text
    FORM sub_build_layout .
      g_layout-zebra             = 'X'.
      g_layout-colwidth_optimize = 'X'.
    ENDFORM.                    " SUB_BUILD_LAYOUT
    *&      Form  EVENTTAB_BUILD
          text
         -->P_GT_EVENTS[]  text
    FORM eventtab_build  USING    gt_events TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          i_list_type = 0
        IMPORTING
          et_events   = gt_events.
      READ TABLE gt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE 'TOP_OF_PAGE' TO ls_event-form.
        APPEND ls_event TO gt_events.
      ENDIF.
    ENDFORM.                    " EVENTTAB_BUILD
    *&      Form  COMMENT_BUILD
          text
         -->P_IT_LISTHEADER[]  text
    FORM comment_build  USING    p_it_listheader TYPE
                                            slis_t_listheader.
    data: v_text(30) type c,
          v_datelow(10) type c,
          v_datehigh(10) type c,
          v_month(2) type c,
          v_day(2) type c,
          v_year(4) type c.
    v_day  = s_budat-low+6(2).
    v_month = s_budat-low+4(2).
    v_year = s_budat-low+0(4).
    concatenate v_day '.' v_month '.' v_year into v_datelow.
    clear: v_day,v_month,v_year.
    v_day  = s_budat-high+6(2).
    v_month = s_budat-high+4(2).
    v_year = s_budat-high+0(4).
    concatenate v_day '.' v_month '.' v_year into v_datehigh.
    clear: v_day,v_month,v_year.
    concatenate 'From' v_datelow 'To' v_datehigh into v_text
                                        separated by space.
    clear: v_datelow, v_datehigh.
      ls_line-typ  = 'H'.
      ls_line-info = text-116.
      APPEND ls_line TO p_it_listheader.
    ls_line-typ  = 'S'.
      ls_line-key = text-090.
      ls_line-info = v_text.
      APPEND ls_line TO p_it_listheader.
    ENDFORM.                    " COMMENT_BUILD
    *&      Form  TOP_OF_PAGE
          text
    -->  p1        text
    <--  p2        text
    FORM top_of_page.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
        EXPORTING
          it_list_commentary = it_listheader.
    ENDFORM.                    " TOP_OF_PAGE
    *&      Form  SUB_DISP_DATA
          text
    -->  p1        text
    <--  p2        text
    FORM sub_disp_data .
      g_repid = sy-repid.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
        EXPORTING
          i_callback_program = g_repid
          it_fieldcat        = it_fieldcat[]
          is_layout          = g_layout
          i_save             = 'U'
          it_events          = gt_events[]
        IT_SORT             = I_SORT[]
        TABLES
          t_outtab           = gt_out1[].
    ENDFORM.                    " SUB_DISP_DATA
    *&      Form  sub_fetch_data
          text
    -->  p1        text
    <--  p2        text
    form sub_fetch_data .
    select bukrs
           belnr
           gjahr
           blart
           budat
           from bkpf
           into table gt_bkpf
           where budat in s_budat
           and   bukrs = p_bukrs
          and   gjahr = p_gjahr
           and   blart in ('KR','KG','KZ','RE','DK','Z1','AB','SA','KA','DZ').
    select belnr
           gjahr
           bschl
           umskz
           shkzg
           wrbtr
           hkont
           lifnr
           from bseg
           into table gt_bseg
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and   gjahr = gt_bkpf-gjahr
          and gjahr = p_gjahr
           and   bschl in (21,25,29,31,50,39,38,19,35).
          and kunnr in gt_
          and lifnr = '0000300019'.
    select belnr
           gjahr
           bschl
           umskz
           shkzg
           wrbtr
           hkont
           kunnr
           from bseg
           appending table gt_bseg
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and   gjahr = gt_bkpf-gjahr
          and gjahr = p_gjahr
           and   bschl in (21,25,29,31,50,39,38,19).
    break manukapur.
    sort gt_bseg by  lifnr bschl.
    delete adjacent duplicates from gt_bseg comparing all fields.
    loop at gt_bseg into wa_bseg.
    if wa_bseg-lifnr is not initial.
    move: wa_bseg-lifnr to wa_bsegtemp-lifnr.
          append wa_bsegtemp to gt_bsegtemp.
          endif.
    endloop.
    delete adjacent duplicates from gt_bsegtemp comparing lifnr.
    select lifnr
            name1
            ort01
            ort02
            pfach
            pstlz
            regio
            stras
            ktokk
            telf1
            telf2
            from lfa1
            into table gt_lfa1
            for all entries in gt_bseg
            where lifnr = gt_bseg-lifnr
            and ktokk in s_ktokk.
           and lifnr = '0000300030'.
    select  bland
            bezei
            from t005u
            into table gt_t005u
            for all entries in gt_lfa1
            where bland = gt_lfa1-regio
            and land1 = 'IN'
            and spras = sy-langu.
    select lifnr
           J_1IPANNO
           J_1ICSTNO
           J_1ISERN
           from J_1IMOVEND
           into table gt_J_1IMOVEND
           for all entries in gt_bseg
           where lifnr = gt_bseg-lifnr.
    *select bukrs
          belnr
          blart
          budat
          from bkpf
          into table gt_bkpf1
          where budat < s_budat-low.
          and zfdbt < s_budat-low.
    select
           wrbtr
           lifnr
           from bseg
           into table gt_bsegnew
           for all entries in gt_bkpf
           where belnr = gt_bkpf-belnr
           and xopvw = 'X' .
          and zfbdt < s_budat-low.
    select bukrs
           lifnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsik
           into table it_bsik
           for all entries in gt_bseg
           where lifnr = gt_bseg-lifnr
          and   lifnr = '0000300000'
           and   bukrs = '1000'
           and   budat <= s_budat-low.
    select bukrs
           lifnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsak
           appending table it_bsik
           for all entries in gt_bseg
           where bukrs = '1000'
           and   lifnr = gt_bseg-lifnr
          and   lifnr = '0000300000'
           and   budat <= s_budat-low
           and   augdt > s_budat-low.
    select bukrs
           kunnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsid
           into table it_bsid
           for all entries in gt_bseg
           where bukrs = '1000'
           and   kunnr = gt_bseg-lifnr
          and   kunnr = '0000300000'
           and   budat <= s_budat-low.
    select bukrs
           kunnr
           augdt
           augbl
           belnr
           budat
           blart
           shkzg
           wrbtr
           from bsad
           appending table it_bsid
           for all entries in gt_bseg
           where bukrs = '1000'
           and   kunnr = gt_bseg-lifnr
          and   kunnr = '0000300000'
           and   budat <= s_budat-low
           and   augdt > s_budat-low.
    if it_bsid[] is not initial.
    append lines of it_bsid to it_bsik.
    endif.
    *delete gt_bsegnew where lifnr  <> '0000300000'.
    *break manukapur.
    *sort gt_bsegnew by lifnr.
    *loop at gt_bsegnew into wa_bsegnew.
    *collect wa_bsegnew into gt_bsegnew1.
    *endloop.
    loop at it_bsik .
    it_out2-lifnr = it_bsik-lifnr.
    *it_out1-budat = it_bsik-budat.
    *it_out1-blart = it_bsik-blart.
    if it_bsik-SHKZG = 'H'.
    it_out2-wrbtr = it_bsik-wrbtr.
    else .
    it_out2-wrbtr = it_bsik-wrbtr * -1.
    endif.
    append it_out2.
    clear: it_out2, it_bsik.
    *endif.
    *clear it1.
    endloop.
    sort it_out2 by lifnr.
    loop at it_out2.
    it_out3-lifnr = it_out2-lifnr.
    it_out3-wrbtr = it_out2-wrbtr.
    collect it_out3.
    clear: it_out3, it_out2.
    endloop.
    endform.
    *&      Form  sub_process_data
          text
    -->  p1        text
    <--  p2        text
    form sub_process_data .
    *sort gt_bsegtemp by  lifnr .
    sort gt_bseg by lifnr bschl.
    sort gt_bsegnew by lifnr.
    sort it_out3 by lifnr.
    *loop at gt_bsegnew into wa_bsegnew.
    *at end of lifnr.
    *sum.
    *endat.
    *endloop.
    sort gt_bkpf by blart.
    loop at gt_bseg into wa_bseg.
    if wa_bseg-lifnr is not initial.
    read table gt_lfa1 into wa_lfa1 with key lifnr = wa_bseg-lifnr.
    move: wa_lfa1-name1 to wa_out-name1,
         wa_lfa1-lifnr to wa_out-lifnr.
    read table gt_t005u into wa_t005u with key bland = wa_lfa1-regio.
    concatenate wa_lfa1-stras ',' wa_lfa1-ort01 ','
                wa_lfa1-ort02 ',' wa_t005u-bezei ','
                wa_lfa1-pfach ','
                wa_lfa1-pstlz ',' 'Ph:'
                wa_lfa1-telf1 ','
                wa_lfa1-telf2
                into wa_out-addr separated by space.
    read table gt_J_1IMOVEND into wa_J_1IMOVEND with key lifnr = wa_bseg-lifnr.
    move: wa_J_1IMOVEND-J_1IPANNO to wa_out-J_1IPANNO,
          wa_J_1IMOVEND-J_1ICSTNO to wa_out-J_1ICSTNO,
          wa_J_1IMOVEND-J_1ISERN  to wa_out-J_1ISERN.
          read table gt_bkpf into wa_bkpf with key belnr = wa_bseg-belnr.
    if wa_bkpf-blart = 'RE' and wa_bseg-bschl = 31 or
    wa_bkpf-blart = 'KR' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-purch = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-purch = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KR' and wa_bseg-bschl = 50.
    *wa_out-tds = wa_out-tds + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-tds = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-tds = wa_bseg-wrbtr * -1.
    endif.
    endif.
    *wa_out-tds = wa_bseg-wrbtr.
    endif.
    if wa_bkpf-blart = 'KG' and wa_bseg-bschl = 21.
    *wa_out-grdeb =  wa_out-grdeb + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'RE' and wa_bseg-bschl = 21.
    *wa_out-grdeb =  wa_out-grdeb + wa_bseg-wrbtr.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-grdeb = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 25
    *or wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 29
    **and wa_bseg-umskz = 'A'
    or wa_bkpf-blart = 'SA' and wa_bseg-bschl = 25.
    if wa_bseg-shkzg = 'H'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-paym = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    *wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    wa_out-paym = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'DK' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'SA' and wa_bseg-bschl = 31.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 38.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'DZ' and wa_bseg-bschl = 19
    and wa_bseg-umskz = 'A'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KA' and wa_bseg-bschl = 39
    and wa_bseg-umskz = 'G' or
           wa_bseg-umskz = 'H' or
           wa_bseg-umskz = 'J' or
           wa_bseg-umskz = 'L' OR
           wa_bseg-umskz = 'A'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'KA' and wa_bseg-bschl = 35.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if ( wa_bkpf-blart = 'KZ' and wa_bseg-bschl = 29 )
       and wa_bseg-umskz = 'A' or
           wa_bseg-umskz = 'B' or
           wa_bseg-umskz = 'I' or
           wa_bseg-umskz = 'M' or
           wa_bseg-umskz = 'O' or
           wa_bseg-umskz = 'V'.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 27.
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    if wa_bkpf-blart = 'Z1' and wa_bseg-bschl = 21 .
    if wa_bseg-shkzg = 'H'.
    wa_out-othcre = wa_bseg-wrbtr.
    else.
    if wa_bseg-shkzg = 'S'.
    wa_out-othcre = wa_bseg-wrbtr * -1.
    endif.
    endif.
    endif.
    **if wa_bseg-shkzg = 'H'.
    ***wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    **wa_out-othdeb = wa_bseg-wrbtr.
    **else.
    **if wa_bseg-shkzg = 'S'.
    ***wa_out-purch = wa_out-purch + wa_bseg-wrbtr.
    **wa_out-othdeb = wa_bseg-wrbtr * -1.
    **endif.
    **endif.
    **endif.
    ***if wa_bkpf-blart = 'AB' and wa_bseg-bschl = 27.
          wa_out-othdeb =  wa_bseg-wrbtr.
    ***endif.
    ***if wa_bkpf-blart = 'Z1' and wa_bseg-bschl = 21.
          wa_out-othdeb =  wa_bseg-wrbtr.
    ***endif.
    read table it_out3 with key lifnr = wa_bseg-lifnr binary search.
    on change of wa_bseg-lifnr.
    *move: wa_lfa1-name1 to wa_out-name1,
        wa_lfa1-lifnr to wa_out-lifnr.
    wa_out-opbal = it_out3-wrbtr.
    endon.
    *if wa_out-opbal is not initial.
    *wa_out-bal = wa_out-opbal + wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    **else.
    *wa_out-bal = wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    *endif.
    wa_out-bal = wa_out-opbal + wa_out-purch + wa_out-paym + wa_out-grdeb + wa_out-othdeb + wa_out-othcre.
    at end of lifnr.
    *wa_out-bal = wa_out-opbal + wa_out-purch - wa_out-grdeb - wa_out-othdeb + wa_out-othcre.
    append wa_out to gt_out.
    *collect wa_out into gt_out.
    clear wa_out.
    clear it_out3.
    clear wa_bsegnew1.
    endat.
    endif.
    clear: wa_bseg, wa_bkpf, wa_J_1IMOVEND.
    endloop.
    loop at gt_out into wa_out.
    collect wa_out into gt_out1.
    endloop.
    endform.                    " sub_process_data
    Regards,
    Santosh Kumar M.

Maybe you are looking for

  • Not getting all the attributes value from Trusted Recon in eventhandler

    Hi, I am not getting the values of all the attributes in hashmap from Trusted recon in eventhandler. Following is the hashmap value I am getting : Parameter Hashmap value is {re_key=1869, Email=[email protected], Role=Full-Time, act_key=22, User Logi

  • ITunes Music Files Corrupted by Genius and/or iPod Touch?

    After installing an iPod Touch for the first time, and also running Genius for the first time, on my large (199.61 GB) music library (located on a WD MyBook 500 GB external hard drive), all of my music has disappeared according to iTunes. This is bec

  • [Solved] calibre ebook-viewer not working correctly

    In the last few days the ebook-viewer packaged along with calibre has started behaving strangely by inserting gaps or spaces randomly all over books. Calibre itself and the other tools seem to be OK. EDIT: Screenshots Calibre's ebook-viewer: http://i

  • I need help re Adobe Pro 9 and Adobe Xi Standard

    I recently bought a Fujitsu Scan Snap for my home office.  I installed the Scan snap with no issues.  Unfortunately, there are no real instruction with regard to the software end of the installation process.  The scanner came with additional software

  • Active sync contact list

    I cannot get my address book on my palm treo 700xw to transfer to my new Sony laptop with Vista. I've downloaded the hot sync program from Palm.com, and it shows up on the desktop.....but the addresses don't transfer, or if they do, I can't find them