I can not make browsing base with advance unknown speakers

This forum is for eXpress++ general support.
Message
Author
User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: I can not make browsing base with advance unknown speake

#11 Post by Eugene Lutsenko »

I'm talking about the names of the fields. Actually, I would have been enough to know how to display certain columns on a given background.

User avatar
rdonnay
Site Admin
Posts: 4813
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: I can not make browsing base with advance unknown speake

#12 Post by rdonnay »

Have you tried the HCOLOR clause of DCBROWSECOL ?
The eXpress train is coming - and it has more cars.


User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: I can not make browsing base with advance unknown speake

#14 Post by Eugene Lutsenko »

Looked. This allows you to change the font color in the column headings, and that's good. But I would like to change or set the background color in the entire column, not just the title. Something like this is here, but I need a simpler, without changing the data in the field, but just the background color and all.

Image

User avatar
rdonnay
Site Admin
Posts: 4813
Joined: Wed Jan 27, 2010 6:58 pm
Location: Boise, Idaho USA
Contact:

Re: I can not make browsing base with advance unknown speake

#15 Post by rdonnay »

Try this:

DCBROWSECOL ... COLOR {||{nil,GRA_CLR_YELLOW}}
The eXpress train is coming - and it has more cars.

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: I can not make browsing base with advance unknown speake

#16 Post by Eugene Lutsenko »

Ideal! This is what we need. As always, the truth is concrete and simple, but find it difficult. Thank you so much, Roger!

Image

Code: Select all

*********************************************************************************************************
********  2.4. Просмотр эвентологических баз данных (баз событий), в которых исходные данные закодированы
********       с помощью классификационных и описательных шкал и градаций и представлены в форме кодов
********       событий, между которыми существуют причинно-следственные связи
*********************************************************************************************************
FUNCTION F2_4()

LOCAL GetList := {}, aPres, oBrowse, oToolBar, aColors, bColor, GetOptions, oEventsKO, bItems

IF M_KodAdmAppls = 0  // Выйти из системы если нет авторизации
   LB_Warning("Вы не авторизовались в системе (режим 1.1) и не можете ей пользоваться!")
   RETURN NIL
ENDIF

IF ApplChange("2_4()")              // Если не запущен режим, работающий с БД,  то перейти в папку выбранного приложения
   **************************************************************
   ***** БД, открытые перед запуском главного меню
   ***** Восстанавливать их после выхода из функций главного меню
   **************************************************************
   CLOSE ALL
   DIRCHANGE(Disk_dir)                          // Перейти в папку с исполнимым модулем системы
   USE PathGrAp EXCLUSIVE NEW
   USE Appls    EXCLUSIVE NEW
   USE Users    EXCLUSIVE NEW
   ** Если в папке с исполнимым модулем системы есть файл: _CloseFunct.txt, то удалить его
   IF FILE('_CloseFunct.txt')
      ERASE('_CloseFunct.txt')
   ENDIF
   **************************************************************
   RETURN NIL
ENDIF

IF .NOT.FILE("EventsKO.dbf")          // БД подробных сжатых результатов распознавания: Rsp_it.dbf
   LB_Warning("Необходимо выполнить синтез и верфикацию моделей в режиме 3.5 !!!")
   **************************************************************
   ***** БД, открытые перед запуском главного меню
   ***** Восстанавливать их после выхода из функций главного меню
   **************************************************************
   CLOSE ALL
   DIRCHANGE(Disk_dir)                          // Перейти в папку с исполнимым модулем системы
   USE PathGrAp EXCLUSIVE NEW
   USE Appls    EXCLUSIVE NEW
   USE Users    EXCLUSIVE NEW
   ** Если в папке с исполнимым модулем системы есть файл: _CloseFunct.txt, то удалить его
   IF FILE('_CloseFunct.txt')
      ERASE('_CloseFunct.txt')
   ENDIF
   **************************************************************
   RETURN NIL
ENDIF

CLOSE ALL
USE EventsKO EXCLUSIVE NEW
USE Class_Sc EXCLUSIVE NEW;N_ClSc = RECCOUNT()
USE Opis_Sc  EXCLUSIVE NEW;N_OpSc = RECCOUNT()

/* ----- Create browse ----- */

SET TAG TO COMMAND

PRIVATE aHeadName[1+N_ClSc+N_OpSc], aDL[1+N_ClSc+N_OpSc]

aHeadName[1] = "Наименование объекта;обучающей выборки"

// 3. Заполнять строки заголовков целыми словами до тех пор, пока не превышена макс.ширина заголовка

****** ФОРМИРОВАНИЕ ЗАГОЛОВКОВ

SELECT Class_Sc

// Определение ширины заголовка в кол-ве символов DL = длина наиболее длинного слова

AFILL(aDL, -99999999999)

FOR j=1 TO N_ClSc
    DBGOTO(j)
    M_NameClSc = ALLTRIM(Name_ClSc)
    FOR w=1 TO NUMTOKEN(M_NameClSc," ")           // Разделитель между словами - пробел
        M_Word = UPPER(TOKEN(M_NameClSc," ",w))
        IF aDL[1+j] < LEN(M_Word)
           aDL[1+j] = LEN(M_Word)
        ENDIF
    NEXT
NEXT

Max_HeadLines = -999999999

FOR j=1 TO N_ClSc

    DBGOTO(j)
    M_NameClSc = ALLTRIM(Name_ClSc)

    aHeadString := {}   // Массив строк заголовка j-й колонки

    AADD(aHeadString, ALLTRIM(STR(j,19))+". ")   // Код класса

    *** Начало цикла по словам
    FOR w=1 TO NUMTOKEN(M_NameClSc," ")           // Разделитель между словами - пробел
        M_Word = UPPER(TOKEN(M_NameClSc," ",w))
        IF LEN(aHeadString[LEN(aHeadString)]+" "+M_Word) <= aDL[1+j]
           // Если после добавления слова к строке заголовка ее ширина меньше заданной,
           // то добавлять слово к этой же строке заголовка
           aHeadString[LEN(aHeadString)] = aHeadString[LEN(aHeadString)]+" "+M_Word
        ELSE
           // Если после добавления слова к строке заголовка ее ширина больше заданной,
           // то делать новую строку (";") и к ней добавлять слово
           AADD(aHeadString, ";"+M_Word)
        ENDIF
    NEXT
    // Переписать строки заголовка в массив наименований колонок
    aHeadName[1+j] = ""
    FOR s=1 TO LEN(aHeadString)
        aHeadName[1+j] = aHeadName[1+j] + aHeadString[s]
    NEXT
    Max_HeadLines = MAX(Max_HeadLines,LEN(aHeadString))   // Определение максимального количества строк в заголовке
NEXT

SELECT Opis_Sc

// Определение ширины заголовка в кол-ве символов DL = длина наиболее длинного слова

FOR j=1 TO N_OpSc
    DBGOTO(j)
    M_NameOpSc = ALLTRIM(Name_OpSc)
    FOR w=1 TO NUMTOKEN(M_NameOpSc," ")           // Разделитель между словами - пробел
        M_Word = UPPER(TOKEN(M_NameOpSc," ",w))
        IF aDL[1+N_ClSc+j] < LEN(M_Word)
           aDL[1+N_ClSc+j] = LEN(M_Word)
        ENDIF
    NEXT
NEXT

FOR j=1 TO N_OpSc

    DBGOTO(j)
    M_NameOpSc = ALLTRIM(Name_OpSc)

    aHeadString := {}   // Массив строк заголовка j-й колонки

    AADD(aHeadString, ALLTRIM(STR(j,19))+". ")   // Код признака

    *** Начало цикла по словам
    FOR w=1 TO NUMTOKEN(M_NameOpSc," ")           // Разделитель между словами - пробел
        M_Word = UPPER(TOKEN(M_NameOpSc," ",w))
        IF LEN(aHeadString[LEN(aHeadString)]+" "+M_Word) <= aDL[1+N_ClSc+j]
           // Если после добавления слова к строке заголовка ее ширина меньше заданной,
           // то добавлять слово к этой же строке заголовка
           aHeadString[LEN(aHeadString)] = aHeadString[LEN(aHeadString)]+" "+M_Word
        ELSE
           // Если после добавления слова к строке заголовка ее ширина больше заданной,
           // то делать новую строку (";") и к ней добавлять слово
           AADD(aHeadString, ";"+M_Word)
        ENDIF
    NEXT
    // Переписать строки заголовка в массив наименований колонок
    aHeadName[1+N_ClSc+j] = ""
    FOR s=1 TO LEN(aHeadString)
        aHeadName[1+N_ClSc+j] = aHeadName[1+N_ClSc+j] + aHeadString[s]
    NEXT
    Max_HeadLines = MAX(Max_HeadLines,LEN(aHeadString))   // Определение максимального количества строк в заголовке
NEXT

SELECT EventsKO

DCSETPARENT TO

@ 5, 0 DCBROWSE oEventsKO ALIAS 'EventsKO' SIZE 132,22 ;
       PRESENTATION DC_BrowPres() ;           // Только просмотр БД
       NOSOFTTRACK ;
       HEADLINES Max_HeadLines ;              // Кол-во строк в заголовке (перенос строки - ";")
       SCOPE ;
       ITEMMARKED bItems

DCSETPARENT oEventsKO
DCBROWSECOL FIELD EventsKO->Name_Obj HEADER aHeadName[1] PARENT oEventsKO WIDTH 24 FOOTER ALLTRIM(STR(1))

*** Подарок от Роджера

FOR j=2 TO 1+N_ClSc
    DCBROWSECOL DATA FieldAnchor(j,aDL[j],0) HEADER aHeadName[j] PARENT oEventsKO WIDTH aDL[j]+1 FONT "9.Courier" FOOTER ALLTRIM(STR(j)) COLOR {||{nil,aColor[100]}}
NEXT
FOR j=2+N_ClSc TO 1+N_ClSc+N_OpSc
    DCBROWSECOL DATA FieldAnchor(j,aDL[j],0) HEADER aHeadName[j] PARENT oEventsKO WIDTH aDL[j]+1 FONT "9.Courier" FOOTER ALLTRIM(STR(j))
NEXT


DCGETOPTIONS SAYFONT '10.Helv Bold' TABSTOP AUTORESIZE

cTitle = '2.4. Просмотр эвентологических баз данных (баз событий)'+'. Текущая модель: "'+UPPER(Ar_Model[M_CurrInf])+'"'

DCREAD GUI ;
   FIT ;
   OPTIONS GetOptions ;
   MODAL ;
   TITLE cTitle ;
   EVAL {|o|SetAppFocus(oEventsKO:GetColumn(1))}

   **************************************************************
   ***** БД, открытые перед запуском главного меню
   ***** Восстанавливать их после выхода из функций главного меню
   **************************************************************
   CLOSE ALL
   DIRCHANGE(Disk_dir)                          // Перейти в папку с исполнимым модулем системы
   USE PathGrAp EXCLUSIVE NEW
   USE Appls    EXCLUSIVE NEW
   USE Users    EXCLUSIVE NEW
   ** Если в папке с исполнимым модулем системы есть файл: _CloseFunct.txt, то удалить его
   IF FILE('_CloseFunct.txt')
      ERASE('_CloseFunct.txt')
   ENDIF
   **************************************************************

RETURN NIL
[/size]

Post Reply