Модуль data inc


Data Module in Dll with delphi?

I created a database program which has a problem. I used Borland Delphi 7.x

My Question is

«How to create a data module in Dll (Dynamic Link Library) With Delphi?

2 Answers 2

You can create the code from the data module, just like you would in a normal application. File|New|Data Module

But I am guessing that you want to create an instance of a data module in a DLL.

DataModules are no different other classes and components, and can be created in code.

Open your DLL project in the IDE. Under the File|New menu, do you see an option for Data Module?

Not the answer you’re looking for? Browse other questions tagged database delphi dll datamodule or ask your own question.

Hot Network Questions

Subscribe to RSS

To subscribe to this RSS feed, copy and paste this URL into your RSS reader.

site design / logo © 2020 Stack Exchange Inc; user contributions licensed under cc by-sa 4.0 with attribution required. rev 2020.11.12.35408

Как создать свой модуль

В данном разделе документации рассказано как создать модуль для DIAFAN.CMS. На первый взгляд это легко, но, как и везде, есть свои особенности. Приложение к данному разделу – каркас модуля, который можно скачать по этой ссылке.

Модуль – набор файлов в папке modules/имя_модуля. Подробнее об устройстве модуля.

В нашем примере модуль будет называться example. Все файлы модуля будут храниться в папке modules/example.

Для того чтобы подключить наш сырой модуль к DIAFAN.CMS, необходимо сделать записи в таблицах и . Для этого в файле example.install.php прописываем:

// записи в таблице
public $modules = array(
array(
«name» => «example» ,
«admin» => true ,
«site» => true ,
«site_page» => true ,
),
);

// меню административной части
public $admin = array(
array(
«name» => «Название модуля» ,
«rewrite» => «example» ,
«group_id» => «1» ,
«sort» => 5 ,
«act» => true ,
«children» => array(
array(
«name» => «Настройки» ,
«rewrite» => «example/config» ,
),
)
),
);

Теперь модуль появится в списке модулей для установки в разделе «Модули и БД» – «Установка модулей». Устанавливаем модуль.

Следующим шагом будет добавление нашего модуля на какую-нибудь страницу сайта. Идем в админку, создаем обычную текстовую страницу и во вкладке «Дополнительно» прикрепляем к ней наш новый модуль.

Все, модуль готов к использованию!

Правда пока он ничего не делает, поэтому давайте сделаем его функциональным.

Давайте сделаем модуль, который будет позволять размещать объявления на сайте.

Все что вы прочитаете ниже не жесткие пошаговые инструкции и выполнять действия в том порядке, котором это сделано здесь не обязательно. У каждого программиста свой подход к решению поставленной задачи и необходимо уметь самостоятельно думать, чтобы все получалось.

Создаем таблицу в БД

Для начала определимся с задачами, которые должен выполнять модуль:

  • позволять зарегистрированным пользователям сайта добавлять объявления
  • позволять администратору редактировать объявления
  • позволять администратору размещать объявления

Объявления будут размещены в базе данных в таблице ВАШ_ПРЕФИКС_example, и нам необходимо разработать ее структуру.

Префикс по умолчанию – diafan_. Вы могли переименовать его при установке DIAFAN.CMS, поэтому создавайте таблицу по подобию других таблиц в БД.

Для работы с БД можно использовать phpMyAdmin, который обычно есть на хостинге.


  • user_id – id нашего зарегистрированного пользователя, который добавил объявление
  • created – время создания
  • text – текст объявления

Таблица с информацией о пользователях у нас уже есть, это модуль по умолчанию «Пользователи», поэтому мы будем использовать эту информацию. Нам достаточно хранить только идентификатор пользователя в поле user_id нашей новой таблицы.

Таблицу описываем в файле example.install.php, чтобы можно было использовать модуль повторно.

public $tables = array(
array(
«name» => «example» ,
«fields» => array(
array(
«name» => «id» ,
«type» => «INT(11) UNSIGNED NOT NULL AUTO_INCREMENT» ,
),
array(
«name» => «user_id» ,
«type» => «INT(11) UNSIGNED NOT NULL DEFAULT ‘0’» ,
),
array(
«name» => «created» ,
«type» => «INT(10) UNSIGNED NOT NULL DEFAULT ‘0’» ,
),
array(
«name» => «text» ,
«type» => «text NOT NULL DEFAULT »» ,
),
),
«keys» => array(
«PRIMARY KEY (id)» ,
),
),
);

Панель администрирования

Начнем разработку нашего модуля с админки, перед этим не забыв включить «Режим разработки» в параметрах сайта, чтобы видеть лог наших возможных ошибок.

Обязательно включайте режим разработки и отключайте кэширование в настройках сайта при любых правках любых модулей.

Если открыть админку нашего нового модуля, мы ничего не увидим, потому что мы ничего не описали. Когда административная часть DIAFAN.CMS подключает администрирование модуля, то ядро системы сразу автоматически подключает для управления информацией модуля все действия. В модуле для начала достаточно просто описать, что и как надо выводить и что редактировать.

Откроем файл example.admin.php и опишем класс Example_admin:

class Example_admin extends Frame_admin
<
// название таблицы бд, по которой будет формироваться список
public $table = ‘example’ ;

// описание полей таблицы
public $variables = array (
‘main’ => array (
‘created’ => array(
‘type’ => ‘datetime’ ,
‘name’ => ‘Дата создания’ ,
),
‘user_id’ => array(
‘type’ => ‘select’ ,
‘name’ => ‘Автор’ ,
),
‘text’ => array(
‘type’ => ‘editor’ ,
‘name’ => ‘Текст объявления’ ,
),
),
);

// описание полей в списке
public $variables_list = array (
‘checkbox’ => » ,
‘name’ => array(
‘name’ => ‘Текст объявления’ ,
),
);

// ссылка на добавление нового объявления
public function show_add ()
<
$this -> diafan -> addnew_init ( ‘Добавить объявление’ );
>

// функция, которая определяет что выводит модуль при открытии
public function show ()
<
// список объявлений
$this -> diafan -> list_row ();
>
>

Свойство класса $table определяет в какой таблице будут храниться наши объявления, массив $variables описывает каждое поле таблицы, массив $variables_list описывает какие поля и как будут выводиться в списке, функция show() выводит список объявлений.

Описывая поля, мы показываем DIAFAN.CMS, что мы хотим править и в каком виде. Заметьте, что порядок следования пунктов повторяется и на странице в админке. Для редактирования пользователя удобнее сделать выпадающий список, где были бы имена зарегистрированных пользователей. Для этого задаем дополнительный атрибут select_db, в котором указываем, в какой таблице базы данных и какие данные брать.

// описание полей таблицы
public $variables = array (
‘main’ => array (
‘created’ => array(
‘type’ => ‘datetime’ ,
‘name’ => ‘Дата создания’ ,
),
‘user_id’ => array(
‘type’ => ‘select’ ,
‘name’ => ‘Автор’ ,
‘select_db’ => array(
‘table’ => ‘users’ ,
‘name’ => ‘fio’ ,
‘where’ => «trash=’1′» ,
),
),
‘text’ => array(
‘type’ => ‘editor’ ,
‘name’ => ‘Текст объявления’ ,
),
),
);

Теперь опишем как будет выглядеть список объявлений. Для этого нужно их добавить в массив $variables_list.

// описание полей в списке
public $variables_list = array (
‘checkbox’ => » ,
‘created’ => array(
‘name’ => ‘Дата и время’ ,
‘type’ => ‘datetime’ ,
‘sql’ => true ,
),
‘name’ => array(
‘name’ => ‘Текст объявления’ ,
),
‘user_id’ => array(
‘name’ => ‘Пользователь’ ,
‘type’ => ‘string’ ,
‘sql’ => true ,
),
‘actions’ => array(
‘del’ => true ,
),
);

Мы добавили два поля из базы данных (атрибут sql означает, что будет брать данные из базы). И указали формат, в котором данные выводяться. И добавили действие «Удалить».

И последнее. Мы должны указать, что основное поле у нас называется text (по умолчанию name):

‘name’ => array(
‘name’ => ‘Текст объявления’ ,
‘variable’ => ‘text’ ,
),

Все, этого вполне достаточно чтобы выводить список объявлений, добавлять, редактировать и сохранять их.

Ура, теперь у нас в списке выводится объявление, время добавления и id пользователя.

Как вы видите, функция list_row выводит поля из базы данных в том виде, в котором они в нее записаны, но это можно легко исправить!

Напишем простую функцию, переопределяющую системное отображение. Формат названия функции таков: list_variable_переменная($row), где $row – массив значений для текущего элемента:

public function list_variable_user_id ( $row )
<
return ‘

То есть, если DIAFAN.CMS обнаруживает эти функции с названием по маске list_variable_*, она понимает, что поле user_id нужно выводить так, как описано в этой функции.

Илон Маск рекомендует:  Ссылка на адрес электронной почты

Внимание! Пример показывает как использовать функцию list_variable_(). Оптимальнее для этой задачи использовать тип *select с описанным уже в $variables атрибутом select_db.

Идем далее. Расширим функциональность нашего модуля, чтобы наши объявления сортировались, удалялись и активировались по нашему велению.

В базу данных добавим поля удаления в корзину, активности и сортировки:

И пропишем настройки в $variables_list .

// описание полей в списке
public $variables_list = array (
‘checkbox’ => » ,
‘sort’ => array(
‘name’ => ‘Сортировка’ ,
‘type’ => ‘numtext’ ,
‘desc’ => true ,
‘sql’ => true ,
‘fast_edit’ => true ,
),
‘created’ => array(
‘name’ => ‘Дата и время’ ,
‘type’ => ‘datetime’ ,
‘sql’ => true ,
),
‘name’ => array(
‘name’ => ‘Текст объявления’ ,
),
‘user_id’ => array(
‘name’ => ‘Пользователь’ ,
‘type’ => ‘string’ ,
‘sql’ => true ,
),
‘actions’ => array(
‘act’ => true ,
‘trash’ => true ,
),
);


Теперь у нас в списке объявлений появятся иконки удаления, активности, и их можно будет сортировать.

Также не стоит забывать про переменную $variables_filter, которая позволяет нам добавлять собственные параметры в фильтре.

Давайте с ее помощью для примера организуем фильтр объявлений по имени пользователя.

public $variables_filter = array (
‘user_id’ => array(
‘type’ => ‘select’ ,
‘name’ => ‘Искать по пользователю’ ,
),
);

Значения для списка берем из базы данных. Таблицу базы данных берем из атрибута select_db в массиве $variables .

В общем, вид представления административной части модуля зависит лишь от вашей фантазии. Никто не принуждает вас использовать функцию list_row, вы можете написать любой собственный обработчик.

Мощным средством расширения функционала модуля является тип function.

Он позволяет определять пользовательские функции для редактирования и сохранения поля. Давайте сделаем так, чтобы при редактировании user_id имя пользователя у нас было не просто выпадающим списком, а выбиралось с помощью AJAX-запроса:

Переназначим $variables, укажем для user_id тип не select, а function.

public $variables = array (
‘main’ => array (
.
‘user_id’ => array(
‘type’ => ‘function’ ,
‘name’ => ‘Автор’ ,
),
.
),
);

И объявим две функции

public function edit_variable_user_id ()<>

public function save_variable_user_id ()<>

Займемся визуальным отображением редактирования поля user_id и будем править функцию edit_variable_user_id.

public function edit_variable_user_id ()
<
echo ‘

Напишем простой jQuery обработчик, отправляющий Ajax-запрос. Для этого создадим файл modules/example/admin/js/example.admin.edit.js. Этот JS-файл подключиться для формы редактирования автоматически. Созданный файл будет следующего содержания:

$( «.user_id» ). click (function() <
var user_id = $( this ). attr ( ‘rel’ );
diafan_ajax . init ( <
data : <
action : «user» ,
module : «example» ,
user_id : user_id
>,
success : function( response ) <
alert ( response . name );
>
>);
>);

Обработчик по нажатию на элемент с классом user_id отправляет AJAX-запрос текущей странице с параметрами module, action и user_id. Ajax-запрос отправляем через обработчик diafan_ajax, чтобы были добавлен идентификационный хэш и его проверка.

Теперь нам нужно написать example.admin.action.php

class Example_admin_action extends Action_admin
<
public function init ()
<
if (! empty( $_POST [ ‘user_id’ ]))
<
$this -> result [ «name» ] = DB :: query_result ( «SELECT fio FROM WHERE > , $_POST [ ‘user_id’ ]);
>
else
<
$this -> result [ «name» ] = ‘ошибка’ ;
>
>
>

Файл example.admin.action.php подключается лишь тогда, когда одновременно отправляются POST переменные action и module. Значение переменной module должно соответствовать названию нашего модуля. При соблюдении этих условий подключиться функция init () , в которой должно быть описано обработка запроса. Данные, сохраненные в переменной $this -> result автоматически будут отправлены обратно в JSON-формате.

Теперь доработаем функцию save_variable_user_id, в которой происходит сохранение поля. Тут вы можете вставлять данные в другую таблицу, обрабатывать самостоятельно переменные $_POST, дважды досчитать до бесконечности.

Для того чтобы записать данные в таблицу , которую использует наш модуль, можно сделать такую хитрость:

public function save_variable_user_id ()
<
$this -> diafan -> set_query ( «user_ > );
$this -> diafan -> set_value ( 1 );
>

Таким образом, мы добавили к SQL запросу UPDATE поле user_id со значением 1.

Текущую выборку из базы данных можно получить через функцию $this -> diafan -> values () . Например, $this -> diafan -> values ( ‘site_id’ ) вернет значение поля site_id .

Как вы могли сами увидеть, function предоставляет огромные возможности для расширения функционала административной части модуля, все зависит от вашей фантазии и правильного крепления рук к телу.

Еще есть замечательный тип в $variables – module. Он означает, что необходимо подключить к редактированию сторонний модуль.

Как это работает.

Там где нужно подключить модуль example, например, при редактировании новостей в файле modules/news/admin/news.admin.php в $variables прописываем.

public $variables = array(
‘main’ => array(
‘example’ => ‘module’ ,

),

);

При редактировании новости DIAFAN.CMS будет искать файл modules/example/admin/example.admin.inc.php, где описаны функции edit () и save () .

Это работает практически так же, как и тип function, только между модулями.

Вкладки для части модуля и конфигурация


В DIAFAN.CMS административную часть модуля можно еще дополнять различными расширениями, вкладками (подразделами модуля, например, как заказы в магазине). Загляните в папку modules/shop/admin

Делается это так: создается файл example.admin.bolt.php и в нем инициализируется класс

class Example_admin_bolt extends Frame_admin

Потом мы идем в http://site.ru/admin/admin/ и добавляем подраздел нашему модулю с псевдоссылкой example/bolt. Количество расширений модуля зависят лишь от вашей фантазии.

Есть еще особый тип расширения – конфигурация.

Регистрируется он так же, как и обычное расширение: в http://site.ru/admin/admin/ добавляем подраздел «Настройки» с псевдоссылкой example/config.

Основной его отличительной особенностью является настройка в $config.

public $config = array( ‘config’ );

Если она установлена, то сохранение происходит не в таблицу, указанную в $table , а в таблицу , для доступа к которой предусмотрена специальная функция ядра configmodules, которую можно вызвать откуда угодно.

Пользовательская часть

Если мы подключили модуль к странице сайта, то при ее открытии из контроллера example.php вызывается функция init () .

Как можно видеть из примера, при инициализации модуля подключается модель. Результат исполнения записывается в переменную $this -> result . После подключается шаблон, указанный в $this -> result [ «view» ] . В примере $this -> result [ «view» ] = ‘show’ , значит подключается файл modules/example/views/example.view.show.php.

Если в модуле будут использоваться перменные, передаваемые в URL, то их нужно указать в массиве rewrite_variable_names.

public $rewrite_variable_names = array( ‘page’ , ‘show’ );

Наш модуль все равно сыроват. При заходе на страницу с прикрепленным модулем мы ничего не видим. Давайте сделаем список объявлений, разбитый на страницы. При нажатии на объявление оно откроется в отдельном окне, в котором можно будет вписать комментарий.

Это не сложно, не пугайтесь :)

public function show ()
<
// данные будем кэшировать
$cache_meta = array(
«name» => «list» , // метка кэша
«page» => $this -> diafan -> page > 1 ? $this -> diafan -> page : 1 ,
);

// если данных нет в кэше занесем их
if (! $this -> result = $this -> diafan -> _cache -> get ( $cache_meta , ‘example’ ))
<
$this -> result = array();

////navigation//
$this -> diafan -> _paginator -> nen = DB :: query_result ( «SELECT COUNT( » );
$this -> result [ «paginator» ] = $this -> diafan -> _paginator -> get ();
////navigation///

$rows = DB :: query_range_fetch_all ( «SELECT ORDER BY created DESC, id DESC» ,
$this -> diafan -> _paginator -> polog , $this -> diafan -> _paginator -> nastr );

foreach( $rows as $row )
<
$row [ ‘created’ ] = $this -> format_date ( $row [ ‘created’ ], ‘example’ );
$row [ ‘link’ ] = $this -> diafan -> _route -> link ( $this -> diafan -> _site -> id , $row [ «id» ], ‘example’ );

$this -> result [ ‘rows’ ][] = $row ;
>
//сохранение кэша
$this -> diafan -> _cache -> save ( $this -> result , $cache_meta , ‘example’ );
>

$this -> result [ «paginator» ] = $this -> diafan -> _tpl -> get ( ‘get’ , ‘paginator’ , $this -> result [ «paginator» ]);
$this -> result [ ‘view’ ] = ‘show’ ;
>

Как Вы видите по коду здесь, мы использовали кэш. Это необходимо, если Вы хотите уменьшить нагрузку на базу данных и сократить время отображения страницы.

На время разработки мы всегда рекомендуем вам отключать кэширование в параметрах сайта, потому что по умолчанию кэш сбрасывается лишь при изменении элемента в панели администрирования, то есть все Ваши манипуляции с базой данных в файле *.model.php со включенным кэшированием Вы можете увидеть не сразу.

Накидаем небольшой пример, чтобы было понятнее

$cache_meta = array(
«name» => «trololo» , // метка кеша
«language» => _LANG ,
«page» => $this -> diafan -> page > 1 ? $this -> diafan -> page : 1 ,
«site_id» => $this -> diafan -> _site -> id ,
);
// если кэш сохранен он будет в $data если нет то выполнится условие
$data = array();
if(! $data = $this -> diafan -> _cache -> get ( $cache_meta , $this -> diafan -> module ))
<
$data = array( ‘котейка’ , ‘черный’ );
//сохранение кэша
$this -> diafan -> _cache -> save ( $data , $cache_meta , $this -> diafan -> module );
>

Функции format_date () форматирует дату в соответствии с настройкой модуля, она наследуется из класса Model , подробнее о ней можно почитать здесь.

Давайте добавим нашему модулю в конфигурацию кроме количества объявлений на странице еще и формат даты.

Создадим файл конфигурации modules/example/admin/example.admin.config.php и наполним его:

public $variables = array (
‘base’ => array (
‘nastr’ => array(
‘type’ => ‘numtext’ ,
‘name’ => ‘Количество объявлений на странице’ ,
),
‘format_date’ => array(
‘type’ => ‘select’ ,
‘name’ => ‘Формат даты’ ,
‘select’ => array(
0 => ‘1.05.2020’ ,
1 => ‘1 мая 2020 г.’ ,
2 => ‘1 мая’ ,
3 => ‘1 мая 2020, понедельник’ ,
4 => ‘не отображать’ ,
),
),
)
);

public $config = array( ‘config’ );

Получился функциональный модуль аж с двумя изменяемыми настройками и кэшированием.

Вы можете создать также отдельный шаблонный тег для модуля. Об этом есть отдельный урок «Как добавить шаблонный тег».

Параметрический поиск по компонентам


  • 21.02.2020 10:40Приемопередатчики интерфейса CAN с единым напряжением питания 3.3 В и защитой от перегрузок на шине до ±36 В
    Устройства также отличаются высокой пропускной способностью, функцией регулировки скорости нарастания выходного сигнала и малопотребляющим режимом ожидания
    Производитель: Exar Группа компонентов: CAN

  • 21.02.2020 10:22Миниатюрный модуль зарядного устройства малой мощности для работы в системах накопления энергии из окружающей среды
    Устройство, выполненное в виде готового решения с минимальным числом внешних компонентов, отличается низкой стоимостью, высокой эффективностью и чрезвычайно компактными размерами
    Производитель: Silvertel Группа компонентов: PoE-модули питания

  • 21.02.2020 10:08Низковольтный модуль драйвера светодиодов Ag201 с программируемой величиной выходного тока
    Благодаря возможности пользовательской установки максимального тока нагрузки, драйвер способен управлять различными типами светодиодов
    Производитель: Silvertel Группа компонентов: Контроллеры Дисплеев

  • 21.02.2020 09:53Коммутаторы Ethernet BCM56980 серий StrataXGS® Tomahawk® 3 с пропускной способностью 12.8 Tбит/с
    Семейство StrataXGS Tomahawk 3 с поддержкой до 32 портов стандарта 400GbE может использоваться для построения высокомасштабируемых распределительных, объединительных и масштабирующих коммутаторов
    Производитель: Broadcom Limited Группа компонентов: Ethernet

  • 21.02.2020 09:44Компактный DC/DC преобразователь в исполнении µModule® с током нагрузки 20 А в 1-канальной и 10 А на канал в 2-канальной конфигурации,
    ИС предназначена для каскадов питания ПЛИС, графических процессоров, специализированных микросхем и системного энергообеспечения
    Производитель: Analog Devices Группа компонентов: Понижающие преобразователи напряжения

  • 28.11.2020 06:05Скидки от 50% на ПО для проектирования печатных плат от Mentor Graphics
    ЗАО «Нанософт», официальный дистрибьютор компании Mentor Graphics, объявляет о старте специального предложения на приобретение программных решений для разработки электроники – PADS
    Производитель: Группа компонентов:
  • 24.09.2020 08:15Компания АВИТОН — официальный представитель Regatron (Швейцария)
    Компания Regatron осуществляет разработку и производство источников питания
    Производитель: Группа компонентов: Источники питания
  • 15.09.2020 08:42Arrow Electronics проводит в жизнь технологии краудфандинга с Indiegogo
    Их деятельность направлена на оптимизацию цепочки краудфандинг — продукт и должна ускорить темпы внедрения инноваций для технологии интернета вещей (IoT)
    Производитель: Arrow Electronics Russia Группа компонентов:
  • 08.08.2020 08:41«Новости Электроники + Светотехника» №01/2020: LED-освещение для промышленных объектов

    Производитель: Группа компонентов:

  • 22.07.2020 08:31Прошивка Serial Extender упрощает работу с модулями MBee
    Два радиомодуля MBee-868 с прошивкой Serial Extender позволяют заменить проводное последовательное соединение между двумя любыми устройствами с интерфейсом UART
    Производитель: Группа компонентов: Модули

  • 29.07.2015 10:24Компания Altera присоединилась с проекту OPNFV с целью привнести преимущества ПЛИС FPGA в технологию виртуализации сетевых функций
    Решения на базе ПЛИС FPGA и Систем-на-Кристалле уже ускоряют работу серверов дата-центров в области предоставления поисковых сервисов и свёрточных нейронных сетей
    Производитель: Altera Группа компонентов: FPGA
  • 29.07.2015 10:14Пример разработки хранилища данных на базе ПЛИС FPGA удваивает срок службы NAND FLASH памяти
    Архитектура ПЛИС FPGA со встроенным процессорным ядром предлагает инновационный метод создания устройств хранения данных для облачных приложений и высокопроизводительных вычислительных систем
    Производитель: Altera Группа компонентов: SoC FPGA
  • 08.07.2015 13:41Компания Pentair предлагает новые трехмерные чертежи и услуги для конструкторов на портале Traceparts
    Чертежи Schroff на портале Traceparts
    Производитель: Schroff Группа компонентов:
  • 13.04.2015 14:37Cypress Semiconductor: CySmart™ — приложения для устройств Bluetooth® с низким энергопотрбелением (BLE)

    Производитель: Cypress Группа компонентов: Bluetooth


  • 28.01.2015 09:43Audi выбрала Системы-на-Кристалле компании Altera для применения в автомобилях с функцией «Автопилот»
    Altera и TTTech Deliver Industry, лидер в области разработки продвинутых систем помощи водителю (ADAS), приступили к разработке систем управления автопилотируемых автомобилей для компании Audi
    Производитель: Altera Группа компонентов: Программируемая Логика

Data Logger Suite: протоколирование и наблюдение

Для Win2000 — Windows 10 (2020) (Server, x86, x64). Последняя версия: 2.9.4 build 911. 23 октября 2020.

Модуль запроса и обработки данных для модулей ADAM, ICP-CON и NuDAM

Последняя версия: 4.0.82 build 826. 26 августа 2020.

Несколько производителей предлагают модули для контроля и сбора данных, реализующие функции аналого-цифрового, цифро-аналогового, цифрового ввода/вывода, таймеров/счетчиков и т.п.. Модули могут управляться удаленно с помощью набора команд, которые называются протоколом DCON. Обмен данными между модулем и управляющим компьютером (хостом) осуществляется в формате ASCII через двунаправленную линию связи стандарта RS-485.

Этот модуль запроса и обработки данных позволяет считывать и обрабатывать текущие значение из различных DAQ модулей. Модуль обработки данных может проверять контрольную сумму пакетов данных и преобразовывать пакеты данных в переменные. Позднее вы можете использовать эти переменные в модулях экспорта данных.

Этот модуль для Data Logger Suite: протоколирование и наблюдение поддерживает следующие типы DAQ модулей:

Серия ICP-CON I-7000 от компании ICP DAS

ICPCON I-7005 (8-channel thermistor input and 6-channel digital output module)

ICPCON I-7011 (Single channel analog input module with DOx2, DIx1)

ICPCON I-7012 (Single channel analog input module with DOx2, DIx1)

ICPCON I-7013(D) (Single channel RTD input module)

ICPCON I-7014 (Single channel analog input module with linear mapping, DOx2, DIx1)

ICPCON I-7015(D) (6-channel RTD input module)

ICPCON I-7016 (D) (ADC/DAC module with DOx4,DIx1)

ICPCON I-7017 (8-channel voltage and current input module)

ICPCON I-7018 (8-channel voltage, current and thermocouple input module)

ICPCON I-7019 (8-channel voltage, current, and thermocouple input module, with various types of inputs)

ICPCON I-7033(D) (3-channel RTD input module)

ICPCON I-7041 (DIO module, DIx14)

ICPCON I-7042 (DIO module, DOx13)

ICPCON I-7043 (DIO module, DOx16)

ICPCON I-7044 (DIO module, DIx4, DOx8)

ICPCON I-7045 (DIO module, DOx16)

ICPCON I-7050 (DIO module, DIx7, DOx8)

ICPCON I-7051 (DIO module, DIx16)

ICPCON I-7052 (DIO module, DIx8)

ICPCON I-7053 (DIO module, DIx16)

ICPCON I-7055 (DIO module, DIx8, DOx8)

ICPCON I-7058 (DIO module, DIx8)


ICPCON I-7059 (DIO module, DIx8)

ICPCON I-7060 (DIO module, DIx4, DOx4)

ICPCON I-7063 (DIO module, DIx8, DOx3)

ICPCON I-7065 (DIO module, DIx4, DOx5)

ICPCON I-7066 (DIO module, DOx7)

ICPCON I-7067 (DIO module, DOx7)

ICPCON I-7080 (2 channel counter with DOx2)

ICPCON I-7083 (3 axis, 32-bit encoder counter)

Серия ADAM-4000 от компании Advantech

ADAM 4013 (Single channel RTD input module)

ADAM 4015 (6-channel RTD input module)

ADAM 4016 (ADC/DAC module with DOx4,DIx1)

ADAM 4017 (8-channel analog input module)

ADAM 4018 (8-channel analog input module)

ADAM 4050 (DIO module, DIx7, DOx8)

ADAM 4051 (DIO module, DIx16)

ADAM 4052 (DIO module, DIx8)

ADAM 4053 (DIO module, DIx16)

ADAM 4055 (DIO module, DIx8, DOx8)

ADAM 4080 (Counter/Frequency input module)

NuDAM 6013 (Single channel RTD input module)

NuDAM 6015 (6-channel RTD input module)

NuDAM 6016 (ADC/DAC module with DOx4,DIx1)

NuDAM 6017 (8-channel analog input module)

NuDAM 6018 (8-channel analog input module)

NuDAM 6050 (DIO module, DIx7, DOx8)

NuDAM 6051 (DIO module, DIx16)

NuDAM 6052 (DIO module, DIx8)

NuDAM 6053 (DIO module, DIx16)

NuDAM 6055 (DIO module, DIx8, DOx8)

NuDAM 6080 (Counter/Frequency input module)

Замечание: Продукты и компании, указанные здесь используются только для обозначение и идентификации и могут быть торговыми и/или зарегистрированными марками соответствующих компаний.

Использование Data Module

В программе нам понадобятся 5 компонентов TTable и 2 компонента TDataSource».Разместим их в отдельном модуле данных, чтобы эти компоненты не загромождали основное окно.


Это что, основная причина использования DataModule ? Звучит как-то неубедительно. Для чего вообще используется DataModule ?

околотемный вопрос:если создавать фрейм ну пусть со справочником каим-то: Куда кидать DataSource?

околотемный вопрос:если создавать фрейм ну пусть со справочником каим-то: Куда кидать DataSource?

во-первых, к серверу надо подключиться,во-вторых, без датамодуля, тебе придется на каждой форме держать по компоненту для коннекта с сервером + компонент для датасета + датасурс

Кстати, к недостаткам датамодуля можно отнести необходимость руками закрывать датасеты при закрытии формы; и доп. сложности, когда используются несколько экземпляров одной и той же формы.

ПО DataMobile, версия Стандарт (Android)

Специализированное программное обеспечение для терминалов сбора данных и мобильных устройств на Win и Android.

DataMobile – это специализированное программное обеспечение для терминалов сбора данных и мобильных устройств. ПО предназначено для автоматизации складского учета, обладает широкими функциональными возможностями для работы на складе и в торговом зале. Универсальность продукта заключается в параметрических настройках любых бизнес-процессов предприятия.

DataMobile — ПО для ТСД на Win и Android с возможностью выбора версии. Программный комплекс легко масштабируется путем апгрейда с одной версии на последующую. Регулярные обновления ПО с расширением функционала текущей версии предоставляются бесплатно.

Для автоматизации ЕГАИС в рознице и на складе, в ПО DataMobile предусмотрен дополнительный модуль ЕГАИС, который можно приобрести отдельно и дополнить им версии Стандарт Pro, Online Lite и Online.

Программный продукт поддерживает все известные модели ТСД, более подробный список моделей можно увидеть на сайте разработчика. В нашем интернет-магазине вы можете приобрести готовые комплекты для автоматизации ЕГАИС и простого складского учета, а также для инвентаризации основных средств и мобильной торговли.

Функции DataMobile:

  • Инвентаризация товаров и/или основных средств
  • Приход, отпуск, перемещение товара
  • Учет по серийным номерам
  • Работа с упаковками
  • Идентификация товара
  • Торговля по образцам
  • Подбор заказа
  • Мобильная переоценка
  • Печать этикеток и документов на сетевых принтерах
  • Борьба с очередями
  • Выгрузка внешних заказов на кассовое ПО АТОЛ Fronol
  • Адресное хранение
  • Авторизация пользователей
  • Редактор шаблонов прямо в терминале
  • Поддержка аппаратных кнопок терминала
  • Звуковое сопровождение событий и сообщений

Ключевые преимущества DataMobile:

  • Настройка любых бизнес-процессов без программирования, только параметрические настройки.
  • Полноценный on-line режим и динамическое адресное хранение.
  • Готовое решение для 1С, не требующее для работы промежуточных баз и конфигураций.
  • Поддержка широкого спектра мобильных устройств (Win и Android).
  • Регулярные бесплатные обновления с расширением функционала
  • Бесплатный helpdesk онлайн сервис

Совместимость:

С типовыми конфигурациями платформы «1С :Предприятие 7.7, 8.0, 8.1, 8,2, 8.3»:

  • 1С:Торговля и склад ред. 9.2;
  • 1С:Управление торговлей ред. 10.3, ред. 11;
  • 1С:Управление производственным предприятием ред. 1.3;
  • 1С:ERP Управление предприятием ред. 2;
  • 1С:Комплексная автоматизация ред. 1.1, ред. 2;
  • 1С:Розница ред. 1, ред. 2;
  • 1С:Управление небольшой фирмой (УНФ ) ред. 1;
  • 1С-Рарус:Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ ред. 5;
  • 1С-Рарус:Розница 8. Магазин одежды и обуви ред. 2;
  • ДАЛИОН:Управление магазином УНО ред. 1;
  • ДАЛИОН:Управление магазином СЕТЬ ред. 1;
  • ДАЛИОН:Управление магазином ПРО ред. 1;
  • ДАЛИОН:ТРЕНД ред. 1, ред. 2;
  • Трактиръ: Head-Office ред. 1;
  • Трактиръ: Management ред. 1;
  • Штрих-М: Торговое предприятие ред. 5.
  • 1С:Управление торговлей для Казахстана, редакция 3.1;
  • 1С:Управление торговым предприятием для Казахстана ред. 2.0

Обмен данными с ПК: MS ActiveSync, FTP, Wi-Fi или 3G/LTE

*Список поддерживаемых конфигураций постоянно пополняется, а также форматы обмена с любыми другими учетными системами.

Программные продукты DataMobile — победители премии «Продукт Года» на выставке информационных и коммуникационных технологий Softool 2020, 2015, 2014 и 2013 в номинации «Мобильные технологии»

Версии DataMobile

Функционал версий ПО DataMobile

Стандарт

Стандарт PRO

Online Lite

Online

Стоимость лицензии

2600р

7800р

9990р


15600р

Прием, отпуск и перемещение товара

Инвентаризация товаров и/или основных средств

Формирование формы документов по заданным шаблонам

Идентификация товара. Проверка его на соответствие маркировке (функция прайс-чекер)

Авторизация пользователей

Редактор шаблонов прямо в терминале

Поддержка аппаратных кнопок терминала

Звуковое сопровождение событий и сообщений

Адресное хранение товаров на складе

Упаковочные листы

Подбор по заданию

Множественные штрих-коды

Серийные номера

Новый товар

Мобильная печать

Полноценный on-line режим

Защита от потери связи (переход online — offline)

Online печать на сервер печати

Функция «Быстрый доступ»

Групповая online работа с документом

Online запись строки на сервер

Обновление документа на ТСД, при изменении его в товароучетной системе

Отображение картинки номенклатуры из товароучетной системы

Online генерация нового штрихкода на ТСД

Фотофиксация объектов в online режиме

Возможность использования дополнительного модуля ЕГАИС

Материалы на тему:

Статьи на тему автоматизации склада и розницы

ADS-TB

Universal data immobilizer bypass module. Web-programmable for over 1800 vehicle models from 1997 to date including exclusive KLON firmware applications. Features web-updateable firmware and single-wire connection to popular aftermarket remote start products equipped with an ‘iDatalink’ or ‘DBI’ serial port. Part of the iDataв„ў family.

*ADS-USB required for web-programming and sold separately.

About ADS

Stay Up to date


Support: 1.866.427.2999

Monday to Friday, 8:30am — 8:30pm Eastern Time

Module Data sheet — K — Tech, Inc.

Module Data sheet — K — Tech, Inc.

  • Show more documents
  • Share
  • Embed
  • Download
  • Info
  • Flag
  • Page 10 and 11: IO Modual1.2 The Properties of IO M
  • Page 12: IO Modual2.1 Appearance and Dimensi
  • Page 15 and 16: Digital nputAnalog OutputDigital Ou
  • Page 17 and 18: 0

Inappropriate

Inappropriate

Mail this publication

Embed

Delete template?

For this magazine there is no download available

Magazine: Module Data sheet — K — Tech, Inc.

Обзор

Особенности и преимущества

  • Трехосевой цифровой гироскоп
    • Модели с динамическим диапазоном ±125°/с, ±500°/с, ±2000°/с
    • Стабильность смещения в установившемся состоянии 2°/час ( ADIS 16465-1)
    • Случайный уход по углу 0.15°/√час ( ADIS 16465-1 и ADIS 16465-2)
    • Погрешность взаимной ориентации осей ±0.05°
  • Трехосевой цифровой акселерометр, диапазон измерений ±8 g
    • Стабильность смещения в установившемся состоянии 3.6×10 -6 g
  • Выходы показаний по трем осям, приращения угла и приращения скорости
  • Заводская калибровка чувствительности, смещения и взаимной ориентации осей
    • Температурный диапазон калибровки: от −40°C до +85°C
  • Совместимый с SPI интерфейс передачи данных
  • Программное управление конфигурацией и рабочим режимом
    • Автоматическая и ручная коррекция смещения
    • Индикатор готовности для синхронного сбора данных
    • Режимы внешней синхронизации: непосредственная, импульсная, масштабированная и выходной сигнал SYNC
    • Самотестирование инерциальных датчиков по запросу
    • Самотестирование флэш-памяти по запросу
  • Однополярное питание ( VDD ): от 3.0 В до 3.6 В
  • Выдерживает механические ударные нагрузки до 2000 g
  • Рабочий температурный диапазон: от −40°C до +105°C

Подробнее о продукте

ADIS 16465 – это прецизионный инерциальный измерительный модуль, выполненный по технологии МЭМС (микроэлектромеханическая система), который включает в себя трехосевой гироскоп и трехосевой акселерометр. Каждый из инерциальных датчиков, входящих в состав ADIS 16465, имеет сопутствующую схему аналогового преобразования сигнала, которая оптимизирует его динамические характеристики. При изготовлении продукта каждый датчик подвергается калибровке чувствительности, смещения, взаимной ориентации осей, линейного ускорения (смещение гироскопа) и точки ударного действия (положение акселерометра). В результате, каждому из датчиков соответствуют собственные формулы динамической компенсации, обеспечивающие точные измерения в широком диапазоне условий.

ADIS 16465 представляет собой простой и экономически эффективный инструмент для интеграции многоосевых инерциальных измерений с малой погрешностью в промышленные системы, особенно в сравнении со сложностью и размерами инвестиций при использовании дискретных решений. Все необходимые испытания и калибровки проводятся на этапе изготовления продукта, благодаря чему время, затрачиваемое на его интеграцию в систему, значительно сокращается. Жесткое согласование взаимной ориентации осей упрощает проведение юстировки инерциальной системы координат в навигационных системах. Порт SPI и набор внутренних регистров обеспечивают простой интерфейс для сбора данных и конфигурирования устройства.

ADIS 16465 выпускается в алюминиевом модульном корпусе с габаритами приблизительно 22.4 мм × 22.4 мм × 9 мм, имеющем 14-контактный соединительный интерфейс.

Области применения

  • Навигация, стабилизация и измерения
  • Беспилотные и автономные средства передвижения
  • Интеллектуальные сельскохозяйственные и строительные механизмы
  • Промышленная/заводская автоматика, робототехника
  • Виртуальная/дополненная реальность
  • Интернет мобильных вещей

Модуль data inc

Здравствуйте. глупый вопрос. есть компонент Data Module. после сохранения и закрытия проекта я немогу отобразить его форму. только редактор кода. везде смотрел как открыть его но не нашел.
наверное попаду в орешник с таким вопросом.

попробуй перед этим другое чтоть открыть, у меня бывает иногда по F12 не хочет форму открывать — надо что-ть другое открыть


> myaucher (30.01.07 12:31) [2]
>
> пробовал :) . непомогает

Он имел ввиду Shift+F12.

Пробовал и F12 и шифт F12. и открывал перед этим другие формы (с ними все нормально) е мое. неужеле день работы потерян.

.dfm потерялся? Посмотри, должна быть копия .

dfm — наместе. и копия на месте


> есть компонент Data Module. после сохранения и закрытия
> проекта я немогу отобразить его форму. только редактор кода.
> везде смотрел как открыть его но не нашел

А на нем нет какой-нибудь глючной дряни вроде FIBDataSet шестой версии?

делай новый DM и начинай в него copy+paste компоненты с твоего DM. Когда перестанет открываться, тогда настанет просветление


> Здравствуйте. глупый вопрос. есть компонент Data Module.
> после сохранения и закрытия проекта я немогу отобразить
> его форму. только редактор кода. везде смотрел как открыть
> его но не нашел.

myaucher А менеджер проекта открывал. Он у тебя (датамодуль) вообще в проекте есть.


> myaucher

А нет ли в модуле Потерянного DataModule каких нибудь паразитирующих или лишних директив, ато некоторые любят поставить что нить типа <$R>где нибудь не там (по середине implementation например) ?

Чтобы снять все сомнения, выложи сюда dpr — файл (надеюсь он не более 20 — 30 строк)


> выложи сюда dpr — файл

. И может быть Pas (хотя б начало)

выкладываю
program TelephonDB;

uses
Forms,
MainUnit in «MainUnit.pas» ,
dtmMainUnit in «dtmMainUnit.pas» ,
TownUnit in «TownUnit.pas» ,
EditRecUnit in «EditRecUnit.pas» ;

begin
Application.Initialize;
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TdtmMain, dtmMain);
Application.CreateForm(TfrmTown, frmTown);
Application.CreateForm(TfrmEditRecord, frmEditRecord);
Application.Run;
end.

вот pas
unit dtmMainUnit;

uses
SysUtils, Classes, DB, ADODB, XPMan;

type
TdtmMain = class(TDataModule)
ADOConnMain: TADOConnection;
ADOTabTelBook: TADOTable;
DSMain: TDataSource;
ADOTabTelBookKey: TAutoIncField;
ADOTabTelBookDSDesigner: TWideStringField;
ADOTabTelBookDSDesigner2: TWideStringField;
ADOTabTelBookDSDesigner3: TWideStringField;
ADOTabTelBookT: TWideStringField;
ADOTabTelBookEmail: TWideStringField;
ADOTabTelBookDSDesigner4: TIntegerField;
ADOTabTelBookDSDesigner5: TDateTimeField;
ADOTabTelBookDSDesigner6: TBooleanField;
DSTown: TDataSource;
ADOTabTown: TADOTable;
ADOTabTownKey: TAutoIncField;
ADOTabTownDSDesigner: TWideStringField;
XPManifest1: TXPManifest;
private
< Private declarations >
public
< Public declarations >
end;

Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL