Laden...

Forenbeiträge von _Alp_Ay Ingesamt 4 Beiträge

20.07.2015 - 15:55 Uhr

Servus,
ich habe mal bisschen daran gearbeitet und komme leider nicht mehr weiter.

Ich erläutere das mal bisschen detaillierter.

Das Programm soll eigentlich nicht viel machen.

Ich als User möchte gerne eine Aktion starten und diese Aktion soll so aussehen.

Kaufe 2 Flaschen Cola und erhalte 50 Cent Rabatt.
Startdatum 20.07.15 -- Enddatum 25.07.15, alles wird so angegeben, was auch ziemlich gut klappt.
Und diese Angaben werden in eine XML Datei geschrieben (XML_AKTION).

In der XML_AKTION stehen die Angaben drin.
Und für diese AKTION muss eine EAN zugestimmt werden.
Diese EAN soll bis Enddatum nicht mehr verwendbar sein.
Nach Enddatum kann ich wieder eine AKTION Starten und diese EAN kann dann wieder verwendet werden.
Wie eben geschrieben habe ich eine zusätzliche xml mit eans und aus dieser Liste soll er sich das ziehen und bis Enddatum blocken...

Nur ich komme nun nicht mehr weiter...
Das ist mein teil CODE

 form 1
List<string> used_ean_list =  new List<string>();

private int myID()
        {
           int oldXML = 0;
            try
            { 
                XmlDocument xml = new XmlDocument();
                xml.XmlResolver = null;
                xml.Load(@"C:\XML_AKTION.xml");
                XmlNodeList xlist = xml.SelectNodes("/CRS/CR");
                foreach(XmlNode xn in xlist)
                {
                    string currentID = xn["id"].InnerText;
                    oldXML = Convert.ToInt32(currentID); // bis hierhin funktioniert alles soweit.

                    used_ean_list.Add(xn["cr"].InnerText);
                }
            
            }
            catch (ArgumentNullException e)
            {
                MessageBox.Show("PROBLEM: " + e);
            }
            catch (Exception e)
            {
                MessageBox.Show("PROBLEM Exception: " + e);
            }

            Console.WriteLine("RETURN VALUE:" + oldXML);
            return oldXML;
        }

        private string ean()
        {
            string ean = "";
            string ean_in_use = "";
            int v = 1;
            try
            {
                XmlDocument xml = new XmlDocument();

                xml.XmlResolver = null;

                xml.Load(@"C:\ean_pool.xml");

                foreach (String xn in _st.used_ean_list)
                {
                    ean_in_use = xn;

                    XmlNodeList ean_node_list = xml.SelectNodes("/eanpool");
                    foreach (XmlNode ean_Node in ean_node_list)
                    {
                        ean = ean_Node["ean" + v].InnerText;
                        if (!string.Equals(ean, ean_in_use))
                        {
                            return ean;
                        }
                        else
                        {
                            v++;
                        }
                    }

                }
            }
            catch (ArgumentNullException e)
            {
                MessageBox.Show("PROBLEM: " + e);
            }
            catch (Exception e)
            {
                MessageBox.Show("PROBLEM Exception: " + e);
            }

            Console.WriteLine("RETURN VALUE:" + ean);
            return ean;
        }

......

        private void button2_Click(object sender, EventArgs e)
        {
		...
			 writer.WriteElementString("cr", ean()); // hier soll die EAN aus dem EAN_POOL
		...
	}


und hier noch die xml (ean_pool.xml


<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE xxx SYSTEM "xxx.dtd">
<eanpool>
    <ean1>1111</ean1>
    <ean2>2222</ean2>
    <ean3>3333</ean3>
    <ean4>4444</ean4>
    <ean5>5555</ean5>
    <ean6>6666</ean6>
    <ean7>7777</ean7>
</eanpool>


ich weiss leider nicht, wie ich das nun mit Enddatum verknüpfe...

Hoffe, Ihr könnt mir weiterhelfen. Ich komm da nicht mehr weiter. ?(

14.07.2015 - 13:24 Uhr

Danke für dein Tipp..

ich habe es einfach nur ID genannt. Es handelt sich zwar um INT aber nicht ID... Das war nur zur Verdeutlichung 😃

Ich versuche es mal und ansonsten nerv ich das Forum mit meinen Problemen 😃

14.07.2015 - 11:55 Uhr

Hi Sclot,
ja ich bin immer sehr schlecht beim erklären.

Also, es ist im Grunde genommen nichts kompliziertes.
Der Nutzer legt ein Datum fest (Bsp. 20.07.2015).

[Da sind natürlich auch paar andere Daten mit dabei]

Sobald der Nutzer auf "weiter/speichern"-Button klickt, wird eine Xml-Datei erstellt (das klappt ja auch alles soweit so gut.)

Was mir aber fehlt ist, dass ich eine liste erstellen muss, mit ca. 20 IDs.
Ich weiss nicht, wie ich das anstellen soll, wenn ich die IDs in eine arraylist oder in eine dictionary eintrage und diese so mit dem o.g. Datum verknüpfe, sodass die ID 111 bis zum Datum x nicht mehr vergeben werden kann.
D.h.: ID 111 ist noch bis Datum 20.07.2015 in Nutzung, also gehe weiter auf ID 222 usw usw usw...

Ich hoffe, dass es so etwas deutlicher ist X(

14.07.2015 - 11:35 Uhr

Hallo zusammen,

das ist mein erster Beitrag und hoffe ich werde nicht sofort verbannt 😃

zu meiner Situation:

Also ich entwickel ein Programm, wo ich ca. 20 IDs habe und nach Datumauswahl soll diese ID für diesen Zeitraum geblockt sein. Die ID soll dann nach diesem Datum wieder freigegeben werden, damit man es erneut nutzen kann.

die IDs wollte ich in einer Dictionary auflisten und das Datum wird dann in ein Label übergeben, das kann man ja dann stringen.


 Dictionary<int, string> dir1 = new Dictionary<int, string>();
            dir1.Add(1111, _st.label6.Text.ToString()); // label6 ist das Datum
            dir1.Add(2222, _st.label6.Text.ToString());
            dir1.Add(3333, _st.label6.Text.ToString());
            dir1.Add(4444, _st.label6.Text.ToString());

Ich weiss aber nicht, wie ich das hinkriegen soll. Ich habe auch schon google durchsucht, aber irgendwie finde ich für meine Situation keine Lösung.
Oder ich kapier es nicht 😃

Hat jemand eine Idee, wie man sowas am besten anstellen kann?

Wäre über jede Hilfe dankbar.

Gruß
Alp