Wieder so ein Spezifisches Thema aber Hallo erstmal.
Ich bin nun an einen Punkt angekommen an dem ich wirklich 0 weiter weiß.
Meine Aufgabe war einen Art Ressourcenplaner zu basteln der mit den einzelen KalnderWochen bestückt ist.
Das hab ich auch alles soweit sogut hinbekommen.
Die Table hatte immer das Format :
Name ; Projekt ; KWHeute ; KWHeute+1 ; KWHeute+2 - KWx(Fester Wert)
usw.
Das klappte alles ganz super solange ich einen festen Wert für die Kalnderwochen hatte.
Jetzt musste ich den Wert aber skaliebar machen und auchdas klappte.
Bis auf den einen Fehler undzwar wenn ich nun sagen wir 12 Wochen anzeigen lasse, in die 12te Woche Spalte etwas hineinschreibe und dann wieder auf 10 Wochen runter gehe , schneidet sich der Part ab. Warum das ist mir klar das liegt an meiner SpeicherMethode die immer die aktuellen
Spalten und Reihen nimmt und daraus die Werte zieht , die alte Datei löscht und neuschreibt.
Jetzt möchte ich es gerne so umschreiben das von Anfang an, 52 Kalenderwochen in der Datei sind, bzw wenn sie nich exisitert oder NULL ist dann natürlich nicht. Erst nach dem ersten Speichergang.
Soweit habe ich auch schon etwas gesbastelt was das umsetzen könnte.
Die auslese Methode aus dem Table.
Die FormattedDate
Diese hier liest den 2D Vector ein ( der jetzt eigentlich die 52-53 KW's beinhalten sollte) und Formatiert ihn um.
Sie nimmt erst das Array das vorher Formatiert wurde mit den kompletten (Alten) Daten und schreibt dort hinein die neuen TableDaten.
Die eigentliche SpeicherMethode schreibt einfach ganz Sturr das Array in eine .csv Datei.
Jetzt kommt mein eigentliches Problem, das Ausgeben des Arrays(Vectors)
Wenn die Datei nun neu eingelesen wird , soll sie 54/55 Einträge haben, leere Einträge werden mit ";" getrennt wie man es von .csv kennt.
Die 2 zusätzlichen Einträge sind der Name und das jeweilige Projekt.
Das war erstmal das Hintergrundwissen das sich eh nur die wenigsten durchlesen.
Meine Frage bezieht sich nun ( nicht unbedingt Spezifisch auf das Thema hier aber es wäre nett wenn jemand es so umsetzt bei einem Versuch )
Wie schreibe ich nun eine Schleife die ,die sowohl die ersten beiden Werte des Vectors ausgibt und dann mit der heutigen KalenderWoche beginnt.
Bsp wäre.
Ich bin nun an einen Punkt angekommen an dem ich wirklich 0 weiter weiß.
Meine Aufgabe war einen Art Ressourcenplaner zu basteln der mit den einzelen KalnderWochen bestückt ist.
Das hab ich auch alles soweit sogut hinbekommen.
Die Table hatte immer das Format :
Name ; Projekt ; KWHeute ; KWHeute+1 ; KWHeute+2 - KWx(Fester Wert)
usw.
Das klappte alles ganz super solange ich einen festen Wert für die Kalnderwochen hatte.
Jetzt musste ich den Wert aber skaliebar machen und auchdas klappte.
Bis auf den einen Fehler undzwar wenn ich nun sagen wir 12 Wochen anzeigen lasse, in die 12te Woche Spalte etwas hineinschreibe und dann wieder auf 10 Wochen runter gehe , schneidet sich der Part ab. Warum das ist mir klar das liegt an meiner SpeicherMethode die immer die aktuellen
Spalten und Reihen nimmt und daraus die Werte zieht , die alte Datei löscht und neuschreibt.
Jetzt möchte ich es gerne so umschreiben das von Anfang an, 52 Kalenderwochen in der Datei sind, bzw wenn sie nich exisitert oder NULL ist dann natürlich nicht. Erst nach dem ersten Speichergang.
Soweit habe ich auch schon etwas gesbastelt was das umsetzen könnte.
Die auslese Methode aus dem Table.
Die FormattedDate
Java:
public String[] getFormattedTable(){
String[] formattedArray = new String[get2DTable().size()];
for (int i = 0; i < formattedArray.length; i++) {
for (int j = 0; j < get2DTable().get(i).size(); j++) {
if(formattedArray != null){
formattedArray[i] = get2DTable().get(i).get(j)+";";
}else{
formattedArray[i] += get2DTable().get(i).get(j)+";";
}
}
}
return formattedArray;
}
Diese hier liest den 2D Vector ein ( der jetzt eigentlich die 52-53 KW's beinhalten sollte) und Formatiert ihn um.
Java:
/**Speichert alle aktuellen Daten in der Tabelle in der "table.txt"
*
*/
public void save(){
int nAnzahlReihen = dtm.getRowCount();
int nAnzahlSpalten = dtm.getColumnCount();
String[] sTableDaten = new String[nAnzahlReihen];
for(int i = 0; i < nAnzahlReihen; i++){
for(int l = 0; l < nAnzahlSpalten; l++){
// Schreibt die Daten aus dem Table in ein neues Array
if(tabelle.getValueAt(i, l) != null){
tabelle.setValueAt("", i, l);
}
if(sTableDaten[i] != null)
sTableDaten[i] += tabelle.getValueAt(i,l).toString()+";";
else
sTableDaten[i] = tabelle.getValueAt(i,l).toString()+";";
l++;
}
}
// Soll die neuen Daten mit den alten Überschreiben damit keine Daten verloren gehen.
String[] oldTableData = c_initData.getFormattedTable();
for (int i = 0; i < sTableDaten.length; i++) {
oldTableData[c_initData.getWeekNow()] = sTableDaten[i];
}
c_initData.saveData(oldTableData);
}
Sie nimmt erst das Array das vorher Formatiert wurde mit den kompletten (Alten) Daten und schreibt dort hinein die neuen TableDaten.
Die eigentliche SpeicherMethode schreibt einfach ganz Sturr das Array in eine .csv Datei.
Jetzt kommt mein eigentliches Problem, das Ausgeben des Arrays(Vectors)
Wenn die Datei nun neu eingelesen wird , soll sie 54/55 Einträge haben, leere Einträge werden mit ";" getrennt wie man es von .csv kennt.
Die 2 zusätzlichen Einträge sind der Name und das jeweilige Projekt.
Das war erstmal das Hintergrundwissen das sich eh nur die wenigsten durchlesen.
Meine Frage bezieht sich nun ( nicht unbedingt Spezifisch auf das Thema hier aber es wäre nett wenn jemand es so umsetzt bei einem Versuch )
Wie schreibe ich nun eine Schleife die ,die sowohl die ersten beiden Werte des Vectors ausgibt und dann mit der heutigen KalenderWoche beginnt.
Bsp wäre.
Java:
Vector vec = new Vector();
vec.add(0,"Name");
vec.add(1,"Projekt");
vec.add(2,"Das soll nicht angezeigt werden");
vec.add(27,"Das hier schon");
Zuletzt bearbeitet: