Как работает наследование шаблонов?

Тема в разделе "Lotus - FAQ", создана пользователем NeoSimvolist, 9 ноя 2009.

  1. NeoSimvolist

    NeoSimvolist Гость

    Галочка в свойствах "Inherit design from master template".
    И когда вообще обновляется шаблон базы из мастер шаблона?
    Принцип подскажите)
     
  2. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    принцып просто
    за это отвечает задаче Design
    принудительно обновить в консоли сервера
    load design
    шедулерно по дефоулту настроено в 2 часа ночи
    глядите переменную
    servertasksat2=
     
  3. NeoSimvolist

    NeoSimvolist Гость

    Исчерпывающе, спс!
     
  4. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    эта... я малость вмешаюсь...
    1) наследование может быть указано как для всей базы, так и для отдельных элементов дизайна;
    2) настройка наследования отдельных элементов дизайна имеет приоритет перед настройкой наследования БД; т.е. если элемент имеет собственный шаблон в отличном от базы шаблоне, то он будет оттуда обновляться, а не из шаблона для БД;
    3) обновление дизайна может быть проведено в ручной форме, и автоматической, если включена задача Design (об этом было выше);
    чтобы обновить руками (еще есть ффункция замены дизайна) необходимо выполнить действие "Refresh design" из меню (File/)Database (pre R8), (File/)Application (R8). при выполнении этого действия будет отображен диалог выбора сервера, на котором лежит мастер-шаблон для выбранной БД.
    чтобы заменить дизайн необходимо выполнить действие "Replace design" из того же меню.
    при выполнении этого действия будет отображен диалог выбора шаблона, в котором отображаются как мастер-шаблоны, так и обычные.
    чтобы база была мастер шаблоном она должна иметь установленное свойство "Database file is a master template", в виде строки. при этом, на сколько мне помнится, расширение (NSF/NTF) не имеет значения. но, в диалоге выбора шаблона отображаются только NTF!
    автоматическим обновлением занимается задача дизайн (выше).
    4) каждый элемент дизайна имеет две доп. опции, которые влияют на обновление дизайна:
    - "prohibit design refresh or replace to modify" - если на элементе эта опция включена, то при обновлении дизайна этот элемент не будет обновлен или изменен;
    полезная опция, если правки ведутся прямо в базе, но при этом база наследует дизайн из шаблона;
    - "propagate this prohibition of design change" - если в шаблоне включена первая галка и эта, то элемент дизайна в базе, которой обновляют дизайн, получит первую галку;
    довольно скользкая вещь, я стараюсь не использовать, т.к. иногда можем сами запретить обновление, а потом долго думать, почему ничего не меняется при обновлении дизайна.

    пакафсе
     
  5. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    Akupaka
    да че уж там, давай ему и пример на вин апи дадим сразу :)
    Код (Text):
    Declare Private Function W32_NSFDbOpen Lib "nnotes" Alias "NSFDbOpen" (Byval PathName As Lmbcs String, hDB As Long) As Integer
    Declare Private Function W32_DesignRefresh Lib "nnotes" Alias "DesignRefresh" (Byval ServerName As Lmbcs String, Byval hDB As Long, Byval dwFlags As Long, Byval abortCheck As Integer, Byval messageProc As Integer) As Integer
    Declare Private Function W32_NSFDbClose Lib "nnotes" Alias "NSFDbClose" (Byval hDB As Long) As Integer

    Sub RefreshDesign(destPath As String)
    Dim rc As Integer, hDb As Long
    Call AddLog("Оновлення на сервері: " & destPath & " ...")
    rc = W32_NSFDbOpen(destPath, hDb) ' Open the db in the API and get a handle to the open db
    If rc <> 0 Then
    Call AddLog("Не удаётся открыть БД - Error Code " & Cstr(rc))
    Else
    rc = W32_DesignRefresh("", hDb, 0, 0, 0)
    If rc <> 0 Then
    Call AddLog("Не удалось обновить БД - Error Code " & Cstr(rc))
    End If
    Call W32_NSFDbClose(hDb)
    End If
    End Sub
    че-то настроение странное ;)
     
  6. NeoSimvolist

    NeoSimvolist Гость

    Очень помогло для понимания принципа. Благодарю, парни! Тема закрыта )
     
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    И как, не падает? Дело в том, что Integer в LS имеет размер 2 байта. А параметры abortCheck и messageProc являются указателями на callback-функции. Т.е. указателями на адрес памяти. Указатели под W32 имеют размер 4 байта.

    Голову отрубишь себе за такие советы? :)
     
  8. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    [topic="33068"]пример из CodeBase[/topic]
     
Загрузка...

Поделиться этой страницей