| Существуют ли функции по копированию или переименованию файла в алгоритмах на языке SALUTE? |
 | Самый простой и универсальный способ для этой и многих других функций - запустить команду операционной системы или даже bat-файл при помощи функции операционной системы ShellExecute (в ANSI-нотификации - ShellExecuteA). Подробно об аргументах и механизме действия этой функции можно прочитать в MSDN или справочной системе любого средства разработки. Таким образом, для запуска переименования файла из алгоритма, написанного на языке Salute, можно использовать следующий оператор:
ShellExecuteA
(
hWndMDI, // окно, родительское для вывода возможных сообщений
'open', // команда запуска exe-файла
ExpandEnvironmentStr ( '%COMSPEC%' ), // сам exe-файл
'/c ren d:\\path\\file.dbf *.1', // аргументы командной строки
' ', // каталог, устанавливаемый текущим
SW_NORMAL // отображение окна
);
При этом используется расширенный набор команд командного процессора (cmd.exe в NT4/W2K/XP и command.com в Win95/98), т.е. команда ren, не являющаяся исполняемым модулем. Для копирования файлов можно воспользоваться также командой xcopy, расположенной в системном каталоге (пример приведен для NT4/W2K/XP):
ShellExecuteA
(
hWndMDI,
'open',
'xcopy.exe',
'd:\\path\\file.dbf d:\\path\\*.1',
' ', SW_NORMAL
);
Этим же способом можно также запускать .bat, .cmd и другие файлы. Обратите внимание, что при записи строковых констант обратная наклонная черта удваивается. Для указания того, чтобы системное окно при выполнении операции не отображалось, необходимо установить SW_HIDE вместо SW_NORMAL.
Переименование файла dbf, получаемого в результате выполнения отчета-экспорта, невозможно непосредственно из самого отчета, так как до закрытия отчета-экспорта файл заблокирован системой. Для решения этой задачи можно воспользоваться отчетом-пакетом, который будет вызывать отчет-экспорт на выполнение, а по завершении его работы, на событии Report_Done отчета-пакета, можно вызвать переименование файла. Пример отчета пакета:
Событие Report_Init
{
Присвоить Отчет.Предназначение = TARGET_Batch;
Присвоить Отчет.Пакет.Элемент [ 0 ].Список = 'ПОСТ';
Присвоить Отчет.Пакет.Элемент [ 0 ].Код = 'Для_семинара\\ODBC_Ren';
Вернуть ИСТИНА;
}
Событие Report_Batch_Form_Init
{
Вернуть ЛОЖЬ;
}
Событие Report_Done
{
ShellExecuteA
(
hWndMDI,
'open',
ExpandEnvironmentStr ( '%COMSPEC%' ),
'/c ren D:\\Work\\Reports\\TEST_ODBC\\AAAR.DBF *.1',
' ',
SW_HIDE
);
Вернуть ИСТИНА;
} |
| Есть ли образцы отчетов для новичков и руководство по написанию отчетов? |
 | Да, такие образцы имеются. В любой подсистеме на АРМ администратора «АДМИН» в меню «Отчеты»/ «Настройка отчетов»/ «Отчеты» подключена группа отчетов (папка) «Для семинара». В этой папке специально в обучающих целях собраны образцы простых отчетов, показывающие, какие команды следует использовать в тех или иных ситуациях. С выходом каждой новой версии содержимое данной папки пополняется новыми отчетами.
Описание основ разработки отчетов можно посмотреть в книге "Генератор отчетов". Электронная версия книги есть на поставочном CD-ROM в каталоге ..\Books\ файл PG_REP.PDF или в Интернет в разделе "Документация". Также в каталоге ..\Books\ имеются дополнительные файлы в формате MS Word, описывающие различные аспекты разработки отчетов. Все они начинаются с префикса _REP_ (например, _REP_XLS.DOC).
В папку «Для семинара» включены следующие отчеты:
| Код отчета |
Наименование отчета |
Описание (назначение отчета) |
| \Barcode |
Печать штрих-кодов через ActiveX |
Применение ActiveX для генерации картинок со штрих-кодом |
| \CR_CrПодр |
Список подразделений |
Формирование отчета полностью средствами Crystal Reports |
| \CR_Export |
Экспортированный список подразделений |
Подключение экспортированного отчета Crystal Reports |
| \CR_Подразд |
Список подразделений |
Полный вывод данных из отчета в Crystal Reports |
| \CR_РасшЛист |
Расчетный листок |
Дискретный вывод данных из отчета в Crystal Reports |
| \Excel |
Вывод данных в Excel без форматирования |
Вывод данных в Excel без форматирования |
| \Excel_#1 |
Форматирование данных в Excel из текста отчета |
Форматирование данных в Excel из текста отчета |
| \Excel_#2 |
Форматирование данных и запуска макросов Excel |
Форматирование данных и запуска макросов Excel |
| \Excel_Имп |
Получение данных из Excel |
Получение данных листа Excel с помощью запроса |
| \ODBC |
Экспорт данных |
Экспортирование данных во внешний источник через ODBC |
| \ODBC_#3 |
Экспорт данных и работа с протоколом |
Экспорт данных и работа с протоколом |
| \Photo |
Вывод фотографий |
Вывод фотографий |
| \XML_HTML |
Трансформирование XML документ в HTML |
Трансформирование XML документ в HTML |
| \XML_Subj |
Формирование XML документ |
Формирование XML документ |
| \ВнешПарам |
Получение внешних параметров в отчете |
Получение внешних параметров в отчете |
| \Док_2Табл |
Формирование одного документа с двумя таблицами позиций |
Формирование одного документа с двумя таблицами позиций |
| \Док_ДокЗаг |
Формирование несколько документов состоящих только из заголовка |
Формирование несколько документов состоящих только из заголовка |
| \Док_ДокТбл |
Формирование несколько документов с таблицей позиций |
Формирование несколько документов с таблицей позиций |
| \Док_Заг |
Формирование одного документа состоящего только из заголовка |
Формирование одного документа состоящего только из заголовка |
| \Док_Проткл |
\Док_Проткл |
\Док_Проткл |
| \Док_Табл |
Формирование одного документа состоящего из заголовка и одной таблицы позиций |
Формирование одного документа состоящего из заголовка и одной таблицы позиций |
| \ИспСправ |
Определение вышестоящего родителя c исп. справочников |
Определение вышестоящего родителя c исп. справочников |
| \МастерОтчет |
Работа с мастером отчетов |
Работа с мастером отчетов |
| \Пакет |
Отчет пакет |
Отчет пакет |
| \Поиск |
Поиск строки в текстах алгоритмов или отчетов |
Поиск строки в текстах алгоритмов или отчетов |
| \Прос_с_подз |
Отчет с подзапросом |
Отчет с подзапросом |
| \Скрипт |
Формирование и выполнение SQL скрипта |
Формирование и выполнение SQL скрипта |
| \ФормФайл |
Запись и чтение из файла |
Запись и чтение из файла |
| \Форма |
Отчет с формой |
Отчет с формой |
| \ФормаFR |
Отчет с формой и обработкой FetchRow |
Отчет с формой и обработкой FetchRow |
| \оБУСальдо |
Использование объекта БУСальдо[ * ] |
Вычисление сальдо за период |
| \оСкрипт |
Использование объекта Скрипт[ * ] |
Взаимодействия с ActiveX объектом | |