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;
|
|
namespace APSM
|
{
|
public partial class Sc_WorkValuePayMentDeptReport : Form //简单报表-直接有一个存储过程+简单过滤,返回生成报表
|
{
|
public Sc_WorkValuePayMentDeptReport()
|
{
|
InitializeComponent();
|
}
|
public const Int16 FixCols = 4;
|
public const Int16 HMaterIDCol = 0;
|
public const Int16 HMaterNumberCol = 1;
|
public const Int16 HMaterNameCol = 2;
|
public const Int16 HMaterModelCol = 3;
|
//
|
public string ModName = "";
|
public string ModCaption = "产值与工资对比分析表(部门)";
|
|
Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum();
|
|
#region 固定代码
|
|
private void initGrid()
|
{
|
DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name);
|
}
|
|
//得到对应列
|
private int Fun_GetCol(string sColName)
|
{
|
//return DBUtility.Xt_BaseBillFun.Fun_GetCol(sColName, grdMain);
|
return 0;
|
}
|
|
private void tc_Click(object sender, EventArgs e)
|
{
|
this.Close();
|
}
|
|
//Sc_WorkValuePayMentDeptReportDlg oDlg = new Sc_WorkValuePayMentDeptReportDlg();
|
private void cx_Click(object sender, EventArgs e)
|
{
|
//oDlg.ShowDialog();
|
//if (oDlg.IsOk == 1)
|
//{
|
timer1.Enabled = true;
|
//}
|
}
|
//设置报表名称
|
private void SetFormCaption()
|
{
|
this.Text = ModCaption;
|
lblCaption.Text = this.Text;
|
initGrid();//网格标题初始化
|
initHeadCaption();//表头初始化
|
}
|
|
|
private void Frm_EasyReport_Load(object sender, EventArgs e)
|
{
|
SetFormCaption();
|
oSumGrid.ogrdMain = grdMain; //初始化 new
|
oSumGrid.oGridsum = grdSum;
|
cmbYear.Items.Clear();
|
cmbYear.Items.Add(DateTime.Today.Year - 3);
|
cmbYear.Items.Add(DateTime.Today.Year - 2);
|
cmbYear.Items.Add(DateTime.Today.Year - 1);
|
cmbYear.Items.Add(DateTime.Today.Year);
|
cmbYear.SelectedIndex = 3;
|
cmbHPeriod.Text = DateTime.Today.Month.ToString();
|
}
|
|
|
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 Xs_SellOutDayReport_KeyUp(object sender, KeyEventArgs e)
|
{
|
if (e.KeyValue == 13)
|
timer1.Enabled = true;
|
}
|
|
private void mrlk_Click(object sender, EventArgs e)
|
{
|
DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name);
|
}
|
|
private void bclk_Click(object sender, EventArgs e)
|
{
|
//保存列宽
|
DBUtility.ClsPub.SaveGridView(grdMain, this.Name, ClsPub.AppPath);
|
}
|
|
//打印
|
private void dy_Click(object sender, EventArgs e)
|
{
|
//Sub_SetReport();
|
//Report.Print(true);
|
}
|
//预览
|
private void view_Click(object sender, EventArgs e)
|
{
|
//Sub_SetReport();
|
//Report.PrintPreview(true);
|
}
|
|
#endregion
|
|
#region 界面处理
|
//初始化表头显示
|
private void initHeadCaption()
|
{
|
|
}
|
|
private bool Fun_AllowQuery()//审核查询条件
|
{
|
|
return true;
|
}
|
|
private void Display()
|
{
|
SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN();
|
DataSet DSet = new DataSet();
|
int c = 0;
|
int row = -1;
|
long HMaterID = 0;
|
//显示报表头 标题
|
|
//显示过滤条件
|
//过滤条件Dlg
|
string sDlgWhere = "";
|
sDlgWhere = sDlgWhere + "," + DBUtility.ClsPub.isLong(cmbYear.Text).ToString();
|
sDlgWhere = sDlgWhere + "," + DBUtility.ClsPub.isLong(cmbHPeriod.Text).ToString();
|
if (sDlgWhere.Trim().Length > 0)
|
{
|
sDlgWhere = sDlgWhere.Substring(1, sDlgWhere.Length - 1);
|
}
|
DSet = SubCn.RunProcReturn("exec h_p_Sc_WorkValuePayMentDeptReport " + sDlgWhere, "Gy_Czygl", ref DBUtility.ClsPub.sExeReturnInfo);
|
//生成首行标题
|
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 打印设置
|
|
//打印设置
|
GridppReport Report;
|
//设置打印模版路径
|
private void Sub_SetReport()
|
{
|
Report = new GridppReport();
|
Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\Report\生产月报分析.grf"); //here .
|
Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
|
Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
|
}
|
//填入单据表头信息
|
private void ReportBeforePostRecord()//your report?kao
|
{
|
//try
|
//{
|
// Report.FieldByName("HDateItemID").AsString = lblHDateItemID.Text;
|
// Report.FieldByName("CusNumber").AsString = lblHCusNumber.Text;
|
// Report.FieldByName("CusName").AsString = lblHCusName.Text;
|
// Report.FieldByName("BeginBalance").AsString = lblHBeginBalance.Text;
|
//}
|
//catch (Exception e)
|
//{
|
// MessageBox.Show("打印失败!表头:" + e.Message);
|
//}
|
}
|
//填入单据明细信息
|
private void ReportFetchRecordByDataTable()
|
{
|
//try
|
//{
|
// BLL.Utility.FillRecordToReport(Report, grdMain, grdMain,0,);
|
//}
|
//catch (Exception e)
|
//{
|
// MessageBox.Show("打印失败!表体:" + e.Message);
|
//}
|
}
|
#endregion
|
|
#region 数据导出
|
|
[DllImport("User32.dll", CharSet = CharSet.Auto)]
|
public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
|
private void yc_Click(object sender, EventArgs e)
|
{
|
//string saveFileName = "";
|
//bool fileSaved = false;
|
//SaveFileDialog saveDialog = new SaveFileDialog();
|
//saveDialog.DefaultExt = "xls";
|
//saveDialog.Filter = "Excel文件|*.xls";
|
//saveDialog.FileName = this.Text;
|
//saveDialog.ShowDialog();
|
//saveFileName = saveDialog.FileName;
|
//if (saveFileName.IndexOf(":") < 0) return; //被点了取消
|
////
|
//Excel.Application xlApp = new Excel.Application();
|
|
//if (xlApp == null)
|
//{
|
// MessageBox.Show(this, "无法创建Excel对象,可能您的机子未安装Excel", "提示");
|
// return;
|
//}
|
//Excel.Workbooks workbooks = xlApp.Workbooks;
|
//Excel.Workbook workbook = workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
|
//Excel.Worksheet worksheet = (Excel.Worksheet)workbook.Worksheets[1];//取得sheet1
|
////写入 标题
|
//for (int i = 0; i < grdMain.Cols; i++)
|
//{
|
// worksheet.Cells[1, i + 1] = ClsPub.isStrNull(grdMain.get_TextMatrix(0, i));
|
//}
|
////写入内容
|
//for (int r = grdMain.FixedRows; r < grdMain.Rows; r++)
|
//{
|
// for (int i = grdMain.FixedCols; i < grdMain.Cols; i++)
|
// {
|
// worksheet.Cells[r + 1, i + 1] = ClsPub.isStrNull(grdMain.get_TextMatrix(r, i));
|
// }
|
// System.Windows.Forms.Application.DoEvents();
|
//}
|
//worksheet.Columns.EntireColumn.AutoFit();//列宽自适应。
|
|
//if (saveFileName != "")
|
//{
|
// try
|
// {
|
// workbook.Saved = true;
|
// workbook.SaveCopyAs(saveFileName);
|
// fileSaved = true;
|
// }
|
// catch (Exception ex)
|
// {
|
// fileSaved = false;
|
// MessageBox.Show(this, "导出文件时出错,文件可能正被打开!\n" + ex.Message, "提示");
|
// }
|
//}
|
//else
|
//{
|
// fileSaved = false;
|
//}
|
//xlApp.Quit();
|
|
//IntPtr t = new IntPtr(xlApp.Hwnd); //得到这个句柄,具体作用是得到这块内存入口
|
//int k = 0;
|
//GetWindowThreadProcessId(t, out k); //得到本进程唯一标志k
|
//System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //得到对进程k的引用
|
//p.Kill(); //关闭进程k
|
//xlApp = null;
|
////GC.Collect();//强行销毁
|
//if (fileSaved && System.IO.File.Exists(saveFileName)) System.Diagnostics.Process.Start(saveFileName); //打开EXCEL
|
|
}
|
#endregion
|
|
|
|
private void timer2_Tick(object sender, EventArgs e)
|
{
|
timer2.Enabled = false;
|
//oDlg.ShowDialog();
|
//if (oDlg.IsOk == 1)
|
//{
|
//timer1.Enabled = true;
|
//}
|
}
|
|
|
//合计 new
|
private void Total()
|
{
|
if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0)
|
{
|
oSumGrid.SetGridsum();
|
oSumGrid.Total();
|
}
|
}
|
//合计 new
|
private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
|
{
|
Total();
|
}
|
//合计 new
|
private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e)
|
{
|
Total();
|
}
|
|
private void grdMain_Paint(object sender, PaintEventArgs e)
|
{
|
DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain);
|
}
|
|
}
|
}
|