/3.1 (Extension.1 Name: "olddata" FirstRootClassName: "AVDLog" Roots: 2 Roots: 60 Roots: 61 Roots: 62 Roots: 63 Roots: 64 Roots: 65 Roots: 66 Version: 31 UnloadScript: 67 InstallScript: 68 ) (AVDLog.2 Name: "olddata" X: 93 Y: 134 W: 441 H: 267 ConstrainedControlNames: 3 ConstrainedControlNames: 4 Constraints: 5 Constraints: 6 Server: 7 ControlPanel: 8 Title: "Сравнение диаграмм со старыми данными" EscapeEnabled: 1 Resizable: 1 AlwaysOnTop: 1 HasTitleBar: 1 Closeable: 1 DefaultButton: 59 ) (AVStr.3 S: "aLabelButton1" ) (AVStr.4 S: "aLabelButton3" ) (Numb.5 N: 85.00000000000000 ) (Numb.6 N: 85.00000000000000 ) (Nil.7 ) (CPanel.8 Child: 9 ResBox: 58 Listening: 1 ) (CPanel.9 InternalName: "ListOfThemes" Child: 10 Child: 11 Child: 12 Child: 17 Child: 18 Child: 20 Child: 21 Child: 22 Child: 23 Child: 24 Child: 25 Child: 26 Child: 27 Child: 32 Child: 37 Child: 38 Child: 39 Constraints: 0x55 ResBox: 41 ResBox: 42 ResBox: 43 ResBox: 44 ResBox: 45 ResBox: 46 ResBox: 47 ResBox: 48 ResBox: 49 ResBox: 50 ResBox: 51 ResBox: 52 ResBox: 53 ResBox: 54 ResBox: 55 ResBox: 56 ResBox: 57 Label: "\n" VisibleBorder: 1 Listening: 1 ) (LButn.10 InternalName: "aLabelButton1" Label: "Выход" Click: "olddata.CloseDialog" ) (LButn.11 InternalName: "aLabelButton3" Label: "Пуск" Click: "olddata.Makeolddata" ) (CPanel.12 InternalName: "aControlPanel4" Child: 13 Child: 14 Constraints: 0x55 ResBox: 15 ResBox: 16 Label: "Поставить стрелки?" VisibleBorder: 1 Listening: 1 ) (RButn.13 InternalName: "StrYes" Constraints: 0x55 Listening: 1 Label: "Да" Click: "olddata.selstr" ) (RButn.14 InternalName: "StrNo" Constraints: 0x55 Listening: 1 Label: "Нет" Click: "olddata.selstr" ) (RectD.15 Left: 24.00000000000000 Top: 33.00000000000000 Right: 77.00000000000000 Bottom: 11.00000000000000 ) (RectD.16 Left: 101.00000000000000 Top: 33.00000000000000 Right: 167.00000000000000 Bottom: 11.00000000000000 ) (TextLabel.17 InternalName: "aTextLabel6" Constraints: 0x55 Label: "Тема с новыми данными (диаграмма):" Listening: 1 ) (TextLine.18 InternalName: "aStr" Invisible: 1 Text: "5" Label: "при разнице в значениях свыше:" Constraints: 0x55 Listening: 1 TextType: 19 Size: 4 NextControl: 7 ) (AVEnum.19 Name: "TEXTLINE_TYPE_ALL" ) (AVCBBox.20 InternalName: "newTheme" NextControl: 7 ContentKind: 4 Constraints: 0x55 Listening: 1 Select: "olddata.selfield" ) (TextLabel.21 InternalName: "aTextLabel7" Constraints: 0x55 Label: "Тема со старыми данными (точки):" Listening: 1 ) (AVCBBox.22 InternalName: "OldTheme" NextControl: 7 ContentKind: 4 Constraints: 0x55 Listening: 1 Select: "olddata.selField2" ) (AVCBBox.23 InternalName: "NewThemeField" NextControl: 7 ContentKind: 4 Constraints: 0x55 Listening: 1 ) (TextLabel.24 InternalName: "aTextLabel10" Constraints: 0x55 Label: "связь по полю:" Listening: 1 ) (TextLabel.25 InternalName: "aTextLabel11" Constraints: 0x55 Label: "связь по полю:" Listening: 1 ) (AVCBBox.26 InternalName: "OldThemeField" NextControl: 7 ContentKind: 4 Constraints: 0x55 Listening: 1 ) (CPanel.27 InternalName: "aControlPanel6" Child: 28 Child: 29 Constraints: 0x55 ResBox: 30 ResBox: 31 Label: "Учитывать выборку?" VisibleBorder: 1 Listening: 1 ) (RButn.28 InternalName: "VibYes" Constraints: 0x55 Listening: 1 Label: "Да" ) (RButn.29 InternalName: "VibNo" Constraints: 0x55 Listening: 1 Label: "Нет" ) (RectD.30 Left: 25.00000000000000 Top: 35.00000000000000 Right: 75.00000000000000 Bottom: 11.00000000000000 ) (RectD.31 Left: 100.00000000000000 Top: 35.00000000000000 Right: 150.00000000000000 Bottom: 11.00000000000000 ) (CPanel.32 InternalName: "aControlPanel1" Child: 33 Child: 34 Constraints: 0x55 ResBox: 35 ResBox: 36 Label: "Представить старые данные как:" VisibleBorder: 1 Listening: 1 ) (RButn.33 InternalName: "RBLine" Constraints: 0x55 Listening: 1 Label: "Линия" ) (RButn.34 InternalName: "RBPoly" Constraints: 0x55 Listening: 1 Label: "Полигон" ) (RectD.35 Left: 25.00000000000000 Top: 33.00000000000000 Right: 117.00000000000000 Bottom: 9.00000000000000 ) (RectD.36 Left: 101.00000000000000 Top: 33.00000000000000 Right: 193.00000000000000 Bottom: 9.00000000000000 ) (TextLabel.37 InternalName: "aTextLabel12" Constraints: 0x55 Label: "Стиль линий и штриховки " Listening: 1 ) (TextLabel.38 InternalName: "aTextLabel13" Constraints: 0x55 Label: "укажите в окне ShowSymbolWindow" Listening: 1 ) (TextLine.39 InternalName: "aMas" Label: "Масштаб 1:" Constraints: 0x55 Listening: 1 TextType: 40 NextControl: 7 ) (AVEnum.40 Name: "TEXTLINE_TYPE_ALL" ) (RectD.41 Left: 223.00000000000000 Top: 249.00000000000000 Right: 308.00000000000000 Bottom: 232.00000000000000 ) (RectD.42 Left: 120.00000000000000 Top: 249.00000000000000 Right: 199.00000000000000 Bottom: 232.00000000000000 ) (RectD.43 Left: 15.00000000000000 Top: 77.00000000000000 Right: 203.00000000000000 Bottom: 43.00000000000000 ) (RectD.44 Left: 16.00000000000000 Top: 164.00000000000000 Right: 236.00000000000000 Bottom: 148.00000000000000 ) (RectD.45 Left: 19.00000000000000 Top: 103.00000000000000 Right: 231.00000000000000 Bottom: 83.00000000000000 ) (RectD.46 Left: 10.00000000000000 Top: 289.00000000000000 Right: 256.00000000000000 Bottom: 165.00000000000000 ) (RectD.47 Left: 16.00000000000000 Top: 201.00000000000000 Right: 236.00000000000000 Bottom: 185.00000000000000 ) (RectD.48 Left: 10.00000000000000 Top: 326.00000000000000 Right: 255.00000000000000 Bottom: 202.00000000000000 ) (RectD.49 Left: 263.00000000000000 Top: 285.00000000000000 Right: 426.00000000000000 Bottom: 165.00000000000000 ) (RectD.50 Left: 267.00000000000000 Top: 164.00000000000000 Right: 392.00000000000000 Bottom: 148.00000000000000 ) (RectD.51 Left: 268.00000000000000 Top: 201.00000000000000 Right: 433.00000000000000 Bottom: 185.00000000000000 ) (RectD.52 Left: 263.00000000000000 Top: 334.00000000000000 Right: 427.00000000000000 Bottom: 202.00000000000000 ) (RectD.53 Left: 239.00000000000000 Top: 76.00000000000000 Right: 422.00000000000000 Bottom: 42.00000000000000 ) (RectD.54 Left: 15.00000000000000 Top: 141.00000000000000 Right: 204.00000000000000 Bottom: 108.00000000000000 ) (RectD.55 Left: 226.00000000000000 Top: 128.00000000000000 Right: 435.00000000000000 Bottom: 109.00000000000000 ) (RectD.56 Left: 226.00000000000000 Top: 141.00000000000000 Right: 435.00000000000000 Bottom: 123.00000000000000 ) (RectD.57 Left: 17.00000000000000 Top: 35.00000000000000 Right: 201.00000000000000 Bottom: 15.00000000000000 ) (RectD.58 Left: 4.00000000000000 Top: 263.00000000000000 Right: 437.00000000000000 Bottom: 4.00000000000000 ) (Nil.59 ) (Script.60 Name: "olddata.CloseDialog" SourceCode: "TheDialog = av.FindDialog(\"olddata\")\nTHeDialog.Close" ) (Script.61 Name: "olddata.Makeolddata" SourceCode: "theView=av.GetActiveDoc\nTheDialog = av.FindDialog(\"olddata\")\n'addToView = TheDialog.FindByName(\"VList\").GetCurrentValue \n\n\nStrYes = TheDialog.FindByName(\"StrYes\") \nStrNo = TheDialog.FindByName(\"StrNo\") \nVibYes = TheDialog.FindByName(\"VibYes\") \nVibNo = TheDialog.FindByName(\"VibNo\") \nRBLine = TheDialog.FindByName(\"RBLine\") \nRBPoly = TheDialog.FindByName(\"RBPoly\") \nmStr = TheDialog.FindByName(\"aStr\") \nnewTheme = TheDialog.FindByName(\"NewTheme\") \noldTheme = TheDialog.FindByName(\"OldTheme\") \nnewThemeField = TheD ialog.FindByName(\"NewThemeField\") \noldThemeField = TheDialog.FindByName(\"OldThemeField\") \n\n \n'Сравнение двух диаграмм\n'последняя правка 27.12.00 без цветов (стрелки черные, остальное по выставленному цвету в Showsymbolwindow)\n'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n'При неточном положении подписей поменять это значение\nk=45/128\n'!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\ntheGraphics = theview.getGraphics\ntheDisplay = theView.GetDisplay\ntheScale = theView.ReturnScale\ntheProjection = theView.GetProjection\n\nmMas = TheDialog.F indByName(\"aMas\").GetText.AsNumber\ntheDisplay.ZoomToScale(mMas)\n\nmMas = mMas/1000\n\n'StrList = {\"Да\",\"Нет\"}\n'ClassStrList = msgbox.ChoiceAsString(StrList,\"\",\"Поставить стрелки?:\")\n n = 2*mMas 'Длина стрелки\nIf ( StrYes.IsSelected = True) then\n mStrel = TheDialog.FindByName(\"aStr\").GetText.AsNumber\nend\nFor each i in TheGraphics\n i.SetSelected( False )\nend \n'++++ выбор тем для сравнения диаграмм ++++++++++++++++++++++++++++++++++++++++++++++\n\n'themelist = theView.getthemes\n'ThemePtList = List.Make\n'For each t in themelist\n' shapeType = t.GetFTab.FindField(\"Shape\").GetType\n' if (shapeType = #FIELD_SHAPEPOINT) then\n' ThemePtList.Add(t)\n' end\n'End'for\n\n'ClassThemeList = msgbox.ChoiceAsString(ThemePtList,\"Диаграмма\",\"Тема c новыми данными:\")\ntheTheme = newTheme.GetCurrentValue'theView.FindTheme(ClassThemeList.AsString)\ntheFtab = theView.FindTheme(TheTheme.AsString).GetFTab\nIf (VibNo.isSelected = True) then\n TheBitmap = TheFTab.GetDefBitmap\nelse\n TheBitmap = TheFTab.GetSelection\n num_records = T heBitmap.Count\n if (num_records = 0) then\n TheBitmap = theFTab\n end\nend\n'ClassThemeList1 = msgbox.ChoiceAsString(ThemePtList,\"Точки\",\"Тема со старыми данными:\")\ntheTheme1 = oldTheme.GetCurrentValue'theView.FindTheme(ClassThemeList1.AsString)\ntheFtab1 = theView.FindTheme(theTheme1.AsString).GetFTab\nTheBitmap1 = TheFTab1'.GetDefBitmap\n\nList_of_field=theFtab.GetFields\n'ClassFieldList = msgbox.ChoiceAsString(List_of_field,\"для диаграмм\",\"Связь по полю:\").AsString\nClassFieldList = newThemeField.GetCurrentVa lue.ASString\nList_of_field_old=theFtab1.GetFields\n'ClassFieldList_old = msgbox.ChoiceAsString(List_of_field_old,\"для темы со старыми данными (точки)\",\"Связь по полю:\").AsString\nClassFieldList_old = oldThemeField.GetCurrentValue.AsString\n'typeColor = {\"Black\",\"Red\",\"Blue\",\"Yellow\",\"Green\",\"Magenta\",\"Cyan\",\"Gray\"}\n'aColor = msgbox.ChoiceAsString(typeColor,\"\",\"Цвет\")\n'++++++++++++++++++++++++++++++++++++++++++++++\nThePolygonList = GraphicList.Make\n\nGra_list = GraphicList.Make\nGra_list1 = {}\n\nLineSymbol = Basi cPen.Make\nLineSymbol.SetSize(1) \naSymbol = RasterFill.Make\n'If (aColor = \"Black\") then \n LineSymbol.SetColor (Color.GetBlack)\n aSymbol.SetOLColor(Color.GetBlack)\n aSymbol.setcolor(Color.GetBlack)\n'elseif (aColor = \"Red\") then \n' LineSymbol.SetColor (Color.GetRed)\n' aSymbol.SetOLColor(Color.GetRed)\n' aSymbol.setcolor(Color.GetRed)\n'elseif (aColor = \"Blue\") then \n' LineSymbol.SetColor (Color.GetBlue)\n'aSymbol.SetOLColor(Color.GetBlue)\n'aSymbol.setcolor(Color.GetBlue)\n'elseif (aColor = \"Yellow\") then \n' LineSy mbol.SetColor (Color.GetYellow)\n'aSymbol.SetOLColor(Color.GetYellow)\n'aSymbol.setcolor(Color.GetYellow)\n'elseif (aColor = \"Green\") then \n' LineSymbol.SetColor (Color.GetGreen)\n'aSymbol.SetOLColor(Color.GetGreen)\n'aSymbol.setcolor(Color.GetGreen)\n'elseif (aColor = \"Magenta\") then \n' LineSymbol.SetColor (Color.GetMagenta)\n'aSymbol.SetOLColor(Color.GetMagenta)\n'aSymbol.setcolor(Color.GetMagenta)\n'elseif (aColor = \"Cyan\") then \n' LineSymbol.SetColor (Color.GetCyan)\n'aSymbol.SetOLColor(Color.GetCyan)\n'aSymbol.se tcolor(Color.GetCyan)\n'elseif (aColor = \"Gray\") then \n' LineSymbol.SetColor (Color.GetGray)\n'aSymbol.SetOLColor(Color.GetGray)\n'aSymbol.setcolor(Color.GetGray)\n'end\n \n\n'++++ параметры для построения графического элемента на основе диаграммы ++++++++++++++++++++++++++++++++++++++++++++++++\n\ntheLegend = theTheme.GetLegend 'для темы с новыми данными\ntheFieldList = theLegend.GetFieldNames \nNumField = theFieldList.Count 'количество полей\ntheSymbolList = theLegend.GetSymbols\ntheS ym = theLegend.GetSymbol(theLegend.ReturnFieldNames, false)\naMinSize=theSym.GetMinSize\naMaxSize=theSym.GetMaxSize\naColumnWidth=theSym.GetColumnWidth\nhalf_ColumnWidth = 0.5*aColumnWidth*k*mMas\naMinValue = theSym.GetMinValue\naMaxValue = theSym.GetMaxValue \n\nThePolyList = List.Make\nThePolyList_old = List.Make\n\nFor each i in 0..(theFieldList.count-1) 'проверка соответствия полей\n m = TheFTab1.FindField(theFieldList.Get(i).ASString)\n If (m = nil) then\n MsgBox.Info(\"В таблице темы \"+TheTHeme1.GetName .AsString+\" нет поля \"+theFieldList.Get(i).ASString,\"\")\n Exit\n Else\n continue\n end'if\nEnd\n'+++++++++++++++++++++++++++++++++++++++++++++++++++++\nIf (RBLine.IsSelected = True) Then\n\nfor each r in TheBitmap1 'для темы со старыми данными\n\n TheId1 = theFTab1.ReturnValue(theFTab1.FindField(ClassFieldList_old), r).AsString\n\n for each rec in TheBitmap 'для темы с новыми данными\n TheId = theFTab.ReturnValue(theFTab.FindField(ClassFieldList), rec).AsString\n \n If (TheId1 = TheId) then 'если нашла\n\n List_of_value = List.Make 'список значений для данной записи\n For each i in 0..(theFieldList.count-1)\n Fvalue = TheFTab.FindField(theFieldList.Get(i))\n theValue=TheFTab.ReturnValue(Fvalue,rec)\n List_of_value.Add(theValue) \n end'for\n\n aMaxSize_rec=List_of_value.Get(0)'максимальное значение для данной записи\n For each j in 1..(List_of_value.Count-1)\n if (List_of_value.Get(j)>aMaxSize_rec) then\n aMaxSize_rec=List_of_value.Get(j)\n end\n end\n aMaxSize_rec=(aMaxSize_rec)*(((aMaxSize-aMinSize)*k)/(aMaxValue))+(aMinSize*k)\n\n ashape = TheFTab.FindField(\"shape\")\n startptx=TheFTab.ReturnValue(ashape,rec).Getx 'центр диаграммы\n startpty=TheFTab.ReturnValue(ashape,rec).Gety\n \n pt_x = startptx-((((aColumnWidth*NumField)*k)/2)*mMas)'точка левого нижнего угла диаграммы\n pt_y = startpty-(((aMaxSize_rec)/2)*mMas)\n\n pt_x1 = startptx+((((aColumnWidth*NumField)*k)/2)*mMas)\n gt1 = Point.Make(pt_x,pt_y)\n gPt1 = GraphicShape.Ma ke(gt1)\n ThePolyList.Add(gt1)\n ThePolyList_old.Add(gt1)\n\n For each i in 0..(theFieldList.count-1) 'для каждого поля\n \n Fpodp = TheFTab.FindField(theFieldList.Get(i).ASString)\n podp = TheFTab.ReturnValue(Fpodp,rec)\n apodp = (podp)*(((aMaxSize-aMinSize)*k)/(aMaxValue))+(aMinSize*k)'\n\n x = pt_x+(((aColumnWidth*k)*i)*mMas)'для новых данных\n y = pt_y+((apodp)*mMas)\n x1 = pt_x+(((aColumnWidth*k)*(i+1))*mMas)\n x_s = (x+x1)/2 'середина столбца\n\n gt = Point.M ake(x,(y))'точка левого верхнего угла столбца\n gPt = GraphicShape.Make(gt)\n ThePolyList.Add(gt)\n gt_l = Point.Make(x1,(y))'точка правого верхнего угла столбца\n gPt_1 = GraphicShape.Make(gt_l)\n ThePolyList.Add(gt_l)\n \n \n Fpodp_o = TheFTab1.FindField(theFieldList.Get(i).ASString)\n \n podp_o = TheFTab1.ReturnValue(Fpodp_o,r)\n apodp_o = podp_o*(((aMaxSize-aMinSize)*k)/aMaxValue)+(aMinSize*k)'\n\n x_o = pt_x+(((aColumnWidth*k)*i)*mMas) 'для старых данн ых\n y_o = pt_y+((apodp_o)*mMas)\n x1_o = pt_x+(((aColumnWidth*k)*(i+1))*mMas)\n\n gt = Point.Make(x_o,(y_o))'точка левого верхнего угла столбца\n gPt = GraphicShape.Make(gt)\n ThePolyList_old.Add(gt)\n gt_l = Point.Make(x1_o,(y_o))'точка правого верхнего угла столбца\n gPt_1 = GraphicShape.Make(gt_l)\n ThePolyList_old.Add(gt_l)\n \n If (StrYes.IsSelected = True) then 'если нужны стрелки\n\n if ((podp-podp_o)<(-mStrel)) then\n gt1 = Point.Make( x_s,(y))\n gt2 = Point.Make(x_s,(y_o))\n gt1_1 = Point.Make((x_s-(n/4)),(y+(n/3)))\n gt1_2 = Point.Make((x_s+(n/4)),(y+(n/3)))\n gt1_3 = Point.Make((x_s),(y+(n)))\n aLine = Line.Make(gt1,gt1_3)\n gLine = GraphicShape.Make(aLine)\n gLine.SetSymbol(LineSymbol)\n aStr = Polygon.Make({{gt1,gt1_1,gt1_2}})\n gStr = GraphicShape.Make(aStr)\n gStr.SetSymbol(aSymbol)\n Gra_List.Add(gLine)\n Gra_List.Add(gStr)\n end\n if ((podp-podp_o)>(mStrel)) then\n gt1 = Point.Make(x_s,(y))\n gt2 = Point.Make(x_s,(y_o))\n gt1_1 = Point.Make((x_s-(n/4)),(y-(n/3)))\n gt1_2 = Point.Make((x_s+(n/4)),(y-(n/3)))\n gt1_3 = Point.Make((x_s),(y-n))\n aLine = Line.Make(gt1,gt1_3)\n gLine = GraphicShape.Make(aLine)\n gLine.SetSymbol(LineSymbol)\n aStr = Polygon.Make({{gt1,gt1_1,gt1_2}})\n gStr = GraphicShape.Make(aStr)\n gStr.S etSymbol(aSymbol)\n Gra_List.Add(gLine)\n Gra_List.Add(gStr)\n end\n end'если нужны стрелки\n end'для каждого поля\n gt2 = Point.Make(pt_x1,pt_y)'точка правого нижнего угла диаграммы\n gPt2 = GraphicShape.Make(gt2)\n ThePolyList.Add(gt2)\n ThePolyList_old.Add(gt2)\n\n aPoly1 = Polygon.Make({ThePolyList})\n gPoly = GraphicShape.Make(aPoly1)\n 'aSymbol = RasterFill.Make 'старая диаграмма\n 'aSymbol.SetOLColor(Color.GetRed)\n 'aSymbol.setcolor(Color.GetWhite)\n 'g Poly.SetSymbol(aSymbol)\n 'TheGraphics.Add(gPoly)\n ThePolyList.Empty\n aPoly1 = PolyLine.Make({ThePolyList_old})\n gPoly = GraphicShape.Make(aPoly1)\n 'gPoly.SetSymbol(LineSymbol)\n Gra_List.Add(gPoly)\n ThePolyList_old.Empty\n\n end'If'если нашла\n end ' для темы с новыми данными\n\n\nfor each i in Gra_List\n i.SetSelected( TRUE )\nend\n\nGra_List.GroupSelected\n\nFor each h in Gra_List\n Gra_List1.Add(h)\nend\nGra_List.Empty \n\nend 'для темы с старыми данными\nend'если линии\nIf (RBPoly.IsSelected = True) then \nfor each r in TheBitmap1 'для темы со старыми данными\n\n TheId1 = theFTab1.ReturnValue(theFTab1.FindField(ClassFieldList_old), r).AsString\n\n for each rec in TheBitmap 'для темы с новыми данными\n TheId = theFTab.ReturnValue(theFTab.FindField(ClassFieldList), rec).AsString\n \n If (TheId1 = TheId) then 'если нашла\n\n List_of_value = List.Make 'список значений для данной записи\n For each i in 0..(theFieldList.count-1)\n Fvalue = TheFTab.FindField(theFieldList.Get(i))\n the Value=TheFTab.ReturnValue(Fvalue,rec)\n List_of_value.Add(theValue) \n end'for\n\n aMaxSize_rec=List_of_value.Get(0)'максимальное значение для данной записи\n For each j in 1..(List_of_value.Count-1)\n if (List_of_value.Get(j)>aMaxSize_rec) then\n aMaxSize_rec=List_of_value.Get(j)\n end\n end\n aMaxSize_rec=(aMaxSize_rec)*(((aMaxSize-aMinSize)*k)/(aMaxValue))+(aMinSize*k)\n\n ashape = TheFTab.FindField(\"shape\")\n startptx=TheFTab.ReturnValue(ashape,rec).Getx 'центр д иаграммы\n startpty=TheFTab.ReturnValue(ashape,rec).Gety\n \n pt_x = startptx-((((aColumnWidth*NumField)*k)/2)*mMas)'точка левого нижнего угла диаграммы\n pt_y = startpty-(((aMaxSize_rec)/2)*mMas)\n\n pt_x1 = startptx+((((aColumnWidth*NumField)*k)/2)*mMas)\n gt1 = Point.Make(pt_x,pt_y)\n gPt1 = GraphicShape.Make(gt1)\n ThePolyList.Add(gt1)\n 'ThePolyList_old.Add(gt1)\nThePolyList_old = List.Make\n\n For each i in 0..(theFieldList.count-1) 'для каждого поля\n \n Fpodp = TheFTab.FindFiel d(theFieldList.Get(i).ASString)\n podp = TheFTab.ReturnValue(Fpodp,rec)\n apodp = (podp)*(((aMaxSize-aMinSize)*k)/(aMaxValue))+(aMinSize*k)'\n\n x = pt_x+(((aColumnWidth*k)*i)*mMas)'для новых данных\n y = pt_y+((apodp)*mMas)\n x1 = pt_x+(((aColumnWidth*k)*(i+1))*mMas)\n x_s = (x+x1)/2 'середина столбца\n\n gt = Point.Make(x,(y))'точка левого верхнего угла столбца\n gPt = GraphicShape.Make(gt)\n ThePolyList.Add(gt)\n gt_l = Point.Make(x1,(y))'точка правого верх него угла столбца\n gPt_1 = GraphicShape.Make(gt_l)\n ThePolyList.Add(gt_l)\n \n \n Fpodp_o = TheFTab1.FindField(theFieldList.Get(i).ASString)\n \n podp_o = TheFTab1.ReturnValue(Fpodp_o,r)\n apodp_o = podp_o*(((aMaxSize-aMinSize)*k)/aMaxValue)+(aMinSize*k)'\n\n x_o = pt_x+(((aColumnWidth*k)*i)*mMas) 'для старых данных\n y_o = pt_y+((apodp_o)*mMas)\n x1_o = pt_x+(((aColumnWidth*k)*(i+1))*mMas)\n\n gt_3 = Point.Make(x_o,(pt_y))'точка левого нижнего угла столбца \n gPt_3 = GraphicShape.Make(gt_3)\n ThePolyList_old.Add(gt_3)\n gt = Point.Make(x_o,(y_o))'точка левого верхнего угла столбца\n gPt = GraphicShape.Make(gt)\n ThePolyList_old.Add(gt)\n gt_l = Point.Make(x1_o,(y_o))'точка правого верхнего угла столбца\n gPt_1 = GraphicShape.Make(gt_l)\n ThePolyList_old.Add(gt_l)\n gt_2 = Point.Make(x1_o,(pt_y))'точка правого нижнего угла столбца\n gPt_2 = GraphicShape.Make(gt_2)\n ThePolyList_old.Add(gt_2)\n aPoly0 = Polygon.Make({ThePolyList_old})\n gPoly0 = GraphicShape.Make(aPoly0)\n ThePolygonList.Add(gPoly0)\n ThePolyList_old.Empty\n\n\n \n If (StrYes.IsSelected = True) then 'если нужны стрелки\n\n if ((podp-podp_o)<(-mStrel)) then\n gt1 = Point.Make(x_s,(y))\n gt2 = Point.Make(x_s,(y_o))\n gt1_1 = Point.Make((x_s-(n/4)),(y+(n/3)))\n gt1_2 = Point.Make((x_s+(n/4)),(y+(n/3)))\n gt1_3 = Point.Make((x_s),(y+(n)))\n aLine = Line.Make(g t1,gt1_3)\n gLine = GraphicShape.Make(aLine)\n gLine.SetSymbol(LineSymbol)\n aStr = Polygon.Make({{gt1,gt1_1,gt1_2}})\n gStr = GraphicShape.Make(aStr)\n gStr.SetSymbol(aSymbol)\n Gra_List.Add(gLine)\n Gra_List.Add(gStr)\n end\n if ((podp-podp_o)>(mStrel)) then\n gt1 = Point.Make(x_s,(y))\n gt2 = Point.Make(x_s,(y_o))\n gt1_1 = Point.Make((x_s-(n/4)),(y-(n/3)))\n gt1_2 = Point.Make((x_s+(n/4)),(y-(n /3)))\n gt1_3 = Point.Make((x_s),(y-n))\n aLine = Line.Make(gt1,gt1_3)\n gLine = GraphicShape.Make(aLine)\n gLine.SetSymbol(LineSymbol)\n aStr = Polygon.Make({{gt1,gt1_1,gt1_2}})\n gStr = GraphicShape.Make(aStr)\n gStr.SetSymbol(aSymbol)\n Gra_List.Add(gLine)\n Gra_List.Add(gStr)\n end\n end'если нужны стрелки\n end'для каждого поля\n 'gt2 = Point.Make(pt_x1,pt_y)'точка правого нижнего угла диаграммы\n 'gPt2 = Graph icShape.Make(gt2)\n 'ThePolyList.Add(gt2)\n 'ThePolyList_old.Add(gt2)\n\n aPoly1 = Polygon.Make({ThePolyList})\n gPoly = GraphicShape.Make(aPoly1)\n 'aSymbol = RasterFill.Make \n 'aSymbol.SetOLColor(Color.GetRed)\n 'aSymbol.setcolor(Color.GetWhite)\n 'gPoly.SetSymbol(aSymbol)\n 'TheGraphics.Add(gPoly)\n ThePolyList.Empty\n aPoly1 = Polygon.Make({ThePolyList_old})\n gPoly = GraphicShape.Make(aPoly1)\n 'gPoly.SetSymbol(LineSymbol)\n 'Gra_List.Add(gPoly)\n ThePolyList_old.Empt y\n\n end'If'если нашла\n end ' для темы с новыми данными\n\nfor each i in ThePolygonList\n i.SetSelected( TRUE )\nend\n\nThePolygonList.GroupSelected\n\nFor each h in ThePolygonList\n Gra_List1.Add(h)\nend\nThePolygonList.Empty \n\nfor each i in Gra_List\n i.SetSelected( TRUE )\nend\n\nGra_List.GroupSelected\n\nFor each h in Gra_List\n Gra_List1.Add(h)\nend\nGra_List.Empty \n\nend 'для темы с старыми данными\n\nEnd'если полигоны \n'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nFor each h in Gra_Lis t1\n TheGraphics.Add(h)\nend\n\nTheTheme1.GetGraphics.Merge(Gra_List1)\nTheTheme1.GetGraphics.SetVisible(theTheme.IsVisible)\nTheTheme1.GetGraphics.Invalidate \n\ntheGraphics.Invalidate \ntheGraphics.UnSelectAll\n\n'+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n" ) (Script.62 Name: "olddata.OpenDialog" SourceCode: "theView=av.GetActiveDoc\ntheScale = TheView.ReturnScale\n_aV = theView.GetName\nthemelist = theView.getthemes\nThemeDiagList = List.Make\nFor each t in themelist\nLegType = t.GetLegend.GetLegendType \n if (LegType = #LEGEND_TYPE_CHART) then\n ThemeDiagList.Add(t)\n end\nEnd'for\n\nThemePtList = List.Make\nFor each t in themelist\n shapeType = t.GetFTab.FindField(\"Shape\").GetType\n if (shapeType = #FIELD_SHAPEPOINT) then\n ThemePtList.Add(t)\n end\nEnd'for\n\n\nTheDialog = av.FindDialog(\"olddata\")\nAVUpperL eft = av.ReturnOrigin \nAVCenter = avUpperLeft + (av.ReturnExtent / (2@2)) \nhalfDialogWidthHeight = TheDialog.ReturnExtent.ReturnSize / (2@2) \nMovePoint = AVCenter - halfDialogWidthHeight \nTheDialog.MoveTo(MovePoint.GetX, MovePoint.GetY)\n\naMas = TheDialog.FindByName(\"aMas\")\naMas.SetText(theScale.AsString)\n\nStrYes = TheDialog.FindByName(\"StrYes\") \nStrNo = TheDialog.FindByName(\"StrNo\")\nmStr = TheDialog.FindByName(\"aStr\")\nmStr.SetVisible(False)\nVibYes = TheDialog.FindByName(\"VibYes\") \nVibNo = TheD ialog.FindByName(\"VibNo\") \nRBLine = TheDialog.FindByName(\"RBLine\") \nRBPoly = TheDialog.FindByName(\"RbPoly\") \naStr = TheDialog.FindByName(\"aStr\") \nnewTheme = TheDialog.FindByName(\"NewTheme\") \nOldTheme = TheDialog.FindByName(\"OldTheme\") \nnewThemeField = TheDialog.FindByName(\"NewThemeField\") \nOldThemeField = TheDialog.FindByName(\"OldThemeField\") \nStrNo.Select\nVibNo.Select\nRBLine.Select\nNewTheme.DefineFromlist(ThemeDiagList)\nOldTheme.DefineFromlist(ThemePtList)\nFieldList1 = {}\nFieldList2 = {}\nNewThemeField.Defi neFromlist(FieldList1)\nOldThemeField.DefineFromlist(FieldList2)\n\nthedialog.Open\n" ) (Script.63 Name: "olddata.selfield" SourceCode: "TheView=av.FindDoc(_aV)\nTheDial = av.FindDialog(\"olddata\")\n\n'theDial = self.getdialog\n\nnewTheme = TheDial.FindByName(\"NewTheme\")\nnewThemeValue = newTheme.GetCurrentValue\n\ntheFieldListnew = theView.FindTheme(newThemevalue.AsString).GetFTab.GetFields\n\nnewThemeField = TheDial.FindByName(\"NewThemeField\")\nNewThemeField.DefineFromlist(theFieldListnew)\n\n" ) (Script.64 Name: "olddata.selField2" SourceCode: "TheView=av.FindDoc(_aV)\nTheDial = av.FindDialog(\"olddata\")\n\n'theDial = self.getdialog\n\noldTheme = TheDial.FindByName(\"OldTheme\")\noldThemeValue = oldTheme.GetCurrentValue\n\ntheFieldListold = thevIEW.FindTheme(oldThemevalue.AsString).GetFTab.GetFields\n\noldThemeField = TheDial.FindByName(\"OldThemeField\")\nOldThemeField.DefineFromlist(theFieldListold)\n\n" ) (Script.65 Name: "olddata.selstr" SourceCode: "theDial = self.getdialog\n\nstrYes = TheDial.FindByName(\"strYes\")\nstrNo = TheDial.FindByName(\"strNo\")\nastr = TheDial.FindByName(\"astr\")\n\n\n\nif (strYes.IsSelected = true) then\n aStr.setVisible(True)\nelseif (strYes.IsSelected = false) then\n aStr.setVisible(False)\nend\n\n\n\n" ) (Script.66 Name: "olddata.Update" SourceCode: "if(av.GetProject=nil) then\n return nil\nend\n\nif(av.GetProject.IsClosing) then\n return nil\n end\naMenu = av.FindGUI( \"View\").GetButtonBar\n aChoice=aMenu.FindByScript (\"olddata.OpenDialog\")\n if (aChoice<>nil)then\n aMenu.Remove(aChoice)\n end\n \n" ) (Script.67 Name: "olddataExt.Unload" SourceCode: "Dialog.DetachFromExtension(self)\nif(av.GetProject=nil) then\n return nil\nend\n\nif(av.GetProject.IsClosing) then\n return nil\n end\naMenu = av.FindGUI( \"View\").GetButtonBar\n aChoice=aMenu.FindByScript (\"olddata.OpenDialog\")\n if (aChoice<>nil)then\n aMenu.Remove(aChoice)\n end\naMenu.Update \n'aMenuList = av.FindGUI( \"View\").GetMenuBar.GetControls\n'For each h in 0..(aMenuList.count-1)\n' aName=av.FindGUI( \"View\").GetMenuBar.GetControls.Get(h).GetLabel\n' if (aName=\"MyExt\") then\n' aMenu=av .FindGUI( \"View\").GetMenuBar.GetControls.Get(h)\n' aChoice=aMenu.FindByScript (\"olddata.OpenDialog\")\n' if (aChoice<>nil)then\n' aMenu.Remove(aChoice)\n' end\n' \n' end\n'end\n" ) (Script.68 Name: "olddataExt.Install" SourceCode: "'olddataExt.Install\n\nif (av.GetProject = nil) then\n return nil\nend\naMenu=av.FindGUI( \"View\").GetButtonBar\naButton = aMenu.FindByScript(\"olddata.OpenDialog\")\nif (aButton = nil) then\n\n newButton = Button.Make\n newButton.SetIcon( IconMgr.GetIcons.Get(30))\n newButton.SetClick( \"olddata.OpenDialog\" )\n newButton.SetHelp( \"Compare diagram with old data//Сравнение диаграмм со старыми данными\" )\n\n\n ' Add the button to the ButtonBar\n aMenu.Add( newButton, -1 )\n\nend\n\n\n'aMenu=av.FindGUI( \"View\").GetMenuBar.FindB yLabel(\"MyExt\")\n'if (aMenu = nil) then\n' amenu=Menu.Make\n' amenu.SetLabel(\"MyExt\")\n' av.FindGUI( \"View\").GetMenuBar.Add(amenu,10) \n'end\n\n' newchoice=aMenu.FindByLabel(\"Конвертирование тем\")\n'if (newchoice = nil) then\n' newchoice=Choice.Make\n' newchoice.SetLabel(\"Конвертирование тем\")\n' newchoice.SetClick(\"olddata.OpenDialog\")\n' aMenu.Add(newchoice,0)\n'end\n\n" )