Помогите подобрать алгоритм заполнения ListView

Здесь Вы можете найти или обсудить множество различных алгоритмов, их описаний, реализаций на VB и других языках.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 05.09.2008 (Пт) 13:43

Есть данные в таком виде:
Код: Выделить всё
ID   Name               SkladID   CountOnStock
1   Труба Wavin 32 250мм   1   100
1   Труба Wavin 32 250мм   2   4
4   Труба Wavin 32 2м      2   10
4   Труба Wavin 32 2м      1   33
8   Сверло SDS 5/110       2   10
9   Лезвие Stenley узкое   1   76


и нужно продумать, как ими наполнить листвью, чтобы на выходе получилось:
Код: Выделить всё
Наименование         Склад1   Склад2
Труба Wavin 32 250мм   100   4
Труба Wavin 32 2м      33   10
Сверло SDS 5/110       0    10
Лезвие Stenley узкое   76   0


единственное, что пока на ум приходит, так это проверять, есть ли в листвью такой товар(id) уже или нет ещё
может, кто подскажет уже проверенный способ?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 05.09.2008 (Пт) 13:56

Данные где? В базе данных?
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 05.09.2008 (Пт) 14:27

Да, получаю рекордсет...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 05.09.2008 (Пт) 14:50

В Access это называется "перекрестный запрос".
В других СУБД нет специальных конструкций SQL для такого запроса, но есть стандартные решения.
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 05.09.2008 (Пт) 15:00

так мне не запрос нужен,
а заполнение листвьюхи...

запрос же уже есть, данные-то я получаю...

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 05.09.2008 (Пт) 15:04

Это глупо, заполнять ListView подобным образом.
Правильным является сразу получить данные в нужном виде (запросом).
В крайнем случае предварительно обработать полученные данные (сгруппировать по ID) и только потом загружать.
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 05.09.2008 (Пт) 15:21

Дело в том, что, в последствии складов может стать больше, например, 10 или 20...
как в таком случае быть, если неизвестно колво складов

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 05.09.2008 (Пт) 15:32

И что с того? В перекрестном запросе может быть любое число таких столбцов.
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 05.09.2008 (Пт) 17:17

alibek так может покажешь примерчик перекрёстка такого?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 05.09.2008 (Пт) 22:22

Код: Выделить всё
TRANSFORM SUM([CountOnStock]) AS [Counter]
SELECT ID, Name
FROM ...
GROUP BY ID, Name
PIVOT SkladID;
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 08.09.2008 (Пн) 17:25

alibek писал(а):
Код: Выделить всё
TRANSFORM SUM([CountOnStock]) AS [Counter]
SELECT ID, Name
FROM ...
GROUP BY ID, Name
PIVOT SkladID;


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

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 15.09.2008 (Пн) 13:34

Ты вначале проверь этот код.
Lasciate ogni speranza, voi ch'entrate.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 879
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение kibernetics » 19.09.2008 (Пт) 9:16

Привет, alibek!
Да, конечно, код я естественно проверил.
но он мне возвращает общую сумму всего товара на каждом из складов.
Может я поля неправильно подставил

alibek
Большой Человек
Большой Человек
 
Сообщения: 14111
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Помогите подобрать алгоритм заполнения ListView

Сообщение alibek » 19.09.2008 (Пт) 9:50

Этот запрос возвращает именно такую таблицу, которую ты запрашивал в первом сообщении. Количество по каждому товару и по каждому складу.
Работать он будет, разумеется, только в Access.
Lasciate ogni speranza, voi ch'entrate.


Вернуться в Алгоритмы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList