/// <summary> /// 初始化窗体/// /// </summary> protected override void InitializeForm() { _BLL = new bllIN();// 业务逻辑层实例 _SummaryView = new DevGridView(gvSummary); _ActiveEditor = txtINNO; _DetailGroupControl = panelControl1; base.InitializeForm(); //这行代码放到初始化变量后最好 frmGridCustomize.RegisterGrid(gvSummary); DevStyle.SetGridControlLayout(gcSummary, false); //表格设置 DevStyle.SetGridControlLayout(gcDetail, true); //表格设置 DevStyle.SetSummaryGridViewLayout(gvSummary); DevStyle.SetDetailGridViewLayout(gvDetail); BindingSummaryNavigator(controlNavigatorSummary, gcSummary); //Summary导航条. BindingSummarySearchPanel(btnQuery, btnEmpty, gcFindGroup); gcDetail.EmbeddedNavigator.ButtonClick += new NavigatorButtonClickEventHandler(this.OnEmbeddedNavigatorButtonClick); //表格按钮事件 gvDetail.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(OnCellValueChanged); //表格值改变 gvSummary.DoubleClick += new EventHandler(OnGridViewDoubleClick); //主表DoubleClict txt_DocDateTo.DateTime = DateTime.Today; //查询条件 DataBinder.BindingLookupEditDataSource(txtDocUser, DataDictCache.Cache.User, TUser.UserName, TUser.Account); DataBinder.BindingLookupEditDataSource(txtAppUser, DataDictCache.Cache.User, TUser.UserName, TUser.Account); DataBinder.BindingLookupEditDataSource(txtDeliver, DataDictCache.Cache.User, TUser.UserName, TUser.Account);//交货人,也可以用tb_Person表取数 DataBinder.BindingLookupEditDataSource(txtLocationID, DataDictCache.Cache.Location, tb_Location.LocationName, tb_Location.LocationID); DataBinder.BindingLookupEditDataSource(txtDepartment, DataDictCache.Cache.DepartmentData, tb_CommonDataDict.NativeName, tb_CommonDataDict.DataCode); DataBinder.BindingLookupEditDataSource(colLocationID.ColumnEdit as RepositoryItemLookUpEdit, DataDictCache.Cache.Location, tb_Location.LocationName, tb_Location.LocationID); (colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).ButtonClick += new ButtonPressedEventHandler(OnStockCode_ButtonClick); (colD_ProductCode.ColumnEdit as RepositoryItemButtonEdit).Validating += new CancelEventHandler(OnStockCode_Validating); _BLL.GetBusinessByKey("-", true); //加载一个空的业务对象. ShowSummaryPage(true); //一切初始化完毕后显示SummaryPage }
// 由销售报价单生成销售发票 public override bool Generate(bllBaseBusiness targetBLL) { if (targetBLL == null) { throw new Exception("目标窗体的业务类没有实例化!"); } if (_TargetFormType == null) { throw new Exception("没有指定目标窗体类型!"); } if (_TargetFormName == null) { throw new Exception("没有指定目标窗体名称!"); } bllIN sourceBLL = new bllIN(); DataSet sourceData = sourceBLL.GetBusinessByKey(_DocNo, false); //获取来源数据 DataTable targetMaster = targetBLL.BusinessTables[0]; //获取目标单据的主表对象 DataTable targetDetail = targetBLL.BusinessTables[1]; //获取目标单据的明细表对象 DataRow target = targetMaster.NewRow(); DataRow source = sourceData.Tables[0].Rows[0]; targetMaster.Rows.Clear();//清除主表一条记录 targetMaster.Rows.Add(target); //下面的代码将两张表关联的数据赋值 target[tb_IO.CustomerCode] = source[tb_IN.SupplierCode]; target[tb_IO.CustomerName] = source[tb_IN.SupplierName]; target[tb_IO.Deliver] = source[tb_IN.Deliver]; target[tb_IO.Department] = source[tb_IN.Department]; target[tb_IO.DocDate] = source[tb_IN.DocDate]; target[tb_IO.DocUser] = source[tb_IN.DocUser]; target[tb_IO.LocationID] = source[tb_IN.LocationID]; target[tb_IO.Remark] = source[tb_IN.Remark]; target[tb_IO.LastUpdateDate] = DateTime.Today; target[tb_IO.LastUpdatedBy] = Loginer.CurrentUser.Account; target[tb_IO.CreatedBy] = Loginer.CurrentUser.Account; target[tb_IO.CreationDate] = DateTime.Today; //复制明细表数据 targetDetail.Rows.Clear(); foreach (DataRow detail in sourceData.Tables[1].Rows) { DataRow temp = targetDetail.NewRow(); temp[tb_IOs.CreatedBy] = Loginer.CurrentUser.Account; temp[tb_IOs.CreationDate] = DateTime.Today; temp[tb_IOs.LastUpdateDate] = DateTime.Today; temp[tb_IOs.LastUpdatedBy] = Loginer.CurrentUser.Account; temp[tb_IOs.ProductCode] = detail[tb_INs.ProductCode]; temp[tb_IOs.ProductName] = detail[tb_INs.ProductName]; temp[tb_IOs.Quantity] = detail[tb_INs.Quantity]; temp[tb_IOs.Queue] = detail[tb_INs.Queue]; temp[tb_IOs.Remark] = detail[tb_INs.Remark]; targetDetail.Rows.Add(temp); } _IsSuccess = true; return(_IsSuccess); }