Questions about graphics library Rmchart

This forum is for eXpress++ general support.
Post Reply
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:

Questions about graphics library Rmchart

#1 Post by Eugene Lutsenko »

1. Is it possible to write the title of the chart in a few lines? Code fragment below:

Code: Select all

   mTitle = SUBSTR(ALLTRIM(M_NameAppl) + ". Модель: " + ALLTRIM(Ar_Model[jj]), 1, 130)   // Использовать для обновления изображения блок кода

   @ 30,10 DcChartRegion oRegion6 ;                                          // Координаты нижнего левого угла поля построения графика в окне
        PARENT oRMChart ;
        SIZE 1100, 555 PIXEL ;      // Размер поля построения графика в окне 1100 x 600
        CAPTION TITLE mTitle BACKCOLOR White TEXTCOLOR Black FONTSIZE 10 BOLD ;
        GRID ;
        DATAAXIS aDataAxis6 ;
        LABELAXIS LABELARRAY aLabel ALIGN RMC_LABELAXISBOTTOM ;
        LINEGROUP aLineGroupIndus
2. How to make a label axis with the same way as the axis and the inscription:

Code: Select all

   DcAddDataAxis TO aDataAxis6 ;
        AXISTEXT 'Суммарная значимость градаций описательных шкал "нарастающим итогом" в %'  ;
        ALIGN RMC_DATAAXISLEFT  ;
        MINVALUE 0 MAXVALUE 100
3. How to change the title of the chart function called by pressing a button on the chart?

Code: Select all

   @ DCGUI_ROW, DCGUI_COL + 5  DCPUSHBUTTON CAPTION 'Inf1' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf1"' ACTION {||ZnachAtr(1, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf2' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf2"' ACTION {||ZnachAtr(2, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf3' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf3"' ACTION {||ZnachAtr(3, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf4' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf4"' ACTION {||ZnachAtr(4, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf5' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf5"' ACTION {||ZnachAtr(5, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf6' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf6"' ACTION {||ZnachAtr(6, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf7' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf7"' ACTION {||ZnachAtr(7, oRegion6), oRMChart:draw()}
[/size]

Code: Select all

FUNCTION ZnachAtr(jj, oRegion)

LOCAL i, aData[0]

   mNameZpr = "Zpr_Inf"+STR(jj,1)
   SELECT (mNameZpr)
   INDEX ON STR(999999999999.9999999 - Znach_Atr, 21, 7) TO (mNameZpr)

   aData  := {}
   aLabel := {}
   DBGOTOP()
   DO WHILE .NOT. EOF()
       AADD(aData , Zn_PrcNit)
*      AADD(aData , DC_Random(100))
*      AADD(aLabel, "[" + STR(Num_prc,mMaxLen) + "]-" + ALLTRIM(Name_atr))
       AADD(aLabel, STR(Num_prc,mMaxLen))
       DBSKIP(1)
   ENDDO

   StrFile(STR(jj), '_Zpr_Inf.txt')          // Запись текстового файла с параметром jj
*  jj = VAL(FileStr('_Zpr_Inf.txt'))         // Загрузка параметра jj из текстового файла

oRegion:lineGroup[1,DCRMCHART_LINESERIES_DATA] := aData
oRegion:reset()

RETURN NIL
4. Why one and the same program with a small number of elements chart displays correctly, but when a lot of items - display incorrectly?

Image
Image

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

Re: Questions about graphics library Rmchart

#2 Post by rdonnay »

1. Is it possible to write the title of the chart in a few lines?
The RMChart documentation states that there can be only 1 caption per region.
You could try putting a Chr(13) in the text.
The eXpress train is coming - and it has more cars.

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

Re: Questions about graphics library Rmchart

#3 Post by rdonnay »

3. How to change the title of the chart function called by pressing a button on the chart?

Code: Select all

@ .. DCPUSHBUTTON CAPTION 'Change Title' ACTION {||oRegion6:Caption():Titel := "My New Title"}
The eXpress train is coming - and it has more cars.

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

Re: Questions about graphics library Rmchart

#4 Post by rdonnay »

4. Why one and the same program with a small number of elements chart displays correctly, but when a lot of items - display incorrectly?
You probably will need to lower the resolution of your chart so it can fit the screen.
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: Questions about graphics library Rmchart

#5 Post by Eugene Lutsenko »

Thank you, Roger, for your responsiveness. I will try to take advantage of thy advice. But until I saw this.

Below I present the chart made ​​in the same mode. These diagrams differ only in the number of points on the axes 19, 67, 104, 470, 1640. It is evident that the greater the number of pixels, the higher the offset area plot. First, it is not very noticeable and acceptable, but a further increase in the number of points of the chart becomes distorted and incorrect.
Image
Image
Image
Image
Image

What kind of documentation do you mean? Does not help to RMCDesigner?
If such documentation exists, how it was possible to get it?

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

Re: Questions about graphics library Rmchart

#6 Post by Eugene Lutsenko »

Hi, Roger! At the touch of button, a function ZnachAtr (), which replaces the data in the array and the displayed chart in the chart changes, and the name is incorrect. How to replace it inside the function?

Code: Select all

************************************************************************************************************
******** 3.7.5. Значимость градаций описательных шкал (признаков)
********        В данном режиме все градации описательных шкал (признаки) ранжируются в порядке убывания
********        значимости, т.е. вариабельности значений частных критериев статистических баз и баз знаний
************************************************************************************************************
FUNCTION F3_7_5()

LOCAL GetList[0], GetOptions, oRmChart, oRegion1, oRegion2, oRegion3, ;
      oRegion4, oRegion5, oRegion6, aBarGroup[0], aLineGroup[0], aPie[0], ;
      aDonut[0], aBarGroupFloat[0], aBarGroupIndus[0], aLineGroupIndus[0], ;
      aDataAxis1[0], aDataAxis5[0], aDataAxis6[0], cRegSvr, ;
      cRmChart, cClsId, cRegQuery, nWhich, oStatus

******* Проверка возможности работать в системе ******************************************

IF M_KodAdmAppls = 0  // Выйти из системы если нет авторизации
   LB_Warning("Вы не авторизовались в системе и не можете ей пользоваться!")
   RETURN NIL
ENDIF
IF ApplChange()       // Перейти в папку выбранного приложения или выйти из системы
   LB_Warning("Необходимо задать (выбрать) хотя бы одно текущее приложение !!!")
   RETURN NIL
ENDIF

IF .NOT. FILE("Abs.dbf")  .OR.;              // БД абс.частот
   .NOT. FILE("Prc1.dbf") .OR.;              // БД процентных распрделений
   .NOT. FILE("Prc2.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf") .OR.;
   .NOT. FILE("Inf1.dbf")
   Mess := {}
   AADD(Mess, 'В текущем приложении нет БД Abs, Prc1, Prc2, Inf1-Inf7.')
   AADD(Mess, 'Необходимо их создать в 3-й подсистеме (можно в режиме 3.4) !!!')
   LB_Warning(Mess, '3.7.5. Значимость градаций описательных шкал (признаков)')
   RETURN NIL
ENDIF

Mess := {}
DO CASE
   CASE OSVER() = "3.1"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.1')
   CASE OSVER() = "3.5"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.5')
   CASE OSVER() = "3.51"
        AADD(Mess, 'На комьютере установлена MS Windows NT 3.51')
   CASE OSVER() = "4.0"
        AADD(Mess, 'На комьютере установлена MS Windows NT 4.0')
   CASE OSVER() = "5.0"
        AADD(Mess, 'На комьютере установлена MS Windows 2000')
   CASE OSVER() = "5.1"
        AADD(Mess, 'На комьютере установлена MS Windows XP')
   CASE OSVER() = "5.2"
        AADD(Mess, 'На комьютере установлена MS Server 2003')
ENDCASE
IF LEN(Mess) > 0
   AADD(Mess, 'А для работы профессиональной графики нужна:')
   AADD(Mess, 'MS Windows Vista / MS Windows Server 2008 или')   // OSVER() = "6.0"
   AADD(Mess, 'MS Windows 7 / MS Windows Server 2008 R2')        // OSVER() = "6.1"
   LB_Warning(Mess, 'Сообщение о неудачном завершении операции')
   RETURN NIL
ENDIF

// Еще сделать проверку на то, проинсталлирован ли ActiveX

******* Подготовка данных (расчет значимости признаков во всех моделях) *************

   ***** Создать БД Zpr_Inf#

   CLOSE ALL
   aStructure := { { "Num"      , "N", 15, 0 }, ; // Порядковый номер после ранжирования
                   { "Num_prc"  , "N", 21, 7 }, ; // Порядковый номер после ранжирования в процентах
                   { "Kod_atr"  , "N", 15, 0 }, ; // Код признака, т.е. градации описательной шкалы
                   { "Name_atr" , "C",130, 0 }, ; // Наименование признака, т.е. описательной шкалы+"-"+градации описательной шкалы
                   { "Kod_OpSc" , "N", 15, 0 }, ; // Код описательной шкалы
                   { "Znach_Atr", "N", 21, 7 }, ; // Значимость признака в ее единицах измерения
                   { "Zn_AtrNit", "N", 21, 7 }, ; // Значимость признака в ее единицах измерения нарастающим итогом
                   { "Znach_Prc", "N", 21, 7 }, ; // Значимость признака в процентах от суммы значимостей всех признаков
                   { "Zn_PrcNit", "N", 21, 7 }, ; // Значимость признака в процентах от суммы значимостей всех признаков нарастающим итогом
                   { "Delete"   , "C",  6, 0 }  } // Признак, что данный признак был удален из Abs
   DbCreate( "Zpr_Inf1.dbf", aStructure )
   DbCreate( "Zpr_Inf2.dbf", aStructure )
   DbCreate( "Zpr_Inf3.dbf", aStructure )
   DbCreate( "Zpr_Inf4.dbf", aStructure )
   DbCreate( "Zpr_Inf5.dbf", aStructure )
   DbCreate( "Zpr_Inf6.dbf", aStructure )
   DbCreate( "Zpr_Inf7.dbf", aStructure )

   // Посчитать БД Zpr_Inf#

   CLOSE ALL
   USE Abs        EXCLUSIVE NEW
   USE Attributes EXCLUSIVE NEW
   N_Atr = RECCOUNT()

   nMax  = 7 * 3 * N_Atr + 1
   Mess = '3.7.5. Подготовка данных для визуализации значимости признаков'
   @ 4,5 DCPROGRESS oProgress SIZE 95,1.1 MAXCOUNT nMax COLOR GRA_CLR_BLUE PERCENT EVERY 100
   DCREAD GUI TITLE Mess PARENT @oDialog FIT EXIT
   oDialog:show()
   nTime = 0

   DC_GetProgress(oProgress,0,nMax)

   FOR jj=1 TO 7

       mNameInf = "Inf"+STR(jj,1)
       mNameZpr = "Zpr_Inf"+STR(jj,1)
       USE (mNameInf) EXCLUSIVE NEW
       USE (mNameZpr) EXCLUSIVE NEW

       ****** Копирование кодов и наименований атрибутов в базы значимостей

       SELECT Attributes
       DBGOTOP()
       DO WHILE .NOT. EOF()
          mKodAtr  = Kod_atr
          mNameAtr = Name_atr
          mKodOpSc = Kod_OpSc
          SELECT (mNameInf)
          DBGOTO(mKodAtr)
          mDisp = Disp
          SELECT (mNameZpr)
          APPEND BLANK
          REPLACE Kod_atr   WITH mKodAtr
          REPLACE Name_atr  WITH mNameAtr
          REPLACE Kod_OpSc  WITH mKodOpSc
          REPLACE Znach_Atr WITH mDisp
          DC_GetProgress(oProgress, ++nTime, nMax)    // 1
          SELECT Attributes
          DBSKIP(1)
       ENDDO

       ****** Сортировка базы по значимости признаков

       SELECT (mNameZpr)
       INDEX ON STR(999999999999.9999999 - Znach_Atr, 21, 7) TO (mNameZpr)

       ****** Расчет значимости признака в ее единицах измерения нарастающим итогом

       DBGOTOP()
       mSumZntr = 0
       DO WHILE .NOT. EOF()
          mSumZntr = mSumZntr + Znach_atr
          REPLACE Zn_AtrNit WITH mSumZntr
          DC_GetProgress(oProgress, ++nTime, nMax)    // 2
          DBSKIP(1)
       ENDDO

       ****** Расчет значимости признаков в процентах от суммы значимостей всех признаков и нарастающим итогом в процентах

       mMaxLen   = 0
       mNumPP    = 0
       mSumZnPrc = 0
       DBGOTOP()
       DO WHILE .NOT. EOF()
          mZnPrc    = Znach_Atr / mSumZntr * 100
          mSumZnPrc = mSumZnPrc + mZnPrc
          REPLACE Num       WITH ++mNumPP
          REPLACE Num_prc   WITH mNumPP / N_Atr * 100
          REPLACE Znach_Prc WITH mZnPrc
          REPLACE Zn_PrcNit WITH mSumZnPrc
          mMaxLen = MAX(mMaxLen, LEN(ALLTRIM(STR(ROUND(Num_prc,0)))))
          DC_GetProgress(oProgress, ++nTime, nMax)    // 3
          DBSKIP(1)
       ENDDO
   NEXT

   ***** ВИЗУАЛИЗАЦИЯ ГРАФИКА *************************************************************

   ***** Размер окна для отображения графика **********************************************

   * --- RMChart ActiveX Control --

   @ 0,0 DCRMCHART oRmChart SIZE 1140, 640 RESIZE DCGUI_RESIZE_RESIZEONLY

   ***** Линейный график: исходные данные *************************************************

   jj = 1

   StrFile(STR(jj), '_Zpr_Inf.txt')          // Запись текстового файла с параметром jj
*  jj = VAL(FileStr('_Zpr_Inf.txt'))         // Загрузка параметра jj из текстового файла

   mNameZpr = "Zpr_Inf"+STR(jj,1)
   SELECT (mNameZpr)
   INDEX ON STR(999999999999.9999999 - Znach_Atr, 21, 7) TO (mNameZpr)

   aData  := {}
   aLabel := {}
   DBGOTOP()
   DO WHILE .NOT. EOF()
       AADD(aData , Zn_PrcNit)
*      AADD(aLabel, "[" + STR(Num_prc,mMaxLen) + "]-" + ALLTRIM(Name_atr))
       AADD(aLabel, STR(Num_prc,mMaxLen))
       DC_GetProgress(oProgress, ++nTime, nMax)    // 4
       DBSKIP(1)
   ENDDO
   DC_GetProgress(oProgress,nMax,nMax)
   oDialog:Destroy()

   IF LEN(aData) < 20

      DcAddLineGroup TO aLineGroupIndus ;
           DATA aData ;
           WHICHDATAAXIS 2 ;
           STYLE RMC_LINE_CABLE ;
           COLOR Green ;
           LINESTYLE RMC_LSTYLE_LINE ;
           SYMBOLSTYLE RMC_SYMBOL_BULLET ;
           VALUELABEL 1
   ELSE

      DcAddLineGroup TO aLineGroupIndus ;
           DATA aData ;
           WHICHDATAAXIS 2 ;
           STYLE RMC_LINE_CABLE ;
           COLOR Green ;
           LINESTYLE RMC_LSTYLE_LINE ;
           SYMBOLSTYLE RMC_SYMBOL_BULLET

   ENDIF


   ****************************************************************************************

   DcAddDataAxis TO aDataAxis6 ;
        AXISTEXT 'Суммарная значимость градаций описательных шкал "нарастающим итогом" в %'  ;
        ALIGN RMC_DATAAXISLEFT  ;
        MINVALUE 0 MAXVALUE 100

   @ 380,480 DCGRASTRING "Градации описательных шкал в %" COLOR Black FONT '11.Tahona'   // Использовать для обновления изображения блок кода

*  @ .. DCPUSHBUTTON CAPTION 'Change Title' ACTION {||oRegion6:Caption():Title := "My New Title"}

   mTitle = SUBSTR(ALLTRIM(M_NameAppl) + ". Модель: " + ALLTRIM(Ar_Model[jj]), 1, 130)   // Использовать для обновления изображения блок кода

   @ 10,10 DcChartRegion oRegion6 ;                                          // Координаты нижнего левого угла поля построения графика в окне
        PARENT oRMChart ;
        SIZE 1100, 555 PIXEL ;      // Размер поля построения графика в окне 1100 x 600
        CAPTION TITLE mTitle BACKCOLOR White TEXTCOLOR Black FONTSIZE 10 BOLD ;
        GRID ;
        DATAAXIS aDataAxis6 ;
        LABELAXIS LABELARRAY aLabel ALIGN RMC_LABELAXISBOTTOM ;
        LINEGROUP aLineGroupIndus
   ****************************************************************************************

   ***** Кнопки визу **********************************************************************

   @ 620, 0                    DCPUSHBUTTON CAPTION 'Помощь' SIZE  60,25 ACTION {||Help3_7_5()}

   @ DCGUI_ROW, DCGUI_COL + 5  DCPUSHBUTTON CAPTION 'Inf1' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf1"' ACTION {||ZnachAtr(1, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf2' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf2"' ACTION {||ZnachAtr(2, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf3' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf3"' ACTION {||ZnachAtr(3, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf4' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf4"' ACTION {||ZnachAtr(4, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf5' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf5"' ACTION {||ZnachAtr(5, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf6' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf6"' ACTION {||ZnachAtr(6, oRegion6), oRMChart:draw()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Inf7' SIZE 34,25 TOOLTIP 'Переключиться на работу с базой знаний "Inf7"' ACTION {||ZnachAtr(7, oRegion6), oRMChart:draw()}

   @ DCGUI_ROW, DCGUI_COL + 7  DCPUSHBUTTON CAPTION 'Записать графический файл'   SIZE 165,25 TOOLTIP 'Записать изображение в виде графического файла' ACTION {||SaveChartToBitmap(oRMChart)}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Копировать в буфер обмена'   SIZE 165,25 TOOLTIP 'Скопировать изображение в буфер обмена'         ACTION {||SaveChartToClipboard(oRMChart)}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Печать'                      SIZE  55,25 TOOLTIP 'Распечатать изображение на текущем принтере'    ACTION {||PrintChart(oRMChart)}
   @ DCGUI_ROW, DCGUI_COL + 7  DCPUSHBUTTON CAPTION 'Копировать Abs'              SIZE 103,25 TOOLTIP 'Создать копию БД Abs для возможности отката'    ACTION {||SaveAbs()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Удалить незнач.призн.из Abs' SIZE 168,25 TOOLTIP 'Удалить малозначимые признаки из БД Abs'        ACTION {||DelAtrAbs()}
   @ DCGUI_ROW, DCGUI_COL + 2  DCPUSHBUTTON CAPTION 'Восстановить Abs'            SIZE 117,25 TOOLTIP 'Восстановить БД Abs из ранее созданной копии'   ACTION {||LoadAbs()}

   DCGETOPTIONS RESIZE PIXEL

   DCREAD GUI ;
       SETAPPWINDOW ;
       FIT ;
       TITLE '3.7.5. Значимость градаций описательных шкал.   (C) Универсальная когнитивная аналитическая система "Эйдос-Х++"' ;
       OPTIONS GetOptions ;
       EVAL {||oRMChart:RMCToolTipWidth := 100, ;
               oRMChart:RMCUserWatermark := '(C) Универсальная когнитивная аналитическая система "Эйдос-Х++"', ;
               oRMChart:RMCUserWMAlignment := RMC_TEXTRIGHT, ;
               oRMChart:RMCUserWMFontSize := 20, ;
               oRMChart:RMCUserWMLucent := 40, ;
               oRmChart:mouseDown := ;
               {|a,b,c,d,e,o|aData := e,nWhich := a,o:=Thread():new(),o:start({||BrowseCallbackData(nWhich,aData,oRMChart)})}, ;
               oRmChart:mouseMove := ;
               {|nMouseButton,b,nX,nY,aData|oRMChart:showToolTip( nMouseButton, nX, nY, aData )}, ;
               oRmChart:draw(), ;
               ShowDebugInfo(oRMChart)}
   CLOSE ALL

* aSaveMainM := DC_DataSave()  // Сохранение вычислительной среды (открытые и текущие БД и индексы)
  DC_DataRest( aSaveMainM )    // Восстановление вычислительной среды (открытые и текущие БД и индексы)

RETURN NIL
*************************************************************************************************

FUNCTION ZnachAtr(jj, oRegion)

LOCAL i, aData[0]

   mNameZpr = "Zpr_Inf"+STR(jj,1)
   SELECT (mNameZpr)
   INDEX ON STR(999999999999.9999999 - Znach_Atr, 21, 7) TO (mNameZpr)

   aData  := {}
   aLabel := {}
   DBGOTOP()
   DO WHILE .NOT. EOF()
       AADD(aData , Zn_PrcNit)
*      AADD(aData , DC_Random(100))
*      AADD(aLabel, "[" + STR(Num_prc,mMaxLen) + "]-" + ALLTRIM(Name_atr))
       AADD(aLabel, STR(Num_prc,mMaxLen))
       DBSKIP(1)
   ENDDO

   StrFile(STR(jj), '_Zpr_Inf.txt')          // Запись текстового файла с параметром jj
*  jj = VAL(FileStr('_Zpr_Inf.txt'))         // Загрузка параметра jj из текстового файла

oRegion:Title := SUBSTR(ALLTRIM(M_NameAppl) + ". Модель: " + ALLTRIM(Ar_Model[jj]), 1, 130)   // Использовать для обновления изображения блок кода
oRegion:lineGroup[1,DCRMCHART_LINESERIES_DATA] := aData
oRegion:reset()

RETURN NIL
[/size]

Post Reply