Database visualization with variable quantity of columns
Posted: Sun Aug 19, 2012 10:57 pm
How by means of DCBROWSECOL to display a database with quantity of columns which isn't known during development of the program, and it should be defined during program execution? I tried to make so:
In the fragment of the program given below everything works normally but if instead of sequence of DCBROWSECOL to use a cycle (which is issued as the comment) then works incorrectly (in both columns: 8, 9 contents of the 10th column) are displayed
What to do?
Code: Select all
/* ----- Create browse-1 ----- */
bScale := {|| Rsp_it->(DC_SetScope(0,Int_krit->KOD_IntKr)), ;
Rsp_it->(DC_SetScope(1,Int_krit->KOD_IntKr)), ;
Rsp_it->(DC_DbGoTop()), ;
oBrowRsoIt:refreshAll() }
@ 1, 0 DCBROWSE oBrowIntKr ALIAS 'Int_krit' SIZE 41.5,3.4 ;
PRESENTATION DC_BrowPres() ; // Только просмотр БД
NOSOFTTRACK ;
SCOPE ;
NOHSCROLL NOVSCROLL ; // Убрать горизонтальную и вертикальную полосы прокрутки
ITEMMARKED {|| Eval(bScale), ;
DC_GetRefresh(GetList,, ;
DCGETREFRESH_TYPE_EXCLUDE,{GETLIST_BROWSE}) }
DCSETPARENT oBrowIntKr
DCBROWSECOL FIELD Int_krit->KOD_IntKr HEADER 'Код' PARENT oBrowIntKr WIDTH 1
DCBROWSECOL FIELD Int_krit->NAME_IntKr HEADER 'Интегральный критерий' PARENT oBrowIntKr WIDTH 21
/* ----- Create browse-2 ----- */
SET TAG TO COMMAND
aSaveRspIt := DC_DataSave() // Сохранение вычислительной среды (открытые и текущие БД и индексы)
PRIVATE aHeadName[8+N_Cls]
aHeadName[1] = "Код"
aHeadName[2] = "Наименование объекта;распознаваемой выборки"
aHeadName[3] = "MAX;уровень;сходства"
aHeadName[4] = "Код;класса;с MAX;ур.сход."
aHeadName[5] = "MIN;уровень;сходства"
aHeadName[6] = "Код;класса;с MIN;ур.сход."
aHeadName[7] = "Досто-;вер-;ность"
SELECT Classes
FOR j=1 TO N_Cls
DBGOTO(j)
aHeadName[7+j] = ALLTRIM(STR(j,15))+". "+STRTRAN(ALLTRIM((Name_cls))," ",";") // Переносы на каждом слове
NEXT
*aHeadName[8+N_cls] = "Инт.;крит."
PRIVATE aFieldName[8+N_Cls]
SELECT Rsp_it
FOR j=1 TO 7+N_Cls
aFieldName[j] = "Rsp_it->"+ALLTRIM(FIELDNAME(j))
NEXT
*DC_DebugQout( aFieldName )
DC_DataRest( aSaveRspIt ) // Восстановление вычислительной среды (открытые и текущие БД и индексы)
DCSETPARENT TO
@ 5, 0 DCBROWSE oBrowRsoIt ALIAS 'Rsp_it' SIZE 132,22 ;
PRESENTATION DC_BrowPres() ; // Только просмотр БД
NOSOFTTRACK ;
HEADLINES 4 ; // Кол-во строк в заголовке (перенос строки - ";")
SCOPE ;
ITEMMARKED bItems
// MAX - красным, MIN - синим
*DCSETFONT TO "9.Courier"
DCSETPARENT oBrowRsoIt
DCBROWSECOL DATA {|x|x:=Rsp_it->Kod_Obj, IIF(Empty(x),'',Str(x,15))} HEADER "Код" PARENT oBrowRsoIt WIDTH 5
DCBROWSECOL FIELD Rsp_it->Name_Obj HEADER "Наименование объекта;распознаваемой выборки" PARENT oBrowRsoIt WIDTH 24
DCBROWSECOL DATA {|x|x:=Rsp_it->Max_Value,IIF(Empty(x),'',Str(x,8,3))} HEADER "MAX;уровень;сходства" PARENT oBrowRsoIt COLOR GRA_CLR_RED FONT "9.Courier"
DCBROWSECOL DATA {|x|x:=Rsp_it->KodC_MaxV,IIF(Empty(x),'',Str(x,15))} HEADER "Код;класса;с MAX;ур.сход." PARENT oBrowRsoIt WIDTH 5 COLOR GRA_CLR_RED
DCBROWSECOL DATA {|x|x:=Rsp_it->Min_Value,IIF(Empty(x),'',Str(x,8,3))} HEADER "MIN;уровень;сходства" PARENT oBrowRsoIt COLOR GRA_CLR_BLUE FONT "9.Courier"
DCBROWSECOL DATA {|x|x:=Rsp_it->KodC_MinV,IIF(Empty(x),'',Str(x,15))} HEADER "Код;класса;с MIN;ур.сход." PARENT oBrowRsoIt WIDTH 5 COLOR GRA_CLR_BLUE
DCBROWSECOL DATA {|x|x:=Rsp_it->Dost, IIF(Empty(x),'',Str(x,8,3))} HEADER "Досто-;вер-;ность" PARENT oBrowRsoIt FONT "9.Courier"
*FOR j=1 TO N_Cls
* DCBROWSECOL DATA {|x|x:=FIELDGET(7+j), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+j] PARENT oBrowRsoIt FONT "9.Courier"
*NEXT
DCBROWSECOL DATA {|x|x:=FIELDGET(7+1), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+1] PARENT oBrowRsoIt FONT "9.Courier"
DCBROWSECOL DATA {|x|x:=FIELDGET(7+2), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+2] PARENT oBrowRsoIt FONT "9.Courier"
*DCBROWSECOL DATA {|x|x:=Rsp_it->Cls1, IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[8] FONT "9.Courier"
*DCBROWSECOL DATA {|x|x:=Rsp_it->Cls2, IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[9] FONT "9.Courier"
DCGETOPTIONS SAYFONT '10.Helv Bold' TABSTOP AUTORESIZE
cTitle = '4.1.3.5. Подробная сжатая форма результатов распознавания'+'. Текущая модель: "'+UPPER(Ar_Model[M_CurrInf])+'"'
DCREAD GUI ;
FIT ;
OPTIONS GetOptions ;
MODAL ;
TITLE cTitle ;
EVAL {|o|SetAppFocus(oBrowIntKr:GetColumn(1))}
Code: Select all
*FOR j=1 TO N_Cls
* DCBROWSECOL DATA {|x|x:=FIELDGET(7+j), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+j] PARENT oBrowRsoIt FONT "9.Courier"
*NEXT
DCBROWSECOL DATA {|x|x:=FIELDGET(7+1), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+1] FONT "9.Courier"
DCBROWSECOL DATA {|x|x:=FIELDGET(7+2), IIF(Empty(x),'',Str(x,8,3))} HEADER aHeadName[7+2] FONT "9.Courier"