Интерфейс редактирования нескольких прайс-листов
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
Интерфейс редактирования нескольких прайс-листов
Здравствуйте.
Возникла необходимость написать интерфейс редактирования цен из нескольких прайс-листов, суть такова:
1.Количество прайс-листов изначально не известно, они должны добавляться динамически пользователем по нажатию кнопки
2.Не обязательно чтобы интерфейс был динамическим и применял внесенные изменения в соответствующие прайс-листы сразу после редактирования. Можно статичный брауз с Наименованием МЦ, Баркодом, и колонками цен из выбранных прайс-листов и отдельной кнопкой "Обновить цены"
Может быть кто-то сталкивался с подобной задачкой?
Примерный внешний вид интерфейса редактирования на картинке:
Возникла необходимость написать интерфейс редактирования цен из нескольких прайс-листов, суть такова:
1.Количество прайс-листов изначально не известно, они должны добавляться динамически пользователем по нажатию кнопки
2.Не обязательно чтобы интерфейс был динамическим и применял внесенные изменения в соответствующие прайс-листы сразу после редактирования. Можно статичный брауз с Наименованием МЦ, Баркодом, и колонками цен из выбранных прайс-листов и отдельной кнопкой "Обновить цены"
Может быть кто-то сталкивался с подобной задачкой?
Примерный внешний вид интерфейса редактирования на картинке:
- Вложения
-
- PricesEditor.JPG (24.2 КБ) 13384 просмотра
-
- топ-софт
- Сообщения: 197
- Зарегистрирован: Чт, 06/09/2007 17:38
- Имя Фамилия: Вадим Володько
- Откуда: ТопСофт
- Контактная информация:
Хотелось бы уточнить несколько моментов:
1) сколько всего прайс-листов?
2) по сколько примерно в них номенклатурных позиций?
3) коррелируют ли цены между прайс-листами?
Как Вы уже наверняка догадались по вопросам, несмотря на то, что такая постановка задачи вполне имеет право на жизнь, вполне вероятно, что стоящую перед организацией задачу можно решить иными, более эффективными способами (особенно в том случае, если ответ на 3й вопрос утвердительный), а именно:
- формируем базовый прайс-лист (например, крупнооптовый)
- на базе него формируем ряд прайс-листов с нужеными уровнями наценок: 5%, 10%, 20%, 50%, округляя цены в каждом при необходимости.
1) сколько всего прайс-листов?
2) по сколько примерно в них номенклатурных позиций?
3) коррелируют ли цены между прайс-листами?
Как Вы уже наверняка догадались по вопросам, несмотря на то, что такая постановка задачи вполне имеет право на жизнь, вполне вероятно, что стоящую перед организацией задачу можно решить иными, более эффективными способами (особенно в том случае, если ответ на 3й вопрос утвердительный), а именно:
- формируем базовый прайс-лист (например, крупнооптовый)
- на базе него формируем ряд прайс-листов с нужеными уровнями наценок: 5%, 10%, 20%, 50%, округляя цены в каждом при необходимости.
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
Здравствуйте, Вадим.
1.Прайс-листов как минимум 6, но не факт что нет еще тех, о которых я не знаю.
2.Номенклатура варьируется в пределах в 2000 - 2500 наименований
3.Базовой цены, от которой происходит наценка, нет. К этому я сейчас все хочу подвести, потому что то, как работают сейчас - это "убийство".
И даже при том, что будет базовая цена четкой корреляции не будет, т.к. будут всевозможные акции, распродажи и т.д., цены (наценку/скидку) которых не спрогнозировать сейчас.
Еще хочу добавить, что данным интерфейсом хотели "убить 2х зайцев":
1.создать универсальный редактор цен в выбранных прайс-листах
2.получать, на основании данных этого интерфейса, удобный отчет со всеми возможностями его обработки в ms excel
1.Прайс-листов как минимум 6, но не факт что нет еще тех, о которых я не знаю.
2.Номенклатура варьируется в пределах в 2000 - 2500 наименований
3.Базовой цены, от которой происходит наценка, нет. К этому я сейчас все хочу подвести, потому что то, как работают сейчас - это "убийство".
И даже при том, что будет базовая цена четкой корреляции не будет, т.к. будут всевозможные акции, распродажи и т.д., цены (наценку/скидку) которых не спрогнозировать сейчас.
Еще хочу добавить, что данным интерфейсом хотели "убить 2х зайцев":
1.создать универсальный редактор цен в выбранных прайс-листах
2.получать, на основании данных этого интерфейса, удобный отчет со всеми возможностями его обработки в ms excel
-
- топ-софт
- Сообщения: 197
- Зарегистрирован: Чт, 06/09/2007 17:38
- Имя Фамилия: Вадим Володько
- Откуда: ТопСофт
- Контактная информация:
В принципе, реализовать такое несложно.
Вы хотите заказать эту работу нам или написать самостоятельно?
Если самостоятельно - с какими именно сложностями столкнулись?
Пока не начали? Для начала рекомендую максимально уточнить/детализировать постановку.
Как минимум, зафиксировать, что все прайс-листы должны быть только одного типа (например, рублевые) и т.п. Затем - заводите таблицу в памяти с записью, к оторой достаточно места для хранения информации по матценностям и ценам из всех прайсов (а также ссылок на позиции). Запрашиваете множественный выбор прайс-листов. Накачиваете из него данную таблицу в памяти. При отображении светите измененные поля (где значение в памяти подредактировано и отличается от значения в базе) другим цветом. Включаете/отключаете требуемое количество столбцов в browse (по количеству прайс-листов). По нажатию кнопки собственно обновляете значения в таблицах БД из таблицы в памяти. Делаете печать в нужном Вам виде... Думаю, за пару недель вполне можно обкатать и сделать требуемый вариант. Опять же, имея в начале четкую постановку, что хотите сделать.
Вы хотите заказать эту работу нам или написать самостоятельно?
Если самостоятельно - с какими именно сложностями столкнулись?
Пока не начали? Для начала рекомендую максимально уточнить/детализировать постановку.
Как минимум, зафиксировать, что все прайс-листы должны быть только одного типа (например, рублевые) и т.п. Затем - заводите таблицу в памяти с записью, к оторой достаточно места для хранения информации по матценностям и ценам из всех прайсов (а также ссылок на позиции). Запрашиваете множественный выбор прайс-листов. Накачиваете из него данную таблицу в памяти. При отображении светите измененные поля (где значение в памяти подредактировано и отличается от значения в базе) другим цветом. Включаете/отключаете требуемое количество столбцов в browse (по количеству прайс-листов). По нажатию кнопки собственно обновляете значения в таблицах БД из таблицы в памяти. Делаете печать в нужном Вам виде... Думаю, за пару недель вполне можно обкатать и сделать требуемый вариант. Опять же, имея в начале четкую постановку, что хотите сделать.
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
1.Писать хотим сами, благо что сотрудник в должности программиста "Галактики" есть
2.Постановка задачи уточнена и детализирована, и в части "одинаковости" прайс-листов и требуемых от интерфейса операций
3.Начали сами писать, возник вопрос: как "на лету" (после выбора нескольких прайс-листов) создать таблицу в памяти с необходимым количеством колонок с ценами?
Ведь количество выбранных прайс-листов заранее не известно.
Вопросов по раскраске/подсветке и выводу на печать не должно быть...
2.Постановка задачи уточнена и детализирована, и в части "одинаковости" прайс-листов и требуемых от интерфейса операций
3.Начали сами писать, возник вопрос: как "на лету" (после выбора нескольких прайс-листов) создать таблицу в памяти с необходимым количеством колонок с ценами?
Ведь количество выбранных прайс-листов заранее не известно.
Вопросов по раскраске/подсветке и выводу на печать не должно быть...
-
- топ-софт
- Сообщения: 197
- Зарегистрирован: Чт, 06/09/2007 17:38
- Имя Фамилия: Вадим Володько
- Откуда: ТопСофт
- Контактная информация:
создать таблицу в памяти "на лету" с произвольным числом полей вряд ли возможно на прикладном уровне
лучше всего заложиться с запасом, например на 20 прайсов:
если же точно известно, что зарезервированных впрок 20 ссылок и сумм не хватит, можно попробовать создать не одну, а 2 таблицы в памяти:
но для отоборажения полученной структуры все равно придется жестко описать конечное число синонимов таблицы tMemPrice либо изобретать какой-либо иной способ отображения при помощи иных промежуточных таблиц
лучше всего заложиться с запасом, например на 20 прайсов:
Код: Выделить всё
table struct tMemPrice
(
Nrec: comp,
cMC: comp,
Name: s200,
BarKod: s20,
Price: array [1..20] of tSumma,
cPrice: array [1..20] of comp
)
Код: Выделить всё
table struct tMemMC // перечень номенклатурных позиций каталога МЦ:
nrec: comp
cMC: comp
Name: s200
BarKod: s20
table struct tMemPrice // цены позиций по каждому из прайс-листов
num: long
cMemMC: comp
cPrices: comp // ссылка на позицию прайс-листа, в которой хранится оригинальная цена и которую возможно придется обновлять
Price: tSumma
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
- Screw
- топ-софт
- Сообщения: 73
- Зарегистрирован: Пт, 14/09/2007 22:54
- Имя Фамилия: Виталий Корзюк
- Откуда: ТопСофт
- Контактная информация:
Вопрос динамического создания нужного количества столбцов в браузе можно решить с помощью функций Конфигуратора. А оный брауз сделать безтабличным, что позволит устранить зависимость от ТП с ее статической структурой. Иными словами, нужно реализовать брауз на массиве записей, который можно описать приблизительно так:
Все упомянутые в описаниях типов массивы считаются динамическими.
Код: Выделить всё
type
TPrice = record
Price: tSumma;
cPrice: comp;
end;
TMc = record
Nrec: comp;
Name: s200,
BarKod: s20
PriceList: array [1] of TPrice;
end;
TMcArray = array [1] of TMc;
...
-
- заказчик
- Сообщения: 89
- Зарегистрирован: Ср, 19/09/2007 08:48
- Имя Фамилия: Александр Киселев
- Откуда: Красный Октябрь ОАО ДОК
- Контактная информация:
Спасибо за еще один вариант решения задачки
Screw писал(а):Вопрос динамического создания нужного количества столбцов в браузе можно решить с помощью функций Конфигуратора. А оный брауз сделать безтабличным, что позволит устранить зависимость от ТП с ее статической структурой. Иными словами, нужно реализовать брауз на массиве записей, который можно описать приблизительно так:Все упомянутые в описаниях типов массивы считаются динамическими.Код: Выделить всё
type TPrice = record Price: tSumma; cPrice: comp; end; TMc = record Nrec: comp; Name: s200, BarKod: s20 PriceList: array [1] of TPrice; end; TMcArray = array [1] of TMc; ...