TableView wird nicht gefüllt

zhermann

Mitglied
Sitze mal wieder vor einem Rätsel:
Versuche aus eineer CSV Datei ein TabelView zu füllen. Die Spaltenüberschriften werden in das TableView eingefügt und auch angezeigt, aber leider die Daten nicht.

Das Ergebniss sieht dann so aus:

upload_2017-9-29_12-53-50.png

Sollte aber mit den Daten gefüllt werden:

upload_2017-9-29_12-54-42.png

Wo zum G... ist mein Denkfehler?
Hier mal den Code

Code:
package application.controller;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.layout.AnchorPane;

public class SAPImportController {
   
   // @FXML TableView SAPtable;
   @FXML AnchorPane SAPImport;
   
   private File csvFile;

   public class Record {
       private SimpleStringProperty f1,f2,f3,f4,f5,f6,f7,f8,f9,
                                    f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,
                                    f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,
                                    f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,
                                    f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,
                                    f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,
                                    f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,
                                    f70,f71,f72,f73,f74,f75,f76,f77,f78;
       
       public String getF1() {
           return f1.get();
       }

       public String getF2() {
           return f2.get();
       }

       public String getF3() {
           return f3.get();
       }

       public String getF4() {
           return f4.get();
       }

       public String getF5() {
           return f5.get();
       }

       public String getF6() {
           return f6.get();
       }

       public String getF7() {
           return f7.get();
       }

       public String getF8() {
           return f8.get();
       }

       public String getF9() {
           return f9.get();
       }

       public String getF10() {
           return f10.get();
       }

       public String getF11() {
           return f11.get();
       }

       public String getF12() {
           return f12.get();
       }

       public String getF13() {
           return f13.get();
       }

       public String getF14() {
           return f14.get();
       }

       public String getF15() {
           return f15.get();
       }

       public String getF16() {
           return f16.get();
       }

       public String getF17() {
           return f17.get();
       }

       public String getF18() {
           return f18.get();
       }

       public String getF19() {
           return f19.get();
       }

       public String getF20() {
           return f20.get();
       }

       public String getF21() {
           return f21.get();
       }

       public String getF22() {
           return f22.get();
       }

       public String getF23() {
           return f23.get();
       }

       public String getF24() {
           return f24.get();
       }

       public String getF25() {
           return f25.get();
       }

       public String getF26() {
           return f26.get();
       }

       public String getF27() {
           return f27.get();
       }

       public String getF28() {
           return f28.get();
       }

       public String getF29() {
           return f29.get();
       }

       public String getF30() {
           return f30.get();
       }

       public String getF31() {
           return f31.get();
       }

       public String getF32() {
           return f32.get();
       }

       public String getF33() {
           return f33.get();
       }

       public String getF34() {
           return f34.get();
       }

       public String getF35() {
           return f35.get();
       }

       public String getF36() {
           return f36.get();
       }

       public String getF37() {
           return f37.get();
       }

       public String getF38() {
           return f38.get();
       }

       public String getF39() {
           return f39.get();
       }

       public String getF40() {
           return f40.get();
       }

       public String getF41() {
           return f41.get();
       }

       public String getF42() {
           return f42.get();
       }

       public String getF43() {
           return f43.get();
       }

       public String getF44() {
           return f44.get();
       }

       public String getF45() {
           return f45.get();
       }

       public String getF46() {
           return f46.get();
       }

       public String getF47() {
           return f47.get();
       }

       public String getF48() {
           return f48.get();
       }

       public String getF49() {
           return f49.get();
       }

       public String getF50() {
           return f50.get();
       }

       public String getF51() {
           return f51.get();
       }

       public String getF52() {
           return f52.get();
       }

       public String getF53() {
           return f53.get();
       }

       public String getF54() {
           return f54.get();
       }

       public String getF55() {
           return f55.get();
       }

       public String getF56() {
           return f56.get();
       }

       public String getF57() {
           return f57.get();
       }

       public String getF58() {
           return f58.get();
       }

       public String getF59() {
           return f59.get();
       }

       public String getF60() {
           return f60.get();
       }

       public String getF61() {
           return f61.get();
       }

       public String getF62() {
           return f62.get();
       }

       public String getF63() {
           return f63.get();
       }

       public String getF64() {
           return f64.get();
       }

       public String getF65() {
           return f65.get();
       }

       public String getF66() {
           return f66.get();
       }

       public String getF67() {
           return f67.get();
       }

       public String getF68() {
           return f68.get();
       }

       public String getF69() {
           return f69.get();
       }

       public String getF70() {
           return f70.get();
       }

       public String getF71() {
           return f71.get();
       }

       public String getF72() {
           return f72.get();
       }

       public String getF73() {
           return f73.get();
       }

       public String getF74() {
           return f74.get();
       }

       public String getF75() {
           return f75.get();
       }

       public String getF76() {
           return f76.get();
       }

       public String getF77() {
           return f77.get();
       }

       public String getF78() {
           return f78.get();
       }
       
       Record (String f1,String f2,String f3,String f4,String f5,String f6,String f7,String f8,String f9,
               String f10,String f11,String f12,String f13,String f14,String f15,String f16,String f17,String f18,String f19,
               String f20,String f21,String f22,String f23,String f24,String f25,String f26,String f27,String f28,String f29,
               String f30,String f31,String f32,String f33,String f34,String f35,String f36,String f37,String f38,String f39,
               String f40,String f41,String f42,String f43,String f44,String f45,String f46,String f47,String f48,String f49,
               String f50,String f51,String f52,String f53,String f54,String f55,String f56,String f57,String f58,String f59,
               String f60,String f61,String f62,String f63,String f64,String f65,String f66,String f67,String f68,String f69,
               String f70,String f71,String f72,String f73,String f74,String f75,String f76,String f77,String f78) {
           
           this.f1 = new SimpleStringProperty (f1);
           this.f2 = new SimpleStringProperty (f2);
           this.f3 = new SimpleStringProperty (f3);
           this.f4 = new SimpleStringProperty (f4);
           this.f5 = new SimpleStringProperty (f5);
           this.f6 = new SimpleStringProperty (f6);
           this.f7 = new SimpleStringProperty (f7);
           this.f8 = new SimpleStringProperty (f8);
           this.f9 = new SimpleStringProperty (f9);
           this.f10 = new SimpleStringProperty (f10);
           this.f11 = new SimpleStringProperty (f11);
           this.f12 = new SimpleStringProperty (f12);
           this.f13 = new SimpleStringProperty (f13);
           this.f14 = new SimpleStringProperty (f14);
           this.f15 = new SimpleStringProperty (f15);
           this.f16 = new SimpleStringProperty (f16);
           this.f17 = new SimpleStringProperty (f17);
           this.f18 = new SimpleStringProperty (f18);
           this.f19 = new SimpleStringProperty (f19);
           this.f20 = new SimpleStringProperty (f20);
           this.f21 = new SimpleStringProperty (f21);
           this.f22 = new SimpleStringProperty (f22);
           this.f23 = new SimpleStringProperty (f23);
           this.f24 = new SimpleStringProperty (f24);
           this.f25 = new SimpleStringProperty (f25);
           this.f26 = new SimpleStringProperty (f26);
           this.f27 = new SimpleStringProperty (f27);
           this.f28 = new SimpleStringProperty (f28);
           this.f29 = new SimpleStringProperty (f29);
           this.f30 = new SimpleStringProperty (f30);
           this.f31 = new SimpleStringProperty (f31);
           this.f32 = new SimpleStringProperty (f32);
           this.f33 = new SimpleStringProperty (f33);
           this.f34 = new SimpleStringProperty (f34);
           this.f35 = new SimpleStringProperty (f35);
           this.f36 = new SimpleStringProperty (f36);
           this.f37 = new SimpleStringProperty (f37);
           this.f38 = new SimpleStringProperty (f38);
           this.f39 = new SimpleStringProperty (f39);
           this.f40 = new SimpleStringProperty (f40);
           this.f41 = new SimpleStringProperty (f41);
           this.f42 = new SimpleStringProperty (f42);
           this.f43 = new SimpleStringProperty (f43);
           this.f44 = new SimpleStringProperty (f44);
           this.f45 = new SimpleStringProperty (f45);
           this.f46 = new SimpleStringProperty (f46);
           this.f47 = new SimpleStringProperty (f47);
           this.f48 = new SimpleStringProperty (f48);
           this.f49 = new SimpleStringProperty (f49);
           this.f50 = new SimpleStringProperty (f50);
           this.f51 = new SimpleStringProperty (f51);
           this.f52 = new SimpleStringProperty (f52);
           this.f53 = new SimpleStringProperty (f53);
           this.f54 = new SimpleStringProperty (f54);
           this.f55 = new SimpleStringProperty (f55);
           this.f56 = new SimpleStringProperty (f56);
           this.f57 = new SimpleStringProperty (f57);
           this.f58 = new SimpleStringProperty (f58);
           this.f59 = new SimpleStringProperty (f59);
           this.f60 = new SimpleStringProperty (f60);
           this.f61 = new SimpleStringProperty (f61);
           this.f62 = new SimpleStringProperty (f62);
           this.f63 = new SimpleStringProperty (f63);
           this.f64 = new SimpleStringProperty (f64);
           this.f65 = new SimpleStringProperty (f65);
           this.f66 = new SimpleStringProperty (f66);
           this.f67 = new SimpleStringProperty (f67);
           this.f68 = new SimpleStringProperty (f68);
           this.f69 = new SimpleStringProperty (f69);
           this.f70 = new SimpleStringProperty (f70);
           this.f71 = new SimpleStringProperty (f71);
           this.f72 = new SimpleStringProperty (f72);
           this.f73 = new SimpleStringProperty (f73);
           this.f74 = new SimpleStringProperty (f74);
           this.f75 = new SimpleStringProperty (f75);
           this.f76 = new SimpleStringProperty (f76);
           this.f77 = new SimpleStringProperty (f77);
           this.f78 = new SimpleStringProperty (f78);
       }
   }
   
   private final TableView<Record> tableView = new TableView<>();
   private final ObservableList<Record> dataList= FXCollections.observableArrayList();
   private TableColumn[] tableColumns;

   public SAPImportController(File csvFile ) {
       this.setCsvFile(csvFile);
   }

   @FXML
   public void initialize() {
       // this.SAPtable.setItems(dataList);
       readCSV();
       this.tableView.setItems(dataList);
       this.SAPImport.getChildren().add(tableView);
   }

   @SuppressWarnings({ "unused", "unchecked" })
   private void readCSV() {
       BufferedReader br;
       
       try {
           br = new BufferedReader(new FileReader(this.getCsvFile()));
           String line;
           Boolean isFirstLine = true;
           while ((line = br.readLine()) != null) {
               String[] fields = line.split(";", -1);
               if (isFirstLine) {
                   tableColumns = new TableColumn[fields.length];
                   int index = 0;
                   for (String columnName : fields) {
                       tableColumns[index++] = new TableColumn(fields[index-1]);
                   }
                   this.tableView.getColumns().addAll(tableColumns);
                   isFirstLine = false;
               } else {
                   Record record = new Record(fields[0], fields[1], fields[2], fields[3], fields[4], fields[5], fields[6], fields[7], fields[8], fields[9],
                                              fields[10], fields[11], fields[12], fields[13], fields[14], fields[15], fields[16], fields[17], fields[18], fields[19],
                                              fields[20], fields[21], fields[22], fields[23], fields[24], fields[25], fields[26], fields[27], fields[28], fields[29],
                                              fields[30], fields[31], fields[32], fields[33], fields[34], fields[35], fields[36], fields[37], fields[38], fields[39],
                                              fields[40], fields[41], fields[42], fields[43], fields[44], fields[45], fields[46], fields[47], fields[48], fields[49],
                                              fields[50], fields[51], fields[52], fields[53], fields[54], fields[55], fields[56], fields[57], fields[58], fields[59],
                                              fields[60], fields[61], fields[62], fields[63], fields[64], fields[65], fields[66], fields[67], fields[68], fields[69],
                                              fields[70], fields[71], fields[72], fields[73], fields[74], fields[75], fields[76], fields[77]);
                   dataList.add(record);
               }
           }
       } catch (IOException ex) {
           
       }
   }
   
   public File getCsvFile() {
       return csvFile;
   }

   public void setCsvFile(File csvFile) {
       this.csvFile = csvFile;
   }
   

}
 

zhermann

Mitglied
Hallo thet1983

Die TabelColumns werden gefüllt. Das funktioniert.
Aber die Eigentlichen Daten werden nicht in das TableView geladen

Code:
...
               } else {
                   Record record = new Record(fields[0], fields[1], fields[2], fields[3], fields[4], fields[5], fields[6], fields[7], fields[8], fields[9],
                                              fields[10], fields[11], fields[12], fields[13], fields[14], fields[15], fields[16], fields[17], fields[18], fields[19],
                                              fields[20], fields[21], fields[22], fields[23], fields[24], fields[25], fields[26], fields[27], fields[28], fields[29],
                                              fields[30], fields[31], fields[32], fields[33], fields[34], fields[35], fields[36], fields[37], fields[38], fields[39],
                                              fields[40], fields[41], fields[42], fields[43], fields[44], fields[45], fields[46], fields[47], fields[48], fields[49],
                                              fields[50], fields[51], fields[52], fields[53], fields[54], fields[55], fields[56], fields[57], fields[58], fields[59],
                                              fields[60], fields[61], fields[62], fields[63], fields[64], fields[65], fields[66], fields[67], fields[68], fields[69],
                                              fields[70], fields[71], fields[72], fields[73], fields[74], fields[75], fields[76], fields[77]);
                   dataList.add(record);
...

Obwohl fields Daten enthält.

OK: fehlt noch ex.printStackTrace();
Code:
} catch (IOException ex) {
      ex.printStackTrace();
}
 

Nuiton

Bekanntes Mitglied
Java:
public class SAPImportController {
...

    @Override
    public void initialize(URL url, ResourceBundle rb) {
        // Initialisiere TableColumns
        tableColumn1.setCellValueFactory(new PropertyValueFactory<>("irgendetwas"));
        ...
    }  
}
 

zhermann

Mitglied
so funktioniert es:

Code:
    private void readCSV() {
       BufferedReader br;
       TableColumn[] ColImport = null;
       String colNames = "f";
       try {
           ColImport = new TableColumn[78];
           Charset inputCharset = Charset.forName("Cp850");
           br = new BufferedReader(new InputStreamReader(new FileInputStream(this.getCsvFile()),inputCharset));
           String line;
           rows = 0;
           Boolean isFirstLine = true;
           while ((line = br.readLine()) != null) {
               //String importline = line.replaceAll("^ᔎ„™", "ßöÄäÜ");
               String[] fields = line.replaceAll("\\;", ",").split(",", -1);
               if (isFirstLine) {
                   for (int index = 0; index < 78; index++) {
                       ColImport[index] = new TableColumn(fields[index]);
                       ColImport[index].setCellValueFactory(new PropertyValueFactory<>("f" + (index+1)));
                   }
                   this.tableView.setItems(dataList);          
                   tableView.getColumns().addAll(ColImport);
                   isFirstLine = false;
               } else {
                   Record record = new Record(
                           fields[0], fields[1], fields[2], fields[3], fields[4], fields[5],
                           fields[6], fields[7], fields[8], fields[9], fields[10], fields[11], fields[12], fields[13],
                           fields[14], fields[15], fields[16], fields[17], fields[18], fields[19], fields[20],
                           fields[21], fields[22], fields[23], fields[24], fields[25], fields[26], fields[27],
                           fields[28], fields[29], fields[30], fields[31], fields[32], fields[33], fields[34],
                           fields[35], fields[36], fields[37], fields[38], fields[39], fields[40], fields[41],
                           fields[42], fields[43], fields[44], fields[45], fields[46], fields[47], fields[48],
                           fields[49], fields[50], fields[51], fields[52], fields[53], fields[54], fields[55],
                           fields[56], fields[57], fields[58], fields[59], fields[60], fields[61], fields[62],
                           fields[63], fields[64], fields[65], fields[66], fields[67], fields[68], fields[69],
                           fields[70], fields[71], fields[72], fields[73], fields[74], fields[75], fields[76],
                           fields[77]);
                   dataList.add(record);
                   rows++;
               }
           }
           br.close();
           this.setRecordsCount(this.tableView.getItems().size());
           this.info.setText(this.getRecordsCount() + " Datensätze bereit zum Import!");
       } catch (IOException ex) {
           ex.printStackTrace();
       }
   }

und hier noch der zugehörige Record:

Code:
package application.helpers;

import javafx.beans.property.SimpleStringProperty;

public class Record {
   private SimpleStringProperty f1,f2,f3,f4,f5,f6,f7,f8,f9,
                                f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,
                                f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,
                                f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,
                                f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,
                                f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,
                                f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,
                                f70,f71,f72,f73,f74,f75,f76,f77,f78;
   public String getF1()  { return f1.get(); }
   public String getF2()  { return f2.get(); }
   public String getF3()  { return f3.get(); }
   public String getF4()  { return f4.get(); }
   public String getF5()  { return f5.get(); }
   public String getF6()  { return f6.get(); }
   public String getF7()  { return f7.get(); }
   public String getF8()  { return f8.get(); }
   public String getF9()  { return f9.get(); }
   public String getF10() { return f10.get(); }
   public String getF11() { return f11.get(); }
   public String getF12() { return f12.get(); }
   public String getF13() { return f13.get(); }
   public String getF14() { return f14.get(); }
   public String getF15() { return f15.get(); }
   public String getF16() { return f16.get(); }
   public String getF17() { return f17.get(); }
   public String getF18() { return f18.get(); }
   public String getF19() { return f19.get(); }
   public String getF20() { return f20.get(); }
   public String getF21() { return f21.get(); }
   public String getF22() { return f22.get(); }
   public String getF23() { return f23.get(); }
   public String getF24() { return f24.get(); }
   public String getF25() { return f25.get(); }
   public String getF26() { return f26.get(); }
   public String getF27() { return f27.get(); }
   public String getF28() { return f28.get(); }
   public String getF29() { return f29.get(); }
   public String getF30() { return f30.get(); }
   public String getF31() { return f31.get(); }
   public String getF32() { return f32.get(); }
   public String getF33() { return f33.get(); }
   public String getF34() { return f34.get(); }
   public String getF35() { return f35.get(); }
   public String getF36() { return f36.get(); }
   public String getF37() { return f37.get(); }
   public String getF38() { return f38.get(); }
   public String getF39() { return f39.get(); }
   public String getF40() { return f40.get(); }
   public String getF41() { return f41.get(); }
   public String getF42() { return f42.get(); }
   public String getF43() { return f43.get(); }
   public String getF44() { return f44.get(); }
   public String getF45() { return f45.get(); }
   public String getF46() { return f46.get(); }
   public String getF47() { return f47.get(); }
   public String getF48() { return f48.get(); }
   public String getF49() { return f49.get(); }
   public String getF50() { return f50.get(); }
   public String getF51() { return f51.get(); }
   public String getF52() { return f52.get(); }
   public String getF53() { return f53.get(); }
   public String getF54() { return f54.get(); }
   public String getF55() { return f55.get(); }
   public String getF56() { return f56.get(); }
   public String getF57() { return f57.get(); }
   public String getF58() { return f58.get(); }
   public String getF59() { return f59.get(); }
   public String getF60() { return f60.get(); }
   public String getF61() { return f61.get(); }
   public String getF62() { return f62.get(); }
   public String getF63() { return f63.get(); }
   public String getF64() { return f64.get(); }
   public String getF65() { return f65.get(); }
   public String getF66() { return f66.get(); }
   public String getF67() { return f67.get(); }
   public String getF68() { return f68.get(); }
   public String getF69() { return f69.get(); }
   public String getF70() { return f70.get(); }
   public String getF71() { return f71.get(); }
   public String getF72() { return f72.get(); }
   public String getF73() { return f73.get(); }
   public String getF74() { return f74.get(); }
   public String getF75() { return f75.get(); }
   public String getF76() { return f76.get(); }
   public String getF77() { return f77.get(); }
   public String getF78() { return f78.get(); }
  
   public Record (String f1,String f2,String f3,String f4,String f5,String f6,String f7,String f8,String f9,
           String f10,String f11,String f12,String f13,String f14,String f15,String f16,String f17,String f18,String f19,
           String f20,String f21,String f22,String f23,String f24,String f25,String f26,String f27,String f28,String f29,
           String f30,String f31,String f32,String f33,String f34,String f35,String f36,String f37,String f38,String f39,
           String f40,String f41,String f42,String f43,String f44,String f45,String f46,String f47,String f48,String f49,
           String f50,String f51,String f52,String f53,String f54,String f55,String f56,String f57,String f58,String f59,
           String f60,String f61,String f62,String f63,String f64,String f65,String f66,String f67,String f68,String f69,
           String f70,String f71,String f72,String f73,String f74,String f75,String f76,String f77,String f78) {
      
       this.f1 = new SimpleStringProperty (f1);
       this.f2 = new SimpleStringProperty (f2);
       this.f3 = new SimpleStringProperty (f3);
       this.f4 = new SimpleStringProperty (f4);
       this.f5 = new SimpleStringProperty (f5);
       this.f6 = new SimpleStringProperty (f6);
       this.f7 = new SimpleStringProperty (f7);
       this.f8 = new SimpleStringProperty (f8);
       this.f9 = new SimpleStringProperty (f9);
       this.f10 = new SimpleStringProperty (f10);
       this.f11 = new SimpleStringProperty (f11);
       this.f12 = new SimpleStringProperty (f12);
       this.f13 = new SimpleStringProperty (f13);
       this.f14 = new SimpleStringProperty (f14);
       this.f15 = new SimpleStringProperty (f15);
       this.f16 = new SimpleStringProperty (f16);
       this.f17 = new SimpleStringProperty (f17);
       this.f18 = new SimpleStringProperty (f18);
       this.f19 = new SimpleStringProperty (f19);
       this.f20 = new SimpleStringProperty (f20);
       this.f21 = new SimpleStringProperty (f21);
       this.f22 = new SimpleStringProperty (f22);
       this.f23 = new SimpleStringProperty (f23);
       this.f24 = new SimpleStringProperty (f24);
       this.f25 = new SimpleStringProperty (f25);
       this.f26 = new SimpleStringProperty (f26);
       this.f27 = new SimpleStringProperty (f27);
       this.f28 = new SimpleStringProperty (f28);
       this.f29 = new SimpleStringProperty (f29);
       this.f30 = new SimpleStringProperty (f30);
       this.f31 = new SimpleStringProperty (f31);
       this.f32 = new SimpleStringProperty (f32);
       this.f33 = new SimpleStringProperty (f33);
       this.f34 = new SimpleStringProperty (f34);
       this.f35 = new SimpleStringProperty (f35);
       this.f36 = new SimpleStringProperty (f36);
       this.f37 = new SimpleStringProperty (f37);
       this.f38 = new SimpleStringProperty (f38);
       this.f39 = new SimpleStringProperty (f39);
       this.f40 = new SimpleStringProperty (f40);
       this.f41 = new SimpleStringProperty (f41);
       this.f42 = new SimpleStringProperty (f42);
       this.f43 = new SimpleStringProperty (f43);
       this.f44 = new SimpleStringProperty (f44);
       this.f45 = new SimpleStringProperty (f45);
       this.f46 = new SimpleStringProperty (f46);
       this.f47 = new SimpleStringProperty (f47);
       this.f48 = new SimpleStringProperty (f48);
       this.f49 = new SimpleStringProperty (f49);
       this.f50 = new SimpleStringProperty (f50);
       this.f51 = new SimpleStringProperty (f51);
       this.f52 = new SimpleStringProperty (f52);
       this.f53 = new SimpleStringProperty (f53);
       this.f54 = new SimpleStringProperty (f54);
       this.f55 = new SimpleStringProperty (f55);
       this.f56 = new SimpleStringProperty (f56);
       this.f57 = new SimpleStringProperty (f57);
       this.f58 = new SimpleStringProperty (f58);
       this.f59 = new SimpleStringProperty (f59);
       this.f60 = new SimpleStringProperty (f60);
       this.f61 = new SimpleStringProperty (f61);
       this.f62 = new SimpleStringProperty (f62);
       this.f63 = new SimpleStringProperty (f63);
       this.f64 = new SimpleStringProperty (f64);
       this.f65 = new SimpleStringProperty (f65);
       this.f66 = new SimpleStringProperty (f66);
       this.f67 = new SimpleStringProperty (f67);
       this.f68 = new SimpleStringProperty (f68);
       this.f69 = new SimpleStringProperty (f69);
       this.f70 = new SimpleStringProperty (f70);
       this.f71 = new SimpleStringProperty (f71);
       this.f72 = new SimpleStringProperty (f72);
       this.f73 = new SimpleStringProperty (f73);
       this.f74 = new SimpleStringProperty (f74);
       this.f75 = new SimpleStringProperty (f75);
       this.f76 = new SimpleStringProperty (f76);
       this.f77 = new SimpleStringProperty (f77);
       this.f78 = new SimpleStringProperty (f78);
   }
}

Wenn jemand einen einfachere Lösung, bzw. eine universalere Lösung, für den Record weiss, währe ich dankbar für einen Post.
 

zhermann

Mitglied
Hallo mrBrown,

danke für die Antwort. Da ich aber ein absoluter JAVA Neuling bin, kann ich mit deiner Anwort leider nicht viel anfangen.
Könntest Du das eventuell etwas ausführlicher und für Anfänger erläutern?
 

mrBrown

Super-Moderator
Mitarbeiter
Hat nichts mit Java zu tun, sondern gilt grundsätzlich für alle Sprachen.

Ein Objekt mit 78 Feldern ist völlig überdimensioniert und die Felder sollten in keinem Fall f1 bis f78 heißen.
Stattdessen sollte das sinnvoll strukturiert sein - das Objekt stellt ja irgendwas dar, uU mit unterobjekten, und die Felder sollten auch vernünftig benannt sein.

In dem Foto sind sie ja zumindest sinnvoll benannt.
 

zhermann

Mitglied
Moin,

Warum hat das Objekt 78 Felder? Weil es in der CSV Datei genau 78 Spalten gibt, welche importiert werden.
OK f1 - f78 ist etwas schwach benannt, mir sind aber keine sprechenden Namen eingefallen, zumal die Daten dann in eine SQL Tabele importiert werden und von dort weiterverarbeitet werden. Die SQL-Felder sind natürlich richtig benannt, da es unterschiedliche Abfragen geben wird, wo nicht immer alle Felder benötigt werden.
 

dzim

Top Contributor
Naja, aber auch das CSV wird eindeutige Spalten haben, oder? Denn sonst könntest du es ja auch nicht eindeutig in die DB einfügen.
Es ist natürlich auch etwas Overkill, dass sowohl CSV als auch die SQL-Tabelle 78(!) Spalten haben. Irgendwie riecht das nach schlecht strukturierten Daten (ok, manchmal ist es einfacher, Spalten hinzuzufügen, aber sauber ist das ab einer gewissen Grösse nicht mehr). Ich rieche eine Oracle-DB, hinter dem SAP-Kram... ;)
 

mrBrown

Super-Moderator
Mitarbeiter
Warum hat das Objekt 78 Felder? Weil es in der CSV Datei genau 78 Spalten gibt, welche importiert werden.
Kann man trotzdem in Objekte aufteilen ;)

OK f1 - f78 ist etwas schwach benannt, mir sind aber keine sprechenden Namen eingefallen, zumal die Daten dann in eine SQL Tabele importiert werden und von dort weiterverarbeitet werden. Die SQL-Felder sind natürlich richtig benannt, da es unterschiedliche Abfragen geben wird, wo nicht immer alle Felder benötigt werden.
Für ein Feld, welches einen Namen hat (zumindest in der DB), fällt dir kein Name ein? o_O
 

zhermann

Mitglied
Welche Datanbank hinter der SAP steht, kann ich nicht sagen. Da habe ich keinen Zugriff. Wenn ich mich richtig erinner, habe ich mal gehört das da eine DB2 hinter steht, bin mir aber nicht sicher. Bekomme die Daten per Abfrage im SAP und als Export in eine CSV und das noch nicht mal als UTF-8 sondern nur als CP850-Kodierung .

Ich muß monatlich einen Auswertung auf die Daten machen. Bis jetzt nache ich das mit einer Excel Tabelle. Das ist aber so umständlich mit den ganzen Abfragen und dann kommt der Chef und will jeden Monat eine andere Form der Auswertung. Also Excel komplett umformatieren ( :mad: krrrr...).

Da ich schon immer mich mit Java beschäftigen wollte, habe ich mir gedacht, ich mach mir einfach eine JAVA Anwendung, wo ich dann die Auswertung ;) einfach :D zusammen klicken kann. So nach dem Motto "Chef-ing by doing, ich nix stressing". :p:D;)

Die CSV enthält die kompletten Daten, welche mir SAP liefert. Welche Daten ich pro Auswertung benötige werden, weiß ich erst, wenn ich weiß welche Auswertungsform der Chef haben will. Also habe ich mir gedacht, einfach erstmal alles importieren und dann entscheiden. :cool:
 

Meniskusschaden

Top Contributor
Du willst die exportierten SAP-Daten dafür also in eine SQL-Datenbank überführen? Ich weiß nicht, ob ich dafür überhaupt programmieren würde. Du könntest die Transformation vielleicht mit einem ETL-Programm konfigurieren (z.B. mit dem Data Integration Tool der Pentaho-Suite). Die SQL-DB könntest du dann mit Berichtsgeneratoren auswerten (z.B. mit dem Report Designer von Pentaho). Die beiden Tools kann man auch stand-alone nutzen, also ohne gleich den ganzen BI-Server aufsetzen zu müssen. Vielleicht kannst du die Daten dann auch direkt ohne den CSV-Zwischenschritt in SAP abgreifen.
 

zhermann

Mitglied
Man kann natürlich bereits fertige Tools nutzen, da gebe ich Dir recht. Wo bleibt dann aber der Lernspaß. Da ich mich schon lange mit Java beschäftigen wollte, habe ich mir halt das "Projekt" vergenommen. Sollen noch weitere private Projekte folgen, das ist halt zum lernen, aus meiner Sicht, gut. Einen direkten Zugriff auf die SAP-DB habe ich nicht. Da wir SAP nicht selber hosten, sondern nur als Service, gegen Einwurf kleiner Münze, nutzen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
B SimpleLongProperty in TableView wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M JavaFX TableView nur erste Zeile editable machen und gelb markieren AWT, Swing, JavaFX & SWT 0
Encera TableView Zeilen als Spalten im SceneBuilder AWT, Swing, JavaFX & SWT 0
T TableView Button onAction AWT, Swing, JavaFX & SWT 3
mrbody234 ArrayList<Message> in eine TableView visualisieren AWT, Swing, JavaFX & SWT 2
izoards JavaFX TableView mit Array Inhalt füllen AWT, Swing, JavaFX & SWT 1
A Mit JavaFX einzelne Zeilen in TableView farbig markieren AWT, Swing, JavaFX & SWT 5
I JavaFX Zellen in Tableview editieren AWT, Swing, JavaFX & SWT 0
A TableView updatet sich nicht AWT, Swing, JavaFX & SWT 3
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
W TableView füllen AWT, Swing, JavaFX & SWT 18
missy72 JavaFX TableView / IconView mit MousEvent AWT, Swing, JavaFX & SWT 7
missy72 JavaFX Performance / ImageView in TableView über TimeLine AWT, Swing, JavaFX & SWT 1
T TableView aktualisieren AWT, Swing, JavaFX & SWT 1
N JavaFX Tableview nach Löschen von Element falscher Index AWT, Swing, JavaFX & SWT 4
T TableView Zeilen einfärben AWT, Swing, JavaFX & SWT 13
T TableView über Methode befüllen AWT, Swing, JavaFX & SWT 10
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
W JavaFX TableView aktualisieren AWT, Swing, JavaFX & SWT 1
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
B JavaFX TableView-Zellen sollen automatisch so groß wie der größte Inhalt sein AWT, Swing, JavaFX & SWT 6
D JavaFX Nullpointerexception wegen TableView AWT, Swing, JavaFX & SWT 2
S Alternative JavaFX TableView AWT, Swing, JavaFX & SWT 1
L JavaFX Tableview row callback AWT, Swing, JavaFX & SWT 0
G Bekomme ResultSet mittels ObservableList nicht ins TableView AWT, Swing, JavaFX & SWT 25
S JavaFX JavaFX TableView scrollen färbt falsche Zeilen AWT, Swing, JavaFX & SWT 1
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
J JavaFx TableView mit CheckBox AWT, Swing, JavaFX & SWT 4
P JavaFX TableView Zelle markieren AWT, Swing, JavaFX & SWT 3
L JavaFX Tableview Datamodel AWT, Swing, JavaFX & SWT 2
M TableView Zeile hinzufügen AWT, Swing, JavaFX & SWT 5
J TableView Update/Refresh CPU AWT, Swing, JavaFX & SWT 2
B Text im Tetfeld in einer TableView darstellen AWT, Swing, JavaFX & SWT 20
J Tableview - kann man mit Enter die Zellen wechseln AWT, Swing, JavaFX & SWT 1
ralfb1105 JavaFX Dynamisch TableView Spalten erstellen AWT, Swing, JavaFX & SWT 4
M TableView + Datenbank Aktualisierung AWT, Swing, JavaFX & SWT 4
B TableView als PDF speichern AWT, Swing, JavaFX & SWT 8
B JavaFX TableView eine Zeile markieren AWT, Swing, JavaFX & SWT 5
B JavaFX JavaFX TableView PropertyValueFactory für Werte aus HashMap AWT, Swing, JavaFX & SWT 2
L JavaFX TableView Column Sortierung AWT, Swing, JavaFX & SWT 1
L Java FX Keine Anzeige Im Tableview AWT, Swing, JavaFX & SWT 4
L JavaFX TableView kein content text ändern AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit Aktionenbuttons AWT, Swing, JavaFX & SWT 1
C JavaFX Edit TableView in Verbindung mit SceneBuilder AWT, Swing, JavaFX & SWT 1
C JavaFX ProGuard -> TableView kein Inhalt AWT, Swing, JavaFX & SWT 7
J SceneBuilder TableView Checkbox AWT, Swing, JavaFX & SWT 1
J JavaFX Elemente werden nicht zu TableView hinzugefügt AWT, Swing, JavaFX & SWT 3
F JavaFX (Tree)TableView korrekt drucken AWT, Swing, JavaFX & SWT 1
robinab JavaFX TableView column resize nach setItems() AWT, Swing, JavaFX & SWT 0
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
S JavaFx - ausgewählte Rows in Arraylist (Tableview) AWT, Swing, JavaFX & SWT 4
S JavaFX - Populate TableView AWT, Swing, JavaFX & SWT 2
N JavaFX TableView aus Map AWT, Swing, JavaFX & SWT 2
J TableView Daten werden nicht ausgegeben AWT, Swing, JavaFX & SWT 9
B JavaFX TableView aus Collection befüllen AWT, Swing, JavaFX & SWT 1
S JavaFX TableView einzelne Zelle Layout zuweisen AWT, Swing, JavaFX & SWT 3
zhermann TableView die zweite AWT, Swing, JavaFX & SWT 7
H Java FX List<AlbumsBean> in FXML TableView AWT, Swing, JavaFX & SWT 37
E JavaFX TableView mit Zeilenumbruch in Zellen AWT, Swing, JavaFX & SWT 5
M JavaFX JavaFX ResultSet in TableView ausgeben AWT, Swing, JavaFX & SWT 2
W JavaFX Mehrere Klassen in ein TableView AWT, Swing, JavaFX & SWT 6
M JavaFX berechneten Wert in TableView schreiben AWT, Swing, JavaFX & SWT 1
K JavaFX Message in TableView AWT, Swing, JavaFX & SWT 2
H TableView mit variabler Anzahl Spalten AWT, Swing, JavaFX & SWT 2
L JavaFX List oder TableView Größe dynamisch anpassen? AWT, Swing, JavaFX & SWT 4
L JavaFX TableView mit Excelfunktion AWT, Swing, JavaFX & SWT 1
D JavaFX TableView AWT, Swing, JavaFX & SWT 2
L JavaFX TableView mit XYChart verbinden AWT, Swing, JavaFX & SWT 3
blazingblade JavaFX Tableview Clock Column update AWT, Swing, JavaFX & SWT 5
P JavaFX, TableView und Datenbank AWT, Swing, JavaFX & SWT 4
K TableView: 'Komplexes' Object AWT, Swing, JavaFX & SWT 11
L JavaFX TableView background transparent machen AWT, Swing, JavaFX & SWT 7
F TableCell aus TableView holen AWT, Swing, JavaFX & SWT 8
K JavaFX TableView mit Rectangle AWT, Swing, JavaFX & SWT 3
M Befüllung der einzelnen Zeilen des TableView AWT, Swing, JavaFX & SWT 3
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
J Tableview Daten hinzufügen und aktualisieren AWT, Swing, JavaFX & SWT 5
N JavaFX TableView füllt nicht das gesamte ScrollPanle aus AWT, Swing, JavaFX & SWT 2
M JavaFX TableView & CSS, Rand um Tabellenkopf entfernen AWT, Swing, JavaFX & SWT 3
L JavaFX ListView oder TableView Style überschreiben? AWT, Swing, JavaFX & SWT 6
G Event Handling TableView daten in ein neues Fenster herauslesen? AWT, Swing, JavaFX & SWT 3
thet1983 JavaFX TableView Objekt Daten anzeige AWT, Swing, JavaFX & SWT 2
J JavaFX TableView - Höhe der Zeilen AWT, Swing, JavaFX & SWT 3
L JavaFX TableView mit Attributs der Modellreferenzerierung für die Spalte AWT, Swing, JavaFX & SWT 3
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
J JavaFX Bestimmte Zellen im TableView ändern (Farbe und Text) AWT, Swing, JavaFX & SWT 1
B Java FX TableView Zeilen mit verschiedenen Typen AWT, Swing, JavaFX & SWT 15
Z JavaFX TableView cellValueFactory für Arrays AWT, Swing, JavaFX & SWT 2
E JavaFX TableView mit Rechtsklick Zelle auswählen AWT, Swing, JavaFX & SWT 8
C (JavaFX 8) SQLite Datenbank in einem TableView darstellen AWT, Swing, JavaFX & SWT 2
D JavaFX TableView bleibt leer. AWT, Swing, JavaFX & SWT 8
M JavaFX TableView nach Spalte sortieren AWT, Swing, JavaFX & SWT 1
P JavaFX Dynamische TableView AWT, Swing, JavaFX & SWT 14
V Java FX POJO aus Datenbank in FX TableView / Best Practice AWT, Swing, JavaFX & SWT 0
P JavaFX TableView Item hinzufügen AWT, Swing, JavaFX & SWT 20
W JavaFX TableView frage AWT, Swing, JavaFX & SWT 5
M JavaFX Tutorial zu Tableview AWT, Swing, JavaFX & SWT 5
C JavaFX Zugriff auf TableView AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben