Viper 2013 и ранее

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Viper

Сообщение Алексей »

При использовании в программах объектных интерфейсов и вызове их методов, отладчик пытается найти исходные тексты... а они не всегда есть.
LaaLaa

Re: Viper

Сообщение LaaLaa »

Алексей писал(а):При использовании в программах объектных интерфейсов и вызове их методов, отладчик пытается найти исходные тексты... а они не всегда есть.
Ну да если нет кода то отлаживать чужой интерфейс смысла нет. Если на запрос файла нажать отмена то выполнение по моему продолжается без отладки.
В окне запроса можно задать путь к исходнику и сохранить его в проекте, если сборку делал кто-то другой а у вас пути к этим исходникам не настроены.

Еще меню "Отладка" пункты "Отлаживать все", "Перехватывать исключения", "Останавливаться на конструкторах". В вашем случае лучше наварено выключить. Чтобы под отладку попадали только ваши интерфейсы, а чужие не мешали.
LaaLaa

Re: Viper

Сообщение LaaLaa »

Алексей писал(а):ещё вопрос. пересобираю проект, 40 *.prj файлов.
В конце вижу что была одна ошибка но найти по сообщениям в каком именное проекте была ошибка невозможно, пока каждый не развернешь и не посмотришь. Может быть есть способ как то показать только те, где есть ошибки? Пробовал отключать остальные закладки (предупреждения, подсказки), не помогает. Приходится каждый плюсик раскрывать чтобы найти ошибку.
Ценное предложение, нужно какой то способ фильтрации и быстрого поиска реализовать. Записал в ПИР 102.111864. Позже сделаем.
Алексей писал(а): Второй момент: есть альтер интерфейса katoss. При компиляции випер ругается на переменную ButSP словами "Уже есть переменная с таким именем : ButSP katoss.vip(стр. 11, поз. 40)". Меняю название переменно на ButSPP - компиляция проходит но начинает ругаться на то что есть уже такая функция LoadCfgBut. Добавляю к названию единичку - проходит.
Строчник спокойно компилит изначальный код.
Что ему не нравится в переменной и названии функции?

З.Ы.: так называю кнопку и функцию во всех альтерах, но это же локальные переменные, ничего не пойму...
Возможно у Вас в проекте Viper задано поле "Название системы в репозиарии" а ресурс с уже докомпилированным интерфейсом подключен к репозитарию. В результате у вас получается альтер к вашему же альтеру.

В посленей версии по просьбе постетителей форума мы чинили работу поля "Название системы в репозиарии". Чтобы дополнительные ресурсы тянуть из репозитария Галактики, а не явно прописывать в проекте випера. Ранее репозитарий при компиляции не использовался, сейчас эта настройка работает.
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Viper

Сообщение Алексей »

LaaLaa писал(а): Возможно у Вас в проекте Viper задано поле "Название системы в репозиарии" а ресурс с уже докомпилированным интерфейсом подключен к репозитарию. В результате у вас получается альтер к вашему же альтеру.

В посленей версии по просьбе постетителей форума мы чинили работу поля "Название системы в репозиарии". Чтобы дополнительные ресурсы тянуть из репозитария Галактики, а не явно прописывать в проекте випера. Ранее репозитарий при компиляции не использовался, сейчас эта настройка работает.
Ну не возможно, а точно подключен. Я ведь для юзеров и делаю альтеры. Тогда подскажите, как настроить проект для сборки ? Не собирать же строчником... :(
LaaLaa

Re: Viper

Сообщение LaaLaa »

Алексей писал(а):
LaaLaa писал(а):Ну не возможно, а точно подключен. Я ведь для юзеров и делаю альтеры. Тогда подскажите, как настроить проект для сборки ? Не собирать же строчником... :(
Алексей, по моему в этой ветке уже как то писал, но еще раз повторюсь:

1) Считаю что использовать для разработки интерфейсов, компиляции и отладки живую БД и папку с продуктивными ресурсами (т.е. ту БД и тот каталог EXE на котором "сидят" все пользователи) Это равносильно самоубийству. Ваша маленькая ошибка в коде может убить базу и остановить производство на предприятии.

Настоятельно рекомендую на всех предприятиях, где кто-то пытается какие либо программы программировать. Для программистов создавать отделенную песочницу (игровую тестовую БД, отделенную изолированную папку EXE, лучше вообще все это в отдельной виртуальную машине VirtualBox). И только в этой песочнице упражняться в программировании. Пользователям патчи и ресурсы ставить только после тщательного тестирования.

2) Считаю что использовать при компиляции все без разбора ресурсы, подключенные через репозитарий к галактике. Тоже не совсем правильный подход. Все же лучше явно прописывать отдельные ресурсы в проекте Viper. Только те которые нужны для сборки именно ваших VIP-кодов. Помните что в языке VIP реализован статический механизм наследования. Код предка полностью сохраняется в ресурс потомка. При изменении кода предка ресурс потомка нужно обязательно тоже пересоздавать. При наличии большого количества взаимосвязанных ресурсов порядок их сборки должен от раза к разу строго соблюдаться. Ведь Alter Interface это по сути тоже наследование, только с подменой оригинального имени.

Опцию "Название системы в репозиарии" в проекте Viper, мы конечно починили по просьбе форумчан. Но в вашем случае ее нужно оставить пустой. А ресурсы указывать явно в отдельном списке дополнительно подключаемых ресурсных файлов.
LaaLaa

Re: Viper

Сообщение LaaLaa »

И к стати
Дистрибутив Viper теперь доступен на FTP Галактики!
По адресу ftp://ftp.galaktika.ru/pub/support/gala ... 810/VIPER/
По мере выпуска новых версий, файлы в этой папке будут регулярно обновляться.

Пользователям, которые приобрели лицензию «VIP – компилятор пользовательских интерфейсов», рекомендуем использовать в повседневной работе среду разработки Viper (взамен строчного компилятора и редактора Support).
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Viper

Сообщение Алексей »

LaaLaa писал(а):
Алексей писал(а):
LaaLaa писал(а):Ну не возможно, а точно подключен. Я ведь для юзеров и делаю альтеры. Тогда подскажите, как настроить проект для сборки ? Не собирать же строчником... :(
Алексей, по моему в этой ветке уже как то писал, но еще раз повторюсь:

1) Считаю что использовать для разработки интерфейсов, компиляции и отладки живую БД и папку с продуктивными ресурсами (т.е. ту БД и тот каталог EXE на котором "сидят" все пользователи) Это равносильно самоубийству. Ваша маленькая ошибка в коде может убить базу и остановить производство на предприятии.

Настоятельно рекомендую на всех предприятиях, где кто-то пытается какие либо программы программировать. Для программистов создавать отделенную песочницу (игровую тестовую БД, отделенную изолированную папку EXE, лучше вообще все это в отдельной виртуальную машине VirtualBox). И только в этой песочнице упражняться в программировании. Пользователям патчи и ресурсы ставить только после тщательного тестирования.

2) Считаю что использовать при компиляции все без разбора ресурсы, подключенные через репозитарий к галактике. Тоже не совсем правильный подход. Все же лучше явно прописывать отдельные ресурсы в проекте Viper. Только те которые нужны для сборки именно ваших VIP-кодов. Помните что в языке VIP реализован статический механизм наследования. Код предка полностью сохраняется в ресурс потомка. При изменении кода предка ресурс потомка нужно обязательно тоже пересоздавать. При наличии большого количества взаимосвязанных ресурсов порядок их сборки должен от раза к разу строго соблюдаться. Ведь Alter Interface это по сути тоже наследование, только с подменой оригинального имени.

Опцию "Название системы в репозиарии" в проекте Viper, мы конечно починили по просьбе форумчан. Но в вашем случае ее нужно оставить пустой. А ресурсы указывать явно в отдельном списке дополнительно подключаемых ресурсных файлов.
принято :)
указывать ресурсы я не прочь, но тогда почините ещё одну фишку :) дайте возможность указывать ресурсы без точного пути к ним, т.е. если указан один файл (без полного пути,кстати сейчас так нельзя указать, только выбором через конкретный путь.), то пусть он ищется в базовом каталоге ресурсов репозитария (название системы при этом я оставлю пустой).
А если ресурс указан с полным путем - то естественно подключать его учитывая его местонахождение. Нужно для того, чтобы быстро менять настройку на тот или иной ЕХЕ каталог Галактики...

А может дать возможность "исключать" ресурсы с типом "пользовательские" при подцепке репозитария? тогда "проблема" решиться...
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Viper

Сообщение Алексей »

А что випер сейчас при каждой компиляции к БД коннектится? раньше вроде бы сразу раз и компил а щас как то дольше стало... как строчник.
LaaLaa

Re: Viper

Сообщение LaaLaa »

Алексей писал(а):А что випер сейчас при каждой компиляции к БД коннектится? раньше вроде бы сразу раз и компил а щас как то дольше стало... как строчник.
В этой части ничего не менялось. Посмотрите в диспетчер задач. При компиляции должен создаваться второй процесс Viper.exe в памяти. После завершения компиляции он остается в памяти и держит подключение к БД. Следующая компиляция повторно использует созданный процесс.
Пункт меню "Проект \ Отключиться от БД" закрывает этот теневой процесс компиляции.

Возможно просто компилятор тихо падает при компиляции вашего исходника. Иногда такое случается. Именно по этому мы вынесли его в отдельный процесс, чтобы вместе с компилятором не упал редактор, чтобы не потерять текст который вводит программист.
igor
Постоянный гость
Сообщения: 70
Зарегистрирован: 29 мар 2005, 17:49

Re: Viper

Сообщение igor »

заценил редактор.
Лучше чем ничего.
Имею вопросы:
- как при расширении автозамены в редакторе переходить на следущую позицию курсора?
т.е. на знакоместа отмеченные | ?
- как в отладчике посмотреть текущее содержимое буфера-записи в katmc например? Вроде бы где то читал про такую возможность...
- есть ли возможность просматривать так же буфер записи таблицы в памяти?

Выскажусь чего не хватает (все строго ИМХО):

Ctrl-Space - должен показывать список возможных комплитов (аля визуал студия) - обсуждение было в 2009 году говорили что "вот вот сделаем" . Воз и ныне там.
katmc. - должен выводить названия всех полей таблицы katmc (это нетрудно реализовать ) В иделае по точке должны показываться все поля таблицы, или методы обьектного интерфейса или поля структуры или поля view интерфейса.

События редактора на которые можно вешать скрипты - даже не знаю, бедны очень. К примеру я хочу повесить скрипт на ввод символа в поле редактирования - чтобы он анализировал текст вокруг и делал что мне нужно (например тот же комплишен) - в списке событий не нашел "при вставке символа" например.
Документация - бедна,сделайте больше роликов на примере тех которые были на минском форуме.
Вам это не трудно а пользователи будут видеть все возможности редактора.
Ну и про прыжки по коду между функциями и местами деклараций я уж не говорю - это должно быть
сейчас есть только панель навигации но там не удобно. Могу предложить посмотреть в сторону ctags утилиты - прекрасно настраивается на синтаксис атлантиса и ищет 99% всех его конструкций достаточно быстро и без программирования (надо знать regexp'Ы).
Вывод ctags'а можно прикрутить уже к редактору чтобы он его понимал и таким образом - реализовывал бы эту нужную и полезную функцию.
Да и вообще - зря вы интеграцию с макросами не развиваете.
Вам бы пользователи сами кучу полезных скриптов понаписали лучшие из которых вы бы просто включили в дистрибутив и распространяли бы на всю страну. Не надо запихивать в код разные фичи типа автокомплита и прочего - сделайте возможность пользователям самим это писать на макроязыках и подкладывать в редактор как в других средах сделано. И потом тупо соберите лучшее что найдете... Все что для этого нужно - дать из макроязыков менять текст в редакторе и вызывать некоторые кастомные GUI окошки со списками выбора например (см. язык Slick Edit'a да и вообще любого редактора с развитыми макро-языками)

Пока что макросы - ну никак не применимы .
В качестве эталона можно привести все же Visual Studio или же Visual Slick Edit.
У меня всё.
Все ИМХО.
Bender
Местный житель
Сообщения: 251
Зарегистрирован: 02 мар 2009, 12:59
Откуда: ТопСофт
Контактная информация:

Re: Viper

Сообщение Bender »

igor писал(а):как при расширении автозамены в редакторе переходить на следующую позицию курсора?
т.е. на знакоместа отмеченные | ?
Используйте функцию Автозаполнение (окно "параметры" - закладка "снтакис/atlantis vip" - вкладка "автозаполнение"). В нем и символ позиции использовать можно и задать нужные вам шаблоны. Принцип работы: набрали краткое описание шаблона, нажали "ctrl+j" - замена на полное описание.
Если же просто нажать "ctrl+j", то появится список шаблонов, из которого можно выбоать нужный.
Горячую клавишу по вызову функции можно переназначить: 1) меню "Справка/Настройка клавиш"; 2) меню "Вид/Панели инструментов/Настройка" (рекомендую вариант 2).
igor писал(а):- как в отладчике посмотреть текущее содержимое буфера-записи в katmc например? Вроде бы где то читал про такую возможность...
меню "отладка/окно выражений и переменных". Ctrl+f5 стандартно добавление в него нужного выражения.
igor писал(а):есть ли возможность просматривать так же буфер записи таблицы в памяти?
нет
igor писал(а):..список возможных комплитов.. все поля таблицы, или методы обьектного интерфейса или поля структуры или поля view интерфейса..
подсказчик в ближайших планах "вот вот сделаем" :oops:
igor писал(а):События редактора на которые можно вешать скрипты - даже не знаю, бедны очень.
Напишите, какие Вам нужны. Ранее про данную функцию никто не упоминал.
Пока программисты все свои скрипты вызывали из меню "сценарий" или инструментов (в обеих случаях это возможно по горячим клавишам)
igor писал(а):Документация
Именно сейчас идет полная (именно полная) актуализация справочной информации по среде, в которой описаны все функции и возможности редактора и среды в целом.
igor писал(а):прыжки по коду
все тот же подсказчик
igor писал(а):панель навигации
Вы имеете ввиду про окно структуры кода? Чего не хватает?
igor писал(а):Да и вообще - зря вы интеграцию с макросами не развиваете.
Возможно вы имеете ввиду про написание скрипов-плагинов?
Она развита и доступно многое. Можно писать скрипты (например на VB) и в путь.... И GUI окна можно делать и с редактором химичить и с проектом работать. Это или плохо или вообще никак не документировано...пока! Практика показывает, что очень маленькое количество программистов любит и желает писать интересные скрипты для решения некоторых задач, куда проще предложение зарегистрировать . Если желаете, могу выложить для ознакомления некоторый набор готовых vb-скриптов для начального ознакомления. API будет описан в новой документации.
Пишите, что чего еще вам не хватает в випере как от редактора. Возможно это уже реализовано )
igor
Постоянный гость
Сообщения: 70
Зарегистрирован: 29 мар 2005, 17:49

Re: Viper

Сообщение igor »

Bender писал(а):В нем и символ позиции использовать можно и задать нужные вам шаблоны.
конкретный пример:
шаблон:
function | : | ;
begin
|
end;
очевидно что | - означают что курсор будет туда переходить по какой то клавише. Т.е. я набираю fun <ctrl-j> курсор встает на
function _ : | ;

я ввожу имя функции, как (по какой клавише перейти на следующее знакоместо для ввода типа возвращаемого значения? У вас же должны быть прыжки по шаблону то в разные его места? так понятно?
Bender писал(а):окно выражений и переменных
я туда вводил имена переменных - они показываются. при попытке посмотреть например содержимое текущей записи в таблице katmc по которой например бежит код в данный момент - ввожу в это окно katmc и отладчик мне напротив рисует "?" - как посмотреть то буфер текущей записи в таблице? Так понятнее?
Bender писал(а):Напишите, какие Вам нужны.
ну самое-самое например: OnChar - вызывается всякий раз когда я ввел алфавитно - цифровой символ в редактируемый текст.
на событие можно навесить например показ всякого по вводу '.' - классический пример всех комплитов - ввели точку, поймали слово которое находится слева (апи редактора должно давать возможность узнать - номер строки в файле, номер позиции в файле, вернуть текущую строку, вернуть текущее слово" ) и если например это таблица - показать все поля этой таблицы в GUI-вом picklist 'e аля визуал студия. Если введенный символ - не триггер '.' то выходим из макроса позволяя стандартному обработчику ввода символа завершить свою работу. АПИ редактора должно давать возможность в макросах изменять текст, слово, строку, показывать гуи элементы и т.д.
Bender писал(а): igor писал(а):прыжки по коду
все тот же подсказчик
не совсем. например: курсор находится на имени функции - нажимаю Ctrl-G (к примеру) и перехожу на место в файле где эта функция описана. Не надо мне подсказчик показывать, просто перекинтьте на код функции с возможностью возврата обратно по какой либо клавише... ну тут вариации конечно но как то так... можно и контекстное меню навернуть в котором давать эту возможность.
Bender писал(а):Вы имеете ввиду про окно структуры кода? Чего не хватает?
она показывает в настоящее время только для текущего файла?
СлабО показать дерево интерфейса со всеми окнами. обработчиками, функциями , и т.д. в дереве ? При том что интерфейс где все это написано - размазан по 50 файлам :) (классический исходник галактики )
Bender писал(а):И GUI окна можно делать и с редактором химичить и с проектом работать. Это или плохо или вообще никак не документировано...пока! Практика показывает, что очень маленькое количество программистов любит и желает писать интересные скрипты для решения некоторых задач, куда проще предложение зарегистрировать .
Примеры - в студию конечно же, любопытно будет взглянуть.
Насчет "практика показывает" - ну может в галактике это и так, люди привыкли что есть саппорт куда все можно свалить.
Но зря вы так про программистов думаете. Они ленивы - да, и это сподвигнет их написать разные макросы которые им облегчать жизнь ПОТОМ . Лень - двигатель прогресса!.
Классический пример - www.vim.org редактор с развитой системой макросов ( 3798 макросов в настоящее время :) )

Цветовые схемы кстати неплохо было бы прикрутить как то а то уж больно убога та что идет из коробки... но это уже когда сделаете комплишен (если сделаете) и прыжки по тегам в файлах. Только не надо вот свистелко-перделок типа "а давайте риббон прикрутим - он так клёво смотрится ну давайте же мы тоже будем как типо ворд!"
приоритет N 1 имхо - Ctrl-Space и все что с ним связано в Visual Studio (эталон) и не надо говорить что "да ну нафиг не надо это" вся страна пользуется - всей стране нравится. сделайте уже - в 21 веке живем!

Вещь перспективная если допилите!
Ну и потом сразу же принимайтесь за дизайнер гуевых интерфейсов для галактики а то стыдно перед соседними отделами да...
все имхо.
igor
Постоянный гость
Сообщения: 70
Зарегистрирован: 29 мар 2005, 17:49

Re: Viper

Сообщение igor »

Еще вопрос - поддержка FCOM форм есть какая нибудь - ну например прыгать по имени филдса на место где он выводится на форме и
в обратном порядке ? Вот это самое-самое щас хочется...
Masygreen
Местный житель
Сообщения: 1089
Зарегистрирован: 04 сен 2008, 11:27
Откуда: Москва
Контактная информация:

Re: Viper

Сообщение Masygreen »

igor писал(а):Еще вопрос - поддержка FCOM форм есть какая нибудь - ну например прыгать по имени филдса на место где он выводится на форме и
в обратном порядке ? Вот это самое-самое щас хочется...
вот это невероятной крутости :) еще бы и обратную возможность .. у клиента одного, филдсы есть на 10 строчек вложеных ифов :)
Время ведет!
Алексей
Местный житель
Сообщения: 2896
Зарегистрирован: 24 июн 2005, 12:12
Откуда: Иркутская область

Re: Viper

Сообщение Алексей »

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