История изменений.

13.01.2006

- Добавлена новая функциональная клавиша F6 и пункт меню "Правка" - "Макроподстановщик F6", для подстановки в формульный раздел бланков и типовых операций часто используемых синтаксических конструкций.

- Новые функции в разделе:

"Информация о системе":

ФУНКЦИЯ ТИП_ЛОГИКА: АУСТ_ПЕРЕМ_ОКРУЖ (ТИП_СТРОКА:перем,знач)
Позволяет установить новое значение переменной окружения, <перем> - переменная ,<знач> - Новое значение, например: АУСТ_ПЕРЕМ_ОКРУЖ("TMP",ТЕК_ДИР+"\TEMP")

"Работа с окнами:"

ФУНКЦИЯ ТИП_СТРОКА:АТЕКСТ_НАЖАТОЙ_КНОПКИ
Возвращает текст последней нажатой кнопки элементов управления, например можно узнать что в БД_РЕДАКТОР нажата кнопка "OК"

ФУНКЦИЯ ТИП_ЛОГИКА: АОБНОВИТЬ_ОКНО //(новая)
Перерисовывает окно. Можно использовать, например, для обновления окна БД_РЕДАКТОР, после внешних SQL запросов к открытой таблице.

"Диски и файлы":

ФУНКЦИЯ ТИП_ЛОГИКА:АВ_ИНИ_ФАЙЛ(ТИП_СТРОКА:файл,секция,ключ,значение)
Записывает в ini-файл значение, где <файл> - путь к файлу
ФУНКЦИЯ ТИП_ЛОГИКА:АИЗ_ИНИ_ФАЙЛА(ТИП_СТРОКА:файл,секция,ключ;ПЕРЕМ ТИП_СТРОКА:значение)
Считывает из ini-файла значение в переменную.
ФУНКЦИЯ ТИП_ЛОГИКА:АЗАКАЧАТЬ_ФАЙЛ(ТИП_СТРОКА:путь,файл)
Позволяет загрузить файл на локальный компьютер с указанного адреса:
Например: АЗАКАЧАТЬ_ФАЙЛ("http://www.ib.yaroslavl.ru/cgi-bin/click/bsdcc.pl?1","c:\ibalt.exe")

"Прочие функции:"

ФУНКЦИЯ ТИП_ЛОГИКА:АПИСЬМО_ИЗ_ФАЙЛА(ТИП_СТРОКА:имяпол,адрпол,заголовок,текст,файл)
Вызывает почтовую программу и создает новое сообщение, где: <имяпол> - имя получателя, <адрпол> - адрес получателя, <заголовок> - заголовок письма, <текст> - путь к файлу с текстом, <файл> - путь к прикрепленному файлу.

ФУНКЦИЯ АСИНХРОНИЗАЦИЯ_ВРЕМЕНИ(ТИП_СТРОКА:сервер) //(новая)
Синхронизирует время локального компьютера с временем сервера, например: АСИНХРОНИЗАЦИЯ_ВРЕМЕНИ("\\Server")

ФУНКЦИЯ ТИП_ЛОГИКА:АСЧИТАТЬ_КФГ(ТИП_ЧИСЛО:тип;ТИП_СТРОКА:файл)
Функция считывает в память файл конфигурации ИБ, где <тип> - тип cfg файла, 0 - (ibw.cfg или ibwn.cfg), 1 - compiler.cfg),

ФУНКЦИЯ ТИП_ЛОГИКА:АДАТЬ_КФГ(ТИП_ЧИСЛО:что;ПЕРЕМ ТИП_СТРОКА:значение)
Возвращает информацию из cfg-файла в переменную <значение>, параметр <что> может принимать значения следующих констант:

аДирДбф=0
аФайлБазы=1 //shp - для локальной, dcf - для сетевой
аТипОп=2
аПослЖурн=3
аДирФильтр=4
аДирБланк=5
аДирАрх=6
аДирБибл=7
аФайлРекв=8
аФайлОпред=9
Для compiler.cfg:
аДирИбикс=0
аДирТекст=1

ФУНКЦИЯ ТИП_ЛОГИКА:АИЗМЕНИТЬ_КФГ(ТИП_ЧИСЛО:что;ТИП_СТРОКА:значение)
Заменяет заданный параметр cfg-файла, новым значением

ФУНКЦИЯ ТИП_ЛОГИКА:АЗАПИСАТЬ_КФГ(ТИП_СТРОКА:файл)
Записывает измененный cfg-файл.

ФУНКЦИЯ СЕТЕВАЯ_БАЗА_В_ФАЙЛ(ТИП_СТРОКА:файл)
Записывает сетевую базу данных в shp - файл

ФУНКЦИЯ ТИП_ЛОГИКА:БЛАНК_В_ФАЙЛ(ТИП_СТРОКА:файл)
Записывает заполненный бланк в текстовый файл.

"Работа с памятью"

ФУНКЦИЯ ТИП_ЛОГИКА:АПАМЯТЬ_ЗАМЕНИТЬ(ТИП_ЧИСЛО:инд1,инд2;ТИП_СТРОКА:стр,замена)
Заменяет подстроку - <стр> в в значении динамического массива на подстроку <замена>, где инд1 - номер массива, инд2 - номер значения в массиве.

"Работа с Excel"

ФУНКЦИЯ ТИП_ЛОГИКА:АИЗ_МАССИВА_ЯЧЕЕК(ТИП_ЧИСЛО:строка,колонка;ПЕРЕМ ТИП_СТРОКА:знач)
Считывает в переменную <знач> значение из массива ячеек.

ФУНКЦИЯ ТИП_ЛОГИКА:АВЫДЕЛИТЬ_ЯЧЕЙКИ(ТИП_ЧИСЛО:лист,начстр,начкол,констр,конкол)
Выделяет указанный диапазон ячеек листа.

ФУНКЦИЯ ТИП_ЛОГИКА:АВЫДЕЛИТЬ_СТРОКИ(ТИП_ЧИСЛО:лист,начстр,констр)
Выделяет указанный диапазон строк листа.

ФУНКЦИЯ ТИП_ЛОГИКА:АКОПИРОВАТЬ_ЯЧЕЙКИ(ТИП_ЧИСЛО:лист)
Копирует в память выделенные ячейки.

ФУНКЦИЯ ТИП_ЛОГИКА:АКОПИРОВАТЬ_ЛИСТ(ТИП_ЧИСЛО:лист) (новая)
Копирует в память выделенный лист.

ФУНКЦИЯ ТИП_ЛОГИКА:АВСТАВИТЬ_ЯЧЕЙКИ(ТИП_ЧИСЛО:лист)
Вставляет скопированные ячейки.

ФУНКЦИЯ ТИП_ЛОГИКА:АРАЗРЫВ_ЛИСТА(ТИП_ЧИСЛО:лист,строка)
Вставляет разрыв страницы.

ФУНКЦИЯ ТИП_ЛОГИКА:АДУБЛИРОВАТЬ_СТРОКИ(ТИП_ЧИСЛО:лист,начстр,констр,копий;ТИП_ЛОГИКА:разрыв)
Дублирует диапазон строк в листе.

ФУНКЦИЯ ТИП_ЛОГИКА:АВСТАВИТЬ_СТРОКИ(ТИП_ЧИСЛО:лист,начстр,констр,копий)
Вставляет строки.

ФУНКЦИЯ ТИП_ЛОГИКА:АВИД_ЛИСТА(ТИП_ЧИСЛО:лист,вид)
Задает вид листа 1- обычный, 2 - разметка страницы

ФУНКЦИЯ ТИП_ЛОГИКА:АДОБ_В_МАССИВ_ЯЧЕЕК(ТИП_ЧИСЛО:строка,колонка;ТИП_СТРОКА:знач)
Добавляет значения в массив ячеек, т.е. позволяет формировать длинные строки.

ФУНКЦИЯ ТИП_ЛОГИКА:АЗАКРЫТЬ_EXCEL
Закрывает открытую книгу.

ФУНКЦИЯ ТИП_ЛОГИКА:АEXCEL_СОХРАНИТЬ_КАК(ТИП_ЧИСЛО:лист,тип;ТИП_СТРОКА:файл)
Позволяет сохранить выбранный лист открытой книги в файл, где <тип> - тип файла, например 11 - это dbf

"Работа с меню"

ФУНКЦИЯ ТИП_ЧИСЛО:АНАЙТИ_МЕНЮ_НОМ(ТИП_СТРОКА:назв)
Позволяет узнать порядковый номер пункта главного меню программы.

"Визуальные компоненты"

ТИП_ЛОГИКА:АИЗ_ФАЙЛА(ТИП_СТРОКА:файл)
Метод считывает текст из файла в поле ввода или метку.

Компонент "КомбоБокс" автоматически раскрывает список по клавише F2.

Компонент "ПолеВвода", при установленном типе аЧисло, может рассчитывать введенные в него простые арифметические выражения, при нажатии клавиши F2 или кнопки "=", справа.

 

22.06.2005 вер. 2.0.0.3

- Информацию о функциях библиотеки теперь можно получить по правой кнопке мыши.

- Добавлена новая функция:

ФУНКЦИЯ ТИП_ЧИСЛО:АПОСЛЕДНЯЯ_КЛАВИША(ТИП_ЛОГИКА: цикл)
Возвращает код последней нажатой клавиши. Для использования в цикле: аргументу < цикл > присваиваем ДА, что позволяет обрабатывать различные сообщения, т.е. не только отлавливать нажатия клавиш пользователем, но, и дает возможность выполнять другие действия в программе. Т.е. при длительных циклах можно устранить зависание программы, а также организовать возможность выхода из цикла по нажатию определенных клавиш.
Пример:
ЦИКЛ ПОКА(ДА)
кл=АПОСЛЕДНЯЯ_КЛАВИША(ДА)
ЕСЛИ кл=27 ТО
ЕСЛИ ВОПРОС
("Прервать расчет") ТО СТОП КОНЕЦ_ЕСЛИ
КОНЕЦ_ЕСЛИ

//27 - код клавиши ESC
КОНЕЦ_ЦИКЛА
Если аргумент <цикл> равен ДА, то повторный вызов функции вернет 0 (если больше никаких клавиш не было нажато), если аргумент <цикл> равен НЕТ, то в цикле использовать эту функцию бесполезно, она всегда возвратит 0

- Для функции АНАЖАТЬ_КЛАВИШУ и АНАЖАТЬ_КЛАВИШИ добавлена общая переменная ТИП_ЧИСЛО: адоб_клавиша, позволяющая эмулировать нажатие комбинации клавиш. Принимает значение комбинации следующих констант:
гкНет - нет добавочных клавиш
гкАльт - нажата клавиша Alt
гкКонтрол - нажата клавиша Control
гкШифт - нажата клавиша Shift
Например:
номер_окна=АДАТЬ_ФОКУС
тип_окна
="р"
адоб_клавиша
=гкКонтрол+гкШифт АНАЖАТЬ_КЛАВИШУ(39) //аналогично комбинации клавиш Control - Shift - Стрелка вправо
адоб_клавиша
=гкКонтрол АНАЖАТЬ_КЛАВИШУ(45) // аналогично нажатию клавиш Control - Ins

Это изменение используется при получении справки по функциям библиотеки по клавише F5, теперь не надо выделять функцию.

07.06.2005 вер. 2.0.0.2

- По клавише F5 сделана разбивка на группы функций.

- Сделано выделение текста при перемещении между компонентами

- Исправлены ошибки:

при вызове диалога из диалога, в родительской форме переставали работать обработчики событий.

- Для функции АДИАЛОГ_ВВОДА добавлено:

общая переменная <аФокусОбъекта> позволяющая устанавливать фокус на поле ввода с соответствующим номером, по умолчанию аФокусОбъекта=1

общая переменная <аНазваниеКнопкиОК> и <аНазваниеКнопкиОтмена> задающие названия кнопок, по умолчанию аНазваниеКнопкиОК="Ок" аНазваниеКнопкиОтмена="Отмена"

- Для метода АДОБ_ЗНАЧ(ТИП_ЧИСЛО:индекс;ТИП_СТРОКА:знач) при индекс=0 сделано последовательное добавление значений в КомбоБокс, Список и многострочное поле ввода.

- Для объектов "КомбоБокс" и "Список" появилась возможность добавлять (F7) и удалять (F8) строки, в том случае, если разрешено их редактирование.

16.05.2005 вер. 2.0.0.1

- Улучшен механизм перемещения между компонентами формы, кроме стандартного "Tab" и "Shift - Tab" можно пользоваться стрелками (вверх, вниз, влево, вправо)

- Исправлены ошибки:

для компонентов "Переключатель" и "Радиокнопка" - непоявлялся коментарий в строке статуса.

пропадало окно диалога при переключении между открытыми на рабочем столе программами.

функция АВЫКЛ_DLL не вызывает теперь подвисания программы (хотя эта ситуация была только в NT и XP, если использовать эту функцию в бланке. Вообще, загрузку и выгрузку библиотеки лучше всего делать в соответствующих обработчиках входа и выхода из программы, дитрибутив библиотеки делает это сам, только не забывайте, что после очередного обновления бланков, необходимо заново устанавливать библиотеку.)

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

- Добавлены функции:

ФУНКЦИЯ ТИП_ЧИСЛО:АНАЙТИ_МЕНЮ_ИД(ТИП_СТРОКА:назв), возвращающая идентификатор меню по его названию. Таким образом, можно проверять существование пункта меню. Если вызвать функцию с пустым параметром, то в файл "menu.log" запишется информация о всех пунктах меню программы.

ФУНКЦИЯ ТИП_СТРОКА:АНАЙТИ_МЕНЮ_ТЕКСТ(ТИП_ЧИСЛО:ид) Возвращает текст меню по его идентификатору. Таким образом, можно проверить, не занят ли идентификатор.

ФУНКЦИЯ ТИП_ЛОГИКА:АВЫБРАТЬ_МЕНЮ(ТИП_ЧИСЛО:ид). Эмулирует выбор пункта меню, где <ид> - числовой идентификатор меню.

Для функции АДИАЛОГ_ВВОДА добавился новый тип полей аВыбор, если аТип_Объекта_!к=аВыбор, то вместо поля ввода появится комбобокс, и следующие общие переменные:

ПЕРЕМ аВыборОбъект_! задает список строк комбобокса, в качестве индекса используется следующа конструкция инд=СТР(к)+"_"+СТР(п), где <к> - номер компонента, а <п> - номер строки комбобокса. Таким образом, если перед вызовом функции АДИАЛОГ_ВВОДА прописать:
аВыборОбъект_!"1_1"="Строка 1"
аВыборОбъект_!"1_2"="Строка 2"
аВыборОбъект_!"1_3"="Строка 3"
то появится комбобокс, с возможностью выбора из трех значений. Переменной аЗначОбъекта_! для комбобокса можно задавать или номер строки по умолчанию или ее значение.

ПЕРЕМ аКоммОбъекта_! задает комментарий к полю, появляется в строке статуса диалога когда поле активно
ПЕРЕМ аРедОбъект_! поле ввода только для чтения
ПЕРЕМ аДоступен_! если НЕТ, то поле становится недоступным для редактирования

20.04.2005 - первая официальная публикация версии 2.0.