Ejemplo n.º 1
0
        private void createColumns(Graphics g, RectangleF contentBounds)
        {
            float gridWidth  = getGridTextWidth(this.formGrid, TEST_TEXT);
            float printWidth = g.MeasureString(TEST_TEXT, itemFont).Width;

            float rankWidth = this.formGrid.Columns[0].Width * printWidth / gridWidth;
            float imeWidth  = this.formGrid.Columns[1].Width * printWidth / gridWidth;
            float klubWidth = this.formGrid.Columns[2].Width * printWidth / gridWidth;
            float koloWidth = rankWidth / 2;

            float spravaWidth = this.formGrid.Columns[3].Width * printWidth / gridWidth;
            float totalWidth  = spravaWidth;

            if (extended)
            {
                spravaWidth = spravaWidth * 2.3f;
            }

            float xRank    = contentBounds.X;
            float xIme     = xRank + rankWidth;
            float xKlub    = xIme + imeWidth;
            float xKolo    = xKlub + klubWidth;
            float xParter  = xKolo + koloWidth;
            float xKonj    = xParter + spravaWidth;
            float xKarike  = xKonj + spravaWidth;
            float xPreskok = xKarike + spravaWidth;
            float xRazboj  = xPreskok + spravaWidth;
            float xVratilo = xRazboj + spravaWidth;
            float xTotal   = xVratilo + spravaWidth;

            if (gimnastika == Gimnastika.ZSG)
            {
                xTotal = xRazboj;
            }
            float xRightEnd = xTotal + totalWidth;

            float dWidth = (xKonj - xParter) / 3;

            float xParterE    = xParter + dWidth;
            float xParterTot  = xParterE + dWidth;
            float xKonjE      = xKonj + dWidth;
            float xKonjTot    = xKonjE + dWidth;
            float xKarikeE    = xKarike + dWidth;
            float xKarikeTot  = xKarikeE + dWidth;
            float xPreskokE   = xPreskok + dWidth;
            float xPreskokTot = xPreskokE + dWidth;
            float xRazbojE    = xRazboj + dWidth;
            float xRazbojTot  = xRazbojE + dWidth;
            float xVratiloE   = xVratilo + dWidth;
            float xVratiloTot = xVratiloE + dWidth;

            float delta = (contentBounds.Right - xRightEnd) / 2;  // moza da bude i negativno

            if (delta < -contentBounds.X)
            {
                delta = -contentBounds.X;
            }
            xRank     += delta;
            xIme      += delta;
            xKlub     += delta;
            xKolo     += delta;
            xParter   += delta;
            xKonj     += delta;
            xKarike   += delta;
            xPreskok  += delta;
            xRazboj   += delta;
            xVratilo  += delta;
            xTotal    += delta;
            xRightEnd += delta;

            xParterE  += delta;
            xKonjE    += delta;
            xKarikeE  += delta;
            xPreskokE += delta;
            xRazbojE  += delta;
            xVratiloE += delta;

            xParterTot  += delta;
            xKonjTot    += delta;
            xKarikeTot  += delta;
            xPreskokTot += delta;
            xRazbojTot  += delta;
            xVratiloTot += delta;

            float spravaDWidth   = dWidth;
            float spravaEWidth   = dWidth;
            float spravaTotWidth = xKonj - xParter - 2 * dWidth;

            StringFormat rankFormat = Izvestaj.centerCenterFormat;

            StringFormat imeFormat = new StringFormat(StringFormatFlags.NoWrap);

            imeFormat.Alignment     = StringAlignment.Near;
            imeFormat.LineAlignment = StringAlignment.Center;

            StringFormat klubFormat = new StringFormat(StringFormatFlags.NoWrap);

            klubFormat.Alignment     = StringAlignment.Near;
            klubFormat.LineAlignment = StringAlignment.Center;

            StringFormat koloFormat = new StringFormat(StringFormatFlags.NoWrap);

            koloFormat.Alignment     = StringAlignment.Center;
            koloFormat.LineAlignment = StringAlignment.Center;

            StringFormat spravaFormat = Izvestaj.centerCenterFormat;
            StringFormat totalFormat  = Izvestaj.centerCenterFormat;
            StringFormat kvalFormat   = Izvestaj.centerCenterFormat;

            StringFormat rankHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat imeHeaderFormat    = Izvestaj.centerCenterFormat;
            StringFormat klubHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat koloHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat spravaHeaderFormat = Izvestaj.centerCenterFormat;
            StringFormat totalHeaderFormat  = Izvestaj.centerCenterFormat;

            String rankTitle  = "Rank";
            String imeTitle   = "Ime";
            String klubTitle  = "Klub";
            String koloTitle  = "";
            String totalTitle = "Total";
            String kvalTitle  = String.Empty;

            Columns.Clear();

            addColumn(xRank, rankWidth, rankFormat, rankTitle, rankHeaderFormat);
            addColumn(xIme, imeWidth, imeFormat, imeTitle, imeHeaderFormat);
            ReportColumn column = addColumn(xKlub, klubWidth, klubFormat, klubTitle, klubHeaderFormat);

            column = addKoloColumn(column.getItemsIndexEnd(), 4, xKolo, koloWidth, null, koloFormat,
                                   koloTitle, koloHeaderFormat);

            string fmtD   = "F" + Opcije.Instance.BrojDecimalaD;
            string fmtE   = "F" + Opcije.Instance.BrojDecimalaE;
            string fmtTot = "F" + Opcije.Instance.BrojDecimalaTotal;

            Sprava[] sprave = Sprave.getSprave(gimnastika);

            if (extended)
            {
                float[] x = { xParter, xParterE, xParterTot, xKonj,    xKonjE,    xKonjTot,
                              xKarike, xKarikeE, xKarikeTot, xPreskok, xPreskokE, xPreskokTot,
                              xRazboj, xRazbojE, xRazbojTot, xVratilo, xVratiloE, xVratiloTot };
                for (int i = 0; i < sprave.Length; i++)
                {
                    ReportColumn column1 = addColumn(x[3 * i], spravaDWidth, fmtD, spravaFormat, "D", spravaHeaderFormat);
                    column1.Image = SlikeSprava.getImage(sprave[i]);
                    column1.Split = true;
                    column1.Span  = true;

                    column       = addColumn(x[3 * i + 1], spravaEWidth, fmtE, spravaFormat, "E", spravaHeaderFormat);
                    column.Image = SlikeSprava.getImage(sprave[i]);
                    column.Split = true;

                    column       = addColumn(x[3 * i + 2], spravaTotWidth, fmtTot, spravaFormat, "Total", spravaHeaderFormat);
                    column.Image = SlikeSprava.getImage(sprave[i]);
                    column.Split = true;
                    column.Brush = totalBrush;

                    if (column1.Span)
                    {
                        column1.SpanEndColumn = column;
                    }
                }
            }
            else
            {
                float[] x = { xParter, xKonj, xKarike, xPreskok, xRazboj, xVratilo };
                for (int i = 0; i < sprave.Length; i++)
                {
                    column = addSpravaColumn(column.getItemsIndexEnd(), 4, x[i], spravaWidth, fmtTot,
                                             spravaFormat, "", spravaHeaderFormat);
                    column.Image = SlikeSprava.getImage(sprave[i]);
                }
            }

            column = addTotalColumn(column.getItemsIndexEnd(), 5, xTotal, totalWidth, fmtTot, totalFormat,
                                    totalTitle, totalHeaderFormat);
            column.Brush = totalAllBrush;
        }
Ejemplo n.º 2
0
        private void createColumns(Graphics g, RectangleF contentBounds)
        {
            float gridWidth  = getGridTextWidth(this.formGrid, TEST_TEXT);
            float printWidth = g.MeasureString(TEST_TEXT, itemFont).Width;

            float rankWidthCm  = 0.75f;
            float skokWidthCm  = 0.5f;
            float ocenaWidthCm = 2.0f;

            if (brojEOcena > 0)
            {
                ocenaWidthCm = 1.9f;
            }

            float rankWidth = Izvestaj.convCmToInch(rankWidthCm);
            float imeWidth  = this.formGrid.Columns[1].Width * printWidth / gridWidth;

            float kategorijaWidth;

            if (this.stampajKategoriju)
            {
                kategorijaWidth = this.formGrid.Columns[3].Width * printWidth / gridWidth;
            }
            else
            {
                kategorijaWidth = 0.0F;
            }

            float klubWidth;

            if (this.stampajKlub)
            {
                klubWidth = this.formGrid.Columns[2].Width * printWidth / gridWidth;
            }
            else
            {
                klubWidth = 0.0F;
            }

            float skokWidth  = Izvestaj.convCmToInch(skokWidthCm);
            float ocenaWidth = Izvestaj.convCmToInch(ocenaWidthCm);

            float xRank       = contentBounds.X;
            float xIme        = xRank + Izvestaj.convCmToInch(rankWidthCm);
            float xKategorija = xIme + imeWidth;
            float xKlub       = xKategorija + kategorijaWidth;
            float xSkok       = 0.0f;
            float xSprava;

            if (sprava == Sprava.Preskok)
            {
                xSkok   = xKlub + klubWidth;
                xSprava = xSkok + Izvestaj.convCmToInch(skokWidthCm);
            }
            else
            {
                xSprava = xKlub + klubWidth;
            }
            float xTotal = xSprava + ocenaWidth * (4 + brojEOcena);

            float xRightEnd = xSprava + ocenaWidth * (4 + brojEOcena);

            if (sprava == Sprava.Preskok)
            {
                xRightEnd += ocenaWidth;
            }

            float delta = (contentBounds.Right - xRightEnd) / 2;  // moza da bude i negativno

            if (delta < -contentBounds.X)
            {
                delta = -contentBounds.X;
            }

            xRank       += delta;
            xIme        += delta;
            xKlub       += delta;
            xKategorija += delta;
            if (sprava == Sprava.Preskok)
            {
                xSkok += delta;
            }
            xSprava   += delta;
            xTotal    += delta;
            xRightEnd += delta;

            float[] xEn = new float[6];
            for (int i = 0; i < brojEOcena; i++)
            {
                if (i == 0)
                {
                    xEn[i] = xSprava + ocenaWidth;
                }
                else
                {
                    xEn[i] = xEn[i - 1] + ocenaWidth;
                }
            }
            float xE;

            if (brojEOcena == 0)
            {
                xE = xSprava + ocenaWidth;
            }
            else
            {
                xE = xEn[brojEOcena - 1] + ocenaWidth;
            }
            float xPen = xE + ocenaWidth;
            float xTot = xPen + ocenaWidth;

            StringFormat rankFormat = Izvestaj.centerCenterFormat;

            StringFormat imeFormat = new StringFormat(StringFormatFlags.NoWrap);

            imeFormat.Alignment     = StringAlignment.Near;
            imeFormat.LineAlignment = StringAlignment.Center;

            StringFormat klubFormat = new StringFormat(StringFormatFlags.NoWrap);

            klubFormat.Alignment     = StringAlignment.Near;
            klubFormat.LineAlignment = StringAlignment.Center;

            StringFormat kategorijaFormat = new StringFormat(StringFormatFlags.NoWrap);

            kategorijaFormat.Alignment     = StringAlignment.Near;
            kategorijaFormat.LineAlignment = StringAlignment.Center;

            StringFormat skokFormat = new StringFormat(StringFormatFlags.NoWrap);

            skokFormat.Alignment     = StringAlignment.Center;
            skokFormat.LineAlignment = StringAlignment.Center;

            StringFormat spravaFormat = Izvestaj.centerCenterFormat;
            StringFormat totalFormat  = Izvestaj.centerCenterFormat;

            StringFormat rankHeaderFormat       = Izvestaj.centerCenterFormat;
            StringFormat imeHeaderFormat        = Izvestaj.centerCenterFormat;
            StringFormat klubHeaderFormat       = Izvestaj.centerCenterFormat;
            StringFormat kategorijaHeaderFormat = Izvestaj.centerCenterFormat;
            StringFormat skokHeaderFormat       = Izvestaj.centerCenterFormat;
            StringFormat spravaHeaderFormat     = Izvestaj.centerCenterFormat;
            StringFormat totalHeaderFormat      = Izvestaj.centerCenterFormat;

            String rankTitle       = Opcije.Instance.RedBrojString;
            String imeTitle        = Opcije.Instance.ImeString;
            String klubTitle       = Opcije.Instance.KlubDrzavaString;
            String kategorijaTitle = Opcije.Instance.KategorijaString;
            String skokTitle       = "";
            String totalTitle      = Opcije.Instance.TotalString;

            Columns.Clear();

            addColumn(xRank, rankWidth, rankFormat, rankTitle, rankHeaderFormat);
            addColumn(xIme, imeWidth, imeFormat, imeTitle, imeHeaderFormat);
            ReportColumn column = addColumn(xKategorija, kategorijaWidth, kategorijaFormat, kategorijaTitle, kategorijaHeaderFormat);

            column.Visible = stampajKategoriju;
            column         = addColumn(xKlub, klubWidth, klubFormat, klubTitle, klubHeaderFormat);
            column.Visible = stampajKlub;
            if (sprava == Sprava.Preskok)
            {
                column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xSkok, skokWidth, null, skokFormat,
                                              skokTitle, skokHeaderFormat, true);
            }

            string fmtD   = "F" + Opcije.Instance.BrojDecimalaD;
            string fmtE   = "F" + Opcije.Instance.BrojDecimalaE;
            string fmtPen = "F" + Opcije.Instance.BrojDecimalaPen;
            string fmtTot = "F" + Opcije.Instance.BrojDecimalaTotal;

            ReportColumn column1;

            if (sprava == Sprava.Preskok)
            {
                column1 = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xSprava, ocenaWidth, fmtD, spravaFormat,
                                               "D", spravaHeaderFormat, true);
            }
            else
            {
                column1 = addColumn(xSprava, ocenaWidth, fmtD, spravaFormat, "D", spravaHeaderFormat);
            }
            column1.Image = SlikeSprava.getImage(sprava);
            column1.Split = true;
            column1.Span  = true;

            if (brojEOcena > 0)
            {
                for (int i = 0; i < brojEOcena; i++)
                {
                    if (sprava == Sprava.Preskok)
                    {
                        ReportColumn prevColumn = column;
                        if (i == 0)
                        {
                            prevColumn = column1;
                        }
                        column = addDvaPreskokaColumn(prevColumn.getItemsIndexEnd(), 2, xEn[i], ocenaWidth, fmtE,
                                                      spravaFormat, "E" + (i + 1).ToString(), spravaHeaderFormat, true);
                    }
                    else
                    {
                        column = addColumn(xEn[i], ocenaWidth, fmtE, spravaFormat, "E" + (i + 1).ToString(),
                                           spravaHeaderFormat);
                    }
                    column.Image = SlikeSprava.getImage(sprava);
                    column.Split = true;
                }
            }

            ReportColumn prevColumn2 = column;

            if (brojEOcena == 0)
            {
                prevColumn2 = column1;
            }
            if (sprava == Sprava.Preskok)
            {
                column = addDvaPreskokaColumn(prevColumn2.getItemsIndexEnd(), 2, xE, ocenaWidth, fmtE, spravaFormat,
                                              "E", spravaHeaderFormat, true);
            }
            else
            {
                column = addColumn(xE, ocenaWidth, fmtE, spravaFormat, "E", spravaHeaderFormat);
            }
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;

            if (sprava == Sprava.Preskok)
            {
                column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xPen, ocenaWidth, fmtPen, spravaFormat,
                                              "Pen.", spravaHeaderFormat, true);
            }
            else
            {
                column = addColumn(xPen, ocenaWidth, fmtPen, spravaFormat, "Pen.", spravaHeaderFormat);
            }
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;

            if (sprava == Sprava.Preskok)
            {
                column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xTot, ocenaWidth, fmtTot, spravaFormat,
                                              Opcije.Instance.TotalString, spravaHeaderFormat, true);
            }
            else
            {
                column = addColumn(xTot, ocenaWidth, fmtTot, spravaFormat, Opcije.Instance.TotalString, spravaHeaderFormat);
            }
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;

            if (column1.Span)
            {
                column1.SpanEndColumn = column;
            }

            if (sprava == Sprava.Preskok)
            {
                column = addColumn(column.getItemsIndexEnd(), xTotal, ocenaWidth, fmtTot, totalFormat,
                                   totalTitle, totalHeaderFormat);
            }
        }
Ejemplo n.º 3
0
        private void createColumns(Graphics g, RectangleF contentBounds)
        {
            float gridWidth  = getGridTextWidth(this.formGrid, TEST_TEXT);
            float printWidth = g.MeasureString(TEST_TEXT, itemFont).Width;

            // kolo i kval sam podesio kao polovinu Rank kolone.
            float rankWidth  = this.formGrid.Columns[0].Width * printWidth / gridWidth;
            float imeWidth   = this.formGrid.Columns[1].Width * printWidth / gridWidth;
            float klubWidth  = this.formGrid.Columns[2].Width * printWidth / gridWidth;
            float koloWidth  = rankWidth / 2;
            float ocenaWidth = this.formGrid.Columns[3].Width * printWidth / gridWidth;
            float kvalWidth  = rankWidth / 2;

            int brojOcena = 3;

            float xRank = contentBounds.X;
            float xIme  = xRank + rankWidth;
            float xKlub = xIme + imeWidth;
            float xKolo = 0.0f;
            float xSprava;

            xKolo   = xKlub + klubWidth;
            xSprava = xKolo + koloWidth;

            float xTotal = xSprava + (ocenaWidth * brojOcena);
            float xKval  = xTotal + ocenaWidth;

            float xRightEnd = xKval;

            if (kvalColumn)
            {
                xRightEnd += kvalWidth;
            }

            float delta = (contentBounds.Right - xRightEnd) / 2;  // moza da bude i negativno

            if (delta < -contentBounds.X)
            {
                delta = -contentBounds.X;
            }

            xRank     += delta;
            xIme      += delta;
            xKlub     += delta;
            xKolo     += delta;
            xSprava   += delta;
            xTotal    += delta;
            xKval     += delta;
            xRightEnd += delta;

            float xE   = xSprava + ocenaWidth;
            float xPen = xE + ocenaWidth;
            float xTot = xPen;

            float spravaDWidth   = ocenaWidth;
            float spravaEWidth   = ocenaWidth;
            float spravaTotWidth = ocenaWidth;

            StringFormat rankFormat = Izvestaj.centerCenterFormat;

            StringFormat imeFormat = new StringFormat(StringFormatFlags.NoWrap);

            imeFormat.Alignment     = StringAlignment.Near;
            imeFormat.LineAlignment = StringAlignment.Center;

            StringFormat klubFormat = new StringFormat(StringFormatFlags.NoWrap);

            klubFormat.Alignment     = StringAlignment.Near;
            klubFormat.LineAlignment = StringAlignment.Center;

            StringFormat koloFormat = new StringFormat(StringFormatFlags.NoWrap);

            koloFormat.Alignment     = StringAlignment.Center;
            koloFormat.LineAlignment = StringAlignment.Center;

            StringFormat spravaFormat = Izvestaj.centerCenterFormat;
            StringFormat totalFormat  = Izvestaj.centerCenterFormat;
            StringFormat kvalFormat   = Izvestaj.centerCenterFormat;

            StringFormat rankHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat imeHeaderFormat    = Izvestaj.centerCenterFormat;
            StringFormat klubHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat koloHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat spravaHeaderFormat = Izvestaj.centerCenterFormat;
            StringFormat totalHeaderFormat  = Izvestaj.centerCenterFormat;

            String rankTitle  = "Rank";
            String imeTitle   = "Ime";
            String klubTitle  = "Klub";
            String koloTitle  = "";
            String totalTitle = "Total";
            String kvalTitle  = String.Empty;

            Columns.Clear();

            addColumn(xRank, rankWidth, rankFormat, rankTitle, rankHeaderFormat);
            addColumn(xIme, imeWidth, imeFormat, imeTitle, imeHeaderFormat);
            ReportColumn column = addColumn(xKlub, klubWidth, klubFormat, klubTitle, klubHeaderFormat);

            column = addSpravaFinaleKupaColumn(column.getItemsIndexEnd(), 2, xKolo, koloWidth, null, koloFormat,
                                               koloTitle, koloHeaderFormat);

            string fmtD   = "F" + Opcije.Instance.BrojDecimalaD;
            string fmtE   = "F" + Opcije.Instance.BrojDecimalaE;
            string fmtPen = "F" + Opcije.Instance.BrojDecimalaPen;
            string fmtTot = "F" + Opcije.Instance.BrojDecimalaTotal;

            ReportColumn column1;

            column1 = addSpravaFinaleKupaColumn(column.getItemsIndexEnd(), 2, xSprava, spravaDWidth, fmtD,
                                                spravaFormat, "D", spravaHeaderFormat);
            column1.Image = SlikeSprava.getImage(sprava);
            column1.Split = true;
            column1.Span  = true;

            column = addSpravaFinaleKupaColumn(column1.getItemsIndexEnd(), 2, xE, spravaEWidth, fmtE, spravaFormat,
                                               "E", spravaHeaderFormat);
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;

            string title = "Total";

            column = addSpravaFinaleKupaColumn(column.getItemsIndexEnd(), 2, xTot, spravaTotWidth, fmtTot, spravaFormat,
                                               title, spravaHeaderFormat);
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;
            column.Brush = totalBrush;

            if (column1.Span)
            {
                column1.SpanEndColumn = column;
            }

            column = addColumn(column.getItemsIndexEnd(), xTotal, ocenaWidth, fmtTot, totalFormat,
                               totalTitle, totalHeaderFormat);
            column.Brush = totalAllBrush;

            if (kvalColumn)
            {
                column = addColumn(column.getItemsIndexEnd(), xKval, kvalWidth, kvalFormat, kvalTitle);
                column.DrawHeaderRect = false;
                column.DrawItemRect   = false;
            }
        }
Ejemplo n.º 4
0
        private void createColumns(Graphics g, RectangleF contentBounds)
        {
            float gridWidth  = getGridTextWidth(this.formGrid, TEST_TEXT);
            float printWidth = g.MeasureString(TEST_TEXT, itemFont).Width;

            // TODO3: Ne bi trebalo pristupati kolonama po fixnom indexu (kao u sledecoj liniji) zato sto je moguce da se
            // index promeni (ako npr. dodam novu kolonu). Isto i u ostalim izvestajima.

            // TODO3: Trenutno se velicine svih kolona za ocene podesavaju prema velicini prve kolone (D). Promeni da se
            // svaka podesava odvojeno. (i u ostalim izvestajima)

            // skok i kval sam podesio kao polovinu Rank kolone.
            float rankWidth  = this.formGrid.Columns[0].Width * printWidth / gridWidth;
            float imeWidth   = this.formGrid.Columns[1].Width * printWidth / gridWidth;
            float klubWidth  = this.formGrid.Columns[2].Width * printWidth / gridWidth;
            float skokWidth  = rankWidth / 2;
            float ocenaWidth = this.formGrid.Columns[3].Width * printWidth / gridWidth;
            float kvalWidth  = rankWidth / 2;

            int brojOcena;

            if (prikaziPenal)
            {
                brojOcena = 4;
            }
            else
            {
                brojOcena = 3;
            }

            float xRank = contentBounds.X;
            float xIme  = xRank + rankWidth;
            float xKlub = xIme + imeWidth;
            float xSkok = 0.0f;
            float xSprava;

            if (obaPreskoka)
            {
                xSkok   = xKlub + klubWidth;
                xSprava = xSkok + skokWidth;
            }
            else
            {
                xSprava = xKlub + klubWidth;
            }

            float xTotal = xSprava + (ocenaWidth * brojOcena);
            float xKval  = xTotal + ocenaWidth;

            if (!obaPreskoka)
            {
                xKval = xSprava + (ocenaWidth * brojOcena);
            }

            float xRightEnd = xKval;

            if (kvalColumn)
            {
                xRightEnd += kvalWidth;
            }

            float delta = (contentBounds.Right - xRightEnd) / 2;  // moza da bude i negativno

            if (delta < -contentBounds.X)
            {
                delta = -contentBounds.X;
            }

            xRank += delta;
            xIme  += delta;
            xKlub += delta;
            if (obaPreskoka)
            {
                xSkok += delta;
            }
            xSprava   += delta;
            xTotal    += delta;
            xKval     += delta;
            xRightEnd += delta;

            float xE   = xSprava + ocenaWidth;
            float xPen = xE + ocenaWidth;
            float xTot;

            if (prikaziPenal)
            {
                xTot = xPen + ocenaWidth;
            }
            else
            {
                xTot = xPen;
            }

            float spravaDWidth   = ocenaWidth;
            float spravaEWidth   = ocenaWidth;
            float spravaTotWidth = ocenaWidth;

            StringFormat rankFormat = Izvestaj.centerCenterFormat;

            StringFormat imeFormat = new StringFormat(StringFormatFlags.NoWrap);

            imeFormat.Alignment     = StringAlignment.Near;
            imeFormat.LineAlignment = StringAlignment.Center;

            StringFormat klubFormat = new StringFormat(StringFormatFlags.NoWrap);

            klubFormat.Alignment     = StringAlignment.Near;
            klubFormat.LineAlignment = StringAlignment.Center;

            StringFormat skokFormat = new StringFormat(StringFormatFlags.NoWrap);

            skokFormat.Alignment     = StringAlignment.Center;
            skokFormat.LineAlignment = StringAlignment.Center;

            StringFormat spravaFormat = Izvestaj.centerCenterFormat;
            StringFormat totalFormat  = Izvestaj.centerCenterFormat;
            StringFormat kvalFormat   = Izvestaj.centerCenterFormat;

            StringFormat rankHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat imeHeaderFormat    = Izvestaj.centerCenterFormat;
            StringFormat klubHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat skokHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat spravaHeaderFormat = Izvestaj.centerCenterFormat;
            StringFormat totalHeaderFormat  = Izvestaj.centerCenterFormat;

            String rankTitle  = Opcije.Instance.RankString;
            String imeTitle   = Opcije.Instance.ImeString;
            String klubTitle  = Opcije.Instance.KlubDrzavaString;
            String skokTitle  = ""; // TODO3: Neka bude uspravno (isto i u izvestaju za sudijske formulare).
            String totalTitle = Opcije.Instance.TotalString;
            String kvalTitle  = String.Empty;

            Columns.Clear();

            ReportColumn column = addColumn(xRank, rankWidth, rankFormat, rankTitle, rankHeaderFormat);

            column.IncludeInMarking = true;

            column = addColumn(xIme, imeWidth, imeFormat, imeTitle, imeHeaderFormat);
            column.IncludeInMarking = true;

            column = addColumn(xKlub, klubWidth, klubFormat, klubTitle, klubHeaderFormat);
            column.IncludeInMarking = true;

            if (obaPreskoka)
            {
                column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xSkok, skokWidth, null, skokFormat,
                                              skokTitle, skokHeaderFormat);
            }

            string fmtD   = "F" + Opcije.Instance.BrojDecimalaD;
            string fmtE   = "F" + Opcije.Instance.BrojDecimalaE;
            string fmtPen = "F" + Opcije.Instance.BrojDecimalaPen;
            string fmtTot = "F" + Opcije.Instance.BrojDecimalaTotal;

            ReportColumn column1;

            if (obaPreskoka)
            {
                column1 = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xSprava, spravaDWidth, fmtD,
                                               spravaFormat, "D", spravaHeaderFormat);
            }
            else
            {
                column1 = addColumn(xSprava, spravaDWidth, fmtD, spravaFormat, "D", spravaHeaderFormat);
            }
            column1.Image = SlikeSprava.getImage(sprava);
            column1.Split = true;
            column1.Span  = true;

            if (obaPreskoka)
            {
                column = addDvaPreskokaColumn(column1.getItemsIndexEnd(), 2, xE, spravaEWidth, fmtE, spravaFormat,
                                              "E", spravaHeaderFormat);
            }
            else
            {
                column = addColumn(xE, spravaEWidth, fmtE, spravaFormat, "E", spravaHeaderFormat);
            }
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;

            if (prikaziPenal)
            {
                if (obaPreskoka)
                {
                    column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xPen, ocenaWidth, fmtPen, spravaFormat,
                                                  "Pen.", spravaHeaderFormat);
                }
                else
                {
                    column = addColumn(xPen, ocenaWidth, fmtPen, spravaFormat, "Pen.", spravaHeaderFormat);
                }
                column.Image = SlikeSprava.getImage(sprava);
                column.Split = true;
            }

            string title = Opcije.Instance.TotalString;

            if (obaPreskoka)
            {
                column = addDvaPreskokaColumn(column.getItemsIndexEnd(), 2, xTot, spravaTotWidth, fmtTot, spravaFormat,
                                              title, spravaHeaderFormat);
            }
            else
            {
                column = addColumn(xTot, spravaTotWidth, fmtTot, spravaFormat, title, spravaHeaderFormat);
            }
            column.Image = SlikeSprava.getImage(sprava);
            column.Split = true;
            column.Brush = totalBrush;

            if (column1.Span)
            {
                column1.SpanEndColumn = column;
            }

            if (obaPreskoka)
            {
                column = addColumn(column.getItemsIndexEnd(), xTotal, ocenaWidth, fmtTot, totalFormat,
                                   totalTitle, totalHeaderFormat);
                column.Brush = totalAllBrush;
            }

            if (kvalColumn)
            {
                column = addColumn(column.getItemsIndexEnd(), xKval, kvalWidth, kvalFormat, kvalTitle);
                column.DrawHeaderRect = false;
                column.DrawItemRect   = false;
            }
        }
Ejemplo n.º 5
0
        private void createColumns(Graphics g, RectangleF contentBounds)
        {
            float gridWidth  = getGridTextWidth(this.formGrid, TEST_TEXT);
            float printWidth = g.MeasureString(TEST_TEXT, itemFont).Width;

            float rankWidth  = this.formGrid.Columns[0].Width * printWidth / gridWidth;
            float ekipaWidth = this.formGrid.Columns[1].Width * printWidth / gridWidth;
            float koloWidth  = rankWidth / 2;

            float spravaWidth = this.formGrid.Columns[2].Width * printWidth / gridWidth;
            float totalWidth  = spravaWidth;
            float kvalWidth   = rankWidth / 2;

            float xRank    = contentBounds.X;
            float xEkipa   = xRank + rankWidth;
            float xKolo    = xEkipa + ekipaWidth;
            float xParter  = xKolo + koloWidth;
            float xKonj    = xParter + spravaWidth;
            float xKarike  = xKonj + spravaWidth;
            float xPreskok = xKarike + spravaWidth;
            float xRazboj  = xPreskok + spravaWidth;
            float xVratilo = xRazboj + spravaWidth;
            float xTotal   = xVratilo + spravaWidth;

            if (gimnastika == Gimnastika.ZSG)
            {
                xTotal = xRazboj;
            }

            float xKval = xTotal + totalWidth;

            float xRightEnd = xKval;

            if (kvalColumn)
            {
                xRightEnd += kvalWidth;
            }

            float dWidth = (xKonj - xParter) / 3;

            float xParterE    = xParter + dWidth;
            float xParterTot  = xParterE + dWidth;
            float xKonjE      = xKonj + dWidth;
            float xKonjTot    = xKonjE + dWidth;
            float xKarikeE    = xKarike + dWidth;
            float xKarikeTot  = xKarikeE + dWidth;
            float xPreskokE   = xPreskok + dWidth;
            float xPreskokTot = xPreskokE + dWidth;
            float xRazbojE    = xRazboj + dWidth;
            float xRazbojTot  = xRazbojE + dWidth;
            float xVratiloE   = xVratilo + dWidth;
            float xVratiloTot = xVratiloE + dWidth;

            float delta = (contentBounds.Right - xRightEnd) / 2;  // moza da bude i negativno

            if (delta < -contentBounds.X)
            {
                delta = -contentBounds.X;
            }
            xRank     += delta;
            xEkipa    += delta;
            xKolo     += delta;
            xParter   += delta;
            xKonj     += delta;
            xKarike   += delta;
            xPreskok  += delta;
            xRazboj   += delta;
            xVratilo  += delta;
            xTotal    += delta;
            xKval     += delta;
            xRightEnd += delta;

            xParterE  += delta;
            xKonjE    += delta;
            xKarikeE  += delta;
            xPreskokE += delta;
            xRazbojE  += delta;
            xVratiloE += delta;

            xParterTot  += delta;
            xKonjTot    += delta;
            xKarikeTot  += delta;
            xPreskokTot += delta;
            xRazbojTot  += delta;
            xVratiloTot += delta;

            float spravaDWidth   = dWidth;
            float spravaEWidth   = dWidth;
            float spravaTotWidth = xKonj - xParter - 2 * dWidth;

            StringFormat rankFormat = Izvestaj.centerCenterFormat;

            StringFormat ekipaFormat = new StringFormat(StringFormatFlags.NoWrap);

            ekipaFormat.Alignment     = StringAlignment.Near;
            ekipaFormat.LineAlignment = StringAlignment.Center;

            StringFormat koloFormat = new StringFormat(StringFormatFlags.NoWrap);

            koloFormat.Alignment     = StringAlignment.Center;
            koloFormat.LineAlignment = StringAlignment.Center;

            StringFormat spravaFormat = Izvestaj.centerCenterFormat;
            StringFormat totalFormat  = Izvestaj.centerCenterFormat;
            StringFormat kvalFormat   = Izvestaj.centerCenterFormat;

            StringFormat rankHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat ekipaHeaderFormat  = Izvestaj.centerCenterFormat;
            StringFormat koloHeaderFormat   = Izvestaj.centerCenterFormat;
            StringFormat spravaHeaderFormat = Izvestaj.centerCenterFormat;
            StringFormat totalHeaderFormat  = Izvestaj.centerCenterFormat;

            String rankTitle  = "Rank";
            String ekipaTitle = "Ekipa";
            String koloTitle  = ""; // TODO3: Neka bude uspravno (isto u i ostalim izvestajima sa vise kola).
            String totalTitle = "Total";
            String kvalTitle  = String.Empty;

            Columns.Clear();

            addColumn(xRank, rankWidth, rankFormat, rankTitle, rankHeaderFormat);
            ReportColumn column = addColumn(xEkipa, ekipaWidth, ekipaFormat, ekipaTitle, ekipaHeaderFormat);

            column = addKoloColumn(column.getItemsIndexEnd(), 2, xKolo, koloWidth, null, koloFormat,
                                   koloTitle, koloHeaderFormat);

            string fmtD   = "F" + Opcije.Instance.BrojDecimalaD;
            string fmtE   = "F" + Opcije.Instance.BrojDecimalaE;
            string fmtTot = "F" + Opcije.Instance.BrojDecimalaTotal;

            Sprava[] sprave = Sprave.getSprave(gimnastika);

            float[] x = { xParter, xKonj, xKarike, xPreskok, xRazboj, xVratilo };
            for (int i = 0; i < sprave.Length; i++)
            {
                column = addSpravaColumn(column.getItemsIndexEnd(), 2, x[i], spravaWidth, fmtTot,
                                         spravaFormat, "", spravaHeaderFormat);
                column.Image = SlikeSprava.getImage(sprave[i]);
            }

            column = addTotalColumn(column.getItemsIndexEnd(), 3, xTotal, totalWidth, fmtTot, totalFormat,
                                    totalTitle, totalHeaderFormat);
            column.Brush = totalAllBrush;

            if (kvalColumn)
            {
                column = addColumn(xKval, kvalWidth, kvalFormat, kvalTitle);
                column.DrawHeaderRect = false;
                column.DrawItemRect   = false;
            }
        }