mabadeje Ответов: 1

Создание коротких множественных отчетов из записей в listview (VB.NET)


Здравствуйте, меня зовут Эйд, и мне нужна помощь по заданию, я работаю над проектом в vb.net. у меня есть listview на форме, listview имеет 4 фиксированных столбца и как можно больше строк на основе записей пользователя при нажатии нескольких кнопок. если пользователь нажимает кнопку одежды, то вставляется строка, которая выглядит следующим образом:

Desc,        Amount      Quantity    No. Piece
-----------------------------------------------
2pc suit      500           2           2

(вставка предмета одежды с указанием его стоимости, количества принесенных предметов одежды и количества частей делает этот тип одежды)

когда он нажимает цветную кнопку теперь вставляется другая строка и представление списка выглядит следующим образом:

Desc,            Amount          Quantity        No. Pieces
-----------------------------------------------------------
2pc suit          500               2               2
black


когда он нажимает кнопку ткани вставляется еще одна строка теперь вид списка выглядит так:

Desc,        Amount      Quantity    No. Pieces
------------------------------------------------
2pc suit      500           2           2
black
wool


Вышеперечисленные задачи я могу выполнить, но теперь одним нажатием кнопки Мне нужно сгенерировать билет или счет-фактуру вместе с некоторыми тегами (краткое описание/детали) отчета . Генерация этих тегов является проблемой, из вышеизложенного вы можете видеть, что два костюма 2шт были введены (вставлены) и 2 элемента составляют костюм 2шт( костюм 2шт) это означает 4 тега (то есть 2шт умножить количество 2).

эти теги будут содержать название товара, цвет, ткань,количество и общее количество (перечисляя его как 1of4,2of4, 3of4 и 4of4).

что-то вроде этого:
===================================================
= (1/4)  Due date 23/05/2017 User:2               =
= customer name: Tom Jones Contact No: 08023345677=
= 2pc Suit 500/blue/cotton                        =
===================================================

Это становится еще сложнее, когда у вас теперь есть что-то вроде этого,

Desc,        Amount      Quantity    No. Pieces
-------------------------------------------------
2pc suit      500           2           2
black
wool
-------------------------------------------------
Shirt        200            1           1
blue
cotton
-------------------------------------------------
Shirt        200            1           1
white
cotton
-------------------------------------------------
Shirt        200            1           1
pink
cotton
-------------------------------------------------

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

с наилучшими пожеланиями

Что я уже пробовал:

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

1 Ответов

Рейтинг:
2

Maciej Los

Что ж... Вы держите фокус на ListView контроль вместо данных. Мне очень жаль, но это неправильный подход.

Чтобы избавить вас от неприятностей я бы предложил думать о счете как о наборе объектов:

invoice
    (
    invoice no.,
    date of sale,
    item on invoice
        (
          selled object /a garment in your case/,
          amount,
          price,
          etc.
        )
    ),
seller (seller no., name, etc.),
buyer (buyer no., name, etc.)


Каждый отдельный объект должен быть представлен в виде один класс[^], который содержит несколько свойств. Например, клиент может быть определен как:

Public Class Customer
	Private sName As String = String.Empty
	Private sContactNo As String = String.Empty
	
	Public Sub New()
		'default - empty constructor
	End Sub

	Public Sub New(ByVal _Name As String, ByVal _ContactNo As String)
		sName = _Name
		sContactNo = _ContactNo
	End Sub
	
	Public Property Name As String
		Get
			Return sName
		End Get
		Set (value As String)
			sName = value
		End Set
	End Property

	Public Property ContactNo As String
		Get
			Return sContactNo
		End Get
		Set (value As String)
			sContactNo = value
		End Set
	End Property
End Class


Итак, чтобы создать Customer объект:
Dim cust As Customer = New Customer("Maciej Los", "0123654789")


Я не хочу предоставлять полный код, потому что это ваша работа. Вывод таков: начинать нужно с азов:
Объекты и классы в Visual Basic | Microsoft Docs[^]
Определение Классов (Visual Basic) | Microsoft Docs[^]
Пошаговое Руководство: Создание Собственного Класса Коллекции[^]

Удачи вам!


CPallini

Мой 5.

Maciej Los

Спасибо, Карло.