Лучший способ для клиента изменить данные элемента для нескольких отчетов?
У меня есть клиент, которому нужно выдавать отчеты о ценах, сохраняя при этом несколько версий данных в отчете. ПРИМЕР: Один SKU предназначен только для одного поставщика. (Итак, мне нужно сделать отчет, который имеет все те же данные, что и другие + этот один SKU) У каждого поставщика могут быть товары с разными процентами наценки. (Мне нужен отчет, который можно сохранить, где только эти товары имеют разные наценки в процентах) У каждого поставщика могут быть разные наценки (3 поставщика будут на 20%, 1 поставщик на 15% и т. д.)
Очевидно, я не могу заставить их изменять каждую запись элемента в своих данных таблицы элементов каждый раз, когда им нужно отправлять отчеты. Но они должны быть обновляемыми, если им нужно внести изменения.
Я не могу выбрать лучший способ сделать это. Может быть, я упускаю что-то очевидное. Мысли?
1 ответ
Во-первых, используйте отчеты для отображения данных, в частности, для печати. Редактируйте и ищите данные с помощью форм. В этом случае сначала попросите пользователя открыть форму вместо отчета.
зачем может понадобиться отчет с параметрами в доступе: https://www.codevba.com/msaccess/docmd_openreport.htm#.Yw3DrNPMLb0
В этой форме загрузки есть поле со списком, где пользователь может выбрать SKU и кнопку, которую он может нажать, чтобы открыть отчет. В событии нажатия кнопки откройте отчет, передавая выбранный SKU в отчет (см. множество способов ниже или ознакомьтесь с большинством ссылок).
Вот пара ссылок для начала:
https://www.youtube.com/watch?v=bdmCmYYETac
https://learn.microsoft.com/en-us/office/vba/api/access.form.openargs
Когда у вас есть выбранный SKU в отчете, вы просто устанавливаете соответствующий элемент управления для функции выбранного SKU, которая рассчитывает цену: https://support.microsoft.com/en-us/office/create-a-calculated-control-08e19416-0026-4d78-8bea-f6b8ff9570a7
Если вам довелось установить элемент управления для общедоступной функции, такой как GetPriceFromITEM&SKU(ItemID as long, SKU as long), это было бы лучше, поскольку вы могли бы использовать эту функцию в другом месте, а отчеты о доступе могут содержать ошибки из-за сложных выражений. существует множество способов передачи параметров, таких как SKU, по базе данных. Например, локально при нажатии кнопки формы вы можете вызвать Docmd.OpenReport с параметрами WhereCondition и/или OpenArgs, созданными из параметров формы. Но поскольку вы можете ссылаться практически на любой общедоступный объект, вы можете опустить эти настройки, открыть отчет невидимо, а затем установить элементы управления отчетом из элементов управления формы, а затем сделать отчет видимым.
В глобальном масштабе у вас может быть таблица настроек со строкой для currentSKU, тогда когда пользователь изменяет SKU в поле со списком SKU формы, событие afterUpdate вызывает общедоступную функцию, такую как SetCurrentSKU, и в отчете для элемента управления SKU установлено значение GetCurrentSKU. Или настройте элементы управления и получите их напрямую из таблицы настроек.