#region
using System;
using System.Data;
using System.Drawing;
using System.IO;
using System.Windows.Forms;
using CSFrameworkV5.Business;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Library;
using CSFrameworkV5.Library.CommonClass;
using CSFrameworkV5.Models;
#endregion
namespace CSFrameworkV5.SystemModule
{
///
/// Reports的资料管理窗体,由代码生成器(Code Generator)自动生成
///
public partial class frmReports : frmBaseDataDictionary
{
private bllReports _BLLInstance;
public frmReports()
{
InitializeComponent();
}
//设计报表
private void btnDesign_Click(object sender, EventArgs e)
{
var tmpFile = "";
try
{
var bs = (byte[])_BLLInstance.DataBinderRow[sys_Reports.Data];
if (bs == null) bs = new byte[] { };
//写入到临时文件
tmpFile = Path.Combine(Application.StartupPath + "\\Reports",
DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".frx");
File.WriteAllBytes(tmpFile, bs);
//打开报表设计器
ReportLib.DesignReport(tmpFile, bs.Length == 0);
//保存报表数据
_BLLInstance.DataBinderRow[sys_Reports.Data] =
File.ReadAllBytes(tmpFile);
}
catch (Exception ex)
{
Msg.Warning(ex.Message);
}
//删除临时文件
if (File.Exists(tmpFile)) File.Delete(tmpFile);
}
private void btnEmpty_Click(object sender, EventArgs e)
{
ClearContainerEditorText(pnlSearch);
}
private void btnQuery_Click(object sender, EventArgs e)
{
//搜索数据
try
{
frmWaitingEx.ShowMe(this);
var dt = _BLLInstance.Query(
ConvertEx.ToString(txt_ReportID.EditValue),
ConvertEx.ToString(txt_ReportTitle.EditValue));
DoBindingSummaryGrid(dt); //绑定主表的Grid
ShowSummaryPage(true); //显示Summary页面.
}
finally
{
frmWaitingEx.HideMe(this);
}
if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!");
}
private void btnSaveAs_Click(object sender, EventArgs e)
{
AssertFocusedRow();
var bs = _BLLInstance.DataBinderRow[sys_Reports.Data] as byte[];
if (bs != null && bs.Length > 0)
{
var dlg = new SaveFileDialog();
dlg.Filter = ".NET FastReport Files|*.frx";
if (dlg.ShowDialog() == DialogResult.OK)
{
File.WriteAllBytes(dlg.FileName, bs);
Msg.ShowInformation("保存成功!");
}
}
else
{
Msg.Warning("没有报表内容!");
}
}
private void btnUpload_Click(object sender, EventArgs e)
{
var dlg = new OpenFileDialog();
dlg.Filter = ".NET FastReport Files|*.frx";
if (dlg.ShowDialog() == DialogResult.OK)
{
var bs = File.ReadAllBytes(dlg.FileName);
if (string.IsNullOrEmpty(txtReportID.Text))
_BLLInstance.DataBinderRow[sys_Reports.ReportID] =
Path.GetFileName(dlg.FileName);
if (string.IsNullOrEmpty(txtReportTitle.Text))
_BLLInstance.DataBinderRow[sys_Reports.ReportTitle] =
Path.GetFileName(dlg.FileName);
_BLLInstance.DataBinderRow[sys_Reports.Data] = bs;
ShowSize(bs);
}
}
protected override void
ButtonStateChanged(UpdateType currentState) //按钮状态改变时触发的事件
{
base.ButtonStateChanged(currentState);
txtReportID.Properties.ReadOnly = true; //修改状态下不允许修改主键的数据
txtLastUpdateDate.Properties.ReadOnly = true; //禁止修改
txtLastUpdatedBy.Properties.ReadOnly = true; //禁止修改
btnUpload.Enabled = IsAddOrEditMode;
btnDesign.Enabled = IsAddOrEditMode;
//btnSaveAs.Enabled = this.IsAddOrEditMode;
txxtFlag.Properties.ReadOnly = true;
}
public override void DoAdd(IButtonInfo sender)
{
base.DoAdd(sender);
if (IsAddMode) SetEditorBindingValue(txtReportID, "*自动生成*", true);
}
///
/// 绑定修改页面中所有输入框的数据源
///
/// 数据源
protected override void DoBindingSummaryEditor(DataTable summary)
{
DoBindingEditorPanel(pcDetailEditor, summary);
var bs = _BLLInstance.DataBinderRow[sys_Reports.Data] as byte[];
ShowSize(bs);
}
public override void DoSave(IButtonInfo sender)
{
//调用基类提供的保存方法
base.DoSaveEx(sender);
}
private void frmReports_Load(object sender, EventArgs e)
{
InitializeForm(); //自定义初始化操作
}
protected override void InitializeForm()
{
_SummaryView =
new DevGridView(
gvSummary); //实例化数据主视图,此接口可支持不同的主视图,比如Grid,TreeList.
//_ActiveEditor = txtReportID;//进入修改状态,显示第一个焦点的输入框,可以不设置
//_KeyEditor = txtReportID;//主键字段输入框,可以不设置
_DetailGroupControl = pcDetailEditor; //修改页面所有输入框的容器
_BLL = new bllReports(); //实例化基类业务逻辑层
_BLLInstance = _BLL as bllReports; //本窗体的业务层对象引用
base.InitializeForm();
DataBinderTools.BoundCheckEdit(repositoryItemCheckEdit1);
}
private void ShowSize(byte[] bs)
{
if (bs == null)
{
txxtFlag.Text = "您没有选择报表哦~~";
txxtFlag.Properties.Appearance.ForeColor = Color.DarkRed;
}
else
{
if (bs.Length < 1024)
{
txxtFlag.Text = bs.Length.ToStringEx() + "字节(bytes)";
}
else
{
var i = bs.Length / 1024;
txxtFlag.Text = i.ToStringEx() + "KB";
}
txxtFlag.Properties.Appearance.ForeColor = Color.Black;
}
}
protected override void ShowSummary()
{
//重写此方法打开窗体时不显示任何数据
}
//检查主表数据完整性
protected override bool ValidatingData()
{
//if (ConvertEx.ToString(txtReportID.EditValue).Trim() == String.Empty)
//{
// Msg.Warning("ReportID不能为空!");
// txtReportID.Focus();
// return false;
//}
if (ConvertEx.ToString(txtReportTitle.EditValue).Trim() ==
string.Empty)
{
Msg.Warning("ReportTitle不能为空!");
txtReportTitle.Focus();
return false;
}
return true;
}
#region 自动生成的事件或方法的主体部份
#endregion
}
}