Страница 2 из 3
Добавлено: 14 май 2005, 23:49
Deinis
edd писал(а):И как описать таблицу в проекте?
#Include путь_к_файлу_с_таблицей\сам_файл
#make "путь_к_FRM\Frm"
Больше ничего добавлять не надо или я что-то не так написал? Не видит таблицу и всё...
Создаем на диске папку с проектом. Папка называется "An_Sld".
В папке An_Sld создаем файл vip.cfg следующего содержания:
Код: Выделить всё
#INCLUDE \\GalMSK\D585$\vip.cfg
[System]
// для компиляции формы аналитики по группам счетов
OpenResources=\\Galmsk\Gal58502$\EXE\Buh.res
[Compilers]
IncludesPath = INC
OutputResourceName=D:\RES\An_Sld.res
Путь до res-файл пишешь свой. Также свой путь до общего файла vip.cfg (ежли таковой имеется).
В этой же папке создаем файл vip.bat следующего содержания:
Код: Выделить всё
Del Vip_Res.log
\\GalMSK\Gal58502$\EXE\vip.exe /c=vip.cfg An_Sld.prj /E=2 /L+
Del atlantis.res
Del leakage.log
Del *.tmp
RD HwDir
Путь до vip.exe прописать свой собственный.
Здесь же создаем еще один файл An_Sld.prj следующего содержания:
Код: Выделить всё
// подключим описание типов данных для некоторых таблиц в памяти (table struct)
#INCLUDE DicTypes.def
// подключим описание самих таблиц в памяти (table struct)
#INCLUDE DefTables_An_Sld.vpp
CONST
coSaldoNM = 8002 ; // системный код таблицы SaldoNM
cgPick_Schet = 65532; // счета без субсчетов, сохраняемые при выборе в PickBuh.KodTable
cgPick_SubSch = 65531; // счета с субсчетами, сохраняемые при выборе в PickBuh.KodTable
// Вид оборотов
VidOb_Db = 1 ; // Записи в SaldoNM по ДЕБЕТУ (SaldoNM.ViOb)
VidOb_Kr = 2 ; // Записи в SaldoNM по КРЕДИТУ (SaldoNM.ViOb)
#INCLUDE KauConst.inc
// действия, производимые интерфейсом 'DefTables_An_Sld' с таблицами в памяти
InitTables = 1 ;
ClearTables = 2 ;
END
#MAKE '*.vip'
#MAKE '*.rtf'
Здесь же создаем еще один файл DefTables_An_Sld.vip следующего содержания:
Код: Выделить всё
Interface DefTables_An_Sld 'Инициализация/очистка таблиц в памяти (Table Struct)' AlwaysReturn ;
// AlwaysReturn - вернуть значения, даже если интерфейс завершился командой Abort
create view
Var Action : word ; // действие с таблицами в памяти
as select *
from
mtKatOrg
,mtDogovor
;
Parameters Action ;
HandleEvent
cmInit : {
case Action of
InitTables : {
DELETE All From mtKatOrg ;
DELETE All From mtDogovor ;
mtChangeRefCount( #mtKatOrg , 1 );
mtChangeRefCount( #mtDogovor, 1 );
}
ClearTables : {
DELETE All From mtKatOrg ;
DELETE All From mtDogovor ;
mtChangeRefCount( #mtKatOrg , -1 );
mtChangeRefCount( #mtDogovor, -1 );
}
end; // case
// mtChangeRefCount - увеличение/уменьшение кол-ва ссылок на мои Table struct - таблицы в памяти,
// увеличение кол-ва ссылок - чтобы таблицами можно было пользоваться во всех других интерфейсах
// уменьшение кол-ва ссылок - "грохнуть" таблицы из оперативной памяти
Abort; // Чтобы не открывалось окошко интерфейса
}
End;
END.
В начале твоего отчета (Link или ARD) ты пишешь
Код: Выделить всё
.begin
RunInterface('DefTables_An_Sld',InitTables);
end.
В конце твоего отчета (Link или ARD) ты пишешь
Код: Выделить всё
.begin
RunInterface('DefTables_An_Sld',ClearTables);
end.
Добавлено: 16 май 2005, 09:10
edd
а компилить, простите, FRM файл где при этом? В гале или в атлантисе? Или разницы никакой??
Добавлено: 16 май 2005, 09:56
Deinis
edd писал(а):а компилить, простите, FRM файл где при этом? В гале или в атлантисе? Или разницы никакой??
Запуском файла vip.bat
Добавлено: 16 май 2005, 10:01
Maverick
В принципе таблицу можно описать в самом проекте
Добавлено: 16 май 2005, 10:01
edd
Лады, спасиб.
Добавлено: 16 май 2005, 10:03
edd
Maverick писал(а):В принципе таблицу можно описать в самом проекте
Тогда у меня "таблица отстутсвует в словаре"..
Добавлено: 16 май 2005, 10:42
Maverick
прошу привести содержание файла проекта
Добавлено: 16 май 2005, 11:17
edd
Maverick писал(а):прошу привести содержание файла проекта
Да он приведен вроде в самом верху
Добавлено: 16 май 2005, 12:29
edd
Не пойму, для чего в папке проекта нужен описанные вами файлы vip.cfg и Vip.bat
Добавлено: 16 май 2005, 12:39
edd
И на строку #INCLUDE DicTypes.def компилятор говорит, что "тип уже определен: TNREC"
Добавлено: 16 май 2005, 19:43
Deinis
edd писал(а):И на строку #INCLUDE DicTypes.def компилятор говорит, что "тип уже определен: TNREC"
Edd, ты подстрой под себя эти файлы. Может тебе такая куча инклюдов не нужна. Я привел пример со своего проекта, реального. Мне эти инклюды были нужны.
Добавлено: 16 май 2005, 19:53
Deinis
edd писал(а):Не пойму, для чего в папке проекта нужен описанные вами файлы vip.cfg и Vip.bat
vip.bat нужен для запуска компилятора. Я мог бы каждый раз писать, чтобы откомпилировать проект
__путь_до_vip.exe имя_файла_для_компиляции /R:_имя_выходного_файла.res и дальше куча других параметров
И что, такую строку набирать вручную каждый раз, как только захочу что-то отредактировать и запустить перекомпиляцию? Ты это предлагаешь? Хе, ну флаг в руки.... Проще написать батник, запускающий компиляцию, что я и сделал.
Затем
vip.cfg
Батник мы запустим, он в свою очередь запустит vip.exe, а где компилятор увидит настройки компиляции? Где он прочитает название выходного res-файла, где прописываются разные пути для включения??? Вот для этого при запуске vip.exe в батнике предусмотрен параметр "/c", который говорит, что конфигурацию смотреть в файле vip.cfg в текущем каталоге. Теоретически я мог бы в запускающей строке написать "/с=C:\tra_ta_ta.123", но это нужно???? проще ведь написать /c=vip.cfg, ведь так???
Добавлено: 17 май 2005, 09:42
edd
Deinis писал(а):edd писал(а):И на строку #INCLUDE DicTypes.def компилятор говорит, что "тип уже определен: TNREC"
Edd, ты подстрой под себя эти файлы. Может тебе такая куча инклюдов не нужна. Я привел пример со своего проекта, реального. Мне эти инклюды были нужны.
Согласен с этим, уже поговорил об этом, не нужны, так что сорри.
Добавлено: 17 май 2005, 09:43
edd
Deinis писал(а):
vip.bat нужен для запуска компилятора. Я мог бы каждый раз писать, чтобы откомпилировать проект
__путь_до_vip.exe имя_файла_для_компиляции /R:_имя_выходного_файла.res и дальше куча других параметров
И что, такую строку набирать вручную каждый раз, как только захочу что-то отредактировать и запустить перекомпиляцию? Ты это предлагаешь? Хе, ну флаг в руки.... Проще написать батник, запускающий компиляцию, что я и сделал.
Ну что за люди...Барабан на шею не хотел мне повесить ещё к тому же? Нет, я понимаю, что это правильный подход к работе, но че так грубо то? Если говорить о проще...
Deinis писал(а):
Затем
vip.cfg
Батник мы запустим, он в свою очередь запустит vip.exe, а где компилятор увидит настройки компиляции? Где он прочитает название выходного res-файла, где прописываются разные пути для включения??? Вот для этого при запуске vip.exe в батнике предусмотрен параметр "/c", который говорит, что конфигурацию смотреть в файле vip.cfg в текущем каталоге. Теоретически я мог бы в запускающей строке написать "/с=C:\tra_ta_ta.123", но это нужно???? проще ведь написать /c=vip.cfg, ведь так???
Если говорить о проще, то название выходного файла Res он прочитает в общем для всего випа (на все времена) Vip.cfg в разделе [Compilers], который будет меняться в зависимости от задачи. Далее, если говорить опять же проще, зачем писать
Deinis писал(а): [System]
// для компиляции формы аналитики по группам счетов
OpenResources=\\Galmsk\Gal58502$\EXE\Buh.res
, если можно написать сразу OpenResources=\\Galmsk\Gal58502$\EXE\*.res, много времени для запуска это не займет. Опять же в общем, для всех запусков, vip.bat-файле, один раз, достаточно написать
Del atlantis.res
del *.tmp /q /s
del *.tmp /q /s /ah
del *.tmp /q /s /as
В FAR-e достаточно написать vip, перейти на файл проекта, нажать Ctrl+f для вставки в запускающую строчку и вперед. Компиляция в Res-файл началась.
Может что-то упустил ещё, но система та же.
Потому му я и спросил, зачем. Подход, повторюсь, замечательный, но не надо думать, что это единственно возможное решение. Только что такое "/E=2 /L+ " я не знаю ) Может пояснишь?
Добавлено: 17 май 2005, 12:11
edward_K
насчет *.res категорически не согласен.
во первых не следует подрубать compdata.res и несколько других ресов.
во вторых нужно строго указать порядок подключения ресов, поскоку потом могут быть троблы с присоединенками, объектными фейсами и прочей пересекающейся бодягой.