Atmir Ответов: 2

VB.net пос распечатать квитанцию


- Привет !

у меня есть datagridview, как это:

Код |наименование предметов | Qyt.|Цена| Сумма|
--------------------------------------
1 |Кока-кола| 2 | 3.5 | 7.00|
2 |шахматный бургер| 2 | 6.0 |12.00|
.
.
.
.

Я хочу занести это в квитанцию?

у меня есть код но то что я делаю это:


1 |Кока-кола| 2 | 3.5 | 7.00|
2 |шахматный бургер| 2 | 6.0 |12.00|
Dim line As String
       Dim c As Integer = 70
       For Each row As DataGridViewRow In DataGridView.Rows
           line = String.Empty
           For Each cell As DataGridViewCell In row.Cells
               line += cell.Value.ToString() & vbTab
           Next
           c = c + 20
           g.DrawString(line, myfont, Brushes.Black, 10, c)
       Next

я хочу сделать такую расписку:

что строка товара mus имеет максимум 15 символов, цена 4 карактера,кол - во 4 карактера сумма 4 карактера !

но я не знаю, как это сделать!
пожалуйста, помогите мне!



извините за мой английский!

2 Ответов

Рейтинг:
19
Рейтинг:
1

priyanga@y7mail.com

Попробуй

Dim displayString как строка
Dim ESC As String = Chr(&H1B) + "a" + Chr(0)
Dim ESC2 As String = Chr(&H1B) + "@"
Дим ESC1 как String = ЧР(&ампер;Н1В) + "а" + ЧР(1) 'выровнять посередине
Дим ESC4 как String = ЧР(&ампер;Н1В) + "а" + ЧР(2) 'выровнять справа
Dim ESC5 As String = Chr(&H1B) + "!" + Chr(17) ' режим двойного шрифта высоты
Dim ESC6 As String = Chr(&H1B) + "!" + Chr(1) ' отмена режима двойного шрифта высоты

strSQl = "Select * from vewSalesInvoice where DocNo ='" & strDocNo & "'"
Dim da как новый SqlDataAdapter(strSQl, cnn)
Дим ДТ в качестве нового объекта DataTable
да.Заполнить(ДТ)
Dim strCustomer как строка
Дим стрмемо как струна
strMemo = dt.Rows(0)("TokenNo")
strCustomer = dt.Rows(0)("имя")
displayString = vbNewLine
displayString += ESC1 + ESC5 + CNm + ESC6 + vbNewLine
displayString += ESC1 + "Ratnapura Rd, Bandaragama." + vbNewLine
displayString += ESC1 + "кассовый чек" + vbNewLine
тег displaystring += "---------------------------------------"
displayString += vbNewLine
displayString += ESC + "Transaction #:" + strDocNo
displayString += ESC + vbNewLine
displayString += "Date:" + дата.Сегодня() + vbTab.ToString() + "Время: "
тег displaystring += DateAndTime.Сейчас().ToLongTimeString() + ESC
displayString += ESC + vbNewLine

displayString += "Cashier:" + CStr(GlobalUserName) + vbTab.Метод toString()
displayString += vbNewLine
displayString += "Customer:" + strCustomer
displayString += vbNewLine
displayString += "Memo:" + strMemo
displayString += vbNewLine
тег displaystring += "---------------------------------------"
displayString += vbNewLine
displayString += ESC + "# " + "Item" + vbTab.ToString() + "Rate" + vbTab.ToString() + "Qty" + vbTab.ToString() + "Total" + vbTab.ToString() + "Desc."
displayString += vbNewLine
тег displaystring += "---------------------------------------"
displayString += vbNewLine

Тусклый dblGrossTot как двойной
Дим dblDiscount как двойной
Тусклый dblNetTotal как двойной
Дим dblPaid как двойной
Тусклый dblBalRetuned как двойной

- Повторите цикл для каждой строки набора данных.

dblDiscount = dt.Rows(0)("LineDiscount")
dblNetTotal = dt.Rows(0)("TranValue")
dblPaid = dt.Rows(0)("оплачено")
dblBalRetuned = dt.Rows(0)("BalanceReturned")
Если dt.строки.Тогда считайте > 0
Dim k как целое число
Dim n как целое число
к = ДТ.Строк.Количество - 1
n = 1
Делайте пока не k < 0

Dim strItemCode в виде строки
Dim strItemName как строка
Тусклый dblRate как двойной
Тусклый dblQty как двойной
Дим dblLineTotal как двойной

strItemCode = dt.Rows(k)("ItemNumber")
strItemName = dt.Rows(k)("описание")
dblRate = FormatNumber(dt.Rows(k)("RegPrice"), 2)
dblQty = -dt.Rows(k)("кол-во")
dblLineTotal = dblQty * dblRate
dblGrossTot = dblGrossTot + dblLineTotal

тег displaystring += ESC4 + Н.Метод toString + " "
тег displaystring += strItemCode + " "
displayString += FormatNumber(dblRate.ToString, 2) + "" + dblQty.ToString + vbTab.ToString() + vbTab.ToString() + FormatNumber(dblLineTotal.ToString, 2)
displayString += ESC + vbNewLine
displayString += ESC + strItemName + vbTab.Метод toString()
displayString += ESC + vbNewLine
k = k - 1
n = n + 1
Петля
тег displaystring += "---------------------------------------"
displayString += vbNewLine
displayString += ESC4 + "общий итог :" + vbTab.ToString() + vbTab.ToString() + FormatNumber(dblGrossTot.ToString, 2)
displayString += vbNewLine
displayString += ESC4 + "скидка :" + vbTab.ToString() + vbTab.ToString() + FormatNumber(-dblDiscount.ToString, 2)
displayString += vbNewLine
displayString += ESC4 + "NET TOTAL :" + vbTab.ToString() + vbTab.ToString() + FormatNumber(dblNetTotal.ToString, 2)
displayString += vbNewLine
тег displaystring += "---------------------------------------"
displayString += vbNewLine
displayString += ESC4 + "PAID :" + vbTab.ToString() + vbTab.ToString() + FormatNumber(dblPaid.ToString, 2)
displayString += vbNewLine
displayString += ESC4 + "BAL. Перенастроено :" + vbTab.ToString() + vbTab.ToString() + FormatNumber(dblBalRetuned.ToString, 2)
displayString += vbNewLine
displayString += vbNewLine
displayString += ESC1 + "Спасибо за покупки"
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine
displayString += vbNewLine

Адрпорт.Открыть()
Адрпорт.Запись(displayString)
Адрпорт.Закрывать()
Конец, Если

Поймать ex как исключение

С помощью MsgBox(исх.Метод toString())

Конец Попытки


Member 11341317

Добрый день, я просто хотел проследить за уже существующим решением здесь, так как у меня есть та же проблема. Ниже приведены ошибки в приведенном выше коде

displayString += ESC1 + ESC5 + CNm + ESC6 + vbNewLine

CNm - нужно ли мне это декларировать или, может быть, есть какая-то ссылка, которую я пропустил.

следующий находится в очереди на получение

displayString += "Cashier:" + CStr(GlobalUserName) + vbTab.Метод toString()

CStr(GlobalUserName) - это также вызывает ту же ошибку, как я ее объявляю.

Последний стоит в очереди

Dim da как новый SqlDataAdapter(strSQl, cnn)

cnn - Я хочу верить, что это строка подключения к базе данных, однако когда я заменяю ее на то, что моя строка (Con1), ошибка смещается на "da" ... неужели мне чего-то не хватает

Заранее спасибо, я действительно застрял

Member 11580810

что значит для ADRport

Member 13364021

Адрпорт.Открыть()
Адрпорт.Запись(displayString)
Адрпорт.Закрывать()
почему вы используете выше этой линии , так что pls expalain это для меня

Member 13619340

мантаппп