Читайте также:
|
|
@IMPORT (имя файла электронной таблицы, имя диапазона данных);
Параметр имяфайлаэлектроннойтаблицы может иметь до 64 символов и может содержать имя дисковода и путь. Не забудьте включать расширение в имя файла (например,.WK4,.XLS). Параметр имя диапазона данных обозначает именованный прямоугольный диапазон ячеек в электронной таблице, содержащий данные для импорта. Команда присваивания имени этому диапазону зависит от типа электронной таблицы.
Функция @IMPORT допустима только в секции DATA модели. LINGO переходит к диапазону в указанной электронной таблице, чтобы прочитать значения в переменную или массив, подлежащий инициализации. Блок данных может быть упорядочен вертикально, горизонтально или в виде таблицы. LINGO читает данные из диапазона электронной таблицы построчно, начиная с левого верхнего угла.
Количество ячеек в диапазоне должно быть равно количеству элементов в массиве, который инициализируется. Любая пустая ячейка в диапазоне трактуется как нуль.
@FILE (имя файла);
Функция @FILE в LINGO позволяет построить текущую модель, используя текст или данные из других файлов. Эти файлы известны как включаемые файлы. Если LINGO встречает при компилировании модели оператор
@FILE(example);
то программа начинает считывать текст из файла с именем example. Она продолжает считывать текст из этого файла до тех пор, пока не встретится символ конца файла или в LINGO не встретится маркер конца записи (~). Для последовательно встречающихся в одной модели операторов@FILE, LINGO будет продолжать брать данные из файла с того места, на котором было остановлено предыдущее чтение. Вложенные функции @FILE (вызовы @FILE из файла, который сам вызван посредством @FILE) не допускаются. Детали можно найти в главе 8 «Работа с данными».
@ODBC(база-источник, таблица, поле);
Функция @FILE в LINGO позволяет использовать технологию ODBC для передачи значений, полученных в решении, (и обратно) в целевую базу данных, зарегистрированную в Windows в качестве исходной базы данных. Для этого необходимо драйверы ODBC для приложений баз данных.
Для работы требуются некоторые приготовления. Вы должны создать файл базы данных с данными, которые вы намереваетесь импортировать, и полями, достаточными для размещения массивов, которые вы собираетесь экспортировать. Поля должны быть именованными так, чтобы они легко запоминались и ассоциировались с массивами. Эта база данных должна быть зарегистрирована на платформе Windows как пользовательская база данных – источник. Относительно деталей по установке базы данных ODBC см. раздел «Команды Windows» в главе «Команды LINGO».
Использование функции @ODBC разрешается в секции SETS модели для импорта имен элементов множеств. Данные в этих полях должны быть текстовыми. LINGO не допускает использование чисел для имен элементов множеств. В секции SETS система LINGO использует заголовок (TITLE) модели для обозначения базыданных – источника и имя множества, как для обозначения таблицы, так и обозначения поля. Например, если LINGO встречает в процессе компиляции следующий оператор:
TITLE Transportation;
SETS:
PLANTS / @ODBC()/: CAPACITY, VOLUME;
ENDSETS
… то LINGO использует ODBC для чтения каждой записи в поле PLANTS таблицы PLANTS при транспортировке базы данных – источника в элементы множества модели LINGO.
Третья строка в этом примере может быть записана также в виде:
PLANTS / @ODBC(‘Transportation’,’Plants’,’Plants’)/: CAPACITY;
Использование функции @ODBC для импорта или экспорта данных разрешается в секции DATA модели. Если функция появляется справа от знака равенства, данные будут импортированы из источника данных. Если она находится слева от знака равенства, данные будут экспортированы в источник данных. В секции DATA система LINGO использует TITLE (заголовок модели) для обозначения базыданных – источника, первоначальное множество — для обозначения таблицы, а атрибуты — для обозначения поля. Например, если при компиляции LINGO встретит следующие операторы:
DATA:
CAPACITY = @ODBC();
@ODBC() = VOLUME;
ENDDATA
то LINGO будет использовать ODBC в первом случае для чтения каждой записи в поле CAPACITY таблицы PLANTS при транспортировке базы данных – источника в соответствующий атрибут CAPACITY множества PLANTS. После решения модели с полученными данными LINGO затем экспортирует каждое значение атрибута VOLUME множества PLANTS в поле VOLUME таблицы PLANTS базы данных. Функции ODBC этого примера могут быть также записаны в виде:
CAPACITY = @ODBC(‘Transportation’,’Plants’,’Capacity’);
@ODBC(‘Transportation’,’Plants’,’Volume’) = VOLUME;
Замечание: Функция доступна только в версии LINGO под Windows.
@OLE (электронная_таблица, диапазон1, диапазон2...);
Функция @OLE позволяет использовать OLE технологию для передачи значений в таблицу Excel (и наоборот), используя механизмы передачи непосредственно в памяти.
Необходимы некоторые предварительные действия. Вы должны создать файл электронной_таблицы с диапазонами и данными, которые вы собираетесь импортировать из таблицы, и диапазонами, с достаточным местом для размещения массивов, которые вы собираетесь экспортировать в электронную таблицу. Диапазоны (диапазон1, диапазон2 и т.д.) должны быть именованными так, чтобы они легко запоминались и ассоциировались с массивами.
Функцию @OLE разрешается использовать только в секции DATA для импорта и экспорта числовых данных. Если функция фигурирует в правой части уравнения, данные будут импортироваться из источника данных. Если она находится в левой части уравнения, данные будут экспортироваться в источник данных (электронную таблицу).
Например, если при компиляции LINGO встретит следующие операторы:
DATA:
COST, NEEDS = @OLE(‘D:\STAFFOLE.XLS’,’COST’,’NEEDS’);
@OLE(‘D:\STAFFOLE.XLS’,’START’) = START;
ENDDATA
… то LINGO будет использовать OLE в первом случае для чтения каждой записи в диапазоне COST электронной_таблицы D:\STAFFFOLE/XLS и присваивания их атрибуту COST. Аналогично импорт будет использоваться для атрибута NTTDS. После решения задачи с поставленными данными LINGO будет затем экспортировать каждое значение атрибута START в диапазон START электронной_таблицы D:\STAFFOLE\XLS. Если имена диапазонов будут в этом случае опущены в функции @OLE, то LINGO будет использовать имена атрибутов.
OLEEXP может посылать данные решения в таблицы, созданные Excel 5, Excel 7 и Excel 97. Все диапазоны получателя должны быть двумерными (то есть они не могут распространяться на несколько рабочих листов рабочей книги.
Замечание: @OLE работает только в версии LINGO под Windows.
Дата добавления: 2015-11-16; просмотров: 50 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
ЗАКЛАДКА INTEGER SOLVER | | | Вероятностные функции |