using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; namespace Pub_Class { /// /// 单据列表 合计网格 /// public class ClsGridListSum { public DataGridView ogrdMain = new DataGridView(); public DataGridView oGridsum = new DataGridView(); private string sTotalCols; public bool Changelock; public bool DisplayNoCol; public char chr = Convert.ToChar(","); //建立 合计列 public void BuildTotalCols(string[] Cols) { Int64 i; string tStr; tStr = ""; for (i = 0; i < Cols.Length; i++) { if (i == 0) { tStr = Cols[i]; } else { tStr = tStr + "," + Cols[i]; } } sTotalCols= tStr; } //设置主网格属性 public void SetGridMain(string Name) { ogrdMain.RowTemplate.Height = 18; ogrdMain.RowTemplate.MinimumHeight = 18; ogrdMain.ColumnHeadersHeight = 40; ogrdMain.RowHeadersVisible = false; ogrdMain.ColumnHeadersVisible = true; //格式化 //表格设置 ogrdMain.RowsDefaultCellStyle.SelectionForeColor = Color.White; ogrdMain.RowsDefaultCellStyle.SelectionBackColor = Color.DarkCyan; ogrdMain.DefaultCellStyle.SelectionBackColor = Color.DarkCyan; ogrdMain.DefaultCellStyle.SelectionForeColor = Color.White; ogrdMain.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; ogrdMain.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; ogrdMain.SelectionMode = DataGridViewSelectionMode.FullRowSelect; ogrdMain.ReadOnly = true; ogrdMain.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //允许用户调整列宽 ogrdMain.EnableHeadersVisualStyles = false; //网格标题 样式 ogrdMain.AllowUserToAddRows = false; //是否允许自增--否 ogrdMain.AllowUserToDeleteRows = false; //是否允许删除--否 ogrdMain.AllowUserToResizeColumns = true; //允许调整列宽--是 ogrdMain.AllowUserToResizeRows = false; //允许调整行高--否 ogrdMain.AllowUserToOrderColumns = true; //允许 拖拽列 ogrdMain.BackgroundColor = Color.White; ogrdMain.GridColor = Color.LightGray; //网格线颜色 ogrdMain.ShowCellToolTips = true; ogrdMain.CellBorderStyle = DataGridViewCellBorderStyle.RaisedVertical; ogrdMain.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray; // ClsPub.GetGridView(ogrdMain, Name, ClsPub.AppPath);//设置列宽 } //设置合计网格属性 public void SetGridsum( ) { Int32 i; oGridsum.Enabled = false; oGridsum.Width = ogrdMain.Width; oGridsum.RowHeadersVisible = false; oGridsum.ColumnHeadersVisible = false; oGridsum.RowCount = 1; oGridsum.ColumnCount = ogrdMain.ColumnCount; oGridsum.HorizontalScrollingOffset = ogrdMain.HorizontalScrollingOffset; oGridsum.Rows[0].Height = 20; oGridsum.Height = 20; //for (i = 1; i < oGridsum.ColumnCount; i++) //{ // oGridsum.Rows[0].Cells[i].Value = ""; //} oGridsum.Rows[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; oGridsum.Rows[0].DefaultCellStyle.BackColor = Color.Khaki; for (i = 0; i < ogrdMain.ColumnCount; i++) { oGridsum.Columns[i].Visible = ogrdMain.Columns[i].Visible; oGridsum.Columns[i].Width = ogrdMain.Columns[i].Width; oGridsum.Rows[0].Cells[i].Value = ""; } oGridsum.Rows[0].Cells[0].Value = "合计"; oGridsum.Width = ogrdMain.Width ; RefreshNoCol(); } // /// /// 设置合计网格属性(只调列宽不调数据) /// public void SetGridsum_NoData() { Int32 i; oGridsum.Enabled = false; oGridsum.Width = ogrdMain.Width; oGridsum.RowHeadersVisible = false; oGridsum.ColumnHeadersVisible = false; oGridsum.HorizontalScrollingOffset = ogrdMain.HorizontalScrollingOffset; oGridsum.Rows[0].Height = 20; oGridsum.Height = 20; oGridsum.Rows[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; oGridsum.Rows[0].DefaultCellStyle.BackColor = Color.Khaki; for (i = 0; i < ogrdMain.ColumnCount; i++) { oGridsum.Columns[i].Visible = ogrdMain.Columns[i].Visible; oGridsum.Columns[i].Width = ogrdMain.Columns[i].Width; } oGridsum.Rows[0].Cells[0].Value = "合计"; oGridsum.Width = ogrdMain.Width; RefreshNoCol(); } //合计函数 public void Total() { string[] Cols; Int32 i, j, ColsTotal; if(ClsPub.isStrNull(sTotalCols).ToString().Trim()=="" ) return; if (ogrdMain.SelectedRows == null) return; Cols = sTotalCols.Split(chr); ColsTotal = Cols.Length; for (j = 0; j < ColsTotal; j++) //清空 { oGridsum.Rows[0].Cells[j].Value = ""; } try { double d = 0; for (j = 0; j < ColsTotal; j++) { d = 0; for (i = 0; i < ogrdMain.SelectedRows.Count; i++) { //d = d + ClsPub.isDoule(ogrdMain.Rows[i].Cells[ClsPub.isInt(Cols[j])].Value); d = d + ClsPub.isDoule(ogrdMain.SelectedRows[i].Cells[ClsPub.isInt(Cols[j])].Value); } oGridsum.Rows[0].Cells[ClsPub.isInt(Cols[j])].Value=d.ToString(); } } catch (Exception e) { string s = ""; s= e.Message; } } //合计函数 合计全部 public void TotalAll() { string[] Cols; Int32 i, j, ColsTotal; if (ClsPub.isStrNull(sTotalCols).ToString().Trim() == "") return; //if (ogrdMain == null) // return; Cols = sTotalCols.Split(chr); ColsTotal = Cols.Length; for (j = 0; j < ColsTotal; j++) //清空 { oGridsum.Rows[0].Cells[j].Value = ""; } try { double d = 0; for (j = 0; j < ColsTotal; j++) { d = 0; for (i = 0; i < ogrdMain.Rows.Count; i++) { d = d + ClsPub.isDoule(ogrdMain.Rows[i].Cells[ClsPub.isInt(Cols[j])].Value); } oGridsum.Rows[0].Cells[ClsPub.isInt(Cols[j])].Value = d.ToString(); } } catch (Exception e) { string s = ""; s = e.Message; } } // //刷新行号 public void RefreshNoCol() { //int i, m; //i = 0; //m = 0; //for (i = 0; i < ogrdMain.RowCount; i++) //{ // m = m + 1; // ogrdMain.Rows[i].Cells[NoCol].Value = m.ToString().Trim(); //} //ogrdMain.Columns[NoCol].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; } // } }