использование значений datagridview в строке для печати - PullRequest
0 голосов
/ 15 мая 2018

Я создал систему POS, в форме продаж пользователь добавляет товары в datagridview, а затем он сохраняется в базе данных.

В настоящее время я делаю кнопку сохранения, чтобы распечатать квитанцию, но яЯ хочу добавить эти элементы таблицы данных в квитанцию, но, видимо, я сделал это неправильно

это строки для печати

string welcome = "Thank You For Visiting Dulabk";
string InvoiceNo = txtInvoiceNo.Text;
string InvoiceDate = dateTimePicker1.Value.ToLongDateString();
string list = dataGridView1.Rows[i].Cells[1].Value, dataGridView1.Rows[i].Cells[3].Value, dataGridView1.Rows[i].Cells[0].Value;

Bitmap bitm = new Bitmap(list.Length * 30, 90);

            using (Graphics graphic = Graphics.FromImage(bitm))

, поэтому, вероятно, значения таблицы данных должны быть записаны иначе, я полагаю

Я использую оператор for для ввода в базу данных

for (int i = 0; i<dataGridView1.Rows.Count; i++ )
        {
            OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=TS-POS.accdb");
            OleDbCommand cmd = new OleDbCommand("INSERT INTO Sales (InvoiceNo,InvoiceDate, Pname, Pprice, Bcode, Staff) VALUES ('" + txtInvoiceNo.Text + "','" + dateTimePicker1.Value + "', '" + dataGridView1.Rows[i].Cells[1].Value + "', '" + dataGridView1.Rows[i].Cells[3].Value + "', '" + dataGridView1.Rows[i].Cells[0].Value + "', '" + lblUser.Text + "')", conn);
           // cmd.Parameters.AddWithValue("@staff", OleDbType.VarChar).Value = lblUser.Text;
            conn.Open();
            cmd.ExecuteNonQuery(); 
            conn.Close();

        }

Ok Last Update, теперь печатаю всю информацию, но у меня проблемы со всей печатью в одной строке кода ниже. Я пытался использовать pointf, но это не помогло.

 private void printready()
        {


            stri

ng welcome = "Thank You For Visiting Dulabk";
            string InvoiceNo = txtInvoiceNo.Text;
            string InvoiceDate = dateTimePicker1.Value.ToLongDateString();
            Bitmap bitm = new Bitmap(welcome.Length * 30, 90);

            using (Graphics graphic = Graphics.FromImage(bitm))
            {


                Font newfont = new Font("Arial Black", 8);
                Font newfont2 = new Font("Arial Black", 10);
                PointF point = new PointF(40f, 2f);
                SolidBrush black = new SolidBrush(Color.Black);
                SolidBrush white = new SolidBrush(Color.White);
                graphic.FillRectangle(white, 0, 0, bitm.Width, bitm.Height);
                graphic.DrawString("" + InvoiceNo + "", newfont2, black, point);
                PointF pointPrice = new PointF(15f, 45f);
                graphic.DrawString("" + InvoiceDate + "", newfont2, black, pointPrice);
                PointF pointPname = new PointF(10f, 65f); 
                PointF pointBar = new PointF(10f, 65f);
            graphic.DrawString("" + welcome + "", newfont2, black, pointBar);
            PointF pointList = new PointF(10f, 65f); 

                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {

                    graphic.DrawString("  " + dataGridView1.Rows[i].Cells[0].Value +"" + dataGridView1.Rows[i].Cells[1].Value +"" + dataGridView1.Rows[i].Cells[2].Value +"" , new Font("Arial Bold", 11),
                             new SolidBrush(Color.Black), pointList);
                                    }

                PointF pointItemEnd = new PointF(10f, 65f);
                graphic.DrawString(" ---------- ", newfont2, black, pointItemEnd);

            }


            using (MemoryStream Mmst = new MemoryStream())
            {


                bitm.Save("ms", ImageFormat.Jpeg);
                pictureBox1.Image = bitm;
                pictureBox1.Width = bitm.Width;
                pictureBox1.Height = bitm.Height;


            }  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...