Jump to content
Unity Insider Forum

neuer Listeneintrag nach Benutzereingabe


peachplayer

Recommended Posts

Hallo Leute

das problem istfolgendes: ich möchte eine leere Daten-liste mit neuen Einträgen via Inputfields befüllen...leider klappt das bisher nur mit schon bestehened Datensätzen...

ich kann also keine neue Daten-liste mit Benutzereingaben anfangen!

Ich benütze folgenden Code:

 public void NeuerEintragHinzu()
    {


        Dünger neuerEintrag = ZufallsEintrag();
        liste1.Add(neuerEintrag);
 
        ListeSpeichern();
    }

    
 Dünger ZufallsEintrag()

    {

        float Fläche = 0.0f;
        float Erlös = 0.0f;

        dataXml = XElement.Load(GetPath2());
        IEnumerable<XElement> data = dataXml.Elements();
        k = 0;
        foreach (XElement item in data)
        {
            //string Datum = item.Element("Datum").Value;
            int Nummer = int.Parse(item.Element("Nummer").Value);
            string Kultur = item.Element("Kultur").Value;
            Fläche = float.Parse(item.Element("Fläche").Value);
            int index1 = dropdown1.value;
            string Parzellenname = dropdown1.options[index1].text;
            // Code der pro Parzellenname ausgeführt wird
            // parzelle enthält alle Einträge der jeweiligen Parzelle


            switch (Kultur)
            {
                case "Wintergerste":
                    {

                        ertrag = 5000.0f;
                        break;
                    }
                case "Winterweizen":
                    {
                        ertrag = 7000.0f;
                        break;
                    }
                case "Mais":
                    {
                        ertrag = 10000.0f;
                        break;
                    }
                case "Soja":
                    {
                        ertrag = 3300.0f;
                        break;
                    }
                case "Raps":
                    {
                        ertrag = 3800.0f;
                        break;
                    }
                case "Zuckerrüben":
                    {
                        ertrag = 60000.0f;
                        break;
                    }
                default:
                    Debug.Log("Der String Kultur lautet >" + Kultur + "< und ist in meiner Abfrage nicht vorhanden!");
                    break;

            }
            Debug.Log(Fläche);

            int index2 = dropdown2.value;
            string Düngersorte = dropdown2.options[index2].text;
            float Menge = float.Parse(MengeEingabe.text);
            float Kosten = Menge * 0.01f * 80.0f;
            string Datum = DatumEingabe.text;
            if (DatumEingabe.text == "")
                Datum = System.DateTime.Now.ToString("dd.MM.yyyy");
   
            Dünger neuerEintrag = new Dünger();
           
               neuerEintrag.Nummer = Nummer;
                neuerEintrag.Parzellenname = Parzellenname;
                neuerEintrag.Menge = Menge;
                neuerEintrag.Kosten = Kosten;
                neuerEintrag.Fläche = Fläche;
                neuerEintrag.Erlös = Fläche * 0.5f * ertrag * 0.01f;
                neuerEintrag.Düngersorte = Düngersorte;
                neuerEintrag.Kultur = Kultur;
                if (DatumEingabe.text == "")
                    Datum = System.DateTime.Now.ToString("dd.MM.yyyy");
   
                neuerEintrag.Datum = Datum;


                return neuerEintrag;
            

        

    }
        return null;
}

Gruss, peachplayerimage.thumb.png.f795b03f289308be09eb1004bedb4370.png

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 months later...

AHllo, zuerst: zeige deinen Code enger, sonst verliert man auf mehrere Bildschirm die Orientierung:

      float Fläche = 0.0f;
      float Erlös = 0.0f;
      dataXml = XElement.Load(GetPath2());
      IEnumerable<XElement> data = dataXml.Elements();
      k = 0;
      foreach (XElement item in data) {
        //string Datum = item.Element("Datum").Value;
        int Nummer = int.Parse(item.Element("Nummer").Value);
        string Kultur = item.Element("Kultur").Value;
        Fläche = float.Parse(item.Element("Fläche").Value);
        float index1 = dropdown1.value;
        string Parzellenname = dropdown1.options[index1].text;
        // Code der pro Parzellenname ausgeführt wird
        // parzelle enthält alle Einträge der jeweiligen Parzelle
        switch (Kultur) {
          case "Wintergerste": {
            ertrag = 5000.0f;
            break;
          }
          case "Winterweizen": {
            ertrag = 7000.0f;
            break;
          }
          case "Mais": {
            ertrag = 10000.0f;
            break;
          }
          case "Soja": {
            ertrag = 3300.0f;
            break;
          }
          case "Raps": {
            ertrag = 3800.0f;
            break;
          }
          case "Zuckerrüben": {
            ertrag = 60000.0f;
            break;
          }
          default:
            Debug.Log("Der String Kultur lautet >" + Kultur + "< und ist in meiner Abfrage nicht vorhanden!");
            break;
        }
        Debug.Log(Fläche);
        int index2 = dropdown2.value;
        //string Düngersorte = dropdown2.options[index2].text;
        float Menge = float.Parse(MengeEingabe.text);
        float Kosten = Menge * 0.01f * 80.0f;
        string Datum = DatumEingabe.text;
        if (DatumEingabe.text == "")
          Datum = System.DateTime.Now.ToString("dd.MM.yyyy");
        Dünger neuerEintrag = new Dünger();
        neuerEintrag.Nummer = Nummer;
        neuerEintrag.Parzellenname = Parzellenname;
        neuerEintrag.Menge = Menge;
        neuerEintrag.Kosten = Kosten;
        neuerEintrag.Fläche = Fläche;
        neuerEintrag.Erlös = Fläche * 0.5f * ertrag * 0.01f;
        neuerEintrag.Düngersorte = Düngersorte;
        neuerEintrag.Kultur = Kultur;
        if (DatumEingabe.text == "")
          Datum = System.DateTime.Now.ToString("dd.MM.yyyy");
        neuerEintrag.Datum = Datum;
        return neuerEintrag;
      }
      return null;
 

Ich würde den Code auch in drei Submethoden aufteilen, damit es übersichtlicher wird.

Dann zur Frage:

In diesem Code erstellst Du korrekt einen neuen Datensatz für die angegebene Liste. Das funktioniert sicher auch.

Aber Du erstellst kein neues Inputfield. Das kannst Du anhand der Liste dann mit Initiate.

Oder habe ich das falsch verstanden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Lädt...
×
×
  • Neu erstellen...