巨石化纤
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

105 lines
4.6 KiB

using System;
using System.Windows;
using System.Windows.Input;
using System.Data;
using Microsoft.Reporting.WinForms;
using SSWMS.Common;
namespace SSWMS.Client
{
public partial class StaticsReportWPF : AvalonDock.DocumentContent
{
private ReportViewer report;
public StaticsReportWPF()
{
InitializeComponent();
Grid_Loaded(null, null);
}
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
this.report = this.windowsFormsHost1.Child as ReportViewer;
this.report.PrinterSettings.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(10, 20, 10, 20);
this.report.ZoomMode = ZoomMode.FullPage;
this.btnReset_Click(null, null);
}
private void GetReportData()
{
String sTitle = String.Empty;
String sRdlc = String.Empty;
String sDs = String.Empty;
DataTable dt = new DataTable();
String q_sql = String.Empty;
switch (this.cmbReportType.SelectedIndex)
{
case 0:
sTitle = "入出库汇总表";
sRdlc = "SSWMS.Client.REPORT.REPORT_GOODS_INOUT.rdlc";
sDs = "GOODS_INOUT";
q_sql = "select (case GOODS_CLASS when 'AStock' then '托盘' else '物料' end) as GOODS_CLASS,GOODS_CODE,GOODS_NAME,"
+ "cast(sum(case MANAGE_TYPE when 'In' then RECORD_LIST_QUANTITY else 0 end) as int) as IN_QUANTITY,"
+ "cast(sum(case MANAGE_TYPE when 'Out' then RECORD_LIST_QUANTITY else 0 end) as int) as OUT_QUANTITY from V_RECORD_MANAGE"
+ " where GOODS_CLASS<>'空托盘' and MANAGE_END_TIME>='" + this.datePickerFrom.Value.ToString("yyyy-MM-dd HH:mm:ss")
+ "' and MANAGE_END_TIME<='" + this.datePickerTo.Value.ToString("yyyy-MM-dd HH:mm:ss")
+ "' group by GOODS_CLASS,GOODS_CODE,GOODS_NAME order by GOODS_CLASS,GOODS_CODE";
dt = WCFChannel._I_BaseService.GetDataTable(q_sql);
break;
case 1:
sTitle = "库存汇总表";
sRdlc = "SSWMS.Client.REPORT.REPORT_GOODS_STORAGE.rdlc";
sDs = "GOODS_STORAGE";
dt = WCFChannel._I_BaseService.GetDataTable(
"select (case GOODS_CLASS when 'AStock' then '托盘' else '物料' end) as GOODS_CLASS,GOODS_CODE,GOODS_NAME,QUANTITY from V_STORAGE_LIST_TOTAL order by GOODS_CLASS,GOODS_CODE");
break;
}
this.report.LocalReport.ReportEmbeddedResource = sRdlc;
this.report.LocalReport.SetParameters(new ReportParameter[] {
new ReportParameter("ParaTitle", sTitle)
});
this.report.LocalReport.DataSources.Clear();
this.report.LocalReport.DataSources.Add(new ReportDataSource(sDs, dt));
this.report.LocalReport.DisplayName = sTitle;
this.report.RefreshReport();
}
private void btnQuery_Click(object sender, RoutedEventArgs e)
{
if (-1 == this.cmbReportType.SelectedIndex)
{
MessageDialog.ShowException("请选择报表类型");
return;
}
if (string.IsNullOrEmpty(this.datePickerFrom.Text)|| string.IsNullOrEmpty(this.datePickerTo.Text))
{
MessageDialog.ShowException("请选择日期");
return;
}
try
{
MainWindow.mainWin.Cursor = Cursors.Wait;
GetReportData();
MainWindow.mainWin.Cursor = Cursors.Arrow;
}
catch (Exception ex)
{
MainWindow.mainWin.Cursor = Cursors.Arrow;
MessageDialog.ShowException(ex);
}
}
private void btnReset_Click(object sender, RoutedEventArgs e)
{
this.cmbReportType.SelectedIndex = 0;
this.datePickerFrom.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.datePickerFrom.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.datePickerFrom.Value = Convert.ToDateTime(StringUtils.GetCurrentDay() + " 00:00:00");
this.datePickerTo.CustomFormat = "yyyy-MM-dd HH:mm:ss";
this.datePickerTo.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.datePickerTo.Value = Convert.ToDateTime(StringUtils.GetNextDay() + " 00:00:00");
}
}
}