Просмотр журнала

ПНР и сопровождение

Модераторы: m0p3e, edward_K, Модераторы

Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Просмотр журнала

Сообщение Deinis »

Данные лежат, как оказалось, по самому простому принципу. Допустим таблица состоит из 4-х полей. 1-е поле занимает 8 байт, 2-е 5 байт, 3-е 4 байта, 4-е 2 байта. Тогда мемо-поле получится длиной 8+5+4+2 +1 = 20 байтов. Насчет последнего байта - не уверен, но по-моему он есть. Последовательность полей и их длина - в описании таблиц (Support-SQL-Поля таблицы). Это можно проверить, выгрузив мемо-поле (встав на него и нажав F5) во внешний файл (.txt) и с помощью любого hex-редактора (Hview, VCb и т.д.)просмотреть его.
У меня не получилось :( (знаний маловато) получить LOT-файлом, например, 1-е два байта мемо-поля - я использовал функцию SubStr...

Кто знает, как вытаскивать данные и работать с мемо-полями, откликнитесь.
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Re: Просмотр журнала

Сообщение Ольга »

Когда-то давно я делала отчет по журналу... Это было еще по 5.2. Не знаю, точно, поменялась что-либо или нет, но исходники высылаю. Может там есть что-нибудь полезное. Лови
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Просмотр журнала

Сообщение Deinis »

Большое спасибо, Ольга! :)) Интересные конструкции :)))
Forsit_
Постоянный гость
Сообщения: 61
Зарегистрирован: 29 мар 2005, 17:49

Re: Просмотр журнала

Сообщение Forsit_ »

Ольга, а мне можно?
Grom
Местный житель
Сообщения: 276
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Северо-Запад Много

Re: Просмотр журнала

Сообщение Grom »

И мне.
Подход к делу: СДЕЛАЛ и ... ЗАБЫЛ, а ОНО пусть САМО работает (не люблю возвращаться и повторяться).
m0p3e
Местный житель
Сообщения: 1386
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва

Re: Просмотр журнала

Сообщение m0p3e »

И мне... :)
m0p3e@hotbox.ru
alphia
Сообщения: 5
Зарегистрирован: 29 мар 2005, 17:49

Re: Просмотр журнала

Сообщение alphia »

И мне, плз
alphiya@bk.ru
Ольга
Постоянный обитатель
Сообщения: 135
Зарегистрирован: 29 мар 2005, 17:49

Re: Просмотр журнала

Сообщение Ольга »

Всем отправила, ловите...
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Re: Просмотр журнала

Сообщение hope »

Ольга! И мне, pls!
hope@sitno.mgn.ru
ALEKS123
Местный житель
Сообщения: 278
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Просмотр журнала

Сообщение ALEKS123 »

Оленька, тогда и мне, если не сложно
IgorA
Постоянный обитатель
Сообщения: 192
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Красноярск

Re: Просмотр журнала

Сообщение IgorA »

Я конечно опоздал на 3 месяца,
но может кто пошлет и мне.

khmz@mail.kts.ru
DarkGreen
Постоянный гость
Сообщения: 89
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Казахсктан Аксуский завод ферросплавов
Контактная информация:

Re: Просмотр журнала

Сообщение DarkGreen »

Хм... ИМХО, ни чего страшного в том МЕМО нет, Галактисты, скорее всего валят в то МЕМО целиком буфер данных Btrieve, отпарсить его и привести в удобоваримый вид проще простого (глядишь в X$File, X$Field, получаешь типы полей, их смещения и размер в байтах, разбиваешь строку в соответствии с этими данными и выполняешь приведение типов в соответствии с типами полей в словаре). Правда надо учитывать что структура МЕМО поля:
TMemo = packed record
BufLen: DWORD или Longint; {!!!! У Btrieve Word!!!!}
Buffer: array of Char;
end;
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Просмотр журнала

Сообщение ecasoft »

Занимался пару лет назад. В основном из-за того, что в журнализацию попадает куча мусора и надо выбрасывать его из просмотра.
И нужет был не отчет по таблицам, а отчет по связанным документам. Ну надо было вывести какие Накладные (со специцикацией) когда и кто правил, удалял и т.д. Отчет типа такого

Отчет по изменениям с... по...

20.01.03

Иванов
- исправлена позиция накладной 34 от 20 03 04, исправлено количество товара c 6 на 7.

Нетрудно разработать свой интерфейс работы с журналом. Отчет очень простой - это отчет по таблице x$journal. По имени таблицы можно получить код таблицы через x$files, а по коду получить записи из x$Journal. К сожалению индексы очень бедные, поэтому при большом количестве записей работает не очень быстро. Был разработан такой подход - периодически (например за месяц) изменяли каталог для хранения журнала в словаре. А поиск записей по журналу шел уже по нескольким таблицам журнализации (динамическое переключение по таблице журнализации в отчете).

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

С уважением, Игорь
Некоммерческое общение в форуме
ecasoft
Местный житель
Сообщения: 645
Зарегистрирован: 29 мар 2005, 17:49
Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"

Re: Просмотр журнала

Сообщение ecasoft »

Деинис..

НЕ понял почему ТАЙНА ПОКРЫТАЯ МРАКОМ??? В мемо хранится старая и новая запись просто и все...или старая для удаленного. Смещения в БД записаны в таблице x$Fields. Зная смещения можно легко получить людое поле.
Все написано в документации по функциям работы с мемо-полями... Никаких проблем нет достать любое поле из журнала используя эти функции. Если запись существует сейчас, то достаешь сразу Nrec и подвязываешь к существующему полю.

Тут писали, что как искать по сумме..до никаких проблем - получаешь сумму из мемо-поля и сравниваешь с искомой.

Также писали, что интерфейс для каждой таблицы разный...тоже не так, так как можно вводить с экрана выбор их x$files (имена таблиц) и в программе по полученному коду давать отчет по выбранной таблице или множеству связанных таблиц.

С уважением, Игорь
Некоммерческое общение в форуме
Deinis
Местный житель
Сообщения: 783
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Москва
Контактная информация:

Re: Просмотр журнала

Сообщение Deinis »

В сообщении от 17.02.03 - я уже написал, что понял принцип, по которому журнальная инфа хранится в мемо-полях. До этого для меня это действительно оставалось ТАЙНОЙ, ПОКРЫТОЙ МРАКОМ, а Вас, Игорь, рядом не было, чтобы спросить. ;)
Правда не смог вытащить информацию из memo-поля с помощью LoT-файла. Опять же - я написал, что не хватило знаний. Ну не смог я написать LoT, который бы вытянул какое-либо читаемое (да и просто, даже не читаемое) значение из memo-поля. Не заработали эти самые функции работы с memo-полями. Выводится "пустота".
Возможно LoT-ом этого сделать и нельзя в принципе. А до своего фейса пока руки не доходят.
Ответить