Автоподстановка
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Автоподстановка Expand / Collapse
Автор
Сообщение
03.05.2007 22:04
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 01.06.2007 13:25
Сообщ.: 8, Visits: 42
Добрый день!
Пользуюсь модифицированной под себя базой данных из шаблона "прием заказов". Там в подчиненной форме сведений заказов при заполнении товарной позиции автоматически подставляется цена. Как можно сделать, чтобы цена была различной в зависимости от статуса заказчика?
Сообщ. #912967
04.05.2007 10:32
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
У Вас для каждого товара в зависимости от статуса заказчика назначается своя цена, или может для каждого статуса заказчика существует свой процент скидок на все товары?
Сообщ. #912975
04.05.2007 12:39
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 01.06.2007 13:25
Сообщ.: 8, Visits: 42
Каталожная цена умножается на 1; 1,3; 1,4, всего три группы клиентов, скидки не использую. У меня сделано так, что в открывающемся списке товаров эти три цены отображаются (чтобы не выискивать из кучи прайс-листов) и я вручную подставляю нужную, по умолчанию подставляется первая.

Еще нужно иметь возможность автоподстановки не путем умножения а из другого поля (это для расчета сдельной оплаты рабочих, которые в одном изделии выполняют разные операции по разным тарифам). Т.е. рабочему с участка №1 за изделие "А" подставить тариф из поля "Тариф1", рабочему с участка 2 - тариф 2 за это же изделие.
Сообщ. #912990
04.05.2007 15:47
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Напрашивается такое решение:
1. Создаем таблицу "Статус клиентов" с полями: ID, Статус, Коэффициент.
2. В таблице "Клиенты" вводим дополнительное поле Статус, связанное с полем ID таблицы "Статус клиентов".
3. В форме "Заказы по клиентам" создаем поле со списком "Статус" для выбора статуса клиента с тремя полями ID, статуса и коэффициента.
4. В подчиненной форме сведений заказов вместо
Me![Цена] = Me![КодТовара].Column(2)
процедуры обработки события КодТовара_AfterUpdate
поместить
Me![Цена] = CLng(Me![КодТовара].Column(2) * Forms![Заказы по клиентам]![Статус].Column(2) * 100) / 100

Вообще-то п.4 можно сделать по иному, если учесть, что в таблице "Сведения о заказе" и соответствующей подчиненной форме есть неиспользуемое Вами поле "Скидка". Его можно использовать для размещения коэффициента, а в обработчик события Form_Open формы "Заказы" добавить
Me![Подчиненная форма сведений заказов].Form![Скидка].DefaultValue = """" & Forms![Заказы по клиентам]![Статус].Column(2) & """"
Тогда в поле "Цена" будет отражаться каталожная цена, в поле "Скидка" (или как Вы его назовете) - коэффициент, а в поле "Сумма по строке" - сумма за товар с учетом коэффициента. Но, последнее будет справедливо, если изменить источник данных подчиненной формы сведений о заказах на
SELECT DISTINCTROW [Сведения о заказе].*, CLng(([Количество]*[Цена])*[Скидка]*100)/100 AS [Сумма по строке]
FROM [Сведения о заказе]
И еще, в этом варианте нужно в таблице "Сведения о заказе" и соответствующей подчиненной форме очистить у поля "Скидка" свойства "Условие на значение" и "Сообщение об ошибке".


Сообщ. #913002
04.05.2007 18:27
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 01.06.2007 13:25
Сообщ.: 8, Visits: 42
Большооооооооооооое спасибо !!!!!!!!!!
Так все просто оказывается. Сколь же зря потрачено рабочего времени на забивание этих циферок годами. А сколько тратят пользователи 1С, когда им нужно что-то с другой наценкой отгрузить - ужас!

Говорила мне мама: "Учи, учи, сынок, Аксесс, не бегай на улицу!"


Me![Цена] = CLng(Me![КодТовара].Column(2)) * (Forms![Заказы по клиентам]![Прайс])

Теперь осталось с зарплатой разобраться, и общение с БД из каторги превратится в наслаждение ;)
Сообщ. #913015
05.05.2007 14:24
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Andrey-74 (04.05.2007)
Еще нужно иметь возможность автоподстановки не путем умножения а из другого поля (это для расчета сдельной оплаты рабочих, которые в одном изделии выполняют разные операции по разным тарифам). Т.е. рабочему с участка №1 за изделие "А" подставить тариф из поля "Тариф1", рабочему с участка 2 - тариф 2 за это же изделие.

При ответе на предыдущий вопрос был использован описаный Вами шаблон, поэтому структура базы и взаимодействие соответствующих форм были видны. Для ответе на этот вопрос , наверное, нужно пройти курсы телепатии. :-)
Если можно, то удалите из копии базы все лишнее, не относящееся к вопросу, сожмите ее, упакуйте архиватором и выложите на форум.
Сообщ. #913028
06.05.2007 0:11
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 01.06.2007 13:25
Сообщ.: 8, Visits: 42
Таблица "ЗПсотр" содержит фамилию и дату начисления зарплаты. Подчиненная таблица "Сведения о ЗП" содержит: наименование изготовленного, количество и тариф. В таблице "Сотрудники" имеется поле "Должность".

Задача для автозаполнения таблицы "Сведения о ЗП":
По фамилии сотрудника распознать его должность и если "Должность"=1, то в поле "Расц" после внесения наименования изделия подставить значение поля "Расц1" из таблицы "Товары". Если "Должность"=2, то "Расц2", 3 - 3.



  Post Attachments 
db2-2003_2007-05-05_(1).rar (3 views, 56,72 KB)
Сообщ. #913034
06.05.2007 13:18
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 07.03.2008 19:04
Сообщ.: 328, Visits: 1 857
Если Вы предполагаете работать только с таблицами (формы в приведенной базе отсутствуют), то автоматически заполнять поле "Расц" таблицы "Сведения о ЗП" при формировании записи не получится. Заполнение поля можно осуществить с помощью запроса (см. запрос "Запрос1" в прикрепленном файле) после формирования всех необходимых записей.
Там же, в прикрепленном файле, я набросал ескиз Ваших форм. При выборе товара с помощью комбобокса в подчиненной форме выполняется автоматическое заполнение поля "Расц" (см. процедуру "КодТовара_AfterUpdate").
P.S. Тип поля "Должность" таблицы "Сотрудники" изменил на числовой - Long.
Подкорректировал схему данных.




  Post Attachments 
db2-2003_2007-05-05_(2).rar (7 views, 60,06 KB)
Сообщ. #913040