Страница 1 из 1
форма и прототип для "Отчет по журналу изменений БД&quo
Добавлено: 29 июн 2005, 10:39
scanner
вышлите если у кого есть саму форму "Отчет по журналу изменений БД" и ее прототип, или лучше привидите их распечатку здесь. А может у кого то есть мысли как эту форму вытащить?
Добавлено: 13 июл 2005, 11:21
scanner
Выкладываю форму, но только компилироватьсяона не хочет упорно. Может кто подскаже в чем дело?
Код: Выделить всё
.Form 'JOURRPT'(_FNAMEjNRec:Comp; jTableCode:Word; jTableNRec:Comp; jUser:Comp; jDateTime1:_DateTime; jDateTime2:_DateTime; jOfficeCode:Word)
.p 64
.f 'JOURRPT.OUT'
.var
jOperation:Word
jOperationStr:String
.endvar
.Create view JournalReportView
as select
X$Journal.*,
X$Files.*,
X$Users.*,
Abonents.*
where
((
X$Journal.TableCode == X$Files.Xf$Code and
X$Journal.UserCode == X$Users.Atl_NRec and
X$Journal.OfficeNo == Abonents.OfficeNo
))
and (X$Files.Xf$Code <> 0)
//=========================================================================
// Условия на выборку, оговоренные в запросе
//=========================================================================
Condition JournalNRec as (jNRec = X$Journal.NRec)
Condition TableCode as (jTableCode = X$Journal.TableCode)
Condition TableNRec as (jTableNRec = X$Journal.TableNRec)
Condition User as (jUser = X$Journal.UserCode)
Condition BegDate as (jDateTime1 <= _DateTime1(X$Journal.LastDate,X$Journal.LastTime))
Condition EndDate as (jDateTime2 >= _DateTime1(X$Journal.LastDate,X$Journal.LastTime))
Condition OfficeCode as (jOfficeCode = X$Journal.OfficeNo)
Condition Operation as (((jOperation and 1) <> 0) and (X$Journal.Operation = 0)) or
(((jOperation and 2) <> 0) and (X$Journal.Operation = 1)) or
(((jOperation and 4) <> 0) and (X$Journal.Operation = 2))
;
.Create view ReportMakerView
as select
X$Users.*
where
((
UserID == X$Users.Atl_NRec
))
;
.Create view ReportTableView
as select
X$Files.*
where
((
jTableCode == X$Files.Xf$Code
))
;
.Create view ReportUserView
as select
X$Users.*
where
((
jUser == X$Users.Atl_NRec
))
;
.Create view ReportAbonentView
as select
Abonents.*
where
((
jOfficeCode == Abonents.OfficeNo
))
;
.procedure MAKE_JOPERATIONSTR(Argum:Word);
begin
jOperationStr:= '';
if ((Argum and 1) <> 0)
jOperationStr:= jOperationStr + 'Добавление';
if (jOperationStr <> '')
jOperationStr:= jOperationStr + ',';
if ((Argum and 2) <> 0)
jOperationStr:= jOperationStr + 'Модификация';
if (jOperationStr <> '') and
(SubStr(jOperationStr,Length(jOperationStr),1) <> ',')
jOperationStr:= jOperationStr + ',';
if ((Argum and 4) <> 0)
jOperationStr:= jOperationStr + 'Удаление';
if (SubStr(jOperationStr,Length(jOperationStr),1) = ',')
jOperationStr:= SubStr(jOperationStr,1,Length(jOperationStr) - 1);
end.
.fields
ReportMakerView.X$Users.Xu$FullName
_DateTimeToStr(_CurDateTime,'DD/MM/YYYY HH:NN:SS')
jNRec
ReportTableView.X$Files.Xf$Name
jTableNRec
jDateTime1
jDateTime2
ReportUserView.X$Users.Xu$LoginName
ReportAbonentView.Abonents.Name
jOperationStr
JournalReportView.X$Journal.NRec
JournalReportView.X$Files.Xf$Name
JournalReportView.X$Journal.TableCode
JournalReportView.X$Journal.TableNRec
DateToStr(JournalReportView.X$Journal.LastDate,'DD/MM/YY')
TimeToStr(JournalReportView.X$Journal.LastTime,'HH:MM')
JournalReportView.X$Users.Xu$LoginName
JournalReportView.Abonents.Name
if (JournalReportView.X$Journal.Operation = 0, 'Добавление', if (JournalReportView.X$Journal.Operation = 1, 'Модификация', if (JournalReportView.X$Journal.Operation = 2, 'Удаление', 'ОШИБКА!')))
.endfields
.begin
if jNRec <> 0 then PushCondition(tcJournalNRec);
if jTableCode <> 0 then
begin
PushCondition(tcTableCode);
if jTableNRec <> 0 then PushCondition(tcTableNRec);
end;
if jUser <> 0 then PushCondition(tcUser);
if Comp(jDateTime1) <> 0 then PushCondition(tcBegDate);
if Comp(jDateTime2) <> 0 then PushCondition(tcEndDate);
if jOfficeCode <> 0 then PushCondition(tcOfficeCode);
if jOperation <> 0 then PushCondition(tcOperation);
end.
.{table 'ReportMakerView.X$Users'
Отчет выполнил ^ ^
.}
ОТЧЕТ ПО ЖУРНАЛУ ИЗМЕНЕНИЙ БАЗЫ ДАННЫХ
.{?internal; (jNRec+jTableCode+jUser+jDateTime1+jDateTime2+jOfficeCode+jOperation <> 0)
Параметры выборки для отчета:
.}
.{?internal; (jNRec <> 0)
Номер записи в журнале.... @@@@@@@@@@@@@@@@@@
.}
.{?internal; (jTableCode <> 0)
.{table 'ReportTableView.X$Files'
Таблица................... @@@@@@@@@@@@@@@@@@@@@@@@@@@@
.}
.{?internal; (jTableNRec <> 0)
Номер записи в таблице.... @@@@@@@@@@@@@@@@@@
.}
.}
.{?internal; (Comp(jDateTime1) <> 0)
Дата/время изменения с @@@@@@@@@@@@@@@@@@@
.}
.{?internal; (Comp(jDateTime2) <> 0)
Дата/время изменения по @@@@@@@@@@@@@@@@@@@
.}
.{?internal; (jUser <> 0)
.{table 'ReportUserView.X$Users'
Имя пользователя.......... ^
.}
.}
.{?internal; (jOfficeCode <> 0)
.{table 'ReportAbonentView.Abonents'
Офис изменения............ ^
.}
.}
.{?internal; (jOperation <> 0)
.begin
Make_jOperationStr(jOperation);
end.
Операция.................. ^
.}
измененный журнал
.{table 'JournalReportView.X$Journal'
.[H OVERWRITE
------------------T--------------T-------T-----------------T--------------T--------------T----------------------T-------------┐
│ Номер в журнале │ Имя таблицы │ Номер │ Номер записи в │ Дата/время │ Пользователь │ Офис изменения │ Операция │
│ │ │таблицы│ таблице │ изменения │ │ │ │
+-----------------+--------------+-------+-----------------+--------------+--------------+----------------------+-------------+
.]H
│@@@@@@@@@@@@@@@@@│@@@@@@@@@@@@@@│ &&&&& │@@@@@@@@@@@@@@@@@│@@@@@@@@ @@@@@│@@@@@@@@@@@@@@│@@@@@@@@@@@@@@@@@@@@@@│@@@@@@@@@@@@@│
.[F OVERWRITE
L-----------------+--------------+-------+-----------------+--------------+--------------+----------------------+--------------
.]F
.}
.endform