Extremely Basic Program - 1 Problem
This was assigned to me in my introductory Java class:
Write a program that reads an unspecified number of integers, determines how many positive and negative values have been read, and computes the total and average of the input values, not counting zeros. Your program ends with the input 0. Display the average as a floating-point number.
Here is the program I have written:
import javax.swing.JOptionPane;
public class AverageHW{
public static void main(String[] args){
int total, i;
double a, total2, i2;
int num, neg, pos;
neg = 0;
pos = 0;
total = 0;
i = 0;
while(1>0)
String input;
input = JOptionPane.showInputDialog(null,
"Enter a number to be averaged.",
"Enter",
JOptionPane.QUESTION_MESSAGE);
num = Integer.parseInt(input);
total += num;
++i;
if (num<0)
neg++;
if (num>0)
pos++;
if (num==0)
break;
a = (double)total / (double)i;
System.out.println("The sum is " + total);
System.out.println("The average is obviously not " + a); // Just a joke.. like my skills in Java
System.out.println("There are " + neg + " negative inputs." );
System.out.println("There are " + pos + " positive inputs.");
System.out.println("There are " + (i - 1) + " combined inputs.");
System.out.println("This is quite frustrating.");
}Getting a correct average is the only thing I'm lacking.
I might be missing something in the chapters I've studied that is keeping me from attaining a floating point average. My teacher also explained this to me before, and I forgot it. Tried searching all over the net and trying different things but to no avail. I know the answer must be extremely simple, but this seems to be the only thing holding me back, as you can see.
Also, this isn't the only reason I posted this. I'd like to get feedback on potentially alternative and more efficient methods of coding this program. I know I have different options as far as using alternative loops and such, but just some insight would be helpful.
Thank you!
EDIT I know i have some random useless crap variables thrown in there, but those are the leftovers of me messing around with getting that average (tried making all the variables in the average equation double variables).
Edited by: g_0_0_d4 on Dec 17, 2009 12:46 AM
After reading your post pbrock, I was able to realize my mistake. "i" does not actually read the total numbers correctly, which is why I put "There are " + (i-1) + " combined inputs." I realized this earlier, but it never really registered that it was the compilation error that was causing the average to calculate incorrectly.
New code:
import javax.swing.JOptionPane;
public class AverageHW{
public static void main(String[] args){
int total, i;
double a, total2, i2;
int num;
int neg, pos;
neg = 0;
pos = 0;
total = 0;
i = 0;
while(1>0)
String input;
input = JOptionPane.showInputDialog(null,
"Enter a number to be averaged.",
"Enter",
JOptionPane.QUESTION_MESSAGE);
num = Integer.parseInt(input);
total += num;
i++;
if (num<0)
neg++;
if (num>0)
pos++;
if (num==0)
break;
i = (i-1);
a = (double)total / (double)i;
System.out.println("The sum is " + total);
System.out.println("The average is " + a);
System.out.println("There are " + neg + " negative inputs." );
System.out.println("There are " + pos + " positive inputs.");
System.out.println("There are " + i + " combined inputs.");
System.out.println("SUCCESS!");
JOptionPane.showMessageDialog(null,
"You have averaged your numbers.",
"Exit",
JOptionPane.INFORMATION_MESSAGE);
}Just removed (i-1) from the System.out.println and set i = i-1, it feels so good to finally finish.
Mel, your help is greatly appreciated. I should have known to use a boolean expression to determine the positive and negative numbers, but it kind of slipped my mind while I was writing this. The program you wrote is a little too advanced for my understanding, but I copy it down and study it for the future.
Thanks everyone!
Similar Messages
-
Many basic programs are missing in my macbook pro
I don't know why but many basic programs are missing in my macbook pro.
I have mountain lion version.
some of them: make, port and etc.
I have a lot of problems with installation of programs in the terminal.
Is there any way to solve it? to install the whole package of programs which are supposed to be built-in?
NimrodI have make, after downloading XCode and its commandline extensions (free from App store). Can't help you with the others.
-
Hi Everyone,
I have a program that sends information(analog output) to lab windows cvi in the form of a text file or user input.
The program runs on the computers that I have the field point explorer and lab windows cvi installed on. In order to run the program without always installing labwindows/cvi and field point; I wanted to create an executable file that could be load on another computer.
I used the create distribution kit part of labwindows/cvi to do this.After creating the distribution kit, I then installed it
to another computer.
My user interface appears on the screen, when the user clicks on the exe. file, but no data is sent to the field point module. I know that the data is being read from the user and textfile because in it appears in the uir.
The following are some details about the problem:
1. On another computer without labwindows/cvi and field point explorer not installed - no data is sent to field point module
I know this because a current is being read on the current meter connected to field point module.
My questions are the following:
1. What are the possible reasons for the data not being sent to the field point module?
2. Do I still need to create an iak. (Installing Field point Explorer) file stored on any new computer that I install my created distribution kit file too?
Thankyou very much for any help that you can provide. I greatly appreciate it.
Faen9901Re: Hello, I have created a distribution kit for my program.The problem is that the when the program is installed onto another computer, it fails to communicate with field point (Using FP-AO-200 and FP-AO-1000). Help is greatly appreciated, Thanks faen9901Faen9901,
1) If you do not install FieldPoint Explorer, the FieldPoint Server is not installed so there is nothing on the target computer that knows how to talk to the FieldPoint system.
2) Yes, you need an IAK file on the target computer. Assuming the settings (i.e. com port#) are identical you can simply include the iak file as part of the distribution.
3) You also need to include as part of your installer the file "fplwmgr.dll". If this file is not installed, your program will not be able to access the FieldPoint Server. Alternatively, this file is installed automatically if FieldPoint Explorer detects LabWindows/CVI or Measurement Studio Development versions on the target computer or if you choose to do a custom FieldPoint Explorer installation and
choose to provide LabWindows/CVI support.
Regards,
Aaron -
Hi, i'm Architec and my basic programs are: Autodesk Architecture and 3D studio Max. Can i run it in the MacBook Pro 13.3-Inch (NEWEST VERSION) Thanks!!!
You can but make sure you upgrade your RAM to 16GB - you can't do that through Apple...
Autodesk is a memory intensive program and the same goes with 3D Studio Max.....
Another suggeston if you must use a 13 inch is to buy the base 13 inch Macbook Pro and upgrade the RAM to 16GB and install a SSD to make it perform fast.
Another option is to get a refurbished 15 Inch Macbook Pro and do the RAM upgrade yourself...Advantage going 15 Inch is because it has it's own discrete graphics adapter rather than the built in Intel video. -
EJB Client - basic programming principles
Hello,
I'm new to the EJB world, can someone please give me some giudelines on basic programming principles on how to write a simple EJB client ?
Thanx people!
SonWe have some very simple "hello, world" examples here :
https://glassfish.dev.java.net/javaee5/ejb/EJB30.html
There is also an EJB FAQ :
https://glassfish.dev.java.net/javaee5/ejb/EJB_FAQ.html
Another resource is the Java EE 5 Tutorial :
http://java.sun.com/javaee/5/docs/tutorial/doc/
--ken -
i want to use Xcode to create an app and i need developer tools. so i need to join the devoper program only problem is I'm not 18
You can get Xcode without joining the developer program. Just go to the App Store and download it (it's free).
You'd only need to join the Developer program if you want to put your app into the App Store, this is for OS X.
You will need to join the Developer program if you want to develop for IOS. In that case you will need a parent or guardian. -
I paid for basic program to convert PDF to Word or Excel - how to operate??
I paid for the basic program to convert PDF's to Word or Excel Documents. When I pull up the PDF I want to export and click on export icon in the tool bar it takes me back to sign up for the service which I have already paid for and received email confirmation - help!!!
1. Make sure you signed up for "ExportPDF" or "PDF Pack", not something else.
2. Check you are signing in with the SAME Adobe ID used to subscribe.
3. If no good, go to Manage Account on Adobe's site and check your subscription is active. (If you just paid it can take up to 48 hours for some reason). -
I need help on a basic program
Hey people I need bit of help writting a very basic program for a project due on wednesday of this week. I am new at this I wanted to see if I could get some help from you.
I need basically to write a program that when you insert the year of birth it displays the chinease symbol or charater corresponding to the chinease horoscope, for example if I was born in 1982, my ymbol will be the dog... each animal repeats each 12 years, and there are 12 animals,,, some friends told me to do it with a do while, but as I am trying, it does not work that well or I don't do it well, ejejeje
Please help me
Juan AntonioIf you show us what you've done you are more likely to get help.
I don't think you need loops, have you been taught about the modulus operator "%" ? -
Hi
Is there a way of calling another program from within a small basic program ?
I dont mean run within it and then continue where it left off.
I simply ideally I ideally want to create one program that only contains menu options and depending on the user choice, then to go off and run another program.
If this is not possible..maybe I am getting over cautious, but does any one know the program size limit, if I need to put all teh features in one program ?
Thanks in advance
DaveYou would need an extension that can start an external exe (may be any exe includng another pre-compiled Small Basic program, or even the SmallBasicComplier to compile source and then run it), such as LDProcess.Start in my extension. There are also
other extensions with this or similar commands. -
I have an account in Adobe, but every time I work out on any product from Adobe products
The program tells me I Trail You remove and re-install the program, but problem persistsHi mahmod alsousi,
Try this:
Sign out from the Creative Cloud app and Quit it (Quit option will be available after a few seconds).
Now move the following folders to desktop:
1) SLCache
Windows: OS Drive\Program Files (x86)\Common Files\Adobe
Mac: Library/Application Support/Adobe
2) SLStore
Windows: OS drive\ProgramData\Adobe
Mac: Library/Application Support/Adobe
3) OOBE
Windows: OS Drive\Users\<username>\AppData\Local\Adobe
Mac: /User/Library/Application Support/Adobe
Now launch Premiere Pro and sign in with your Adobe ID.
NOTE: Make sure your Anti Virus/Firewall is not blocking any Adobe activation servers. Alternately, you can also check your 'hosts' file for any changes.
Thanks,
Rameez -
What do you think of this book: "Programming and Problem Solving with Java"
Hello Everyone:
This may be a strange post but I am wondering if anyone has read this book and what do you think of it?
Book Information
Title: Programming and Problem Solving with Java
Authors: Neell Dale, Chip Weens, Mark Headington
Publisher: Jones & Bartlett
Thanks for any commentsNo believe me the book is bad! The only reason I asked is I am in a university class that uses those two books for there course. The author messed up on HelloWorld.java with 4 errors at compile time! How can anyone be that stupid since they are the ones who are supposed to be teaching me the fundamentals of Java. Anyhow I just wanted other people's thoughts about the books.
Thanks again for your input. -
Airport extreme will not fix problems or allow manual settings
So I have a recently purchased airport extreme and the dreaded "flashing amber light" problem, but I can't find a solution that works. When I open my airport utility it says it has found an airport extreme that is experiencing problems, and then gives all the specs of my airport extreme (e.g. name, ip address, etc.) and says it is reporting problems.
It then instructs me to press the continue button to resolve the problems. However, when I do that (or attempt to open the manual settings), it thinks and thinks and thinks while reading the configuration and then finally tells me that an error occurred while reading my configuration and I should make sure the airport is properly plugged in and in range of my computer, though it's plugged in properly and sitting immediately next to the computer.
I would also note that the internet works fine on my desktop (being run through the airport to my mac), but just will not work on the danged airport.
Any idea of what I can do now?It opens up a new window, but still gives me the exact same error message about not being plugged in or in range, though it is both of those
-
Hi Guys, I need some help.
I want to increase and then decrease a number continuously.
for example: 0,1,2,3,4.....179,180, 179, 178,...3,2,1,0,1,2,3....179,180, etc..
Any ideas??
Regards!
Sam
Solved!
Go to Solution.kekin wrote:
Why to waste precious memory???
Compared to anything else, the memory use here is insignificant. Even megabytes of data are no problem. The array is folded, meaning it is calculated at compile time and internally replaced with a diagram constant. Indexing a fixed size array is very efficient, meaning the code in the loop is significantly more efficient than hadling all these case structures and comparisons with every iteration.
The average computer has GBytes of RAM. The data structures here are a million times smaller. Insignificant!
If memory is really an issue, you can make it 4x smaller by changing the representation to U8 inside the FOR loop.
Just for fun, here's another solution that does not use arrays, case structures, or comparisons.
LabVIEW Champion . Do more with less code and in less time .
Attachments:
RampUpDown_B.png 6 KB
RampUpDown82_B.vi 16 KB -
If i buy a used Mac Mini that can only run 10.6.8, will I immediately run into issues related to apps that are no longer supported on an older OS? I don't want to experience the same thing that happened with PPCs and 10.8.5.
ThanksI run an older Flash version, mind you one that is hacked slightly. I only view perhaps 15 min. of Youtube per week so I don't have a huge sample but I haven't encountered any real issues with my older version. Sure, YouTube warns me about using an older version but it seems to work. What doesn't work is my computer speed. No, not so much that but if I view a video in my browser it does not play smoothly. It works fine if I download it to my computer and then view it with VLC or Niceplayer outside the browser. When viewing things on YouTube I let them play in the browser, then if it's somethign I really, really want to see in nice presentation I download it and play it outside the browser. This all works even on my pretty old G4.
Flash player 11.1 hack on PowerPC - https://discussions.apple.com/message/16990862 - this gets FP to tell web sites you are running a newer version than you really are. This gets around web sites that don't really need a new version but think they know best. If they really do require it then this hack doesn't work. -
Report program Performance problem
Hi All,
one object is taking 30hr for executing.some one develped this in 1998 but this time it is a big Performance problem.please some one helep what to do i am giving that code.
*--DOCUMENTATION--
Programe written by : 31.03.1998 .
Purpose : this programe updates the car status into the table zsdtab1
This programe is to be schedule in the backgroud periodically .
Querries can be fired on the table zsdtab1 to get the details of the
Car .
This programe looks at the changes made in the material master from
last updated date and the new entries in material master and updates
the tables zsdtab1 .
Changes in the Sales Order are not taken into account .
To get a fresh data set the value of zupddate in table ZSTATUS as
01.01.1998 . All the data will be refreshed from that date .
Program Changed on 23/7/2001 after version upgrade 46b by jyoti
Addition of New tables for Ibase
tables used -
tables : mara , " Material master
ausp , " Characteristics table .
zstatus , " Last updated status table .
zsdtab1 , " Central database table to be maintained .
vbap , " Sales order header table .
vbak , " Sales order item table .
kna1 , " Customer master .
vbrk ,
vbrp ,
bkpf ,
bseg ,
mseg ,
mkpf ,
vbpa ,
vbfa ,
t005t . " Country details tabe .
--NEW TABLES ADDEDFOR VERSION 4.6B--
tables : ibsymbol ,ibin , ibinvalues .
data : vatinn like ibsymbol-atinn , vatwrt like ibsymbol-atwrt ,
vatflv like ibsymbol-atflv .
*--types definition--
types : begin of mara_itab_type ,
matnr like mara-matnr ,
cuobf like mara-cuobf ,
end of mara_itab_type ,
begin of ausp_itab_type ,
atinn like ausp-atinn ,
atwrt like ausp-atwrt ,
atflv like ausp-atflv ,
end of ausp_itab_type .
data : mara_itab type mara_itab_type occurs 500 with header line ,
zsdtab1_itab like zsdtab1 occurs 500 with header line ,
ausp_itab type ausp_itab_type occurs 500 with header line ,
last_date type d ,
date type d .
data: length type i.
clear mara_itab . refresh mara_itab .
clear zsdtab1_itab . refresh zsdtab1_itab .
select single zupddate into last_date from zstatus
where programm = 'ZSDDET01' .
select matnr cuobf into (mara_itab-matnr , mara_itab-cuobf) from mara
where mtart eq 'FERT' or mtart = 'ZCBU'.
where MATNR IN MATERIA
and ERSDA IN C_Date
and MTART in M_TYP.
append mara_itab .
endselect .
loop at mara_itab.
clear zsdtab1_itab .
zsdtab1_itab-commno = mara_itab-matnr .
Get the detailed data into internal table ausp_itab .----------->>>
clear ausp_itab . refresh ausp_itab .
--change starts--
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ausp
where objek = mara_itab-matnr .
append ausp_itab .
endselect .
clear ausp_itab .
select atinn atwrt atflv into (ausp_itab-atinn , ausp_itab-atwrt ,
ausp_itab-atflv) from ibin as a inner join ibinvalues as b
on ain_recno = bin_recno
inner join ibsymbol as c
on bsymbol_id = csymbol_id
where a~instance = mara_itab-cuobf .
append ausp_itab .
endselect .
----CHANGE ENDS HERE -
sort ausp_itab by atwrt.
loop at ausp_itab .
clear date .
case ausp_itab-atinn .
when '0000000094' .
zsdtab1_itab-model = ausp_itab-atwrt . " model .
when '0000000101' .
zsdtab1_itab-drive = ausp_itab-atwrt . " drive
when '0000000095' .
zsdtab1_itab-converter = ausp_itab-atwrt . "converter
when '0000000096' .
zsdtab1_itab-transmssn = ausp_itab-atwrt . "transmission
when '0000000097' .
zsdtab1_itab-colour = ausp_itab-atwrt . "colour
when '0000000098' .
zsdtab1_itab-ztrim = ausp_itab-atwrt . "trim
when '0000000103' .
*=========Sujit 14-Mar-2006
IF AUSP_ITAB-ATWRT(3) EQ 'WDB' OR AUSP_ITAB-ATWRT(3) EQ 'WDD'
OR AUSP_ITAB-ATWRT(3) EQ 'WDC' OR AUSP_ITAB-ATWRT(3) EQ 'KPD'.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT+3(14).
ELSE.
ZSDTAB1_ITAB-CHASSIS_NO = AUSP_ITAB-ATWRT . "chassis no
ENDIF.
zsdtab1_itab-chassis_no = ausp_itab-atwrt . "chassis no
*=========14-Mar-2006
when '0000000166' .
----25.05.04
length = strlen( ausp_itab-atwrt ).
if length < 15. "***aded by patil
zsdtab1_itab-engine_no = ausp_itab-atwrt . "ENGINE NO
else.
zsdtab1_itab-engine_no = ausp_itab-atwrt+13(14)."Aded on 21.05.04 patil
endif.
----25.05.04
when '0000000104' .
zsdtab1_itab-body_no = ausp_itab-atwrt . "BODY NO
when '0000000173' . "21.06.98
zsdtab1_itab-cockpit = ausp_itab-atwrt . "COCKPIT NO . "21.06.98
when '0000000102' .
zsdtab1_itab-dest = ausp_itab-atwrt . "destination
when '0000000105' .
zsdtab1_itab-airbag = ausp_itab-atwrt . "AIRBAG
when '0000000110' .
zsdtab1_itab-trailer_no = ausp_itab-atwrt . "TRAILER_NO
when '0000000109' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-fininspdat = date . "FIN INSP DATE
when '0000000108' .
zsdtab1_itab-entrydate = ausp_itab-atwrt . "ENTRY DATE
when '0000000163' .
zsdtab1_itab-regist_no = ausp_itab-atwrt . "REGIST_NO
when '0000000164' .
zsdtab1_itab-mech_key = ausp_itab-atwrt . "MECH_KEY
when '0000000165' .
zsdtab1_itab-side_ab_rt = ausp_itab-atwrt . "SIDE_AB_RT
when '0000000171' .
zsdtab1_itab-side_ab_lt = ausp_itab-atwrt . "SIDE_AB_LT
when '0000000167' .
zsdtab1_itab-elect_key = ausp_itab-atwrt . "ELECT_KEY
when '0000000168' .
zsdtab1_itab-head_lamp = ausp_itab-atwrt . "HEAD_LAMP
when '0000000169' .
zsdtab1_itab-tail_lamp = ausp_itab-atwrt . "TAIL_LAMP
when '0000000170' .
zsdtab1_itab-vac_pump = ausp_itab-atwrt . "VAC_PUMP
when '0000000172' .
zsdtab1_itab-sd_ab_sn_l = ausp_itab-atwrt . "SD_AB_SN_L
when '0000000174' .
zsdtab1_itab-sd_ab_sn_r = ausp_itab-atwrt . "SD_AB_SN_R
when '0000000175' .
zsdtab1_itab-asrhydunit = ausp_itab-atwrt . "ASRHYDUNIT
when '0000000176' .
zsdtab1_itab-gearboxno = ausp_itab-atwrt . "GEARBOXNO
when '0000000177' .
zsdtab1_itab-battery = ausp_itab-atwrt . "BATTERY
when '0000000178' .
zsdtab1_itab-tyretype = ausp_itab-atwrt . "TYRETYPE
when '0000000179' .
zsdtab1_itab-tyremake = ausp_itab-atwrt . "TYREMAKE
when '0000000180' .
zsdtab1_itab-tyresize = ausp_itab-atwrt . "TYRESIZE
when '0000000181' .
zsdtab1_itab-rr_axle_no = ausp_itab-atwrt . "RR_AXLE_NO
when '0000000183' .
zsdtab1_itab-ff_axl_nor = ausp_itab-atwrt . "FF_AXLE_NO_rt
when '0000000182' .
zsdtab1_itab-ff_axl_nol = ausp_itab-atwrt . "FF_AXLE_NO_lt
when '0000000184' .
zsdtab1_itab-drivairbag = ausp_itab-atwrt . "DRIVAIRBAG
when '0000000185' .
zsdtab1_itab-st_box_no = ausp_itab-atwrt . "ST_BOX_NO
when '0000000186' .
zsdtab1_itab-transport = ausp_itab-atwrt . "TRANSPORT
when '0000000106' .
zsdtab1_itab-trackstage = ausp_itab-atwrt . " tracking stage
when '0000000111' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_1 = date . " tracking date for 1.
when '0000000112' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_5 = date . " tracking date for 5.
when '0000000113' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_10 = date . "tracking date for 10
when '0000000114' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_15 = date . "tracking date for 15
when '0000000115' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_20 = date . " tracking date for 20
when '0000000116' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_25 = date . " tracking date for 25
when '0000000117' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_30 = date . "tracking date for 30
when '0000000118' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_35 = date . "tracking date for 35
when '0000000119' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_40 = date . " tracking date for 40
when '0000000120' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_45 = date . " tracking date for 45
when '0000000121' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_50 = date . "tracking date for 50
when '0000000122' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_55 = date . "tracking date for 55
when '0000000123' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_60 = date . " tracking date for 60
when '0000000124' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_65 = date . " tracking date for 65
when '0000000125' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_70 = date . "tracking date for 70
when '0000000126' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_75 = date . "tracking date for 75
when '0000000127' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_78 = date . " tracking date for 78
when '0000000203' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_79 = date . " tracking date for 79
when '0000000128' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_80 = date . " tracking date for 80
when '0000000129' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_85 = date . "tracking date for 85
when '0000000130' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_90 = date . "tracking date for 90
when '0000000131' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dat_trk_95 = date . "tracking date for 95
when '0000000132' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_100 = date . " tracking date for100
when '0000000133' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_110 = date . " tracking date for110
when '0000000134' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_115 = date . "tracking date for 115
when '0000000135' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_120 = date . "tracking date for 120
when '0000000136' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-dattrk_105 = date . "tracking date for 105
when '0000000137' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_1 = date . "plan trk date for 1
when '0000000138' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_5 = date . "plan trk date for 5
when '0000000139' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_10 = date . "plan trk date for 10
when '0000000140' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_15 = date . "plan trk date for 15
when '0000000141' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_20 = date . "plan trk date for 20
when '0000000142' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_25 = date . "plan trk date for 25
when '0000000143' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_30 = date . "plan trk date for 30
when '0000000144' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_35 = date . "plan trk date for 35
when '0000000145' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_40 = date . "plan trk date for 40
when '0000000146' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_45 = date . "plan trk date for 45
when '0000000147' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_50 = date . "plan trk date for 50
when '0000000148' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_55 = date . "plan trk date for 55
when '0000000149' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_60 = date . "plan trk date for 60
when '0000000150' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_65 = date . "plan trk date for 65
when '0000000151' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_70 = date . "plan trk date for 70
when '0000000152' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_75 = date . "plan trk date for 75
when '0000000153' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_78 = date . "plan trk date for 78
when '0000000202' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_79 = date . "plan trk date for 79
when '0000000154' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_80 = date . "plan trk date for 80
when '0000000155' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_85 = date . "plan trk date for 85
when '0000000156' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_90 = date . "plan trk date for 90
when '0000000157' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_95 = date . "plan trk date for 95
when '0000000158' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_100 = date . "plan trk date for 100
when '0000000159' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_105 = date . "plan trk date for 105
when '0000000160' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_110 = date . "plan trk date for 110
when '0000000161' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_115 = date . "plan trk date for 115
when '0000000162' .
perform date_convert using ausp_itab-atflv changing date .
zsdtab1_itab-pdt_tk_120 = date . "plan trk date for 120
********Additional fields / 24.05.98**********************************
when '0000000099' .
case ausp_itab-atwrt .
when '540' .
zsdtab1_itab-roll_blind = 'X' .
when '482' .
zsdtab1_itab-ground_clr = 'X' .
when '551' .
zsdtab1_itab-anti_theft = 'X' .
when '882' .
zsdtab1_itab-anti_tow = 'X' .
when '656' .
zsdtab1_itab-alloy_whel = 'X' .
when '265' .
zsdtab1_itab-del_class = 'X' .
when '280' .
zsdtab1_itab-str_wheel = 'X' .
when 'CDC' .
zsdtab1_itab-cd_changer = 'X' .
when '205' .
zsdtab1_itab-manual_eng = 'X' .
when '273' .
zsdtab1_itab-conn_handy = 'X' .
when '343' .
zsdtab1_itab-aircleaner = 'X' .
when '481' .
zsdtab1_itab-metal_sump = 'X' .
when '533' .
zsdtab1_itab-speaker = 'X' .
when '570' .
zsdtab1_itab-arm_rest = 'X' .
when '580' .
zsdtab1_itab-aircond = 'X' .
when '611' .
zsdtab1_itab-exit_light = 'X' .
when '613' .
zsdtab1_itab-headlamp = 'X' .
when '877' .
zsdtab1_itab-readlamp = 'X' .
when '808' .
zsdtab1_itab-code_ckd = 'X' .
when '708' .
zsdtab1_itab-del_prt_lc = 'X' .
when '593' .
zsdtab1_itab-ins_glass = 'X' .
when '955' .
zsdtab1_itab-zelcl = 'Elegance' .
when '593' .
zsdtab1_itab-zelcl = 'Classic' .
endcase .
endcase .
endloop .
*--Update the sales data .--
perform get_sales_order using mara_itab-matnr .
perform get_cartype using mara_itab-matnr .
append zsdtab1_itab .
endloop.
<<<
loop at zsdtab1_itab .
if zsdtab1_itab-cartype <> 'W-203'
or zsdtab1_itab-cartype <> 'W-210'
or zsdtab1_itab-cartype <> 'W-211'.
clear zsdtab1_itab-zelcl.
endif.
SELECT SINGLE * FROM ZSDTAB1 WHERE COMMNO = MARA_ITAB-MATNR .
select single * from zsdtab1 where commno = zsdtab1_itab-commno.
if sy-subrc <> 0 .
insert into zsdtab1 values zsdtab1_itab .
else .
update zsdtab1 set :vbeln = zsdtab1_itab-vbeln
bill_doc = zsdtab1_itab-bill_doc
dest = zsdtab1_itab-dest
lgort = zsdtab1_itab-lgort
ship_tp = zsdtab1_itab-ship_tp
country = zsdtab1_itab-country
kunnr = zsdtab1_itab-kunnr
vkbur = zsdtab1_itab-vkbur
customer = zsdtab1_itab-customer
city = zsdtab1_itab-city
region = zsdtab1_itab-region
model = zsdtab1_itab-model
drive = zsdtab1_itab-drive
converter = zsdtab1_itab-converter
transmssn = zsdtab1_itab-transmssn
colour = zsdtab1_itab-colour
ztrim = zsdtab1_itab-ztrim
commno = zsdtab1_itab-commno
trackstage = zsdtab1_itab-trackstage
chassis_no = zsdtab1_itab-chassis_no
engine_no = zsdtab1_itab-engine_no
body_no = zsdtab1_itab-body_no
cockpit = zsdtab1_itab-cockpit
airbag = zsdtab1_itab-airbag
trailer_no = zsdtab1_itab-trailer_no
fininspdat = zsdtab1_itab-fininspdat
entrydate = zsdtab1_itab-entrydate
regist_no = zsdtab1_itab-regist_no
mech_key = zsdtab1_itab-mech_key
side_ab_rt = zsdtab1_itab-side_ab_rt
side_ab_lt = zsdtab1_itab-side_ab_lt
elect_key = zsdtab1_itab-elect_key
head_lamp = zsdtab1_itab-head_lamp
tail_lamp = zsdtab1_itab-tail_lamp
vac_pump = zsdtab1_itab-vac_pump
sd_ab_sn_l = zsdtab1_itab-sd_ab_sn_l
sd_ab_sn_r = zsdtab1_itab-sd_ab_sn_r
asrhydunit = zsdtab1_itab-asrhydunit
gearboxno = zsdtab1_itab-gearboxno
battery = zsdtab1_itab-battery
tyretype = zsdtab1_itab-tyretype
tyremake = zsdtab1_itab-tyremake
tyresize = zsdtab1_itab-tyresize
rr_axle_no = zsdtab1_itab-rr_axle_no
ff_axl_nor = zsdtab1_itab-ff_axl_nor
ff_axl_nol = zsdtab1_itab-ff_axl_nol
drivairbag = zsdtab1_itab-drivairbag
st_box_no = zsdtab1_itab-st_box_no
transport = zsdtab1_itab-transport
OPTIONS-
roll_blind = zsdtab1_itab-roll_blind
ground_clr = zsdtab1_itab-ground_clr
anti_theft = zsdtab1_itab-anti_theft
anti_tow = zsdtab1_itab-anti_tow
alloy_whel = zsdtab1_itab-alloy_whel
del_class = zsdtab1_itab-del_class
str_wheel = zsdtab1_itab-str_wheel
cd_changer = zsdtab1_itab-cd_changer
manual_eng = zsdtab1_itab-manual_eng
conn_handy = zsdtab1_itab-conn_handy
aircleaner = zsdtab1_itab-aircleaner
metal_sump = zsdtab1_itab-metal_sump
speaker = zsdtab1_itab-speaker
arm_rest = zsdtab1_itab-arm_rest
aircond = zsdtab1_itab-aircond
exit_light = zsdtab1_itab-exit_light
headlamp = zsdtab1_itab-headlamp
readlamp = zsdtab1_itab-readlamp
code_ckd = zsdtab1_itab-code_ckd
del_prt_lc = zsdtab1_itab-del_prt_lc
ins_glass = zsdtab1_itab-ins_glass
dat_trk_1 = zsdtab1_itab-dat_trk_1
dat_trk_5 = zsdtab1_itab-dat_trk_5
dat_trk_10 = zsdtab1_itab-dat_trk_10
dat_trk_15 = zsdtab1_itab-dat_trk_15
dat_trk_20 = zsdtab1_itab-dat_trk_20
dat_trk_25 = zsdtab1_itab-dat_trk_25
dat_trk_30 = zsdtab1_itab-dat_trk_30
dat_trk_35 = zsdtab1_itab-dat_trk_35
dat_trk_40 = zsdtab1_itab-dat_trk_40
dat_trk_45 = zsdtab1_itab-dat_trk_45
dat_trk_50 = zsdtab1_itab-dat_trk_50
dat_trk_55 = zsdtab1_itab-dat_trk_55
dat_trk_60 = zsdtab1_itab-dat_trk_60
dat_trk_65 = zsdtab1_itab-dat_trk_65
dat_trk_70 = zsdtab1_itab-dat_trk_70
dat_trk_75 = zsdtab1_itab-dat_trk_75
dat_trk_78 = zsdtab1_itab-dat_trk_78
dat_trk_79 = zsdtab1_itab-dat_trk_79
dat_trk_80 = zsdtab1_itab-dat_trk_80
dat_trk_85 = zsdtab1_itab-dat_trk_85
dat_trk_90 = zsdtab1_itab-dat_trk_90
dat_trk_95 = zsdtab1_itab-dat_trk_95
dattrk_100 = zsdtab1_itab-dattrk_100
dattrk_105 = zsdtab1_itab-dattrk_105
dattrk_110 = zsdtab1_itab-dattrk_110
dattrk_115 = zsdtab1_itab-dattrk_115
dattrk_120 = zsdtab1_itab-dattrk_120
pdt_tk_1 = zsdtab1_itab-pdt_tk_1
pdt_tk_5 = zsdtab1_itab-pdt_tk_5
pdt_tk_10 = zsdtab1_itab-pdt_tk_10
pdt_tk_15 = zsdtab1_itab-pdt_tk_15
pdt_tk_20 = zsdtab1_itab-pdt_tk_20
pdt_tk_25 = zsdtab1_itab-pdt_tk_25
pdt_tk_30 = zsdtab1_itab-pdt_tk_30
pdt_tk_35 = zsdtab1_itab-pdt_tk_35
pdt_tk_40 = zsdtab1_itab-pdt_tk_40
pdt_tk_45 = zsdtab1_itab-pdt_tk_45
pdt_tk_50 = zsdtab1_itab-pdt_tk_50
pdt_tk_55 = zsdtab1_itab-pdt_tk_55
pdt_tk_60 = zsdtab1_itab-pdt_tk_60
pdt_tk_65 = zsdtab1_itab-pdt_tk_65
pdt_tk_70 = zsdtab1_itab-pdt_tk_70
pdt_tk_75 = zsdtab1_itab-pdt_tk_75
pdt_tk_78 = zsdtab1_itab-pdt_tk_78
pdt_tk_79 = zsdtab1_itab-pdt_tk_79
pdt_tk_80 = zsdtab1_itab-pdt_tk_80
pdt_tk_85 = zsdtab1_itab-pdt_tk_85
pdt_tk_90 = zsdtab1_itab-pdt_tk_90
pdt_tk_95 = zsdtab1_itab-pdt_tk_95
pdt_tk_100 = zsdtab1_itab-pdt_tk_100
pdt_tk_105 = zsdtab1_itab-pdt_tk_105
pdt_tk_110 = zsdtab1_itab-pdt_tk_110
pdt_tk_115 = zsdtab1_itab-pdt_tk_115
pdt_tk_120 = zsdtab1_itab-pdt_tk_120
cartype = zsdtab1_itab-cartype
zelcl = zsdtab1_itab-zelcl
excise_no = zsdtab1_itab-excise_no
where commno = zsdtab1_itab-commno .
Update table .---------<<<
endif .
endloop .
perform update_excise_date .
perform update_post_goods_issue_date .
perform update_time.
*///////////////////// end of programe /////////////////////////////////
Get sales data -
form get_sales_order using matnr .
data : corr_vbeln like vbrk-vbeln .
ADDED BY ADITYA / 22.06.98 **************************************
perform get_order using matnr .
select single vbeln lgort into (zsdtab1_itab-vbeln , zsdtab1_itab-lgort)
from vbap where matnr = matnr . " C-22.06.98
from vbap where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
************Get the Excise No from Allocation Field*******************
select single * from zsdtab1 where commno = matnr .
if zsdtab1-excise_no = '' .
select * from vbrp where matnr = matnr .
select single vbeln into corr_vbeln from vbrk where
vbeln = vbrp-vbeln and vbtyp = 'M'.
if sy-subrc eq 0.
select single * from vbrk where vbtyp = 'N'
and sfakn = corr_vbeln. "cancelled doc.
if sy-subrc ne 0.
select single * from vbrk where vbeln = corr_vbeln.
if sy-subrc eq 0.
data : year(4) .
move sy-datum+0(4) to year .
select single * from bkpf where awtyp = 'VBRK' and awkey = vbrk-vbeln
and bukrs = 'MBIL' and gjahr = year .
if sy-subrc = 0 .
select single * from bseg where bukrs = 'MBIL' and belnr = bkpf-belnr
and gjahr = year and koart = 'D' and
shkzg = 'S' .
zsdtab1_itab-excise_no = bseg-zuonr .
endif .
endif.
endif.
endif.
endselect.
endif .
select single kunnr vkbur into (zsdtab1_itab-kunnr ,
zsdtab1_itab-vkbur) from vbak
where vbeln = zsdtab1_itab-vbeln .
if sy-subrc = 0 .
select single name1 ort01 regio into (zsdtab1_itab-customer ,
zsdtab1_itab-city , zsdtab1_itab-region) from kna1
where kunnr = zsdtab1_itab-kunnr .
endif.
Get Ship to Party **************************************************
select single * from vbpa where vbeln = zsdtab1_itab-vbeln and
parvw = 'WE' .
if sy-subrc = 0 .
zsdtab1_itab-ship_tp = vbpa-kunnr .
Get Destination Country of Ship to Party .************
select single * from kna1 where kunnr = vbpa-kunnr .
if sy-subrc = 0 .
select single * from t005t where land1 = kna1-land1
and spras = 'E' .
if sy-subrc = 0 .
zsdtab1_itab-country = t005t-landx .
endif .
endif .
endif .
endif .
endform. " GET_SALES
form update_time.
update zstatus set zupddate = sy-datum
uzeit = sy-uzeit
where programm = 'ZSDDET01' .
endform. " UPDATE_TIME
*& Form DATE_CONVERT
form date_convert using atflv changing date .
data : dt(8) , dat type i .
dat = atflv .
dt = dat .
date = dt .
endform. " DATE_CONVERT
*& Form UPDATE_POST_GOODS_ISSUE_DATE
form update_post_goods_issue_date .
types : begin of itab1_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab1_type .
data : itab1 type itab1_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-postdate = '00000000' .
refresh itab1 . clear itab1 .
select * from mseg where matnr = mara_itab-matnr and bwart = '601' .
itab1-mblnr = mseg-mblnr .
append itab1 .
endselect .
loop at itab1 .
select single * from mkpf where mblnr = itab1-mblnr .
if sy-subrc = 0 .
itab1-budat = mkpf-budat .
modify itab1 .
endif .
endloop .
sort itab1 by budat .
read table itab1 index 1 .
if sy-subrc = 0 .
update zsdtab1 set postdate = itab1-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_POST_GOODS_ISSUE_DATE
*& Form UPDATE_EXCISE_DATE
form update_excise_date.
types : begin of itab2_type ,
mblnr like mseg-mblnr ,
budat like mkpf-budat ,
end of itab2_type .
data : itab2 type itab2_type occurs 10 with header line .
loop at mara_itab .
select single * from zsdtab1 where commno = mara_itab-matnr .
if sy-subrc = 0 and zsdtab1-excise_dat = '00000000' .
refresh itab2 . clear itab2 .
select * from mseg where matnr = mara_itab-matnr and
( bwart = '601' or bwart = '311' ) .
itab2-mblnr = mseg-mblnr .
append itab2 .
endselect .
loop at itab2 .
select single * from mkpf where mblnr = itab2-mblnr .
if sy-subrc = 0 .
itab2-budat = mkpf-budat .
modify itab2 .
endif .
endloop .
sort itab2 by budat .
read table itab2 index 1 .
if sy-subrc = 0 .
update zsdtab1 set excise_dat = itab2-budat
where commno = mara_itab-matnr .
endif .
endif .
endloop .
endform. " UPDATE_EXCISE_DATE
form get_order using matnr .
types : begin of itab_type ,
vbeln like vbap-vbeln ,
posnr like vbap-posnr ,
end of itab_type .
data : itab type itab_type occurs 10 with header line .
refresh itab . clear itab .
select * from vbap where matnr = mara_itab-matnr .
itab-vbeln = vbap-vbeln .
itab-posnr = vbap-posnr .
append itab .
endselect .
loop at itab .
select single * from vbak where vbeln = itab-vbeln .
if vbak-vbtyp <> 'C' .
delete itab .
endif .
endloop .
loop at itab .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'H' .
if sy-subrc = 0 .
delete itab .
endif .
endloop .
clear : zsdtab1_itab-vbeln , zsdtab1_itab-bill_doc .
loop at itab .
zsdtab1_itab-vbeln = itab-vbeln .
select single * from vbfa where vbelv = itab-vbeln and
posnv = itab-posnr and vbtyp_n = 'M' .
if sy-subrc = 0 .
zsdtab1_itab-bill_doc = vbfa-vbeln .
endif .
endloop .
endform .
*& Form GET_CARTYPE
form get_cartype using matnr .
select single * from mara where matnr = matnr .
zsdtab1_itab-cartype = mara-satnr .
endform. " GET_CARTYPEHi,
I have analysed your program and i would like to share following points for better performance of this report :
(a) Use the field Names instead of Select * or Select Single * as if you use the field names it will consume less amount of resources inside the loop as well as you have lot many Select Single * and u r using very big tables like VBAP and many more.
(b) Trace on ST05 which particular query is mostly effecting your system or use ST12 in current mode to trace for less inputs which run the report for 20-30 min so that we get an idea which queries are effecting the system and taking a lot of time.
(c) In Case of internal tables sort the data properly and use binary search for getting the data.
I think this will help.
Thanks and Regards,
Harsh
Maybe you are looking for
-
GO_BLOCK IF A FIELD VALUE HAS CHANGED??
Hi Gurus, i have a block A with a date field and an amount field. And a separate block B with a date and an amount field. Block B 01.01.04 100 ⬠01.02.04 200 ⬠01.03.04 300 ⬠01.04.04 400 ⬠If i put the date 01.02.04 in the Block A, i had to
-
Garageband wont display a song from itunes.
I have one song that will not display in the media browser. It is a song I purchased from the iTunes store and it does show up in the "purchased" list.
-
Why does my contact delete ?
i have an iphone 5s and i set icolud , i connect to celluar or wifi all the time. some times i can not find one of my contact and it seems deleted. it happen a lot and i lost some of my contact. what is the problem? icloud? my phone? please help me t
-
Hi Friends, I have been trying to find how to activate the infotype change pointers and I could not find any helpful thread in this forum, in my case the program RPUAUD00 does not return any change logs. Could someone please tell me how to activate t
-
What is the requirement for Dell machine, Intel Linux for the configuration for RAC on Oracle Standard Edition?