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!