Виберіть будь-яку тему нижче, щоб дізнатися про керування компаніями у випуску Northwind Developer Edition.
Примітка.: Посилання на цю сторінку наведено на веб-сайті Access Developer Showcase Edition
У випуску Northwind Starter Клієнт – єдиний тип компанії. У випуску Developer Edition ми розширили цю можливість, щоб включити клієнтів, перевізників і постачальників.
Ми також розширили продукти , до складу яких входять кілька постачальників продукту.
Кожна компанія може мати лише один тип: "Клієнт", " Перевізник" або "Постачальник". Бізнес-інцидент щодо того, коли тип компанії можна змінити, описано в розділі frmCompanyDetail цієї статті. '
Типи компаній і місце їх використання
-
Клієнт замовлення
-
Перевізник для замовлення
-
Постачальник замовлення на придбання
-
Постачальник продукту
Крім того, компанії в версії Northwind Developer можуть мати кілька контактів. '
Компанії на стрічці
Якщо вибрати елемент Компанії на стрічці, у програмі frmCompanyList відобразяться компанії в Northwind.
Список компанії – frmCompanyList
У версії розробника Northwind frmCompanyList – це розділена форма. Розділена форма дає змогу одночасно переглядати дані в двох поданнях: "Подання форми " та " Вікно табличного подання даних". Він також має верхній і нижній колонтитули. У цьому упровадження не буде відображено подання форми. Не відображаючи подання форми, ми матимемо таблицю даних із верхнім і нижніми колонтитулами.
Ось як ми досягаємо цього.
У frmCompanyList роздільна лінія між заголовком і таблицєю даних не відображається. Для властивості форми Роздільна лінія розділеної форми має значення Ні, приховуючи таким чином подання форми.
Розділені форми та форми таблиці даних схожі на аркуші Excel. Вони підтримують фільтрування й сортування, а також можна відобразити, приховати або перемістити поля чи стовпці. Крім того, можна підсумувати стовпці.
Розділи колонтитулів розділеної форми дають змогу використовувати кнопки, зображення, текст (підписи) і будь-які інші елементи керування форми доступу, які потрібно вдосконалити. Докладні відомості про форми та розділені форми можна почати тут. У табличному поданні не відображаються розділи колонтитулів.
Докладні відомості див. в статті Загальні відомості про форми та Створення розділеної форми. '
Форма "Список компаній" підтримує такі п'ять дій:
-
Застосування настроюваного, вбудованого фільтра, фільтрування за вимогою або обох
-
Відобразити або приховати поля
-
Створення підписів
-
Показати фільтр
-
Додавання нової компанії
Двічі клацніть будь-де в рядку відомостей, щоб відкрити форму "Відомості про компанію" (не тільки ідентифікатор, як в інших формах). '
Попередньо вбудовані фільтри та фільтрування за вимогою
Форма frmCompanyList багата можливостями для фільтрування компаній у Northwind. У верхній частині екрана можна фільтрувати за допомогою таких перемикачів:
-
Усі компанії (за замовчуванням)
-
Лише клієнти
-
Лише перевізники
-
Лише постачальники
Крім того, доступні вбудовані параметри фільтрування даних у табличному поданні на вимогу. Усі фільтри, застосовані до форми "Список компаній " (попередньо вбудовані або на вимогу), передаються та застосовуються до frmCompanyDetail під час її відкриття.
Щоб передати фільтри з однієї форми до іншої, спочатку слід очистити рядок фільтра форми, щоб він містив лише імена полів. Перегляньте модуль коду Open_frmCompanyDetail для більш детального пояснення того, як це робиться, і в frmCompanyDetail в коментарях для Form_Load , щоб побачити, як він застосовується.
Відомості про фільтр передаємо до форми "Відомості про компанію " через властивість OpenArgs форми, а не з умовою відвідання форми. Докладні відомості про OpenArgs див. тут.
Відобразити або приховати поля
Виберіть показати або приховати поля , щоб відкрити діалогове вікно зі списком усіх доступних полів; можна перевірити або зняти прапорець для одного або кількох стовпців. Вибраний макет зберігається з одного сеансу до іншого, доки не буде розгорнуто нову версію застосунку. Див. статтю Відображення або приховання стовпців у табличному поданні.
Створення підписів
Кнопка Створити етикетки відкриває майстер етикеток Access. Дізнайтеся більше про майстер етикеток тут: Створення поштових етикеток в Access.
Відкрити відомості про компанію
Двічі клацніть будь-де в докладному рядку, щоб відкрити frmCompanyDetail
Клацніть поле ідентифікатора (настроєно як гіперпосилання) або двічі клацніть будь-яке інше поле в рядку відомостей, щоб відкрити frmCompanyDetail для вибраної компанії та передати фільтр форми, застосований до списку компанії, до frmCompanyDetail.
Відомості про компанію – frmCompanyDetail
На перший погляд frmCompanyDetail може виглядати відносно просто. Однак це не так. У коді за формою багато відбувається! У формі виділяються такі дії та функції:
-
Кілька кнопок і посилань
-
Додати компанію
-
Список компанії електронної пошти
-
Показати фільтр
-
Видалити компанію
-
Відкриття карти на основі адреси
-
Відкриття веб-сайту за гіперпосиланням
-
-
Скасування або збереження дій у режимі додавання або редагування
-
Бізнес-правила для керування зміненням типу компанії
-
Перевірка цілісності даних перед подією видалення '
Подія Form_Load містить такі дії:
-
Використання кількох параметрів, переданих до форми за допомогою OpenArgs і настроюваної функції Northwind StringToDictionary
-
Використання властивості форми OpenArgs для надання користувачу дозволу на додавання нової компанії під час отримання замовлення
-
Використання методу GoToRecord для додавання нової компанії
-
Використання методу SearchForRecord для переходу до компанії, вибраної на frmCompanyList
-
Параметри розгалуження та умовного виконання (див . Form_Load події)
-
Варіант 1 – оператор інциденту
-
Варіант 2. Вкладене якщо інше
-
Варіант 3. ElseIf
-
Варіант 4. Вкладені якщо Інакше та ElseIf '
-
У події Form_Current відбувається таке:
-
Змініть підпис підформи та вихідний об'єкт під час виконання, викликавши підформу ManageFormOptions(). Цей підпрограма викликається з кількох місць у цій формі. '
Скасувати або зберегти дії в режимі додавання або редагування.
Наші форми Access зв'язані. Що це значить? Від корпорації Майкрософт: "Зв'язана" форма – це форма, яка безпосередньо пов'язана з джерелом даних, наприклад таблицею або запитом, і може використовуватися для введення, редагування або відображення даних із цього джерела даних".
У зв'язаних формах Програма Access не вимагає явно "зберігати" дані. Під час переходу від одного запису до наступного Access ваші дані зберігаються автоматично. Часто це працює так, як ви хочете. Але що робити, якщо користувач має виконати певну дію, щоб указати, що він готовий до збереження?
Наприклад, форма frmCompanyDetail має підформу для контактів (sfrmCompanyDetail_Contacts). Отже, що станеться, якщо ви почнете додавати або редагувати дані компанії , скажімо, номер телефону, і зупиніть вказівник миші, щоб виправити помилку, яку ви помітили в інформації контакту? За замовчуванням access зберігає всі зміни, внесені в запис компанії, якщо клацнути запис контакту, який вам не потрібен.
У цій формі ми показуємо один зі способів виконання цієї дії за допомогою одного запису для компанії.
У чому причина використання кнопки "Скасувати "? Клавіша escape скасовує всі введені або змінені (але незбережені) дані в елементі керування у формі. У цьому стані в селекторі записів з'явиться піктограма олівця (сіра вертикальна риска в крайній лівій частині рядка).
Однак, натиснувши кнопку Додати компанію , ви помітите, що немає піктограми олівця, доки ви не почнете вводити дані в новий запис компанії. Що робити, якщо ви передумаєте додавати нову компанію в цей момент? Якщо натиснути клавішу виходу, нічого не відбувається, тому що ви ще не ввели жодних даних. Саме тому у нас є кнопка "Скасувати".
Натискання кнопки Скасувати завжди працює; клавіша escape працює, лише якщо ви ввели або змінили дані.
Якщо ви починаєте додавати або змінювати дані, а потім закриваєте форму, не натискаючи кнопку "Зберегти" або "Скасувати", за замовчуванням Access збереже дані.
Правило для бізнесу: Ми хочемо, щоб ви чітко вказали, що хочете зберегти компанію Компанії як ділове правило Компанії. Щоб переконатися, що потрібно перевірити, чи користувач натиснув кнопку "Зберегти" в події Form_BeforeUpdate і чи не натиснув він кнопку "Зберегти", з'явиться запит на те, чи потрібно зберегти або скасувати внесені зміни. '
Змінення типу компанії
Правило для бізнесу: Якщо компанія має будь-які наявні замовлення, замовлення на придбання або є постачальником продукту, користувач не може змінити тип компанії. Ми створили функцію CompanyIsActive() для визначення наявності будь-якої з наведених вище умов. У такому разі користувач не зможе змінити тип компанії, доки ці посилання не буде очищено (видалено).
Це правило застосовується лише в цій формі. У програмі, готовій до виробництва, ви не дозволите користувачам змінювати дані, відкривши таблицю безпосередньо. У Northwind ми дозволяємо вам відкривати таблиці та робити все, що завгодно. Це чудовий спосіб навчитися, але він також дає змогу вносити зміни, які можуть порушувати правила.
Ви завжди повинні програмувати оборонно. Заплануйте неочікуване. Навіть якщо компанія зараз є перевізником, це не означає, що вони не були в якийсь час постачальником або клієнтом. Ідентифікатор користувача можна знайти в попередніх записах у таблицях ProductVendor або PurchaseOrder . '
Настроювана форма діалогового вікна.
Щоб відобразити результати, cboCompanyTypeID_BeforeUpdate використовує форму діалогового вікна FrmGenericDialog. Це може стати чудовою альтернативою стандартному повідомленню, якщо у вас є багато інформації для відображення. Вона також використовується з формою працівника для аналогічних цілей.' Видалити перевірку цілісності даних
У випуску Northwind Starter ми дозволяємо програмі Access за замовчуванням сповіщати про те, що компанію не можна видалити, якщо вона містить пов'язані записи.
У випуску Northwind Developer Edition ми сповіщаємо вас перед видаленням, а не приймаємо стандартну поведінку Access. Ми робимо це за допомогою тієї ж функції, що і тип компанії Change; функція CompanyIsActive().
Різниця полягає в тому, що ми піклуємося лише про замовлення або замовлення на придбання. Якщо немає замовлень або замовлень на придбання, ми підтверджуємо ваш намір видалити, і ми видалимо постачальника та контакти продукту, якщо вони існують для вас.
-
Northwind 2.0 Developer Edition: що ви повинні знати
-
Northwind 2.0 Developer Edition: Усі теми