С печатью чека от ККМ и добавить значения элемента управления DataGrid с#
Datagrid rows number, name, tax and price Need to add values on receipt from datagrid to PrintReceiptPage Some help?
Что я уже пробовал:
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Printing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace POS_TEST { public partial class Form1 : Form { public static string barKod = ""; public static string osobaIme = ""; public static string datumUlaska = ""; public static string osobaFirma = ""; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { BarCodePrint.PrintReceiptForTransaction(barKod, osobaComboBox.Text, vrijemePrijavePicker.Value.ToString("dd.MM.yyyy. HH:mm:00"), firmaComboBox.Text); } private static void PrintReceiptPage(object sender, PrintPageEventArgs e) { } class BarCodePrint { public static string barKod = ""; public static string osobaIme = ""; public static string datumUlaska = ""; public static string osobaFirma = ""; public static void PrintReceiptForTransaction(string bK, string osoba, string datum, string firma) { barKod = bK; osobaIme = osoba; datumUlaska = datum; osobaFirma = firma; PrintDocument recordDoc = new PrintDocument(); recordDoc.DocumentName = "BarKod gosta"; recordDoc.PrintPage += new PrintPageEventHandler(BarCodePrint.PrintReceiptPage); // function below recordDoc.PrintController = new StandardPrintController(); // hides status dialog popup // Comment if debugging PrinterSettings ps = new PrinterSettings(); ps.PrinterName = "POS-58"; recordDoc.PrinterSettings = ps; recordDoc.Print(); // -------------------------------------- // Uncomment if debugging - shows dialog instead //PrintPreviewDialog printPrvDlg = new PrintPreviewDialog(); //printPrvDlg.Document = recordDoc; //printPrvDlg.Width = 1200; //printPrvDlg.Height = 800; //printPrvDlg.ShowDialog(); // -------------------------------------- recordDoc.Dispose(); } private static void PrintReceiptPage(object sender, PrintPageEventArgs e) { float x = 10; float y = 5; float width = 170.0F; // max width I found through trial and error float height = 0F; Font drawFontArial12Bold = new Font("Arial", 10, FontStyle.Bold); Font drawFontArial11Regular = new Font("Arial", 8, FontStyle.Regular); Font drawFontArial7Regular = new Font("Arial", 8, FontStyle.Regular); Font drawFontArial7Italic = new Font("Arial", 8, FontStyle.Italic); SolidBrush drawBrush = new SolidBrush(Color.Black); // Set format of string. StringFormat drawFormatCenter = new StringFormat(); drawFormatCenter.Alignment = StringAlignment.Center; StringFormat drawFormatLeft = new StringFormat(); drawFormatLeft.Alignment = StringAlignment.Near; StringFormat drawFormatRight = new StringFormat(); drawFormatRight.Alignment = StringAlignment.Far; // Draw string to screen. string text = "T.R. LAD S.P."; e.Graphics.DrawString(text, drawFontArial12Bold, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial12Bold).Height; text = "22. BRIGADE VRS, Kotor Varoš"; e.Graphics.DrawString(text, drawFontArial7Italic, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial7Italic).Height; text = "- MALOPRODAJNI RAČUN -\n"; e.Graphics.DrawString(text, drawFontArial11Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial11Regular).Height; text = " "; e.Graphics.DrawString(text, drawFontArial11Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial11Regular).Height; text = " "; e.Graphics.DrawString(text, drawFontArial11Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial11Regular).Height; text = " "; e.Graphics.DrawString(text, drawFontArial11Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial11Regular).Height; // ... and so on //BarcodeDraw bdraw = BarcodeDrawFactory.GetSymbology(BarcodeSymbology.Code128); //Image barCodeImeage = bdraw.Draw(barKod, 60); //Console.WriteLine(x + " " + y + " " + width + " " + height); //e.Graphics.DrawImage(barCodeImeage, new RectangleF(x, y, width, 60)); //y += 65; //Console.WriteLine(barCodeImeage.Size); text = osobaIme; e.Graphics.DrawString(text, drawFontArial11Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial11Regular).Height; //text = osobaFirma; //e.Graphics.DrawString(text, drawFontArial7Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); //y += e.Graphics.MeasureString(text, drawFontArial7Regular).Height; text = "----------------------------------------"; e.Graphics.DrawString(text, drawFontArial7Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial7Regular).Height; text = "Datum: " + DateTime.Now.ToString(); e.Graphics.DrawString(text, drawFontArial7Italic, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial7Italic).Height; text = "----------------------------------------"; e.Graphics.DrawString(text, drawFontArial7Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial7Regular).Height; text = "HVALA VAM NA POSJETI"; e.Graphics.DrawString(text, drawFontArial7Regular, drawBrush, new RectangleF(x, y, width, height), drawFormatCenter); y += e.Graphics.MeasureString(text, drawFontArial7Regular).Height; } } private void roba_uslugeBindingNavigatorSaveItem_Click(object sender, EventArgs e) { this.Validate(); this.roba_uslugeBindingSource.EndEdit(); this.tableAdapterManager.UpdateAll(this.lAD_2019DataSet); } private void Form1_Load(object sender, EventArgs e) { // TODO: This line of code loads data into the 'lAD_2019DataSet.roba_usluge' table. You can move, or remove it, as needed. this.roba_uslugeTableAdapter.Fill(this.lAD_2019DataSet.roba_usluge); } } }
Richard MacCutchan
Какая-то помощь? С помощью чего? Вам нужно объяснить, где в вашем коде возникает проблема, и точные детали того, что не работает.
Goran Bibic
private static void PrintReceiptPage
Здесь нужно поставить значения number, name, tax и price из datagrid
Какая-то помощь?
Gerry Schmitz
"Сетка" и "данные" - это не одно и то же.
Моя собака смотрит телевизор; я смотрю "программу" (то есть данные). Вы не говорите кому-то просто "смотреть телевизор".
Что / где ваши "данные"?
j snooze
Как только ваши данные окажутся в datagrid, вы обычно можете перебирать строки в datagrid и захватывать значения ячеек по столбцам.
Просто поищите в интернете для циклического перебора строк и столбцов datagrid и вы получите что-то вроде
foreach(строка DataGridRow в MyDataGridName.Rows)
{
строка[columnIndex или Fieldname].Ценность
}
Это должно помочь вам пройти через сетку, чтобы захватить значения. Очевидно, что это не точный синтаксис, а просто какой-то псевдокод, который поможет вам начать работу. Я также предполагаю, что данные уже находятся в datagrid, вы просто хотите знать, как добраться до них, чтобы поместить их в квитанцию.
Goran Bibic
Да. То право. Данные находятся в datagrid, просто нужно добавить на счет-фактуру
Данные столбца в DataGrid строки количество, наименование, налоговая и ценовая