private void butPostcards_Click(object sender, System.EventArgs e) { if (gridMain.Rows.Count < 1) { MessageBox.Show(Lan.g(this, "There are no Patients in the Recall table. Must have at least one to print.")); return; } if (gridMain.SelectedIndices.Length == 0) { gridMain.SetSelected(true); } int[] PatNums; PatNums = new int[gridMain.SelectedIndices.Length]; for (int i = 0; i < PatNums.Length; i++) { PatNums[i] = PIn.PInt(table.Rows[gridMain.SelectedIndices[i]]["PatNum"].ToString()); //((RecallItem)gridMain.Rows[gridMain.SelectedIndices[i]].Tag).PatNum; } if (MsgBox.Show(this, true, "Make a commlog entry of 'postcard sent' for all of the selected patients?")) { for (int i = 0; i < PatNums.Length; i++) { //make commlog entries for each patient Commlogs.InsertForRecallPostcard(PatNums[i]); } } AddrTable = Recalls.GetAddrTable(PatNums, checkGroupFamilies.Checked); pagesPrinted = 0; patientsPrinted = 0; pd = new PrintDocument(); pd.PrintPage += new PrintPageEventHandler(this.pdCards_PrintPage); pd.OriginAtMargins = true; pd.DefaultPageSettings.Margins = new Margins(0, 0, 0, 0); if (PrefB.GetInt("RecallPostcardsPerSheet") == 1) { pd.DefaultPageSettings.PaperSize = new PaperSize("Postcard", 400, 600); pd.DefaultPageSettings.Landscape = true; } else if (PrefB.GetInt("RecallPostcardsPerSheet") == 3) { pd.DefaultPageSettings.PaperSize = new PaperSize("Postcard", 850, 1100); } else //4 { pd.DefaultPageSettings.PaperSize = new PaperSize("Postcard", 850, 1100); pd.DefaultPageSettings.Landscape = true; } int totalPages = (int)Math.Ceiling((double)AddrTable.Rows.Count / (double)PrefB.GetInt("RecallPostcardsPerSheet")); printPreview = new OpenDental.UI.PrintPreview(PrintSituation.Postcard, pd, totalPages); printPreview.ShowDialog(); }