Exemplo n.º 1
0
        private static void TestGroup()
        {
            //build a form!
            IReportElement testGroup = BuildTestGroup();

            Console.WriteLine(testGroup);

            Console.WriteLine("\n    >saving to XML");
            string dir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "testXML");

            Console.WriteLine("    >saving into " + dir);


            XmlSerializer ser = new XmlSerializer(testGroup.GetType());

            using (TextWriter writer = new StreamWriter(dir + @"\groupTest.xml"))
            {
                ser.Serialize(writer, testGroup);
            }


            Console.WriteLine("\n    >done!");
            Console.WriteLine("    >Now reading from file!");

            IReportElement readField;

            using (TextReader reader = new StreamReader(dir + @"\groupTest.xml"))
            {
                readField = (IReportElement)ser.Deserialize(reader);
            }

            Console.WriteLine("    >done!\n\n");
            Console.WriteLine(readField.ToString());
        }
Exemplo n.º 2
0
        //--save/load--//
        public virtual void ReadXml(XmlReader reader)
        {
            reader.ReadStartElement();
            this.name = reader.ReadElementContentAsString();

            try
            {
                this.description = reader.ReadElementContentAsString();
            }
            catch (Exception) { }
            //now we're into fields
            reader.ReadStartElement();
            reader.MoveToContent();
            while (reader.NodeType != XmlNodeType.EndElement)
            {
                Type type = Type.GetType(reader.GetAttribute("type"));

                XmlSerializer  ser     = new XmlSerializer(type);
                IReportElement element = (IReportElement)ser.Deserialize(reader);
                reader.MoveToContent();

                this.AddElementInternal(element);
            }


            reader.ReadEndElement();
            //now we're done with the fields.
        }
Exemplo n.º 3
0
        //--setters--//
        /// <summary>
        /// adds a field to this report, if its ID isn't already in use.
        /// </summary>
        /// <param name="field"></param>
        protected virtual void AddElementInternal(IReportElement field)
        {
            if (Array.Exists(elements, item => item.name.Equals(field.name)))
            {
                throw new ArgumentException("Cannot add element " + field.name + " to form " + this.name + ". A element with that name already exists in the form!");
            }

            IReportElement[] temp = new IReportElement[this.elements.Length + 1];
            for (int i = 0; i < this.elements.Length; i++)
            {
                temp[i] = this.elements[i];
            }

            temp[this.elements.Length] = field;

            this.elements = temp;
        }
Exemplo n.º 4
0
        //--data management--//
        private void DataChangedHandler(IReportElement sender, object data)
        {
            //if this radiobutton switched to false, do nothing!
            bool boolData = (bool)data;

            if (!boolData)
            {
                return;
            }

            for (int i = 0; i < this.elements.Length; i++)
            {
                if (elements[i] != sender)
                {
                    (elements[i] as FieldBoolean).SetData(false);
                }
            }
        }
Exemplo n.º 5
0
        public override void ReadXml(XmlReader reader)
        {
            reader.ReadStartElement();
            this.name = reader.ReadElementContentAsString();
            try
            {
                this.description = reader.ReadElementContentAsString();
            }
            catch (Exception) { }
            reader.MoveToContent();
            //now read the row template
            Type          rowType = Type.GetType(reader.GetAttribute("type"));
            XmlSerializer rowSer  = new XmlSerializer(rowType);

            this.rowTemplate = (ElementGroup)rowSer.Deserialize(reader);
            reader.MoveToContent();

            reader.ReadEndElement();

            int i = 0;

            //now we're into fields
            reader.ReadStartElement();
            reader.MoveToContent();
            while (reader.NodeType != XmlNodeType.EndElement)
            {
                Type type = Type.GetType(reader.GetAttribute("type"));

                XmlSerializer  ser     = new XmlSerializer(type);
                IReportElement element = (IReportElement)ser.Deserialize(reader);
                reader.ReadEndElement();
                reader.MoveToContent();

                this.AddElementInternal(element);
            }

            reader.ReadEndElement();
            reader.MoveToContent();
            reader.ReadEndElement();
            //now we're done with the fields.
            Console.WriteLine("~" + reader.Name);
        }
Exemplo n.º 6
0
 //--setters--//
 /// <summary>
 /// adds a field to this report, if its ID isn't already in use.
 /// </summary>
 /// <param name="field"></param>
 public void AddElement(IReportElement field)
 {
     this.AddElementInternal(field);
 }
 private static object _EvaluateExpression(IReportElement element)
 {
     return(element.Expression.Evaluate(element.Data));
 }