Страница 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