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_ProcPlanSortBillReport : Form //简单报表-直接有一个存储过程+简单过滤,返回生成报表
|
{
|
public Sc_ProcPlanSortBillReport()
|
{
|
InitializeComponent();
|
}
|
public string ModName = "";
|
public string ModCaption = "生产计划单查询";
|
|
|
#region 固定代码
|
|
private void initGrid()
|
{
|
Sc_ICMOSortBillFun.initGridList(grdMain, this.Name);
|
}
|
//得到对应列
|
private int Fun_GetCol(string sColName)
|
{
|
return Sc_ICMOSortBillFun.Fun_GetCol(sColName, grdMain);
|
}
|
|
private void tc_Click(object sender, EventArgs e)
|
{
|
this.Close();
|
}
|
|
//Sc_ProcPlanSortBillReportDlg oDlg = new Sc_ProcPlanSortBillReportDlg();
|
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();
|
}
|
|
|
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)
|
{
|
Sc_ICMOSortBillFun.DefaultGrid(grdMain, this.Name);
|
}
|
|
private void bclk_Click(object sender, EventArgs e)
|
{
|
Sc_ICMOSortBillFun.SaveGrid(grdMain, this.Name);
|
}
|
|
//打印
|
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()//审核查询条件
|
{
|
//if (txtHBDeptID.Text.Trim().Length == 0)
|
//{
|
// MessageBox.Show(this, "请选择开始部门!", "提示");
|
// return false;
|
//}
|
return true;
|
}
|
|
private void Display()
|
{
|
SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN();
|
DataSet DSet ;
|
//显示报表头 标题
|
|
//停止GRID刷新 加快速度
|
grdMain.Redraw = VSFlex7.RedrawSettings.flexRDNone;
|
grdMain.Rows = grdMain.FixedRows;
|
//过滤条件Dlg
|
string sDlgWhere = "";
|
//sDlgWhere = sDlgWhere + ",2011";
|
//sDlgWhere = sDlgWhere + ",10";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.cmbYear.Text.ToString() + "'";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.cmbPeriod.Text.ToString() + "'";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.txtHBMaterID.Text.Trim() + "'";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.txtHEMaterID.Text.Trim() + "'";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.txtHBSourceID.Text.Trim() + "'";
|
//sDlgWhere = sDlgWhere + ",'" + oDlg.txtHESourceID.Text.Trim() + "'";
|
if (sDlgWhere.Trim().Length > 0)
|
{
|
sDlgWhere = sDlgWhere.Substring(1, sDlgWhere.Length - 1);
|
}
|
//
|
DSet = SubCn.RunProcReturn("exec h_p_Sc_ProcPlanSortBillReport " + sDlgWhere, "Gy_Czygl");
|
//生成首行标题
|
if (DSet==null || DSet.Tables[0].Rows.Count == 0)
|
{
|
grdMain.Redraw = VSFlex7.RedrawSettings.flexRDBuffered;
|
return;
|
}
|
Sc_ICMOSortBillFun.DisplayGrid(grdMain, DSet);
|
Sc_ICMOSortBillFun.GridTotal(grdMain, DSet);
|
//合计
|
//
|
Sc_ICMOSortBillFun.GetGrid(grdMain, this.Name);
|
//恢复grid刷新
|
grdMain.Redraw = VSFlex7.RedrawSettings.flexRDBuffered;
|
}
|
|
#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
|
{
|
//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, grdMain,0,);
|
}
|
#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;
|
//}
|
}
|
|
private void grdMain_DblClick(object sender, EventArgs e)
|
{
|
|
}
|
}
|
}
|