#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 } }