private void Report_SectionFormat(IGRSection pSender)
 {
     try
     {
         if (IsAlarmField == null)
         {
             return;
         }
         if (IsAlarmField.AsBoolean)
         {
             for (int i = 1; i <= dispView.Report.DetailGrid.ColumnContent.ContentCells.Count; i++)
             {
                 dispView.Report.DetailGrid.ColumnContent.ContentCells[i].ForeColor = Pub.ColorToOleColor(Color.Red);
             }
         }
         else
         {
             for (int i = 1; i <= dispView.Report.DetailGrid.ColumnContent.ContentCells.Count; i++)
             {
                 dispView.Report.DetailGrid.ColumnContent.ContentCells[i].ForeColor = Pub.ColorToOleColor(Color.Black);
             }
         }
     }
     catch
     {
     }
 }
示例#2
0
        private void btnOk_Click(object sender, EventArgs e)
        {
            if (Pub.MessageBoxShowQuestion(Pub.GetResText(formCode, "Msg001", "")))
            {
                return;
            }
            bool          IsOk   = true;
            GridppReport  Report = new GridppReport();
            IGRMemoBox    memoBox;
            IGRStaticBox  staticBox;
            IGRGroup      group = null;
            GRFieldType   ft;
            IGRField      grField;
            IGRColumn     grCol;
            IGRFieldBox   fieldBox;
            IGRSummaryBox sumBox;
            GRSummaryFun  grSum;
            string        groupField     = "";
            string        fn             = "";
            string        fnEx           = "";
            string        fr             = "";
            string        FirstFieldName = "";
            bool          IsFirstField   = true;
            int           l         = 0;
            byte          DateFlag  = 0;
            string        DateField = "";

            if (radioButton3.Checked && (cbbTime2.SelectedIndex >= 0))
            {
                DateFlag  = 1;
                DateField = ((TCommonType)cbbTime2.Items[cbbTime2.SelectedIndex]).id;
            }
            else if (radioButton2.Checked && (cbbTime1.SelectedIndex >= 0))
            {
                DateFlag  = 2;
                DateField = ((TCommonType)cbbTime1.Items[cbbTime1.SelectedIndex]).id;
            }
            else if (radioButton4.Checked && (cbbTime3.SelectedIndex >= 0))
            {
                DateFlag  = 3;
                DateField = ((TCommonType)cbbTime3.Items[cbbTime3.SelectedIndex]).id;
            }
            try
            {
                Report.Clear();
                Report.Font.Point           = 9;
                Report.Printer.LeftMargin   = 0.5;
                Report.Printer.TopMargin    = 0.5;
                Report.Printer.RightMargin  = 0.5;
                Report.Printer.BottomMargin = 0.5;
                //页眉
                Report.InsertPageHeader();
                Report.PageHeader.Height = 0.8;
                staticBox           = Report.PageHeader.Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
                staticBox.Dock      = GRDockStyle.grdsLeft;
                staticBox.Name      = "StaticBoxCommany";
                staticBox.TextAlign = GRTextAlign.grtaBottomLeft;
                staticBox.Width     = 9;
                memoBox             = Report.PageHeader.Controls.Add(GRControlType.grctMemoBox).AsMemoBox;
                memoBox.Dock        = GRDockStyle.grdsRight;
                memoBox.Text        = "[#SystemVar(CurrentDateTime)#] [#SystemVar(PageNumber)#]/[#SystemVar(PageCount)#]";
                memoBox.TextAlign   = GRTextAlign.grtaBottomRight;
                memoBox.Width       = 9;
                //页尾
                Report.InsertReportFooter();
                Report.get_ReportFooter(1).Height = 0;
                //报表头
                Report.InsertReportHeader();
                Report.get_ReportHeader(1).Height       = 0.8;
                Report.get_ReportHeader(1).RepeatOnPage = true;
                IGRLine line = Report.get_ReportHeader(1).Controls.Add(GRControlType.grctLine).AsLine;
                line.Dock            = GRDockStyle.grdsTop;
                staticBox            = Report.get_ReportHeader(1).Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
                staticBox.Name       = "MainTitleBox";
                staticBox.Center     = GRCenterStyle.grcsHorizontal;
                staticBox.ForeColor  = Pub.ColorToOleColor(Color.Red);
                staticBox.TextAlign  = GRTextAlign.grtaBottomCenter;
                staticBox.Font.Bold  = true;
                staticBox.Font.Point = 16;
                staticBox.Text       = SelectReportName;
                staticBox.Height     = 0.71;
                staticBox.Dock       = GRDockStyle.grdsTop;
                staticBox            = Report.get_ReportHeader(1).Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
                if (DateField != "")
                {
                    Report.get_ReportHeader(1).Height = 1.4;
                    staticBox.Name       = "StaticBoxDate";
                    staticBox.Center     = GRCenterStyle.grcsHorizontal;
                    staticBox.TextAlign  = GRTextAlign.grtaMiddleCenter;
                    staticBox.Font.Point = 9;
                    staticBox.Text       = SelectReportName;
                    staticBox.Height     = 0.5;
                    staticBox.Dock       = GRDockStyle.grdsBottom;
                }
                //明细网格
                Report.InsertDetailGrid();
                Report.DetailGrid.BorderColor             = Pub.ColorToOleColor(Color.FromArgb(192, 192, 192));
                Report.DetailGrid.ColLineColor            = Pub.ColorToOleColor(Color.FromArgb(192, 192, 192));
                Report.DetailGrid.RowLineColor            = Pub.ColorToOleColor(Color.FromArgb(192, 192, 192));
                Report.DetailGrid.ColumnTitle.Height      = 0.61;
                Report.DetailGrid.ColumnContent.Height    = 0.61;
                Report.DetailGrid.ColumnTitle.RepeatStyle = GRRepeatStyle.grrsOnPage;
                //分组
                if (GetGridCount(gpGrid) > 0)
                {
                    group = Report.DetailGrid.Groups.Add();
                    group.Header.Height = 0.61;
                    for (int i = 0; i < gpGrid.RowCount; i++)
                    {
                        if ((bool)gpGrid[0, i].EditedFormattedValue)
                        {
                            fn = gpGrid[2, i].Value.ToString();
                            if (fn == "")
                            {
                                fn = gpGrid[1, i].Value.ToString();
                            }
                            groupField = groupField + fn + ";";
                        }
                    }
                    groupField = groupField.Substring(0, groupField.Length - 1);
                }
                for (int i = 0; i < fdGrid.RowCount; i++)
                {
                    if ((bool)fdGrid[0, i].EditedFormattedValue)
                    {
                        fn = fdGrid[1, i].Value.ToString();
                        fr = "";
                        switch (fdGrid[3, i].Value.ToString().ToLower())
                        {
                        case "string":
                            ft = GRFieldType.grftString;
                            break;

                        case "datetime":
                            ft = GRFieldType.grftDateTime;
                            break;

                        case "byte":
                            ft = GRFieldType.grftInteger;
                            fr = "0;;#";
                            break;

                        case "double":
                            ft = GRFieldType.grftCurrency;
                            fr = "¥#,##0.00";
                            break;

                        default:
                            ft = GRFieldType.grftString;
                            break;
                        }
                        grField        = Report.DetailGrid.Recordset.AddField(fn, ft);
                        grField.Format = fr;
                        fnEx           = fdGrid[2, i].Value.ToString();
                        if (fnEx == "")
                        {
                            fnEx = fn;
                        }
                        grField.Name        = fnEx;
                        grField.DBFieldName = fn;
                        string tmp = groupField + ";";
                        if (tmp.IndexOf(fnEx + ";") == -1)
                        {
                            grCol = Report.DetailGrid.AddColumn(fnEx, fn, fnEx, 2);
                            grCol.TitleCell.Text      = fnEx;
                            grCol.TitleCell.BackColor = Pub.ColorToOleColor(Color.FromArgb(128, 255, 128));
                            grCol.TitleCell.TextAlign = GRTextAlign.grtaMiddleCenter;
                            if (IsFirstField)
                            {
                                FirstFieldName = fnEx;
                                IsFirstField   = false;
                            }
                        }
                    }
                }
                //分组
                if ((groupField != "") && (group != null))
                {
                    group.ByFields = groupField;
                    l = 0;
                    for (int i = 0; i < gpGrid.RowCount; i++)
                    {
                        if ((bool)gpGrid[0, i].EditedFormattedValue)
                        {
                            fn = gpGrid[2, i].Value.ToString();
                            if (fn == "")
                            {
                                fn = gpGrid[1, i].Value.ToString();
                            }
                            fieldBox           = group.Header.Controls.Add(GRControlType.grctFieldBox).AsFieldBox;
                            fieldBox.DataField = fn;
                            fieldBox.Left      = l;
                            fieldBox.Top       = 0;
                            fieldBox.Width     = 2;
                            fieldBox.Height    = 0.61;
                            fieldBox.ForeColor = Pub.ColorToOleColor(Color.FromArgb(0, 0, 128));
                            l += 2;
                        }
                    }
                }
                //合计
                if (GetGridCount(smGrid) > 0)
                {
                    Report.get_ReportFooter(1).Height = 0.61;
                    staticBox             = Report.get_ReportFooter(1).Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
                    staticBox.Name        = "StaticBoxSum";
                    staticBox.Text        = Pub.GetResText(formCode, staticBox.Name, "");
                    staticBox.Font.Bold   = true;
                    staticBox.BorderColor = Pub.ColorToOleColor(Color.FromArgb(192, 192, 192));
                    staticBox.Left        = 0;
                    staticBox.Height      = 0.61;
                    staticBox.AlignColumn = FirstFieldName;
                    staticBox.Width       = 2;
                    if (groupField != "")
                    {
                        group.Footer.Height   = 0.61;
                        staticBox             = group.Footer.Controls.Add(GRControlType.grctStaticBox).AsStaticBox;
                        staticBox.Name        = "StaticBoxSumMin";
                        staticBox.Text        = Pub.GetResText(formCode, staticBox.Name, "");
                        staticBox.Font.Bold   = true;
                        staticBox.BorderColor = Pub.ColorToOleColor(Color.FromArgb(192, 192, 192));
                        staticBox.Left        = 0;
                        staticBox.Height      = 0.61;
                        staticBox.AlignColumn = FirstFieldName;
                        staticBox.Width       = 2;
                    }
                    for (int i = 0; i < smGrid.RowCount; i++)
                    {
                        if ((bool)smGrid[0, i].EditedFormattedValue)
                        {
                            fn = smGrid[2, i].Value.ToString();
                            if (fn == "")
                            {
                                fn = smGrid[1, i].Value.ToString();
                            }
                            sumBox = Report.get_ReportFooter(1).Controls.Add(GRControlType.grctSummaryBox).AsSummaryBox;
                            switch (smGrid[3, i].Value.ToString().ToLower())
                            {
                            case "byte":
                            case "double":
                                grSum = GRSummaryFun.grsfSum;
                                break;

                            default:
                                grSum = GRSummaryFun.grsfCount;
                                break;
                            }
                            sumBox.SummaryFun  = grSum;
                            sumBox.DataField   = fn;
                            sumBox.AlignColumn = fn;
                            if (groupField != "")
                            {
                                sumBox             = group.Footer.Controls.Add(GRControlType.grctSummaryBox).AsSummaryBox;
                                sumBox.SummaryFun  = grSum;
                                sumBox.DataField   = fn;
                                sumBox.AlignColumn = fn;
                            }
                        }
                    }
                }
                string OrderFields = "";
                for (int i = 0; i < orGrid.RowCount; i++)
                {
                    if ((bool)orGrid[0, i].EditedFormattedValue)
                    {
                        OrderFields = OrderFields + orGrid[1, i].Value.ToString() + ",";
                    }
                }
                if (OrderFields != "")
                {
                    OrderFields = OrderFields.Substring(0, OrderFields.Length - 1);
                }
                string sql = Pub.GetSQL(DBCode.DB_000001, new string[] { "603", ReportTable, SelectReportName,
                                                                         SelectTableName, OrderFields, DateFlag.ToString(), DateField });
                db.ExecSQL(sql);
                string reportData = Report.SaveToStr();
                db.UpdateTextData(Pub.GetSQL(DBCode.DB_000001, new string[] { "303", ReportTable,
                                                                              SelectReportName }), "ReportData", reportData);
                ReportName = SelectReportName;
            }
            catch (Exception E)
            {
                IsOk = false;
                Pub.ShowErrorMsg(E);
            }
            if (!IsOk)
            {
                return;
            }
            this.DialogResult = DialogResult.OK;
            this.Close();
        }