Exemple #1
0
        public override IEnumerable <Conditional <IRenderCommand> > Flatten(FlattenContext context)
        {
            foreach (var location in Location.Flatten(context))
            {
                foreach (var alignment in Alignment)
                {
                    foreach (var rotation in Rotation)
                    {
                        var command = new RenderText(
                            location.Value,
                            alignment.Value,
                            TextRuns)
                        {
                            Rotation = rotation.Value,
                        };

                        var conditions = ConditionTreeBuilder.And(new[]
                        {
                            location.Conditions,
                            alignment.Conditions,
                            rotation.Conditions,
                        });

                        yield return(new Conditional <IRenderCommand>(command, conditions));
                    }
                }
            }
        }
Exemple #2
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            C1PrintDocument doc = new C1PrintDocument();

            RenderText title = new RenderText("Auto-sized tables");

            title.Style.FontSize      = 18;
            title.Style.FontBold      = true;
            title.Style.Spacing.All   = "5mm";
            title.Style.TextAlignHorz = AlignHorzEnum.Center;
            doc.Body.Children.Add(title);

            // add simple autosized table:
            doc.Body.Children.Add(MakeTable_Simple());

            // prepare data source:
            object bookList = MakeBookList();
            // add a bit more interesting data bound table:
            var rt = MakeTable_TitlePriceStock(bookList);

            rt.Style.Spacing.Top = "5mm";
            doc.Body.Children.Add(rt);

            // show the document
            c1DocumentViewer1.Document = doc.FixedDocumentSequence;
        }
Exemple #3
0
 public void Destroy()
 {
     RenderText?.Destroy();
     RenderText = null;
     RenderCaret?.Destroy();
     RenderCaret = null;
 }
Exemple #4
0
        private void button1_Click(object sender, EventArgs e)
        {
            // build sample list of customers
            List <Customer> customers = new List <Customer>();

            for (int i = 0; i < 100; i++)
            {
                customers.Add(new Customer(i + 1, "Customer " + (i + 1).ToString()));
            }

            doc.Clear();

            doc.Style.Font = new Font("Verdana", 16);

            // generate document
            doc.Body.Children.Add(new RenderText("List of Customer objects"));
            doc.Body.Children.Add(new RenderEmpty("5mm")); // empty space after title

            // this object will be repeated for each element in the customers list
            RenderText rt = new RenderText();

            rt.Text = "Id: [Fields!Id.Value]\rName: [Fields!Name.Value]";
            rt.Style.Borders.All = LineDef.DefaultBold;
            rt.CanSplitVert      = false;
            // bind object with customers list
            rt.DataBinding.DataSource = customers;
            doc.Body.Children.Add(rt);

            doc.Generate();
        }
Exemple #5
0
 private void RemoveEntity(int id, bool isRemove = true)
 {
     if (uis.ContainsKey(id))
     {
         Entity e = uis[id];
         if (World.EntityManager.HasComponent <Childrens>(e))
         {
             Childrens childrens = World.EntityManager.GetComponentData <Childrens>(e);
             childrens.DestroyEntities(World.EntityManager);
         }
         if (World.EntityManager.HasComponent <RenderText>(e))
         {
             RenderText text = World.EntityManager.GetComponentData <RenderText>(e);
             text.DestroyLetters(World.EntityManager);
         }
         if (World.EntityManager.HasComponent <OutlineLink>(e))
         {
             var outline = World.EntityManager.GetComponentData <OutlineLink>(e);
             World.EntityManager.DestroyEntity(outline.outline);
         }
         World.EntityManager.DestroyEntity(e);
         if (isRemove)
         {
             uis.Remove(id);
         }
     }
 }
Exemple #6
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            C1PrintDocument doc = new C1PrintDocument();

#if plain
            doc.Body.Children.Add(new C1.C1Preview.RenderText("Hello, World!"));
#else
            doc.Body.Children.Clear();
            RenderText rt = new RenderText("Hello, World!");
            rt.X                   = "2in";
            rt.Y                   = "3in";
            rt.Width               = "4in";
            rt.Height              = "3in";
            rt.Style.Borders.All   = LineDef.Default;
            rt.Style.FontName      = "Arial";
            rt.Style.FontSize      = 14;
            rt.Style.TextColor     = Colors.Red;
            rt.Style.BackColor     = Colors.PowderBlue;
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.TextAlignVert = AlignVertEnum.Center;
            doc.Body.Children.Add(rt);
#endif
            c1DocumentViewer1.FitToWidth();
            c1DocumentViewer1.Document = doc.FixedDocumentSequence;
        }
Exemple #7
0
        private void button3_Click(object sender, EventArgs e)
        {
            doc.Clear();

            doc.Style.Font = new Font("Verdana", 16);

            // define data schema
            DataSource ds       = CreateDemoDataSource();
            DataSet    dsCities = new DataSet(ds, "select * from Cities");

            doc.DataSchema.DataSources.Add(ds);
            doc.DataSchema.DataSets.Add(dsCities);

            // title of document
            RenderText rt = new RenderText();

            rt.Text                 = string.Format("ConnectString = {0}\rCommandText={1}", ds.ConnectionProperties.ConnectString, dsCities.Query.CommandText);
            rt.Style.BackColor      = Color.LightBlue;
            rt.Style.Borders.All    = new LineDef("1mm", Color.Blue);
            rt.Style.Spacing.Bottom = "1cm";
            doc.Body.Children.Add(rt);

            rt = new RenderText();
            rt.DataBinding.DataSource = dsCities;
            rt.Text = "Id = [Fields!ID.Value]  Name = [Fields!City.Value]";
            rt.Style.Borders.Bottom = LineDef.Default;
            doc.Body.Children.Add(rt);

            doc.Generate();
        }
Exemple #8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            // make a demo C1PrintDocument; a "real" document can be loaded
            // via the File Open button.
            C1PrintDocument doc = new C1PrintDocument();

            doc.PageLayout.PageHeader = new RenderText("Page [PageNo] of [PageCount]");
            doc.PageLayout.PageHeader.Style.TextAlignHorz = AlignHorzEnum.Right;
            doc.PageLayout.PageHeader.Style.TextAlignVert = AlignVertEnum.Top;
            doc.PageLayout.PageHeader.Height = "1cm";
            RenderText title = new RenderText("This is just a sample; load any C1PrintDocument from a C1D file");

            title.Style.Font          = new Font("Arial", 16);
            title.Style.TextAlignHorz = AlignHorzEnum.Center;
            title.Style.Padding.All   = "5mm";
            doc.Body.Children.Add(title);
            RenderTable rt = new RenderTable();

            rt.Style.GridLines.All = LineDef.Default;
            for (int row = 0; row < 100; ++row)
            {
                for (int col = 0; col < 4; ++col)
                {
                    rt.Cells[row, col].Text = string.Format("cell ({0},{1})", row, col);
                }
            }
            doc.Body.Children.Add(rt);
            c1PrintPreviewControl1.Document = doc;
        }
Exemple #9
0
 protected override void OnLoad(EventArgs e)
 {
     renderText = new RenderText("Hello World\nHello World\nOlá", 32);
     renderText.BackgroundColor = OpenTK.Color.Red;
     renderColor = new RenderColor(Color4.DarkOrange);
     renderImage = new RenderImage(Renderer.LoadImage("./csharp.png"));
 }
Exemple #10
0
        /***************************************************/
        /**** Public Methods - IRender                  ****/
        /***************************************************/

        public static Text3d ToRhino(this RenderText renderText)
        {
            if (renderText == null)
            {
                return(null);
            }

            RHG.Vector3d xdir      = (RHG.Vector3d)renderText.Cartesian.X.IToRhino();
            RHG.Vector3d ydir      = (RHG.Vector3d)renderText.Cartesian.Y.IToRhino();
            RHG.Point3d  pos       = (RHG.Point3d)renderText.Cartesian.Origin.IToRhino();
            RHG.Plane    textPlane = new RHG.Plane(pos, xdir, ydir);
            Text3d       text3D    = new Text3d(renderText.Text, textPlane, renderText.Height);

            if (renderText.FontName.Contains("Italic"))
            {
                text3D.Italic = true;
            }

            if (renderText.FontName.Contains("Bold"))
            {
                text3D.Bold = true;
            }

            text3D.FontFace = renderText.FontName.Replace("Italic", "").Replace("Bold", "").Trim();

            return(text3D);
        }
Exemple #11
0
 public void Dispose()
 {
     RenderText?.Dispose();
     RenderText = null;
     RenderCaret?.Dispose();
     RenderCaret = null;
 }
Exemple #12
0
        private RenderObject CreateDesc(string desc)
        {
            RenderText rt = new RenderText();

            rt.Text                = desc;
            rt.Style.Font          = new Font("Verdana", 12);
            rt.Style.TextAlignVert = AlignVertEnum.Center;
            return(rt);
        }
Exemple #13
0
        public void Update()
        {
            //RenderText.BackColor = Color.Wheat;
            int w = (int)(Sprite.Renderer.Resolution.X * MaxSize.X);
            int h = (int)(Sprite.Renderer.Resolution.Y * MaxSize.Y);

            RenderText.FontSize = Sprite.Renderer.Resolution.Y * FontSize * FontCorrection;
            RenderText.Update(w, h);
        }
Exemple #14
0
        /// <summary>
        /// Attaches a sticky note to a render object.
        /// The note is floating text box like a callout, placed below and to the right
        /// of the render object being annotated.
        /// </summary>
        /// <param name="ro">The render object to annotate.</param>
        /// <param name="annotation">The note text.</param>
        private void AddStickyNote(RenderObject ro, string noteText)
        {
            // We do not annotate notes, and currently we cannot annotate objects
            // with multiple fragments as there is no mechanism yet to anchor the note
            // near a specific fragment:
            if (ro == null || (ro.UserData as string) == c_stickyNoteUserData || ro.Fragments.Count > 1)
            {
                return;
            }

            RenderText noteRo = new RenderText(noteText);

            // Set up annotation styles:
            noteRo.Style.Padding.All     = "0.8mm";
            noteRo.Style.Font            = new Font("Arial", 8);
            noteRo.Style.BackColor       = Color.Yellow;
            noteRo.Style.Borders.All     = new LineDef("1pt", Color.SteelBlue);
            noteRo.Style.Borders.RadiusX = noteRo.Style.Borders.RadiusY = "1.6mm";
            //noteRo.Clip = false;
            // Position relative to the object being annotated:
            string noteName = NameObject(ro);

            noteRo.X = string.Format("{0}.right + 5mm", noteName);
            noteRo.Y = string.Format("{0}.bottom", noteName);
            noteRo.Style.Shadow.Transparency = 50;
            noteRo.Width  = "Min(auto, 40mm)";
            noteRo.Height = "auto";
            // add a line from the object being annotated to the note:
            RenderLine line = new RenderLine();

            line.X               = string.Format("{0}.right", noteName);
            line.Y               = string.Format("{0}.top + {0}.height/2", noteName);
            line.Height          = string.Format("prev.height/2 + {0}.height/2", noteName);
            line.Width           = string.Format("prev.left - {0}.right", noteName);
            line.Line.X1         = 0;
            line.Line.Y1         = 0;
            line.Line.X2         = "width";
            line.Line.Y2         = "height";
            line.Style.ShapeLine = new LineDef("1pt", Color.SteelBlue);

            // paint annotated object's background:
            ro.Style.BackColor = Color.FromArgb(70, Color.SteelBlue);

            // Draw annotation over everything else:
            noteRo.ZOrder = 100;
            line.ZOrder   = 100;

            // mark annotations as such:
            noteRo.UserData = c_stickyNoteUserData;
            line.UserData   = c_stickyNoteUserData;

            // add to document body:
            ro.Document.Body.Children.Add(noteRo);
            ro.Document.Body.Children.Add(line);
        }
Exemple #15
0
        /// <summary>
        /// Makes render object representing the cell text.
        /// </summary>
        /// <param name="text">The cell text.</param>
        /// <param name="name">The name for the created render object (may be null).</param>
        /// <returns>The render object representing the cell text.</returns>
        private RenderObject MakeTextRO(string text, string name)
        {
            RenderText rtxt = new RenderText(text ?? "");

            if (!string.IsNullOrEmpty(name))
            {
                rtxt.Name = name;
            }
            rtxt.Width = Unit.Auto;
            return(rtxt);
        }
Exemple #16
0
        private RenderText GetPrintTestData()
        {
            RenderText testDate = new RenderText(Properties.Resources.PrintDate + DateTime.Today.ToString("yyyy-MM-dd"));  //.PadLeft(printTableWidth / 2) + DateTime.Today.ToString("yyyy-MM-dd"));

            testDate.Style.Font          = new Font("宋体", 9);
            testDate.Style.TextAlignHorz = AlignHorzEnum.Right;
            testDate.Style.Padding.All   = "1mm";
            testDate.Width           = printTableWidth.ToString() + "mm";
            testDate.Style.FlowAlign = FlowAlignEnum.Center;
            return(testDate);
        }
Exemple #17
0
        private void setRoText_Validated(object sender, EventArgs e)
        {
            RenderText rt = ((ToolStripItem)sender).Tag as RenderText;

            if (rt == null)
            {
                return;
            }
            contextMenuStrip1.Hide();
            rt.Text = setRoText.Text;
            RegenerateDocument(rt.Document);
        }
Exemple #18
0
        private C1.C1Preview.C1PrintDocument makeDoc_TableStyles()
        {
            C1.C1Preview.C1PrintDocument doc = new C1.C1Preview.C1PrintDocument();

            RenderText rtxt = new RenderText(doc);

            rtxt.Text = "This test demonstrates multiple inheritance of styles in tables. " +
                        "In the table below, the font is redefined for row 4. " +
                        "Then, the text color is redefined for column 1. " +
                        "Finally, a cell group is defined containing cells in rows 4 to 6, cols 1 & 2, " +
                        "and background color is redefined for that cell group. " +
                        "\nThe cell at the intersection of row 4 and col 1 combines all 3 styles.\n\n";
            doc.Body.Children.Add(rtxt);

            doc.Style.Font = new Font("Arial", 12, FontStyle.Regular);

            const int ROWS = 12;
            const int COLS = 6;

            RenderTable rt = new RenderTable(doc);

            rt.Style.Padding.All = new Unit("4mm");
            for (int row = 0; row < ROWS; ++row)
            {
                for (int col = 0; col < COLS; ++col)
                {
                    RenderText celltext = new RenderText(doc);
                    celltext.Text = string.Format("Cell ({0},{1})", row, col);
                    rt.Cells[row, col].RenderObject = celltext;
                }
            }
            // add the table to the document
            doc.Body.Children.Add(rt);

            // set up table style
            rt.Style.GridLines.All  = new LineDef("2pt", Color.Black);
            rt.Style.GridLines.Horz = new LineDef("1pt", Color.Gray);
            rt.Style.GridLines.Vert = new LineDef("1pt", Color.Gray);

            // define a row style
            rt.Rows[4].Style.Font = new Font("Arial", 12, FontStyle.Bold | FontStyle.Italic);

            // define a column style
            rt.Cols[1].Style.TextColor = Color.DarkOrange;

            // define a cell group with a background color
            rt.UserCellGroups.Add(new UserCellGroup(new Rectangle(1, 4, 2, 3)));
            rt.UserCellGroups[0].Style.BackColor = Color.PaleGreen;


            return(doc);
        }
Exemple #19
0
        private RenderObject CreateObj(string text)
        {
            RenderText result = new RenderText();

            result.Text = text;
            result.Style.Borders.All   = new LineDef("1mm", Color.Blue);
            result.Style.TextAlignHorz = AlignHorzEnum.Center;
            result.Style.TextAlignVert = AlignVertEnum.Center;
            result.Style.BackColor     = Color.LightSkyBlue;
            result.SplitVertBehavior   = SplitBehaviorEnum.SplitIfLarge;
            result.Width  = "7cm";
            result.Height = "4cm";
            return(result);
        }
Exemple #20
0
 public void SetText(int characterID, int iconArrayIndex, int newValue)
 {
     if (uis.ContainsKey(characterID))
     {
         Entity     ui           = uis[characterID];
         Childrens  children     = World.EntityManager.GetComponentData <Childrens>(ui);
         Entity     icon         = children.children[iconArrayIndex];
         Childrens  iconChildren = World.EntityManager.GetComponentData <Childrens>(icon);
         Entity     textEntity   = iconChildren.children[0];
         RenderText renderText   = World.EntityManager.GetComponentData <RenderText>(textEntity);
         renderText.SetText(newValue.ToString());
         World.EntityManager.SetComponentData(textEntity, renderText);
     }
 }
        public override void Initialize()
        {
            levelManager = new LevelManager(parentManager);

            parentManager.renderCore.camera.position = new Vector2(parentManager.renderCore.settings.screensize.X / 2, parentManager.renderCore.settings.screensize.Y / 2);

            countDownText = new RenderText(parentManager.renderCore,countDown.ToString(),Color.Black);
            countDownText.position = new Vector2(parentManager.renderCore.settings.screensize.X / 2, parentManager.renderCore.settings.screensize.Y / 2);
            countDownText.layer = 2;
            parentManager.renderCore.objects.Add(countDownText);

            parentManager.renderCore.objects.Add(parentManager.player);
            parentManager.renderCore.animationManager.animations.Add(parentManager.player);
            parentManager.player.position = new Vector2(100, parentManager.renderCore.settings.screensize.Y - parentManager.player.getcurrentAnimation().size.Y);

            PlayerInputHandler handler = new PlayerInputHandler(parentManager);
            parentManager.inputManager.registerHandler(handler);
        }
Exemple #22
0
		static public C1PrintDocument MakeDoc()
		{
			C1PrintDocument doc = C1ReportViewer.CreateC1PrintDocument();

			RenderText rtxt1 = new RenderText(doc);
			rtxt1.Text = "This test shows the basic features of tables in C1PrintDocument:\n"
				+ "\t- table borders (the GridLines style property, which allows to specify 4 outer and 2 inner lines);\n"
				+ "\t- borders around individual cells and groups of cells;\n"
				+ "\t- style attributes (including borders) for groups of disconnected cells;\n"
				+ "\t- cells spanning rows and columns;\n"
				+ "\t- content alignment within the cells (spanned or otherwise);\n"
				+ "\t- table headers and footers;\n"
				+ "\t- tags (such as page number/total page count) anywhere in the document (see the table footer);\n"
				+ "\t- different style attributes including borders, font and background images.\n"
				+ "\t  \n"
			;
			rtxt1.Style.Font = new Font(rtxt1.Style.Font.FontFamily, 14);
			rtxt1.Style.Padding.Bottom = new C1.C1Preview.Unit("5mm");
			doc.Body.Children.Add(rtxt1);

			//
			// make a table and fill all its cells with some demo data
			RenderTable rt1 = new RenderTable(doc);
			const int ROWS = 100;
			const int COLS = 4;
			for (int row = 0; row < ROWS; ++row)
			{
				for (int col = 0; col < COLS; ++col)
				{
					RenderText celltext = new RenderText(doc);
					celltext.Text = string.Format("Cell ({0},{1})", row, col);
					// Note that rt1.Cells[row, col] will create cells on demand -
					// no need to specify the number of rows/cols initially.
					rt1.Cells[row, col].RenderObject = celltext;
				}
			}
			// add the table to the document
			doc.Body.Children.Add(rt1);

			//
			// unlike the old print-doc, in the new one changes can be made at any
			// point in the program, and they will be reflected in the document when
			// it is rendered. Add some customizations to the table:

			//
			// by default, tables have no borders. add a simple border:
			rt1.Style.GridLines.All = new LineDef("2pt", Color.DarkGray);
			rt1.Style.GridLines.Horz = new LineDef("1pt", Color.Blue);
			rt1.Style.GridLines.Vert = new LineDef("1pt", Color.Brown);

			//
			// table headers and footers

			// add a table header:
			// setup the header as a whole
			rt1.RowGroups[0, 2].PageHeader = true;
			rt1.RowGroups[0, 2].Style.BackgroundImage = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath("~/C1ReportViewer/Images/orange.jpg"));
			rt1.RowGroups[0, 2].Style.BackgroundImageAlign.StretchHorz = true;
			rt1.RowGroups[0, 2].Style.BackgroundImageAlign.StretchVert = true;
			rt1.RowGroups[0, 2].Style.BackgroundImageAlign.KeepAspectRatio = false;
			// multiple inheritance supported in styles: the text color from the
			// group's style will merge with the font from the cell's own style:
			rt1.RowGroups[0, 2].Style.TextColor = Color.LightGreen;
			rt1.RowGroups[0, 2].Style.GridLines.All = new LineDef("2pt", Color.DarkCyan);
			rt1.RowGroups[0, 2].Style.GridLines.Horz = LineDef.Empty;
			rt1.RowGroups[0, 2].Style.GridLines.Vert = LineDef.Empty;
			// setup specific cells in the header:
			((RenderText)rt1.Cells[0, 0].RenderObject).Text = "Header row 0";
			((RenderText)rt1.Cells[1, 0].RenderObject).Text = "Header row 1";
			rt1.Cells[0, 1].SpanCols = 2;
			rt1.Cells[0, 1].SpanRows = 2;
			rt1.Cells[0, 1].RenderObject = new RenderText(doc);
			((RenderText)rt1.Cells[0, 1].RenderObject).Text = "Multi-row table headers and footers are supported";
			rt1.Cells[0, 1].Style.TextAlignHorz = AlignHorzEnum.Center;
			rt1.Cells[0, 1].Style.Font = new Font("Arial", 14, FontStyle.Bold);

			// setup a table footer
			rt1.RowGroups[rt1.Rows.Count - 2, 2].PageFooter = true;
			rt1.RowGroups[rt1.Rows.Count - 2, 2].Style.BackColor = Color.LemonChiffon;
			rt1.Cells[rt1.Rows.Count - 2, 0].SpanRows = 2;
			rt1.Cells[rt1.Rows.Count - 2, 0].SpanCols = rt1.Cols.Count - 1;
			rt1.Cells[rt1.Rows.Count - 2, 0].Style.TextAlignHorz = AlignHorzEnum.Center;
			rt1.Cells[rt1.Rows.Count - 2, 0].Style.TextAlignVert = AlignVertEnum.Center;
			((RenderText)rt1.Cells[rt1.Rows.Count - 2, 0].RenderObject).Text = "This is a table footer.";
			rt1.Cells[rt1.Rows.Count - 2, 3].SpanRows = 2;
			rt1.Cells[rt1.Rows.Count - 2, 3].Style.TextAlignHorz = AlignHorzEnum.Right;
			// tags (such as page no/page count) can be inserted anywhere in the document
			((RenderText)rt1.Cells[rt1.Rows.Count - 2, 3].RenderObject).Text = "Page [PageNo] of [PageCount]";

			//
			// in tables, Style.Borders merges seamlessly into the table grid lines:

			// it is easy to put a border around specific cells:
			rt1.Cells[8, 3].Style.Borders.All = new LineDef("3pt", Color.OrangeRed);
			((RenderText)rt1.Cells[8, 3].RenderObject).Text =
				"It is easy to put a border around a single cell using cell.Style.Borders";

			//
			// cells can be combined into groups, and their styles can be manipulated as
			// a single entity:

			// define a group of cells by specifying the rectangles bounding the cells:
			((RenderText)rt1.Cells[3, 2].RenderObject).Text =
				"Cells can be combined into groups to be manipulated as a single entity " +
				"(such as all cells with the pale green background in this table).";
			rt1.Cells[3, 2].SpanCols = 2;
			rt1.Cells[3, 2].SpanRows = 3;
			Rectangle[] cells1 = new Rectangle[] {
                new Rectangle(2, 3, 2, 3),
                new Rectangle(0, 10, 3, 2),
                new Rectangle(1, 23, 2, 4),
                new Rectangle(1, 36, 1, 24),
                new Rectangle(0, 72, 3, 6),
                };
			UserCellGroup grp1 = new UserCellGroup(cells1);
			grp1.Style.BackColor = Color.PaleGreen;
			grp1.Style.Font = new Font("Arial", 12, FontStyle.Bold);
			grp1.Style.Borders.All = new LineDef("2pt", Color.DarkGreen);
			rt1.UserCellGroups.Add(grp1);


			// row/col span
			((RenderText)rt1.Cells[14, 1].RenderObject).Text =
				"Column and row spans are fully supported, as well as alignment within the (spanned or not) cells.";
			rt1.Cells[14, 1].SpanCols = 3;
			rt1.Cells[14, 1].SpanRows = 5;
			rt1.Cells[14, 1].Style.Font = new Font("Arial", 12, FontStyle.Bold | FontStyle.Italic);
			rt1.Cells[14, 1].Style.Borders.All = new LineDef("2pt", Color.DarkOrange);
			rt1.Cells[14, 1].Style.TextAlignHorz = AlignHorzEnum.Center;
			rt1.Cells[14, 1].Style.TextAlignVert = AlignVertEnum.Center;
			rt1.RowGroups[14, 5].CanSplit = false;

			return doc;
		}
Exemple #23
0
		static public C1PrintDocument MakeDoc()
		{
			C1PrintDocument doc = C1ReportViewer.CreateC1PrintDocument();

			doc.Style.FontSize += 2;

			// setup a page header with links to first|prev|next|last pages:
			RenderTable rtnav = new RenderTable();
			// suppress different display of visited hyperlinks for page navigator:
			rtnav.Style.VisitedHyperlinkAttrs = rtnav.Style.HyperlinkAttrs;
			// space things out
			rtnav.Style.Spacing.Bottom = "5mm";
			// add navigator links
			rtnav.Cells[0, 0].Text = "First page";
			rtnav.Cells[0, 0].RenderObject.Hyperlink = new C1Hyperlink(
				new C1LinkTargetPage(PageJumpTypeEnum.First), "Go to first page");
			rtnav.Cells[0, 1].Text = "Previous page";
			rtnav.Cells[0, 1].RenderObject.Hyperlink = new C1Hyperlink(
				new C1LinkTargetPage(PageJumpTypeEnum.Previous), "Go to previous page");
			rtnav.Cells[0, 2].Text = "Next page";
			rtnav.Cells[0, 2].RenderObject.Hyperlink = new C1Hyperlink(
				new C1LinkTargetPage(PageJumpTypeEnum.Next), "Go to next page");
			rtnav.Cells[0, 3].Text = "Last page";
			rtnav.Cells[0, 3].RenderObject.Hyperlink = new C1Hyperlink(
				new C1LinkTargetPage(PageJumpTypeEnum.Last), "Go to last page");
			doc.PageLayout.PageHeader = rtnav;

			// make the body of the document

			// make an anchor
			RenderText rt1 = new RenderText("This is text with anchor1.");
			// the name ("anchor1") will be used to jump to this link:
			rt1.Anchors.Add(new C1Anchor("anchor1"));
			rt1.Hyperlink = new C1Hyperlink(new C1LinkTargetPage(PageJumpTypeEnum.Last),
				"Go to the last page of the document");
			doc.Body.Children.Add(rt1);

			// add a link to open doc2:
			/*
			RenderText rt2 = new RenderText("Click here to open 'StylesInTables' document.");
			rt2.Hyperlink = new C1Hyperlink(new C1LinkTargetFile(
				"javascript:window.changeReport('','StylesInTables')"));
			doc.Body.Children.Add(rt2);
			*/

			// add filler
			for (int i = 0; i < 500; ++i)
				doc.Body.Children.Add(new RenderText(string.Format("... filler {0} ...", i)));

			// add hyperlink to anchor1
			RenderText rt3 = new RenderText("Click here to go to anchor1.");
			rt3.Hyperlink = new C1Hyperlink(new C1LinkTargetAnchor("anchor1"),
				"This is status text when the mouse hovers over link to anchor1");
			doc.Body.Children.Add(rt3);

			// to jump to a render object, an anchor is really not needed:
			RenderText rt4 = new RenderText("Click here to go to the middle of document.");
			rt4.Hyperlink = new C1Hyperlink(doc.Body.Children[doc.Body.Children.Count / 2]);
			rt4.Hyperlink.StatusText = "Go to the approximate middle of the document";
			doc.Body.Children.Add(rt4);

			// add image with hyperlink to a URL
			RenderImage ri1 = new RenderImage(Image.FromFile(HttpContext.Current.Server.MapPath("~/C1ReportViewer/Images/google.gif")));
			ri1.Hyperlink = new C1Hyperlink(new C1LinkTargetFile("http://www.google.com"),
				" Go googling... (Use Ctrl+Click in order to open link in a new window");
			doc.Body.Children.Add(ri1);


			RenderText rt5 = new RenderText("alert 'Hello'.");
			rt5.Hyperlink = new C1Hyperlink(new C1LinkTargetFile("javascript:alert('Hello')"));
			rt5.Hyperlink.StatusText = "Show 'Hello' message.";
			doc.Body.Children.Add(rt5);

			RenderText rt6 = new RenderText("printWithPreview");
			rt6.Hyperlink = new C1Hyperlink(new C1LinkTargetFile("exec:printWithPreview()"));
			rt6.Hyperlink.StatusText = "Preview and print report.";
			doc.Body.Children.Add(rt6);


			return doc;
		}
Exemple #24
0
        /// <summary>
        /// Fills specified control with a Day style.
        /// </summary>
        /// <param name="doc"></param>
        public static void MakeDay(C1PrintDocument doc)
        {
            doc.Clear();

            doc.DocumentInfo.Title = "Daily style";
            doc.DocumentInfo.Subject = "Day";
            AddNamespaces(doc);

            AddHeadersFooters(doc);
            doc.Tags["FooterRight"].Value = "[GeneratedDateTime]";
            doc.Tags["DateHeadingsFont"].Value = new Font("Segoe UI", 24, FontStyle.Bold);

            doc.DocumentStartingScript +=
                "Dim tasksNumber As Integer = 0 \r\n" +
                "If Document.Tags!IncludeTasks.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If Document.Tags!IncludeBlankNotes.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If tasksNumber = 1 Then\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"100%\")\r\n" +
                "ElseIf tasksNumber = 2 Then\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"50%\")\r\n" +
                "Else\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"33.3%\")\r\n" +
                "End If\r\n" +
                "Dim dateAppointments As New DateAppointmentsCollection(Tags!StartDate.Value, Tags!EndDate.Value, Tags!Appointments.Value, Tags!CalendarInfo.Value, True, True)\r\n" +
                "If Tags.IndexByName(\"DateAppointments\") = -1 Then\r\n" +
                "   Dim tagApps As Tag\r\n" +
                "   tagApps = New Tag(\"DateAppointments\", dateAppointments)\r\n" +
                "   tagApps.SerializeValue = False\r\n" +
                "   Tags.Add(tagApps)\r\n" +
                "Else\r\n" +
                "   Tags!DateAppointments.Value = dateAppointments\r\n" +
                "End If\r\n" +
                "Dim startT As Date = Tags!StartTime.Value  \r\n" +
                "Dim endT As Date = Tags!EndTime.Value  \r\n" +
                "If startT > endT Then\r\n" +
                "   Tags!StartTime.Value = endT \r\n" +
                "   Tags!EndTime.Value = startT \r\n" +
                "End If";

            // RenderArea representing the single page
            RenderArea raPage = new RenderArea();
            raPage.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value");
            raPage.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raPage.BreakBefore = BreakEnum.Page;
            raPage.Width = "100%";
            raPage.Height = "100%";
            raPage.Stacking = StackingRulesEnum.InlineLeftToRight;

            #region ** day header
            // day header
            RenderArea raDayHeader = new RenderArea();
            raDayHeader.Style.Borders.All = LineDef.Default;
            raDayHeader.Width = "100%";
            raDayHeader.Height = "28mm";
            raDayHeader.Stacking = StackingRulesEnum.InlineLeftToRight;

            RenderText rt = new RenderText("[CDate(Fields!Date.Value).ToString(\"D\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Style.Font = Document.Tags!DateHeadingsFont.Value\r\n" +
                "Dim startDate As Date = RenderObject.Original.Parent.Parent.DataBinding.Fields!Date.Value\r\n" +
                "Document.Tags!StartTime.Value = startDate.Add(Document.Tags!StartTime.Value.TimeOfDay)\r\n" +
                "Document.Tags!EndTime.Value = startDate.Add(Document.Tags!EndTime.Value.TimeOfDay)\r\n" +
                "Document.Tags!MonthCalendar.Value = New Date(startDate.Year, startDate.Month, 1) \r\n" +
                "startDate = Document.Tags!StartTime.Value\r\n" +
                "Document.Tags!DayHours.Value = New Dictionary(of Date, Date)\r\n" +
                "While startDate < Document.Tags!EndTime.Value\r\n" +
                "	Document.Tags!DayHours.Value.Add(startDate, startDate)\r\n" +
                "	startDate = startDate.AddMinutes(30)\r\n" +
                "End While";
            rt.Style.TextAlignVert = AlignVertEnum.Center;
            rt.Style.Spacing.Left = "2mm";
            rt.Height = "100%";
            rt.Width = "parent.Width - 38mm";

            raDayHeader.Children.Add(rt);

            RenderArea monthCalendar = new RenderArea();
            monthCalendar.Stacking = StackingRulesEnum.InlineLeftToRight;
            monthCalendar.Style.Spacing.Left = "1mm";
            monthCalendar.Style.Spacing.Right = "3mm";
            monthCalendar.Style.Spacing.Top = "0.5mm";
            monthCalendar.Width = "36mm";

            rt = new RenderText("[CDate(Document.Tags!MonthCalendar.Value).ToString(\"MMMM yyy\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.FormatDataBindingInstanceScript =
                "Dim startDate As Date = Document.Tags!MonthCalendar.Value\r\n" +
                "Dim endDate As Date = startDate.AddMonths(1).AddDays(-1)\r\n" +
                "While startDate.DayOfWeek <> Document.Tags!CalendarInfo.Value.WeekStart \r\n" +
                "    startDate = startDate.AddDays(-1)\r\n" +
                "End While\r\n" +
                "Document.Tags!WeekNumber.Value = New List(of Date)\r\n" +
                "While startDate <= endDate\r\n" +
                "	Document.Tags!WeekNumber.Value.Add(startDate)\r\n" +
                "	startDate = startDate.AddDays(7)\r\n" +
                "End While";
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.Font = new Font("Segoe UI", 8);
            rt.Width = "100%";
            monthCalendar.Children.Add(rt);

            rt = new RenderText(" ");
            rt.Style.Font = new Font("Arial", 7f);
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            monthCalendar.Children.Add(rt);

            rt = new RenderText("[Document.Tags!CalendarInfo.Value.CultureInfo.DateTimeFormat.GetShortestDayName(CDate(Fields!Date.Value).DayOfWeek)]");
            rt.DataBinding.DataSource = new Expression("New DateAppointmentsCollection(Document.Tags!WeekNumber.Value(0), Document.Tags!WeekNumber.Value(0).AddDays(6), Document.Tags!Appointments.Value, True)");
            rt.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            rt.Style.Borders.Bottom = LineDef.Default;
            rt.Style.Font = new Font("Arial", 7f);
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            monthCalendar.Children.Add(rt);

            RenderArea raWeek = new RenderArea();
            raWeek.DataBinding.DataSource = new Expression("Document.Tags!WeekNumber.Value");
            raWeek.Style.Font = new Font("Arial", 7f);
            raWeek.Width = "100%";
            raWeek.Stacking = StackingRulesEnum.InlineLeftToRight;

            rt = new RenderText("[Document.Tags!CalendarInfo.Value.CultureInfo.Calendar.GetWeekOfYear(CDate(Fields!Date.Value), System.Globalization.CalendarWeekRule.FirstDay, Document.Tags!CalendarInfo.Value.WeekStart)]");
            rt.Style.Borders.Right = LineDef.Default;
            rt.Style.TextAlignHorz = AlignHorzEnum.Right;
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            raWeek.Children.Add(rt);

            rt = new RenderText("[CDate(Fields!Date.Value).ToString(\"%d\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.DataBinding.DataSource = new Expression("New DateAppointmentsCollection(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value).AddDays(6), Document.Tags!Appointments.Value, True)");
            rt.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            rt.FormatDataBindingInstanceScript =
                "If RenderObject.Original.DataBinding.Fields!Date.Value.Month <> Document.Tags!MonthCalendar.Value.Month Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Hidden\r\n" +
                "Else If RenderObject.Original.DataBinding.Fields!HasAppointments.Value Then\r\n" +
                "    RenderObject.Style.FontBold = true\r\n" +
                "End If";
            rt.Style.TextAlignHorz = AlignHorzEnum.Right;
            rt.Width = "12.5%";
            raWeek.Children.Add(rt);
            monthCalendar.Children.Add(raWeek);

            raDayHeader.Children.Add(monthCalendar);

            raPage.Children.Add(raDayHeader);
            #endregion

            #region ** day
            // day
            RenderArea raDayBody = new RenderArea();
            raDayBody.FormatDataBindingInstanceScript =
                "If Not (Document.Tags!IncludeTasks.Value Or Document.Tags!IncludeBlankNotes.Value Or Document.Tags!IncludeLinedNotes.Value) Then\r\n" +
                "    RenderObject.Width = \"100%\" \r\n" +
                "End If";
            raDayBody.Style.Spacing.Top = "0.5mm";
            raDayBody.Style.Borders.All = LineDef.Default;
            raDayBody.Width = "75%";
            raDayBody.Height = "parent.Height - 28mm";
            raDayBody.Stacking = StackingRulesEnum.BlockTopToBottom;

            #region ** all-day events
            // RenderArea representing the single day
            RenderArea raDay = new RenderArea();
            raDay.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value))");
            raDay.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raDay.Stacking = StackingRulesEnum.InlineLeftToRight;
            raDay.Height = "Auto";

            RenderText status = new RenderText(" ");
            status.FormatDataBindingInstanceScript =
                "If IsNothing(RenderObject.Original.DataBinding.Parent.Fields!BusyStatus.Value) Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse\r\n" +
                "Else \r\n" +
                "    RenderObject.Style.Brush = RenderObject.Original.DataBinding.Parent.Fields!BusyStatus.Value.Brush.Brush \r\n" +
                "End If";
            status.Width = "100%";
            status.Height = "1.5mm";
            raDay.Children.Add(status);

            // RenderArea representing the single appointment
            RenderArea raApp = new RenderArea();
            raApp.Style.Spacing.All = "0.5mm";
            raApp.Style.Spacing.Left = "1.25cm";
            raApp.FormatDataBindingInstanceScript =
                "If RenderObject.Original.DataBinding.Fields!AllDayEvent.Value Then\r\n" +
                "    RenderObject.Style.Borders.All = LineDef.Default\r\n" +
                "ElseIf DateDiff(DateInterval.Second, CDate(Document.Tags!StartTime.Value), CDate(RenderObject.Original.DataBinding.Fields!Start.Value)) >= 0 Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse\r\n" +
                "End If\r\n" +
                "If Not IsNothing(RenderObject.Original.DataBinding.Fields!Label.Value) Then\r\n" +
                "    RenderObject.Style.Brush = CType(RenderObject.Original.DataBinding.Fields!Label.Value, Label).Brush.Brush\r\n" +
                "End If";
            raApp.Stacking = StackingRulesEnum.InlineLeftToRight;
            // Set the text's data source to the data source of the containing  RenderArea - this indicates that the render object is bound to the current group in the specified object:
            raApp.DataBinding.DataSource = new Expression("Parent.Fields!Appointments.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");

            rt = new RenderText();
            rt.Text = "[IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, \"> \", String.Empty) & " +
                "IIf(Fields!AllDayEvent.Value, \"\", String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:t} {1:t}\", " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, DataBinding.Parent.Fields!Date.Value, Fields!Start.Value), " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value.AddDays(1)), CDate(Fields!End.Value)) > 0, DataBinding.Parent.Fields!Date.Value.AddDays(1), Fields!End.Value)))]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.Text = " [Fields!Subject.Value] ";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[\" (\" & Fields!Location.Value & \")\"]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            raDay.Children.Add(raApp);

            raDayBody.Children.Add(raDay);
            #endregion

            #region ** slots
            raDay = new RenderArea();
            raDay.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value))");
            raDay.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raDay.Stacking = StackingRulesEnum.InlineLeftToRight;
            raDay.Height = "parent - prev.height - next.height";

            RenderArea raTimeSlot = new RenderArea();
            raTimeSlot.FormatDataBindingInstanceScript =
                "RenderObject.Height = New Unit((100/CLng(Document.Tags!DayHours.Value.Count) - 0.005).ToString(\"#.###\", System.Globalization.CultureInfo.InvariantCulture) & \"%\")";
            raTimeSlot.DataBinding.DataSource = new Expression("Document.Tags!DayHours.Value");
            raTimeSlot.Width = "100%";
            raTimeSlot.Height = "0.5cm";
            raTimeSlot.Stacking = StackingRulesEnum.InlineLeftToRight;

            RenderParagraph rp = new RenderParagraph();
            rp.FormatDataBindingInstanceScript =
                "Document.Tags!SlotAppointments.Value = Document.Tags!DateAppointments.Value.GetIntervalAppointments(RenderObject.Original.DataBinding.Parent.Fields!Key.Value, RenderObject.Original.DataBinding.PArent.Fields!Key.Value.AddMinutes(30), False)\r\n" +
                "RenderObject.Visibility = IIf(RenderObject.Original.DataBinding.Parent.Fields!Key.Value.Minute = 0, VisibilityEnum.Visible, VisibilityEnum.Hidden)\r\n" +
                "Dim headerFont As Font = Document.Tags!DateHeadingsFont.Value\r\n" +
                "RenderObject.Style.Font = New Font(headerFont.FontFamily, headerFont.Size * 2 / 3)";
            rp.Width = "1.65cm";
            rp.Style.TextAlignHorz = AlignHorzEnum.Right;
            rp.Style.Borders.Top = LineDef.Default;
            rp.Style.Padding.Right = "1mm";
            rp.Height = "100%";
            ParagraphText pt = new ParagraphText("[IIf(String.IsNullOrEmpty(Document.Tags!CalendarInfo.Value.CultureInfo.DateTimeFormat.AMDesignator), CDate(Fields!Key.Value).ToString(\"%H\"), CDate(Fields!Key.Value).ToString(\"%h\"))]");
            pt.Style.FontBold = true;
            pt.Style.Padding.Right = "1mm";
            rp.Content.Add(pt);
            rp.Content.Add(new ParagraphText("[IIf(String.IsNullOrEmpty(Document.Tags!CalendarInfo.Value.CultureInfo.DateTimeFormat.AMDesignator), \"00\", CDate(Fields!Key.Value).ToString(\"tt\", Document.Tags!CalendarInfo.Value.CultureInfo).ToLower())]", TextPositionEnum.Superscript));
            raTimeSlot.Children.Add(rp);

            RenderArea slot = new RenderArea();
            slot.Width = "parent.width - prev.width - prev.left";
            slot.Height = "100%";
            slot.Style.Borders.Top = LineDef.Default;
            slot.Style.Borders.Left = LineDef.Default;
            slot.Stacking = StackingRulesEnum.InlineLeftToRight;

            // RenderArea representing the single appointment
            raApp = new RenderArea();
            // Set the text's data source to the data source of the containing  RenderArea - this indicates that the render object is bound to the current group in the specified object:
            raApp.DataBinding.DataSource = new Expression("Document.Tags!SlotAppointments.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");
            raApp.Style.Spacing.All = "0.5mm";
            raApp.FormatDataBindingInstanceScript =
                "RenderObject.Width = New Unit((100/CLng(Document.Tags!SlotAppointments.Value.Count) - 0.005).ToString(\"#.###\", System.Globalization.CultureInfo.InvariantCulture) & \"%\")\r\n" +
                "If Not IsNothing(RenderObject.Original.DataBinding.Fields!Label.Value) Then\r\n" +
                "    RenderObject.Style.Brush = CType(RenderObject.Original.DataBinding.Fields!Label.Value, Label).Brush.Brush\r\n" +
                "End If";
            raApp.Width = "10%";
            raApp.Height = "100%";
            raApp.Stacking = StackingRulesEnum.InlineLeftToRight;

            rt = new RenderText();
            rt.Text = "[String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:t}-{1:t}\", Fields!Start.Value, Fields!End.Value).ToLower()]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.Text = " [Fields!Subject.Value] ";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[\" (\" & Fields!Location.Value & \")\"]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            slot.Children.Add(raApp);

            raTimeSlot.Children.Add(slot);

            raDay.Children.Add(raTimeSlot);
            raDayBody.Children.Add(raDay);
            #endregion

            #region ** late appointments
            raDay = new RenderArea();
            raDay.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value))");
            raDay.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raDay.Style.Borders.Top = LineDef.Default;
            raDay.Stacking = StackingRulesEnum.InlineLeftToRight;
            raDay.Height = "Auto";

            // RenderArea representing the single appointment
            raApp = new RenderArea();
            raApp.Style.Spacing.All = "0.5mm";
            raApp.Style.Spacing.Left = "1.25cm";
            raApp.FormatDataBindingInstanceScript =
                "If DateDiff(DateInterval.Second, CDate(Document.Tags!EndTime.Value), CDate(RenderObject.Original.DataBinding.Fields!Start.Value)) >= 0 Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Visible\r\n" +
                "Else\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse\r\n" +
                "End If\r\n" +
                "If Not IsNothing(RenderObject.Original.DataBinding.Fields!Label.Value) Then\r\n" +
                "    RenderObject.Style.Brush = CType(RenderObject.Original.DataBinding.Fields!Label.Value, Label).Brush.Brush\r\n" +
                "End If";
            raApp.Stacking = StackingRulesEnum.InlineLeftToRight;
            // Set the text's data source to the data source of the containing  RenderArea - this indicates that the render object is bound to the current group in the specified object:
            raApp.DataBinding.DataSource = new Expression("Parent.Fields!Appointments.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");

            rt = new RenderText();
            rt.Text = "[IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, \"> \", String.Empty) & " +
                "IIf(Fields!AllDayEvent.Value, \"\", String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:t} {1:t}\", " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, DataBinding.Parent.Fields!Date.Value, Fields!Start.Value), " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value.AddDays(1)), CDate(Fields!End.Value)) > 0, DataBinding.Parent.Fields!Date.Value.AddDays(1), Fields!End.Value)))]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.Text = " [Fields!Subject.Value] ";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[\" (\" & Fields!Location.Value & \")\"]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            raDay.Children.Add(raApp);

            raDayBody.Children.Add(raDay);
            #endregion

            raPage.Children.Add(raDayBody);
            #endregion

            #region ** tasks
            // tasks
            RenderArea include = new RenderArea();
            include.FormatDataBindingInstanceScript =
                "If Document.Tags!IncludeTasks.Value Or Document.Tags!IncludeBlankNotes.Value Or Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Visible \r\n" +
                "Else\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If";
            include.Width = "25%";
            include.Height = "parent.Height - 28mm";

            RenderArea raTasks = new RenderArea();
            raTasks.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeTasks.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raTasks.Style.Borders.All = LineDef.Default;
            raTasks.Style.Spacing.Top = "0.5mm";
            raTasks.Style.Spacing.Left = "0.5mm";
            raTasks.Width = "100%";

            rt = new RenderText();
            rt.Text = "Tasks";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raTasks.Children.Add(rt);
            include.Children.Add(raTasks);

            RenderArea raNotes = new RenderArea();
            raNotes.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeBlankNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raNotes.Style.Borders.All = LineDef.Default;
            raNotes.Style.Spacing.Top = "0.5mm";
            raNotes.Style.Spacing.Left = "0.5mm";
            raNotes.Width = "100%";

            rt = new RenderText();
            rt.Text = "Notes";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raNotes.Children.Add(rt);
            include.Children.Add(raNotes);

            raNotes = new RenderArea();
            raNotes.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raNotes.Style.Borders.All = LineDef.Default;
            raNotes.Style.Spacing.Top = "0.5mm";
            raNotes.Style.Spacing.Left = "0.5mm";
            raNotes.Width = "100%";

            rt = new RenderText();
            rt.Text = "Notes";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raNotes.Children.Add(rt);

            RenderTable lines = new RenderTable();
            lines.Rows.Insert(0, 1);
            lines.Rows[0].Height = "0.5cm";
            TableVectorGroup gr = lines.RowGroups[0, 1];
            gr.Header = TableHeaderEnum.None;
            List<int> lst = new List<int>(60);
            for (int i = 0; i < 60; i++)
            {
                lst.Add(i);
            }
            gr.DataBinding.DataSource = lst;
            lines.Style.GridLines.Horz = LineDef.Default;
            lines.RowSizingMode = TableSizingModeEnum.Fixed;

            raNotes.Children.Add(lines);

            include.Children.Add(raNotes);

            raPage.Children.Add(include);
            #endregion

            doc.Body.Children.Add(raPage);

            AddCommonTags(doc);

            Tag newTag = new Tag("Appointments", null, typeof(IList<Appointment>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("WeekNumber", null, typeof(List<DateTime>));
            newTag.SerializeValue = false;
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("DayHours", null, typeof(Dictionary<DateTime, DateTime>));
            newTag.SerializeValue = false;
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("MonthCalendar", null, typeof(DateTime));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("StartDate", DateTime.Today, typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);
            newTag = new Tag("EndDate", DateTime.Today.AddDays(1), typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);

            newTag = new Tag("StartTime", DateTime.Today.AddHours(7), typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            ((TagDateTimeInputParams)newTag.InputParams).Format = DateTimePickerFormat.Time;
            doc.Tags.Add(newTag);
            newTag = new Tag("EndTime", DateTime.Today.AddHours(19), typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            ((TagDateTimeInputParams)newTag.InputParams).Format = DateTimePickerFormat.Time;
            doc.Tags.Add(newTag);

            newTag = new Tag("HidePrivateAppointments", false, typeof(bool));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("TaskHeight", new Unit("33.3%"), typeof(Unit));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("SlotAppointments", null, typeof(List<Appointment>));
            newTag.SerializeValue = false;
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("IncludeTasks", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Tasks";
            doc.Tags.Add(newTag);
            newTag = new Tag("IncludeBlankNotes", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Notes (blank)";
            doc.Tags.Add(newTag);
            newTag = new Tag("IncludeLinedNotes", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Notes (lined)";
            doc.Tags.Add(newTag);
        }
Exemple #25
0
        /// <summary>
        /// Fills specified control with a Details style.
        /// </summary>
        /// <param name="doc"></param>
        public static void MakeDetails(C1PrintDocument doc)
        {
            doc.Clear();

            doc.DocumentInfo.Title = "Details style";
            doc.DocumentInfo.Subject = "Details";
            AddNamespaces(doc);

            AddHeadersFooters(doc);
            doc.Tags["FooterRight"].Value = "[GeneratedDateTime]";

            doc.DocumentStartingScript +=
                "If Tags!InsertPageBreaks.Value And Tags!PageBreak.Value <> \"Day\" Then \r\n" +
                "	If Tags.IndexByName(\"LastDate\") = -1 Then\r\n" +
                "	    Dim tag As Tag\r\n" +
                "       tag = New Tag(\"LastDate\", Tags!StartDate.Value.Date)\r\n" +
                "       Tags.Add(tag)\r\n" +
                "   Else\r\n" +
                "       Tags!LastDate.Value = Tags!StartDate.Value.Date\r\n" +
                "   End If\r\n" +
                "End If\r\n" +
                "Dim dateAppointments As New DateAppointmentsCollection(Tags!StartDate.Value, Tags!EndDate.Value, Tags!Appointments.Value, false)\r\n" +
                "If Tags.IndexByName(\"DateAppointments\") = -1 Then\r\n" +
                "   Dim tagApps As Tag\r\n" +
                "   tagApps = New Tag(\"DateAppointments\", dateAppointments)\r\n" +
                "   tagApps.SerializeValue = False\r\n" +
                "   Tags.Add(tagApps)\r\n" +
                "Else\r\n" +
                "   Tags!DateAppointments.Value = dateAppointments\r\n" +
                "End If";

            // RenderArea representing the single day
            RenderArea ra1 = new RenderArea();
            ra1.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value");
            ra1.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            ra1.FormatDataBindingInstanceScript =
                "If Tags!InsertPageBreaks.Value Then\r\n" +
                "	 Dim newDate as DateTime\r\n" +
                "	 newDate = RenderObject.Original.DataBinding.Fields!Date.Value\r\n" +
                "    Select Case Tags!PageBreak.Value\r\n" +
                "		Case \"Week\"\r\n" +
                "			Dim tmp as DateTime\r\n" +
                "			tmp = Tags!LastDate.Value.Date.AddDays(1)\r\n" +
                "			While tmp <= newDate\r\n" +
                "				If tmp.DayOfWeek = Tags!CalendarInfo.Value.WeekStart Then\r\n" +
                "					RenderObject.BreakBefore = BreakEnum.Page\r\n" +
                "					Exit While\r\n" +
                "				End If\r\n" +
                "				tmp = tmp.AddDays(1)\r\n" +
                "			End While\r\n" +
                "		Case \"Month\"\r\n" +
                "			If Tags!LastDate.Value.Month <> newDate.Month Then\r\n" +
                "				RenderObject.BreakBefore = BreakEnum.Page\r\n" +
                "			End If\r\n" +
                "		Case Else\r\n" +
                "			RenderObject.BreakBefore = BreakEnum.Page\r\n" +
                "    End Select\r\n" +
                "    Tags!LastDate.Value = newDate\r\n" +
                "End If";

            ra1.Style.Spacing.All = "1mm";

            // day header
            RenderText rt = new RenderText("[String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:D}\", Fields!Date.Value)]");
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Style.Font = Document.Tags!DateHeadingsFont.Value";
            rt.Style.Borders.All = LineDef.Default;
            rt.Style.Padding.All = "2mm";
            rt.Style.BackColor = Colors.LightGray;

            ra1.Children.Add(rt);

            // RenderArea tepresenting the single appointment
            RenderArea raApp = new RenderArea();
            raApp.Style.Spacing.All = "2mm";
            raApp.Stacking = StackingRulesEnum.InlineLeftToRight;

            // Set the text's data source to the data source of the containing  RenderArea - this indicates that the render object is bound to the current group in the specified object:
            raApp.DataBinding.DataSource = new Expression("Parent.Fields!Appointments.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");

            rt = new RenderText();
            rt.Text = "[IIf(Fields!AllDayEvent.Value, \"All Day\", String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:t} - {1:t}\", " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, DataBinding.Parent.Fields!Date.Value, Fields!Start.Value), " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value.AddDays(1)), CDate(Fields!End.Value)) > 0, DataBinding.Parent.Fields!Date.Value.AddDays(1), Fields!End.Value)))]";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            raApp.Children.Add(rt);

            RenderArea appDetails = new RenderArea();
            appDetails.Width = "75%";
            appDetails.Stacking = StackingRulesEnum.InlineLeftToRight;

            RenderText rt1 = new RenderText();
            rt1.Text = "[Fields!Subject.Value] ";
            rt1.Style.FontBold = true;
            rt1.Width = "Auto";
            appDetails.Children.Add(rt1);

            rt1 = new RenderText();
            rt1.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt1.Text = "[\"-- \" & Fields!Location.Value]";
            rt1.Style.FontBold = true;
            rt1.Width = "Auto";
            appDetails.Children.Add(rt1);

            rt1 = new RenderText();
            rt1.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Body.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse) \r\n" +
                "RenderObject.BreakBefore = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Subject.Value & RenderObject.Original.DataBinding.Parent.Fields!Location.Value), BreakEnum.Line, BreakEnum.None)";
            rt1.Text = "[Fields!Body.Value]";
            appDetails.Children.Add(rt1);

            rt1 = new RenderText();
            rt1.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(DateDiff(DateInterval.Second, CDate(RenderObject.Original.DataBinding.Parent.Parent.Fields!Date.Value), CDate(RenderObject.Original.DataBinding.Parent.Fields!Start.Value)) < 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt1.Text = "[\"Please See Above\"]";
            rt1.Style.FontBold = true;
            rt1.BreakBefore = BreakEnum.Line;
            appDetails.Children.Add(rt1);

            raApp.Children.Add(appDetails);

            ra1.Children.Add(raApp);
            doc.Body.Children.Add(ra1);

            AddCommonTags(doc);

            Tag newTag = new Tag("Appointments", null, typeof(IList<Appointment>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("StartDate", DateTime.Today, typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);
            newTag = new Tag("EndDate", DateTime.Today.AddDays(1), typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);
            newTag = new Tag("InsertPageBreaks", false, typeof(Boolean));
            newTag.Description = "Start a new page each";
            doc.Tags.Add(newTag);
            newTag = new Tag("PageBreak", "Day", typeof(string));
            newTag.Description = "";
            newTag.InputParams = new TagListInputParams(TagListInputParamsTypeEnum.ComboBox, new TagListInputParamsItem("Day", "Day"), new TagListInputParamsItem("Week", "Week"), new TagListInputParamsItem("Month", "Month"));
            doc.Tags.Add(newTag);
            newTag = new Tag("HidePrivateAppointments", false, typeof(bool));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
        }
Exemple #26
0
        /// <summary>
        /// Fills specified control with a Memo style.
        /// </summary>
        /// <param name="doc"></param>
        public static void MakeMemo(C1PrintDocument doc)
        {
            doc.Clear();

            doc.DocumentInfo.Title = "Memo style";
            doc.DocumentInfo.Subject = "Memo";

            AddNamespaces(doc);

            AddHeadersFooters(doc);
            doc.Tags["AppointmentsFont"].Value = new Font("Arial", 10);

            // add string tags (localizable)

            Tag newTag = new Tag("Subject", "Subject:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Location", "Location:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("Start", "Start:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("End", "End:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("ShowTimeAs", "Show Time As:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Recurrence", "Recurrence:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("None", "none", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Categories", "Categories:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Resources", "Resources:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Contacts", "Contacts:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("Importance", "Importance:", typeof(string));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            RenderArea ra = new RenderArea();
            ra.Width = "100%";
            ra.BreakBefore = BreakEnum.Page;
            ra.DataBinding.DataSource = new Expression("Document.Tags!Appointments.Value");
            ra.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            ra.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");
            ra.Style.Borders.Top = LineDef.DefaultBold;
            ra.Stacking = StackingRulesEnum.InlineLeftToRight;
            ra.Style.Padding.Top = "1mm";
            ra.Style.Spacing.All = "1mm";

            RenderText rt = new RenderText();
            rt.FormatDataBindingInstanceScript = //VisibilityEnum
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Parent.Original.DataBinding.Fields!Subject.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Subject.Value]";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Parent.Original.DataBinding.Fields!Subject.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Fields!Subject.Value]";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Parent.Original.DataBinding.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Location.Value]";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Parent.Original.DataBinding.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Fields!Location.Value]";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Document.Tags!Start.Value]";
            rt.Width = "25%";
            rt.Style.Padding.Top = "2mm";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:ddd} {1:g}\", Fields!Start.Value, Fields!Start.Value)]";
            rt.Width = "75%";
            rt.Style.Padding.Top = "2mm";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Document.Tags!End.Value]";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:ddd} {1:g}\", Fields!End.Value, Fields!End.Value)]";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Document.Tags!ShowTimeAs.Value]";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Fields!BusyStatus.Value.Text]";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Document.Tags!Recurrence.Value]";
            rt.Width = "25%";
            rt.Style.Padding.Top = "2mm";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "Dim index as Integer = RenderObject.Parent.Original.DataBinding.RowNumber - 1 \r\n" +
                "Dim app As Appointment = Document.Tags!Appointments.Value(index)\r\n" +
                "Dim text As RenderText = RenderObject\r\n" +
                "If app.RecurrenceState <> RecurrenceStateEnum.NotRecurring Then\r\n" +
                "    text.Text = app.GetRecurrencePattern().Description\r\n" +
                "Else\r\n" +
                "    text.Text = Document.Tags!None.Value\r\n" +
                "End If";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Links.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Links.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Contacts.Value]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Links.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Links.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Fields!Links.Value.ToString()]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Categories.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Categories.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Categories.Value]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Categories.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Categories.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Fields!Categories.Value.ToString()]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Resources.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Resources.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Resources.Value]";
            rt.Width = "25%";
            rt.Style.Padding.Top = "2mm";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf((Not (RenderObject.Parent.Original.DataBinding.Fields!Resources.Value Is Nothing)) And RenderObject.Parent.Original.DataBinding.Fields!Resources.Value.Count > 0, VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Fields!Resources.Value.ToString()]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not (RenderObject.Parent.Original.DataBinding.Fields!Importance.Value = 1), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[Document.Tags!Importance.Value]";
            rt.Style.Padding.Top = "2mm";
            rt.Width = "25%";
            rt.Style.FontBold = true;
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not (RenderObject.Parent.Original.DataBinding.Fields!Importance.Value = 1), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Style.Padding.Top = "2mm";
            rt.Text = "[Fields!Importance.Value.ToString()]";
            rt.Width = "75%";
            ra.Children.Add(rt);

            rt = new RenderText();
            rt.Text = "[Fields!Body.Value.ToString()]";
            rt.Style.Padding.Top = "3mm";
            rt.Style.Padding.Right = "2mm";
            rt.Width = "100%";
            ra.Children.Add(rt);

            doc.Body.Children.Add(ra);

            AddCommonTags(doc);

            newTag = new Tag("Appointments", null, typeof(IList<Appointment>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
        }
Exemple #27
0
        /// <summary>
        /// Fills specified control with a Month style.
        /// </summary>
        /// <param name="doc"></param>
        public static void MakeMonth(C1PrintDocument doc)
        {
            doc.Clear();

            doc.DocumentInfo.Title = "Monthly style";
            doc.DocumentInfo.Subject = "Month";
            AddNamespaces(doc);

            AddHeadersFooters(doc);
            doc.PageLayout.PageSettings.Landscape = true;
            doc.Tags["FooterRight"].Value = "[GeneratedDateTime]";
            doc.Tags["DateHeadingsFont"].Value = new Font("Segoe UI", 20, FontStyle.Bold);

            doc.DocumentStartingScript +=
                "Dim daysNumber As Long = 7.0 \r\n" +
                "If Document.Tags!WorkDaysOnly.Value Then\r\n" +
                "   daysNumber = Document.Tags!CalendarInfo.Value.WorkDays.Count \r\n" +
                "End If\r\n" +
                "Document.Tags!DayWidth.Value = New Unit((97.3/daysNumber - 0.005).ToString(\"#.###\", System.Globalization.CultureInfo.InvariantCulture) & \"%\") \r\n" +
                "Dim tasksNumber As Integer = 0 \r\n" +
                "If Document.Tags!IncludeTasks.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If Document.Tags!IncludeBlankNotes.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "   tasksNumber = tasksNumber + 1 \r\n" +
                "End If\r\n" +
                "If tasksNumber = 1 Then\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"100%\")\r\n" +
                "ElseIf tasksNumber = 2 Then\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"50%\")\r\n" +
                "Else\r\n" +
                "   Document.Tags!TaskHeight.Value = New Unit(\"33.3%\")\r\n" +
                "End If\r\n" +
                "Dim startT As DateTime = Tags!StartDate.Value  \r\n" +
                "Dim endT As DateTime = Tags!EndDate.Value  \r\n" +
                "While startT.DayOfWeek <> Tags!CalendarInfo.Value.WeekStart \r\n" +
                "    startT = startT.AddDays(-1)\r\n" +
                "End While\r\n" +
                "Dim days As Long = DateDiff(DateInterval.Day, startT, endT )\r\n" +
                "endT = endT.AddDays(35 - (days Mod 35))\r\n" +
                "Dim months As New List(Of Date)\r\n" +
                "Dim s As DateTime = startT\r\n" +
                "While s < endT\r\n" +
                "	months.Add(s)\r\n" +
                "   s = s.AddDays(35)\r\n" +
                "End While\r\n" +
                "If Tags.IndexByName(\"Months\") = -1 Then\r\n" +
                "   Dim tagMonths As Tag\r\n" +
                "   tagMonths = New Tag(\"Months\", months)\r\n" +
                "   tagMonths.SerializeValue = False\r\n" +
                "   Tags.Add(tagMonths)\r\n" +
                "Else\r\n" +
                "   Tags!Months.Value = months\r\n" +
                "End If\r\n" +
                "\r\n" +
                "Dim dateAppointments As New DateAppointmentsCollection(startT, endT, Tags!Appointments.Value, Tags!CalendarInfo.Value, True, Not Tags!WorkDaysOnly.Value)\r\n" +
                "If Tags.IndexByName(\"DateAppointments\") = -1 Then\r\n" +
                "   Dim tagApps As Tag\r\n" +
                "   tagApps = New Tag(\"DateAppointments\", dateAppointments)\r\n" +
                "   tagApps.SerializeValue = False\r\n" +
                "   Tags.Add(tagApps)\r\n" +
                "Else\r\n" +
                "   Tags!DateAppointments.Value = dateAppointments\r\n" +
                "End If\r\n";

            // RenderArea representing the single page
            RenderArea raPage = new RenderArea();
            raPage.DataBinding.DataSource = new Expression("Document.Tags!Months.Value");
            raPage.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raPage.BreakBefore = BreakEnum.Page;
            raPage.Width = "100%";
            raPage.Height = "100%";
            raPage.Stacking = StackingRulesEnum.InlineLeftToRight;

            #region ** month header
            // month header
            RenderArea raMonthHeader = new RenderArea();
            raMonthHeader.Style.Borders.All = LineDef.Default;
            raMonthHeader.Width = "100%";
            raMonthHeader.Height = "28mm";
            raMonthHeader.Stacking = StackingRulesEnum.InlineLeftToRight;

            RenderText rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Style.Font = Document.Tags!DateHeadingsFont.Value\r\n" +
                "Dim rt As RenderText = RenderObject\r\n" +
                "Dim startDate As Date = RenderObject.Original.Parent.Parent.DataBinding.Fields!Date.Value\r\n" +
                "Dim endDate As Date = startDate.AddDays(34)\r\n" +
                "Dim txt As String = startDate.ToString(\"MMMM\", Document.Tags!CalendarInfo.Value.CultureInfo)\r\n" +
                "If startDate.Year <> endDate.Year Then\r\n" +
                "    txt = txt & \" \" & startDate.ToString(\"yyy\", Document.Tags!CalendarInfo.Value.CultureInfo)\r\n" +
                "End If\r\n" +
                "txt = txt & \" - \" & endDate.ToString(\"MMMM yyy\", Document.Tags!CalendarInfo.Value.CultureInfo)\r\n" +
                "rt.Text = txt\r\n" +
                "Document.Tags!WeekTabs.Value = New List(of Date)\r\n" +
                "Document.Tags!WeekTabs.Value.Add(startDate)\r\n" +
                "Document.Tags!WeekTabs.Value.Add(startDate.AddDays(7))\r\n" +
                "Document.Tags!WeekTabs.Value.Add(startDate.AddDays(14))\r\n" +
                "Document.Tags!WeekTabs.Value.Add(startDate.AddDays(21))\r\n" +
                "Document.Tags!WeekTabs.Value.Add(startDate.AddDays(28))\r\n" +
                "Document.Tags!MonthCalendars.Value = New List(of Date)\r\n" +
                "startDate = New Date(startDate.Year, startDate.Month, 1)\r\n" +
                "While startDate <= endDate\r\n" +
                "	Document.Tags!MonthCalendars.Value.Add(startDate)\r\n" +
                "	startDate = startDate.AddMonths(1)\r\n" +
                "End While";
            rt.Style.TextAlignVert = AlignVertEnum.Center;
            rt.Style.Spacing.Left = "2mm";
            rt.Height = "100%";
            rt.Width = "parent.Width - 102mm";

            raMonthHeader.Children.Add(rt);

            RenderArea monthCalendar = new RenderArea();
            monthCalendar.DataBinding.DataSource = new Expression("Document.Tags!MonthCalendars.Value");
            monthCalendar.Stacking = StackingRulesEnum.InlineLeftToRight;
            monthCalendar.Style.Spacing.Left = "1mm";
            monthCalendar.Style.Spacing.Right = "1mm";
            monthCalendar.Style.Spacing.Top = "0.5mm";
            monthCalendar.Width = "34mm";

            rt = new RenderText("[CDate(Fields!Date.Value).ToString(\"MMMM yyy\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.FormatDataBindingInstanceScript =
                "Dim startDate As Date = RenderObject.Original.Parent.DataBinding.Fields!Date.Value\r\n" +
                "Dim endDate As Date = startDate.AddMonths(1).AddDays(-1)\r\n" +
                "While startDate.DayOfWeek <> Document.Tags!CalendarInfo.Value.WeekStart \r\n" +
                "    startDate = startDate.AddDays(-1)\r\n" +
                "End While\r\n" +
                "Document.Tags!WeekNumber.Value = New List(of Date)\r\n" +
                "While startDate <= endDate\r\n" +
                "	Document.Tags!WeekNumber.Value.Add(startDate)\r\n" +
                "	startDate = startDate.AddDays(7)\r\n" +
                "End While";
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.Font = new Font("Segoe UI", 8);
            rt.Width = "100%";
            monthCalendar.Children.Add(rt);

            rt = new RenderText(" ");
            rt.Style.Font = new Font("Arial", 7f);
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            monthCalendar.Children.Add(rt);

            rt = new RenderText("[Document.Tags!CalendarInfo.Value.CultureInfo.DateTimeFormat.GetShortestDayName(CDate(Fields!Date.Value).DayOfWeek)]");
            rt.DataBinding.DataSource = new Expression("New DateAppointmentsCollection(Document.Tags!WeekNumber.Value(0), Document.Tags!WeekNumber.Value(0).AddDays(6), Document.Tags!Appointments.Value, True)");
            rt.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            rt.Style.Borders.Bottom = LineDef.Default;
            rt.Style.Font = new Font("Arial", 7f);
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            monthCalendar.Children.Add(rt);

            RenderArea raWeek = new RenderArea();
            raWeek.DataBinding.DataSource = new Expression("Document.Tags!WeekNumber.Value");
            raWeek.Style.Font = new Font("Arial", 7f);
            raWeek.Width = "100%";
            raWeek.Stacking = StackingRulesEnum.InlineLeftToRight;

            rt = new RenderText("[Document.Tags!CalendarInfo.Value.CultureInfo.Calendar.GetWeekOfYear(CDate(Fields!Date.Value), System.Globalization.CalendarWeekRule.FirstDay, Document.Tags!CalendarInfo.Value.WeekStart)]");
            rt.Style.Borders.Right = LineDef.Default;
            rt.Style.TextAlignHorz = AlignHorzEnum.Right;
            rt.Style.WordWrap = false;
            rt.Width = "12.5%";
            raWeek.Children.Add(rt);

            rt = new RenderText("[CDate(Fields!Date.Value).ToString(\"%d\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.DataBinding.DataSource = new Expression("New DateAppointmentsCollection(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value).AddDays(6), Document.Tags!Appointments.Value, True)");
            rt.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            rt.FormatDataBindingInstanceScript =
                "If RenderObject.Original.DataBinding.Fields!Date.Value.Month <> RenderObject.Original.Parent.Parent.DataBinding.Fields!Date.Value.Month Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Hidden\r\n" +
                "Else If RenderObject.Original.DataBinding.Fields!HasAppointments.Value Then\r\n" +
                "    RenderObject.Style.FontBold = true\r\n" +
                "End If";
            rt.Style.TextAlignHorz = AlignHorzEnum.Right;
            rt.Width = "12.5%";
            raWeek.Children.Add(rt);
            monthCalendar.Children.Add(raWeek);

            raMonthHeader.Children.Add(monthCalendar);

            raPage.Children.Add(raMonthHeader);
            #endregion

            #region ** month
            // month
            RenderArea raMonth = new RenderArea();
            raMonth.FormatDataBindingInstanceScript =
                "If Not (Document.Tags!IncludeTasks.Value Or Document.Tags!IncludeBlankNotes.Value Or Document.Tags!IncludeLinedNotes.Value) Then\r\n" +
                "    RenderObject.Width = \"100%\" \r\n" +
                "End If";
            raMonth.Style.Spacing.Top = "0.5mm";
            raMonth.Style.Borders.Top = LineDef.Default;
            raMonth.Style.Borders.Left = LineDef.Default;
            raMonth.Style.Borders.Bottom = LineDef.Default;
            raMonth.Width = "80%";
            raMonth.Height = "parent.Height - 28mm";
            raMonth.Stacking = StackingRulesEnum.InlineLeftToRight;

            rt = new RenderText(" ");
            rt.Style.WordWrap = false;
            rt.Height = "4%";
            rt.Style.TextAngle = 90;
            rt.Width = "2.7%";
            raMonth.Children.Add(rt);

            rt = new RenderText("[CDate(Fields!Date.Value).ToString(\"dddd\", Document.Tags!CalendarInfo.Value.CultureInfo)]");
            rt.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value).AddDays(6))");
            rt.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Width = Document.Tags!DayWidth.Value";
            rt.Style.Borders.Bottom = LineDef.Default;
            rt.Style.Borders.Right = LineDef.Default;
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.WordWrap = false;
            rt.Height = "4%";
            raMonth.Children.Add(rt);

            RenderArea raWeekTab = new RenderArea();
            raWeekTab.DataBinding.DataSource = new Expression("Document.Tags!WeekTabs.Value");
            raWeekTab.Height = "19.2%";
            raWeekTab.Width = "100%";
            raWeekTab.Stacking = StackingRulesEnum.InlineLeftToRight;

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "Dim txt As RenderText = RenderObject\r\n" +
                "Dim start As Date = RenderObject.Parent.Original.DataBinding.Fields!Date.Value\r\n" +
                "Dim endT As Date = start.AddDays(6)\r\n" +
                "If start.Month = endT.Month Then \r\n" +
                "	txt.Text = start.ToString(\"%d\", Document.Tags!CalendarInfo.Value.CultureInfo) & \" - \" & endT.ToString(\"d.MM\", Document.Tags!CalendarInfo.Value.CultureInfo)\r\n" +
                "Else\r\n" +
                "	txt.Text = start.ToString(\"d.MM\", Document.Tags!CalendarInfo.Value.CultureInfo) & \" - \" & endT.ToString(\"d.MM\", Document.Tags!CalendarInfo.Value.CultureInfo)\r\n" +
                "End If";
            rt.Style.Borders.Right = LineDef.Default;
            rt.Style.FontBold = true;
            rt.Style.TextAngle = 90;
            rt.Style.TextAlignHorz = AlignHorzEnum.Center;
            rt.Style.WordWrap = false;
            rt.Height = "100%";
            rt.Width = "2.7%";
            raWeekTab.Children.Add(rt);

            // RenderArea representing the single day
            RenderArea raDay = new RenderArea();
            raDay.DataBinding.DataSource = new Expression("Document.Tags!DateAppointments.Value(Parent.Fields!Date.Value, CDate(Parent.Fields!Date.Value).AddDays(6))");
            raDay.DataBinding.Sorting.Expressions.Add("Fields!Date.Value");
            raDay.Style.Borders.Right = LineDef.Default;
            raDay.Style.Borders.Bottom = LineDef.Default;
            raDay.FormatDataBindingInstanceScript =
                "RenderObject.Width = Document.Tags!DayWidth.Value";
            raDay.Height = "100%";

            // day header
            rt = new RenderText("[IIF(Fields!Date.Value.Day = 1 Or CDate(Fields!Date.Value) = CDate(Document.Tags!WeekTabs.Value(0).Date), String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:m}\", Fields!Date.Value) ,Fields!Date.Value.Day)]");
            rt.Style.Borders.Bottom = LineDef.Default;
            rt.Style.Padding.Left = "1mm";
            rt.Style.FontBold = true;
            rt.Style.BackColor = Colors.White;
            rt.Style.TextAlignHorz = AlignHorzEnum.Left;
            rt.Style.WordWrap = false;

            raDay.Children.Add(rt);

            RenderText status = new RenderText(" ");
            status.FormatDataBindingInstanceScript =
                "If IsNothing(RenderObject.Original.DataBinding.Parent.Fields!BusyStatus.Value) Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse\r\n" +
                "Else \r\n" +
                "    RenderObject.Style.Brush = RenderObject.Original.DataBinding.Parent.Fields!BusyStatus.Value.Brush.Brush \r\n" +
                "End If";
            status.Width = "100%";
            status.Height = "1.5mm";
            raDay.Children.Add(status);

            RenderArea appointments = new RenderArea();
            appointments.Height = "parent.Height - Y - 2.5mm";

            // RenderArea representing the single appointment
            RenderArea raApp = new RenderArea();
            raApp.Style.Spacing.All = "0.2mm";
            raApp.FormatDataBindingInstanceScript =
                "If RenderObject.Original.DataBinding.Fields!AllDayEvent.Value Then\r\n" +
                "    RenderObject.Style.Borders.All = LineDef.Default\r\n" +
                "End If\r\n" +
                "If Not IsNothing(RenderObject.Original.DataBinding.Fields!Label.Value) Then\r\n" +
                "    RenderObject.Style.Brush = CType(RenderObject.Original.DataBinding.Fields!Label.Value, Label).Brush.Brush\r\n" +
                "End If";
            raApp.Stacking = StackingRulesEnum.InlineLeftToRight;
            raApp.Height = "14pt";

            // Set the text's data source to the data source of the containing  RenderArea - this indicates that the render object is bound to the current group in the specified object:
            raApp.DataBinding.DataSource = new Expression("Parent.Fields!Appointments.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Start.Value");
            raApp.DataBinding.Sorting.Expressions.Add("Fields!Subject.Value");

            rt = new RenderText();
            rt.Style.WordWrap = false;
            rt.Text = "[IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, \"> \", String.Empty) & " +
                "IIf(Fields!AllDayEvent.Value, \"\", String.Format(Document.Tags!CalendarInfo.Value.CultureInfo, \"{0:t}\", " +
                "IIf(DateDiff(DateInterval.Second, CDate(DataBinding.Parent.Fields!Date.Value), CDate(Fields!Start.Value)) < 0, DataBinding.Parent.Fields!Date.Value, Fields!Start.Value)))] [Fields!Subject.Value]";
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            rt = new RenderText();
            rt.FormatDataBindingInstanceScript =
                "RenderObject.Visibility = IIf(Not String.IsNullOrEmpty(RenderObject.Original.DataBinding.Parent.Fields!Location.Value), VisibilityEnum.Visible, VisibilityEnum.Collapse)";
            rt.Text = "[\" (\" & Fields!Location.Value & \")\"]";
            rt.Style.WordWrap = false;
            rt.Width = "Auto";
            raApp.Children.Add(rt);

            appointments.Children.Add(raApp);
            raDay.Children.Add(appointments);

            RenderArea overflowArea = new RenderArea();
            overflowArea.Name = "overflow";
            RenderText arrow = new RenderText(new string((char)0x36, 1), new Font("Webdings", 10));
            arrow.Style.Padding.Top = "-1.5mm";
            arrow.X = "parent.Width - 4mm";
            overflowArea.Children.Add(arrow);
            overflowArea.ZOrder = 100;
            overflowArea.Height = "2.5mm";
            overflowArea.FragmentResolvedScript =
                "if (C1PrintDocument.FormatVersion.AssemblyVersion.MinorRevision <> 100) Then\r\n" +
                "  Dim fragment As RenderFragment = RenderFragment.Parent.Children(2)\r\n" +
                "  If (fragment.HasChildren) Then\r\n" +
                "    If (RenderFragment.Parent.BoundsOnPage.Contains(fragment.Children(fragment.Children.Count - 1).BoundsOnPage)) Then\r\n" +
                "      RenderFragment.RenderObject.Visibility = VisibilityEnum.Hidden\r\n" +
                "    else\r\n" +
                "      RenderFragment.RenderObject.Visibility = VisibilityEnum.Visible\r\n" +
                "    end if\r\n" +
                "  else\r\n" +
                "    RenderFragment.RenderObject.Visibility = VisibilityEnum.Hidden\r\n" +
                "  end if\r\n" +
                "else\r\n" +
                "  RenderFragment.RenderObject.Visibility = VisibilityEnum.Hidden\r\n" +
                "end if";
            raDay.Children.Add(overflowArea);

            raWeekTab.Children.Add(raDay);
            raMonth.Children.Add(raWeekTab);

            raPage.Children.Add(raMonth);
            #endregion

            #region ** tasks
            // tasks
            RenderArea include = new RenderArea();
            include.FormatDataBindingInstanceScript =
                "If Document.Tags!IncludeTasks.Value Or Document.Tags!IncludeBlankNotes.Value Or Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Visible \r\n" +
                "Else\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If";
            include.Width = "20%";
            include.Height = "parent.Height - 28mm";

            RenderArea raTasks = new RenderArea();
            raTasks.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeTasks.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raTasks.Style.Borders.All = LineDef.Default;
            raTasks.Style.Spacing.Top = "0.5mm";
            raTasks.Style.Spacing.Left = "0.5mm";
            raTasks.Width = "100%";

            rt = new RenderText();
            rt.Text = "Tasks";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raTasks.Children.Add(rt);
            include.Children.Add(raTasks);

            RenderArea raNotes = new RenderArea();
            raNotes.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeBlankNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raNotes.Style.Borders.All = LineDef.Default;
            raNotes.Style.Spacing.Top = "0.5mm";
            raNotes.Style.Spacing.Left = "0.5mm";
            raNotes.Width = "100%";

            rt = new RenderText();
            rt.Text = "Notes";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raNotes.Children.Add(rt);
            include.Children.Add(raNotes);

            raNotes = new RenderArea();
            raNotes.FormatDataBindingInstanceScript =
                "If Not Document.Tags!IncludeLinedNotes.Value Then\r\n" +
                "    RenderObject.Visibility = VisibilityEnum.Collapse \r\n" +
                "End If\r\n" +
                "RenderObject.Height = Document.Tags!TaskHeight.Value";
            raNotes.Style.Borders.All = LineDef.Default;
            raNotes.Style.Spacing.Top = "0.5mm";
            raNotes.Style.Spacing.Left = "0.5mm";
            raNotes.Width = "100%";

            rt = new RenderText();
            rt.Text = "Notes";
            rt.Style.Padding.Left = "2mm";
            rt.Style.Borders.Bottom = LineDef.Default;
            raNotes.Children.Add(rt);

            RenderTable lines = new RenderTable();
            lines.Rows.Insert(0, 1);
            lines.Rows[0].Height = "0.5cm";
            TableVectorGroup gr = lines.RowGroups[0, 1];
            gr.Header = TableHeaderEnum.None;
            List<int> lst = new List<int>(60);
            for (int i = 0; i < 60; i++)
            {
                lst.Add(i);
            }
            gr.DataBinding.DataSource = lst;
            lines.Style.GridLines.Horz = LineDef.Default;
            lines.RowSizingMode = TableSizingModeEnum.Fixed;

            raNotes.Children.Add(lines);

            include.Children.Add(raNotes);

            raPage.Children.Add(include);
            #endregion

            doc.Body.Children.Add(raPage);

            AddCommonTags(doc);

            Tag newTag = new Tag("Appointments", null, typeof(IList<Appointment>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("WeekTabs", null, typeof(List<DateTime>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("WeekNumber", null, typeof(List<DateTime>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("MonthCalendars", null, typeof(List<DateTime>));
            newTag.ShowInDialog = false;
            newTag.SerializeValue = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("StartDate", DateTime.Today, typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);
            newTag = new Tag("EndDate", DateTime.Today.AddDays(1), typeof(DateTime));
            newTag.InputParams = new TagDateTimeInputParams();
            doc.Tags.Add(newTag);
            newTag = new Tag("HidePrivateAppointments", false, typeof(bool));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("TaskHeight", new Unit("33.3%"), typeof(Unit));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);
            newTag = new Tag("DayWidth", new Unit("13.9%"), typeof(Unit));
            newTag.ShowInDialog = false;
            doc.Tags.Add(newTag);

            newTag = new Tag("IncludeTasks", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Tasks";
            doc.Tags.Add(newTag);
            newTag = new Tag("IncludeBlankNotes", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Notes (blank)";
            doc.Tags.Add(newTag);
            newTag = new Tag("IncludeLinedNotes", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Include Notes (lined)";
            doc.Tags.Add(newTag);
            newTag = new Tag("WorkDaysOnly", false, typeof(bool));
            newTag.ShowInDialog = true;
            newTag.InputParams = new TagBoolInputParams();
            newTag.Description = "Only Print Workdays";
            doc.Tags.Add(newTag);
        }