Avatar billede haolan Nybegynder
24. juni 2007 - 17:08 Der er 1 løsning

Lave crystal reports udfra en collection klasse

Hej

Jeg har udviklet et timeregistreringssystem.

Jeg har en tidsforbrugsklasse (med tilknyttet interface), en tidsforbrugsCollection, en systemklasse (facadeController) og så selve Guiklassen (form1.cs)

I min collection klasse har jeg en IEnumerator til at gennemløbe alle mine gemte forbrug.

Mine forbrug vil jeg gerne have listet i en Crystal Report, men hvordan får jeg dataene ind?

Jeg gemmer i øvrigt mine data i en binær fil vha. Filestream.

Herunder er den kode jeg tror er nødvendig for at i kan hjælpe:

------------------------------------------------------

CollectionKlasse:

using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace Timeregistreringssystem
{
    [Serializable]
    class TidsforbrugCol : IEnumerator
    {
        private List<Tidsforbrug> forbrug;

        [NonSerialized]
        private int aktuelForbrugIdx;

        public TidsforbrugCol()
        {
            forbrug = new List<Tidsforbrug>();
            aktuelForbrugIdx = 0;
        }

        public void opretForbrug(DateTime dato, double timer, string beskrivelse)
        {
            Tidsforbrug f = new Tidsforbrug(dato, timer, beskrivelse);
            forbrug.Add(f);
        }

        public void sletForbrug(DateTime dato, string beskrivelse)
        {
            int index;
            Tidsforbrug f = new Tidsforbrug(dato, 0, beskrivelse);
            f = getForbrug(dato, beskrivelse);

            index = forbrug.IndexOf(f);
            forbrug.RemoveAt(index);
        }

        public void retForbrug(DateTime dato, double timer, string beskrivelse)
        {
            Tidsforbrug f = getForbrug(dato, beskrivelse);
            f.Dato = dato;
            f.Timer = timer;
            f.Beskrivelse = beskrivelse;
        }

        public Tidsforbrug getForbrug(DateTime dato, string beskrivelse)
        {
            Tidsforbrug fundetForbrug = null;
            foreach (Tidsforbrug f in forbrug)
            {
                if((f.Dato == dato) && (f.Beskrivelse == beskrivelse))
                {
                    fundetForbrug = f;
                    break;
                }
            }
            return fundetForbrug;
        }

        public int GetAntalForbrug()
        {
            return forbrug.Count;
        }

        #region IEnumerator Members

        public void Reset()
        {
            aktuelForbrugIdx = -1;
        }

        public object Current
        {
            get
            {
                return forbrug[aktuelForbrugIdx];
            }
        }

        public bool MoveNext()
        {
            aktuelForbrugIdx++;
            return (aktuelForbrugIdx < forbrug.Count);
        }

        #endregion
    }
}


------------------------------------------------------

Tidsforbrug:

using System;
using System.Collections.Generic;
using System.Text;

namespace Timeregistreringssystem
{
    [Serializable]
    class Tidsforbrug : IForbrug
    {
        DateTime dato;
        double timer;
        string beskrivelse;

        public Tidsforbrug(DateTime dato, double timer, string beskrivelse)
        {
            this.dato = dato;
            this.timer = timer;
            this.beskrivelse = beskrivelse;
        }

        public DateTime Dato
        {
            get { return dato; }
            set { dato = value; }
        }

        public double Timer
        {
            get { return timer; }
            set { timer = value; }
        }

        public string Beskrivelse
        {
            get { return beskrivelse; }
            set { beskrivelse = value; }
        }
    }
}

------------------------------------------------------------

FileStream der gemmer data:

if (File.Exists(FILNAVN))
            {
                FileStream fileStream = new FileStream(FILNAVN, FileMode.Open, FileAccess.Read);

                BinaryFormatter binFormatter = new BinaryFormatter();

                forbrugsSystem = (ForbrugsSystem)binFormatter.Deserialize(fileStream);

                fileStream.Close();
            }
Avatar billede haolan Nybegynder
14. juli 2007 - 13:46 #1
lukker igen...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester