Can somebody give me a good explanation about the exclamation points?

I would really like to know why they show up suddenly, wnen nothing has been done to change anything except to sync the ipod.
So many of my songs suddenly get the excl. point, and I can't locate them on hard drive (know they must be there, just not computer savvy enough to locate them), but they still show up on my ipod and play without any problem.
Where might I find them? (when I answer yes to do you want to locate the file, it doesn't really help much).
When I do actually find the file, what can I do to remove the excl. point so that I can edit title or artist, etc.?
I'm just really curious as to why, for seemingly no reason, the excl. point just suddenly appears.
Thanks,
Sue

The ! next to the songs can mean several things. The files have been moved from the iTunes music folder, or deleted from your computer entirely. Or the song files have been renamed/edited or otherwise changed by some method other than iTunes. Or they are on an ext hd which may at some point become disconnected or powered off. In any event, iTunes has lost track of these song files. If it's none of these things that's causing your issue, then I have no explanation.
You can use Explorer to search your computer for missing songs.
On the Start menu, click "Search".
Select "All Files and folders".
In the "All or part of the file name" field, type the song name and then click "Search".
If you see the file you are looking for in the Search Results window, you can add it back into your iTunes library.
See: How to add songs from your hard drive to iTunes.

Similar Messages

  • Can anyone give me some tech info about the camera on my Pre?

    I'm about to set off on a long, lightweight trip and plan to use the Pre as my only camera on this trip.  I have a few questions about the pre camera which I can't seem to find answers to on the phone itself:
    1.  Is there any way to set the 'picture quality' on the camera - ie, low-res / hi-res - or do I just get what I'm given.
    2.  How 'big' is the filesize of each picture going to be - in other words, how many will I get before my 8Gb pre is 'full'
    3.  Is there any way to zoom with the camera?  I think not, but thought I'd ask...
    4.  To get the pictures off the phone, I plan to send them as attached files with text messages or email, back to base.  Then I could delete them from the pre, to create space. Will this method attach only low quality versions of each picture, or will the original-quality picture be sent?
    Thanks for being here.
    Jeff
    Post relates to: Pre p100ueu (O2)

    In answer to your questions,
    1. No, there is no way to change the resolution.
    2. It depends on the picture you take. I have not seen a spec. on the default file size. I suspect they will be in the KB range.
    3. No, no way to zoom.
    4. When you send the picture it should not change the resolution.
    For reference purposes, click on the following link for the support page for your device on the kb.palm.com webpage.
    http://kb.palm.com/wps/portal/kb/emea/pre/p100eww/​o2/home/page_en.html
    There are links on the page to the user guide, troubleshooting, how to's, downloads, etc.

  • Why can't you simply put a solution to the exclamation point issue into the iTunes program and save a lot of grief for your customers??

    Why can't the great computer iTunes gods simply add a program that solves the great Exclamation Point Bugaboo, making iTunes capable of finding all files and eliminating this massive annoyance and the misery it causes?? Why do we, the customer, have to do the boring drone work and find the **** files when the computer should be doing it??

    This happens if the file is no longer where iTunes expects to find it. Possible causes are that you or some third party tool has moved, renamed or deleted the file, or that the drive it lives on has had a change of drive letter. It is also possible that iTunes has changed from expecting the files to be in the pre-iTunes 9 layout to post-iTunes 9 layout, or vice-versa, and so is looking in slightly the wrong place.
    Select a track with an exclamation mark, use Ctrl-I to get info, then cancel when asked to try to locate the track. Look on the summary tab for the location that iTunes thinks the file should be. Now take a look around your hard drive(s). Hopefully you can locate the track in question. If a section of your library has simply been moved, or a drive letter has changed, it should be possible to reverse the actions.
    Alternatively, as long as you can find a location holding the missing files, then you should be able to use my FindTracks script to reconnect them to iTunes .
    tt2

  • Can somebody give me the formula for the balance column in a check register please? I am trying to setup like sample in iWork but am missing something.

    Can somebody give me the formula for the balance column in a check register please? I am setting the register up like the sample in iWork 09 but I seem to be missing something in the formula.

    OM,
    The way the checking account balance column works is to designate one cell for the starting balance, indicate income with positive figures and outgo with negative figures, summing the transactions and adding the sum to the starting figure.
    The formula used, =$F$1+SUM(OFFSET(F3,3-ROW(),-1,ROW()-2)), is not too difficult to understand if you study the syntax for Offset. The author of this template didn't do us any favors because the expression could have been written more clearly, in my opinion. I'll explain how it's done in the template, and then how I would have written it. With the two approaches you may be able to see what it's all about.
    $F$1 is the starting balance.
    SUM requires a Range specification.
    Offset provides the range specification. The syntax for Offset is as follows:
    Base Cell. In this case it is F3, the cell the expression is written in.
    Row Offset. In this case the author takes the current row number and subtracts the starting row from it. For the first balance the offset will be zero since the first balance is in row 3. For all the subsequent balances, the offset will be negative, meaning that the offset will point to a row above the current row.
    Column Offset. In this case the column offset is 0. That means that it is pointing 1 column to the left, Column E.
    Rows. This parameter sets the length of the range, in rows. Subtracting 2 from the current row number means that the range will be 1 for the first balance and will grow by 1 for each entry down the list.
    Taking all this into account, the range for the Sum function will always be Column E from Row 2 to the current Row.
    How I would have written the balance expression:
    =F$1+SUM(OFFSET(E$3,0,0,ROW()-2))
    I believe it's easier to follow.
    The starting balance is still in F1, but only the row needs to be absolute - a fine point, I know.
    In my expression the base cell for the Offset function is the first entry cell of the transactions, E3. The row needs to be absolute, there is no reason for the base cell to move about as it does in the author's version.
    In my approach, both the row and column offsets are zero. We always start at E3.
    In my approach, the number of rows in the range is the current row number minus 2, just as in the author's expression. That means we include all rows from Row 3 to the current row.
    I'd be happy to answer any other questions about the specifics, but you need to be specific about what you don't get.
    Jerry

  • Can somebody give some real time questions for alv report

    hi guru
    can somebody give some real time questions for alv report.
    answers also.
    regards
    subhasis.

    hi,
    The ALV is a set of function modules and classes and their methods which are added to program code. Developers can use the functionality of the ALV in creating new reports,  saving time which might otherwise have been spent on report enhancement
    The common features of report are column    alignment, sorting, filtering, subtotals, totals etc. <b>To implement these, a lot of coding and logic is to be put. To avoid that we can use a concept called ABAP List Viewer (ALV).</b>
    Using ALV, we can have three types of reports:
       1. Simple Report
       2. Block Report
       3. Hierarchical Sequential Report
    <b>Reward useful points</b>
    Siva

  • Does anybody can give me a simple example about the labview programme calling dll ?

      Does anybody can give me a simple example about the labview programme calling dll ?And the dll is also writed  by using labview .I just want to study  the process of the labview programme calling dll file.Thank you!

    Hi,
    Please click on "Find Examples" in the "Getting Started Window"
     A window named "NI Example Finder" will pop up.
     In this go to "Search" tab
    Type "DLLs"
    You will see a lot of examples. 
    If you're online, you'll see user examples too...

  • Can somebody give me an appreciation of the crp8337 owc bluetooth keypad matching the Apple bluetooth keyboard?

    Can somebody give me an appreciation of the crp8337 owc bluetooth keypad matching the Apple bluetooth keyboard?

    You can upgrade memory and the hard drive. Nothing else is user-upgradeable. All processors are soldered to the motherboard.
    Maximum Memory
    16 GB (Actual) 8 GB (Apple)
    Memory Slots
    2 - 204-pin PC3-12800 (1600 MHz) DDR3 SO-DIMM
    You can see HDD and SSD options at OWC. Reliable RAM vendors are OWC, DataMem, and Crucial.com.

  • Does any one have good idea about the backup and recovery georaster table?

    Does any one have good idea about the backup and recovery georaster table?
    Best Regards,
    Lin
    Edited by: ylin on 2009-10-10 上午2:07

    for backup and recovery, please follow the standard procedure of general database backup and recovery. you need to backup both the georaster table and all related RDT tables.

  • I have ipad 1 can i give you with money to buy the ipad 2 or 3

    i have ipad 1 can i give you with money to buy the ipad 2 or 3

    You are talking to fellow users here, not to Apple, but Apple don't do trade-ins. If you really want the iPad 2 or the new iPad then you will either need to find a store that does do trade-ins, or sell your current iPad privately (e.g. to a friend, locally, eBay etc) and use the proceeds to put towards a new one.

  • Can anyone give me a lit of ALL the final cut pro's in chronological order?

    Can anyone give me a lit of ALL the final cut pro's in chronological order?
    Thank-you

    Everything you need is here:-
    http://en.wikipedia.org/wiki/Final_Cut_Pro_X

  • Can't restore iPod after seeing the "Exclamation point folder icon"

    My iPod showed me the "Exclamation point folder icon" out of the blue... i tried resetting, restoring (upgraded to 7.1 in the process) but when i connect the ipod to my computer it still shows me the icon, then the Apple sign, then "Do not disconnect" (while charging) and then the ipod itself starts clicking...
    any help would be GREATLY appreciated!! very furstrated over here...

    Hello,
    If a sad iPod icon or an exclamation point and folder icon appears on your iPod’s screen, or with sounds of clicking or HD whirring, it is usually the sign of a hard drive problem and you have the power to do something about it now. Your silver bullet of resolving your iPod issue – is to restore your iPod to factory settings.
    http://docs.info.apple.com/article.html?artnum=60983
    If you're having trouble, try these steps at different levels one at a time until the issue is resolved. These steps will often whip your iPod back into shape.
    Make sure you do all the following “TRYs”
    A. Try to wait 30 minutes while iPod is charging.
    B. Try another FireWire or USB through Dock Connector cable.
    C. Try another FireWire or USB port on your computer .
    D. Try to disconnect all devices from your computer's FireWire and USB ports.
    E. Try to download and install the latest version of iPod software and iTunes
    http://www.apple.com/itunes/download/
    For old and other versions of iPod updater for window you can get here
    http://www.ipodwizard.net/showthread.php?t=7369
    F. Try these five steps (known as the five Rs) and it would conquer most iPod issues.
    http://www.apple.com/support/ipod/five_rs/
    G. Try to put the iPod into Disk Mode if it fails to appear on the desktop
    http://docs.info.apple.com/article.html?artnum=93651
    If none of these steps address the issue, you may need to go to Intermediate level listed below in logical order. Check from the top of the lists to see if that is what keeping iPod from appearing on your computer in order for doing the Restore.
    Intermediate Level
    A. Try to connect your iPod with another computer with the iPod updater pre-installed.
    B. Still can’t see your iPod, put it in Disk Mode and connect with a computer, instead of doing a Restore on iPod Updater. Go and format the iPod instead.
    For Mac computer
    1. Open the disk utility, hope your iPod appears there (left hand side), highlight it
    2. Go to Tab “Partition”, click either “Delete” or “Partition”, if fails, skip this step and go to 3
    3. Go to Tab “Erase” , choose Volume Format as “MAC OS Extended (Journaled), and click Erase, again if fails, skip it and go to 4
    4. Same as step 3, but open the “Security Options....” and choose “Zero Out Data” before click Erase. It will take 1 to 2 hours to complete.
    5. Eject your iPod and do a Reset
    6. Open the iTunes 7 and click “Restore”
    For Window computer
    Go to folder “My Computer”
    Hope you can see your iPod there and right click on the iPod
    Choose “Format”. Ensure the settings are at “Default” and that “Quick Format” is not checked
    Now select “Format”
    Eject your iPod and do a Reset
    Open the iTunes 7 and click “Restore”
    In case you do not manage to do a “Format” on a window computer, try to use some 3rd party disk utility software, e.g.“HP USB Disk Storage Format Tool”.
    http://discussions.apple.com/thread.jspa?threadID=501330&tstart=0
    C. Windows users having trouble with their iPods should locate a Mac user. In many cases when an iPod won't show up on a PC that it will show up on the Mac. Then it can be restored. When the PC user returns to his computer the iPod will be recognized by the PC, reformatted for the PC, and usable again. By the way, it works in reverse too. A Mac user often can get his iPod back by connecting it to a PC and restoring it.
    Tips
    a. It does not matter whether the format is completed or not, the key is to erase (or partly) the corrupted firmware files on the Hard Drive of the iPod. After that, when the iPod re-connected with a computer, it will be recognized as an fresh external hard drive, it will show up on the iTunes 7.
    b. It is not a difficult issue for a Mac user to find a window base computer, for a PC user, if they can’t find any Mac user, they can go to a nearest Apple Shop for a favor.
    c. You may need to switch around the PC and Mac, try to do several attempts between “Format” and “Restore”
    http://discussions.apple.com/thread.jspa?messageID=2364921&#2364921
    Advance Level
    A. Diagnostic mode solution
    If you have tried trouble shooting your iPod to no avail after all the steps above, chances are your iPod has a hardware problem. The iPod's built-in Diagnostic Mode is a quick and easy way to determine if you have a "bad" iPod.
    You need to restart your iPod before putting it into Diagnostic Mode. Check that your hold switch is off by sliding the switch away from the headphone jack. Toggle it on and off to be safe.
    Press and hold the following combination of buttons simultaneously for approximately 10 seconds to reset the iPod.
    iPod 1G to 3G: "Menu" and "Play/Pause"
    iPod 4G+ (includes Photo, Nano, Video, and Mini): "Menu" and "Select"
    The Apple logo will appear and you should feel the hard drive spinning up. Press and hold the following sequence of buttons:
    iPod 1G to 3G: "REW", "FFW" and "Select"
    iPod 4G+ (includes Photo, Nano, Video, and Mini): "Back" and "Select"
    You will hear an audible chirp sound (3G models and higher) and the Apple logo should appear backwards. You are now in Diagnostic Mode. Navigate the list of tests using "REW" and "FFW". The scroll wheel will not function while in diagnostic mode. For further details on Diagnostic mode can be found at http://www.methodshop.com/mp3/ipodsupport/diagnosticmode/
    Try to do the 5in1, HDD R/W and HDD scan tests. Some successful cases have been reported after the running the few tests under the Diagnostic mode. In case it does not work in your case, and the scan tests reports show some errors then it proves your iPod has a hardware problem and it needs a repairing service.
    B. Format your iPod with a start disk
    I have not tried this solution myself, I heard that there were few successful cases that the users managed to get their iPod (you must put your iPod in disk mode before connecting with a computer) mounted by the computer, which was booted by a system startup disk. For Mac, you can use the Disk Utility (on the Tiger OS system disk), for PC user, you can use the window OS system disk. Try to find a way to reformat your iPod, again it does not matter which format (FAT32, NTFS or HFS+) you choose, the key is to erase the corrupted system files on the iPod. Then eject your iPod and do a Reset to switch out from Disk Mode. Reboot your computer at the normal way, connect your iPod back with it, open the iPod updater, and hopefully your iPod will appear there for the Restore.
    If none of these steps address the issue, your iPod may need to be repaired.
    Consider setting up a mail-in repair for your iPod http://depot.info.apple.com/ipod/
    Or visit your local Apple Retail Store http://www.apple.com/retail/
    In case your iPod is no longer covered by the warranty and you want to find a second repairing company, you can try iPodResQ at your own risk
    http://www.ipodresq.com/index.php
    Just in case that you are at the following situation
    Your iPod warranty is expired
    You don’t want to pay any service charges
    You are prepared to buy a new one
    You can’t accept the re-sell value of your broken iPod
    Rather than leave your iPod as paper-weight or throw it away.
    You can try the following, but again, only do it as your last resort and at your own risk.
    Warning !!!! – It may or may not manage to solve your problem, and with a risk that you may further damage your iPod, which end up as an expensive paper weight or you need to pay more higher repairing cost. Therefore, please re-consider again whether you want to try the next level
    Last Resort Level
    1. . Disconnecting the Hard Drive and battery inside the iPod – Warning !! Your iPod warranty will be waived once you open the iPod.
    In Hong Kong there are some electronic shops offering an iPod service for Sad iPod, the first thing they do is to open up the iPod’s case and disconnecting the battery and the Hard Drive from the main board of the iPod. Wait for 5-10 minutes and reconnecting them back. The reason behind which I can think of is to do a fully reset of a processor of the iPod. In case you want do it itself and you believe that you are good on fixing the electronics devices and have experience to deal with small bits of electronic parts, then you can read the following of how to open the iPod case for battery and HDD replacement (with Quicktimes)
    http://eshop.macsales.com/tech_center/index.cfm?page=Video/directory.html
    2.Press the reset button on the Hard Drive inside the iPod – Suggestion from Kill8joy
    http://discussions.apple.com/thread.jspa?messageID=2438774#2438774
    Have I tried these myself? No, I am afraid to do it myself as I am squeamish about tinkering inside electronic devices, I have few experiences that either I broke the parts (which are normally tiny or fragile) or failed to put the parts back to the main case. Therefore, I agree with suggestion to have it fixed by a Pro.
    2. Do a search on Google and some topics on this discussion forum about “Sad iPod”
    Exclamation point and folder and nothing else
    http://discussions.apple.com/thread.jspa?messageID=3597173#3597173
    Exclamation point and folder and nothing else
    http://discussions.apple.com/thread.jspa?messageID=2831962#2831962
    What should I do with my iPod? Send it or keep it?
    http://discussions.apple.com/thread.jspa?threadID=469080&tstart=0
    Strange error on iPod (probably death)
    http://discussions.apple.com/thread.jspa?threadID=435160&start=0&tstart=0
    Sad Face on iPod for no apparent reason
    http://discussions.apple.com/thread.jspa?threadID=336342&start=0&tstart=0
    Meeting the Sad iPod icon
    http://askpang.typepad.com/relevanthistory/2004/11/meeting_thesad.html#comment-10519524
    Sad faced iPod, but my computer won’t recognize it?
    http://discussions.apple.com/thread.jspa?messageID=2236095#2236095
    iPod Photo: unhappy icon + warranty question
    http://discussions.apple.com/thread.jspa?messageID=2233746#2233746
    4th Gen iPod Users - are we all having the same problem?
    http://discussions.apple.com/message.jspa?messageID=2235623#2235623
    Low Battery, and clicking sounds
    http://discussions.apple.com/thread.jspa?messageID=2237714#2237714
    Sad faced iPod, but my computer won’t recognize it
    http://discussions.apple.com/thread.jspa?messageID=2242018#2242018
    Sad iPod solution
    http://discussions.apple.com/thread.jspa?threadID=412033&tstart=0
    Re: try to restore ipod and it says "can't mount ipod"
    http://discussions.apple.com/thread.jspa?threadID=443659&tstart=30
    iPod making clicking noise and is frozen
    http://discussions.apple.com/thread.jspa?messageID=2420150#2420150
    Cant put it into disk mode
    http://discussions.apple.com/thread.jspa?messageID=3786084#3786084
    I think my iPod just died its final death
    http://discussions.apple.com/thread.jspa?messageID=3813051
    Apple logo & monochrome battery stay
    http://discussions.apple.com/thread.jspa?messageID=3827167#3827167
    I am not suggesting that you should follow as well, but just read them as your reference. You are the person to make the call.
    Finally, I read a fair comments from dwb, regarding of slapping the back of the iPod multiple times
    Quote “This has been discussed numerous times as a 'fix'. It does work, at least for a while. In fact I remember using the same basic trick to revive Seagate and Quantam drives back in the mid to late 1980's. Why these tiny hard drives go bad I don't know - could be the actuator gets stuck in place or misaligned. Could be the platter gets stuck or the motor gets stuck. 'Stiction' was a problem for drives back in the 80's. Unfortunately the fix can cause damage to the platter so we temporarily fix one problem by creating another. But I know of two instances where a little slap onto the table revived the iPods and they are still worked a year or more later.”UnQuote

  • How can I get "IMAQ Line Fit" stable (with the same points)

    How can I get "IMAQ Line Fit" stable (with the same points)
    I my vision applications I use a lot off times "IMAQ Line Fit"
    some times the results are not Stable.
    See vi and word document attached.
    When I take the same points but in a other order (sort)
    then suddenly all points are used.
    In this case I was looking for a edge in vertical direction (Y).
    I found the points but "IMAQ Line Fit" did not function well.
    I tried changing all settings like pixel radius and minimum score and
    also threshold and so on. But no result.
    Then I sorted the points reversed and that worked. See vi.
    I use labview Labview 8.6.0 and IMAQ machine vision.
    Maybe this problem is solved in a newer version.
    Please let me know.
    Thanks
    Attachments:
    TEST-imaq-line-fit-86.vi ‏169 KB
    IMAQ-Fit-Line-Problem-86.doc ‏230 KB

    Thank You for your reaction Hossein,
    This "one application" uses "Line fit" about 20 000 000 times a day.
    about 200 will go wrong. With your setting the the "Line fit" for this occasion will work but others will go wrong.
    A algorithm should be:
    1e Stable, when using the same points and settings the result MUST be the same. How the points are sorted should not matter.
    2e Accuracy
    3e Speed
    4e Testing. Is very difficult but al least close points and the same points and sorting ... should be done
    NI now as made a " IMAQ Line Fit" Problem CAR (Corrective Action request) 298016.
    so in the future there will be a update.
    In the mean while a made a line fit which uses Bisquare option from Linear Fit.vi :
      from C:\Program Files\National Instruments\LabVIEW 8.6\vi.lib\analysis\6fits.llb
    This is a temporary fix because "IMAQ Fit Line VI" is not so stable.
    Because outliers should be rejected only Bisquare does this reasonable.
    This program does NOT USE "Minimum Score" and "Pixel Radius"
    Valid fit = When there are enough points within Outlier_Distance.
    Algorithm steps:
    - Determine if line is more horizontal then vertical, Compare DeltaX with DeltaY
    - If DeltaX <= DeltaY then SWAP X Y and later Swap back
    - Sort Points at on X value
    - First : Bisquare Linear Fit
    - Calculate distances to the found line for all points
    - Inliers: Points within Outlier_distance
    - Outliers: Points outside Outlier_Distance
    - Only use Inlier Points
    - Check again if DeltaX < DeltaY then SWAP X Y later SWAP back again
    - Second : Bisquare Linear Fit only with the Inlier Points
    - Results are from the second fit
    Warning : This Program is Not so accurate and Not so fast
    See attachments it is in labview 8.6
    If some has a improvement please let me know.
    Thanks
    Attachments:
    svi_fit_line_Bsquare_and_draw.vi ‏18 KB
    Fit_Line_Bisquare_Linear.vi ‏40 KB

  • Can somebody give me a sample about alv oo?

    hi experts ,can you give me a sample about alv using oo method,
    i have tried
    data GS_LAYOUT TYPE SLIS_LAYOUT_ALV.
    data lt_fieldcat TYPE slis_t_fieldcat_alv.
        call method alv_grid->set_table_for_first_display
            exporting is_layout = gs_layout
            changing it_outtab = itab_data
                     it_fieldcatalog = lt_fieldcat.
    but the code cann't be compiled, and says "lt_fieldcat is not type-compatible with formal parameter it_fieldcatalog.",and so is the gs_layout.
    can you give me a sample for using alv oo ,and use the fieldcat to set table for first display, not to use i_structure_name.
    Message was edited by:
            liu shaochang

    Hi,
    Please take a look at my code below. Just create a custom control in screen painter and PF-status and title as well. Hope it helps...
    P.S. Please award points if it helps...
    [code]
    *& Report ZFI_CASH_PROOF_SHEET
    *& PROGRAM TYPE  : Report
    *& RICEF ID      : R-149
    *& TITLE         : ZFI_CASH_PROOF_SHEET
    *& SAP Module    : FI
    *& CREATION DATE : 11/06/2007
    *& AUTHOR        : Aris Hidalgo
    *& DESIGNER      : Aris Hidalgo
    *& DESCRIPTION   :
    $*********************************************************************
    *$     CHANGE HISTORY
    *$----
    *$   DATE        | T-Num      | Description                  | Reference
                  |            |                              |
    $*********************************************************************
    REPORT  zfi_cash_proof_sheet
            NO STANDARD PAGE HEADING
            MESSAGE-ID zfi.
    Data Dictionary Table/s                      *
    TABLES: t012k.
    CLASS lcl_event_receiver DEFINITION DEFERRED.
    Global Data/s                                *
    DATA: gt_fieldcat          TYPE lvc_t_fcat,
          wa_fieldcat          LIKE LINE OF gt_fieldcat,
          ok_code              TYPE syst-ucomm,
          save_ok              TYPE syst-ucomm,
          g_repid              TYPE syst-repid,
          gs_layout            TYPE lvc_s_layo,
          gv_container         TYPE scrfname VALUE 'CUSTOM_CONTROL',
          lcl_grid1            TYPE REF TO cl_gui_alv_grid,
          lcl_custom_container TYPE REF TO cl_gui_custom_container,
          gs_disvariant        TYPE disvariant,
          lcl_event_receiver   TYPE REF TO lcl_event_receiver,
          gt_sort              TYPE lvc_t_sort,
          gs_sort              TYPE lvc_s_sort.
    Global Structure/s                           *
    TYPES: BEGIN OF t_output,
                bukrs              TYPE bsis-bukrs,
                hbkid              TYPE t012k-hbkid,
                hktid              TYPE t012k-hktid,
                cash_in_bank       TYPE bsis-dmbtr,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
                misc_collection    TYPE bsis-dmbtr,
                outs_rel_checks    TYPE bsis-dmbtr,
                treas_transactions TYPE bsis-dmbtr,
                tot_cash_bal       TYPE bsis-dmbtr,
                outs_unrel_checks  TYPE bsis-dmbtr,
                imp_docs_due       TYPE bsis-dmbtr,
                est_cash_balance   TYPE bsis-dmbtr,
               END OF t_output.
    DATA: gt_output TYPE STANDARD TABLE OF t_output,
          wa_output LIKE LINE OF gt_output.
    SELECTION-SCREEN                             *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_bukrs FOR t012k-bukrs OBLIGATORY,
                    s_hbkid FOR t012k-hbkid,
                    s_hktid FOR t012k-hktid.
    PARAMETERS:     p_budat TYPE bsak-budat OBLIGATORY.
    SELECTION-SCREEN END OF BLOCK b1.
    */ CLASS DEFINITION/S */
          CLASS lcl_data_def DEFINITION
    CLASS lcl_data_def DEFINITION ABSTRACT.
      PUBLIC SECTION.
        TYPES: BEGIN OF t_t012k,
                bukrs TYPE t012k-bukrs,
                hbkid TYPE t012k-hbkid,
                hktid TYPE t012k-hktid,
                hkont TYPE t012k-hkont,
               END OF t_t012k.
        TYPES: BEGIN OF t_bsis_bsas,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                belnr TYPE bsis-belnr,
                buzei TYPE bsis-buzei,
                gjahr TYPE bsis-gjahr,
                budat TYPE bsis-budat,
                blart TYPE bsis-blart,
                dmbtr TYPE bsis-dmbtr,
                shkzg TYPE bsis-shkzg,
               END OF t_bsis_bsas.
        TYPES: BEGIN OF t_bsid_bsad,
                bukrs TYPE bsid-bukrs,
                belnr TYPE bsid-belnr,
                gjahr TYPE bsid-gjahr,
                blart TYPE bsid-blart,
                buzei TYPE bsid-buzei,
                budat TYPE bsid-budat,
                dmbtr TYPE bsid-dmbtr,
                shkzg TYPE bsid-shkzg,
                bschl TYPE bsid-bschl,
               END OF t_bsid_bsad.
        TYPES: BEGIN OF t_cash_in_bank,
                bukrs TYPE bsis-bukrs,
                hkont TYPE bsis-hkont,
                dmbtr TYPE bsis-dmbtr,
               END OF t_cash_in_bank.
        TYPES: BEGIN OF t_outs_trade_coll,
                bukrs              TYPE bsis-bukrs,
                hkont              TYPE bsis-hkont,
                one_day            TYPE bsis-dmbtr,
                two_days           TYPE bsis-dmbtr,
                more_than_two_days TYPE bsis-dmbtr,
               END OF t_outs_trade_coll.
        TYPES: BEGIN OF t_zcheck_monitor,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zhbkid TYPE zcheck_monitor-zhbkid,
                zhktid TYPE zcheck_monitor-zhktid,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
                zrlsvd TYPE zcheck_monitor-zrlsvd,
                zrlsdt TYPE zcheck_monitor-zrlsdt,
               END OF t_zcheck_monitor.
        TYPES: BEGIN OF t_zcheck_monitor_collect,
                zzbukr TYPE zcheck_monitor-zzbukr,
                zubhkt TYPE zcheck_monitor-zubhkt,
                zrwbtr TYPE zcheck_monitor-zrwbtr,
               END OF t_zcheck_monitor_collect.
        TYPES: BEGIN OF t_company,
                bukrs TYPE t001-bukrs,
                butxt TYPE t001-butxt,
               END OF t_company.
        TYPES: BEGIN OF t_header,
                bukrs     TYPE t001-bukrs,
                butxt     TYPE t001-butxt,
                hbkid     TYPE t012k-hbkid,
                hktid     TYPE t012k-hktid,
                expand(1) TYPE c,
               END OF t_header.
        DATA: gt_t012k                  TYPE HASHED TABLE OF t_t012k
                                        WITH UNIQUE KEY bukrs hbkid hktid,
              gt_bsis                   TYPE STANDARD TABLE OF t_bsis_bsas,
              wa_bsis                   LIKE LINE OF gt_bsis,
              gt_bsas                   LIKE gt_bsis,
              gt_bsis_bsas              LIKE gt_bsas,
              gt_bsid_bsad              TYPE STANDARD TABLE OF t_bsid_bsad
                                        WITH NON-UNIQUE KEY bukrs belnr gjahr blart,
              gt_bsid                   LIKE gt_bsid_bsad,
              gt_bsad                   LIKE gt_bsid_bsad,
              gt_bsik                   LIKE gt_bsid_bsad,
              gt_bsak                   LIKE gt_bsid_bsad,
              gt_cash_in_bank           TYPE HASHED TABLE OF t_cash_in_bank
                                        WITH UNIQUE KEY bukrs hkont,
              gt_misc_collection        LIKE gt_cash_in_bank,
              wa_misc_collection        LIKE LINE OF gt_misc_collection,
              gt_importation_docs_due   LIKE gt_cash_in_bank,
              wa_importation_docs_due   LIKE LINE OF gt_importation_docs_due,
              wa_cash_in_bank           LIKE LINE OF gt_cash_in_bank,
              gt_outs_trade_coll        TYPE HASHED TABLE OF t_outs_trade_coll
                                        WITH UNIQUE KEY bukrs hkont,
              wa_outs_trade_coll        LIKE LINE OF gt_outs_trade_coll,
              gt_zcheck_monitor         TYPE STANDARD TABLE OF t_zcheck_monitor,
              gt_zcheck_monitor_collect TYPE HASHED TABLE OF t_zcheck_monitor_collect
                                        WITH UNIQUE KEY zzbukr zubhkt,
              wa_zcheck_monitor_collect LIKE LINE OF gt_zcheck_monitor_collect,
              gt_outs_rel_checks        LIKE gt_cash_in_bank,
              wa_outs_rel_checks        LIKE LINE OF gt_outs_rel_checks,
              gt_outs_unrel_checks      LIKE gt_cash_in_bank,
              wa_outs_unrel_checks      LIKE LINE OF gt_outs_unrel_checks,
              gt_company                TYPE HASHED TABLE OF t_company
                                        WITH UNIQUE KEY bukrs,
              wa_company                LIKE LINE OF gt_company,
              gt_header                 TYPE STANDARD TABLE OF t_header,
              wa_header                 LIKE LINE OF gt_header.
    ENDCLASS.                    "lcl_data_def DEFINITION
          CLASS lcl_get_data DEFINITION
    CLASS lcl_get_data DEFINITION INHERITING FROM lcl_data_def.
      PUBLIC SECTION.
        METHODS: get_bank_details,
                 get_gl_balances,
                 get_cust_items,
                 get_vend_items,
                 sum_gl_accounts,
                 monday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 sunday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 tuesday_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 other_days_routines
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_bukrs TYPE bsis-bukrs
                     im_hkont TYPE bsis-hkont
                     im_budat TYPE bsis-budat
                     im_dmbtr TYPE bsis-dmbtr,
                 difference_in_days
                   IMPORTING
                     im_date  TYPE bsis-budat
                     im_budat TYPE bsis-budat
                   EXPORTING
                     ex_diff  TYPE vtbbewe-atage,
                 outs_check_released,
                 process_data.
      PRIVATE SECTION.
        CONSTANTS: lc_credit   TYPE bsis-shkzg VALUE 'H',
                   lc_debit    TYPE bsis-shkzg VALUE 'S',
                   lc_nt       TYPE bsis-blart VALUE 'NT',
                   lc_nc       TYPE bsis-blart VALUE 'NC',
                   lc_gl_zero  TYPE bsis-hkont VALUE '+++++++++0',
                   lc_gl_one   TYPE bsis-hkont VALUE '+++++++++1',
                   lc_gl_three TYPE bsis-hkont VALUE '+++++++++3',
                   lc_monday   TYPE dtresr-weekday VALUE 'Monday',"#EC NOTEXT
                   lc_tuesday  TYPE dtresr-weekday VALUE 'Tuesday',"#EC NOTEXT
                   lc_sunday   TYPE dtresr-weekday VALUE 'Sunday'."#EC NOTEXT
        CONSTANTS: lc_k3  TYPE bsik-blart VALUE 'K3',
                   lc_k4  TYPE bsik-blart VALUE 'K4',
                   lc_k5  TYPE bsik-blart VALUE 'K5',
                   lc_k6  TYPE bsik-blart VALUE 'K6',
                   lc_k7  TYPE bsik-blart VALUE 'K7',
                   lc_kb  TYPE bsik-blart VALUE 'KB',
                   lc_kd  TYPE bsik-blart VALUE 'KD',
                   lc_31  TYPE bsid-blart VALUE '31',
                   lc_001 TYPE bsid-buzei VALUE '001'.
        DATA: lv_hkont           TYPE bsis-hkont,
              lr_hkont           TYPE RANGE OF bsis-hkont,
              wa_hkont           LIKE LINE OF lr_hkont,
              lr_blart           TYPE RANGE OF bsik-blart,
              wa_blart           LIKE LINE OF lr_blart,
              lv_hkont_new       TYPE bsis-hkont,
              lv_hkont_old       TYPE bsis-hkont,
              lv_date            TYPE vtbbewe-atage,
              lv_budat           TYPE bsis-budat,
              lv_day             TYPE dtresr-weekday.
    ENDCLASS.                    "lcl_get_data DEFINITION
          CLASS lcl_alv_routines DEFINITION
    CLASS lcl_alv_routines DEFINITION INHERITING FROM lcl_data_def.
      PUBLIC SECTION.
        METHODS: build_fieldcat   FINAL,
                 sort_alv_display FINAL.
    ENDCLASS.                    "lcl_alv_routines DEFINITION
          CLASS lcl_event_receiver DEFINITION
    CLASS lcl_event_receiver DEFINITION.
      PUBLIC SECTION.
        METHODS:
          handle_data_changed FOR EVENT data_changed OF cl_gui_alv_grid
            IMPORTING
              er_data_changed,
          handle_top_of_page FOR EVENT print_top_of_page OF cl_gui_alv_grid,
          handle_top_of_list FOR EVENT print_top_of_list OF cl_gui_alv_grid.
      PRIVATE SECTION.
        DATA: ls_good               TYPE lvc_s_modi,
              lv_treas_transactions TYPE t_output-tot_cash_bal,
              lv_tot_cash_bal       TYPE t_output-tot_cash_bal,
              lv_outs_unrel_checks  TYPE t_output-outs_unrel_checks,
              lv_imp_docs_due       TYPE t_output-imp_docs_due,
              lv_est_cash_balance   TYPE t_output-est_cash_balance.
    ENDCLASS.                    "lcl_event_receiver DEFINITION
    */ CLASS IMPLEMENTATION/S */
          CLASS lcl_get_data IMPLEMENTATION
    CLASS lcl_get_data IMPLEMENTATION.
    METHOD get_bank_details
      METHOD get_bank_details.
        FIELD-SYMBOLS: <fs_t012k> LIKE LINE OF gt_t012k.
      Get bank account/s and their corresponding G/L account/s
        SELECT bukrs hbkid
               hktid hkont
          FROM t012k
          INTO TABLE gt_t012k
         WHERE bukrs IN s_bukrs
           AND hbkid IN s_hbkid
           AND hktid IN s_hktid.
        IF NOT gt_t012k[] IS INITIAL.
          SORT gt_t012k BY bukrs hbkid hktid hkont.
        Get company name
          SELECT bukrs butxt
            FROM t001
            INTO TABLE gt_company
             FOR ALL ENTRIES IN gt_t012k
           WHERE bukrs = gt_t012k-bukrs.
          LOOP AT gt_t012k ASSIGNING <fs_t012k>.
            wa_hkont-sign   = 'I'.
            wa_hkont-option = 'EQ'.
            wa_hkont-low    = <fs_t012k>-hkont.
            SHIFT wa_hkont-low LEFT DELETING LEADING space.
            APPEND wa_hkont TO lr_hkont.
            CLEAR wa_hkont.
            lv_hkont_new = <fs_t012k>-hkont.
            IF lv_hkont_new <> lv_hkont_old.
              CLEAR lv_hkont.
              lv_hkont = <fs_t012k>-hkont.
              DO 4 TIMES.
                ADD 1 TO lv_hkont.
                CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
                  EXPORTING
                    input  = lv_hkont
                  IMPORTING
                    output = lv_hkont.
                wa_hkont-sign   = 'I'.
                wa_hkont-option = 'EQ'.
                wa_hkont-low    = lv_hkont.
                SHIFT wa_hkont-low LEFT DELETING LEADING space.
                APPEND wa_hkont TO lr_hkont.
                CLEAR wa_hkont.
              ENDDO.
            ENDIF.
            lv_hkont_old = lv_hkont_new.
          ENDLOOP.
          CALL METHOD me->get_gl_balances.
        ENDIF.
      ENDMETHOD.                    "get_bank_details
    METHOD get_gl_balances
      METHOD get_gl_balances.
      Get G/L line items(Open items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsis
          INTO TABLE gt_bsis
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
      Get G/L line items(Cleared items)
        SELECT bukrs hkont belnr
               buzei gjahr budat
               blart dmbtr shkzg
          FROM bsas
          INTO TABLE gt_bsas
           FOR ALL ENTRIES IN gt_t012k
         WHERE bukrs = gt_t012k-bukrs
           AND hkont IN lr_hkont
           AND budat <= p_budat.
        APPEND LINES OF gt_bsis TO gt_bsis_bsas.
        APPEND LINES OF gt_bsas TO gt_bsis_bsas.
        IF NOT gt_bsis_bsas[] IS INITIAL.
          CALL METHOD me->get_cust_items.
          CALL METHOD me->get_vend_items.
          CALL METHOD me->sum_gl_accounts.
        ENDIF.
      ENDMETHOD.                    "get_gl_balances
    METHOD get_cust_items
      METHOD get_cust_items.
      Get customer line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
               bschl
          FROM bsid
          INTO TABLE gt_bsid
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
      Get customer line items(Cleared items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
               bschl
          FROM bsad
          INTO TABLE gt_bsad
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
        APPEND LINES OF gt_bsid TO gt_bsid_bsad.
        APPEND LINES OF gt_bsad TO gt_bsid_bsad.
      ENDMETHOD.                    "get_cust_items
    METHOD get_vend_items
      METHOD get_vend_items.
      Get vendor line items(Open items)
        SELECT bukrs belnr gjahr blart
               buzei budat dmbtr shkzg
               bschl
          FROM bsik
          INTO TABLE gt_bsik
           FOR ALL ENTRIES IN gt_bsis_bsas
         WHERE bukrs = gt_bsis_bsas-bukrs
           AND gjahr = gt_bsis_bsas-gjahr
           AND belnr = gt_bsis_bsas-belnr.
        DEFINE m_blart.
          wa_blart-sign   = 'I'.
          wa_blart-option = 'EQ'.
          wa_blart-low    = &1.
          append wa_blart to lr_blart.
          clear wa_blart.
        END-OF-DEFINITION.
        m_blart lc_k3.
        m_blart lc_k4.
        m_blart lc_k5.
        m_blart lc_k6.
        m_blart lc_k7.
        m_blart lc_kb.
        m_blart lc_kd.
        IF NOT gt_bsik[] IS INITIAL AND NOT lr_blart[] IS INITIAL.
          DELETE gt_bsik WHERE blart NOT IN lr_blart[].
          DELETE gt_bsik WHERE bschl <> lc_31.
        ENDIF.
      ENDMETHOD.                    "get_vend_items
    METHOD sum_gl_accounts
      METHOD sum_gl_accounts.
        FIELD-SYMBOLS: <fs_bsis_bsas>         LIKE LINE OF gt_bsis_bsas,
                       <fs_bsis>              LIKE LINE OF gt_bsis,
                       <fs_bsid_bsad>         LIKE LINE OF gt_bsid_bsad,
                       <fs_bsik>              LIKE LINE OF gt_bsik,
                       <fs_outs_rel_checks>   LIKE LINE OF gt_outs_rel_checks,
                       <fs_outs_unrel_checks> LIKE LINE OF gt_outs_unrel_checks.
        SORT gt_bsis_bsas BY bukrs hkont belnr.
        LOOP AT gt_bsis_bsas ASSIGNING <fs_bsis_bsas>.
          IF <fs_bsis_bsas>-shkzg = lc_credit.   "H
            MULTIPLY <fs_bsis_bsas>-dmbtr BY -1.
          ENDIF.
    */Routine for cash in bank
          IF <fs_bsis_bsas>-hkont CP lc_gl_zero.
            MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_cash_in_bank.
            COLLECT wa_cash_in_bank INTO gt_cash_in_bank.
            CLEAR wa_cash_in_bank.
          ENDIF.
    */Routine for miscellaneous collection
          IF <fs_bsis_bsas>-blart = lc_nt OR
             <fs_bsis_bsas>-blart = lc_nc AND
             <fs_bsis_bsas>-shkzg = lc_debit AND
             <fs_bsis_bsas>-hkont CP lc_gl_one.
            READ TABLE gt_bsid_bsad ASSIGNING <fs_bsid_bsad> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                            belnr = <fs_bsis_bsas>-belnr
                                                                            gjahr = <fs_bsis_bsas>-gjahr
                                                                            blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_misc_collection.
              COLLECT wa_misc_collection INTO gt_misc_collection.
              CLEAR wa_misc_collection.
            ENDIF.
          ENDIF.
    */Routine for importation docs.due
          IF <fs_bsis_bsas>-shkzg = lc_credit.
            READ TABLE gt_bsik ASSIGNING <fs_bsik> WITH TABLE KEY bukrs = <fs_bsis_bsas>-bukrs
                                                                  belnr = <fs_bsis_bsas>-belnr
                                                                  gjahr = <fs_bsis_bsas>-gjahr
                                                                  blart = <fs_bsis_bsas>-blart.
            IF sy-subrc = 0.
              MOVE-CORRESPONDING <fs_bsis_bsas> TO wa_importation_docs_due.
              COLLECT wa_importation_docs_due INTO gt_importation_docs_due.
              CLEAR gt_importation_docs_due.
            ENDIF.
          ENDIF.
        ENDLOOP.
        IF NOT gt_bsis[] IS INITIAL.
          IF NOT gt_bsis[] IS INITIAL.
            lv_budat = p_budat.
            CALL FUNCTION 'DATE_TO_DAY'
              EXPORTING
                date    = lv_budat
              IMPORTING
                weekday = lv_day.
            LOOP AT gt_bsis ASSIGNING <fs_bsis>.
    */Routine for outstanding trade collection
              IF <fs_bsis>-shkzg = lc_debit AND <fs_bsis>-blart <> lc_nt.
                IF lv_day = lc_monday.
                  CALL METHOD me->monday_routines
                    EXPORTING
                      im_date  = p_budat
                      im_bukrs = <fs_bsis>-bukrs
                      im_hkont = <fs_bsis>-hkont
                      im_budat = <fs_bsis>-budat
                      im_dmbtr = <fs_bsis>-dmbtr.
                ELSEIF lv_day = lc_sunday.
                  CALL METHOD me->sunday_routines
                    EXPORTING
                      im_date  = p_budat
                      im_bukrs = <fs_bsis>-bukrs
                      im_hkont = <fs_bsis>-hkont
                      im_budat = <fs_bsis>-budat
                      im_dmbtr = <fs_bsis>-dmbtr.
                ELSEIF lv_day = lc_tuesday.
                  CALL METHOD me->tuesday_routines
                    EXPORTING
                      im_date  = p_budat
                      im_bukrs = <fs_bsis>-bukrs
                      im_hkont = <fs_bsis>-hkont
                      im_budat = <fs_bsis>-budat
                      im_dmbtr = <fs_bsis>-dmbtr.
                ELSE.
                  CALL METHOD me->other_days_routines
                    EXPORTING
                      im_date  = p_budat
                      im_bukrs = <fs_bsis>-bukrs
                      im_hkont = <fs_bsis>-hkont
                      im_budat = <fs_bsis>-budat
                      im_dmbtr = <fs_bsis>-dmbtr.
                ENDIF.
              ENDIF.
    */Routine for outstanding released checks
              IF <fs_bsis>-hkont CP lc_gl_three AND <fs_bsis>-shkzg = lc_debit.
                MOVE-CORRESPONDING <fs_bsis> TO wa_outs_rel_checks.
                COLLECT wa_outs_rel_checks INTO gt_outs_rel_checks.
                CLEAR wa_outs_rel_checks.
    */Routine for outstanding unreleased checks
              ELSEIF <fs_bsis>-hkont CP lc_gl_three AND <fs_bsis>-shkzg = lc_credit.
                MOVE-CORRESPONDING <fs_bsis> TO wa_outs_unrel_checks.
                COLLECT wa_outs_unrel_checks INTO gt_outs_unrel_checks.
                CLEAR wa_outs_unrel_checks.
              ENDIF.
            ENDLOOP.
          ENDIF.
        ENDIF.
    */Routine for outstanding released check/s
    */this routine will get all records from custom table zcheck_monitor
    */where status is released to vendor
        CALL METHOD me->outs_check_released.
        IF NOT gt_outs_rel_checks[] IS INITIAL.
        Subtract debit line items from ZFE002
          LOOP AT gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>.
            CLEAR wa_zcheck_monitor_collect.
            READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                                 WITH TABLE KEY zzbukr = <fs_outs_rel_checks>-bukrs
                                                                zubhkt = <fs_outs_rel_checks>-hkont.
            IF sy-subrc = 0.
              <fs_outs_rel_checks>-dmbtr = wa_zcheck_monitor_collect-zrwbtr -
                                           <fs_outs_rel_checks>-dmbtr.
            ELSE.
              <fs_outs_rel_checks>-dmbtr = 0 - <fs_outs_rel_checks>-dmbtr.
            ENDIF.
          ENDLOOP.
        ENDIF.
        IF NOT gt_outs_unrel_checks[] IS INITIAL.
        Subtract ZFE002 records from credit line items
          LOOP AT gt_outs_unrel_checks ASSIGNING <fs_outs_unrel_checks>.
            CLEAR wa_zcheck_monitor_collect.
            READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                                 WITH TABLE KEY zzbukr = <fs_outs_unrel_checks>-bukrs
                                                                zubhkt = <fs_outs_unrel_checks>-hkont.
            IF sy-subrc = 0.
              <fs_outs_unrel_checks>-dmbtr =  ABS( <fs_outs_unrel_checks>-dmbtr ) -
                                              ABS( wa_zcheck_monitor_collect-zrwbtr ).
            ENDIF.
          ENDLOOP.
        ENDIF.
      Move records to output table
        CALL METHOD me->process_data.
      ENDMETHOD.                    "sum_gl_accounts
    METHOD monday_routines
      METHOD monday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 3.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "monday_routines
    METHOD sunday_routines
      METHOD sunday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 2.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 3.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "sunday_routines
    METHOD tuesday_routines
      METHOD tuesday_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 4.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 4.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "tuesday_routines
    METHOD other_days_routines
      METHOD other_days_routines.
        wa_outs_trade_coll-bukrs   = im_bukrs.
        wa_outs_trade_coll-hkont   = im_hkont.
        CLEAR lv_date.
        CALL METHOD me->difference_in_days
          EXPORTING
            im_date  = im_date
            im_budat = im_budat
          IMPORTING
            ex_diff  = lv_date.
      One day
        IF lv_date = 1.
          wa_outs_trade_coll-one_day = im_dmbtr.
      Two days
        ELSEIF lv_date = 2.
          wa_outs_trade_coll-two_days = im_dmbtr.
      More than two days
        ELSEIF lv_date > 3.
          wa_outs_trade_coll-more_than_two_days = im_dmbtr.
        ENDIF.
        COLLECT wa_outs_trade_coll INTO gt_outs_trade_coll.
        CLEAR wa_outs_trade_coll.
      ENDMETHOD.                    "other_days_routines
    METHOD difference_in_days
      METHOD difference_in_days.
        CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
          EXPORTING
            i_date_from          = im_budat
          I_KEY_DAY_FROM       =
            i_date_to            = im_date
          I_KEY_DAY_TO         =
          I_FLG_SEPARATE       = ' '
          IMPORTING
            e_days               = ex_diff.
          E_MONTHS             =
          E_YEARS              =
      ENDMETHOD.                    "difference_in_days
    METHOD outs_check_released
      METHOD outs_check_released.
        FIELD-SYMBOLS: <fs_zcheck_monitor> LIKE LINE OF gt_zcheck_monitor.
        SELECT zzbukr zhbkid zhktid
               zubhkt zrwbtr zrlsvd
               zrlsdt
          FROM zcheck_monitor
          INTO TABLE gt_zcheck_monitor
         WHERE zrlsvd <> space.
        IF NOT gt_zcheck_monitor[] IS INITIAL.
          LOOP AT gt_zcheck_monitor ASSIGNING <fs_zcheck_monitor>.
            MOVE-CORRESPONDING <fs_zcheck_monitor> TO wa_zcheck_monitor_collect.
            COLLECT wa_zcheck_monitor_collect INTO gt_zcheck_monitor_collect.
            CLEAR wa_zcheck_monitor_collect.
          ENDLOOP.
        ENDIF.
      ENDMETHOD.                    "outs_check_released
    METHOD process_data
      METHOD process_data.
        FIELD-SYMBOLS: <fs_t012k>             LIKE LINE OF gt_t012k,
                       <fs_company>           LIKE LINE OF gt_company,
                       <fs_cash_in_bank>      LIKE LINE OF gt_cash_in_bank,
                       <fs_outs_trade_coll>   LIKE LINE OF gt_outs_trade_coll,
                       <fs_misc_collection>   LIKE LINE OF gt_misc_collection,
                       <fs_outs_rel_checks>   LIKE LINE OF gt_outs_rel_checks,
                       <fs_outs_unrel_checks> LIKE LINE OF gt_outs_unrel_checks.
        SORT gt_t012k BY bukrs hbkid.
        LOOP AT gt_t012k ASSIGNING <fs_t012k>.
          AT NEW hbkid.
            READ TABLE gt_company ASSIGNING <fs_company>
                                  WITH TABLE KEY bukrs = <fs_t012k>-bukrs.
            IF sy-subrc = 0.
              wa_header-bukrs = <fs_company>-bukrs.
              wa_header-butxt = <fs_company>-butxt.
              wa_header-hbkid = <fs_t012k>-hbkid.
             wa_header-hktid = <fs_t012k>-hktid.
              APPEND wa_header TO gt_header.
              CLEAR wa_header.
            ENDIF.
          ENDAT.
          wa_output-bukrs = <fs_t012k>-bukrs.
          wa_output-hbkid = <fs_t012k>-hbkid.
          wa_output-hktid = <fs_t012k>-hktid.
        Move cash in bank
          READ TABLE gt_cash_in_bank ASSIGNING <fs_cash_in_bank>
                                     WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                    hkont = <fs_t012k>-hkont.
          IF sy-subrc = 0.
            wa_output-cash_in_bank = <fs_cash_in_bank>-dmbtr.
            ADD wa_output-cash_in_bank TO wa_output-tot_cash_bal.
          ENDIF.
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 1 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
        Move outstanding trade collection(Deposit in transit)
          READ TABLE gt_outs_trade_coll ASSIGNING <fs_outs_trade_coll>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-one_day            = <fs_outs_trade_coll>-one_day.
            ADD wa_output-one_day TO wa_output-tot_cash_bal.
            wa_output-two_days           = <fs_outs_trade_coll>-two_days.
            ADD wa_output-two_days TO wa_output-tot_cash_bal.
            wa_output-more_than_two_days = <fs_outs_trade_coll>-more_than_two_days.
            ADD wa_output-more_than_two_days TO wa_output-tot_cash_bal.
          ENDIF.
        Move miscellaneous collection
          READ TABLE gt_misc_collection ASSIGNING <fs_misc_collection>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-misc_collection = <fs_misc_collection>-dmbtr.
            ADD wa_output-misc_collection TO wa_output-tot_cash_bal.
          ENDIF.
        Move outstanding released checks
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 3 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
          READ TABLE gt_outs_rel_checks ASSIGNING <fs_outs_rel_checks>
                                        WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                       hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-outs_rel_checks = <fs_outs_rel_checks>-dmbtr.
            IF wa_output-outs_rel_checks < 0.
              ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.
            ELSE.
              SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.
            ENDIF.
          ELSE.
            CLEAR wa_zcheck_monitor_collect.
            READ TABLE gt_zcheck_monitor_collect INTO wa_zcheck_monitor_collect
                                                 WITH TABLE KEY zzbukr = <fs_t012k>-bukrs
                                                                zubhkt = lv_hkont.
            IF sy-subrc = 0.
              wa_output-outs_rel_checks = wa_zcheck_monitor_collect-zrwbtr.
              IF wa_output-outs_rel_checks < 0.
                ADD wa_output-outs_rel_checks TO wa_output-tot_cash_bal.
              ELSE.
                SUBTRACT wa_output-outs_rel_checks FROM wa_output-tot_cash_bal.
              ENDIF.
            ENDIF.
          ENDIF.
        Move outstanding unreleased checks
          CLEAR lv_hkont.
          lv_hkont = <fs_t012k>-hkont.
          ADD 3 TO lv_hkont.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = lv_hkont
            IMPORTING
              output = lv_hkont.
          READ TABLE gt_outs_unrel_checks ASSIGNING <fs_outs_unrel_checks>
                                          WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                         hkont = lv_hkont.
          IF sy-subrc = 0.
            wa_output-outs_unrel_checks = <fs_outs_unrel_checks>-dmbtr.
          ENDIF.
        Move importation docs. due
          CLEAR wa_importation_docs_due.
          READ TABLE gt_importation_docs_due INTO wa_importation_docs_due
                                             WITH TABLE KEY bukrs = <fs_t012k>-bukrs
                                                            hkont = lv_hkont
                                                                    TRANSPORTING dmbtr.
          IF sy-subrc = 0.
            wa_output-imp_docs_due = wa_importation_docs_due-dmbtr.
          ENDIF.
          wa_output-est_cash_balance = wa_output-tot_cash_bal - ( wa_output-outs_unrel_checks +
                                                                  wa_output-imp_docs_due ).
          APPEND wa_output TO gt_output.
          CLEAR wa_output.
        ENDLOOP.
      ENDMETHOD.                    "process_data
    ENDCLASS.                    "lcl_get_data IMPLEMENTATION
          CLASS lcl_alv_routines IMPLEMENTATION
    CLASS lcl_alv_routines IMPLEMENTATION.
      METHOD build_fieldcat.
        DEFINE m_fieldcat.
          add 1 to wa_fieldcat-col_pos.
          wa_fieldcat-fieldname   = &1.
          wa_fieldcat-tabname     = &2.
          wa_fieldcat-coltext     = &3.
          wa_fieldcat-outputlen   = &4.
          wa_fieldcat-key         = &5.
          wa_fieldcat-just        = &6.
          wa_fieldcat-do_sum      = &7.
          wa_fieldcat-emphasize   = &8.
          wa_fieldcat-edit        = &9.
          append wa_fieldcat to gt_fieldcat.
          clear wa_fieldcat.
        END-OF-DEFINITION.
        m_fieldcat 'BUKRS'              'GT_OUTPUT' text-a01  '12' 'X' '' '' '' ''.
        m_fieldcat 'HBKID'              'GT_OUTPUT' text-a14  '10' 'X' '' '' '' ''.
        m_fieldcat 'HKTID'              'GT_OUTPUT' text-a02  '10' 'X' '' '' '' ''.
        m_fieldcat 'CASH_IN_BANK'       'GT_OUTPUT' text-a03  '12' '' 'R' 'X' '' ''.
        m_fieldcat 'ONE_DAY'            'GT_OUTPUT' text-a04  '05' '' 'R' 'X' '' ''.
        m_fieldcat 'TWO_DAYS'           'GT_OUTPUT' text-a05  '06' '' 'R' 'X' '' ''.
        m_fieldcat 'MORE_THAN_TWO_DAYS' 'GT_OUTPUT' text-a06  '08' '' 'R' 'X' '' ''.
        m_fieldcat 'MISC_COLLECTION'    'GT_OUTPUT' text-a07  '16' '' 'R' 'X' '' ''.
        m_fieldcat 'OUTS_REL_CHECKS'    'GT_OUTPUT' text-a08  '21' '' 'R' 'X' '' ''.
        m_fieldcat 'TREAS_TRANSACTIONS' 'GT_OUTPUT' text-a09  '19' '' 'R' 'X' '' 'X'.
        m_fieldcat 'TOT_CASH_BAL'       'GT_OUTPUT' text-a10  '15' '' 'R' 'X' 'C300' ''.
        m_fieldcat 'OUTS_UNREL_CHECKS'  'GT_OUTPUT' text-a11  '19' '' 'R' 'X' '' ''.
        m_fieldcat 'IMP_DOCS_DUE'       'GT_OUTPUT' text-a12  '14' '' 'R' 'X' '' ''.
        m_fieldcat 'EST_CASH_BALANCE'   'GT_OUTPUT' text-a13  '17' '' 'R' 'X' 'C300' ''.
      ENDMETHOD.                    "build_fieldcat
      METHOD sort_alv_display.
        DEFINE m_sort.
          clear gs_sort.
          gs_sort-fieldname = &1.
          gs_sort-spos      = &2.
          gs_sort-up        = &3.
          gs_sort-down      = &4.
          gs_sort-subtot    = &5.
          append gs_sort to gt_sort.
        END-OF-DEFINITION.
        m_sort 'BUKRS' '1' 'X' '' ''.
        m_sort 'HBKID' '2' 'X' '' 'X'.
      ENDMETHOD.                    "sort_alv_display
    ENDCLASS.                    "lcl_alv_routines IMPLEMENTATION
          CLASS lcl_event_receiver IMPLEMENTATION
    CLASS lcl_event_receiver IMPLEMENTATION.
      METHOD handle_data_changed.
        LOOP AT er_data_changed->mt_mod_cells INTO ls_good.
          CASE ls_good-fieldname.
            WHEN 'TREAS_TRANSACTIONS'.
              CLEAR lv_tot_cash_bal.
              CALL METHOD er_data_changed->get_cell_value
                EXPORTING
                  i_row_id    = ls_good-row_id
                  i_fieldname = 'TOT_CASH_BAL'
                IMPORTING
                  e_value     = lv_tot_cash_bal.
              IF ls_good-value CA 'ABCDEFGHIJKLMNOPQRSTUVWXYZ/'.
                CALL METHOD er_data_changed->add_protocol_entry
                  EXPORTING
                    i_msgid     = '0K'
                    i_msgno     = '000'
                    i_msgty     = 'E'
                    i_msgv1     = text-e01
                    i_msgv2     = ls_good-value
                    i_msgv3     = text-e02
                    i_fieldname = ls_good-fieldname
                    i_row_id    = ls_good-row_id.
                EXIT.
              ELSE.
                CLEAR lv_treas_transactions.
                lv_treas_transactions = ls_good-value.
                ADD lv_tot_cash_bal TO lv_treas_transactions.
                CALL METHOD er_data_changed->modify_cell
                  EXPORTING
                    i_row_id    = ls_good-row_id
                    i_fieldname = 'TOT_CASH_BAL'
                    i_value     = lv_treas_transactions.
                CLEAR lv_outs_unrel_checks.
                CALL METHOD er_data_changed->get_cell_value
                  EXPORTING
                    i_row_id    = ls_good-row_id
                    i_fieldname = 'OUTS_UNREL_CHECKS'
                  IMPORTING
                    e_value     = lv_outs_unrel_checks.
                CLEAR lv_imp_docs_due.
                CALL METHOD er_data_changed->get_cell_value
                  EXPORTING
                    i_row_id    = ls_good-row_id
                    i_fieldname = 'IMP_DOCS_DUE'
                  IMPORTING
                    e_value     = lv_imp_docs_due.
                lv_est_cash_balance = ls_good-value - ( lv_outs_unrel_checks +
                                                        lv_imp_docs_due ).
                CALL METHOD er_data_changed->modify_cell
                  EXPORTING
                    i_row_id    = ls_good-row_id
                    i_fieldname = 'EST_CASH_BALANCE'
                    i_value     = lv_est_cash_balance.
                CLEAR lv_est_cash_balance.
              ENDIF.
          ENDCASE.
        ENDLOOP.
      ENDMETHOD.                    "handle_data_changed
      METHOD handle_top_of_page.
        WRITE: sy-repid.
      ENDMETHOD.                    "handle_top_of_page
      METHOD handle_top_of_list.
        WRITE: sy-repid.
      ENDMETHOD.                    "handle_top_of_list
    ENDCLASS.                    "lcl_event_receiver IMPLEMENTATION
    START-OF-

  • Can anybody give me complete guideance & code about using j2me web service?

    Hi to all !
    I have posted problem about using j2me web service ...
    but still nobody have give me at least one response..
    can anybody give me complete example about using webservice in j2me?
    premal

    Hi to all !
    I have posted problem about using j2me web service
    but still nobody have give me at least one
    response..
    can anybody give me complete example about using
    webservice in j2me?
    premal-----------------------------------
    Hi, You may find help using netBean IDE.In netBean IDE help, there you should find step by step solusion for web service as well soap messang technology
    your best regard
    http://www.techbd.com
    [email protected]

  • Can somebody teach me some basic knowledge about SD?

    I work in BW but I have to know some basic knowledge about SD that are listed below:
    How to create a sales order?
    what is sales organization?
    what is sold to party and many more if you have any links for this kind of information please let me know.
    Thanks in advance.
    York

    Hai Les York,
    What you want to know is a vast subject and it will be better to sit with any SD consultant and know all you want. I can do that if you are in Hyderabad.
    To briefly tell you what you wanted is:
    A Sales Organization is the highest organizational element in any Sales Department of a Company and it is responsible for all the sales activity of that company.
    A Sold-to-Party (SP) is non other than your basic Customer. We call him so because he may have a different place where sometimes we have to give deliveries and that place / department will be called as a Ship to Party (SH) of our SP. Like wise if you have a different place to send the Invoice of that SP, then that department will be known as the Bill to Party (BP) for this SP. And if some body other than our SP is paying, then he will be our Payer (PY).
    Now to make a Sales Order, go to T Code - VA01, enter, enter your Sales Document Type and your Sales Organization, Distribution Channel, your Division and hit enter, now enter your SP no., and your customer's PO no., and the Material(s) and their respective quantities and if all the basic customization has been done correctly, you will get the Price, Plant, Storage Location, etc., and you can save it.
    Then you do your Delivery and finally the Billing depending on your client's buiseness process.
    SAP help desk is the best place to help you with all your queries regarding SAP - SD, for Sales Documents I can give you this link, remove all the spaces and use it.
    www. help. sap. com/ saphelp_47x200/ helpdata/ en/ dd55fa7a545a11d1a7020000 e 829fd11/  content.htm
    Hope this was clear. Plz do reward if you found useful.
    Regards.
    Venkat - Hyd
    <REMOVED BY MODERATOR>
    Edited by: Venkat Ramana Somayajula on Dec 18, 2007 11:20 PM

Maybe you are looking for

  • Game center doesn't work on imac

    I downloaded the W.E.L.D.E.R game and was using it without issues. I then upgraded to Mountain Lion. Since then when I start WELDER it stays on the screen for a few seconds then minimizes itself and starts Game Center. Game Center gives me a signon s

  • Problem with Time Machine backup (Snow Leopard)

    Hello everyone. So today I was doing a backup and my external hard drive fell off the tabel and disconnected itself mid-back up. Now I am getting this error when I attempt to do the backup again, "This backup is too large for the backup disk. The bac

  • BSP internal table download

    Hello all, I am trying to download an internal table,as a text file, from a BSP view. This view is getting called through a sub-controller in my application. While downloading i get a pop-up saying: you are now downloading Main.do. which is my Main c

  • Open second form at run-time (and transfer variables)

    Hi, i'm searching for a method to open a second (maybe attached) form from an existing form at run-time. The goal would be to have a button in a form which runs a function as click event that opens the second form and transfer field values from the e

  • How to export import HR forms

    Hi How can we export import Hr Forms like scripts we have RSTXSCRP. Smart forms there only we have option. Like this is there any thing for HR Forms... Regards sas