Goran Bibic Ответов: 0

С печатью чека от ККМ и добавить значения элемента управления 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 строки количество, наименование, налоговая и ценовая

0 Ответов