using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using gregn6Lib; using Pub_Class; namespace BLL { public partial class Xt_UpDownBillList : Form { public Xt_UpDownBillList() { InitializeComponent(); } //================= public string sSQL_Out = ""; public string BillType; public string FrmName; //================== public string ViewName = "Xt_UpDownBillList"; public string ModName = "Xt_UpDownBillList"; public string ModCaption = "Xt_UpDownBillList"; public const string ModRightName = ""; public const string ModRightNameEdit = ModRightName + "_Edit"; public const string ModRightNameCheck = ModRightName + "_Check"; public const string ModRightNameClose = ModRightName + "_Close"; public const string ModRightNameDelete = ModRightName + "_Delete"; Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); //定义一个合计类 list 界面上复制一个网格SUM //================================== private void initGrid() { // grdMain.RowTemplate.Height = 18; grdMain.RowTemplate.MinimumHeight = 18; grdMain.ColumnHeadersHeight = 35; grdMain.RowHeadersVisible = false; grdMain.ColumnHeadersVisible = true; grdMain.ColumnCount = 0; grdMain.RowCount = 0; //格式化 //表格设置 grdMain.RowsDefaultCellStyle.SelectionForeColor = Color.White; grdMain.RowsDefaultCellStyle.SelectionBackColor = Color.DarkCyan; grdMain.DefaultCellStyle.SelectionBackColor = Color.DarkCyan; grdMain.DefaultCellStyle.SelectionForeColor = Color.White; grdMain.RowsDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; grdMain.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; grdMain.SelectionMode = DataGridViewSelectionMode.FullRowSelect; grdMain.ReadOnly = true; grdMain.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing; //允许用户调整列宽 grdMain.EnableHeadersVisualStyles = false; //网格标题 样式 grdMain.AllowUserToAddRows = false; //是否允许自增--否 grdMain.AllowUserToDeleteRows = false; //是否允许删除--否 grdMain.AllowUserToResizeColumns = true; //允许调整列宽--是 grdMain.AllowUserToResizeRows = false; //允许调整行高--否 grdMain.AllowUserToOrderColumns = false; //允许 拖拽列 grdMain.BackgroundColor = Color.White; grdMain.GridColor = Color.SeaShell; //网格线颜色 grdMain.ShowCellToolTips = true; grdMain.CellBorderStyle = DataGridViewCellBorderStyle.RaisedVertical; // Pub_Class.ClsPub.GetGridView(grdMain, this.Name,ClsPub.AppPath);//设置列宽 } // private void Display() { SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; //过滤条件 sSql = sSQL_Out + sWhere + " order by 单据号 desc,hsubid "; // DSet = SubCn.RunProcReturn(sSql, "xt_xtgnb", ref Pub_Class.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + Pub_Class.ClsPub.sExeReturnInfo); return; } // for (int i = 0; i < grdMain.ColumnCount; i++) { grdMain.Columns[i].Frozen = false; } // grdMain.DataSource = DSet.Tables[0].DefaultView; // //设置合计列 list string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); //合计 //grdMain.Rows.Add(); //加载列宽,隐藏列 for (int i = 0; i < grdMain.ColumnCount; i++) { grdMain.Columns[i].Width = 100; grdMain.Columns[i].SortMode = DataGridViewColumnSortMode.Automatic; if (grdMain.Columns[i].HeaderText.Substring(0, 1).ToLower() == "h") { grdMain.Columns[i].Visible = false; } else { grdMain.Columns[i].Visible = true; } } ClsPub.GetGridView(this.grdMain, this.Name,ClsPub.AppPath); //画线 GraphLine(); // } //合计 list private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.Total(); } } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; Display(); } private void tc_Click(object sender, EventArgs e) { this.Close(); } private void sx_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void dj_Click(object sender, EventArgs e) { Sub_ShowBill(); } private void Sub_ShowBill() { Int64 lngBillKey = 0; string sHBillType = ""; if (grdMain.CurrentRow == null) return; lngBillKey = ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); sHBillType = ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("单据类型")].Value); if (lngBillKey == 0) return; ClsPub_BLL.Sub_ShowRelationBill(sHBillType); timer1.Enabled = true; } private Int32 Fun_GetCol(string sCol) { for (int c = 0; c < grdMain.ColumnCount; c++) { if (Pub_Class.ClsPub.isStrNull(grdMain.Columns[c].HeaderText).ToUpper().Trim() == sCol.Trim().ToUpper()) { return c; } } return 0; } private void Xt_UpDownBillList_Load(object sender, EventArgs e) { // this.Text = ModCaption; lblCaption.Text = ModCaption; // oSumGrid.ogrdMain = grdMain; //初始化 list oSumGrid.oGridsum = grdSum; //list // initGrid(); } private void cx_Click(object sender, EventArgs e) { Display(); } private void xz_Click(object sender, EventArgs e) { // } private void sc_Click(object sender, EventArgs e) { // } private void timer2_Tick(object sender, EventArgs e) { timer2.Enabled = false; timer1.Enabled = true; } private void bclk_Click(object sender, EventArgs e) { //保存列宽 Pub_Class.ClsPub.SaveGridView(grdMain, this.Name, ClsPub.AppPath); } private void mrlk_Click(object sender, EventArgs e) { Pub_Class.ClsPub.DefaultGridView(grdMain); //参数解释 开始列 ,结束列,是否以最大列宽为准,最小列宽 Pub_Class.ClsPub.SaveGridView(grdMain, this.Name, ClsPub.AppPath); } //划线 private void GraphLine() { //找到主表ID和子表ID的 范围 int MainIDCol = Fun_GetCol("hmainid"); int SubIDCol = Fun_GetCol("hsubid"); long HMainID = 0; bool b = false; long n = 0; //循环所有行 for (int i = 0; i < grdMain.RowCount; i++) { if (HMainID == 0) { HMainID = ClsPub.isLong(grdMain.Rows[i].Cells[MainIDCol].Value); n++; } else { //if (frmCondition.cmbHComplete.Text == "否") //{ // if (HMainID == ClsPub.isLong(grdMain.Rows[i].Cells[MainIDCol].Value)) // { // //区域性清空 // SetDataGrid(i, MainIDCol + 1, i, SubIDCol - 1, ""); // } // else // { // HMainID = ClsPub.isLong(grdMain.Rows[i].Cells[MainIDCol].Value); // b = !b; // n++; // } //} //else //{ HMainID = ClsPub.isLong(grdMain.Rows[i].Cells[MainIDCol].Value); b = !b; n++; //} } if (b) { grdMain.Rows[i].DefaultCellStyle.BackColor = Color.White; } else { grdMain.Rows[i].DefaultCellStyle.BackColor = Color.Lavender; } } //显示 lbldj.Text = "查询出 " + n.ToString() + " 张单据"; lbljl.Text = "共有 " + grdMain.RowCount.ToString() + " 条记录"; } //设置网格 private void SetDataGrid(int BRow, int BCol, int ERow, int ECol, string sText) { for (int i = BRow; i <= ERow; i++) { for (int j = BCol; j <= ECol; j++) { grdMain.Rows[i].Cells[j].Value = DBNull.Value; } } } //审核 private void sh_Click(object sender, EventArgs e) { // } //反审核 private void qsh_Click(object sender, EventArgs e) { // } private void grdMain_DoubleClick(object sender, EventArgs e) { Sub_ShowBill(); } private void grdMain_Paint(object sender, PaintEventArgs e) { GraphicsGrid(); } private void GraphicsGrid() { Graphics g = grdMain.CreateGraphics(); Pen p = new Pen(Color.Black); p.Width = 1; int lWidth; if (grdMain.RowHeadersVisible) lWidth = grdMain.RowHeadersWidth; else lWidth = 0; foreach (DataGridViewColumn col in grdMain.Columns) { lWidth += col.Width; } int sWidth; if (grdMain.ColumnHeadersVisible) sWidth = grdMain.ColumnHeadersHeight; else sWidth = 0; foreach (DataGridViewRow col in grdMain.Rows) { sWidth += col.Height; if (col.Index == grdMain.RowCount - 1) { g.DrawLine(p, new Point(0, sWidth), new Point(lWidth, sWidth)); } } } #region 数据导出 #endregion private void grdMain_DoubleClick_1(object sender, EventArgs e) { Sub_ShowBill(); } private void grdMain_Paint_1(object sender, PaintEventArgs e) { GraphicsGrid(); } private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) //list 先定义事件 { Total(); } private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) //list 先定义事件 { Total(); } private void grdMain_RowHeadersWidthChanged(object sender, EventArgs e) //list 先定义事件 { Total(); } private void dc_Click(object sender, EventArgs e) { // } #region //打印设置 GridppReport Report; private void set_Click(object sender, EventArgs e) { //选择打印模板 Gy_OpenTmp oFrm = new Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); } private void dy_Click(object sender, EventArgs e) { //选择打印模板 Gy_OpenTmp oFrm = new Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.Print(true); } } //预览 private void yl_Click(object sender, EventArgs e) { //选择打印模板 Gy_OpenTmp oFrm = new Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(true); } } private void Sub_SetReport(string sOpenTmp) { //判断行数 // Report = new GridppReport(); Report.LoadFromFile(ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } private void ReportFetchRecordByDataTable() { DataTable dt = new DataTable(); Utility.FillRecordToReport(Report, grdMain, dt, Fun_GetCol("HMaterID")); } #endregion private void scha_Click(object sender, EventArgs e) { ClsPub_BLL.UpBillShow(grdMain, true, this.MdiParent); } private void xcha_Click(object sender, EventArgs e) { ClsPub_BLL.UpBillShow(grdMain, false, this.MdiParent); } } }