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

Ошибка в работе интерфейса PickCatalog2

Добавлено: 18 ноя 2009, 12:24
niteo
Работаю через терминал с клиентом. Аналогично организована работа для остальных пользователей. В моем отчете вызываю интерфейс PickCatalog2. В моей сессии все работает нормально. У других пользователей вылетает ошибка такого рода:
При попытке выбора подразделения(insert-ом) выскакивает сообщение об ошибке - Запись не найдена. таблица CATALOGS :?
И клиент повисает. Пробывал удалять все DSK и TMP в том числе из папок пользователей(C:\Documents and Settings\user1\GALAXY\) Не помогает. Пробовал брать свои DSK и TMP, переименовывал их для другого пользователя и заливал им. Работает, открываю интерфейс там уже есть мой выбор. я снимаю его, закрываю интерфейс, выхожу из отчета. Пытаюсь вновь сформировать отчет, вызываю интерфейс, в нем пытаюсь сделать выбор подразделения, вылезает ошибка..... Подскажите в чем моя проблема.

Добавлено: 18 ноя 2009, 12:39
Polimer
Как вариант: у вас другие права, другие настройки в г.

Добавлено: 18 ноя 2009, 12:47
niteo
Polimer писал(а):Как вариант: у вас другие права, другие настройки в г.
Конечно другие, я под Одмином.

Вот попробывал что сделать: сейчас юзверю скопировал все TMP и DSK без RES файлов. Взял я их так, зашел под этим пользователем (логин/пароль) в клиент, в своей сессии. В C:\Documents and Settings\ADMIN\GALAXY\ появились папки "другого" пользователя. От туда я и взял все эти файлы. Потом я их скопировал в папку C:\Documents and Settings\user1\GALAXY\. У другого пользователя вроде стало норм. Но при попытке выделения всех подразделений, вылетает та же ошибка.
Что то тут не чисто.... :(

Добавлено: 18 ноя 2009, 13:22
m0p3e
Перед вызовом PickCatalogs2 маркер очистить пробовали?

Добавлено: 18 ноя 2009, 13:29
niteo
m0p3e писал(а):Перед вызовом PickCatalogs2 маркер очистить пробовали?
Как я понял есть только вот такая процедура для работы с маркером:

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

procedure DoneMarker (markers : longInt; name : string);

Первым параметром передается уникальный идентификатор маркера. Где его можно найти?

Добавлено: 18 ноя 2009, 14:44
KATZ
niteo
Если у вас под юзером и под админом программа по-разному себя ведет - напрашивается предположение, что проблема связана с правами. Копните в этом направлении, посмотрите настройки протекта и т. д.
Первым параметром передается уникальный идентификатор маркера. Где его можно найти?
Ну, это несерьезный вопрос. Перечитайте раздел про работу с маркерами.

Добавлено: 18 ноя 2009, 14:59
m0p3e
Так попробуйте:
var
hMarker : LongInt;
endvar
begin
hMarker := InitMarker ( '', 8, 200, 10 );
DoneMarker ( hMarker, 'CatalogsMarker' );
RunInterface(PickCatalogs2,...);
end

Добавлено: 18 ноя 2009, 16:21
niteo
m0p3e не помогло. Пробывал вычищать все TMP и DSK. Отказывается работать.... Буду наверн Support тераризировать. Блин, ну работают же другие отчеты. Может я вызов как то не так делаю????
Вот кусочек кода:

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

		  cpodr := 0;
		  hMarker := InitMarker ( '', 8, 200, 10 );
		  DoneMarker ( hMarker, 'CatalogsMarker' );
	  	  if RunInterface('Z_STAFFCAT::PickCatalog2', Integer(-11), cpodr, Comp(100)) = cmdefault
		  {
		  	  DepartmentMarker := InitMarker('CatalogsMarker', 8, 200, 100);
			  UpdateDepartmentFilterStr;
		  }


Добавлено: 18 ноя 2009, 17:15
niteo
Вот что еще заметил, думаю в этом соль.
При попытке вызова интерфейса через Запуск Внешнего Интерфейса заметил что интерфейс вызывается через другой ресурс. Т. е. там написано: Z_STAFFCAT::PICKCATALOG2 (debug_Ok.res)
А должно быть как я понял Z_STAFFCAT::PICKCATALOG2 (Z_StaffCat.res).

Пробывал "играться" с приоритетами, непомогло. Файл debug_Ok.res это набор отчетов разработанные Галактикой специально для нашей конторы. Подскажите, как мне сделать так чтобы интерфейс PICKCATALOG2 вызывался из Z_StaffCat.res ?????

Добавлено: 18 ноя 2009, 17:23
edward_K
ну поменять то легко, если есть репозитарий или хотя бы sql сапорта.
Смотрите какой приоритет у debug_ok и ставите скажем 400(у большинства родных ресов 500). Можно и просто в правах доступа для себя отключить. Через Sql слегка сложнее - нужно смотреть таблицу Components и там аккуратненько менять.

Добавлено: 18 ноя 2009, 17:29
m0p3e
Опасно в данном случае с приоритетами играть. Стандартные интерфейсы перекроют модифицированные под вашу контору.
Логично в данном случает на тестовой БД отключить debug_ok.res - удалить dsk - проверить работу выбора в стандартных интерфейсах и своем отчете. Если проблема не повторится, то требовать от доработчиков описание сделанных ими изменений в PickCatalogs2.

Добавлено: 18 ноя 2009, 17:52
niteo
Отключил его. Подцепилось из Z_StaffCat.res. Ошибка осталась.... Попробую минимальный отчетик наваять. Только для вызова сего интерфейса. Может я как то не так вызываю????

Добавлено: 18 ноя 2009, 18:21
edward_K
попробуйте вместо cpodr указать 0. Если прокатит, то у вас видимо переменная 2 раза описана. А вообще вам обязательно множественный выбор здесь? Если одиночный, то 3 параметр будет другой. Опять же вопрос - а никто dsk не цеплянул с помечеными подразделениями? Делайте отчет о рабочей станции и на тесте все нафиг отрубайте что не стандартное.

Добавлено: 18 ноя 2009, 19:03
niteo
Вообщем вот что получается, вызываю интерфейс PickCatalogs2 из Запуск Внешнего Интерфейса, интерфейс как положено лежит в Z_STAFFCAT::PICKCATALOG2 (Z_StaffCat.res) с параметрами: -11, 0, 100. Пытаюсь выделить подразделение, вылетает ошибка :). Значит все таки настройки....

Добавлено: 18 ноя 2009, 19:38
edward_K
а не хотите попрбовать tmp и dsk каталог указать куда поближе - так чтобы можно было по всем сразу зверям чистить и не было длнных имен, ну и права дать соотв. Оптимально если будет некий каталог, в котором пользователь может создавать папки со всеми правами на влдадельца(остальным запрет), а там уже чтобы размешались его выходные и временные файлы? И еще - перед пометкой попробуйте переключится в линейный список - так тоже будет виснуть? Опять же - этот фейс имеет встроенные права по настройке - может и это влияет.