Beispiel #1
0
        public void CallPrintForm(DataGridView dgv, string title, string sum)
        {
            try
            {

                if (dgv != null && dgv.DataSource != null && dgv.Rows.Count > 0)
                {

                    if (mapping == null)
                        mapping = new Collection<FieldMappingColumn>();

                    if (mapping.Count > 0)
                        mapping.Clear();

                    int sumlen = 0;

                    if (dgv.ColumnCount > 0)
                    {
                        foreach (DataGridViewColumn col in dgv.Columns)
                        {
                            if (col.Index == 0 && col.GetType().ToString() == "System.Windows.Forms.DataGridViewCheckBoxColumn")
                            {
                                continue;
                            }
                            if (col.GetType().ToString() != "System.Windows.Forms.DataGridViewLinkColumn")
                            {
                                if (col.Visible == true)
                                {
                                    sumlen += col.Width;
                                }
                            }

                        }
                    }

                    double unit = Convert.ToDouble(19) / Convert.ToDouble(sumlen);

                    if (dgv.ColumnCount > 0)
                    {
                        foreach (DataGridViewColumn col in dgv.Columns)
                        {
                            if (col.Index == 0 && col.GetType().ToString() == "System.Windows.Forms.DataGridViewCheckBoxColumn")
                            {
                                continue;
                            }
                            if (col.GetType().ToString() != "System.Windows.Forms.DataGridViewLinkColumn")
                            {
                                if (col.Visible == true)
                                {
                                    FieldMappingColumn field = new FieldMappingColumn();
                                    field.ColumnName = col.HeaderText;
                                    field.Filed = col.DataPropertyName;
                                    field.ColumnWidth = Convert.ToDouble((unit * col.Width)).ToString("0.0");
                                    mapping.Add(field);
                                }
                            }

                        }
                    }

                    int count = mapping.Count;

                    //***********Czlt-2011-04-27 测代码****************
                    string[] str = sum.Split(';');
                    string strHead ="";
                    string strFooters="" ;
                    if (str.Length == 2)
                    {
                         strHead = str[0].ToString();
                         strFooters = str[1].ToString();
                    }
                    else
                    {
                         strHead = str[0].ToString();
                    }
                    if (strFooters.Trim().Equals(""))
                    {
                        strFooters = "代班领导,安全科长,制表人,代班领导,安全科长,制表人";
                    }
                    //************************************************

                    DataTable dtResult = null;
                    if (dgv.DataSource != null)
                    {
                        if (dgv.DataSource.GetType().ToString() == "System.Data.DataView")
                        {
                            dtResult = ProcessDataTable(((DataView)dgv.DataSource).Table);
                        }
                        else
                        {
                            dtResult = ProcessDataTable((DataTable)dgv.DataSource);
                        }

                        // object[] para = new object[] { "MyDataSet", title, sum };
                        object[] para = new object[] { "MyDataSet", title, strHead, strFooters };

                        //if (dtResult != null && dtResult.Rows.Count > 0)
                        //{
                        //调用
                        CallPrintForm(dtResult, mapping, para);
                        //}
                        //else
                        //{
                        //    MessageBox.Show("无数据信息,不能打印!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        //}
                    }
                }
                else
                {
                    MessageBox.Show("没有数据生成,请重新查询", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("发生错误,错误信息:[" + e.Message + "]", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }
        }
Beispiel #2
0
        public void CallPrintForm(DataGridView dgv, string title, string sum)
        {
            try
            {
                if (sum == "AutoPrint")
                {
                    this.autoPrint = true;
                }
                if (Model == null)
                {
                    MessageBox.Show("打印模板错误,请重新设置打印参数", "提示");
                    return;
                }
                if (dgv != null && dgv.DataSource !=null && dgv.Rows.Count > 0)
                {
                    if (mapping == null)
                        mapping = new Collection<FieldMappingColumn>();

                    if (mapping.Count > 0)
                        mapping.Clear();

                    int sumlen = 0;
                    //页宽  总页宽-左右边宽
                    double pagewidth = Convert.ToDouble(Model.Paperwidth) - Convert.ToDouble(Model.Paperleft) - Convert.ToDouble(Model.Paperright) ;// -1;

                    List<string> columnswidths = Model.Columnswidth;//列宽集合
                    List<string> columnsname = Model.Columns;//列名集合
                       
                    //正常打印
                    if (Model.Columnswidth.Count != 0 && Model.Printtable.TableName != "A_InitialData")
                    {
                      
                        if (dgv.ColumnCount > 0)
                        {
                            //获取总宽度
                            foreach (string width in columnswidths)
                            {
                                sumlen += Convert.ToInt32(width);
                            }
                        }
                        //获取单元宽度
                        double unit = pagewidth / Convert.ToDouble(sumlen);

                        if (dgv.ColumnCount > 0)
                        {
                            for (int i = 0; i < columnsname.Count; i++)
                            {
                                //循环注入模板中
                                FieldMappingColumn field = new FieldMappingColumn();
                                field.ColumnName = dgv.Columns[columnsname[i]].HeaderText.ToString();
                                field.Filed = dgv.Columns[columnsname[i]].DataPropertyName;
                                field.ColumnWidth = Convert.ToDouble((unit * Convert.ToDouble(columnswidths[i]))).ToString("0.00");
                                mapping.Add(field);
                            }

                        }
                    }
                    else//无模板直接打印
                    {
                        if (dgv.ColumnCount > 0)
                        {
                            if (columnswidths.Count != Model.Printtable.Columns.Count)//判断如果勾选的列数和实际列数是否相等
                            {
                                columnswidths = new List<string>();
                                columnsname = new List<string>();
                                for (int i = 0; i < Model.Printtable.Columns.Count; i++)
                                {
                                    columnswidths.Add("1");
                                    columnsname.Add(Model.Printtable.Columns[i].ColumnName);
                                }
                            }
                            //获取总宽度
                            foreach (string width in columnswidths)
                            {
                                sumlen += Convert.ToInt32(width);
                            }

                            //获取单元宽度
                            double unit = pagewidth / Convert.ToDouble(sumlen);
                            for (int i = 0; i < Model.Printtable.Columns.Count; i++)
                            {
                                //循环注入模板中
                                FieldMappingColumn field = new FieldMappingColumn();
                                field.ColumnName = dgv.Columns[Model.Printtable.Columns[i].ColumnName].HeaderText.ToString();
                                field.Filed = dgv.Columns[Model.Printtable.Columns[i].ColumnName].DataPropertyName;
                                field.ColumnWidth = Convert.ToDouble((unit * Convert.ToDouble(columnswidths[i]))).ToString("0.00");
                                mapping.Add(field);
                            }
                        }
                    }
                    //19
                    
                    DataTable dtResult = null;
                    if (dgv.DataSource != null)
                    {
                        if (dgv.DataSource.GetType().ToString() == "System.Data.DataView")
                        {
                            dtResult = ProcessDataTable(((DataView)dgv.DataSource).Table);
                        }
                        else
                        {
                            dtResult = ProcessDataTable((DataTable)dgv.DataSource);
                        }


                        object[] para = new object[] { "MyDataSet", title, sum };


                        //if (dtResult != null && dtResult.Rows.Count > 0)
                        //{
                        //调用
                        CallPrintForm(dtResult, mapping, para);
                        //}
                        //else
                        //{
                        //    MessageBox.Show("无数据信息,不能打印!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        //}
                    }
                }
                else
                {
                    MessageBox.Show("没有数据生成,请重新查询", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
            }
            catch (Exception e)
            {
                MessageBox.Show("发生错误,错误信息:[" + e.Message + "]", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            }

        }