private void butPrint_Click(object sender, System.EventArgs e) { if (textDate.errorProvider1.GetError(textDate) != "") { MsgBox.Show(this, "Please fix data entry errors first."); return; } if (IsNew) { if (!SaveToDB()) { return; } } else //not new //Only allowed to change date and bank account info, NOT attached checks. //We enforce security here based on date displayed, not date entered. //If user is trying to change date without permission: { DateTime date = PIn.Date(textDate.Text); if (Security.IsAuthorized(Permissions.DepositSlips, date, true)) { if (!SaveToDB()) { return; } } //if security.NotAuthorized, then it simply skips the save process before printing } SheetDef sheetDef = null; List <SheetDef> depositSheetDefs = SheetDefs.GetCustomForType(SheetTypeEnum.DepositSlip); if (depositSheetDefs.Count > 0) { sheetDef = depositSheetDefs[0]; SheetDefs.GetFieldsAndParameters(sheetDef); } else { sheetDef = SheetsInternal.DepositSlip(); } Sheet sheet = SheetUtil.CreateSheet(sheetDef, 0); SheetParameter.SetParameter(sheet, "DepositNum", DepositCur.DepositNum); SheetFiller.FillFields(sheet); SheetUtil.CalculateHeights(sheet, this.CreateGraphics()); FormSheetFillEdit FormSF = new FormSheetFillEdit(sheet); FormSF.ShowDialog(); DialogResult = DialogResult.OK; //this is imporant, since we don't want to insert the deposit slip twice. }