warning: openlog() has been disabled for security reasons in /home/debet/public_html/modules/syslog/syslog.module on line 76.

Створення нового типу документів

Скачать: 

Для створення нового типу документів нам потрібно виконати дії, подібні до тих, які ми виконували в статті “Створення нового типу довідника”. Структура і назви файлів практично не відрізняються, за винятком деяких деталей, про які поговоримо пізніше. Не будемо детально зупинятись на описанні файлів. Їхні коди ви можете знайти в архіві. Просто в деяких моментах опишу “Чому воно так?” , “А чому така різниця?”, тощо.

Для початку трошки загальних понять. Папки документів зберігаються в папці Scripts/Docs. Всі типи папок документів знаходяться в окремих папках (саме одну з них ви знайдете в архіві source.zip).

Для створення нового типу документів дам потрібно:

  1. В Scripts/Docs створити папку з назвою, яка відповідає назві самого документу.

  2. Створити в ній необхідні файли.

  3. Створити потрібні таблиці в базі даних.

Тепер про кожен пункт детальніше.

  1. Назва папки буде відповідати назві типу документу. В системі "Дебет Плюс" папки документів прийнято називати двома буквами (наприклад, “NN”). Ми будемо створювати документ “CU” (Універсальний касовий ордер). Тому створимо відповідну папку в Scripts/Docs. Після цього ми скопіюємо файли з архіву у цю папку і переглянемо їх.

  2. Легко бачити, що зміни між тим, що ми створювали у попередній статті незначні. Але давайте по порядку розглянемо коже з файлів.

Описання типу довідника (class.xml). Нагадую, що в класі ми описуємо змінні довідника. Імена цим змінним ми будемо давати такі, як і імена полів, замінюючи першу літеру F на H.

В порівнянні з файлом класу, зміни практично відсутні, за винятком того, що тег <DpCl> змінився тегом <DpDoc>, в якому вказано тип документу (назва створеної папки), назва та підсистема, в якій цей документ буде створюватись. Зверніть увагу на назву підсистеми. Пізніше (в наступних статтях) нам це знадобиться.

Зв'язок змінних з полями таблиці (dpmapping.xml). Змін немає, за винятком того, що вказано тільки одну таблицю для хедера (заголовку).

Файл list.xml. Без змін. Спочатку вказано назву таблиці, а потім перелік полів. Не лякайтесь, що перелік відображуваних полів складний. Ви можете спростити його, видаливши теги <page> і тоді все стане на свої місця.

Файл e-cu.js і form.xml. Тут файл e-cu.js є файлом де описуються події на формі. Описання форми ви вже вмієте робити. А от в e-cu.js є деякі зміни. Зараз ми їх і розглянемо.

По перше, Файли, що підключаються, описують класи об`єктів, що використовуються для опису типу документів, включаючи і сам DpDoc.js.

По-друге, зверніть увагу на описання гріда. Спочатку ми в функції load() описуємо функції на змінні роботи з грідом, а потім описуємо і самі функції. Давайте їх переглянемо:

initgrid() - ініціалізується грід.

ListMenuInit() та onSelectRowMenu() – Описують контекстне меню.

SaveRows() - збереження рядків документів.

Якщо перші три функції є функціями класу і викликаються при завантаженні гріду, то остання (SaveRows()) викликається в функції збереження документів onSave().

Думаю з іншими функціями проблем не повинно бути. Не складно розібратись що і до чого. Якщо виникають питання чи зауваження то пишіть на форум – допоможемо.

Описання гріду, який знаходиться на формі знаходиться в файлі rowlist.xml.

Що стосується описання рядків документу, то там ніяких змін немає. Під словами “змін немає” я маю на увазі, що прочитавши попередню статтю по аналогії можна розібратись і з цією статтею.

  1. Тепер головне не забути створити таблиці в базі даних :))). В файлі STRU_CU.xml є опис структури таблиць. Хочемо тільки наголосити, що в системі “ДебетПлюс” прийнято правило, що імена таблиць даються за такими формулами:

для шапки документів H+<ТИП ДОКУМЕНТУ>

для рядків документів R+<ТИП ДОКУМЕНТУ>

Це і все. Залишилось перезапустити систему, знайти створений тип документу, додати папку і перевірити чи все працює так як потрібно.

Пам'ятайте, що папка userStru повинна знаходитись в папці userData.