Ага, ладно поехали дальше, следущее с чем я столкнулся... это было то что Оракловая сессия открыта в Пасквиле Атлантиса а функции и объекты не протранслированы в VIP в полной мере, то есть мы можем пользоваться GetFirst и т.д. но мы не можем сказать Session.SQL.Add('Select * from basedoc;').!
Такое насколько я знаю есть только в 5 атлантисе да и то я не уверен ;(.
Так вот отсюда вывод чтобы получить обороты по счету нужен доступ К БД, а его с той же сессией нет ;(
Но не всё так плохо, можно в функцию передавать параметры подключения если запрашивать у пользователя пароль ;( что не хорошо или сделать свой логин для своих функций. и опять но, в Оракле формированием полей ATL_last... занимаються триггеры который вычисляю значение пользователя по текущей сессии, то есть мы можем получить что кто же послений менял будет неизвестно или это будет 1 логин!
И опять же не всё так плохо, я долго мучался над этим вопросом и пришёл к выводу что функции можно строить только отчетные а если нужно что-то изменить то необходимо передавать запрос на изменение обратно в Галку и менять уже VIP'ом!, а как?
Так теперь разберемся с маленьким супер простеньким примером. Ага, посмотрел на диске всё уже давно стёрто ;( а дело в том что в VIP насколько мне удалось можно передавать простые параметры типа String какой-то ограниченный, Integer ну вообщем всё несложное и с массивами по моему тоже напряжёнка ;( короче как в том анекдоте "а хотите по настоящему потра.." поэтому в программе реализовал передачу параметром через файл в простом виде
название_параметра:значение_параметра.
а вот как регистрировать щаз найду, о помоему все уже позанимались отчетами в Excel, яркий пример такого программирования!
На нём кстати и учился!
Чтобы зарегистрировать функцию надо чтобы она была Public и большими буквами, а то у Галактики с этим промблема
Ex.:
Public
Constructor OpenExcel(Visible : boolean);
Constructor Create(FileName : shortstring; Visible : boolean);
Constructor CreateWithTemplate(TemplateName : shortstring; Visible : boolean);
Destructor Destroy; override;
Function OpenWorkBook(FileName : shortstring) : boolean;
Function SaveWorkBook(iNumber : shortint) : boolean;
О кстати оттуда!
Общие сведения
Данная библиотека обеспечивает прямое обращение к функциям Excel. Дает возможность формировать и форматировать отчеты, а также использовать все стандартные функции Excel как из VIP-а, так и из паскаля.
Библиотека оформлена в виде 2-х dll-ек.
1. ExcelLib.dll - сама реализация функций, написанная на настоящем DELPHI4 (не Атлантис).
2. RegExcel.dll - регистрация функций для VIP-а, написанная на Атлантис DELPHI4.
Данное оформление позволяет использовать все возможности настоящего DELPHI4 (корректная обработка исключительны ситуаций и т.п.), а также безболезненную доработку библиотеки, не меняя GalNet.Exe.
(C) Галактика!!!
и наконец:
Методика использования библиотеки
Так как сама библиотека будет еще некоторое время дополняться и изменяться, то для использования ее функций предлагается следующая методика. Все используемые функции в текущем отчете рекомендуется переопределить в VIP-e. На случай, если изменится синтаксис функций.
Например:
Function MyCreateExcel(FName : string; isShowFile : boolean) : boolean;
{
MyCreateExcel := xlCreateExcel(FName, isShowFile);
}
Ну вот пожалуй и всё
Есть вопросы? задавайте.