|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
Зависимость даты начала и окончания пунктов из разных мероприятий с последующим пересчетом сроков выполнения17.11.2017, 14:32. Показов 3023. Ответов 31
Метки нет (Все метки)
Доброго дня, форумчане!) Возник вопрос.
Возможно ли организовать зависимость даты начала и окончания пунктов из разных мероприятий с последующим пересчетом сроков выполнения. Например: В одном мероприятии есть несколько пунктов, начало которых зависит от окончания другого пункта из другого мероприятия. Это все в рамках одного графика. В процессе заполнения графика, пользователь возле вносимого пункта проставляет к какому пункту из другого или из этого-же мероприятия он зависит. Нужно это для того, если какой-то пункт изменили (срок перенесли), и в зависимых от него пунктах, автоматом пересчитались сроки начала и окончания. БД прикрепил. (Формат Access 2010). Пользователь "Администратор" Пароль для входа: 123456 Может у кого-то есть мысли как это реализовать? Буду очень признателен за помощь в реализации данной задумки.
0
|
|
| 17.11.2017, 14:32 | |
|
Ответы с готовыми решениями:
31
Ввод даты начала и конца в отчете из разных запросов Формировка начала и окончания недели |
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
||
| 14.12.2017, 15:00 | ||
|
Добавил для экспериментов новый график 123456, мероприятия к нему и пару пунктов.
1
|
||
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
||
| 15.12.2017, 10:40 [ТС] | ||
|
Мне уже стыдно Вам писать...Вы очень много для меня уже сделали, но я прошу еще мне помочь. Даты высчитывает так как надо, но при тестировании выяснилось, что если поле "датаокончанияпункта" пустое, то оно не пересчитывается и остается пустым. Например, если заполнять новый пункт. Мы указываем номер пункта, название, ставим дату начала, продолжительность и если запустить процедуру, то он не трогает эту запись вообще. Можно ли сделать так, чтобы этот код работал и с такими пунктами? Просто хочу привязать процедуру пересчета графика на изменение поля длительность. И можно ли уйти от заполнения дополнительного поля "ПредыдущееМероприятие", т.к. пересчет идет не всей таблицы, а выбранного графика, соответственно номера пунктов не будут повторяться. Или сделать, так, чтобы при вводе в поле предыдущий пункт (из другого мероприятия), название этого мероприятия прописалось автоматически. Буду очень признателен за помощь в решении данных вопросов!)
0
|
||
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 16.12.2017, 00:35 | |
|
К сожалению времени мало, возможны ошибки или чего-то недоделал.
Предыдущее мероприятие находится автоматом по номеру пункта в заданном графике. Можно это поле вообще скрыть. Я бы сделал предыдущий пункт полем со списком, где будут все пункты данного графика. Но это на Ваше усмотрение.
1
|
|
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
| 19.12.2017, 16:21 [ТС] | |
|
Добрый день, уважаемый,mobile!) Спасибо за доработку) Работает все как и просил.
Выяснилось, что если указать в поле длительность например 200 дней или отрицательное значение, то выдает ошибку (скриншоты приложил). Пробовал самостоятельно исправить, что-то не получилось. И еще не могу прикрутить на поле ДатаОкончанияПункта после обновления поля формулу, которая высчитывает длительность, если изменить дату окончания пункта. Вот сама формула: =Int([ДатаОкончанияГрафика]-[ДатаНачалаГрафика])+1-(Int(([ДатаОкончанияГрафика]-[ДатаНачалаГрафика])/7)*2-(Weekday([ДатаОкончанияГрафика];2)<Weekday([ДатаНачалаГрафика];2))*2+Choose(Weekday([ДатаОкончанияГрафика];2);0;0;0;0;0;1;2)+(Weekday([ДатаНачалаГрафика];2)=7)) Если у Вас будет время и возможность, посмотрите пожалуйста. Базу прикрепил. Пользователь: Контролер Пароль: 123456
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 19.12.2017, 22:04 | |
|
ershov_pavel, я сделал, что Вы просите.
Форма [ПунктыГрафикаПодчиненная форма]. Исправил процедуру Длительность_AfterUpdate, внес необходимые ограничения. По ДатаОкончанияПункта перенес большую часть кода в ДатаОкончанияПункта_BeforeUpdate, чтобы иметь возможность исправить потенциально неверные, случайные значения. Также изменил код по Вашему новому ТЗ. Правда оно противоречит прежнему, ну да Вам виднее.
1
|
|
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
| 20.12.2017, 11:34 [ТС] | |
|
Добрый день, уважаемый, mobile!) Вы как всегда на высоте) После тестов пару ошибок нашел, но их я поправил, добавив пару условий.
Стыдно конечно такое писать.....но очень хочется добавить в процедуру "PereschetGrafic" пару вещей. Если вы мне поможете, я буду очень Вам благодарен и на седьмом небе от счастья!))) 1. Возможно ли сделать, чтобы по нажатию кнопки "Пересчет дат в графике", пункты которые имеют статус "Выполнено" их не пересчитывало? Но зависимость бы сохранилась. 2. Возможно ли сделать так, чтобы по нажатию кнопки "Пересчет дат в графике" к которой привязана процедура "PereschetGrafic", после всех вычислений в поле "ДатаОкончанияГрафика" или в поле "ДатаОкончанияГрафика" таблицы "Графики", была помещена самая максимальная дата окончания пункта графика. Так сказать, чтобы было видно дату начала и окончания графика. Например: Разработчик графика вносит дату начала графика, потом заполняет все поля, указывает все зависимости, сроки выполнения и после нажатия кнопки "Пересчет дат в графике", дата окончания последнего пункта (пункт который имеет самую максимальную дату в поле ДатаОкончанияПункта и все это в том графике, который он выбрал) вносится в поле "ДатаОкончанияГрафика" таблицы "Графики". Базу прикрепил. В таблице "График", создал поле "ДатаОкончанияГрафика" и в форме создал поле "ДатаОкончанияГрафика" Пользователь: Контролер Пароль: 123456
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 21.12.2017, 10:25 | |
Сообщение было отмечено ershov_pavel как решение
Решение
ershov_pavel, смотрите вложение. Сделал как Вы просили.
1
|
|
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
| 22.12.2017, 15:15 [ТС] | |
|
mobile, добрый день!) Спасибо огромное за проделанную Вами работу! Работает все прекрасно.
0
|
|
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
| 26.12.2017, 08:16 [ТС] | |
|
Уважаемый, mobile, добрый день! Помните, вы говорили: "Я бы сделал предыдущий пункт полем со списком, где будут все пункты данного графика."? Я пытаюсь это сделать, но у меня не выходит. Подскажите пожалуйста, с помощью чего и как это можно сделать?
0
|
|
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|||||||||||
| 26.12.2017, 08:44 | |||||||||||
|
ershov_pavel, смотрите вложение. Поле ПредыдущийПункт преобразовано в поле со списком. Источник поля со списком запрос
для поиска в таблице нужного графика, позиционирования на нем и обновления поля со списком ПредыдущийПункт в подформе
1
|
|||||||||||
|
26828 / 14509 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
| 26.12.2017, 09:26 | |
Сообщение было отмечено ershov_pavel как решение
Решение
Небольшая ошибка. После преобразования потерялась ссылка на событие BeforeUpdate поля ПредыдущийПункт. Вставил
1
|
|
|
1 / 1 / 0
Регистрация: 11.01.2017
Сообщений: 83
|
|
| 26.12.2017, 10:39 [ТС] | |
|
0
|
|
| 26.12.2017, 10:39 | |
|
Как посчитать дни от даты начала до даты конца? В dbGrid в первом столбце даны даты начала работы, а во втором - даты увольнения. Как высчитать стаж? Показывать не только дату окончания/начала но и время
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|