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 DBUtility; using SQLHelper; using System.IO; namespace WorkM { public partial class MES_ProdHoursSumReport : Form //简单报表-直接有一个存储过程+简单过滤,返回生成报表 { public MES_ProdHoursSumReport() { InitializeComponent(); } public string ModName = ""; public string ModCaption = "生产工时汇总报表"; Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); #region 固定代码 private void MES_ProdHoursSumReport_Load(object sender, EventArgs e) { SetFormCaption(); oSumGrid.ogrdMain = grdMain; //初始化 new //oSumGrid.oGridsum = grdSum; dtpHBDate.Value = DateTime.Today; dtpHEDate.Value = DateTime.Today; } //设置报表名称 private void SetFormCaption() { this.Text = ModCaption; lblCaption.Text = this.Text; initGrid();//网格标题初始化 initHeadCaption();//表头初始化 } private void initGrid() { DBUtility.Xt_BaseBillFun.initGridRpt(grdMain, this.Name); } //初始化表头显示 private void initHeadCaption() { } private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; if (Fun_AllowQuery()) { initGrid(); Xt_Wait oFrm = new Xt_Wait(); oFrm.Show(); System.Windows.Forms.Application.DoEvents(); Display(); System.Windows.Forms.Application.DoEvents(); oFrm.Close(); oFrm.Dispose(); } } private void timer2_Tick(object sender, EventArgs e) { timer2.Enabled = false; timer1.Enabled = true; } private bool Fun_AllowQuery()//审核查询条件 { //if (txtHBDeptID.Text.Trim().Length == 0) //{ // MessageBox.Show(this, "请选择开始部门!", "提示"); // return false; //} return true; } private void grdMain_Paint(object sender, PaintEventArgs e) { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { Total(); } private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { Total(); } private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.Total(); } } //得到对应列 private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } private void Xs_SellOutPriceReport_KeyUp(object sender, KeyEventArgs e) { if (e.KeyValue == 13) timer1.Enabled = true; } //保存列宽 private void bclk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } //默认列宽 private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } #endregion #region 查询功能 private void cx_Click(object sender, EventArgs e) { timer1.Enabled = true; } private void Display() { ClsCN SubCn = new ClsCN(); DataSet DSet = new DataSet(); //过滤条件Dlg string sDlgWhere = ""; sDlgWhere = sDlgWhere + ",'" + dtpHBDate.Value.ToShortDateString() + "'"; sDlgWhere = sDlgWhere + ",'" + dtpHEDate.Value.ToShortDateString() + "'"; sDlgWhere = sDlgWhere + ",'" + txtHICMOBillNo.Text + "'"; if (sDlgWhere.Trim().Length > 0) { sDlgWhere = sDlgWhere.Substring(1, sDlgWhere.Length - 1); } DSet = SubCn.RunProcReturn("exec h_p_MES_ProdHoursSumReport " + sDlgWhere, "h_p_MES_ProdHoursSumReport"); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } // grdMain.DataSource = DSet.Tables[0].DefaultView; //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); // DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, "是", 0); // DBUtility.Xt_BaseBillFun.GetGrid(grdMain, this.Name); //Total(); } #endregion #region 导出功能 //引出 private void yc_Click(object sender, EventArgs e) { //BLL.ClsPub_BLL.DataGridViewToExcel2(grdMain, this.Text); DataGridViewToExcel2(grdMain, this.Text, this.Text); } /// /// 网格 导出EXCEL 网格,文件名,标题名 /// public static void DataGridViewToExcel2(DataGridView grdMain, string sText, string sBTText) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl文件(*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "数据视图导出EXCEL文件"; saveFileDialog.FileName = sText; //saveFileDialog.ShowDialog(); if (saveFileDialog.ShowDialog() == DialogResult.OK) { Stream myStream; myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); string str = ""; DateTime start = DateTime.Now; try { if (sBTText != "") { sw.WriteLine(sBTText); } //写标题 bool sFirstCol = true; for (int i = 0; i < grdMain.ColumnCount; i++) { if (i > 0 && grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { str += "\t"; } if (grdMain.Columns[i].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[i].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; str += grdMain.Columns[i].HeaderText; } } str = str.Replace("\n", ""); sw.WriteLine(str); //写内容 for (int j = 0; j < grdMain.Rows.Count; j++) { string tempStr = ""; sFirstCol = true; for (int k = 0; k < grdMain.Columns.Count; k++) { if (k > 0 && grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H" && sFirstCol != true) { tempStr += "\t"; } if (grdMain.Columns[k].HeaderText.Substring(0, 1) != "h" && grdMain.Columns[k].HeaderText.Substring(0, 1) != "H") { sFirstCol = false; if (grdMain.Rows[j].Cells[k].Value == null) { tempStr += string.Empty; } else { tempStr += grdMain.Rows[j].Cells[k].Value.ToString(); } } } tempStr = tempStr.Replace("\n", ""); sw.WriteLine(tempStr); } sw.Close(); myStream.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { sw.Close(); myStream.Close(); } MessageBox.Show("将此工作表导出为excel共耗时:" + DateTime.Now.Subtract(start).TotalMilliseconds.ToString() + "毫秒"); } } //导出 private void dc_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } #endregion #region 退出功能 private void tc_Click(object sender, EventArgs e) { this.Close(); } #endregion #region 打印功能 //打印设置 GridppReport Report; //预览 private void view_Click(object sender, EventArgs e) { Sub_SetReport(); Report.PrintPreview(true); } //打印 private void dy_Click(object sender, EventArgs e) { Sub_SetReport(); Report.Print(true); } //设置打印模版路径 private void Sub_SetReport() { Report = new GridppReport(); Report.LoadFromFile(ClsPub.AppPath + @"\Report\应收款明细表.grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } //填入单据表头信息 private void ReportBeforePostRecord()//your report?kao { //Report.FieldByName("HDateItemID").AsString = lblHDateItemID.Text; //Report.FieldByName("CusNumber").AsString = lblHCusNumber.Text; //Report.FieldByName("CusName").AsString = lblHCusName.Text; //Report.FieldByName("BeginBalance").AsString = lblHBeginBalance.Text; } //填入单据明细信息 private void ReportFetchRecordByDataTable() { //BLL.Utility.FillRecordToReport(Report, grdMain, false); } #endregion } }