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;
}
//
}
}