Arrays in einem tableView darstellen

  1. vor 2 Monaten

    Guten Tag an alle,

    ich bin Umsteiger und füge unten meinen Code bei.
    Es gelingt mir nicht, trotz verschiedenster Varianten, Daten, die ich programmgesteuert erzeuge, in einem tableView darstellen.
    Es ist ein einfaches Testprogramm, mit dem ich:

    • Werte eingebe
    • nach Eingabe der Werte über einen OK-Button Berechnungen durchführe
    • die berechneten Ergebnisse in Datenarrays speichere
    • ....... die Array-Inhalte jetzt in einem tableView ausgeben möchte.

    Es funktioniert alles prächtig, allein die Ausgabe auf dem tableView klappt nicht.
    Meine Versuche mit Daten, die ich direkt in ...
    var tableViewData["LfdMonat":"01", "Darlehensbetrag": "100.000,00", usw. .....] eingebe , klappen einwandfrei.

    Hoffentlich könnt ihr mit meinem Codebeispiel etwas anfangen und mir einen Hinweis oder besser noch, eine Lösung geben.

    Vorab besten Dank,

    Herbert

    import Cocoa

    //-------------------------------------------------
    // Die Arrays zum füllen des TableViews bestimmen
    //-------------------------------------------------

    var ArraylfdMonat: [Int] = []
    var ArrayAnfangsbetrag: [Float] = []
    var ArrayZinsen: [Float] = []
    var ArrayTilgung: [Float] = []
    var ArrayAnuität: [Float] = []
    var ArrayZuzahlung: [Float] = []
    var ArrayEndbetrag: [Float] = []

    //-----------------------------------------------------
    //-----------------------------------------------------
    //
    // Start Class
    //
    //-----------------------------------------------------
    //-----------------------------------------------------

    class ViewController: NSViewController {

    //-------------------------------------------------
    // Arbeitsvariable
    //-------------------------------------------------

    var V_Darlehensbetrag: Float = 0.00
    var V_Laufzeit: Int = 0
    var V_AktuellerMonat: Int = 0
    var V_LaufenderMonat: Int = 0
    var V_Anfangsbetrag: Float = 0.00
    var V_Zinssatz: Float = 0.00
    var V_Zinsen: Float = 0.00
    var V_Tilgungssatz: Float = 0.00
    var V_Tilgung: Float = 0.00
    var V_Anuitätssatz: Float = 0.00
    var V_Anuität: Float = 0.00
    var V_Zuzahlungssatz: Float = 0.00
    var V_Zuzahlung: Float = 0.00
    var V_Endbetrag: Float = 0.00

    //-------------------------------------------------
    // Outlet des TableView
    //-------------------------------------------------

    @IBOutlet weak var tableView:NSTableView!

    //-------------------------------------------------
    // TableView-Data bestimmen
    //-------------------------------------------------

    var tableViewData = [["LfdMonat":ArraylfdMonat,"Darlehensbetrag":ArrayAnfangsbetrag,"Zinsen":ArrayZinsen,"Tilgung":ArrayTilgung,"Anuität":ArrayAnuität,"Zuzahlung":ArrayZuzahlung,"Endbetrag":ArrayEndbetrag]]

    //-------------------------------------------------
    // Die Outlets der Eingabefelder
    //-------------------------------------------------

    @IBOutlet weak var TextDarlehensnummer: NSTextField!
    @IBOutlet weak var TextDarlehensbetrag: NSTextField!
    @IBOutlet weak var TextLaufzeit: NSTextField!
    @IBOutlet weak var TextZinssatz: NSTextField!
    @IBOutlet weak var TextTilgungssatz: NSTextField!
    @IBOutlet weak var TextAnuitätssatz: NSTextField!
    @IBOutlet weak var TextZuzahlung: NSTextField!

    //-------------------------------------------------
    // Die Actions der Eingabefelder
    //-------------------------------------------------

    @IBAction func TextDarlehensnummer(_ sender: Any) {
    }

    @IBAction func TextDarlehensbetrag(_ sender: Any) {
    V_Darlehensbetrag = Float(TextDarlehensbetrag.stringValue)!
    TextDarlehensbetrag.stringValue = String(format: "%.2f",V_Darlehensbetrag)
    }

    @IBAction func TextLaufzeit(_ sender: Any) {
    V_Laufzeit = Int(TextLaufzeit.stringValue)!
    }

    @IBAction func TextZinssatz(_ sender: Any) {
    V_Zinssatz = Float(TextZinssatz.stringValue)!
    TextZinssatz.stringValue = String(format: "%.2f", V_Zinssatz)

    V_Anuitätssatz = V_Zinssatz + V_Tilgungssatz + V_Zuzahlungssatz
    TextAnuitätssatz.stringValue = String(format: "%.2f", V_Anuitätssatz)
    }

    @IBAction func TextTilgungssatz(_ sender: Any) {
    V_Tilgungssatz = Float(TextTilgungssatz.stringValue)!
    TextTilgungssatz.stringValue = String(format: "%.2f", V_Tilgungssatz)

    V_Anuitätssatz = V_Zinssatz + V_Tilgungssatz + V_Zuzahlungssatz
    TextAnuitätssatz.stringValue = String(format: "%.2f", V_Anuitätssatz)
    }

    @IBAction func TextAnuitätssatz(_ sender: Any) {

    }

    @IBAction func TextZuzahlung(_ sender: Any) {
    V_Zuzahlungssatz = Float(TextZuzahlung.stringValue)!
    TextZuzahlung.stringValue = String(format: "%.2f", V_Zuzahlungssatz)

    V_Anuitätssatz = V_Zinssatz + V_Tilgungssatz + V_Zuzahlungssatz
    TextAnuitätssatz.stringValue = String(format: "%.2f", V_Anuitätssatz)
    }

    //-------------------------------------------------
    // Outlet der OK-Taste
    //-------------------------------------------------

    @IBOutlet weak var OKTaste: NSButton!

    //-------------------------------------------------
    //
    // Action der OK-Taste
    //
    // Berechnungen nach OK
    // Nach der Berechnung das Ergebnis dem
    // Array zufügen
    //-------------------------------------------------

    @IBAction func OKTaste(_ sender: Any) {

    V_Anuität = ((V_Anfangsbetrag / 100) * V_Anuitätssatz) / 12
    V_Anfangsbetrag = V_Darlehensbetrag

    repeat {

    V_AktuellerMonat += 1
    ArraylfdMonat.append(V_AktuellerMonat)

    ArrayAnfangsbetrag.append(V_Anfangsbetrag)

    ArrayAnuität.append(V_Anuität)

    V_Zinsen = ((V_Anfangsbetrag / 100) * V_Zinssatz ) / 12
    ArrayZinsen.append(V_Zinsen)

    V_Tilgung = V_Anuität - V_Zinsen
    ArrayTilgung.append(V_Tilgung)

    V_Zuzahlung = ((V_Anfangsbetrag / 100) * V_Zuzahlungssatz) / 12
    ArrayZuzahlung.append(V_Zuzahlung)

    V_Endbetrag = V_Anfangsbetrag - (V_Tilgung + V_Zuzahlung)
    ArrayEndbetrag.append(V_Endbetrag)

    V_Anfangsbetrag = V_Endbetrag


    } while V_AktuellerMonat <= V_Laufzeit
    }

    //-------------------------------------------------
    // TableView
    //-------------------------------------------------

    override func viewDidLoad() {
    super.viewDidLoad()
    self.tableView.delegate = self as? NSTableViewDelegate
    self.tableView.dataSource = self
    }
    }

    extension ViewController:NSTableViewDataSource{
    func numberOfRows(in tableView: NSTableView) -> Int {
    return V_Laufzeit //tableViewData.count
    }

    func tableView(_ tableView: NSTableView, objectValueFor tableColumn: NSTableColumn?, row: Int) -> Any? {
    return tableViewData[row][(tableColumn?.identifier)!]
    }
    }

 

oder registriere Dich, um zu antworten!