コード例 #1
0
        private void btnGen_Click(object sender, EventArgs e)
        {
            if (ValidateWizard())
            {
                //查找目标窗体是否打开
                Form targetForm = MdiTools.FindForm(this.CurrentItem.TargetFormType.FullName);

                if (targetForm == null)                                                             //没有打开目标窗体,程序自动打开
                {
                    IMdiForm mainForm = MdiTools.MdiMainForm as IMdiForm;                           //MDI主窗体
                    targetForm = MdiTools.OpenChildForm(mainForm, this.CurrentItem.TargetFormType); //打开目标窗体
                }
                else
                {
                    if (!(targetForm is IBusinessSupportable))
                    {
                        Msg.Warning("不支持生成目标窗体的数据!");
                        return; //不是MDI子窗体,退出
                    }

                    if ((targetForm as IDataOperatable).DataChanged)
                    {
                        Msg.Warning("目标窗体 '" + this.CurrentItem.TargetFormName +
                                    "' 正在修改数据!请保存或取消修改后才能生成!");
                        return;
                    }
                    targetForm.Activate(); //目标窗体已打开,激活显示
                }

                //调用目标窗体的新增方法
                (targetForm as IDataOperatable).DoAdd(null);

                //开始生成单据
                _GenSuccess = this.CurrentItem.Generate((targetForm as frmBaseBusinessForm).BLL);

                if (_GenSuccess)
                {
                    Msg.ShowInformation("生成单据成功,请修改相关数据然后保存!");
                    this.Close();
                    targetForm.Activate();//显示目标窗体
                }
                else
                {
                    Msg.ShowError("生成单据失败!");
                }
            }
        }