mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-12 00:45:40 +02:00
3639 lines
131 KiB
ObjectPascal
3639 lines
131 KiB
ObjectPascal
unit U_InterfaceInfo;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Contnrs, Forms,
|
||
Dialogs, ExtDlgs, ExtCtrls, RzPanel, ComCtrls,
|
||
|
||
U_BaseConstants, U_SCSComponent, U_SCSLists, U_SCSClasses, U_BaseCommon, U_Common, cxLookAndFeelPainters, StdCtrls, cxButtons, cxStyles,
|
||
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
|
||
cxDBData, cxGridLevel, cxClasses, cxControls, cxGridCustomView,
|
||
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
|
||
RzSplit, cxCheckBox, cxSpinEdit, cxCurrencyEdit, cxColorComboBox,
|
||
kbmMemTable, siComp, siLngLnk, exgrid, RapTree, RzTabs, FlytreePro,
|
||
RzButton, RzRadChk, cxImage, cxTextEdit, cxMemo, cxGridBandedTableView,
|
||
cxGridDBBandedTableView, cxDBLookupComboBox, ToolWin, ActnList, Menus,
|
||
XPMenu, ImgList, XLSFile, XLSWorkbook, XLSFormat, ShellApi,
|
||
U_Cad, DrawObjects,
|
||
U_FilterConfigurator, {Tolik -- 13/05/2017 }U_Constants, cxLookAndFeels,
|
||
cxNavigator, FlyTree;
|
||
|
||
const
|
||
//*** Band Index
|
||
biNormData = 0;
|
||
biComponData = 1;
|
||
|
||
{// FilterFieldIndexes
|
||
ffFunctionalInterface = 1;
|
||
ffPort = 2;
|
||
ffConnected = 3;
|
||
ffNoConnected = 4; }
|
||
|
||
type
|
||
TInterfaceInfoMode = (iimNone,
|
||
iimConnectedLineCompons,
|
||
iimDisconnectedLineCompons,
|
||
iimConnectedConObjects,
|
||
iimDisconnectedConObjects,
|
||
iimCablesNoInCanals,
|
||
|
||
iimNormComponents,
|
||
// added by Tolik
|
||
iimCableSwerves,
|
||
iimNoConnectedRoutes);
|
||
|
||
//14.11.2013
|
||
//TNormNodeData = class
|
||
// public
|
||
// FGUIDNorm: string;
|
||
// FNormComponents: TSCSObjectList;
|
||
// constructor Create;
|
||
// destructor Destroy; override;
|
||
//end;
|
||
|
||
|
||
|
||
TF_InterfaceInfo = class(TForm)
|
||
Panel_Bottom: TRzPanel;
|
||
gbTreeView: TRzGroupBox;
|
||
Button_Close: TcxButton;
|
||
MemTable_Interfaces: TkbmMemTable;
|
||
DataSource_Interfaces: TDataSource;
|
||
Splitter: TSplitter;
|
||
lng_Forms: TsiLangLinked;
|
||
pcTreeData: TRzPageControl;
|
||
tsInterfaces: TRzTabSheet;
|
||
tsComponents: TRzTabSheet;
|
||
GroupBox_Interfaces: TRzGroupBox;
|
||
Grid_Interfaces: TcxGrid;
|
||
GT_Interfaces: TcxGridDBTableView;
|
||
GT_InterfacesNpp: TcxGridDBColumn;
|
||
GT_InterfacesName: TcxGridDBColumn;
|
||
GT_InterfacesKolvo: TcxGridDBColumn;
|
||
GT_InterfacesKolvoBusy: TcxGridDBColumn;
|
||
GT_InterfacesType: TcxGridDBColumn;
|
||
GT_InterfacesGender: TcxGridDBColumn;
|
||
GT_InterfacesisBusy: TcxGridDBColumn;
|
||
GT_InterfacesMultiple: TcxGridDBColumn;
|
||
GT_InterfacesValueI: TcxGridDBColumn;
|
||
GT_InterfacesCoordZ: TcxGridDBColumn;
|
||
GT_InterfacesNumPair: TcxGridDBColumn;
|
||
GT_InterfacesColor: TcxGridDBColumn;
|
||
GT_InterfacesSide: TcxGridDBColumn;
|
||
GT_InterfacesSignType: TcxGridDBColumn;
|
||
GL_Interfaces: TcxGridLevel;
|
||
RzGroupBox1: TRzGroupBox;
|
||
Grid_Components: TcxGrid;
|
||
GT_Components_: TcxGridDBTableView;
|
||
GL_Components_: TcxGridLevel;
|
||
GT_Components_IsOn: TcxGridDBColumn;
|
||
GT_Components_Name: TcxGridDBColumn;
|
||
GT_Components_SignType: TcxGridDBColumn;
|
||
GT_Components_IsDismount: TcxGridDBColumn;
|
||
GT_Components_IsUseDismounted: TcxGridDBColumn;
|
||
mtComponents: TkbmMemTable;
|
||
dsrcComponents: TDataSource;
|
||
RzPanel1: TRzPanel;
|
||
cbSelectComponInCAD: TRzCheckBox;
|
||
GL_Components: TcxGridLevel;
|
||
GT_Components: TcxGridDBBandedTableView;
|
||
GT_ComponentsIsOn: TcxGridDBBandedColumn;
|
||
GT_ComponentsName: TcxGridDBBandedColumn;
|
||
GT_ComponentsSignType: TcxGridDBBandedColumn;
|
||
GT_ComponentsIsDismount: TcxGridDBBandedColumn;
|
||
GT_ComponentsIsUseDismounted: TcxGridDBBandedColumn;
|
||
GT_ComponentsKolvo: TcxGridDBBandedColumn;
|
||
GT_ComponentsExpenseForLength: TcxGridDBBandedColumn;
|
||
mtSignTypes: TkbmMemTable;
|
||
dsrcSignTypes: TDataSource;
|
||
Timer_PostNormComponents: TTimer;
|
||
Timer_TreeViewChange: TTimer;
|
||
tbNormCompons: TToolBar;
|
||
ToolButton1: TToolButton;
|
||
ToolButton2: TToolButton;
|
||
ActionList: TActionList;
|
||
Act_AddNorm: TAction;
|
||
Act_DelNorm: TAction;
|
||
pmNormCompons: TPopupMenu;
|
||
N1: TMenuItem;
|
||
N2: TMenuItem;
|
||
tbTreeView: TToolBar;
|
||
ToolButton3: TToolButton;
|
||
Act_Filter: TAction;
|
||
spTreeWithFilter: TRzSplitter;
|
||
ilState: TImageList;
|
||
ToolButton4: TToolButton;
|
||
Act_FilterProperties: TAction;
|
||
ToolButton5: TToolButton;
|
||
ToolButton6: TToolButton;
|
||
gbFilter: TRzGroupBox;
|
||
lbFilter: TLabel;
|
||
Act_SaveToExcel: TAction;
|
||
ToolButton7: TToolButton;
|
||
GT_ComponentsCountForPoint: TcxGridDBBandedColumn;
|
||
GT_ComponentsStepOfPoint: TcxGridDBBandedColumn;
|
||
pnUseFilterInCAD: TPanel;
|
||
cbUseFilterInCAD: TRzCheckBox;
|
||
GT_ComponentsLaborTime: TcxGridDBBandedColumn;
|
||
GT_ComponentsPricePerTime: TcxGridDBBandedColumn;
|
||
GT_ComponentsCost: TcxGridDBBandedColumn;
|
||
RzPanel2: TRzPanel;
|
||
RzPageControl1: TRzPageControl;
|
||
TabSheet1: TRzTabSheet;
|
||
TreeView2: TFlyTreeViewPro;
|
||
TabSheet2: TRzTabSheet;
|
||
TreeView1: TFlyTreeViewPro;
|
||
TreeView: TFlyTreeViewPro;
|
||
Act_DelCompons: TAction;
|
||
Act_DeleteAllCompons: TAction;
|
||
PopupMenu1: TPopupMenu;
|
||
N3: TMenuItem;
|
||
N4: TMenuItem;
|
||
ToolButton8: TToolButton;
|
||
ToolButton9: TToolButton;
|
||
procedure TreeView_GetSelectedIndex(Sender: TObject; Node: TTreeNode);
|
||
procedure FormHide(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure TreeView_Change(Sender: TObject; Node: TTreeNode);
|
||
procedure GT_InterfacesTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_InterfacesGenderGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_InterfacesCoordZGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_InterfacesNumPairGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_InterfacesSideGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_InterfacesFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure Panel_BottomResize(Sender: TObject);
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure TreeViewChange(Sender: TObject; Node: TFlyNode);
|
||
procedure TreeViewGetNodeAttributes(Node: TFlyNode; Column: Integer;
|
||
aFont: TFont; var BackColor: TColor; var Alignment: TAlignment);
|
||
procedure GT_Components_SignTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_Components_FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure GT_ComponentsSignTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_ComponentsEditValueChanged(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem);
|
||
procedure GT_ComponentsFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure Timer_PostNormComponentsTimer(Sender: TObject);
|
||
procedure Timer_TreeViewChangeTimer(Sender: TObject);
|
||
procedure Act_AddNormExecute(Sender: TObject);
|
||
procedure Act_DelNormExecute(Sender: TObject);
|
||
procedure TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
|
||
State: TDragState; var Accept: Boolean);
|
||
procedure TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
|
||
procedure GT_ComponentsExpenseForLengthGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_ComponentsExpenseForLengthPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ComponentsInitEdit(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
||
procedure Act_FilterExecute(Sender: TObject);
|
||
procedure Act_FilterPropertiesExecute(Sender: TObject);
|
||
procedure ToolButton5Click(Sender: TObject);
|
||
procedure ToolButton6Click(Sender: TObject);
|
||
procedure TreeViewExpanding(Sender: TObject; Node: TFlyNode;
|
||
var AllowExpansion: Boolean);
|
||
procedure Act_SaveToExcelExecute(Sender: TObject);
|
||
procedure GT_ComponentsCountForPointPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ComponentsStepOfPointGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_ComponentsStepOfPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ComponentsKolvoPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure cbUseFilterInCADClick(Sender: TObject);
|
||
procedure GT_ComponentsLaborTimePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ComponentsLaborTimeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_ComponentsCostPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ComponentsPricePerTimePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure TabSheet1Enter(Sender: TObject);
|
||
procedure TabSheet2Enter(Sender: TObject);
|
||
procedure RzPageControl1Change(Sender: TObject);
|
||
procedure Act_DelComponsExecute(Sender: TObject);
|
||
procedure Act_DeleteAllComponsExecute(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
FEditedBandIndex: Integer;
|
||
FEditedFieldName: string;
|
||
FSimpleCaption: String;
|
||
FObject: TObject;
|
||
FChanged: Boolean;
|
||
|
||
FFilteType: Integer;
|
||
FFilteTypeFile: Integer;
|
||
FFilterBlock: TFilterBlock;
|
||
FFilterFieldValues: TObjectList;
|
||
//FFilterInfo: TFilterInfo;
|
||
|
||
FOldFilterValue: string;
|
||
FOldFilterUseInCAD: Boolean;
|
||
|
||
procedure AddNormSCSObjComponToMT(ASCSObjCompon: TSCSComponCatalogClass; ANorm: TSCSNorm);
|
||
procedure AddNormToCurrComponInMT(ANorm: TSCSNorm);
|
||
procedure ApplyFilter(AOldFilterBlock: TFilterBlock);
|
||
procedure ApplyFilterToCAD(AFormMode: TInterfaceInfoMode);
|
||
procedure ClearTree;
|
||
function GetFilterTypeByFormMode(AForFile: Boolean): Integer;
|
||
function GetNodeByNormGUIDNB(AGUID: String): TFlyNode;
|
||
function GetNodeWithComponsWithoutNorms: TFlyNode;
|
||
function IsVisibleComponByFilter(AComponent: TSCSComponent): Boolean;
|
||
function IsVisibleNodeByFilter(ANode: TFlyNode; ARecursive: Boolean): Boolean;
|
||
procedure LoadFilterBlockFromProject;
|
||
procedure LoadFilterFieldValues;
|
||
procedure ReloadNodes;
|
||
procedure SaveFilterToProject;
|
||
procedure SaveSelectedNormResource;
|
||
procedure SetControls;
|
||
procedure SetFilterControls;
|
||
procedure ShowPCTreeData(AShow: Boolean; AActivePage: TRzTabSheet);
|
||
procedure UpdateComponentsParamsInMT;
|
||
public
|
||
GForm: TForm;
|
||
|
||
GFormMode: TInterfaceInfoMode;
|
||
|
||
constructor Create(AOwner: TComponent; AForm: TForm);
|
||
destructor Destroy; override;
|
||
|
||
procedure Execute(AFormMode: TInterfaceInfoMode; AObject: TObject);
|
||
procedure LoadNormObjects(AGroupNorm: TSCSNorm; AObjsCompons: TSCSObjectList);
|
||
procedure LoadInterfaces(ALineComponent: TIntList);
|
||
procedure EnableDisableTreeViewPopup;
|
||
end;
|
||
|
||
//var
|
||
//F_InterfaceInfo: TF_InterfaceInfo;
|
||
|
||
implementation
|
||
Uses U_Main, Unit_DM_SCS, USCS_Main;
|
||
{$R *.dfm}
|
||
|
||
{ TNormNodeData }
|
||
|
||
//constructor TNormNodeData.Create;
|
||
//begin
|
||
//end;
|
||
//destructor TNormNodeData.Destroy;
|
||
//begin
|
||
// inherited;
|
||
//end;
|
||
|
||
|
||
{ TF_InterfaceInfo }
|
||
|
||
procedure TF_InterfaceInfo.AddNormSCSObjComponToMT(ASCSObjCompon: TSCSComponCatalogClass; ANorm: TSCSNorm);
|
||
var
|
||
NormIsOn: Integer;
|
||
NormKolvo: Double;
|
||
NormExpenseForLength: Double;
|
||
NormCountForPoint: Double;
|
||
NormStepOfPoint: Double;
|
||
|
||
NormIsFromInterface: Integer;
|
||
SCSComponent: TSCSComponent;
|
||
SCSCatalog: TSCSCatalog;
|
||
Norm: TSCSNorm;
|
||
begin
|
||
SCSComponent := nil;
|
||
SCSCatalog := nil;
|
||
if ASCSObjCompon is TSCSComponent then
|
||
SCSComponent := TSCSComponent(ASCSObjCompon)
|
||
else if ASCSObjCompon is TSCSCatalog then
|
||
SCSCatalog := TSCSCatalog(ASCSObjCompon);
|
||
Norm := ANorm;
|
||
|
||
NormIsOn := biFalse;
|
||
NormKolvo := 0;
|
||
NormExpenseForLength := 0;
|
||
NormCountForPoint := 0;
|
||
NormStepOfPoint := 0;
|
||
NormIsFromInterface := biFalse;
|
||
if Norm <> nil then
|
||
begin
|
||
NormIsOn := Norm.IsOn;
|
||
NormKolvo := Norm.Kolvo;
|
||
NormExpenseForLength := Norm.ExpenseForLength;
|
||
NormCountForPoint := Norm.CountForPoint;
|
||
NormStepOfPoint := Norm.StepOfPoint;
|
||
NormIsFromInterface := Norm.IsFromInterface
|
||
end;
|
||
|
||
mtComponents.Append;
|
||
mtComponents.FieldByName(fnIsOn).AsInteger := NormIsOn;
|
||
mtComponents.FieldByName(fnKolvo).AsFloat := RoundX(NormKolvo, PrecisionNormKolvo);
|
||
mtComponents.FieldByName(fnExpenseForLength).AsFloat := RoundCP(NormExpenseForLength);
|
||
mtComponents.FieldByName(fnCountForPoint).AsFloat := RoundCP(NormCountForPoint);
|
||
mtComponents.FieldByName(fnStepOfPoint).AsFloat := RoundCP(NormStepOfPoint);
|
||
mtComponents.FieldByName(fnIsFromInterface).AsInteger := NormIsFromInterface;
|
||
//15.11.2013
|
||
if Norm <> nil then
|
||
begin
|
||
mtComponents.FieldByName(fnLaborTime).AsInteger := Norm.LaborTime;
|
||
mtComponents.FieldByName(fnPricePerTime).AsFloat := RoundCP(Norm.PricePerTime);
|
||
mtComponents.FieldByName(fnCost).AsFloat := RoundCP(Norm.Price);
|
||
end;
|
||
|
||
if SCSComponent <> nil then
|
||
begin
|
||
mtComponents.FieldByName(fnID).AsInteger := SCSComponent.ID;
|
||
mtComponents.FieldByName(fnName).AsString := SCSComponent.GetNameForVisible;
|
||
mtComponents.FieldByName(fnIsLine).AsInteger := SCSComponent.IsLine;
|
||
mtComponents.FieldByName(fnSignType).AsInteger := SCSComponent.GetPropertyValueAsInteger(pnSignType);
|
||
mtComponents.FieldByName(fnIsDismount).AsInteger := SCSComponent.IsDismount;
|
||
mtComponents.FieldByName(fnIsUseDismounted).AsInteger := SCSComponent.IsUseDismounted;
|
||
end
|
||
else if SCSCatalog <> nil then
|
||
begin
|
||
mtComponents.FieldByName(fnName).AsString := SCSCatalog.GetNameForVisible;
|
||
end;
|
||
mtComponents.FieldByName(fnComponObjectAddress).AsInteger := Integer(ASCSObjCompon);
|
||
mtComponents.FieldByName(fnNormObjectAddress).AsInteger := Integer(Norm);
|
||
mtComponents.Post;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.AddNormToCurrComponInMT(ANorm: TSCSNorm);
|
||
var
|
||
SCSObjCompon: TSCSComponCatalogClass;
|
||
NormFromCompon: TSCSNorm;
|
||
NormFromNode: TSCSNorm;
|
||
NormNode: TFlyNode;
|
||
NodeWithComponsWithoutNorms: TFlyNode;
|
||
begin
|
||
SCSObjCompon := nil;
|
||
if mtComponents.Active and (mtComponents.RecordCount > 0) then
|
||
SCSObjCompon := TSCSComponCatalogClass(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
|
||
if SCSObjCompon <> nil then
|
||
begin
|
||
NormNode := GetNodeByNormGUIDNB(ANorm.GuidNB);
|
||
NormFromNode := nil;
|
||
if NormNode = nil then
|
||
begin
|
||
NormFromNode := TSCSNorm.Create(GForm, ntProj);
|
||
NormFromNode.Assign(ANorm);
|
||
|
||
NormNode := TreeView.Items.Add(nil, NormFromNode.Name);
|
||
NormNode.Data := NormFromNode;
|
||
NormNode.ImageIndex := -1;
|
||
NormNode.SelectedIndex := -1;
|
||
end
|
||
else
|
||
NormFromNode := TSCSNorm(NormNode.Data);
|
||
if NormFromNode <> nil then
|
||
begin
|
||
ANorm.MasterTableKind := GetTableKindBySCSTreeElType(SCSObjCompon.TreeElementType); //13.11.2013 ctkComponent
|
||
ANorm.IDMaster := SCSObjCompon.ID;
|
||
SCSObjCompon.NormsResources.Norms.Add(ANorm);
|
||
ANorm.SaveNormAsNew(ANorm.IDMaster);
|
||
|
||
if SCSObjCompon is TSCSComponent then
|
||
if GetPreyscurantFromNormByCompon(NormFromNode, TSCSComponent(SCSObjCompon)) = nil then
|
||
AddPreyscurantToNorm(NormFromNode, TSCSComponent(SCSObjCompon), itConstructive);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if TreeView.Selected = NormNode then
|
||
AddNormSCSObjComponToMT(SCSObjCompon, ANorm);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD> <20><><EFBFBD><EFBFBD>", <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
NodeWithComponsWithoutNorms := GetNodeWithComponsWithoutNorms;
|
||
if NodeWithComponsWithoutNorms <> nil then
|
||
if TreeView.Selected = NodeWithComponsWithoutNorms then
|
||
begin
|
||
//TSCSComponents(NodeWithComponsWithoutNorms.Data).Remove(SCSObjCompon);
|
||
TSCSObjectList(NodeWithComponsWithoutNorms.Data).Remove(SCSObjCompon);
|
||
mtComponents.Delete;
|
||
end;
|
||
end;
|
||
SetControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ApplyFilter(AOldFilterBlock: TFilterBlock);
|
||
begin
|
||
try
|
||
if Not IsEqualFilterBlocks(AOldFilterBlock, FFilterBlock) then
|
||
ReloadNodes;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.ApplyFilter', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ApplyFilterToCAD(AFormMode: TInterfaceInfoMode);
|
||
var
|
||
CurrFilterValue: string;
|
||
CurrFilterUseInCAD: Boolean;
|
||
|
||
FilterInfo: TFilterInfo;
|
||
|
||
CanApply: Boolean;
|
||
begin
|
||
if pnUseFilterInCAD.Visible then
|
||
begin
|
||
CurrFilterValue := '';
|
||
CurrFilterUseInCAD := false;
|
||
|
||
FilterInfo := TF_Main(GForm).GSCSBase.CurrProject.GetFilterInfoByType(FFilteType);
|
||
if FilterInfo <> nil then
|
||
begin
|
||
CurrFilterValue := FilterInfo.FilterValue;
|
||
CurrFilterUseInCAD := FilterInfo.UseInCAD;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
CanApply := false;
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> (<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
if (CurrFilterUseInCAD or (CurrFilterUseInCAD <> FOldFilterUseInCAD)) and
|
||
(CurrFilterValue <> FOldFilterValue) then
|
||
CanApply := true
|
||
else
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if CurrFilterUseInCAD <> FOldFilterUseInCAD then
|
||
CanApply := true;
|
||
|
||
if CanApply then
|
||
begin
|
||
if FObject <> nil then
|
||
if FObject is TSCSCatalog then
|
||
begin
|
||
BeginProgress;
|
||
try
|
||
if AFormMode = iimConnectedConObjects then
|
||
DefineChildObjectsFullness(TSCSCatalog(FObject), itSCSConnector)
|
||
else
|
||
if AFormMode = iimConnectedLineCompons then
|
||
DefineChildObjectsFullness(TSCSCatalog(FObject), itSCSLine)
|
||
finally
|
||
EndProgress;
|
||
end;
|
||
end;
|
||
SetStatusFilteredConnectedObjToCAD(0);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ClearTree;
|
||
var
|
||
i: Integer;
|
||
begin
|
||
TreeView.OnChange := nil;
|
||
try
|
||
{case GFormMode of
|
||
iimConnectedConObjects, iimDisconnectedConObjects, iimConnectedLineCompons, iimDisconnectedLineCompons:
|
||
begin
|
||
for i := 0 to TreeView.Items.Count - 1 do
|
||
FreeMem(TreeView.Items[i].Data);
|
||
end;
|
||
iimNormComponents:
|
||
;
|
||
end;}
|
||
TreeView.Items.Clear;
|
||
finally
|
||
TreeView.OnChange := TreeViewChange;
|
||
end;
|
||
end;
|
||
|
||
function TF_InterfaceInfo.GetFilterTypeByFormMode(AForFile: Boolean): Integer;
|
||
begin
|
||
Result := ftNone;
|
||
if AForFile then
|
||
begin
|
||
case GFormMode of
|
||
{iimConnectedLineCompons:
|
||
Result := ftConnectedLineCompons;
|
||
iimDisconnectedLineCompons:
|
||
Result := ftDisconnectedLineCompons;
|
||
iimConnectedConObjects:
|
||
Result := ftConnectedConObjects;
|
||
iimDisconnectedConObjects:
|
||
Result := ftDisconnectedConObjects;}
|
||
iimConnectedLineCompons, iimDisconnectedLineCompons,
|
||
iimConnectedConObjects, iimDisconnectedConObjects:
|
||
Result := ftConnDisconnCompons;
|
||
iimCablesNoInCanals:
|
||
Result := ftCablesNoInCanals;
|
||
//added by Tolik
|
||
iimCableSwerves:
|
||
Result := ftCableSwerves;
|
||
iimNoConnectedRoutes:
|
||
Result := ftNoConnectedRoutes;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
case GFormMode of
|
||
iimConnectedLineCompons:
|
||
Result := ftConnectedLineCompons;
|
||
iimDisconnectedLineCompons:
|
||
Result := ftDisconnectedLineCompons;
|
||
iimConnectedConObjects:
|
||
Result := ftConnectedConObjects;
|
||
iimDisconnectedConObjects:
|
||
Result := ftDisconnectedConObjects;
|
||
iimCablesNoInCanals:
|
||
Result := ftCablesNoInCanals;
|
||
//added by Tolik
|
||
iimCableSwerves:
|
||
Result := ftCableSwerves;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.UpdateComponentsParamsInMT;
|
||
var
|
||
// StrBookMark: string;
|
||
StrBookMark: TBookMArk;
|
||
SCSObjCompon: TSCSComponCatalogClass;
|
||
SCSComponent: TSCSComponent;
|
||
begin
|
||
//StrBookMark := mtComponents.Bookmark;
|
||
StrBookMark := mtComponents.getBookmark;
|
||
mtComponents.DisableControls;
|
||
try
|
||
mtComponents.First;
|
||
while Not mtComponents.Eof do
|
||
begin
|
||
SCSObjCompon := TSCSComponCatalogClass(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
if SCSObjCompon <> nil then
|
||
if SCSObjCompon is TSCSComponent then
|
||
begin
|
||
SCSComponent := TSCSComponent(SCSObjCompon);
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnSignType).AsInteger := SCSComponent.GetPropertyValueAsInteger(pnSignType);
|
||
mtComponents.FieldByName(fnIsDismount).AsInteger := SCSComponent.IsDismount;
|
||
mtComponents.FieldByName(fnIsUseDismounted).AsInteger := SCSComponent.IsUseDismounted;
|
||
mtComponents.Post;
|
||
end;
|
||
mtComponents.Next;
|
||
end;
|
||
finally
|
||
if StrBookMark <> nil then
|
||
begin
|
||
mtComponents.gotoBookmark(StrBookMark);
|
||
mtComponents.FreeBookmark(StrBookMark);
|
||
end;
|
||
|
||
//mtComponents.Bookmark := StrBookMark;
|
||
mtComponents.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.SaveSelectedNormResource;
|
||
var
|
||
SCSNorm: TSCSNorm;
|
||
SCSComponent: TSCSComponent;
|
||
ptrProperty: PProperty;
|
||
begin
|
||
case FEditedBandIndex of
|
||
biNormData:
|
||
begin
|
||
SCSNorm := TSCSNorm(mtComponents.FieldByName(fnNormObjectAddress).AsInteger);
|
||
if SCSNorm <> nil then
|
||
begin
|
||
{if FEditedFieldName = fnIsOn then
|
||
SCSNorm.IsOn := mtComponents.FieldByName(fnIsOn).AsInteger
|
||
else
|
||
if FEditedFieldName = fnKolvo then
|
||
SCSNorm.Kolvo := RoundX(mtComponents.FieldByName(fnKolvo).AsFloat, PrecisionNormKolvo)
|
||
else
|
||
if FEditedFieldName = fnExpenseForLength then
|
||
SCSNorm.ExpenseForLength := RoundCP(mtComponents.FieldByName(fnExpenseForLength).AsFloat)
|
||
else
|
||
if FEditedFieldName = fnCountForPoint then
|
||
SCSNorm.CountForPoint := RoundCP(mtComponents.FieldByName(fnCountForPoint).AsFloat)
|
||
else
|
||
if FEditedFieldName = fnStepOfPoint then
|
||
SCSNorm.StepOfPoint := RoundCP(mtComponents.FieldByName(fnStepOfPoint).AsFloat);}
|
||
|
||
SCSNorm.IsOn := mtComponents.FieldByName(fnIsOn).AsInteger;
|
||
SCSNorm.LaborTime := mtComponents.FieldByName(fnLaborTime).AsInteger; //15.11.2013
|
||
SCSNorm.PricePerTime := RoundX(mtComponents.FieldByName(fnPricePerTime).AsFloat, PrecisionNormKolvo); //15.11.2013
|
||
SCSNorm.Price := RoundX(mtComponents.FieldByName(fnCost).AsFloat, PrecisionNormKolvo); //15.11.2013
|
||
SCSNorm.Kolvo := RoundX(mtComponents.FieldByName(fnKolvo).AsFloat, PrecisionNormKolvo);
|
||
SCSNorm.ExpenseForLength := RoundCP(mtComponents.FieldByName(fnExpenseForLength).AsFloat);
|
||
SCSNorm.CountForPoint := RoundCP(mtComponents.FieldByName(fnCountForPoint).AsFloat);
|
||
SCSNorm.StepOfPoint := RoundCP(mtComponents.FieldByName(fnStepOfPoint).AsFloat);
|
||
|
||
SCSNorm.NotifyChange;
|
||
end;
|
||
end;
|
||
biComponData:
|
||
begin
|
||
SCSComponent := TSCSComponent(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
if SCSComponent <> nil then
|
||
begin
|
||
if FEditedFieldName = fnSignType then
|
||
begin
|
||
ptrProperty := SCSComponent.GetPropertyBySysName(pnSignType);
|
||
if ptrProperty <> nil then
|
||
begin
|
||
ptrProperty.Value := IntToStr(mtComponents.FieldByName(fnSignType).AsInteger);
|
||
TF_Main(GForm).OnChangeComponPropertyVal(ptrProperty, SCSComponent);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
MakeEditPropertyForWholeComponent(meEdit, SCSComponent, ptrProperty);
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
//if FEditedFieldName = fnSignType then
|
||
// SCSComponent.SetPropertyValueAsString(pnSignType, IntToStr(mtComponents.FieldByName(fnSignType).AsInteger), true)
|
||
//else
|
||
if FEditedFieldName = fnIsDismount then
|
||
SCSComponent.IsDismount := mtComponents.FieldByName(fnIsDismount).AsInteger
|
||
else
|
||
if FEditedFieldName = fnIsUseDismounted then
|
||
SCSComponent.IsUseDismounted := mtComponents.FieldByName(fnIsUseDismounted).AsInteger;
|
||
|
||
TF_Main(GForm).OnUpdateComponent(meEdit, nil, SCSComponent, false, false);
|
||
end;
|
||
SCSComponent.NotifyChange;
|
||
UpdateComponentsParamsInMT;
|
||
end;
|
||
end;
|
||
end;
|
||
FChanged := true;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.SetControls;
|
||
begin
|
||
if GFormMode = iimNormComponents then
|
||
begin
|
||
Act_AddNorm.Enabled := (TreeView.Selected <> nil) {and (TObject(TreeView.Selected.Data) is TSCSNorm)};
|
||
Act_DelNorm.Enabled := (TreeView.Selected <> nil) and (TObject(TreeView.Selected.Data) is TSCSNorm) and
|
||
mtComponents.Active and (mtComponents.RecordCount > 0);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.SetFilterControls;
|
||
begin
|
||
Act_Filter.Checked := FFilterBlock.IsOn;
|
||
spTreeWithFilter.UpperLeft.Visible := tbTreeView.Visible and Act_Filter.Checked;
|
||
lbFilter.Caption := FFilterBlock.GetFilterAsString(true);
|
||
|
||
pnUseFilterInCAD.Visible := ((GFormMode = iimConnectedConObjects) or (GFormMode = iimConnectedLineCompons));
|
||
//
|
||
// Act_SaveToExcel.Enabled := TreeView.GetVisiblecount > 0;
|
||
// changed by Tolik
|
||
|
||
// Tolik 20/03/2019
|
||
{
|
||
if not RzPageControl1.Visible then
|
||
Act_SaveToExcel.Enabled := TreeView.GetVisiblecount > 0
|
||
else
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
Act_SaveToExcel.Enabled := TreeView2.GetVisiblecount > 0
|
||
else
|
||
Act_SaveToExcel.Enabled := TreeView1.GetVisiblecount > 0
|
||
end;
|
||
}
|
||
if not RzPageControl1.Visible then
|
||
Act_SaveToExcel.Enabled := TreeView.Columns.GetVisiblecount > 0
|
||
else
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
Act_SaveToExcel.Enabled := TreeView2.Columns.GetVisiblecount > 0
|
||
else
|
||
Act_SaveToExcel.Enabled := TreeView1.Columns.GetVisiblecount > 0
|
||
end;
|
||
//
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ShowPCTreeData(AShow: Boolean; AActivePage: TRzTabSheet);
|
||
begin
|
||
if AShow then
|
||
begin
|
||
gbTreeView.Visible := true;
|
||
gbTreeView.Align := alLeft;
|
||
gbTreeView.Width := Round(Self.Width / 2);
|
||
Splitter.Visible := true;
|
||
Splitter.Align := alRight;
|
||
Splitter.Align := alLeft;
|
||
|
||
//GroupBox_Interfaces.Visible := true;
|
||
//GroupBox_Interfaces.Align := alClient;
|
||
pcTreeData.Visible := true;
|
||
pcTreeData.ActivePage := AActivePage; //tsInterfaces;
|
||
end
|
||
else
|
||
begin
|
||
gbTreeView.Visible := true;
|
||
gbTreeView.Align := alClient;
|
||
Splitter.Visible := false;
|
||
|
||
pcTreeData.Visible := false;
|
||
end;
|
||
end;
|
||
|
||
function TF_InterfaceInfo.GetNodeByNormGUIDNB(AGUID: String): TFlyNode;
|
||
var
|
||
i: Integer;
|
||
Node: TFlyNode;
|
||
begin
|
||
Result := nil;
|
||
if TreeView.Items.Count > 0 then
|
||
begin
|
||
Node := TreeView.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if TObject(Node.Data) is TSCSNorm then
|
||
if TSCSNorm(Node.Data).GuidNB = AGUID then
|
||
begin
|
||
Result := Node;
|
||
Break; //// BREAK ////
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_InterfaceInfo.GetNodeWithComponsWithoutNorms: TFlyNode;
|
||
var
|
||
i: Integer;
|
||
Node: TFlyNode;
|
||
begin
|
||
Result := nil;
|
||
if TreeView.Items.Count > 0 then
|
||
begin
|
||
Node := TreeView.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if TObject(Node.Data) is TSCSObjectList then //14.11.2013 if TObject(Node.Data) is TSCSComponents then
|
||
begin
|
||
Result := Node;
|
||
Break; //// BREAK ////
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_InterfaceInfo.IsVisibleComponByFilter(AComponent: TSCSComponent): Boolean;
|
||
var
|
||
SCSInterface: TSCSInterface;
|
||
ChildFilterBlock: TFilterBlock;
|
||
i, j: Integer;
|
||
begin
|
||
Result := false;
|
||
if Not FFilterBlock.IsOn then
|
||
Result := true
|
||
else
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to AComponent.Interfaces.Count - 1 do
|
||
begin
|
||
SCSInterface := AComponent.Interfaces[i];
|
||
if SCSInterface.TypeI = itFunctional then
|
||
begin
|
||
{for j := 0 to FFilterBlock.AllChildBlocks.Count - 1 do
|
||
begin
|
||
ChildFilterBlock := FFilterBlock.AllChildBlocks[j];
|
||
if (ChildFilterBlock.Condition <> nil) and (ChildFilterBlock.CheckIsOnUp) then
|
||
begin
|
||
case ChildFilterBlock.Condition.FieldIndex of
|
||
ffFunctionalInterface:
|
||
begin
|
||
if SCSInterface.IsPort = biFalse then
|
||
ChildFilterBlock.Condition.FieldValue := SCSInterface.GUIDInterface
|
||
else
|
||
ChildFilterBlock.Condition.FieldValue := '';
|
||
end;
|
||
ffPort:
|
||
begin
|
||
if SCSInterface.IsPort = biTrue then
|
||
ChildFilterBlock.Condition.FieldValue := SCSInterface.GUIDInterface
|
||
else
|
||
ChildFilterBlock.Condition.FieldValue := '';
|
||
end;
|
||
ffConnected:
|
||
begin
|
||
if SCSInterface.KolvoBusy > 0 then
|
||
ChildFilterBlock.Condition.FieldValue := bsTrue
|
||
else
|
||
ChildFilterBlock.Condition.FieldValue := bsFalse;
|
||
end;
|
||
ffNoConnected:
|
||
begin
|
||
if SCSInterface.KolvoBusy > 0 then
|
||
ChildFilterBlock.Condition.FieldValue := bsFalse
|
||
else
|
||
ChildFilterBlock.Condition.FieldValue := bsTrue;
|
||
end;
|
||
else
|
||
ChildFilterBlock.Condition.FieldValue := '';
|
||
end;
|
||
end;
|
||
end;
|
||
if FFilterBlock.Execute then
|
||
Result := true;
|
||
}
|
||
if IsVisibleInterfaceByFilter(SCSInterface, FFilterBlock) then
|
||
Result := true;
|
||
if Result then
|
||
Break; //// BREAK ////
|
||
end;
|
||
if Result then
|
||
Break; //// BREAK ////
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_InterfaceInfo.IsVisibleNodeByFilter(ANode: TFlyNode; ARecursive: Boolean): Boolean;
|
||
var
|
||
ObjectNode: TObject;
|
||
NextNode: TFlyNode;
|
||
begin
|
||
Result := false;
|
||
try
|
||
if Not FFilterBlock.IsOn then
|
||
Result := true
|
||
else
|
||
begin
|
||
ObjectNode := ANode.Data;
|
||
if ObjectNode <> nil then
|
||
if ObjectNode is TSCSComponent then
|
||
begin
|
||
if IsVisibleComponByFilter(TSCSComponent(ObjectNode)) then
|
||
Result := true;
|
||
end;
|
||
|
||
if Not Result and ARecursive then
|
||
begin
|
||
NextNode := ANode.getFirstChild;
|
||
while NextNode <> nil do
|
||
begin
|
||
if IsVisibleNodeByFilter(NextNode, true) then
|
||
begin
|
||
Result := true;
|
||
Break; //// BREAK ////
|
||
end;
|
||
NextNode := NextNode.GetNextSibling;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.IsVisibleNodeByFilter', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.LoadFilterBlockFromProject;
|
||
var
|
||
FilterInfo: TFilterInfo;
|
||
UseFilterInCAD: Boolean;
|
||
SavedOnClick: TNotifyEvent;
|
||
begin
|
||
FFilterBlock.Clear;
|
||
FFilterBlock.IsOn := false;
|
||
LoadFilterFieldValues;
|
||
|
||
UseFilterInCAD := false;
|
||
|
||
FOldFilterValue := '';
|
||
FOldFilterUseInCAD := false;
|
||
|
||
FilterInfo := TF_Main(GForm).GSCSBase.CurrProject.GetFilterInfoByType(FFilteType);
|
||
if FilterInfo <> nil then
|
||
begin
|
||
UseFilterInCAD := FilterInfo.UseInCAD;
|
||
|
||
FOldFilterValue := FilterInfo.FilterValue;
|
||
FOldFilterUseInCAD := FilterInfo.UseInCAD;
|
||
|
||
FFilterBlock.LoadFromStr(FilterInfo.FilterValue, FFilterFieldValues);
|
||
ApplyFilter(nil);
|
||
end;
|
||
|
||
SavedOnClick := cbUseFilterInCAD.OnClick;
|
||
cbUseFilterInCAD.OnClick := nil;
|
||
try
|
||
cbUseFilterInCAD.Checked := UseFilterInCAD;
|
||
finally
|
||
cbUseFilterInCAD.OnClick := SavedOnClick;
|
||
end;
|
||
SetFilterControls;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.LoadFilterFieldValues;
|
||
var
|
||
ProjInterfaces: TSCSInterfaces;
|
||
SCSInterface: TSCSInterface;
|
||
LookedInterfGUIDs: TStringList;
|
||
|
||
FilterField: TFilterField;
|
||
FilterFieldInterf: TFilterField;
|
||
FilterFieldPort: TFilterField;
|
||
|
||
i: Integer;
|
||
begin
|
||
FFilterFieldValues.Clear;
|
||
|
||
if GUseVisibleInterfaces then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
FilterFieldInterf := TFilterField.Create;
|
||
FilterFieldInterf.FieldName := fnGuidInterface;
|
||
FilterFieldInterf.FieldIndex := ffFunctionalInterface;
|
||
FilterFieldInterf.FieldCaption := cInterfaceInfo_Msg9_1;
|
||
FFilterFieldValues.Add(FilterFieldInterf);
|
||
ProjInterfaces := TF_Main(GForm).GSCSBase.CurrProject.GetAllInterfaces;
|
||
LookedInterfGUIDs := TStringList.Create;
|
||
for i := 0 to ProjInterfaces.Count - 1 do
|
||
begin
|
||
SCSInterface := ProjInterfaces[i];
|
||
if LookedInterfGUIDs.IndexOf(SCSInterface.GUIDInterface) = -1 then
|
||
begin
|
||
SCSInterface.LoadName;
|
||
FilterFieldInterf.Values.Add(SCSInterface.GUIDInterface);
|
||
FilterFieldInterf.ValueCaptions.Add(SCSInterface.Name);
|
||
LookedInterfGUIDs.Add(SCSInterface.GUIDInterface);
|
||
end;
|
||
end;
|
||
SortComplexStringList(FilterFieldInterf.ValueCaptions, FilterFieldInterf.Values);
|
||
FreeAndNil(LookedInterfGUIDs);
|
||
FreeAndNil(ProjInterfaces);
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
FilterFieldPort := nil;
|
||
if GFormMode <> iimCablesNoInCanals then
|
||
begin
|
||
FilterFieldPort := TFilterField.Create;
|
||
FilterFieldPort.FieldName := fnGuidPort;
|
||
FilterFieldPort.FieldIndex := ffPort;
|
||
FilterFieldPort.FieldCaption := cDM_Msg13;
|
||
FFilterFieldValues.Add(FilterFieldPort);
|
||
FilterFieldPort.Values.AddStrings(FilterFieldInterf.Values);
|
||
FilterFieldPort.ValueCaptions.AddStrings(FilterFieldInterf.ValueCaptions);
|
||
end;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
FilterField := TFilterField.Create;
|
||
FilterField.FieldName := fnConnected;
|
||
FilterField.FieldIndex := ffConnected;
|
||
FilterField.FieldCaption := cInterfaceInfo_Msg9_3;
|
||
FilterField.Values.Add(bsTrue);
|
||
FilterField.Values.Add(bsFalse);
|
||
FilterField.ValueCaptions.Add(cBaseCommon11);
|
||
FilterField.ValueCaptions.Add(cBaseCommon12);
|
||
FFilterFieldValues.Add(FilterField);
|
||
|
||
// <20><><EFBFBD><EFBFBD> "<22><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
FilterField := TFilterField.Create;
|
||
FilterField.FieldName := fnNoConnected;
|
||
FilterField.FieldIndex := ffNoConnected;
|
||
FilterField.FieldCaption := cInterfaceInfo_Msg9_4;
|
||
FilterField.Values.Add(bsTrue);
|
||
FilterField.Values.Add(bsFalse);
|
||
FilterField.ValueCaptions.Add(cBaseCommon11);
|
||
FilterField.ValueCaptions.Add(cBaseCommon12);
|
||
FFilterFieldValues.Add(FilterField);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ReloadNodes;
|
||
var
|
||
TopNode: TFlyNode;
|
||
CurrVisibleNode: TFlyNode;
|
||
PrevLevelNode: TFlyNode;
|
||
LevelNode: TFlyNode;
|
||
|
||
LookedNodes: TList;
|
||
begin
|
||
try
|
||
TopNode := nil;
|
||
if TreeView.Items.Count > 0 then
|
||
TopNode := TreeView.Items[0];
|
||
if TopNode <> nil then
|
||
begin
|
||
LookedNodes := TList.Create;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
CurrVisibleNode := TopNode; //TreeView.GetFirstVisibleNode;
|
||
while CurrVisibleNode <> nil do
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
LevelNode := CurrVisibleNode;
|
||
PrevLevelNode := LevelNode;
|
||
while PrevLevelNode <> nil do
|
||
begin
|
||
LevelNode := PrevLevelNode;
|
||
PrevLevelNode := PrevLevelNode.getPrevSibling;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
while LevelNode <> nil do
|
||
begin
|
||
if LookedNodes.IndexOf(LevelNode) = -1 then
|
||
begin
|
||
LevelNode.Hidden := Not IsVisibleNodeByFilter(LevelNode, true);
|
||
LookedNodes.Add(LevelNode);
|
||
end;
|
||
LevelNode := LevelNode.GetNextSibling;
|
||
end;
|
||
CurrVisibleNode := CurrVisibleNode.GetNextVisible;
|
||
end;
|
||
|
||
FreeAndNil(LookedNodes);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.ReloadNodes', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.SaveFilterToProject;
|
||
var
|
||
FilterInfo: TFilterInfo;
|
||
begin
|
||
try
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
FilterInfo := TF_Main(GForm).GSCSBase.CurrProject.GetFilterInfoByType(FFilteType);
|
||
if FilterInfo = nil then
|
||
begin
|
||
FilterInfo := TFilterInfo.Create;
|
||
FilterInfo.ID := TF_Main(GForm).GSCSBase.CurrProject.GenIDByGeneratorIndex(giFilterinfoID);
|
||
FilterInfo.FilterType := FFilteType;
|
||
TF_Main(GForm).GSCSBase.CurrProject.Filters.Add(FilterInfo);
|
||
end;
|
||
if FilterInfo <> nil then
|
||
begin
|
||
FilterInfo.FilterValue := FFilterBlock.GetFilterAsString(false);
|
||
if pnUseFilterInCAD.Visible then
|
||
FilterInfo.UseInCAD := cbUseFilterInCAD.Checked;
|
||
end;
|
||
TF_Main(GForm).GSCSBase.CurrProject.NotifyChange;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.SaveFilterToProject', E.Message);
|
||
end;
|
||
end;
|
||
|
||
constructor TF_InterfaceInfo.Create(AOwner: TComponent; AForm: TForm);
|
||
begin
|
||
GForm := AForm;
|
||
inherited Create(AOwner);
|
||
end;
|
||
|
||
destructor TF_InterfaceInfo.Destroy;
|
||
begin
|
||
inherited;
|
||
end;
|
||
|
||
|
||
|
||
procedure TF_InterfaceInfo.FormCreate(Sender: TObject);
|
||
var i: Integer;
|
||
begin
|
||
{TreeView.Free;
|
||
TreeView := TFlyTreeViewPro.Create(Self);
|
||
TreeView.Parent := spTreeWithFilter.LowerRight.Pane;
|
||
TreeView.Align := alClient;
|
||
TreeView.DefaultRowHeight := 24;
|
||
TreeView.FitColumnToClientWidth := true;
|
||
TreeView.Showlines := false;
|
||
TreeView.ShowButtons := true;
|
||
TreeView.ShowRoot := true;
|
||
TreeView.ShowImages := true;}
|
||
TreeView.Options := [];
|
||
|
||
ActionCaptionsToHints(ActionList);
|
||
|
||
gbTreeView.Caption := '';
|
||
TcxCurrencyEditProperties(GT_InterfacesValueI.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_InterfacesValueI.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
with TF_Main(GForm).DM.MemTable_InterfaceRel do
|
||
for i := 0 to FieldDefs.Count - 1 do
|
||
MemTable_Interfaces.FieldDefs.Add(FieldDefs[i].Name,
|
||
FieldDefs[i].DataType,
|
||
FieldDefs[i].Size);
|
||
|
||
with TF_Main(GForm).DM.MemTable_Comp_State_Type do
|
||
for i := 0 to FieldDefs.Count - 1 do
|
||
mtSignTypes.FieldDefs.Add(FieldDefs[i].Name, FieldDefs[i].DataType, FieldDefs[i].Size);
|
||
mtSignTypes.LoadFromDataSet(TF_Main(GForm).DM.MemTable_Comp_State_Type, []);
|
||
|
||
mtComponents.FieldDefs.Add(fnID, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnIsOn, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnLaborTime, ftInteger); //15.11.2013
|
||
mtComponents.FieldDefs.Add(fnPricePerTime, ftFloat); //15.11.2013
|
||
mtComponents.FieldDefs.Add(fnKolvo, ftFloat);
|
||
mtComponents.FieldDefs.Add(fnCost, ftFloat); //15.11.2013
|
||
mtComponents.FieldDefs.Add(fnExpenseForLength, ftFloat);
|
||
mtComponents.FieldDefs.Add(fnCountForPoint, ftFloat);
|
||
mtComponents.FieldDefs.Add(fnStepOfPoint, ftFloat);
|
||
mtComponents.FieldDefs.Add(fnIsFromInterface, ftInteger);
|
||
|
||
mtComponents.FieldDefs.Add(fnName, ftString, 255);
|
||
mtComponents.FieldDefs.Add(fnIsLine, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnSignType, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnIsDismount, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnIsUseDismounted, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnComponObjectAddress, ftInteger);
|
||
mtComponents.FieldDefs.Add(fnNormObjectAddress, ftInteger);
|
||
|
||
TreeView.Items.Clear;
|
||
TreeView.Images.Clear;
|
||
TreeView.Images.AddImages(TF_Main(GForm).DM.ImageList_Dir);
|
||
TreeView.Images.AddImages(ilState);
|
||
TreeView.ButtonCollapsedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 1;
|
||
TreeView.ButtonExpandedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 2;
|
||
TreeView.FixedRows := 0;
|
||
TreeView.FitColumnToClientWidth := true;
|
||
TreeView.Options := TreeView.Options + [goColSizing] - [goDrawFocusSelected, goHorzLine, goVertLine, goRangeSelect];
|
||
TreeView.StatesDrawed := false;
|
||
// added by Tolik
|
||
TreeView1.Items.Clear;
|
||
TreeView1.Images.Clear;
|
||
TreeView1.Images.AddImages(TF_Main(GForm).DM.ImageList_Dir);
|
||
TreeView1.Images.AddImages(ilState);
|
||
TreeView1.ButtonCollapsedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 1;
|
||
TreeView1.ButtonExpandedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 2;
|
||
TreeView1.FixedRows := 0;
|
||
TreeView1.FitColumnToClientWidth := true;
|
||
TreeView1.Options := TreeView.Options + [goColSizing] - [goDrawFocusSelected, goHorzLine, goVertLine, goRangeSelect];
|
||
TreeView1.StatesDrawed := false;
|
||
|
||
TreeView2.Items.Clear;
|
||
TreeView2.Images.Clear;
|
||
TreeView2.Images.AddImages(TF_Main(GForm).DM.ImageList_Dir);
|
||
TreeView2.Images.AddImages(ilState);
|
||
TreeView2.ButtonCollapsedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 1;
|
||
TreeView2.ButtonExpandedIndex := (TF_Main(GForm).DM.ImageList_Dir.Count-1) + 2;
|
||
TreeView2.FixedRows := 0;
|
||
TreeView2.FitColumnToClientWidth := true;
|
||
TreeView2.Options := TreeView.Options + [goColSizing] - [goDrawFocusSelected, goHorzLine, goVertLine, goRangeSelect];
|
||
TreeView2.StatesDrawed := false;
|
||
|
||
RzPageControl1.visible := false;
|
||
//
|
||
TcxCurrencyEditProperties(GT_ComponentsKolvo.Properties).DisplayFormat := GetDisplayFormatForFloatByPrecision(PrecisionNormKolvo);
|
||
TcxCurrencyEditProperties(GT_ComponentsKolvo.Properties).DecimalPlaces := PrecisionNormKolvo;
|
||
TcxCurrencyEditProperties(GT_ComponentsExpenseForLength.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComponentsExpenseForLength.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_ComponentsCountForPoint.Caption := cNameCountForPoint;
|
||
GT_ComponentsCountForPoint.DataBinding.FieldName := fnCountForPoint;
|
||
TcxCurrencyEditProperties(GT_ComponentsCountForPoint.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComponentsCountForPoint.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_ComponentsStepOfPoint.DataBinding.FieldName := fnStepOfPoint;
|
||
TcxCurrencyEditProperties(GT_ComponentsStepOfPoint.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComponentsStepOfPoint.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
ActionList.Images := TF_Main(GForm).DM.ImageList_ToolEdit;
|
||
pmNormCompons.Images := TF_Main(GForm).DM.ImageList_ToolEdit;
|
||
tbNormCompons.Images := TF_Main(GForm).DM.ImageList_ToolEdit;
|
||
|
||
////*** Action List Hints
|
||
//for i := 0 to ActionList.ActionCount - 1 do
|
||
// TAction(ActionList.Actions[i]).Hint := TAction(ActionList.Actions[i]).Caption;
|
||
|
||
FFilterBlock := TFilterBlock.Create(nil, btBlock);
|
||
//FFilterInfo := nil;
|
||
FFilterFieldValues := TObjectList.Create(true);
|
||
end;
|
||
|
||
|
||
|
||
procedure TF_InterfaceInfo.TreeView_GetSelectedIndex(Sender: TObject;
|
||
Node: TTreeNode);
|
||
begin
|
||
Node.SelectedIndex := Node.ImageIndex;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.FormHide(Sender: TObject);
|
||
begin
|
||
ClearTree;
|
||
GFormMode := iimNone;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TreeView_Change(Sender: TObject;
|
||
Node: TTreeNode);
|
||
var NodeDat: PObjectData;
|
||
MainTreeViewNode: TTreeNode;
|
||
Catalog: TCatalog;
|
||
SCSID: Integer;
|
||
SCSCatalog: TSCSCatalog;
|
||
SCSComponent: TSCSComponent;
|
||
|
||
WholeLineCompon: TWholeLineCompon;
|
||
LineComponTrace: TIntList;
|
||
ptrID: ^Integer;
|
||
begin
|
||
{LineComponTrace := nil;
|
||
WholeLineCompon.WholeCompon := nil;
|
||
try
|
||
try
|
||
NodeDat := Node.Data;
|
||
if NodeDat = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
if NodeDat.ItemType = itSCSConnector then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(NodeDat.ObjectID, false)
|
||
else
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(NodeDat.ObjectID, true);
|
||
if MainTreeViewNode <> nil then
|
||
TF_Main(GForm).Tree_Catalog.Selected := MainTreeViewNode;
|
||
|
||
case NodeDat.ItemType of
|
||
itSCSConnector:
|
||
begin
|
||
//SCSID := TF_Main(GForm).DM.GetScsIDByIDCatalog(NodeDat.ObjectID);
|
||
//SelectConnectedConnector(ScsID);
|
||
SCSCatalog := TF_Main(GForm).GSCSBase.CurrProject.GetCatalogFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
itComponCon:
|
||
begin
|
||
//Catalog := TF_Main(GForm).DM.GetCatalogByCompon(NodeDat.ObjectID);
|
||
//SelectConnectedConnector(Catalog.Scs_ID);
|
||
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
itComponLine:
|
||
begin
|
||
if Node.Parent = nil then
|
||
begin
|
||
WholeLineCompon := GetLineComponsInTrace(NodeDat.ObjectID);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
LineComponTrace := GetTraceByListCompon(WholeLineCompon.WholeCompon);
|
||
end
|
||
else
|
||
begin
|
||
WholeLineCompon.WholeCompon := TIntList.Create;
|
||
WholeLineCompon.WholeCompon.Add(NodeDat.ObjectID);
|
||
|
||
LineComponTrace := TIntList.Create;
|
||
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
begin
|
||
//New(ptrID);
|
||
//ptrID^ := SCSCatalog.ScsID;
|
||
LineComponTrace.Add(SCSCatalog.ScsID);
|
||
end;
|
||
end;
|
||
if LineComponTrace <> nil then
|
||
if LineComponTrace.Count > 0 then
|
||
begin
|
||
LoadInterfaces(WholeLineCompon.WholeCompon);
|
||
SelectConnectedCables(TF_Main(GForm).GSCSBase.CurrProject.CurrList.CurrID, LineComponTrace);
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_InterfaceInfo.TreeViewChange: '+E.Message);
|
||
end;
|
||
finally
|
||
LineComponTrace.Free; //FreeList(LineComponTrace);
|
||
WholeLineCompon.WholeCompon.Free; //FreeList(WholeLineCompon.WholeCompon);
|
||
end;}
|
||
end;
|
||
|
||
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
procedure TF_InterfaceInfo.GT_InterfacesFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
MainTreeViewDat: PObjectData;
|
||
MainTreeViewNode: TTreeNode;
|
||
IDComponent: Integer;
|
||
begin
|
||
try
|
||
try
|
||
IDComponent := MemTable_Interfaces.FieldByName(fnIDcomponent).AsInteger;
|
||
|
||
if (GFormMode = iimConnectedLineCompons) or (GFormMode = iimDisconnectedLineCompons) then
|
||
with TF_Main(GForm) do
|
||
begin
|
||
MainTreeViewDat := Tree_Catalog.Selected.Data;
|
||
if MainTreeViewDat.ObjectID <> IDComponent then
|
||
begin
|
||
MainTreeViewNode := FindComponOrDirInTree(IDComponent, True);
|
||
if MainTreeViewNode <> nil then
|
||
Tree_Catalog.Selected := MainTreeViewNode;
|
||
end;
|
||
|
||
//DM.MemTable_InterfaceRel.DisableControls;
|
||
|
||
if Grid_Interfaces.ActiveLevel.Index <> cdliInterface then //*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
begin
|
||
Grid_CompData.ActiveLevel := Grid_CompData.Levels.Items[cdliInterface];
|
||
Grid_CompData.OnActiveTabChanged(Grid_CompData, Grid_CompData.ActiveLevel);
|
||
end;
|
||
DM.MemTable_InterfaceRel.Locate(fnID, MemTable_Interfaces.FieldByName(fnID).AsInteger, []);
|
||
//SearchRecordMT(DM.MemTable_InterfaceRel, 'id', MemTable_Interfaces.FieldByName('id').AsInteger);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_InterfaceInfo.GT_InterfacesFocusedRecordChanged: '+E.Message);
|
||
end;
|
||
finally
|
||
//TF_Main(GForm).DM.MemTable_InterfaceRel.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
procedure TF_InterfaceInfo.GT_InterfacesTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = '0' then AText := cInterfaceInfo_Msg3_1;
|
||
if AText = '1' then AText := cInterfaceInfo_Msg3_2;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_InterfacesGenderGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cInterfaceInfo_Msg4_1;
|
||
|
||
if AText = '1' then
|
||
AText := cInterfaceInfo_Msg4_2;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_InterfacesCoordZGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cInterfaceInfo_Msg5;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_InterfacesNumPairGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cInterfaceInfo_Msg5;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_InterfacesSideGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cInterfaceInfo_Msg5;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Execute(AFormMode: TInterfaceInfoMode; AObject: TObject);
|
||
var
|
||
DisplayFormatM: String;
|
||
NormResources: TSCSNormsResources;
|
||
ComponsWithOutNorms: TSCSObjectList; //14.11.2013 TSCSComponents;
|
||
ComponWithOutNorm: TSCSComponent;
|
||
TreeNode: TFlyNode;
|
||
i: Integer;
|
||
|
||
SavedIsDefineInterfaceNormsOnChangeNode: Boolean;
|
||
begin
|
||
GFormMode := AFormMode;
|
||
FObject := AObject;
|
||
//FFilterInfo := nil;
|
||
|
||
//Caption := '';
|
||
|
||
//15.11.2013
|
||
DisplayFormatM := GetDisplayFormat(TF_Main(GForm).GCurrencyM.NameBrief);
|
||
GT_ComponentsLaborTime.Caption := TF_Main(GForm).GT_NormsResourcesLaborTime.Caption;
|
||
GT_ComponentsPricePerTime.Caption := TF_Main(GForm).GT_NormsResourcesPricePerTime.Caption;
|
||
TcxCurrencyEditProperties(GT_ComponentsPricePerTime.Properties).DisplayFormat := DisplayFormatM; //GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComponentsPricePerTime.Properties).DecimalPlaces := FloatPrecision;
|
||
//15.11.2013
|
||
GT_ComponentsCost.Caption := TF_Main(GForm).GT_NormsResourcesCost.Caption;
|
||
TcxCurrencyEditProperties(GT_ComponentsCost.Properties).DisplayFormat := DisplayFormatM; //GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComponentsCost.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_ComponentsExpenseForLength.Caption := TF_Main(GForm).GT_NormsResourcesExpenseForLength.Caption;
|
||
GT_ComponentsExpenseForLength.DataBinding.FieldName := fnExpenseForLength;
|
||
GT_ComponentsStepOfPoint.Caption := TF_Main(GForm).GT_NormsResourcesStepOfPoint.Caption;
|
||
FChanged := false;
|
||
|
||
FFilteType := ftNone;
|
||
FFilteTypeFile := ftNone;
|
||
|
||
if AFormMode in [iimCablesNoInCanals] then
|
||
begin
|
||
RzPageControl1.Visible := True;
|
||
TreeView.Visible := False;
|
||
end
|
||
else
|
||
begin
|
||
RzPageControl1.Visible := False;
|
||
TreeView.Visible := True;
|
||
end;
|
||
|
||
if AFormMode in [iimConnectedConObjects, iimDisconnectedConObjects,
|
||
iimConnectedLineCompons, iimDisconnectedLineCompons, iimCablesNoInCanals, iimNoConnectedRoutes] then
|
||
begin
|
||
MemTable_Interfaces.Active := false;
|
||
MemTable_Interfaces.Active := true;
|
||
|
||
//GroupBox_ConnDisconnConObjects.Visible := false;
|
||
//GroupBox_Interfaces.Visible := false;
|
||
TreeView.Options := TreeView.Options - [goHorzLine];
|
||
TreeView.Showlines := true;
|
||
TreeView.ShowRoot := true;
|
||
pcTreeData.Visible := false;
|
||
|
||
tbTreeView.Visible := false;
|
||
tbTreeView.Visible := true;
|
||
|
||
case GFormMode of
|
||
iimConnectedConObjects, iimDisconnectedConObjects, iimCablesNoInCanals, iimNoConnectedRoutes:
|
||
begin
|
||
ShowPCTreeData(false, nil);
|
||
|
||
case GFormMode of
|
||
iimConnectedConObjects:
|
||
Caption := cInterfaceInfo_Msg1_1;
|
||
iimDisconnectedConObjects:
|
||
Caption := cInterfaceInfo_Msg1_2;
|
||
// Tolik 13/02/2018
|
||
iimNoConnectedRoutes:
|
||
Caption := cInterfaceInfo_Msg11;
|
||
//
|
||
end;
|
||
if TreeView.Visible then
|
||
begin
|
||
if TreeView.Selected <> nil then
|
||
TreeViewChange(TreeView, TreeView.Selected);
|
||
end
|
||
else
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
TreeViewChange(TreeView2, TreeView2.Selected)
|
||
else
|
||
TreeViewChange(TreeView1, TreeView1.Selected)
|
||
end;
|
||
end;
|
||
iimConnectedLineCompons, iimDisconnectedLineCompons:
|
||
begin
|
||
ShowPCTreeData(GUseVisibleInterfaces, tsInterfaces); //14.05.2009 ShowPCTreeData(true, tsInterfaces);
|
||
|
||
case GFormMode of
|
||
iimConnectedLineCompons:
|
||
begin
|
||
Caption := cInterfaceInfo_Msg1_3;
|
||
GroupBox_Interfaces.Caption := cInterfaceInfo_Msg2_1;
|
||
end;
|
||
iimDisconnectedLineCompons:
|
||
begin
|
||
Caption := cInterfaceInfo_Msg1_4;
|
||
GroupBox_Interfaces.Caption := cInterfaceInfo_Msg2_2;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// Tolik 10/05/17 --
|
||
{ Act_DelCompons.Visible := ((AFormmode in [iimDisconnectedConObjects, iimDisconnectedLineCompons]) and
|
||
(TreeView.Selected <> nil) and (TObject(TreeView.Selected.Data) is TSCSComponent));// and
|
||
//(mtComponents.Active = True) and (mtComponents.RecordCount > 0));
|
||
Act_DeleteAllCompons.Visible := Act_DelCompons.Visible;}
|
||
//
|
||
|
||
FFilteType := GetFilterTypeByFormMode(false);
|
||
FFilteTypeFile := GetFilterTypeByFormMode(true);
|
||
LoadFilterBlockFromProject;
|
||
|
||
FSimpleCaption := Caption;
|
||
if AObject <> nil then
|
||
Caption := Caption+' '+cInterfaceInfo_Msg8+' '+TSCSCatalog(AObject).GetNameForVisible;
|
||
if TreeView.Selected <> nil then
|
||
TreeViewChange(TreeView, TreeView.Selected);
|
||
end
|
||
else
|
||
if AFormMode = iimNormComponents then
|
||
begin
|
||
Caption := cInterfaceInfo_Msg1_5_1;
|
||
FSimpleCaption := Caption;
|
||
ClearTree;
|
||
TreeView.Options := TreeView.Options + [goHorzLine];
|
||
TreeView.Showlines := false;
|
||
TreeView.ShowRoot := false;
|
||
|
||
tbTreeView.Visible := true;
|
||
tbTreeView.Visible := false;
|
||
|
||
//pcTreeData.Visible := true;
|
||
//pcTreeData.ActivePage := tsComponents;
|
||
ShowPCTreeData(true, tsComponents);
|
||
|
||
|
||
FEditedBandIndex := -1;
|
||
FEditedFieldName := '';
|
||
if (AObject <> nil) and (AObject is TSCSCatalogExtended) then
|
||
begin
|
||
if AObject is TSCSProject then
|
||
Caption := Caption + cInterfaceInfo_Msg1_5_2 +' '+ TSCSProject(AObject).GetNameForVisible
|
||
else
|
||
if AObject is TSCSList then
|
||
Caption := Caption + cInterfaceInfo_Msg1_5_3 +' '+ TSCSList(AObject).GetNameForVisible;
|
||
|
||
NormResources := nil;
|
||
BeginProgress;
|
||
try
|
||
NormResources := TSCSCatalogExtended(AObject).GetAllNormsResources([nrNorms], false, true, false, true, true, false);
|
||
for i := 0 to NormResources.Norms.Count - 1 do
|
||
begin
|
||
TreeNode := TreeView.Items.Add(nil, TSCSNorm(NormResources.Norms[i]).Name);
|
||
TreeNode.Data := NormResources.Norms[i];
|
||
TreeNode.ImageIndex := -1;
|
||
TreeNode.SelectedIndex := -1;
|
||
end;
|
||
TreeView.SortType := stText;
|
||
TreeView.SortType := stNone;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
ComponsWithOutNorms := nil;
|
||
for i := 0 to TSCSCatalogExtended(AObject).ComponentReferences.Count - 1 do
|
||
begin
|
||
ComponWithOutNorm := TSCSCatalogExtended(AObject).ComponentReferences[i];
|
||
if ComponWithOutNorm.NormsResources.Norms.Count = 0 then
|
||
begin
|
||
if ComponsWithOutNorms = nil then
|
||
ComponsWithOutNorms := TSCSObjectList.Create(false); //14.11.2013 TSCSComponents.Create(false);
|
||
ComponsWithOutNorms.Add(ComponWithOutNorm);
|
||
end;
|
||
end;
|
||
if ComponsWithOutNorms <> nil then
|
||
begin
|
||
TreeNode := TreeView.Items.Insert(nil, cInterfaceInfo_Msg6);
|
||
TreeNode.Data := ComponsWithOutNorms;
|
||
TreeNode.ImageIndex := -1;
|
||
TreeNode.SelectedIndex := -1;
|
||
//TreeNode.
|
||
//TreeView.
|
||
end;
|
||
if TreeView.Visible then
|
||
begin
|
||
if TreeView.Selected <> nil then
|
||
TreeViewChange(TreeView, TreeView.Selected);
|
||
end
|
||
else
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
TreeViewChange(TreeView2, TreeView2.Selected)
|
||
else
|
||
TreeViewChange(TreeView1, TreeView1.Selected)
|
||
end;
|
||
|
||
NormResources.Norms.OwnsObjects := false;
|
||
NormResources.Free;
|
||
finally
|
||
EndProgress;
|
||
end;
|
||
end;
|
||
SetControls;
|
||
end ;
|
||
{ else
|
||
if AFormMode = iimNoConnectedRoutes then
|
||
begin
|
||
MemTable_Interfaces.Active := false;
|
||
MemTable_Interfaces.Active := true;
|
||
|
||
//GroupBox_ConnDisconnConObjects.Visible := false;
|
||
//GroupBox_Interfaces.Visible := false;
|
||
TreeView.Options := TreeView.Options - [goHorzLine];
|
||
TreeView.Showlines := true;
|
||
TreeView.ShowRoot := true;
|
||
pcTreeData.Visible := false;
|
||
|
||
tbTreeView.Visible := false;
|
||
tbTreeView.Visible := true;
|
||
|
||
//ShowPCTreeData(GUseVisibleInterfaces, tsInterfaces);
|
||
ShowPCTreeData(true, tsInterfaces);
|
||
|
||
{FFilteType := GetFilterTypeByFormMode(false);
|
||
FFilteTypeFile := GetFilterTypeByFormMode(true);
|
||
LoadFilterBlockFromProject;}
|
||
//end;
|
||
|
||
SavedIsDefineInterfaceNormsOnChangeNode := TF_Main(GForm).FIsDefineInterfaceNormsOnChangeNode;
|
||
TF_Main(GForm).FIsDefineInterfaceNormsOnChangeNode := false;
|
||
|
||
SetFilterControls;
|
||
// Tolik -- 13/05/2017 --
|
||
if TreeView.Visible then
|
||
EnableDisableTreeViewPopup;
|
||
//
|
||
ShowModal;
|
||
|
||
ApplyFilterToCAD(AFormMode);
|
||
|
||
if FChanged then
|
||
TF_Main(GForm).RefreshNode(true);
|
||
|
||
TF_Main(GForm).FIsDefineInterfaceNormsOnChangeNode := SavedIsDefineInterfaceNormsOnChangeNode;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.LoadNormObjects(AGroupNorm: TSCSNorm; AObjsCompons: TSCSObjectList);
|
||
var
|
||
i, j: Integer;
|
||
//NormIsOn: Integer;
|
||
//NormKolvo: Double;
|
||
//NormExpenseForLength: Double;
|
||
//NormIsFromInterface: Integer;
|
||
SCSObj: TSCSComponCatalogClass;
|
||
Norm: TSCSNorm;
|
||
ComponNorms: TSCSNorms;
|
||
begin
|
||
mtComponents.DisableControls;
|
||
try
|
||
try
|
||
for i := 0 to AObjsCompons.Count - 1 do
|
||
begin
|
||
SCSObj := TSCSComponCatalogClass(AObjsCompons[i]);
|
||
|
||
ComponNorms := TSCSNorms.Create(false);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AGroupNorm <> nil then
|
||
begin
|
||
for j := 0 to SCSObj.NormsResources.Norms.Count - 1 do
|
||
begin
|
||
Norm := SCSObj.NormsResources.Norms[j];
|
||
if Norm.GuidNB = AGroupNorm.GuidNB then
|
||
ComponNorms.Add(Norm);
|
||
end;
|
||
end
|
||
else
|
||
ComponNorms.Add(nil);
|
||
|
||
for j := 0 to ComponNorms.Count - 1 do
|
||
begin
|
||
AddNormSCSObjComponToMT(SCSObj, ComponNorms[j]);
|
||
|
||
{Norm := ComponNorms[j];
|
||
NormIsOn := biFalse;
|
||
NormKolvo := 0;
|
||
NormExpenseForLength := 0;
|
||
NormIsFromInterface := biFalse;
|
||
if Norm <> nil then
|
||
begin
|
||
NormIsOn := Norm.IsOn;
|
||
NormKolvo := Norm.Kolvo;
|
||
NormExpenseForLength := Norm.ExpenseForLength;
|
||
NormIsFromInterface := Norm.IsFromInterface
|
||
end;
|
||
|
||
mtComponents.Append;
|
||
mtComponents.FieldByName(fnID).AsInteger := SCSComponent.ID;
|
||
mtComponents.FieldByName(fnIsOn).AsInteger := NormIsOn;
|
||
mtComponents.FieldByName(fnKolvo).AsFloat := RoundX(NormKolvo, PrecisionNormKolvo);
|
||
mtComponents.FieldByName(fnExpenseForLength).AsFloat := RoundCP(NormExpenseForLength);
|
||
mtComponents.FieldByName(fnIsFromInterface).AsInteger := NormIsFromInterface;
|
||
|
||
mtComponents.FieldByName(fnName).AsString := SCSComponent.GetNameForVisible;
|
||
mtComponents.FieldByName(fnIsLine).AsInteger := SCSComponent.IsLine;
|
||
mtComponents.FieldByName(fnSignType).AsInteger := SCSComponent.GetPropertyValueAsInteger(pnSignType);
|
||
mtComponents.FieldByName(fnIsDismount).AsInteger := SCSComponent.IsDismount;
|
||
mtComponents.FieldByName(fnIsUseDismounted).AsInteger := SCSComponent.IsUseDismounted;
|
||
mtComponents.FieldByName(fnComponObjectAddress).AsInteger := Integer(SCSComponent);
|
||
mtComponents.FieldByName(fnNormObjectAddress).AsInteger := Integer(Norm);
|
||
mtComponents.Post;}
|
||
end;
|
||
FreeAndNil(ComponNorms);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('LoadNormObjects', E.Message);
|
||
end;
|
||
|
||
{for i := 0 to AComponents.Count - 1 do
|
||
begin
|
||
SCSComponent := AComponents[i];
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
Norm := nil;
|
||
NormIsOn := biFalse;
|
||
NormKolvo := 0;
|
||
NormExpenseForLength := 0;
|
||
NormIsFromInterface := biFalse;
|
||
if AGroupNorm <> nil then
|
||
begin
|
||
Norm := SCSComponent.NormsResources.Norms.GetNormByGuidNB(AGroupNorm.GuidNB, true);
|
||
if Norm <> nil then
|
||
begin
|
||
NormIsOn := Norm.IsOn;
|
||
NormKolvo := Norm.Kolvo;
|
||
NormExpenseForLength := Norm.ExpenseForLength;
|
||
NormIsFromInterface := Norm.IsFromInterface
|
||
end;
|
||
end;
|
||
|
||
mtComponents.Append;
|
||
mtComponents.FieldByName(fnID).AsInteger := SCSComponent.ID;
|
||
mtComponents.FieldByName(fnIsOn).AsInteger := NormIsOn;
|
||
mtComponents.FieldByName(fnKolvo).AsFloat := RoundX(NormKolvo, PrecisionNormKolvo);
|
||
mtComponents.FieldByName(fnExpenseForLength).AsFloat := RoundCP(NormExpenseForLength);
|
||
mtComponents.FieldByName(fnIsFromInterface).AsInteger := NormIsFromInterface;
|
||
|
||
mtComponents.FieldByName(fnName).AsString := SCSComponent.GetNameForVisible;
|
||
mtComponents.FieldByName(fnIsLine).AsInteger := SCSComponent.IsLine;
|
||
mtComponents.FieldByName(fnSignType).AsInteger := SCSComponent.GetPropertyValueAsInteger(pnSignType);
|
||
mtComponents.FieldByName(fnIsDismount).AsInteger := SCSComponent.IsDismount;
|
||
mtComponents.FieldByName(fnIsUseDismounted).AsInteger := SCSComponent.IsUseDismounted;
|
||
mtComponents.FieldByName(fnComponObjectAddress).AsInteger := Integer(SCSComponent);
|
||
mtComponents.FieldByName(fnNormObjectAddress).AsInteger := Integer(Norm);
|
||
mtComponents.Post;
|
||
end; }
|
||
finally
|
||
mtComponents.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
procedure TF_InterfaceInfo.LoadInterfaces(ALineComponent: TIntList);
|
||
var i, j: Integer;
|
||
SCSComponent: TSCSComponent;
|
||
Interfac: TSCSInterface;
|
||
ChildSumValueI: Double;
|
||
begin
|
||
GT_Interfaces.OnFocusedRecordChanged := nil;
|
||
try
|
||
try
|
||
SCSComponent := nil;
|
||
//SCSComponent := TSCSComponent.Create(GForm);
|
||
|
||
MemTable_Interfaces.DisableControls;
|
||
|
||
MemTable_Interfaces.Active := false;
|
||
MemTable_Interfaces.Active := true;
|
||
|
||
for i := 0 to ALineComponent.Count - 1 do
|
||
begin
|
||
//SCSComponent.LoadComponentByID(Integer(ALineComponent.Items[i]^), false);
|
||
//SCSComponent.LoadInterfaces(-1, false);
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(ALineComponent.Items[i]);
|
||
if Assigned(SCSComponent) then
|
||
for j := 0 to SCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
Interfac := SCSComponent.Interfaces.Items[j];
|
||
if Not((Interfac.TypeI = itConstructive) {and (Interfac.Gender = gtMale)}) then
|
||
if ((GFormMode = iimConnectedLineCompons) and (Interfac.IsBusy = biTrue)) or
|
||
((GFormMode = iimDisconnectedLineCompons) and (Interfac.IsBusy = biFalse)) then
|
||
begin
|
||
if Interfac.Name = '' then
|
||
Interfac.LoadName;
|
||
MemTable_Interfaces.Append;
|
||
MemTable_Interfaces.Edit;
|
||
MemTable_Interfaces.FieldByName(fnID).AsInteger := Interfac.ID;
|
||
MemTable_Interfaces.FieldByName(fnNpp).AsInteger := Interfac.Npp;
|
||
MemTable_Interfaces.FieldByName(fnIDCOMPONENT).AsInteger := Interfac.ID_Component;
|
||
MemTable_Interfaces.FieldByName(fnIDINTERFACE).AsInteger := Interfac.ID_Interface;
|
||
MemTable_Interfaces.FieldByName(fnName).AsString := Interfac.Name;
|
||
MemTable_Interfaces.FieldByName(fnKolvo).AsInteger := Interfac.Kolvo;
|
||
MemTable_Interfaces.FieldByName(fnKolvoBusy).AsInteger := Interfac.KolvoBusy;
|
||
MemTable_Interfaces.FieldByName(fnTYPEI).AsInteger := Interfac.TypeI;
|
||
MemTable_Interfaces.FieldByName(fnGENDER).AsInteger := Interfac.Gender;
|
||
MemTable_Interfaces.FieldByName(fnMultiple).AsInteger := Interfac.Multiple;
|
||
MemTable_Interfaces.FieldByName(fnISBUSY).AsInteger := Interfac.IsBusy;
|
||
MemTable_Interfaces.FieldByName(fnValueI).AsFloat := Interfac.ValueI;
|
||
MemTable_Interfaces.FieldByName(fnNumPair).AsInteger := Interfac.NumPair;
|
||
MemTable_Interfaces.FieldByName(fnSignType).AsInteger := Interfac.SignType;
|
||
MemTable_Interfaces.FieldByName(fnSideSection).AsString := Interfac.SideSection;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if Interfac.TypeI = itConstructive then
|
||
begin
|
||
ChildSumValueI := TF_Main(GForm).DM.GetConnectedInterfacesValues(TF_Main(GForm).DM.scsQSelect, Interfac.ID);
|
||
MemTable_Interfaces.FieldByName(fnValueI).AsFloat := Interfac.ValueI - ChildSumValueI;
|
||
end;
|
||
MemTable_Interfaces.FieldByName(fnColor).AsInteger := Interfac.Color;
|
||
MemTable_Interfaces.FieldByName(fnIDadverse).AsInteger := Interfac.IDAdverse;
|
||
MemTable_Interfaces.FieldByName(fnSide).AsInteger := Interfac.Side;
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
MemTable_Interfaces.FieldByName(fnCoordZ).AsFloat := Interfac.CoordZ;
|
||
MemTable_Interfaces.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{with F_NormBase.DM do
|
||
begin
|
||
ChangeSQLQuery(scsQSelect, ' select name from interface where id = :id ');
|
||
MemTable_Interfaces.First;
|
||
while Not MemTable_Interfaces.Eof do
|
||
begin
|
||
scsQSelect.Close;
|
||
scsQSelect.SetParamAsInteger('id', MemTable_Interfaces.FieldByName('id_interface').AsInteger);
|
||
scsQSelect.ExecQuery;
|
||
|
||
MemTable_Interfaces.Edit;
|
||
MemTable_Interfaces.FieldByName(fnName).AsString := scsQSelect.GetFNAsString('Name');
|
||
MemTable_Interfaces.Post;
|
||
|
||
MemTable_Interfaces.Next;
|
||
end;
|
||
if MemTable_Interfaces.RecordCount > 0 then
|
||
MemTable_Interfaces.RecNo := 1;
|
||
end;}
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_InterfaceInfo.LoadInterfaces: '+E.Message);
|
||
end;
|
||
finally
|
||
MemTable_Interfaces.EnableControls;
|
||
GT_Interfaces.OnFocusedRecordChanged := GT_InterfacesFocusedRecordChanged;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Panel_BottomResize(Sender: TObject);
|
||
begin
|
||
//SetMiddleControlPos(Button_Close);
|
||
SetMiddleControlChilds(TControl(Sender), TControl(Self));
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.FormDestroy(Sender: TObject);
|
||
begin
|
||
DeactiveDataSets(Self);
|
||
|
||
FreeAndNil(FFilterBlock);
|
||
FreeAndNil(FFilterFieldValues);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Timer_TreeViewChangeTimer(Sender: TObject);
|
||
var
|
||
Node: TFlyNode;
|
||
ObjectNode: TObject;
|
||
//NodeDat: PObjectData;
|
||
MainTreeViewNode: TTreeNode;
|
||
Catalog: TCatalog;
|
||
SCSID: Integer;
|
||
SCSCatalog: TSCSCatalog;
|
||
currSCSComponent,SCSComponent: TSCSComponent;
|
||
WholeLineCompon: TWholeLineCompon;
|
||
LineComponTrace: TIntList;
|
||
ptrID: ^Integer;
|
||
Norm, NormItem: TSCSNorm;
|
||
NormObjects: TSCSObjectList;
|
||
CreatedNormObjects: Boolean;
|
||
//added by Tolik
|
||
ListCad : TF_Cad;
|
||
Figure : TFigure;
|
||
ExistsLineComponents: Boolean;
|
||
i,j: Integer;
|
||
FoundedNode: TTreeNode;
|
||
|
||
SavedScaleMode: Boolean;
|
||
|
||
begin
|
||
if IsOtherTimerToHandleInOrder(TTimer(Sender)) then
|
||
Exit; ///// EXIT /////
|
||
EnableTimerWithOrder(TTimer(Sender), false);
|
||
// changed by Tolik
|
||
// Node := TreeView.Selected;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//if TreeView.Visible then
|
||
|
||
//Tolik --10/05/2017 --
|
||
//TreeView.FlushSelection;
|
||
//
|
||
if not RzPageControl1.Visible then
|
||
begin
|
||
Node := TreeView.Selected;
|
||
end
|
||
else
|
||
begin
|
||
if RZPageControl1.ActivePage = tabSheet1 then
|
||
Node := TreeView2.Selected
|
||
else
|
||
begin
|
||
TreeView1.Visible := true;
|
||
Node := TreeView1.Selected;
|
||
end;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
LineComponTrace := nil;
|
||
ZeroMemory(@WholeLineCompon, SizeOf(TWholeLineCompon));
|
||
WholeLineCompon.WholeCompon := nil;
|
||
|
||
try
|
||
// InitCommonControl;
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
|
||
{ if GFormMode in [iimConnectedConObjects, iimDisconnectedConObjects,
|
||
iimConnectedLineCompons, iimDisconnectedLineCompons, iimCablesNoInCanals] then
|
||
begin
|
||
ObjectNode := nil;
|
||
if Node <> nil then
|
||
ObjectNode := Node.Data;
|
||
if ObjectNode = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSCatalog(ObjectNode).ID, false)
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSComponent(ObjectNode).ID, true);
|
||
if MainTreeViewNode <> nil then
|
||
TF_Main(GForm).SelectNodeDirect(MainTreeViewNode); //TF_Main(GForm).Tree_Catalog.Selected := MainTreeViewNode;
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
begin
|
||
SCSCatalog := TSCSCatalog(ObjectNode); //TF_Main(GForm).GSCSBase.CurrProject.GetCatalogFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
begin
|
||
SCSComponent := TSCSComponent(ObjectNode);
|
||
case SCSComponent.IsLine of
|
||
biFalse:
|
||
begin
|
||
//SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
biTrue:
|
||
begin
|
||
if (iimCablesNoInCanals = GFormMode) or (Node.Parent <> nil) then
|
||
begin
|
||
WholeLineCompon.WholeCompon := TIntList.Create;
|
||
WholeLineCompon.WholeCompon.Add(SCSComponent.ID);
|
||
|
||
LineComponTrace := TIntList.Create;
|
||
|
||
//SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
begin
|
||
//New(ptrID);
|
||
//ptrID^ := SCSCatalog.ScsID;
|
||
LineComponTrace.Add(SCSCatalog.ScsID);
|
||
end;
|
||
end
|
||
else
|
||
if Node.Parent = nil then
|
||
begin
|
||
WholeLineCompon := GetLineComponsInTrace(SCSComponent.ID, SCSComponent);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
LineComponTrace := GetTraceByListCompon(WholeLineCompon.WholeCompon);
|
||
end;
|
||
|
||
if LineComponTrace <> nil then
|
||
if LineComponTrace.Count > 0 then
|
||
begin
|
||
if Not(iimCablesNoInCanals = GFormMode) then
|
||
LoadInterfaces(WholeLineCompon.WholeCompon);
|
||
SelectConnectedCables(TF_Main(GForm).GSCSBase.CurrProject.CurrList.CurrID, LineComponTrace);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
LineComponTrace.Free; //FreeList(LineComponTrace);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
WholeLineCompon.WholeCompon.Free; //FreeList(WholeLineCompon.WholeCompon);
|
||
if WholeLineCompon.WholeComponObj <> nil then
|
||
WholeLineCompon.WholeComponObj.Free;
|
||
end
|
||
|
||
else
|
||
if GFormMode = iimNormComponents then
|
||
begin
|
||
mtComponents.Active := false;
|
||
mtComponents.Active := true;
|
||
if Node.Data <> nil then
|
||
begin
|
||
CreatedNormObjects := false;
|
||
Norm := nil;
|
||
if TObject(Node.Data) is TSCSNorm then
|
||
begin
|
||
//GT_ComponentsIsOn.Visible := true;
|
||
GT_Components.Bands[biNormData].Visible := true;
|
||
Norm := TSCSNorm(Node.Data);
|
||
NormObjects := GetComponentsFromCatalogByNorm(TSCSCatalog(FObject), Norm, false); //GetComonentsFromPrescurants(Norm.Preyscurants, false);
|
||
CreatedNormObjects := true;
|
||
//12.11.2013 - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//for i := 0 to TSCSCatalog(FObject).NormsResources.Norms.Count - 1 do
|
||
//begin
|
||
// NormItem := TSCSCatalog(FObject).NormsResources.Norms[i];
|
||
// if NormItem.GuidNB = Norm.GuidNB then
|
||
// NormObjects.Add(FObject);
|
||
//end;
|
||
end
|
||
else
|
||
if TObject(Node.Data) is TSCSObjectList then //14.11.2013 if TObject(Node.Data) is TSCSComponents then
|
||
begin
|
||
//GT_ComponentsIsOn.Visible := false;
|
||
GT_Components.Bands[biNormData].Visible := false;
|
||
NormObjects := TSCSObjectList(Node.Data); //14.11.2013 TSCSComponents(Node.Data);
|
||
end;
|
||
|
||
ExistsLineComponents := false;
|
||
if NormObjects <> nil then
|
||
begin
|
||
LoadNormObjects(Norm, NormObjects);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to NormObjects.Count - 1 do
|
||
if NormObjects[i] is TSCSComponent then
|
||
if TSCSComponent(NormObjects[i]).IsLine = biTrue then
|
||
begin
|
||
ExistsLineComponents := true;
|
||
Break; //// BREAK ////
|
||
end;
|
||
end;
|
||
GT_ComponentsExpenseForLength.Visible := ExistsLineComponents;
|
||
GT_ComponentsCountForPoint.Visible := ExistsLineComponents;
|
||
GT_ComponentsStepOfPoint.Visible := ExistsLineComponents;
|
||
|
||
if CreatedNormObjects then
|
||
FreeAndNil(NormObjects);
|
||
end;
|
||
end; }
|
||
// changed by Tolik
|
||
Case GFormMode of
|
||
iimConnectedConObjects, iimDisconnectedConObjects,
|
||
iimConnectedLineCompons, iimDisconnectedLineCompons, iimNoConnectedRoutes :
|
||
begin
|
||
for i := 0 to TreeView.Items.Count - 1 do
|
||
begin
|
||
if TFlyNode(TreeView.Items[i]).Selected then
|
||
TFlyNode(TreeView.Items[i]).Selected := True
|
||
else
|
||
TFlyNode(TreeView.Items[i]).Selected := False;
|
||
end;
|
||
ObjectNode := nil;
|
||
if Node <> nil then
|
||
ObjectNode := Node.Data;
|
||
if ObjectNode = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
// Tolik 13/02/2018
|
||
if ObjectNode is TSCSList then
|
||
begin
|
||
if TSCSList(ObjectNode).TreeViewNode <> nil then
|
||
TF_Main(F_ProjMan).SwitchInCAD(TSCSList(ObjectNode).TreeViewNode, ccOne)
|
||
else
|
||
begin
|
||
FoundedNode := TF_Main(F_ProjMan).FindComponOrDirInTree(TSCSList(ObjectNode).Id, false);
|
||
if FoundedNode <> nil then
|
||
TF_Main(F_ProjMan).SwitchInCAD(FoundedNode, ccOne);
|
||
end;
|
||
end;
|
||
//
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSCatalog(ObjectNode).ID, false)
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSComponent(ObjectNode).ID, true);
|
||
if MainTreeViewNode <> nil then
|
||
TF_Main(GForm).SelectNodeDirect(MainTreeViewNode); //TF_Main(GForm).Tree_Catalog.Selected := MainTreeViewNode;
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
begin
|
||
SCSCatalog := TSCSCatalog(ObjectNode); //TF_Main(GForm).GSCSBase.CurrProject.GetCatalogFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
begin
|
||
SCSComponent := TSCSComponent(ObjectNode);
|
||
case SCSComponent.IsLine of
|
||
biFalse:
|
||
begin
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
biTrue:
|
||
begin
|
||
if (iimCablesNoInCanals = GFormMode) or (Node.Parent <> nil) then
|
||
begin
|
||
WholeLineCompon.WholeCompon := TIntList.Create;
|
||
WholeLineCompon.WholeCompon.Add(SCSComponent.ID);
|
||
LineComponTrace := TIntList.Create;
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
begin
|
||
LineComponTrace.Add(SCSCatalog.ScsID);
|
||
end;
|
||
end
|
||
else
|
||
if Node.Parent = nil then
|
||
begin
|
||
WholeLineCompon := GetLineComponsInTrace(SCSComponent.ID, SCSComponent);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
LineComponTrace := GetTraceByListCompon(WholeLineCompon.WholeCompon);
|
||
end;
|
||
if LineComponTrace <> nil then
|
||
if LineComponTrace.Count > 0 then
|
||
begin
|
||
if Not(iimCablesNoInCanals = GFormMode) then
|
||
LoadInterfaces(WholeLineCompon.WholeCompon);
|
||
SelectConnectedCables(TF_Main(GForm).GSCSBase.CurrProject.CurrList.CurrID, LineComponTrace);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// Tolik 13/02/2018 -- <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if not (ObjectNode is TSCSList) then
|
||
begin
|
||
if GCadForm <> nil then
|
||
begin
|
||
SavedScaleMode := GCadForm.FListSettings.ScaleByCursor;
|
||
try
|
||
if GCadForm.FListSettings.ScaleByCursor then
|
||
GCadForm.FListSettings.ScaleByCursor := False;
|
||
GCadForm.SetZoomScale(StrToInt(FSCS_Main.cbScaleNoob.Text) - 1);
|
||
GCadForm.SetZoomScale(StrToInt(FSCS_Main.cbScaleNoob.Text));
|
||
RefreshCAD(GCadForm.PCad);
|
||
GCadForm.FListSettings.ScaleByCursor := SavedScaleMode;
|
||
except
|
||
on E: exception do
|
||
GCadForm.FListSettings.ScaleByCursor := SavedScaleMode;
|
||
end;
|
||
end;
|
||
end;
|
||
//
|
||
LineComponTrace.Free; //FreeList(LineComponTrace);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
WholeLineCompon.WholeCompon.Free; //FreeList(WholeLineCompon.WholeCompon);
|
||
if WholeLineCompon.WholeComponObj <> nil then
|
||
WholeLineCompon.WholeComponObj.Free;
|
||
end;
|
||
iimCablesNoInCanals :
|
||
begin
|
||
if RzPageControl1.Visible then
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
begin
|
||
ObjectNode := nil;
|
||
if Node <> nil then
|
||
ObjectNode := Node.Data;
|
||
if ObjectNode = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSCatalog(ObjectNode).ID, false)
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(TSCSComponent(ObjectNode).ID, true);
|
||
if MainTreeViewNode <> nil then
|
||
TF_Main(GForm).SelectNodeDirect(MainTreeViewNode); //TF_Main(GForm).Tree_Catalog.Selected := MainTreeViewNode;
|
||
|
||
if ObjectNode is TSCSCatalog then
|
||
begin
|
||
SCSCatalog := TSCSCatalog(ObjectNode); //TF_Main(GForm).GSCSBase.CurrProject.GetCatalogFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end
|
||
else
|
||
if ObjectNode is TSCSComponent then
|
||
begin
|
||
SCSComponent := TSCSComponent(ObjectNode);
|
||
case SCSComponent.IsLine of
|
||
biFalse:
|
||
begin
|
||
//SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.ListID, SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
biTrue:
|
||
begin
|
||
if (iimCablesNoInCanals = GFormMode) or (Node.Parent <> nil) then
|
||
begin
|
||
WholeLineCompon.WholeCompon := TIntList.Create;
|
||
WholeLineCompon.WholeCompon.Add(SCSComponent.ID);
|
||
LineComponTrace := TIntList.Create;
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
begin
|
||
LineComponTrace.Add(SCSCatalog.ScsID);
|
||
end;
|
||
end
|
||
else
|
||
if Node.Parent = nil then
|
||
begin
|
||
WholeLineCompon := GetLineComponsInTrace(SCSComponent.ID, SCSComponent);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
LineComponTrace := GetTraceByListCompon(WholeLineCompon.WholeCompon);
|
||
end;
|
||
if LineComponTrace <> nil then
|
||
if LineComponTrace.Count > 0 then
|
||
begin
|
||
if Not(iimCablesNoInCanals = GFormMode) then
|
||
LoadInterfaces(WholeLineCompon.WholeCompon);
|
||
SelectConnectedCables(TF_Main(GForm).GSCSBase.CurrProject.CurrList.CurrID, LineComponTrace);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
LineComponTrace.Free; //FreeList(LineComponTrace);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
WholeLineCompon.WholeCompon.Free; //FreeList(WholeLineCompon.WholeCompon);
|
||
if WholeLineCompon.WholeComponObj <> nil then
|
||
WholeLineCompon.WholeComponObj.Free;
|
||
end
|
||
else
|
||
begin
|
||
// deselect all figures on current project
|
||
for i := 0 to TF_Main(GForm).GSCSBase.CurrProject.ChildCatalogReferences.Count-1 do
|
||
begin
|
||
SCSCatalog := TF_Main(GForm).GSCSBase.CurrProject.ChildCatalogReferences[i];
|
||
if SCSCatalog.ItemType = itList then
|
||
begin
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
ListCad := GetListByID(SCSCatalog.SCSID);
|
||
for j := 0 to ListCad.PCad.FigureCount-1 do
|
||
begin
|
||
Figure := TFigure(ListCad.PCad.Figures[j]);
|
||
Figure.Selected := false;
|
||
end;
|
||
end;
|
||
end; // deselect end
|
||
// select current Cable
|
||
ObjectNode := nil;
|
||
if Node <> nil then
|
||
begin
|
||
ObjectNode := Node.Data;
|
||
if ObjectNode is TSCSComponent then
|
||
begin
|
||
SCSComponent := TSCSComponent(ObjectNode);
|
||
SCSComponent.LoadWholeComponent(true);
|
||
for i := 0 to SCSComponent.WholeComponent.Count - 1 do
|
||
begin
|
||
currSCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(SCSComponent.WholeComponent[i]);
|
||
SCSCatalog := currSCSComponent.GetFirstParentCatalog;
|
||
ListCad := GetListByID(SCSCatalog.GetListOwner.SCSID);
|
||
Figure := GetFigureByID(ListCad,SCSCatalog.SCSID);
|
||
Figure.selected := true;
|
||
ListCad.PCad.Refresh;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
iimNormComponents :
|
||
begin
|
||
mtComponents.Active := false;
|
||
mtComponents.Active := true;
|
||
if Node.Data <> nil then
|
||
begin
|
||
CreatedNormObjects := false;
|
||
Norm := nil;
|
||
if TObject(Node.Data) is TSCSNorm then
|
||
begin
|
||
GT_Components.Bands[biNormData].Visible := true;
|
||
Norm := TSCSNorm(Node.Data);
|
||
NormObjects := GetComponentsFromCatalogByNorm(TSCSCatalog(FObject), Norm, false); //GetComonentsFromPrescurants(Norm.Preyscurants, false);
|
||
CreatedNormObjects := true;
|
||
end
|
||
else
|
||
if TObject(Node.Data) is TSCSObjectList then //14.11.2013 if TObject(Node.Data) is TSCSComponents then
|
||
begin
|
||
GT_Components.Bands[biNormData].Visible := false;
|
||
NormObjects := TSCSObjectList(Node.Data); //14.11.2013 TSCSComponents(Node.Data);
|
||
end;
|
||
|
||
ExistsLineComponents := false;
|
||
if NormObjects <> nil then
|
||
begin
|
||
LoadNormObjects(Norm, NormObjects);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to NormObjects.Count - 1 do
|
||
if NormObjects[i] is TSCSComponent then
|
||
if TSCSComponent(NormObjects[i]).IsLine = biTrue then
|
||
begin
|
||
ExistsLineComponents := true;
|
||
Break; //// BREAK ////
|
||
end;
|
||
end;
|
||
GT_ComponentsExpenseForLength.Visible := ExistsLineComponents;
|
||
GT_ComponentsCountForPoint.Visible := ExistsLineComponents;
|
||
GT_ComponentsStepOfPoint.Visible := ExistsLineComponents;
|
||
|
||
if CreatedNormObjects then
|
||
FreeAndNil(NormObjects);
|
||
end;
|
||
end;
|
||
end; // end Case
|
||
SetControls;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_InterfaceInfo.Timer_TreeViewChangeTimer: '+E.Message);
|
||
end;
|
||
end;
|
||
// Tolik -- 13/05/2017 --
|
||
procedure TF_InterfaceInfo.EnableDisableTreeViewPopup;
|
||
begin
|
||
if TreeView.Items.Count = 0 then
|
||
begin
|
||
TreeView.PopupMenu := nil;
|
||
Act_DelCompons.Enabled := False;
|
||
Act_DeleteAllCompons.Enabled := False;
|
||
end
|
||
else
|
||
begin
|
||
TreeView.PopupMenu := PopupMenu1;
|
||
Act_DelCompons.Enabled := True;
|
||
Act_DeleteAllCompons.Enabled := True;
|
||
end;
|
||
end;
|
||
//
|
||
|
||
procedure TF_InterfaceInfo.TreeViewChange(Sender: TObject;
|
||
Node: TFlyNode);
|
||
{var
|
||
NodeDat: PObjectData;
|
||
MainTreeViewNode: TTreeNode;
|
||
Catalog: TCatalog;
|
||
SCSID: Integer;
|
||
SCSCatalog: TSCSCatalog;
|
||
SCSComponent: TSCSComponent;
|
||
|
||
WholeLineCompon: TWholeLineCompon;
|
||
LineComponTrace: TIntList;
|
||
ptrID: ^Integer;
|
||
Norm: TSCSNorm;
|
||
NormComponents: TSCSComponents;
|
||
CreatedNormComponents: Boolean;
|
||
|
||
ExistsLineComponents: Boolean;
|
||
i: Integer;}
|
||
begin
|
||
// Tolik 10/04/2017 --
|
||
{ if GFormMode in [iimConnectedConObjects, iimDisconnectedConObjects, iimConnectedLineCompons, iimDisconnectedLineCompons] then
|
||
F_ProjMan.Tree_Catalog.ClearSelection(True); }
|
||
//
|
||
EnableTimerWithOrder(Timer_TreeViewChange, true);
|
||
{
|
||
LineComponTrace := nil;
|
||
WholeLineCompon.WholeCompon := nil;
|
||
try
|
||
if GFormMode in [iimConnectedConObjects, iimDisconnectedConObjects, iimConnectedLineCompons, iimDisconnectedLineCompons] then
|
||
begin
|
||
NodeDat := Node.Data;
|
||
if NodeDat = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
if NodeDat.ItemType = itSCSConnector then
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(NodeDat.ObjectID, false)
|
||
else
|
||
MainTreeViewNode := TF_Main(GForm).FindComponOrDirInTree(NodeDat.ObjectID, true);
|
||
if MainTreeViewNode <> nil then
|
||
TF_Main(GForm).Tree_Catalog.Selected := MainTreeViewNode;
|
||
|
||
case NodeDat.ItemType of
|
||
itSCSConnector:
|
||
begin
|
||
SCSCatalog := TF_Main(GForm).GSCSBase.CurrProject.GetCatalogFromReferences(NodeDat.ObjectID);
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
itComponCon:
|
||
begin
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
SelectConnectedConnector(SCSCatalog.SCSID); // <20><> <20><><EFBFBD>
|
||
end;
|
||
itComponLine:
|
||
begin
|
||
if Node.Parent = nil then
|
||
begin
|
||
WholeLineCompon := GetLineComponsInTrace(NodeDat.ObjectID);
|
||
if WholeLineCompon.WholeCompon <> nil then
|
||
LineComponTrace := GetTraceByListCompon(WholeLineCompon.WholeCompon);
|
||
end
|
||
else
|
||
begin
|
||
WholeLineCompon.WholeCompon := TIntList.Create;
|
||
WholeLineCompon.WholeCompon.Add(NodeDat.ObjectID);
|
||
|
||
LineComponTrace := TIntList.Create;
|
||
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(NodeDat.ObjectID);
|
||
SCSCatalog := nil;
|
||
if Assigned(SCSComponent) then
|
||
SCSCatalog := SCSComponent.GetFirstParentCatalog;
|
||
if Assigned(SCSCatalog) then
|
||
begin
|
||
//New(ptrID);
|
||
//ptrID^ := SCSCatalog.ScsID;
|
||
LineComponTrace.Add(SCSCatalog.ScsID);
|
||
end;
|
||
end;
|
||
if LineComponTrace <> nil then
|
||
if LineComponTrace.Count > 0 then
|
||
begin
|
||
LoadInterfaces(WholeLineCompon.WholeCompon);
|
||
SelectConnectedCables(LineComponTrace);
|
||
end;
|
||
end;
|
||
end;
|
||
LineComponTrace.Free; //FreeList(LineComponTrace);
|
||
WholeLineCompon.WholeCompon.Free; //FreeList(WholeLineCompon.WholeCompon);
|
||
end
|
||
else
|
||
if GFormMode = iimNormComponents then
|
||
begin
|
||
mtComponents.Active := false;
|
||
mtComponents.Active := true;
|
||
if Node.Data <> nil then
|
||
begin
|
||
CreatedNormComponents := false;
|
||
Norm := nil;
|
||
if TObject(Node.Data) is TSCSNorm then
|
||
begin
|
||
//GT_ComponentsIsOn.Visible := true;
|
||
GT_Components.Bands[biNormData].Visible := true;
|
||
Norm := TSCSNorm(Node.Data);
|
||
NormComponents := GetComonentsFromPrescurants(Norm.Preyscurants);
|
||
CreatedNormComponents := true;
|
||
end
|
||
else
|
||
if TObject(Node.Data) is TSCSComponents then
|
||
begin
|
||
//GT_ComponentsIsOn.Visible := false;
|
||
GT_Components.Bands[biNormData].Visible := false;
|
||
NormComponents := TSCSComponents(Node.Data);
|
||
end;
|
||
|
||
ExistsLineComponents := false;
|
||
if NormComponents <> nil then
|
||
begin
|
||
LoadNormComponents(Norm, NormComponents);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to NormComponents.Count - 1 do
|
||
if NormComponents[i].IsLine = biTrue then
|
||
begin
|
||
ExistsLineComponents := true;
|
||
Break; //// BREAK ////
|
||
end;
|
||
end;
|
||
GT_ComponentsExpenseForLength.Visible := ExistsLineComponents;
|
||
|
||
|
||
if CreatedNormComponents then
|
||
FreeAndNil(NormComponents);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_InterfaceInfo.TreeViewChange: '+E.Message);
|
||
end;}
|
||
// Tolik -- 13/05/2017 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
EnableDisableTreeViewPopup;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TreeViewGetNodeAttributes(Node: TFlyNode;
|
||
Column: Integer; aFont: TFont; var BackColor: TColor;
|
||
var Alignment: TAlignment);
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if GFormMode = iimNormComponents then
|
||
if (Node <> nil) and (Node.Index = 0) then
|
||
begin
|
||
if Node.Data <> nil then
|
||
if TObject(Node.Data) is TSCSObjectList then //14.11.2013 if TObject(Node.Data) is TSCSComponents then
|
||
aFont.Style := aFont.Style + [fsBold];
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_Components_SignTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
if AText = IntToStr(oitProjectible) then
|
||
AText := cInterfaceInfo_Msg7_1
|
||
else
|
||
if AText = IntToStr(oitActive) then
|
||
AText := cInterfaceInfo_Msg7_2;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_Components_FocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
SCSComponent: TSCSComponent;
|
||
SCSObject: TSCSCatalog;
|
||
begin
|
||
if mtComponents.Active then
|
||
if mtComponents.RecordCount > 0 then
|
||
begin
|
||
SCSComponent := nil;
|
||
SCSObject := nil;
|
||
|
||
if cbSelectComponInCAD.Checked then
|
||
begin
|
||
SCSComponent := TSCSComponent(mtComponents.FieldByName(fnObjectAddress).AsInteger);
|
||
if SCSComponent <> nil then
|
||
begin
|
||
SCSObject := SCSComponent.GetFirstParentCatalog;
|
||
TF_Main(GForm).SelectComponByIDInTree(SCSComponent.ID);
|
||
end;
|
||
if SCSObject <> nil then
|
||
SelectObjectInCAD(SCSObject.ListID, SCSObject.SCSID, '');
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsSignTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
{if AText = IntToStr(oitProjectible) then
|
||
AText := cInterfaceInfo_Msg7_1
|
||
else
|
||
if AText = IntToStr(oitActive) then
|
||
AText := cInterfaceInfo_Msg7_2; }
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Timer_PostNormComponentsTimer(Sender: TObject);
|
||
var
|
||
SCSNorm: TSCSNorm;
|
||
SCSComponent: TSCSComponent;
|
||
ptrProperty: PProperty;
|
||
begin
|
||
if IsOtherTimerToHandleInOrder(TTimer(Sender)) then
|
||
Exit; ///// EXIT /////
|
||
EnableTimerWithOrder(TTimer(Sender), false);
|
||
//TTimer(Sender).Enabled := false;
|
||
|
||
try
|
||
if GT_Components.DataController.IsEditing and (mtComponents.State <> dsBrowse) then
|
||
begin
|
||
GT_Components.DataController.Post;
|
||
|
||
SaveSelectedNormResource;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.Timer_PostNormComponentsTimer', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsEditValueChanged(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
|
||
begin
|
||
//FEditedBandIndex := TcxGridDBBandedColumn(AItem).Position.BandIndex;
|
||
//FEditedFieldName := TcxGridDBBandedColumn(AItem).DataBinding.FieldName;
|
||
if Sender.DataController.IsEditing and (mtComponents.State <> dsBrowse) then
|
||
begin
|
||
EnableTimerWithOrder(Timer_PostNormComponents, true, true);
|
||
//Timer_PostNormComponents.Enabled := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
SCSObjCompon: TSCSComponCatalogClass;
|
||
SCSObject: TSCSCatalog;
|
||
i: Integer;
|
||
NormIsFromInterface: Integer;
|
||
begin
|
||
if mtComponents.Active then
|
||
if mtComponents.RecordCount > 0 then
|
||
begin
|
||
SCSObjCompon := nil;
|
||
SCSObject := nil;
|
||
|
||
//*** <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
NormIsFromInterface := mtComponents.FieldByName(fnIsFromInterface).AsInteger;
|
||
//for i := 0 to TcxGridDBBandedTableView(Sender).Bands[biNormData].ColumnCount - 1 do
|
||
// TcxGridDBBandedTableView(Sender).Bands[biNormData].Columns[i].Options.Editing := (NormIsFromInterface = biFalse);
|
||
GT_ComponentsKolvo.Options.Editing := (NormIsFromInterface = biFalse);
|
||
GT_ComponentsExpenseForLength.Options.Editing := (NormIsFromInterface = biFalse) and
|
||
(mtComponents.FieldByName(fnIsLine).AsInteger = biTrue);
|
||
GT_ComponentsCountForPoint.Options.Editing := GT_ComponentsExpenseForLength.Options.Editing;
|
||
GT_ComponentsStepOfPoint.Options.Editing := GT_ComponentsExpenseForLength.Options.Editing;
|
||
|
||
if cbSelectComponInCAD.Checked then
|
||
begin
|
||
SCSObjCompon := TSCSComponCatalogClass(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
if SCSObjCompon is TSCSComponent then
|
||
begin
|
||
if SCSObjCompon <> nil then
|
||
begin
|
||
SCSObject := TSCSComponent(SCSObjCompon).GetFirstParentCatalog;
|
||
TF_Main(GForm).SelectComponByIDInTree(SCSObjCompon.ID);
|
||
end;
|
||
//if SCSObject <> nil then
|
||
// SelectObjectInCAD(SCSObject.ListID, SCSObject.SCSID, '');
|
||
end
|
||
else
|
||
if SCSObjCompon is TSCSCatalog then
|
||
begin
|
||
SCSObject := TSCSCatalog(SCSObjCompon);
|
||
TF_Main(GForm).SelectObjByIDInTree(SCSObjCompon.ID);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_AddNormExecute(Sender: TObject);
|
||
var
|
||
SCSObjCompon: TSCSComponCatalogClass;
|
||
ComponCurrencyProperGlobalMainInNB: TCurrency;
|
||
NormFromSprav: TSCSNorm;
|
||
NormFromCompon: TSCSNorm;
|
||
NormFromNode: TSCSNorm;
|
||
NormNode: TFlyNode;
|
||
NodeWithComponsWithoutNorms: TFlyNode;
|
||
begin
|
||
try
|
||
if GFormMode = iimNormComponents then
|
||
begin
|
||
SCSObjCompon := TSCSComponCatalogClass(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
|
||
if SCSObjCompon is TSCSComponent then
|
||
ComponCurrencyProperGlobalMainInNB := TF_Main(GForm).DM.GetCatalogOrComponCurrencyProperGlobalMainInNB(0, SCSObjCompon.ID)
|
||
else
|
||
ComponCurrencyProperGlobalMainInNB := TF_Main(GForm).GLocalCurrencyM.Data;
|
||
|
||
NormFromSprav := TF_Main(GForm).DM.GetNormFromSpravochnik(fmMake, '', SCSObjCompon.ID,
|
||
ComponCurrencyProperGlobalMainInNB, TF_Main(GForm).GLocalCurrencyM.Data);
|
||
|
||
if NormFromSprav <> nil then
|
||
begin
|
||
NormFromCompon := SCSObjCompon.NormsResources.Norms.GetNormByGuidNB(NormFromSprav.GuidNB, true);
|
||
//if NormFromCompon <> nil then
|
||
//begin
|
||
// MessageModal(cNameNormB+' '+NormFromSprav.Name+' '+cNowExists+'.', ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
// FreeAndNil(NormFromSprav);
|
||
//end
|
||
//else
|
||
begin
|
||
NormFromSprav.Kolvo := 1;
|
||
|
||
AddNormToCurrComponInMT(NormFromSprav);
|
||
{NormNode := GetNodeByNormGUIDNB(NormFromSprav.GuidNB);
|
||
NormFromNode := nil;
|
||
if NormNode = nil then
|
||
begin
|
||
NormFromNode := TSCSNorm.Create(GForm, ntProj);
|
||
NormFromNode.Assign(NormFromSprav);
|
||
|
||
NormNode := TreeView.Items.Add(nil, NormFromNode.Name);
|
||
NormNode.Data := NormFromNode;
|
||
NormNode.ImageIndex := -1;
|
||
NormNode.SelectedIndex := -1;
|
||
end
|
||
else
|
||
NormFromNode := TSCSNorm(NormNode.Data);
|
||
if NormFromNode <> nil then
|
||
begin
|
||
NormFromSprav.MasterTableKind := ctkComponent;
|
||
SCSComponent.NormsResources.Norms.Add(NormFromSprav);
|
||
NormFromSprav.SaveNormAsNew(NormFromSprav.IDMaster);
|
||
|
||
if GetPreyscurantFromNormByCompon(NormFromNode, SCSComponent) = nil then
|
||
AddPreyscurantToNorm(NormFromNode, SCSComponent, itConstructive);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if TreeView.Selected = NormNode then
|
||
AddNormSCSObjComponToMT(SCSComponent, NormFromSprav);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><> <20> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD> <20><><EFBFBD><EFBFBD>", <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
NodeWithComponsWithoutNorms := GetNodeWithComponsWithoutNorms;
|
||
if NodeWithComponsWithoutNorms <> nil then
|
||
if TreeView.Selected = NodeWithComponsWithoutNorms then
|
||
begin
|
||
TSCSComponents(NodeWithComponsWithoutNorms.Data).Remove(SCSComponent);
|
||
mtComponents.Delete;
|
||
end;
|
||
end;}
|
||
end;
|
||
end;
|
||
SetControls;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.Act_AddNormExecute', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_DelNormExecute(Sender: TObject);
|
||
var
|
||
SCSComponent: TSCSComponent;
|
||
NormFromMT: TSCSNorm;
|
||
NormGUID: string;
|
||
NormFromNode: TSCSNorm;
|
||
NormNode: TFlyNode;
|
||
NodeWithComponsWithoutNorms: TFlyNode;
|
||
begin
|
||
try
|
||
if GFormMode = iimNormComponents then
|
||
begin
|
||
SCSComponent := TSCSComponent(mtComponents.FieldByName(fnComponObjectAddress).AsInteger);
|
||
NormFromMT := TSCSNorm(mtComponents.FieldByName(fnNormObjectAddress).AsInteger);
|
||
|
||
if NormFromMT <> nil then
|
||
begin
|
||
if GUseVisibleInterfaces and (NormFromMT.IsFromInterface = biTrue) then
|
||
MessageModal(cImpossibleDelNorm+' "'+ NormFromMT.Name +'" '+cbMessage5, cDeletingNorm, MB_ICONINFORMATION or MB_OK)
|
||
else
|
||
if MessageModal(cQuastDelNorm+' "'+ NormFromMT.Name +'"?', cDeletingNorm, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
mtComponents.Delete;
|
||
|
||
NormNode := GetNodeByNormGUIDNB(NormFromMT.GuidNB);
|
||
NormGUID := NormFromMT.GuidNB;
|
||
|
||
SCSComponent.NormsResources.Norms.Remove(NormFromMT);
|
||
FreeAndNil(NormFromMT);
|
||
|
||
if NormNode <> nil then
|
||
begin
|
||
NormFromNode := TSCSNorm(NormNode.Data);
|
||
if NormFromNode <> nil then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if SCSComponent.NormsResources.Norms.GetNormByGuidNB(NormGUID, true) = nil then
|
||
RemovePreyscurantFromNorm(NormFromNode, SCSComponent);
|
||
//*** <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if NormFromNode.Preyscurants.Count = 0 then
|
||
begin
|
||
FreeAndNil(NormFromNode);
|
||
NormNode.Delete;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if SCSComponent.NormsResources.Norms.Count = 0 then
|
||
begin
|
||
NodeWithComponsWithoutNorms := GetNodeWithComponsWithoutNorms;
|
||
if NodeWithComponsWithoutNorms <> nil then
|
||
TSCSObjectList(NodeWithComponsWithoutNorms.Data).Add(SCSComponent); //14.11.2013 TSCSComponents(NodeWithComponsWithoutNorms.Data).Add(SCSComponent);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
SetControls;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.Act_DelNormExecute', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TreeViewDragOver(Sender, Source: TObject; X,
|
||
Y: Integer; State: TDragState; var Accept: Boolean);
|
||
var
|
||
TargetNode: TFlyNode;
|
||
begin
|
||
Accept := false;
|
||
|
||
try
|
||
TargetNode := TreeView.GetNodeAt(X, Y);
|
||
if TargetNode <> nil then
|
||
if Source is TcxDragControlObject then
|
||
begin
|
||
if TObject(TargetNode.Data) is TSCSNorm then
|
||
Accept := true;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.TreeViewDragOver', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TreeViewDragDrop(Sender, Source: TObject; X,
|
||
Y: Integer);
|
||
var
|
||
TargetNode: TFlyNode;
|
||
NewNorm: TSCSNorm;
|
||
begin
|
||
try
|
||
TargetNode := TreeView.GetNodeAt(X, Y);
|
||
if TargetNode <> nil then
|
||
if Source is TcxDragControlObject then
|
||
begin
|
||
if TObject(TargetNode.Data) is TSCSNorm then
|
||
begin
|
||
NewNorm := TSCSNorm.Create(GForm, ntProj);
|
||
NewNorm.AssignOnlyNorm(TSCSNorm(TargetNode.Data));
|
||
NewNorm.Kolvo := 1;
|
||
NewNorm.IsFromInterface := biFalse;
|
||
|
||
AddNormToCurrComponInMT(NewNorm);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.TreeViewDragDrop', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsLaborTimePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnLaborTime).AsInteger);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnLaborTime).AsFloat := ValueFloat;
|
||
mtComponents.Post;
|
||
|
||
TF_Main(GForm).DM.CalcNormCostTime(mtComponents, fnLaborTime, IsCalcNormTotal); //15.11.2013
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsPricePerTimePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnPricePerTime).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnPricePerTime).AsFloat := ValueFloat;
|
||
mtComponents.Post;
|
||
|
||
TF_Main(GForm).DM.CalcNormCostTime(mtComponents, fnPricePerTime, IsCalcNormTotal); //15.11.2013
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsCostPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnCost).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnCost).AsFloat := ValueFloat;
|
||
mtComponents.Post;
|
||
|
||
TF_Main(GForm).DM.CalcNormCostTime(mtComponents, fnCost, IsCalcNormTotal); //15.11.2013
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsKolvoPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnKolvo).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnKolvo).AsFloat := ValueFloat;
|
||
mtComponents.FieldByName(fnExpenseForLength).AsFloat := 0;
|
||
mtComponents.FieldByName(fnCountForPoint).AsFloat := 0;
|
||
mtComponents.FieldByName(fnStepOfPoint).AsFloat := 0;
|
||
mtComponents.Post;
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsLaborTimeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextToNORMLaborTime(AText);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsExpenseForLengthGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextToNORMExpenseForLength(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsExpenseForLengthPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> TF_Main(GForm).FUOM <20><> <20><><EFBFBD><EFBFBD>
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnExpenseForLength).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
ValueFloat := FloatInUOM(ValueFloat, umMetr, TF_Main(GForm).FUOM);
|
||
|
||
mtComponents.Edit;
|
||
mtComponents.FieldByName(fnExpenseForLength).AsFloat := RoundCP(ValueFloat);
|
||
|
||
mtComponents.FieldByName(fnKolvo).AsFloat := 0;
|
||
mtComponents.FieldByName(fnCountForPoint).AsFloat := 0;
|
||
mtComponents.FieldByName(fnStepOfPoint).AsFloat := 0;
|
||
mtComponents.Post;
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsCountForPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnCountForPoint).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
//mtComponents.Edit;
|
||
//mtComponents.FieldByName(fnCountForPoint).AsFloat := RoundCP(ValueFloat);
|
||
//mtComponents.Post;
|
||
InputFloatToRelatedZeroFieldInMT(mtComponents, ValueFloat, fnCountForPoint, fnStepOfPoint,
|
||
fnKolvo+';'+fnExpenseForLength, cAddComponent_Msg20_1, true, TF_Main(GForm).FUOM);
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsStepOfPointGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextInFLoatUOM(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsStepOfPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(mtComponents.FieldByName(fnStepOfPoint).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
ValueFloat := FloatInUOM(ValueFloat, TF_Main(GForm).FUOM, umMetr);
|
||
|
||
//mtComponents.Edit;
|
||
//mtComponents.FieldByName(fnStepOfPoint).AsFloat := RoundCP(ValueFloat);
|
||
//mtComponents.Post;
|
||
InputFloatToRelatedZeroFieldInMT(mtComponents, ValueFloat, fnStepOfPoint, fnCountForPoint,
|
||
fnKolvo+';'+fnExpenseForLength, cAddComponent_Msg20_2, false, TF_Main(GForm).FUOM);
|
||
|
||
SaveSelectedNormResource;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TF_InterfaceInfo.GT_ComponentsInitEdit(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem;
|
||
AEdit: TcxCustomEdit);
|
||
begin
|
||
FEditedBandIndex := TcxGridDBBandedColumn(AItem).Position.BandIndex;
|
||
FEditedFieldName := TcxGridDBBandedColumn(AItem).DataBinding.FieldName;
|
||
|
||
if AItem = GT_ComponentsExpenseForLength then
|
||
AEdit.EditValue := GetDisplayTextToNORMExpenseForLength(AEdit.EditValue, TF_Main(GForm).FUOM)
|
||
else
|
||
if AItem = GT_ComponentsStepOfPoint then
|
||
AEdit.EditValue := GetDisplayTextInFLoatUOM(AEdit.EditValue, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_FilterExecute(Sender: TObject);
|
||
begin
|
||
if FFilterBlock.GetActiveConditionCount = 0 then
|
||
begin
|
||
FFilterBlock.IsOn := false;
|
||
Act_FilterProperties.Execute;
|
||
SetFilterControls;
|
||
end
|
||
else
|
||
begin
|
||
FFilterBlock.IsOn := Not FFilterBlock.IsOn;
|
||
ApplyFilter(nil);
|
||
SaveFilterToProject;
|
||
SetFilterControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_FilterPropertiesExecute(Sender: TObject);
|
||
var
|
||
i: Integer;
|
||
F_FilterConfigurator: TF_FilterConfigurator;
|
||
OldFilterBlock: TFilterBlock;
|
||
begin
|
||
try
|
||
F_FilterConfigurator := TF_FilterConfigurator.Create(Self, Self);
|
||
|
||
F_FilterConfigurator.Caption := cFilterConfigurator1;
|
||
F_FilterConfigurator.ColumnCaptionConditionType := cFilterConfigurator2_1;
|
||
F_FilterConfigurator.ColumnCaptionFieldName := cFilterConfigurator2_2;
|
||
F_FilterConfigurator.ColumnCaptionCompareType := cFilterConfigurator2_3;
|
||
F_FilterConfigurator.ColumnCaptionValue := cFilterConfigurator2_4;
|
||
|
||
F_FilterConfigurator.OpenSaveDialogFilter := GetDialogFilter(exdComponFilter, enCfr);
|
||
F_FilterConfigurator.OpenDialog.InitialDir := ExtractDirByCategoryType(dctFilters); //14.04.2009 ExtractSaveDirForCategory(sdFilters); //07.04.2009 ExtractFileDir(ParamStr(0));
|
||
F_FilterConfigurator.OpenDialog.Title := exdComponFilter;
|
||
F_FilterConfigurator.OpenDialog.DefaultExt := '*.'+enCfr;
|
||
F_FilterConfigurator.SaveDialog.InitialDir := ExtractDirByCategoryType(dctFilters); //14.04.2009 ExtractSaveDirForCategory(sdFilters); //07.04.2009 ExtractFileDir(ParamStr(0));
|
||
F_FilterConfigurator.SaveDialog.Title := exdComponFilter;
|
||
F_FilterConfigurator.SaveDialog.DefaultExt := '*.'+enCfr;
|
||
if F_FilterConfigurator.Execute(FFilterFieldValues, FFilterBlock, FFilteTypeFile) then
|
||
begin
|
||
OldFilterBlock := FFilterBlock;
|
||
FFilterBlock := F_FilterConfigurator.GetMainFilterBlock;
|
||
|
||
ApplyFilter(OldFilterBlock);
|
||
|
||
if OldFilterBlock <> nil then
|
||
FreeAndNil(OldFilterBlock);
|
||
|
||
SaveFilterToProject;
|
||
|
||
SetFilterControls;
|
||
|
||
{FFilterParams.DefineIsUseFilterField;
|
||
|
||
DM.DefineIsOnFilterBlocks(FFilterParams, false);
|
||
ApplyComponentFilter(OldFilterParams, FFilterParams, false);
|
||
SaveComponFilter;
|
||
|
||
if OldFilterParams <> nil then
|
||
FreeAndNil(OldFilterParams);
|
||
|
||
if cbFindComponsAfterFilterConfigurator.Checked then
|
||
Act_FindComponsByFilter.Execute;}
|
||
end;
|
||
FreeAndNil(F_FilterConfigurator);
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.Act_FilterPropertiesExecute', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ToolButton5Click(Sender: TObject);
|
||
begin
|
||
TreeView.Items.BeginUpdate;
|
||
TreeView.Selected.Hidden := true;
|
||
TreeView.Items.EndUpdate;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.ToolButton6Click(Sender: TObject);
|
||
begin
|
||
TreeView.Items.BeginUpdate;
|
||
TreeView.Selected.Show(True);
|
||
TreeView.Items.EndUpdate;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TreeViewExpanding(Sender: TObject;
|
||
Node: TFlyNode; var AllowExpansion: Boolean);
|
||
var
|
||
ChildNode: TFlyNode;
|
||
begin
|
||
try
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
ChildNode := Node.getFirstChild;
|
||
while ChildNode <> nil do
|
||
begin
|
||
ChildNode.Hidden := Not IsVisibleNodeByFilter(ChildNode, true);
|
||
ChildNode := ChildNode.GetNextSibling;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.TreeViewExpanding', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_SaveToExcelExecute(Sender: TObject);
|
||
var
|
||
SaveDialog: {TSavePictureDialog; //}TSaveDialog;
|
||
xf: TXLSFile;
|
||
Range: TRange;
|
||
|
||
Node: TFlyNode;
|
||
StartColumn: Integer;
|
||
WriteCount: Integer;
|
||
TitleRow: Integer;
|
||
WriteColumn: Integer;
|
||
MaxColumn: Integer;
|
||
SCSProjCatalog: TSCSProject;
|
||
|
||
IsOpenFileAfterSave: Boolean;
|
||
begin
|
||
try
|
||
SaveDialog := {TSavePictureDialog.Create(Self); //}TSaveDialog.Create(Self);
|
||
try
|
||
SaveDialog.Title := '';
|
||
SaveDialog.InitialDir := ExtractSaveDir;
|
||
SaveDialog.DefaultExt := '*.'+enXls;
|
||
SaveDialog.FileName := GetNoExistsFileNameForCopy(FileNameCorrect(Caption));
|
||
SaveDialog.Filter := GetDialogFilter(exdXls, enXls); //ExtName+' ('+FullExtName+')|'+FullExtName;
|
||
SaveDialog.Options := SaveDialog.Options - [ofNoChangeDir] + [ofOverwritePrompt];
|
||
//SaveDialog.OnShow
|
||
//SaveDialog.OnClose;
|
||
|
||
IsOpenFileAfterSave := true;
|
||
if TF_Main(GForm).ExecuteDialogWithCheckBox(SaveDialog, cInterfaceInfo_Msg10, @IsOpenFileAfterSave) then
|
||
begin
|
||
BeginProgress;
|
||
try
|
||
Application.ProcessMessages;
|
||
xf := TXLSFile.Create;
|
||
try
|
||
Node := nil;
|
||
WriteCount := 0;
|
||
StartColumn := 1;
|
||
MaxColumn := StartColumn;
|
||
|
||
SCSProjCatalog := TSCSCatalog(FObject).GetProject;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
WriteCount := WriteCount + 1;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := DateToStr(Date)+' '+cResourceReport_Msg24 +ApplicationName+' '+VersionEXE;
|
||
WriteCount := WriteCount + 2;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := cRepMsg03+': '+SCSProjCatalog.GetNameForVisible;
|
||
WriteCount := WriteCount + 1;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if FObject is TSCSList then
|
||
begin
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := cRepMsg10+': '+TSCSList(FObject).GetNameForVisible;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
WriteCount := WriteCount + 2;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// Changed by Tolik
|
||
if not RzPageControl1.Visible then
|
||
begin
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := FSimpleCaption;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontHeight := 16;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontItalic := true;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontName := 'Times New Roman';
|
||
TitleRow := WriteCount;
|
||
WriteCount := WriteCount + 1;
|
||
end
|
||
else
|
||
begin
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := RzPageControl1.ActivePage.Caption;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontHeight := 16;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontItalic := true;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].FontName := 'Times New Roman';
|
||
TitleRow := WriteCount;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if Act_Filter.Checked then
|
||
begin
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn].Value := gbFilter.Caption;
|
||
WriteCount := WriteCount + 1;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn+1].Value := lbFilter.Caption;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, StartColumn+1].FontColorRGB := lbFilter.Font.Color;
|
||
WriteCount := WriteCount + 2;
|
||
MaxColumn := StartColumn + 1;
|
||
end;
|
||
{
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if TreeView.Items.Count > 0 then
|
||
Node := TreeView.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if IsVisibleNodeByFilter(Node, true) then
|
||
begin
|
||
WriteColumn := Node.Level + StartColumn;
|
||
if WriteColumn > MaxColumn then
|
||
MaxColumn := WriteColumn;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, WriteColumn].Value := Node.Text;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
}
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
// changed by Tolik
|
||
if not RzPageControl1.Visible then
|
||
begin
|
||
if TreeView.Items.Count > 0 then
|
||
Node := TreeView.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if IsVisibleNodeByFilter(Node, true) then
|
||
begin
|
||
WriteColumn := Node.Level + StartColumn;
|
||
if WriteColumn > MaxColumn then
|
||
MaxColumn := WriteColumn;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, WriteColumn].Value := Node.Text;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
if RzPageControl1.ActivePage = TabSheet1 then
|
||
begin
|
||
if TreeView2.Items.Count > 0 then
|
||
Node := TreeView2.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if IsVisibleNodeByFilter(Node, true) then
|
||
begin
|
||
WriteColumn := Node.Level + StartColumn;
|
||
if WriteColumn > MaxColumn then
|
||
MaxColumn := WriteColumn;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, WriteColumn].Value := Node.Text;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
if TreeView1.Items.Count > 0 then
|
||
Node := TreeView1.Items[0];
|
||
while Node <> nil do
|
||
begin
|
||
if IsVisibleNodeByFilter(Node, true) then
|
||
begin
|
||
WriteColumn := Node.Level + StartColumn;
|
||
if WriteColumn > MaxColumn then
|
||
MaxColumn := WriteColumn;
|
||
xf.Workbook.Sheets[0].Cells[WriteCount, WriteColumn].Value := Node.Text;
|
||
WriteCount := WriteCount + 1;
|
||
end;
|
||
Node := Node.GetNext;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{Range := xf.Workbook.Sheets[0].Ranges.Add;
|
||
Range.AddRect(TitleRow, TitleRow, StartColumn, MaxColumn);
|
||
Range.MergeCells;}
|
||
|
||
try
|
||
xf.SaveAs(SaveDialog.FileName);
|
||
except
|
||
on E: Exception do
|
||
begin
|
||
IsOpenFileAfterSave := false;
|
||
PauseProgress(true);
|
||
MessageModal(cProgressExp_Msg4, ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
PauseProgress(false);
|
||
end;
|
||
end;
|
||
finally
|
||
xf.Free;
|
||
end;
|
||
if IsOpenFileAfterSave then
|
||
ShellExecute(0, nil, PChar(SaveDialog.FileName), nil, nil, SW_MAXIMIZE);
|
||
finally
|
||
EndProgress;
|
||
end;
|
||
end;
|
||
finally
|
||
SaveDialog.Free;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.Act_SaveToExcelExecute', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.cbUseFilterInCADClick(Sender: TObject);
|
||
begin
|
||
SaveFilterToProject;
|
||
end;
|
||
|
||
|
||
procedure TF_InterfaceInfo.FormShow(Sender: TObject);
|
||
begin
|
||
if RzPageControl1.Visible then
|
||
RzPageControl1.Pages[0].SetFocus;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TabSheet1Enter(Sender: TObject);
|
||
begin
|
||
//Act_SaveToExcel.Enabled := TreeView2.GetVisiblecount > 0
|
||
Act_SaveToExcel.Enabled := TreeView2.Columns.GetVisiblecount > 0;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.TabSheet2Enter(Sender: TObject);
|
||
begin
|
||
//Act_SaveToExcel.Enabled := TreeView1.GetVisiblecount > 0
|
||
Act_SaveToExcel.Enabled := TreeView1.Columns.GetVisiblecount > 0;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.RzPageControl1Change(Sender: TObject);
|
||
var Node : TFlyNode;
|
||
i : integer;
|
||
begin
|
||
if RZPageControl1.ActivePage = TabSheet1 then
|
||
begin
|
||
TreeView2.visible := true;
|
||
Node := TreeView2.Selected;
|
||
//Act_SaveToExcel.Enabled := TreeView2.GetVisiblecount > 0;
|
||
Act_SaveToExcel.Enabled := TreeView2.Columns.GetVisiblecount > 0;
|
||
TreeViewChange(TreeView2, TreeView2.Selected);
|
||
end
|
||
else begin
|
||
TreeView1.visible := true;
|
||
Node := TreeView1.Selected;
|
||
//Act_SaveToExcel.Enabled := TreeView1.GetVisiblecount > 0;
|
||
Act_SaveToExcel.Enabled := TreeView1.Columns.GetVisiblecount > 0;
|
||
TreeViewChange(TreeView1, TreeView1.Selected);
|
||
end;
|
||
end;
|
||
|
||
|
||
//Tolik --
|
||
function GetListForUndo(aComponList: TSCSComponents): TList;
|
||
var i: Integer;
|
||
ComponCatalog: TSCSCatalog;
|
||
Compon: TSCSComponent;
|
||
ListIdList: TIntList;
|
||
begin
|
||
//Result := TList.Create;
|
||
ListIdList := TIntList.Create;
|
||
for i := 0 to aComponList.Count - 1 do
|
||
begin
|
||
Compon := TSCSComponent(aComponList[i]);
|
||
ComponCatalog := Compon.GetFirstParentCatalog;
|
||
if ComponCatalog <> nil then
|
||
begin
|
||
if ListIdList.IndexOf(ComponCatalog.ListID) = -1 then
|
||
ListIdList.Add(ComponCatalog.ListID);
|
||
end;
|
||
end;
|
||
Result := IntCadsToCads(ListIdList);
|
||
ListIdList.Free;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_DelComponsExecute(Sender: TObject);
|
||
var Node, ChildNode: TFlyNode;
|
||
NodeDat: TObject;
|
||
ComponToDel: TSCSComponent;
|
||
ComponToDeleteList: TSCSComponents;
|
||
CanDelChildNode: Boolean;
|
||
vList: TList;
|
||
begin
|
||
Node := TreeView.Selected;
|
||
TreeView.Items.BeginUpdate;
|
||
if Node <> nil then
|
||
begin
|
||
try
|
||
NodeDat := Node.Data;
|
||
ComponToDeleteList := TSCSComponents.Create(False);
|
||
if (NodeDat <> nil) and (NodeDat is TSCSComponent) then
|
||
begin
|
||
ComponToDel := TSCSComponent(NodeDat);
|
||
if (ComponToDel <> nil) and (not ComponToDel.ServToDelete) then
|
||
begin
|
||
if ComponToDeleteList.IndexOf(ComponToDel) = -1 then
|
||
ComponToDeleteList.Add(ComponToDel);
|
||
end;
|
||
end;
|
||
CanDelChildNode := True;
|
||
while CanDelChildNode do
|
||
begin
|
||
CanDelChildNode := False;
|
||
ChildNode := Node.getFirstChild;
|
||
if ChildNode <> nil then
|
||
begin
|
||
CanDelChildNode := True;
|
||
NodeDat := ChildNode.Data;
|
||
if (NodeDat <> nil) and (NodeDat is TSCSComponent) then
|
||
begin
|
||
ComponToDel := TSCSComponent(NodeDat);
|
||
if (ComponToDel <> nil) and (not ComponToDel.ServToDelete) then
|
||
begin
|
||
if ComponToDeleteList.IndexOf(ComponToDel) = -1 then
|
||
ComponToDeleteList.Add(ComponToDel);
|
||
end;
|
||
end;
|
||
childNode.Delete;
|
||
end;
|
||
end;
|
||
Node.Delete;
|
||
if ComponToDeleteList.Count > 0 then
|
||
begin
|
||
// *UNDO* -- <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CTRL+Z
|
||
vList := GetListForUndo(ComponToDeleteList);
|
||
SaveForProjectUndo(vList, True, False);
|
||
vList.free;
|
||
//
|
||
F_ProjMan.DelComponentsFromList(F_ProjMan.GSCSBase.CurrProject.CurrList, ComponToDeleteList, False, biNone, false, nil);
|
||
end;
|
||
ComponToDeleteList.Free;
|
||
TreeView.Selected := nil;
|
||
TreeView.Items.EndUpdate;
|
||
TreeView.Refresh;
|
||
except
|
||
on E: Exception do
|
||
begin
|
||
|
||
AddExceptionToLogEx('TF_InterfaceInfo.DeleteComponFromTree', E.Message);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
EnableDisableTreeViewPopup;
|
||
end;
|
||
|
||
procedure TF_InterfaceInfo.Act_DeleteAllComponsExecute(Sender: TObject);
|
||
var Node, childNode: TFlyNode;
|
||
NodeDat: TObject;
|
||
ComponToDel: TSCSComponent;
|
||
ComponToDeleteList: TSCSComponents;
|
||
CanDelChildNode: Boolean;
|
||
vList: TList;
|
||
begin
|
||
TreeView.Items.BeginUpdate;
|
||
try
|
||
ComponToDeleteList := TSCSComponents.Create(False);
|
||
while TreeView.Items.Count > 0 do
|
||
begin
|
||
Node := TreeView.Items[0];
|
||
if Node <> nil then
|
||
begin
|
||
NodeDat := Node.Data;
|
||
if (NodeDat <> nil) and (NodeDat is TSCSComponent) then
|
||
begin
|
||
ComponToDel := TSCSComponent(NodeDat);
|
||
if (ComponToDel <> nil) and (not ComponToDel.ServToDelete) then
|
||
begin
|
||
if ComponToDeleteList.IndexOf(ComponToDel) = -1 then
|
||
ComponToDeleteList.Add(ComponToDel);
|
||
end;
|
||
end;
|
||
CanDelChildNode := True;
|
||
while CanDelChildNode do
|
||
begin
|
||
CanDelChildNode := False;
|
||
ChildNode := Node.getFirstChild;
|
||
if ChildNode <> nil then
|
||
begin
|
||
CanDelChildNode := True;
|
||
NodeDat := ChildNode.Data;
|
||
if (NodeDat <> nil) and (NodeDat is TSCSComponent) then
|
||
begin
|
||
ComponToDel := TSCSComponent(NodeDat);
|
||
if (ComponToDel <> nil) and (not ComponToDel.ServToDelete) then
|
||
begin
|
||
if ComponToDeleteList.IndexOf(ComponToDel) = -1 then
|
||
ComponToDeleteList.Add(ComponToDel);
|
||
end;
|
||
end;
|
||
childNode.Delete;
|
||
end;
|
||
end;
|
||
Node.Delete;
|
||
end;
|
||
end;
|
||
|
||
if ComponToDeleteList.Count > 0 then
|
||
begin
|
||
//if MessageBoxA(FSCS_Main.Handle, PAnsiChar(cMain_Mes48_1),cMain_Mes48_2, MB_YESNO) = IDYes then
|
||
if MessageBox(FSCS_Main.Handle, PChar(cMain_Mes48_1), PChar(cMain_Mes48_2), MB_YESNO) = IDYes then
|
||
begin
|
||
// *UNDO*
|
||
vList := GetListForUndo(ComponToDeleteList);
|
||
if vList.Count = 1 then
|
||
begin
|
||
if GCadForm.FCanSaveForUndo then
|
||
begin
|
||
GCadForm.SaveForUndo(uat_None, True, True);
|
||
GCadForm.FCanSaveForUndo := False;
|
||
end;
|
||
end
|
||
else
|
||
if vList.Count > 1 then
|
||
begin
|
||
SaveForProjectUndo(vList, True, False);
|
||
end;
|
||
vList.Free;
|
||
F_ProjMan.DelComponentsFromList(F_ProjMan.GSCSBase.CurrProject.CurrList, ComponToDeleteList, False, biNone, false, nil);
|
||
end;
|
||
end;
|
||
ComponToDeleteList.Free;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_InterfaceInfo.DeleteAllComponents', E.Message);
|
||
end;
|
||
TreeView.Selected := nil;
|
||
TreeView.Items.EndUpdate;
|
||
TreeView.Refresh;
|
||
|
||
EnableDisableTreeViewPopup;
|
||
end;
|
||
|
||
end.
|