1 / 1 / 0
Регистрация: 13.10.2013
Сообщений: 99

Реализовать поиск товаров по атрибутам

07.10.2015, 17:05. Показов 1317. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Задание написать программу создания накладной. Набросок есть. На скриншоте рабочий вид сделанного. Но есть подзадание: Реализуйте в системе поиск записей товаров по атрибутам. Совершенно не понимаю с какой стороны взяться и как вообще сделать. Есть у кого что-то похожее или пример? Заранее спасибо.
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics.Contracts;
 
namespace WindowsFormsApplication7.Domain
{
    internal class Order //вся накладная
    {
        private readonly IList<OrderItem> _orderItems = new List<OrderItem>(); //список всех товаров
        private int _id; //номер накладной
 
        public Order() //конструктор класса Order
        {
 
            _id = 1;
            Created = DateTime.Today;
 
        }
 
        public int Id
        {
            get { return _id; } //получение номера накладной
            set
            {
                Contract.Requires(IsValidId(value), "Номер накладной должен быть положительным числом"); _id = value;
                //задаём номер накладной, если неправильно, то пишем ошибку
            }
        }
 
        public DateTime Created { get; set; } //дата создания накладной, получение/установка
 
        public decimal Total //сумма по накладной
        {
            get //её получение
            {
                Contract.Requires(OrderItems != null, "Коллекция записей накладной должна быть создана."); //если список товаров пуст, то ничего не получаем
                return _orderItems.Sum(x => x.Total); //возвращаем сумму всех товаров, приводя каждый товар к его сумме
            }
        }
 
        public decimal Total_NDS //сумма по накладной
        {
            get //её получение
            {
                Contract.Requires(OrderItems != null, "Коллекция записей накладной должна быть создана."); //если список товаров пуст, то ничего не получаем
                return _orderItems.Sum(x => x.Total_NDS); //возвращаем сумму всех товаров, приводя каждый товар к его сумме
            }
        }
 
        public IList<OrderItem> OrderItems //получение списка записей в накладной
        {
            get { return _orderItems; }
        }
 
        /// <summary>
        /// Возвращает признак, что заданный аргументом номер накладной имеет правильное значение /// </summary>
        /// <param name="value">Номер накладной</param>
        /// <returns>Истина, если номер накладной имеет правильное значение</returns>
        public static bool IsValidId(int value) //метод проверки правильности номера накладной
        {
            return value > 0;
        }
 
        public void Clear() //очищение 
        {
            Contract.Requires(OrderItems != null);
            Contract.Ensures(OrderItems.Count == 0);
            OrderItems.Clear();
 
        }
 
    }
}


Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics.Contracts;
 
namespace WindowsFormsApplication7.Domain
{
    internal class OrderItem //товар по накладной
    {
        private decimal _count; //количество товара
        private decimal _price; //цена за штуку
        private string _sepecification; //название товара
        private decimal _nds; //Ставка НДС
 
        public decimal Total //получение стоимости этого количества товара по накладной
        {
            get { return _count * _price; } //умножение
        }
 
        public decimal Total_NDS //получение стоимости этого количества товара по накладной с учётом ндс
        {
            get { return _count * _price * (1 + _nds / 100); }
        }
        
        /*
        public int Number // номер по порядку
        {
            get { dgvOrder.}
        }
         */
        public decimal Price_NDS //получение стоимости НДС для этого количества товара по накладной
        {
            get { return _count * _price * (_nds / 100); }
        }
 
        public decimal Price //получение цены товара
        {
            get { return _price; }
            set
            {
                Contract.Requires(IsValidPrice(value)); //проверяем цену товара на правильность
                Contract.Ensures(_price == value);
                _price = value;
            }
        }
 
        public string Specification //получение названия товара по накладной
        {
            get { return _sepecification; }
            set
            {
                Contract.Requires(IsValidSpecification(value)); //такая же строчка была в аналогичном методе у цены
                Contract.Ensures(_sepecification == value);
                _sepecification = value;
            }
        }
 
        public decimal Count //получение количества товара
        {
            get { return _count; }
            set
            {
                Contract.Requires(IsValidCount(value));
                Contract.Ensures(_count == value);
                _count = value;
            }
        }
 
        public decimal NDS // получение ндс
        {
            get { return _nds; }
            set
            {
                Contract.Requires(IsValidNDS(value));
                Contract.Ensures(_count == value);
                _nds = value;
            }
        }
 
        /// <summary>
        /// Возвращает признак того, что аргумент является корректной ценой
        /// </summary>
        /// <param name="value">Цена</param>
        /// <returns>Истина, если аргумент является корректной ценой</returns> 
        public static bool IsValidPrice(decimal value)  
        {
            return value > 0.0M;
        }
 
        /// <summary>
        /// Возвращает признак того, что аргумент является корректным количеством /// </summary>
        /// <param name="value">Цена</param>
        /// <returns>Истина, если аргумент является корректным количеством</returns> 
        public static bool IsValidCount(decimal value)
        {
            return value > 0.0M;
        }
 
        public static bool IsValidNDS(decimal value)
        {
            return value > 0.0M;
        }
 
        /// <summary>
        /// Возвращает признак того, что аргумент является корректной строкой-спецификацией товара /// </summary>
        /// <param name="value">Строка-спецификация</param>
        /// <returns>Истина, если аргумент является корректной строкой-спецификацией товара</returns>
        public static bool IsValidSpecification(string value)
        {
        return !string.IsNullOrWhiteSpace(value);
        }
    }
}


Кликните здесь для просмотра всего текста
Форма
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics.Contracts;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WindowsFormsApplication7.Domain;
 
namespace WindowsFormsApplication7
 
{
    public partial class OrderGenMainForm : Form
    {
        readonly Order _order = new Order();
        public OrderGenMainForm()
        {
            InitializeComponent();
        }
 
        private void OrderGenMainForm_Load(object sender, EventArgs e)
        {
            Contract.Ensures(orderBindingSource.DataSource == _order);
            Contract.Ensures(orderItemBindingSource.DataSource == _order.OrderItems);
            orderBindingSource.DataSource = _order;  //создаём источник данных для накладной
            orderItemBindingSource.DataSource =_order.OrderItems; //создаём источник данных для товаров по накладной
        }
 
        private void toolStripButtonClear_Click(object sender, EventArgs e)
        {
            Contract.Ensures(orderItemBindingSource.Count == 0);
            orderItemBindingSource.Clear(); //очищение списка накладных 
        } 
        
        private void orderItemBindingSource_ListChanged(object sender, ListChangedEventArgs e)
        //если что-то изменилось в списке накладных
        {
            Contract.Requires(tbSumAtAll.DataBindings.Count > 0);
            tbSumAtAll.DataBindings[0].ReadValue();
 
            Contract.Requires(tbSumAtAllNDS.DataBindings.Count > 0);
            tbSumAtAllNDS.DataBindings[0].ReadValue();
        }
 
        private void btnClose_Click(object sender, EventArgs e)
        {
            Close();
        }
 
 
}
 
}
Миниатюры
Реализовать поиск товаров по атрибутам  
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.10.2015, 17:05
Ответы с готовыми решениями:

TXmlDocument - поиск нода по атрибутам
Есть метод FindNode по поиску нода по названию. Есть ли возможность осуществить поиск нода по значению атрибутов?

Поиск файлов в каталоге по определенным атрибутам
Информационная запись о файле содержит следующие поля: каталог, имя файла, расширение, дата и время создания, атрибуты «только для...

Рекурсивный поиск файлов по заданным атрибутам
Здравствуйте. У меня возникла проблема. Не получается сделать так, чтобы программа к примеру, искала файлы только по заданным атрибутам....

1
9 / 9 / 7
Регистрация: 28.02.2012
Сообщений: 145
13.10.2015, 15:42
Забацай кнопочку "поиск по атрибутам". При её нажатии считывается значение текстбокса с атрибутом. Далее запросом Select чего-то_там From откуда-то → с такими параметрами что товар содержит атрибут → вывести в табличку. (на примере эскуэль запроса)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.10.2015, 15:42
Помогаю со студенческими работами здесь

Поиск пользователей с динамическим вводом и выводом в AD по атрибутам
Доброго времени суток! Есть скрипт который может найти пользователей по динамическому вводу его samaccountname, либо name, до по чему...

Организовать поиск файлов в директории по атрибутам текущей даты создания (день, месяц, год)
Задача, организовать поиск файлов в директории по атрибутам текущей даты создания (день месяц год) с возможностью перенаправления...

Реализовать систему лайков для товаров
Добрый день! Есть магазин на Битриксе редакции &quot;Стандарт&quot;. Все сделали, но надо еще прицепить систему лайков, что бы клиент мог кликнуть, и...

Как реализовать фильтр товаров по цвету?
Ув. Гуру. Подскажите, как реализовать фильтр товаров по цвету на angular js? Ниже исходник с фильтром по цене, а также выводом деталей...

Как реализовать вывод каталога товаров?
Здравствуйте, я только начинаю заниматься Django. Мне необходимо реализовать вывод каталога товаров, погуглив, я нашел что для этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Как украсить новогоднюю елку с Q# и Qiskit
EggHead 24.06.2025
Что может быть необычнее, чем применить законы квантовой механики для украшения новогодней елки? Пока другие развешивают обычные гирлянды, я решил объединить свою страсть к квантовым вычислениям с. . .
Системы нулевого доверия на C#
UnmanagedCoder 24.06.2025
Традиционная архитектура безопасности работает по принципу средневекового замка: создаём высокие стены вокруг корпоративной сети, укрепляем ворота межсетевыми экранами и системами обнаружения. . .
Снова не мой путь. Циклическое среднее, я обеими руками за проверку условия, в ракурсе данной задачи - циклическое среднее в топку.
Hrethgir 24.06.2025
Привет. Такой вопрос - нужно выводить среднее математическое между двумя направлениями, интервал значений которых может лежать в диапазоне одного оборота по кругу. Проблема заключается в том, что. . .
Деплой Flask приложения
py-thonny 23.06.2025
За годы работы с Flask я натыкался на одни и те же грабли достаточно часто, чтобы наконец научится их обходить. И сегодня хочу поделится опытом, который сбережет вам немало нервных клеток. Начнем с. . .
WebAssembly и контейнеры в .NET Aspire для оркестрации распределенных архитектур
ArchitectMsa 23.06.2025
Я наблюдаю, как WebAssembly (или просто WASM) постепенно выходит за рамки своего первоначального предназначения — исполнения кода на стороне браузера. Теперь эта технология проникает в серверную. . .
Непрерывная интеграция для пакета Python
Mr. Docker 22.06.2025
Было 4 часа утра пятницы, когда я выпустил новую версию нашей внутренней библиотеки для обработки данных. Релиз 0. 5. 2 содержал небольшой фикс для обработки дат в ISO формате, что может пойти не так?. . .
Продвинутый ETL на C# из OLTP БД в хранилище
stackOverflow 22.06.2025
Работая в сфере корпоративной аналитики, я постоянно сталкиваюсь с одним и тем же - нужны чистые, структурированные и, главное, свежие данные. Без них современные аналитические системы, машинное. . .
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru