Page 1 of 1

The alignment of the columns and field values in DCBROWSE

Posted: Fri Feb 03, 2017 8:19 am
by Eugene Lutsenko
Please tell me how to set alignment of columns and field values in the DCBROWSE.
I'd like to center or left-aligned

Re: The alignment of the columns and field values in DCBROWS

Posted: Fri Feb 03, 2017 9:57 am
by Wolfgang Ciriack
Use the ALIGN statement with DCBROWSECOL.
F.e. ALIGN XBPALIGN_RIGHT+XBPALIGN_VCENTER
The XBPALIGN_xx definitions you find in XBP.ch.

Re: The alignment of the columns and field values in DCBROWS

Posted: Fri Feb 03, 2017 10:08 pm
by Eugene Lutsenko
Wolfgang Ciriack wrote:Use the ALIGN statement with DCBROWSECOL.
F.e. ALIGN XBPALIGN_RIGHT+XBPALIGN_VCENTER
The XBPALIGN_xx definitions you find in XBP.ch.
Thank You, Wolfgang!
But I somehow centered only the headers, and the contents of the fields remained aligned to the right:

Code: Select all

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

                   d = 120                                                                                                     
                   @13.2, 0             DCPUSHBUTTON CAPTION 'Помощь'                         SIZE 10, 1.5 ACTION {||HelpLW209()  , DC_GetRefresh(GetList)}
                   @13.2, DCGUI_COL+d   DCPUSHBUTTON CAPTION 'Пересчитать параметры'          SIZE 24, 1.5 ACTION {||RecalcParam(), DC_GetRefresh(GetList)}
                   @13.2, DCGUI_COL+d+4 DCPUSHBUTTON CAPTION 'Выход на расчет RND-приложений' SIZE 32, 1.5 ACTION {||OutputCalc() , DC_GetRefresh(GetList)} FONT '9.Arial Bold'
                   
                   ****** Отображение таблицы ***************
                   
                   DCSETPARENT TO
                   
                   @ 1, 0 DCBROWSE ParamRND ALIAS 'ParamRND' SIZE 101,12.0 ;
                          EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN ;            // Редактирование БД
                          NOSOFTTRACK ;
                          HEADLINES 3 ;                      // Кол-во строк в заголовке (перенос строки - ";")
                          NOHSCROLL NOVSCROLL ;              // Убрать горизонтальную и вертикальную полосы прокрутки
                          SCOPE ;
                          ITEMMARKED bItems
                   
                   DCSETPARENT ParamRND
                   
                   *   aStructure := { { "Num"       , "N",  5, 0 }, ;   //  1
                   *                   { "ParamName" , "C", 40, 0 }, ;   //  2
                   *                   { "InitValue" , "N", 15, 0 }, ;   //  3
                   *                   { "StepChang" , "N", 15, 0 }, ;   //  4
                   *                   { "FinalValue", "N", 15, 0 }  }   //  5
                   *   DbCreate( 'ParamRND', aStructure )
                   
                   *** Подарок от Роджера
                   
                   DCBROWSECOL FIELD ParamRND->Num        HEADER "Номер;параметра"              PARENT ParamRND FONT "9.Courier" WIDTH  5 PROTECT {|| .T. } COLOR {||{nil,aColor[100]}} ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER
                   DCBROWSECOL FIELD ParamRND->ParamName  HEADER "Наименование;параметра"       PARENT ParamRND FONT "9.Courier" WIDTH 45 PROTECT {|| .T. } COLOR {||{nil,aColor[100]}} ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER
                   DCBROWSECOL FIELD ParamRND->InitValue  HEADER "Начальное;значение;параметра" PARENT ParamRND FONT "9.Courier" WIDTH 15                   COLOR {||{nil,aColor[ 38]}} ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER
                   DCBROWSECOL FIELD ParamRND->StepChang  HEADER "Шаг;изменения;параметра"      PARENT ParamRND FONT "9.Courier" WIDTH 15                   COLOR {||{nil,aColor[ 38]}} ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER
                   DCBROWSECOL FIELD ParamRND->FinalValue HEADER "Конечное;значение;параметра"  PARENT ParamRND FONT "9.Courier" WIDTH 15 PROTECT {|| .T. } COLOR {||{nil,aColor[100]}} ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER
                   
                   DCGETOPTIONS SAYFONT '10.Helv Bold' TABSTOP AUTORESIZE
                   
                   DCREAD GUI ;
                      FIT ;
                      OPTIONS GetOptions ;
                      MODAL ;
                      TITLE 'Задание параметров для расчета RND-моделей' ;
                      EVAL {|o|SetAppFocus(ParamRND:GetColumn(1))}
[/size]

Re: The alignment of the columns and field values in DCBROWS

Posted: Sat Feb 04, 2017 8:31 am
by rdonnay
Your columns do not align the way you want because the data is padded with spaces.
Numeric values are "left padded" with spaces.
Character values are "right padded" with spaces.
You must convert to a character string and trim the data to get a left aligned or center aligned value.

If you expect any kind of left or HCENTER alignment to work correctly, you must trim the data.

Code: Select all

DCBROWSECOL DATA {||Alltrim(Str(ParamRND->Num))} ;
        HEADER "Номер;параметра" ;
        PARENT ParamRND FONT "9.Courier" WIDTH  5 PROTECT {|| .T. } COLOR {||{nil,aColor[100]}} ;
        ALIGN XBPALIGN_HCENTER+XBPALIGN_VCENTER

Re: The alignment of the columns and field values in DCBROWS

Posted: Sat Feb 04, 2017 9:45 am
by Eugene Lutsenko
Thank You, Roger! All ingenious is simple!