Страница 1 из 1

"Глобальная" временная таблица

Добавлено: 21 апр 2008, 11:08
Евгений
Приветствую!

Не подскажете, как описывается "глобальная" временная таблица, чтобы можно было обращаться, из нескольких интерфейсов.

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

Спасибо.

Код: Выделить всё

 Table struct tmpTBL
  ( 
  NREC: Comp,
  KOL: Double
  )
 with index
 (
 IDX01 = NREC
 );

Interface My;
...
//операции с временной таблицей (вставка, модификация)
...
HandleEvent
  cmExcel:
  {
   EXL := xlCreateExcelWithTemplate('MyXLS.xls', True);
  ...
  };
  cmARD:
 {
  RunForm('MyArd');
 };
end;
end. //Interface

.Form 'MyArd'
.NameInList 'Отчет'
.F 'MyArd'
.ARD
...
.endform

Добавлено: 21 апр 2008, 11:15
edward_K
а часом Alter Dictionary в проекте нет?
и добавте
with index
( tmtbl01 = nrec
) ;

Добавлено: 21 апр 2008, 11:29
Евгений
Alter Dictionary в проекте отсутствует. В таблице индекс описан.

Код: Выделить всё

#statusline "statgal"
#make  "MyInterface.VIP" 

Код: Выделить всё

Table struct tmpTBL 
  ( 
  NREC: Comp, 
  KOL: Double 
  ) 
 with index 
 ( 
 IDX01 = NREC 
 );

Добавлено: 21 апр 2008, 11:57
Galex
Если пошариться в исходниках Галактики, то можно найти использование подобных приемов с стандартных интерфейсах... А раз сами Галактяне выносят временные таблицы за пределы интерфейсов, значит это вполне легальные действия... :-) А вот про сообщение... Лично у меня все компилируется молча, но при этом исправляется контрольная сумма словаря - возможно потому что я админ... В любом случае, доступ на таблицу X$FILES должен быть у любого пользователя... А может так и лучше - не придется постоянно контрольную сумму исправлять?.. :smile: