Страница 1 из 1
Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 10:10
gali
Возникла задача, возможно, кто-то уже ее решал или кого мысль умная посетит.
Задача следующая.
Как сделать, чтобы юзер как можно быстрее мог начать работать с файлом архива. Т.е. поступило пожелание иметь под рукой или в шаговой доступности список последних редактируемых файлов архива (5-10 не суть), как это сделано, например, в офисных программах.
Желание связано с тем, что во-1) привыкли работать с файлами, а не с объектами; во-2) частенько приходится пройти по веткам проекта, а пока у нас народ не привычный, путается, если не сказать, забывает, в какой объект файл импортирован.
Я думала попробовать способ получения отчета со списком файлов, но из него скорее всего удастся лишь открыть окно объекта, а там снова надо искать файл.
Есть еще вариант реализовать это действием, но тоже как-то не элегантно.
И еще. Я не нашла по какой таблице(v) можно получить список редактируемых юзером файлов. В File_v информация о том, кто файл последний редактировал - это не совсем то. Т.е. юзер_1 редактировал файл, для него он последний редактируемый. Юзер_2 редактировал файл позже. В File_v остается юзер_2. А мне бы таблицу с историей.
Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 10:21
gali
да, я поняла, искать надо таблицы(виды) с версиями, типа, File_Log_v, File_Ver_v
Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 10:52
Anderyt
да, история как раз в таблице LSDBO.File_Log
мы у себя сделали специальный вид, который берет из этой таблицы записи за последний месяц, и при этом не учитываются права.
потом в отчете в Лоции делаем селект из этого вида, в принципе, работает достаточно быстро.
но в отчете конечно показываются объекты, точнее, показываются параметры документов (включая название, дату и тип доступа), но при щелчке на строке открывается объект с этим документом (так как в том самодельном виде есть еще и информация из lsdbo.object_reference)
этот отчет запускается кнопкой, которая есть на самодельной панели инструментов (на форме объекта, который открывается у всех при старте Лоции), впрочем, сейчас вроде как можно действие для этого отчета прикрутить в какое нить меню, так что еще проще будет..
и в итоге получили как раз список последних файлов.. если нужно быстро вернуться к документу, который открывал недавно - то самое то

Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 12:29
gali
но при щелчке на строке открывается объект с этим документом
хотелось бы, чтобы по щелчку открывался сам файл, а не объект!!!
список версий файлов за интервал времени я уже получаю, надо найти, где прячется описание файла. Пока нашла только orig_filepath, а это не совсем то.
Но как поступить дальше с этим списком, пока не знаю. Повторюсь, но из отчета по строке открывать объект и только потом файл, не хочется. Попробовать реализовать действием? но в действии нельзя разместить массив на форме. Выпадающий список файлов с длинным описанием как-то не презентабельно. Есть еще вариант: выбирать не список, а по одной строке и в фиксированные переменные (5 файлов, 5 переменных) с чекбоксами.
Но это все равно не то! Как элегантно: меню, внизу список файлов, щелк и готово.
Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 12:43
Anderyt
н-да... чтобы открывался сразу документ из отчета - честно говоря, не знаю...
а про описание документа..
у меня вот такой запрос:
Код: Выделить всё
SELECT (SELECT id
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS isobject_id,
(SELECT mnemo
FROM lsdbo.object_type obj_type
WHERE id =
(SELECT type_id
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id)))) AS mnemo,
(SELECT description
FROM lsdbo.object_reference obj
WHERE id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS obj_desc,
(SELECT vs.value
FROM lsdbo.attrib_value av, lsdbo.value_string vs
WHERE av.attrib_id = - 28 AND av.value_id = vs.id AND av.object_id IN
(SELECT object_reference_id
FROM lsdbo.file1 file1
WHERE file1.id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE file_ver.id = file_log.file_ver_id))) AS indication,
(SELECT description
FROM lsdbo.file1 file1
WHERE file1.id IN
(SELECT file_id
FROM lsdbo.file_ver file_ver
WHERE id = file_log.file_ver_id)) AS doc_desc,
user_id,
state AS acc_type,
cd
FROM LSDBO.File_Log file_log
WHERE (state IN ('V', 'A', 'C', 'I')) AND (cd >= DATEADD(month, - 1, GETDATE()))
and user_id = 0
вытаскивает следующие вещи (по пордяку):
ИД объекта
Мнемо типа объекта
Описание объекта
Обозначение объекта (атрибут с ИД=-28)
Описание ДОКУМЕНТА
Ид юзера
Код типа доступа
Дату доступа
может, поможет...
Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 12:53
gali
да, спасибо, посмотрю внимательнее. Там и состояние анализируется. Описание нашла в таблице с файлами.
Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 15:51
Старик Крупский
Сам не пробовал, но судя по описанию, если в отчете используется таблица file1, то в контекстном меню в пункте связанные (или как он там) должен появиться выбор того, что можно открыть. Не факт, что откроется именно файл, а не окошко свойств версии

Re: Работу с файлами архива сделать привычнее
Добавлено: 27 май 2009, 16:00
gali
я решила слепить действие и посмотреть, как это будет. Не понравится, попробую отчет. Глядишь, у кого еще мысль родится

Re: Работу с файлами архива сделать привычнее
Добавлено: 29 май 2009, 12:22
gali
кстати, действие сделала. работает.
Не так эстетично, как в офисе: список в меню "файл" и щелчком открывается. Кнопка, по ней список и чекбоксы. Пришлось анализировать права, чтобы открывать файл на чтение или редактирование. Конечно, чекбоксы в этом случае как-то дубовенько смотрятся, но другого пока не дано. Реализовывать задачу через отчеты уже лениво.
Re: Работу с файлами архива сделать привычнее
Добавлено: 29 май 2009, 15:10
Anderyt
может, вместо чекбоксов будет лучше переключатель?
открывается то вроде один файл в итоге...
или не один?
Re: Работу с файлами архива сделать привычнее
Добавлено: 01 июн 2009, 07:45
gali
мне показалось удобнее предоставить возможность открыть сразу все (или > 1). Если сделать переключатель, то, если надо открыть сразу несколько, то 1) пришлось бы либо повторно запускать действие, либо 2) после открытия одного файла возвращать снова на картинку со списком файлов, т.е. спрашивать юзера, типа, еще? Мне показалось, будет лишним грузить юзера необходимостью думать, выбирать. Опять же, если открывать несколько файлов по одному, легко потерять нить, что уже открыл, а что еще надо. А с чекбоксами сразу на форме все видно.