Цвет строк в представлении

Тема в разделе "Проектирование представлений / папок", создана пользователем hosm, 22 ноя 2009.

  1. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
    Как настроить отображение цвета строк в представлении : http://codeby.net/forum/threads/32848.html, в той теме есть еще ряд примеров.

    1. Общий (в зависимости от полей документа):
    В дизайне вьюхи делается скрытый столбец с галкой use value as color, а на столбце пишется формула - в зависимости какие значения нужно контролировать и какие цвета подставлять.
    Можно так:
    @If(@Attachments; "0000ffff"; "dddd0000")
    А можно так:
    Цвет текста и фона строки в представлении можно настроить через формулу в колонке с "Use value as color", возвращающей список из 3 или 6 элементов.
    Значение из 3 чисел укажет RGB-значения для цвета текста. Цвет фона не меняется.
    Значение из 6 чисел укажет RGB-значения для цвета фона (первые 3 числа) и текста (вторые 3 числа).
    Появились в Release 6.
    Пример: от значения поля Status в документе меняется цвет текста
    @If(Status="0";255:0:0; Status="1";0:0:128; Status="2";0:127:0; 0:0:0)

    P.S. Сталкивались с ситуацией, что в вебе не работает выделение цветом дочерних документов во встроенном представлении с галкой отображения иерархии ответов, без галки все работает. Решали через раскраску таких документов javascript-кодом.

    2. Из темы Цвет для непрочитанных документов:
    Цвет непрочитанных настраивается в свойствах представления (3-я закладка) Rows / Unread, при этом на предпоследней вкладке ("Advanced") в "Unread marks" надо, чтобы не было установлено None.
    У цветовой колонки приоритет больше, чем у цвета в св-вах вида.
    Чтобы в колонке цвета указать, что должен использоваться цвет из св-в вида, надо добавить NOCOLOR:=-1:1:1;

    3. (настраиваемый), пример lmike из темы http://codeby.net/forum/threads/32848.html
    Во вью создаём скрытый столбец с галками "Use value as color" и "User definable", в поле "Profile document" указываем имя профиля "ColorProfile", на последней закладке указываем Name: имя поля в профиле "$colorScheme", в формулу столбца пишем @UserName.

    сабформу ColorProfile, с полями
    CFD (скрытые)
    BGdef:"00ffffff", FGdef:"00000000"

    Editable, типа Color:
    BGcolorChoice, FGcolorChoice

    и результир. Computed (скрытое), типа текст:
    $colorScheme
    с содержимым:
    {FG:="}+FGColorChoice+{";BG:="}+BGColorChoice+{";}+{v:=@If(@IsAvailable(name);@if(@Like(@LowerCase(name);"cm_%");BG:FG;"");"");v}

    в завис. от содержимого поля (name) дока - цвет

    форму ProfileForm с вычисляемой сабформой:
    Код (Text):
    varname:="currentProfile";
    profile:=@Environment(varname);
    @Environment(varname;"");
    profile
    <div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">и агент для обновления профайла:</div></div><div class="sp-body"><div class="sp-content">
    Код (Text):
     Dim session As notessession   
    Dim db As notesdatabase
    Dim uiws As New notesuiworkspace
    Dim nSuccess As Integer
    Dim strDialogMode As String
    Dim m_profile As notesdocument
    Dim profileName As String
    Dim envVarName As String
    Dim profileTitle As String
    Dim profileForm As String
    Dim checkChanges As String
    Dim wks As New NotesUIWorkspace

    envVarName="currentProfile"
    profileForm="profileForm"

    profileName="ColorProfile"
    profileTitle="Цветовой профайл"
    checkChanges="colorsChange"

    On Error Goto errorhandler 

    Set session = New notessession
    Set db = session.currentdatabase

    If session.Notesbuildversion < 178 Then
    Messagebox("This template doesn't support using the R5 client to modify your preferences.")
    Exit Sub
    End If
    Set m_profile = db.GetProfileDocument(profileName)
    '   Call m_profile.save(False,False)
    Call m_profile.ReplaceItemValue(checkChanges, "0")
    strDialogMode = session.GetEnvironmentString("$DialogMode")
    Call session.SetEnvironmentVar(envVarName,profileName)
    If Len(strDialogMode) Then
    Call m_profile.ReplaceItemValue("$DialogMode",Cint(strDialogMode))
    Else
    Call m_profile.RemoveItem("$DialogMode")           
    End If 
    nSuccess = uiws.dialogbox(profileForm,True,True,False,False,False,False,profileTitle,m_profile,True,Fa
    lse,True)
    If nSuccess Then
    '       If m_profile.Getitemvalue(checkChanges)(0) = "1" Then
    Dim colorScheme As Variant
    Dim CProfile As notesdocument
    Set CProfile = db.getprofiledocument(profileName)
    colorScheme = m_profile.getitemvalue("$colorScheme")
    Call CProfile.replaceitemvalue("$colorScheme", colorScheme)
    Call CProfile.save(False,False)
    Call wks.ViewRebuild(True,True)
    '       End If
    End If

    ExitFunction:
    Exit Sub
    errorhandler:
    Call RaiseError()
    Resume ExitFunction
     
Загрузка...
Похожие Темы - Цвет строк представлении
  1. fiandy
    Ответов:
    7
    Просмотров:
    1.423
  2. novachok
    Ответов:
    3
    Просмотров:
    2.727
  3. ESWANT
    Ответов:
    0
    Просмотров:
    444
  4. dypel
    Ответов:
    0
    Просмотров:
    1.230
  5. FelixMacintosh
    Ответов:
    0
    Просмотров:
    1.123

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