Page 1 of 1

Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Tue Dec 15, 2020 11:28 am
by Eugene Lutsenko
Alaska 2.0 has different height line in column in the table before and after the scroll line. in 1.9, everything was fine. The program text did not change. How do I fix this? I have many such tables'

Code: Select all

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

aColors := { {GRA_CLR_WHITE,GRA_CLR_DARKRED  },;
             {GRA_CLR_WHITE,GRA_CLR_DARKBLUE },;
             {GRA_CLR_BLACK,GRA_CLR_DARKGREEN} }

aPres := ;
  { { XBP_PP_COL_HA_FGCLR, GRA_CLR_WHITE            },;  // Header FG Color
    { XBP_PP_COL_HA_BGCLR, GRA_CLR_DARKGRAY         },;  // Header BG Color
    { XBP_PP_COL_FA_FGCLR, GRA_CLR_YELLOW           },;  // Footer FG Color
    { XBP_PP_COL_FA_BGCLR, GRA_CLR_DARKGRAY         },;  // Footer BG Color
    { XBP_PP_COL_DA_ROWSEPARATOR, XBPCOL_SEP_DOTTED },;  // Row Sep
    { XBP_PP_COL_DA_COLSEPARATOR, XBPCOL_SEP_DOTTED },;  // Col Sep
    { XBP_PP_COL_HA_ALIGNMENT, XBPALIGN_LEFT        },;  // Header alignment
    { XBP_PP_COL_DA_ROWHEIGHT, 20                   },;  // Row Height
    { XBP_PP_COL_DA_CELLHEIGHT, 20                  } }  // Cell Height

*PRIVATE bColorBlock:={||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE}))) }  // Клиффорд

*@ .. DCBROWSE .. COLOR {||IIF(Recno()%2==0,{nil,GRA_CLR_PALEGRAY},{nil,GRA_CLR_WHITE})}              // Управление фоном отображения строки от Роджера

DO CASE
   CASE M_MaxValF <= M_MaxValL1 .AND. M_MaxValL1 <= M_MaxValL2

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValF <= M_MaxValL2 .AND. M_MaxValL2 <= M_MaxValL1

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L1_mera=M_MaxValL1, {nil,aColor[107]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL1 <= M_MaxValF  .AND. M_MaxValF  <= M_MaxValL2

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(F_mera =M_MaxValF,{nil,aColor[33]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL1 <= M_MaxValL2 .AND. M_MaxValL2 <= M_MaxValF

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(F_mera=M_MaxValF, {nil,aColor[33]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL2 <= M_MaxValF  .AND. M_MaxValF  <= M_MaxValL1

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L1_mera=M_MaxValL1, {nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL2 <= M_MaxValL1 .AND. M_MaxValL1 <= M_MaxValF

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(F_mera=M_MaxValF, {nil,aColor[33]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(L2_mera =M_MaxValL2,{nil,aColor[153]},{nil,GRA_CLR_WHITE})))}

ENDCASE

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Tue Dec 15, 2020 12:17 pm
by rdonnay
Use your aPres array instead of DC_BrowPres().

DC_BrowPres() now sets the row height to -1 so it scales to the font size for each column.
You want the row height to be 20 px.

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Tue Dec 15, 2020 10:15 pm
by Eugene Lutsenko
And is it possible to enter some parameter in your function, such as "true" / "false", which would mean whether to do this or not with the height of the line? and what can this array that this function returns look like without reducing the height of the string?

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Wed Dec 16, 2020 12:56 am
by Eugene Lutsenko
I'll try to find the source code of your function and figure it out myself

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Wed Dec 16, 2020 6:24 am
by rdonnay
I'll try to find the source code of your function and figure it out myself
The source for DC_BrowPres() is in \exp20\source\dclipx\_dcpres.prg

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Wed Dec 16, 2020 6:55 am
by Wolfgang Ciriack
If your aPres should be the default for all browses, then you can set it with DC_BrowPres(aPres) before your cases.
If you change in your aPres XBP_PP_COL_DA_ROWHEIGHT and XBP_PP_COL_DA_CELLHEIGHT from 20 to 26 , it should be nearly the same as under 1.9.

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Wed Dec 16, 2020 7:21 am
by Eugene Lutsenko
rdonnay wrote: Wed Dec 16, 2020 6:24 am
I'll try to find the source code of your function and figure it out myself
The source for DC_BrowPres() is in \exp20\source\dclipx\_dcpres.prg
Yes, thank you, Roger! I already found it. I can find it quickly by searching for text with context in Total Commander. Still, you can somehow refer to your function with an array parameter so that the tables are displayed as in 1.9. How do I do this? What should be the array passed as a parameter?

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Wed Dec 16, 2020 7:34 am
by Eugene Lutsenko
Wolfgang Ciriack wrote: Wed Dec 16, 2020 6:55 am If your aPres should be the default for all browses, then you can set it with DC_BrowPres(aPres) before your cases.
If you change in your aPres XBP_PP_COL_DA_ROWHEIGHT and XBP_PP_COL_DA_CELLHEIGHT from 20 to 26 , it should be nearly the same as under 1.9.
If the reason for the violation of the table display is in the dc_browpres () function, then how can I prevent editing the table without using it (set the mode: "view only")?

Code: Select all

*******************************************************************************************
********  4.1.3.6. Обобщ.форма по достов.моделей при разн.инт.крит.
*******            Отображаются обобщенные результаты измерения достоверности идентификации
*******            по всем моделям и интегральным критериям из БД: Dost_mod.DBF'
*******************************************************************************************
FUNCTION F4_1_3_6(mPar)

LOCAL GetList := {}, aPres, oBrowse, oToolBar, aColors, bColor, GetOptions
PUBLIC mWindow := 17           // Интервал сглаживания

Running(.T.)

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

mRegim = IF(mPar='4.1.3.6.', 'F4.1.3.6()', 'F3.4()')

mFlag = .F.

IF ApplChange(mRegim)          // Если не запущен режим, работающий с БД,  то перейти в папку выбранного приложения
   mFlag = .T.
ENDIF

IF .NOT. FILE('Dost_modCls.dbf') .OR. .NOT. FILE('DostRasp.dbf')
   LB_Warning(L("Необходимо выполнить режим: 3.5. Синтез и верификация моделей"))
   mFlag = .T.
ENDIF

IF .NOT. FILE("Rasp.txt")
   LB_Warning(L("Необходимо выполнить режим: 3.5. Синтез и верификация моделей"))
   mFlag = .T.
ELSE
*  StrFile("35", "Rasp.txt")             // Запись текстового файла с информацией о том, что был выполнен режим 3.5
   mRasp = FileStr("Rasp.txt")
   IF mRasp <> '35'
      LB_Warning(L("Необходимо выполнить режим: 3.5. Синтез и верификация моделей"))
      mFlag = .T.
   ENDIF
ENDIF

IF mFlag
   **************************************************************
   ***** БД, открытые перед запуском главного меню
   ***** Восстанавливать их после выхода из функций главного меню
   **************************************************************
   CLoseAll()            // Закрытие всех баз данных с ожиданием завершения операций
   DIRCHANGE(Disk_dir)                          // Перейти в папку с исполнимым модулем системы
   USE PathGrAp EXCLUSIVE NEW
   USE Appls    EXCLUSIVE NEW
   USE Users    EXCLUSIVE NEW
   Running(.F.)
   RETURN NIL
ENDIF

CLoseAll()            // Закрытие всех баз данных с ожиданием завершения операций
USE DostRasp    EXCLUSIVE NEW
USE Dost_modCls EXCLUSIVE NEW

****** Поиск строк с максимальным значением F-меры, L1-меры и L2-меры

SELECT Dost_modCls

DBGOTOP()
M_MaxValF = -9999999999
DO WHILE .NOT. EOF()
   M_MaxValF = MAX(M_MaxValF, Dost_modCls->F_mera)
   DBSKIP(1)
ENDDO

DBGOTOP()
M_MaxValL1 = -9999999999
DO WHILE .NOT. EOF()
   M_MaxValL1 = MAX(M_MaxValL1, Dost_modCls->L1_mera)
   DBSKIP(1)
ENDDO

DBGOTOP()
M_MaxValL2 = -9999999999
DO WHILE .NOT. EOF()
   M_MaxValL2 = MAX(M_MaxValL2, Dost_modCls->L2_mera)
   DBSKIP(1)
ENDDO

DBGOTOP()

/* ----- Create ToolBar ----- */

*** Задать модель **********************************

PUBLIC Ar_Model := {"Abs", "Prc1", "Prc2", "Inf1", "Inf2", "Inf3", "Inf4", "Inf5", "Inf6", "Inf7" }

*** Задать тип графика частотного распределения *****************

mLen1 = LEN(L("Помощь по мерам достоверности"))
mLen2 = LEN(L("Помощь по частотным распределениям"))

@ 28.5, 0 DCTOOLBAR oToolBar SIZE mLen1, 1.5

DCADDBUTTON CAPTION L('Помощь по мерам достоверности')      ;
   SIZE         mLen1-2                                     ;
   ACTION {||Help4136(), DC_GetRefresh(GetList)}            ;
   PARENT oToolBar                                          ;
   TOOLTIP L('Помощь по мерам достоверности')

@ 28.5, mLen1+3 DCTOOLBAR oToolBar SIZE mLen2, 1.5

DCADDBUTTON CAPTION L('Помощь по частотным распределениям') ;
   SIZE         mLen2-2                                     ;
   ACTION {||Help41311(), DC_GetRefresh(GetList)}           ;
   PARENT oToolBar                                          ;
   TOOLTIP L('Помощь по частотным распределениям')

@ 28.5, mLen1+mLen2+6 DCTOOLBAR oToolBar SIZE LEN(L("TP,TN,FP,FN"))+LEN(L("(TP-FP), (TN-FN)"))+LEN(L("(T-F)/(T+F)*100")), 1.5

DCADDBUTTON CAPTION L('TP,TN,FP,FN')                        ;
   SIZE         LEN(L("TP,TN,FP,FN"))-0                     ;
   ACTION {||Graph41311(1,mPar), DC_GetRefresh(GetList)}         ;
   PARENT oToolBar                                          ;
   TOOLTIP L('Графики: TP,TN,FP,FN')

DCADDBUTTON CAPTION L('(TP-FP), (TN-FN)')                   ;
   SIZE         LEN(L("(TP-FP), (TN-FN)"))-2                ;
   ACTION {||Graph41311(2,mPar), DC_GetRefresh(GetList)}         ;
   PARENT oToolBar                                          ;
   TOOLTIP L('Графики: (TP-FP), (TN-FN)')

DCADDBUTTON CAPTION L('(T-F)/(T+F)*100')                    ;
   SIZE         LEN(L("(T-F)/(T+F)*100"))-2                 ;
   ACTION {||Graph41311(3,mPar), DC_GetRefresh(GetList)}         ;
   PARENT oToolBar                                          ;
   TOOLTIP L('Графики: (TP-FP)/(TP+FP)*100 и (TN-FN)/(TN+FN)*100')

*** Задать интервал сглаживания в отдельном окошке, как "Вписать в окно", по умолчанию без сглаживания (1) <===################

@ 28.5, mLen1+mLen2+6+LEN(L("TP,TN,FP,FN"))+LEN(L("(TP-FP), (TN-FN)"))+LEN(L("(T-F)/(T+F)*100"))+1 DCTOOLBAR oToolBar SIZE 30, 1.5

PRIVATE aInput[3]
aInput[1] = mWindow
aInput[2] = 0
aInput[3] = 0

DCADDBUTTON CAPTION L('Задать интервал сглаживания')            ;
   SIZE LEN(L("Задать интервал сглаживания"))-1                 ;
   ACTION {||SetIntSglag(aInput), DC_GetRefresh(GetList)}  ;
   PARENT oToolBar                                 ;
   TOOLTIP L('Задать интервал сглаживания')

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

aColors := { {GRA_CLR_WHITE,GRA_CLR_DARKRED  },;
             {GRA_CLR_WHITE,GRA_CLR_DARKBLUE },;
             {GRA_CLR_BLACK,GRA_CLR_DARKGREEN} }

aPres := ;
  { { XBP_PP_COL_HA_FGCLR, GRA_CLR_WHITE            },;  // Header FG Color
    { XBP_PP_COL_HA_BGCLR, GRA_CLR_DARKGRAY         },;  // Header BG Color
    { XBP_PP_COL_FA_FGCLR, GRA_CLR_YELLOW           },;  // Footer FG Color
    { XBP_PP_COL_FA_BGCLR, GRA_CLR_DARKGRAY         },;  // Footer BG Color
    { XBP_PP_COL_DA_ROWSEPARATOR, XBPCOL_SEP_DOTTED },;  // Row Sep
    { XBP_PP_COL_DA_COLSEPARATOR, XBPCOL_SEP_DOTTED },;  // Col Sep
    { XBP_PP_COL_HA_ALIGNMENT, XBPALIGN_LEFT        },;  // Header alignment
    { XBP_PP_COL_DA_ROWHEIGHT, 20                   },;  // Row Height
    { XBP_PP_COL_DA_CELLHEIGHT, 20                  } }  // Cell Height

*PRIVATE bColorBlock:={||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE}))) }  // Клиффорд

*@ .. DCBROWSE .. COLOR {||IIF(Recno()%2==0,{nil,GRA_CLR_PALEGRAY},{nil,GRA_CLR_WHITE})}              // Управление фоном отображения строки от Роджера

DO CASE
   CASE M_MaxValF <= M_MaxValL1 .AND. M_MaxValL1 <= M_MaxValL2

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValF <= M_MaxValL2 .AND. M_MaxValL2 <= M_MaxValL1

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L1_mera=M_MaxValL1, {nil,aColor[107]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL1 <= M_MaxValF  .AND. M_MaxValF  <= M_MaxValL2

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L2_mera=M_MaxValL2, {nil,aColor[153]},IIF(F_mera =M_MaxValF,{nil,aColor[33]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL1 <= M_MaxValL2 .AND. M_MaxValL2 <= M_MaxValF

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(F_mera=M_MaxValF, {nil,aColor[33]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL2 <= M_MaxValF  .AND. M_MaxValF  <= M_MaxValL1

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(L1_mera=M_MaxValL1, {nil,aColor[107]},IIF(F_mera=M_MaxValF,{nil,aColor[33]},IIF(L2_mera=M_MaxValL2,{nil,aColor[153]},{nil,GRA_CLR_WHITE})))}

   CASE M_MaxValL2 <= M_MaxValL1 .AND. M_MaxValL1 <= M_MaxValF

        @ 1, 0 DCBROWSE oBrowse ALIAS 'Dost_modCls' SIZE 210,27    ;
               PRESENTATION DC_BrowPres() ;                                     // Только просмотр БД Users               
               HEADLINES 4                ;                                     // Кол-во строк в заголовке
               FREEZELEFT {1,2}           ;                                     // При горизонтальной прокрутке не прокручивать первые 2 колонки
               COLOR {||IIF(F_mera=M_MaxValF, {nil,aColor[33]},IIF(L1_mera=M_MaxValL1,{nil,aColor[107]},IIF(L2_mera =M_MaxValL2,{nil,aColor[153]},{nil,GRA_CLR_WHITE})))}

ENDCASE

*   Структура базы данных N°=22: Dost_modCls.dbf
*   ============================================================================
*   |  N  |  Имя поля  | Тип | Ширина | Дес. |            Примечание           |
*   ============================================================================
*   |  1  | TYPE_MODEL |  C  |  250   |  0   |
*   |  2  | INT_KRIT   |  C  |   40   |  0   |
*   |  3  | N_LOGOBJ   |  N  |   15   |  0   | 3. Количество логических объектов расп.выборки, фактически относящихся к классу    (TP+FN)
*   |  4  | N_T_IDENT  |  N  |   15   |  0   | 4. Количество верно    идентифицированных   объектов расп.выборки (TP)
*   |  5  | N_F_NIDENT |  N  |   15   |  0   | 5. Количество ошибочно неидентифицированных объектов расп.выборки (FN)
*   |  6  | N_F_IDENT  |  N  |   15   |  0   | 6. Количество ошибочно идентифицированных   объектов расп.выборки (FP)
*   |  7  | N_T_NIDENT |  N  |   15   |  0   | 7. Количество верно    неидентифицированных объектов расп.выборки (TN)
*   |  8  | P_T_IDENT  |  N  |   15   |  7   | 8. Вероятность верной       идентификации объекта с классом с использованием модели
*   |  9  | P_T_NIDENT |  N  |   15   |  7   | 9. Вероятность верной    не идентификации объекта с классом с использованием модели
*   | 10  | P_F_IDENT  |  N  |   15   |  7   | 10.Вероятность ошибочной    идентификации объекта с классом с использованием модели
*   | 11  | P_F_NIDENT |  N  |   15   |  7   | 11.Вероятность ошибочной не идентификации объекта с классом с использованием модели
*   | 12  | P_AVR_T    |  N  |   15   |  7   | 12.Вероятность верной идентификации или неидентификации объекта с классом с использованием модели (моя мера)
*   | 13  | DVMOD      |  N  |   15   |  7   | 13.M_DVMod = (NT-NF)/(NT+NF)*100   Моя мера качества модели-классификатора (в знаменателе: "всего объектов")
*   | 14  | PRECISION  |  N  |   15   |  7   | 14.Precision = TP/(TP+FP)    - точность
*   | 15  | RECALL     |  N  |   15   |  7   | 15.Recall    = TP/(TP+FN)    - полнота
*   | 16  | F_MERA     |  N  |   15   |  7   | 16.F-mera    = 2*(Precision*Recall)/(Precision+Recall)  (мультиклассовый вариант)
*   | 17  | S_T_IDENT  |  N  |   15   |  7   | 17.Сумма модулей уровней сходства верно    идентифицированных   объектов расп.выборки (STP)
*   | 18  | S_F_NIDENT |  N  |   15   |  7   | 18.Сумма модулей уровней сходства ошибочно неидентифицированных объектов расп.выборки (SFN)
*   | 19  | S_F_IDENT  |  N  |   15   |  7   | 19.Сумма модулей уровней сходства ошибочно идентифицированных   объектов расп.выборки (SFP)
*   | 20  | S_T_NIDENT |  N  |   15   |  7   | 20.Сумма модулей уровней сходства верно    неидентифицированных объектов расп.выборки (STN)
*   | 21  | SPRECISION |  N  |   15   |  7   | 21.SPrecision = STP/(STP+SFP)    - точность с учетом уровней сходства
*   | 22  | SRECALL    |  N  |   15   |  7   | 22.SRecall    = STP/(STP+SFN)    - полнота  с учетом уровней сходства
*   | 23  | L1_MERA    |  N  |   15   |  7   | 23.L1-mera    = 2*(SPrecision*SRecall)/(SPrecision+SRecall)  (L1-мера проф.Е.В.Луценко - нечеткое мультиклассовое обобщение
*   | 24  | A_T_IDENT  |  N  |   15   |  7   | 17.Среднее модулей уровней сходства верно    идентифицированных   объектов расп.выборки (ATP=STP/TP)
*   | 25  | A_F_NIDENT |  N  |   15   |  7   | 18.Среднее модулей уровней сходства ошибочно неидентифицированных объектов расп.выборки (AFN=SFN/FN)
*   | 26  | A_F_IDENT  |  N  |   15   |  7   | 19.Среднее модулей уровней сходства ошибочно идентифицированных   объектов расп.выборки (AFP=SFP/FP)
*   | 27  | A_T_NIDENT |  N  |   15   |  7   | 20.Среднее модулей уровней сходства верно    неидентифицированных объектов расп.выборки (ATN=STN/TN)
*   | 28  | APRECISION |  N  |   15   |  7   | 21.APrecision = ATP/(ATP+AFP)    - точность с учетом уровней сходства
*   | 29  | ARECALL    |  N  |   15   |  7   | 22.ARecall    = ATP/(ATP+AFN)    - полнота  с учетом уровней сходства
*   | 30  | L2_MERA    |  N  |   15   |  7   | 23.L2-mera    = 2*(APrecision*ARecall)/(APrecision+ARecall)  (L2-мера проф.Е.В.Луценко - нечеткое мультиклассовое обобщение
*   | 31  | DATE       |  C  |   10   |  0   | 24. Date       Дата формирования  записи БД
*   | 32  | TIME       |  C  |   8    |  0   | 25. Time       Время формирования записи БД
*   ============================================================================
*   В С Е Г О  длина записи:   624   байтов.                                   |
*   ============================================================================

* #############################################################################################################################################
* ПОСЧИТАТЬ И ОТОБРАЗИТЬ СРЕДНИЕ МОДУЛИ УРОВНИ СХОДСТВА ДЛЯ ВЕРНО И ОШИБОЧНО ИДЕНТИФИЦИРОВАННЫХ И НЕИДЕНТИФИЦРОВАННЫХ ОБЪЕКТОВ И L2-МЕРУ ИЗ НИХ
* #############################################################################################################################################

*TP - истино-положительное решение;
*TN - истино-отрицательное решение;
*FP - ложно-положительное решение;
*FN - ложно-отрицательное решение.

WNF = 10

*Цвет шрифта соотвествует строкам с максимальным значенем в нужной колонке
*DCBROWSECOL FIELD Dost_modCls->Type_Model HEADER L("Наименование модели;и частного критерия"                             ) PARENT oBrowse                  COLOR bColorBlock WIDTH 31
*DCBROWSECOL FIELD Dost_modCls->Int_Krit   HEADER L("Интегральный критерий"                                               ) PARENT oBrowse                  COLOR bColorBlock WIDTH 15
*DCBROWSECOL DATA FieldAnchor( 3, 9,0)     HEADER L("Всего;логических;объектов;выборки"                                   ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor( 4, 9,0)     HEADER L("Число истино-;положительных;решений (TP)"                            ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor( 7, 9,0)     HEADER L("Число истино-;отрицательных;решений (TN)"                            ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor( 6, 9,0)     HEADER L("Число ложно- ;положительных;решений (FP)"                            ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor( 5, 9,0)     HEADER L("Число ложно- ;отрицательных;решений (FN)"                            ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(14, 9,3)     HEADER L("Точность;модели"                                                     ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(15, 9,3)     HEADER L("Полнота ;модели"                                                     ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(16, 9,3)     HEADER L("F-мера  ;Ван;Ризбергена"                                             ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF COLOR {||{nil,aColor[33]}}
*DCBROWSECOL DATA FieldAnchor(17,10,3)     HEADER L("Сумма модулей;уровней сходства;истино-положит.;решений (STP)"        ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(20,10,3)     HEADER L("Сумма модулей;уровней сходства;истино-отрицат.;решений (STN)"        ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(19,10,3)     HEADER L("Сумма модулей;уровней сходства;ложно-положит.;решений (SFP)"         ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(18,10,3)     HEADER L("Сумма модулей;уровней сходства;ложно-отрицат.;решений (SFN)"         ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(21, 9,3)     HEADER L("S-Точность;модели"                                                   ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(22, 9,3)     HEADER L("S-Полнота ;модели"                                                   ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(23, 9,3)     HEADER L("L1-мера  ;проф.;Е.В.Луценко"                                         ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF COLOR {||{nil,aColor[107]}}
*DCBROWSECOL DATA FieldAnchor(24, 9,3)     HEADER L("Средний модуль;уровней сходства;истино-положит.;решений;(ATP=STP/TP)") PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(27, 9,3)     HEADER L("Средний модуль;уровней сходства;истино-отрицат.;решений;(ATN=STN/TN)") PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(26, 9,3)     HEADER L("Средний модуль;уровней сходства;ложно-положит.;решений;(AFP=SFP/FP)" ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(25, 9,3)     HEADER L("Средний модуль;уровней сходства;ложно-отрицат.;решений;(AFN=SFN/FN)" ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(28, 9,3)     HEADER L("A-Точность;модели;APrecision;= ATP/(ATP+AFP)"                        ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(29, 9,3)     HEADER L("A-Полнота ;модели;ARecall;= ATP/(ATP+AFN)"                           ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(30, 9,3)     HEADER L("L2-мера  ;проф.;Е.В.Луценко"                                         ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF COLOR {||{nil,aColor[153]}}
*DCBROWSECOL DATA FieldAnchor( 8, 9,3)     HEADER L("Процент;правильной;идентификации"                                    ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor( 9, 9,3)     HEADER L("Процент;правильной;не идентификации"                                 ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(10, 9,3)     HEADER L("Процент;ошибочной ;идентификации"                                    ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(11, 9,3)     HEADER L("Процент;ошибочной ;не идентификации"                                 ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL DATA FieldAnchor(12, 9,3)     HEADER L("Процент;правильных;результатов"                                      ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH WNF
*DCBROWSECOL FIELD Dost_modCls->Date       HEADER L("Дата;получения;результата"                                           ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH 10
*DCBROWSECOL FIELD Dost_modCls->Time       HEADER L("Время;получения;результата"                                          ) PARENT oBrowse FONT "9.Courier" COLOR bColorBlock WIDTH  8

WNF = 10
*Цвет шрифта соотвествует строкам с максимальным значенем в нужной колонке
DCBROWSECOL FIELD Dost_modCls->Type_Model HEADER L("Наименование модели;и частного критерия"                             ) PARENT oBrowse                   WIDTH 31
DCBROWSECOL FIELD Dost_modCls->Int_Krit   HEADER L("Интегральный критерий"                                               ) PARENT oBrowse                   WIDTH 15
DCBROWSECOL DATA FieldAnchor( 3, 9,0)     HEADER L("Всего;логических;объектов;выборки"                                   ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor( 4, 9,0)     HEADER L("Число истино-;положительных;решений (TP)"                            ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor( 7, 9,0)     HEADER L("Число истино-;отрицательных;решений (TN)"                            ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor( 6, 9,0)     HEADER L("Число ложно- ;положительных;решений (FP)"                            ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor( 5, 9,0)     HEADER L("Число ложно- ;отрицательных;решений (FN)"                            ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(14, 9,3)     HEADER L("Точность;модели"                                                     ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(15, 9,3)     HEADER L("Полнота ;модели"                                                     ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(16, 9,3)     HEADER L("F-мера  ;Ван;Ризбергена"                                             ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF COLOR {||{nil,aColor[33]}}
DCBROWSECOL DATA FieldAnchor(17,10,3)     HEADER L("Сумма модулей;уровней сходства;истино-положит.;решений (STP)"        ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(20,10,3)     HEADER L("Сумма модулей;уровней сходства;истино-отрицат.;решений (STN)"        ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(19,10,3)     HEADER L("Сумма модулей;уровней сходства;ложно-положит.;решений (SFP)"         ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(18,10,3)     HEADER L("Сумма модулей;уровней сходства;ложно-отрицат.;решений (SFN)"         ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(21, 9,3)     HEADER L("S-Точность;модели"                                                   ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(22, 9,3)     HEADER L("S-Полнота ;модели"                                                   ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(23, 9,3)     HEADER L("L1-мера  ;проф.;Е.В.Луценко"                                         ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF COLOR {||{nil,aColor[107]}}
DCBROWSECOL DATA FieldAnchor(24, 9,3)     HEADER L("Средний модуль;уровней сходства;истино-положит.;решений;(ATP=STP/TP)") PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(27, 9,3)     HEADER L("Средний модуль;уровней сходства;истино-отрицат.;решений;(ATN=STN/TN)") PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(26, 9,3)     HEADER L("Средний модуль;уровней сходства;ложно-положит.;решений;(AFP=SFP/FP)" ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(25, 9,3)     HEADER L("Средний модуль;уровней сходства;ложно-отрицат.;решений;(AFN=SFN/FN)" ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(28, 9,3)     HEADER L("A-Точность;модели;APrecision;= ATP/(ATP+AFP)"                        ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(29, 9,3)     HEADER L("A-Полнота ;модели;ARecall;= ATP/(ATP+AFN)"                           ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(30, 9,3)     HEADER L("L2-мера  ;проф.;Е.В.Луценко"                                         ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF COLOR {||{nil,aColor[153]}}
DCBROWSECOL DATA FieldAnchor( 8, 9,3)     HEADER L("Процент;правильной;идентификации"                                    ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor( 9, 9,3)     HEADER L("Процент;правильной;не идентификации"                                 ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(10, 9,3)     HEADER L("Процент;ошибочной ;идентификации"                                    ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(11, 9,3)     HEADER L("Процент;ошибочной ;не идентификации"                                 ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL DATA FieldAnchor(12, 9,3)     HEADER L("Процент;правильных;результатов"                                      ) PARENT oBrowse FONT "9.Courier"  WIDTH WNF
DCBROWSECOL FIELD Dost_modCls->Date       HEADER L("Дата;получения;результата"                                           ) PARENT oBrowse FONT "9.Courier"  WIDTH 10
DCBROWSECOL FIELD Dost_modCls->Time       HEADER L("Время;получения;результата"                                          ) PARENT oBrowse FONT "9.Courier"  WIDTH  8

DCGETOPTIONS TABSTOP RESIZE RESIZEDEFAULT DCGUI_RESIZE_AUTORESIZE

DCREAD GUI ;
   OPTIONS GetOptions ;
   MODAL ;
   TITLE mPar+' '+L('Обобщ.форма по достов.моделей при разн.инт.крит. Текущая модель: "')+UPPER(Ar_Model[M_CurrInf])+'"';
   FIT ;
   CLEAREVENTS

   **************************************************************
   ***** БД, открытые перед запуском главного меню
   ***** Восстанавливать их после выхода из функций главного меню
   **************************************************************
   CLoseAll()            // Закрытие всех баз данных с ожиданием завершения операций
   DIRCHANGE(Disk_dir)                          // Перейти в папку с исполнимым модулем системы
   USE PathGrAp EXCLUSIVE NEW
   USE Appls    EXCLUSIVE NEW
   USE Users    EXCLUSIVE NEW
   **************************************************************

Running(.F.)
ReTURN nil
*******************************************************************************************

Re: Alaska 2.0 has different column heights in the table before and after the scroll line

Posted: Thu Dec 17, 2020 9:35 am
by Eugene Lutsenko
rdonnay wrote: Tue Dec 15, 2020 12:17 pm Use your aPres array instead of DC_BrowPres().

DC_BrowPres() now sets the row height to -1 so it scales to the font size for each column.
You want the row height to be 20 px.
Thank you so much, Roger! Everything turned out great! Now everything is smooth!