Gå til innhold

Skriver ut tekst med en for løkke inne i en while løkke, men den havner på feil sted.


Anbefalte innlegg

Hei. Jeg lager et system hvor jeg kan skirve inn hvor mange timer jeg har jobbet på nett(JSP), hvilke proskjekt jeg har vært på, hvor mye overtid jeg hadde de forskjellige dagene osv. Registreingen av dette i databasen går fint. Slik det er nå velger jeg prosjekt, den kjører en spørring og returnerer det aktuelle ukenummeret, antall timer, overtidstimer osv.Men når jeg skal "se" dette ved at den skriver det ut, fungerer det ikke slik som jeg hadde tenkt. ArrayListen timer og Array'en dager blir korrekt utfylt.

 

ArrayList timer = getTimeseddel(id); // Har en metode som returnerer en ArrayList utfylt med alle verdiene

//ikke veldig relevant for problemet, men tar det med likevel! (så vet dere hva dager[][] er)
String [][] dager = new String[16][16];
	dager[0][0] = "Beskrivelse";
	dager[1][0] = "<b> M </b>";
	dager[2][0] = "T";
	dager[3][0] = "O";
	dager[4][0] = "T";
	dager[5][0] = "F";
	dager[6][0] = "L";
	dager[7][0] = "S";
	dager[8][0] = "<b> M </b>";
	//Skippet de 6 neste dagene for å korte ned innlegget.
	dager[15][0] = "Sum";
	dager[0][1] = "Totalt antall timer";
	dager[0][2] = "Herav timer 50% tillegg";
	dager[0][3] = "Herav timer 100% tillegg";
	dager[0][4] = "Km";
	dager[0][5] = "Passa./verkt. tillegg";
	dager[0][6] = "Parkering/bomring";
	dager[0][7] = "Bastillegg";
	dager[0][8] = "Utlegg m/ kvittering";

while(timer.size()>0){
int y=0;
int a=0;

switch(timer.size()){ //bruker denne til å beregne hvor mange ukenummer og prosjektnummer som kommer før antall timer og overtidstimer kommer.
case 230:
	y=3;a=3;
	break;
case 345:
	y=5;a=5;
	break;
case 460:
	y=9;a=9;
	break;
case 575:
	y=12;a=12;
	break;
case 690:
	y=15;a=15;
	break;
}
String ukenr1=(String)timer.get(2);
String ukenr2=(String)timer.get(0);
String prosjektnr = (String)timer.get(1);
out.println("Ukenr : "+ ukenr1 +" - " +ukenr2 +"<br>");
out.println("Prosjektnr : " + prosjektnr);
timer.remove(0);timer.remove(0);timer.remove(0); //Fjerner de 3 første elementene i AL'en timer
for (int g=0;g<8;g++){ //Fyller ut Array'en med verdier fra ArrayListen.

		dager[1][g+1] = (String)timer.get(y);
		dager[2][g+1] = (String)timer.get(y+8);
				  .
						  .
						  .
		dager[14][g+1] = (String)timer.get(y+104);
		dager[15][g+1] = Double.toString(Double.parseDouble(dager[1][g+1]) + Double.parseDouble(dager[2][g+1]) //+ ..... + resten av dagene 
			y++;
		}

// Her tror jeg problemet ligger. Så jeg la ved utskriften "Before we start to write"
			out.println("BEFORE WE START TO WRITE!"); // Bare en sjekk for å se når den begynne å skrive!
	out.println("<table border=\"1\" cellpadding = \"5\">");
	for (int x=0;x<9;x++){
		out.println("<tr>");
			for (int o=0;o<dager[0].length;o++){
				out.println("<td>" + dager[o][x] + "</td>");	
			}	
		out.println("</tr>");
	}//end for(utskrivningen)


		for (int b=a;b<(112+a);b++){
			timer.remove(a); //Fjerner alle elementene fra listen som allerede har blitt skrevet ut, deretter begynner den på nytt, tar ut ukenummer og prosjektnummer, fjerner disse. skriver ut timene og fjerner de som er skrevet ut.. Sånn fortsetter det til listen er tom.
		}//End remove

}//end while!

post-62356-1246625517_thumb.jpg

Dere kan se utskriften på bildet!

 

EDIT: Overskrift

Endret av MortenGj
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...