mirror of
http://gitlab.expertsoft.com.ua/git/expertcad
synced 2026-01-12 01:55:40 +02:00
11913 lines
440 KiB
ObjectPascal
11913 lines
440 KiB
ObjectPascal
unit U_AddComponent;
|
||
|
||
interface
|
||
|
||
uses
|
||
Windows, U_LNG, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
||
Dialogs, StdCtrls, Buttons, ExtDlgs, DBCtrls, Mask, {DBCtrlsEh,}
|
||
DB, FIBDataSet, pFIBDataSet, cxControls, cxContainer, cxEdit, cxCheckBox,
|
||
cxDBEdit, Spin, cxLookAndFeelPainters, cxButtons, cxTextEdit, cxMaskEdit,
|
||
cxSpinEdit, cxDropDownEdit, {cxColorComboBox,} {cxDBColorComboBox,} cxImage,
|
||
cxMemo, cxRadioGroup, ExtCtrls, ComCtrls, cxStyles, cxCustomData,
|
||
cxGraphics, cxFilter, cxData, cxDBData, cxGridLevel, cxClasses,
|
||
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
|
||
cxGridDBTableView, cxGrid, Menus, cxGridBandedTableView, kbmMemTable,
|
||
ActnList, cxCurrencyEdit, ToolWin, cxDataStorage, U_BaseCommon, U_BaseSettings, XPMenu,
|
||
RzEdit, Grids, DBGrids, cxColorComboBox, cxGroupBox, cxDBLookupComboBox,
|
||
cxBlobEdit,
|
||
|
||
U_SCSLists, U_SCSClasses, U_SCSComponent, U_BaseConstants,
|
||
RzPanel, RzTabs, RzLabel, cxEditRepositoryItems, cxCalc,
|
||
RzButton, Contnrs, siComp, siLngLnk, RzRadChk, cxLookAndFeels, cxNavigator,
|
||
clipbrd;
|
||
|
||
|
||
const
|
||
// Fields indexes
|
||
fiNormIsOn = 1;
|
||
fiNormTotalCost = 8;
|
||
fiResourceIsOn = 1;
|
||
fiResourcePrice = 5;
|
||
fiResourceAdditionalPrice = 6;
|
||
fiResourceKolvo = 7;
|
||
fiResourceCost = 8;
|
||
|
||
strNoDefined = cAddComponent_Msg1;
|
||
|
||
type
|
||
TF_AddComponent = class(TForm)
|
||
OpenPictureDialog1: TOpenPictureDialog;
|
||
PopupMenu: TPopupMenu;
|
||
pmnu_Add: TMenuItem;
|
||
pmnu_Del: TMenuItem;
|
||
pmnu_Edit: TMenuItem;
|
||
ActionList_Component: TActionList;
|
||
Act_AddInterface: TAction;
|
||
Act_DelInterface: TAction;
|
||
Act_EditInterface: TAction;
|
||
Act_AddProperty: TAction;
|
||
Act_DelProperty: TAction;
|
||
Act_EditProperty: TAction;
|
||
Act_Add: TAction;
|
||
Act_Del: TAction;
|
||
Act_Edit: TAction;
|
||
Act_AddComplectEd: TAction;
|
||
Act_DelComplectEd: TAction;
|
||
Act_EditComplectEd: TAction;
|
||
Act_Default: TAction;
|
||
Act_Cancel: TAction;
|
||
Act_AddPort: TAction;
|
||
Act_EditPort: TAction;
|
||
Act_DelPort: TAction;
|
||
Act_AddCableCanalConnector: TAction;
|
||
Act_EditCableCanalConnector: TAction;
|
||
Act_DelCableCanalConnector: TAction;
|
||
pcMain: TRzPageControl;
|
||
tsCommon: TRzTabSheet;
|
||
tsView: TRzTabSheet;
|
||
gbOkCancel: TRzGroupBox;
|
||
Timer_AfterEditProperty: TTimer;
|
||
tsWorkingAndResources: TRzTabSheet;
|
||
gbNorms: TRzGroupBox;
|
||
ToolBar1: TToolBar;
|
||
ToolButton5: TToolButton;
|
||
ToolButton6: TToolButton;
|
||
ToolButton8: TToolButton;
|
||
ToolButton9: TToolButton;
|
||
GroupBox_ResourcesRel: TRzGroupBox;
|
||
ToolBar_Resources: TToolBar;
|
||
ToolButton4: TToolButton;
|
||
ToolButton2: TToolButton;
|
||
ToolButton3: TToolButton;
|
||
Grid_Resources: TcxGrid;
|
||
GT_Resources: TcxGridDBTableView;
|
||
GT_ResourcesNPP: TcxGridDBColumn;
|
||
GT_ResourcesIsOn: TcxGridDBColumn;
|
||
GT_ResourcesCypher: TcxGridDBColumn;
|
||
GT_ResourcesName: TcxGridDBColumn;
|
||
GT_ResourcesIzm: TcxGridDBColumn;
|
||
GT_ResourcesPrice: TcxGridDBColumn;
|
||
GT_ResourcesAdditionalPrice: TcxGridDBColumn;
|
||
GT_ResourcesKolvo: TcxGridDBColumn;
|
||
GT_ResourcesCost: TcxGridDBColumn;
|
||
GT_ResourcesRType: TcxGridDBColumn;
|
||
GL_Resources: TcxGridLevel;
|
||
GroupBox_OtherData: TRzGroupBox;
|
||
ToolBar_OtherData: TToolBar;
|
||
ToolButton_Make: TToolButton;
|
||
ToolButton_Edit: TToolButton;
|
||
ToolButton_Delete: TToolButton;
|
||
ToolButton1: TToolButton;
|
||
Label_AddEditDelComplects: TLabel;
|
||
Grid: TcxGrid;
|
||
GT_Port: TcxGridDBTableView;
|
||
GT_PortNpp: TcxGridDBColumn;
|
||
GT_PortNAME: TcxGridDBColumn;
|
||
GT_PortISBusy: TcxGridDBColumn;
|
||
GT_PortTYPE: TcxGridDBColumn;
|
||
GT_PortKind: TcxGridDBColumn;
|
||
GT_PortNppPort: TcxGridDBColumn;
|
||
GT_PortNameConnected: TcxGridDBColumn;
|
||
GT_PortNameConnectCable: TcxGridDBColumn;
|
||
GT_PortGender: TcxGridDBColumn;
|
||
GT_PortMultiple: TcxGridDBColumn;
|
||
GT_PortisNative: TcxGridDBColumn;
|
||
GT_PortValueI: TcxGridDBColumn;
|
||
GT_PortCoordZ: TcxGridDBColumn;
|
||
GT_PortNumPair: TcxGridDBColumn;
|
||
GT_PortColor: TcxGridDBColumn;
|
||
GT_PortSide: TcxGridDBColumn;
|
||
GT_PortNotice: TcxGridDBColumn;
|
||
GT_Interface: TcxGridDBTableView;
|
||
GT_InterfaceNpp: TcxGridDBColumn;
|
||
GT_InterfaceName: TcxGridDBColumn;
|
||
GT_InterfaceType: TcxGridDBColumn;
|
||
GT_InterfaceKind: TcxGridDBColumn;
|
||
GT_InterfaceGender: TcxGridDBColumn;
|
||
GT_InterfaceIsBusy: TcxGridDBColumn;
|
||
GT_InterfaceMultiple: TcxGridDBColumn;
|
||
GT_InterfaceIsNative: TcxGridDBColumn;
|
||
GT_InterfaceValueI: TcxGridDBColumn;
|
||
GT_InterfaceCoordZ: TcxGridDBColumn;
|
||
GT_InterfaceNumPairsStr: TcxGridDBColumn;
|
||
GT_InterfaceColor: TcxGridDBColumn;
|
||
GT_InterfaceSide: TcxGridDBColumn;
|
||
GT_InterfaceNotice: TcxGridDBColumn;
|
||
GT_Property: TcxGridDBTableView;
|
||
GT_PropertyName: TcxGridDBColumn;
|
||
GT_PropertyPValue: TcxGridDBColumn;
|
||
GT_PropertyIzm: TcxGridDBColumn;
|
||
GT_PropertyTakeIntoConnect: TcxGridDBColumn;
|
||
GT_PropertyTakeIntoJoin: TcxGridDBColumn;
|
||
GT_PropertyDescription: TcxGridDBColumn;
|
||
GT_PropertyDBDataType: TcxGridDBColumn;
|
||
GT_Complects: TcxGridDBTableView;
|
||
GT_ComplectsName: TcxGridDBColumn;
|
||
GT_ComplectsKolvo: TcxGridDBColumn;
|
||
GT_ComplectsPrice1: TcxGridDBColumn;
|
||
GT_ComplectsCost1: TcxGridDBColumn;
|
||
GT_ComplectsPrice2: TcxGridDBColumn;
|
||
GT_ComplectsCost2: TcxGridDBColumn;
|
||
GT_CableCanalConnectors: TcxGridDBTableView;
|
||
GT_CableCanalConnectorsName: TcxGridDBColumn;
|
||
GT_CableCanalConnectorsConnectorType: TcxGridDBColumn;
|
||
GL_PORT: TcxGridLevel;
|
||
GL_Interface: TcxGridLevel;
|
||
GL_Property: TcxGridLevel;
|
||
GL_Complects: TcxGridLevel;
|
||
GL_CableCanalConnectors: TcxGridLevel;
|
||
Panel_TotalCost: TPanel;
|
||
Label6: TLabel;
|
||
CurrencyEdit_ResourcesCost: TcxCurrencyEdit;
|
||
Splitter1: TSplitter;
|
||
Act_AddNorm: TAction;
|
||
Act_AddResourceToMTNorm: TAction;
|
||
Act_EditNormResource: TAction;
|
||
Act_DeleteNormResource: TAction;
|
||
Act_AddResource: TAction;
|
||
Act_EditResource: TAction;
|
||
Act_DelResource: TAction;
|
||
Grid_NORMS: TcxGrid;
|
||
GT_NORMS: TcxGridDBTableView;
|
||
GT_NORMSNPP: TcxGridDBColumn;
|
||
GT_NORMSIsOn: TcxGridDBColumn;
|
||
GT_NORMSCypher: TcxGridDBColumn;
|
||
GT_NORMSName: TcxGridDBColumn;
|
||
GT_NORMSWork_Kind: TcxGridDBColumn;
|
||
GT_NORMSIZM: TcxGridDBColumn;
|
||
GT_NORMSCost: TcxGridDBColumn;
|
||
GT_NORMSKolvo: TcxGridDBColumn;
|
||
GT_NORMSTotalCost: TcxGridDBColumn;
|
||
GT_NORMSZarplat: TcxGridDBColumn;
|
||
GL_NORMS: TcxGridLevel;
|
||
PopupMenu_NormsResources: TPopupMenu;
|
||
N1: TMenuItem;
|
||
N2: TMenuItem;
|
||
N3: TMenuItem;
|
||
N4: TMenuItem;
|
||
PopupMenu_Resources: TPopupMenu;
|
||
N5: TMenuItem;
|
||
N6: TMenuItem;
|
||
N7: TMenuItem;
|
||
EditRepository_Norm: TcxEditRepository;
|
||
EditRepository_NormCurrency_NormCost: TcxEditRepositoryCurrencyItem;
|
||
EditRepository_NormCurrency_NormTotalCost: TcxEditRepositoryCurrencyItem;
|
||
EditRepository_NormCurrency_ResourcePrice: TcxEditRepositoryCurrencyItem;
|
||
EditRepository_NormCurrency_ResourceCost: TcxEditRepositoryCurrencyItem;
|
||
GT_NORMSRType: TcxGridDBColumn;
|
||
BitBtn_OK: TRzBitBtn;
|
||
BitBtn_Cancel: TRzBitBtn;
|
||
cbApplyNorms_: TcxCheckBox;
|
||
cbApplyResources_: TcxCheckBox;
|
||
ToolButton7: TToolButton;
|
||
Act_AddCompDataFromOtherCompon: TAction;
|
||
ToolButton10: TToolButton;
|
||
Act_DublicatePortInterface: TAction;
|
||
N8: TMenuItem;
|
||
GT_InterfaceRNumber: TcxGridDBColumn;
|
||
GT_PortRNumber: TcxGridDBColumn;
|
||
GT_PortInterfRelNames: TcxGridDBColumn;
|
||
GT_NORMSExpenseForLength: TcxGridDBColumn;
|
||
RzPanel3: TRzPanel;
|
||
Label1: TLabel;
|
||
Label_NameShort: TLabel;
|
||
lbCyper: TLabel;
|
||
Label_ArticulDistributor: TLabel;
|
||
Label_ArticulProducer: TLabel;
|
||
Label_NetType: TLabel;
|
||
Label_Izm: TLabel;
|
||
Label_Producer: TLabel;
|
||
Label_Notice: TLabel;
|
||
btCanComplect: TSpeedButton;
|
||
cbApplyCanComplect: TcxCheckBox;
|
||
cbApplyNotice: TcxCheckBox;
|
||
cbApplyProducer: TcxCheckBox;
|
||
cbApplyNetType: TcxCheckBox;
|
||
cbApplyIzm: TcxCheckBox;
|
||
cbApplyArticulDistributor: TcxCheckBox;
|
||
cbApplyArticulProducer: TcxCheckBox;
|
||
cbApplyNameShort: TcxCheckBox;
|
||
cbApplyName: TcxCheckBox;
|
||
Edit_Name: TcxTextEdit;
|
||
Edit_NameShort: TcxTextEdit;
|
||
MaskEdit_Cyper: TRzMaskEdit;
|
||
Edit_ArticulDistributor: TcxTextEdit;
|
||
Edit_ArticulProducer: TcxTextEdit;
|
||
ComboBox_NetType: TcxComboBox;
|
||
Button_ChangeNetType: TcxButton;
|
||
Edit_Izm: TcxTextEdit;
|
||
ComboBox_Producer: TcxComboBox;
|
||
Button_Producer: TcxButton;
|
||
Edit_Notice: TcxTextEdit;
|
||
gbPrice: TRzGroupBox;
|
||
pnSuppliesKind: TRzPanel;
|
||
Label12: TLabel;
|
||
lbPriceSupply: TLabel;
|
||
cbSuppliesKind: TcxComboBox;
|
||
btSuppliesKind: TcxButton;
|
||
cePriceSupply: TcxCurrencyEdit;
|
||
GroupBox_Price: TRzGroupBox;
|
||
Label_Price1: TLabel;
|
||
Label_Price2: TLabel;
|
||
Label_NDS1: TLabel;
|
||
Label_NDS2: TLabel;
|
||
CurrencyEdit_NDS1: TcxCurrencyEdit;
|
||
CurrencyEdit_NDS2: TcxCurrencyEdit;
|
||
CurrencyEdit_Price2: TcxCurrencyEdit;
|
||
CurrencyEdit_Price1: TcxCurrencyEdit;
|
||
cbApplyComponData: TcxCheckBox;
|
||
RzPanel4: TRzPanel;
|
||
Label2: TLabel;
|
||
Label3: TLabel;
|
||
lbSymbolImage: TLabel;
|
||
cbApplySymbol: TcxCheckBox;
|
||
cbApplyComponIcon: TcxCheckBox;
|
||
cbApplyImage: TcxCheckBox;
|
||
Image_CompIcons: TcxImage;
|
||
Button_OpenCompIcons: TcxButton;
|
||
Button_ClearComponIcon: TcxButton;
|
||
Image_Symbol: TcxImage;
|
||
btOpenSymbolImage: TcxButton;
|
||
btClearSymbolImage: TcxButton;
|
||
Image: TcxImage;
|
||
Button_OpenPicture: TcxButton;
|
||
Button_ClearImage: TcxButton;
|
||
RzPanel5: TRzPanel;
|
||
RzPanel1: TRzPanel;
|
||
meDescription: TRzMemo;
|
||
RzPanel2: TRzPanel;
|
||
cbApplyDescription: TcxCheckBox;
|
||
RzPanel6: TRzPanel;
|
||
Label7: TLabel;
|
||
pcApplyForAll: TRzPageControl;
|
||
tsApplyInNB: TRzTabSheet;
|
||
tsApplyInPM: TRzTabSheet;
|
||
pnApplyForCurrentDir: TRzPanel;
|
||
GroupBox_ApplyForAllComponents: TRzGroupBox;
|
||
Act_TurnFromMemTableToSpravochnik: TAction;
|
||
N9: TMenuItem;
|
||
RzGroupBox1: TRzGroupBox;
|
||
cbApplyComponentType: TcxCheckBox;
|
||
ComboBox_ComponentType: TcxComboBox;
|
||
Button_TypeComponent: TcxButton;
|
||
GL_CrossConnection: TcxGridLevel;
|
||
GT_CrossConnection: TcxGridDBTableView;
|
||
GT_CrossConnectionNameFrom: TcxGridDBColumn;
|
||
GT_CrossConnectionNameTo: TcxGridDBColumn;
|
||
GT_CrossConnectionNameWith: TcxGridDBColumn;
|
||
Act_AddCrossConnection: TAction;
|
||
Act_EditCrossConnection: TAction;
|
||
Act_DelCrossConnection: TAction;
|
||
seIndex: TcxSpinEdit;
|
||
lbIndex: TLabel;
|
||
pnProjManElements: TRzPanel;
|
||
Label_UserLength: TLabel;
|
||
cbApplyUserLength: TcxCheckBox;
|
||
SpinEdit_UserLength: TcxSpinEdit;
|
||
gbNameMark: TRzGroupBox;
|
||
Edit_NameMark: TcxTextEdit;
|
||
rbMarkByDefault: TcxRadioButton;
|
||
rbMarkByTemplate: TcxRadioButton;
|
||
GT_InterfaceKolvo: TcxGridDBColumn;
|
||
GT_PortKolvo: TcxGridDBColumn;
|
||
GT_PortKolvoBusy: TcxGridDBColumn;
|
||
GT_InterfaceKolvoBusy: TcxGridDBColumn;
|
||
GT_InterfaceSideSection: TcxGridDBColumn;
|
||
btImportComponByArtProducer: TcxButton;
|
||
lng_Forms: TsiLangLinked;
|
||
CheckBox_HasNds: TRzCheckBox;
|
||
cbComponentIsTemplate: TRzCheckBox;
|
||
cbImportFromTemplate: TRzCheckBox;
|
||
cbCanComplect: TRzCheckBox;
|
||
cbDismount: TRzCheckBox;
|
||
cbUseDismounted: TRzCheckBox;
|
||
cbApplyForCurrentDir: TRzCheckBox;
|
||
cbIncludingSubFolders: TRzCheckBox;
|
||
CheckBox_ApplyForList: TRzCheckBox;
|
||
CheckBox_ApplyForProject: TRzCheckBox;
|
||
CheckBox_ApplyIncludingMark: TRzCheckBox;
|
||
lbSelectFieldsFromApplyInPM: TRzLabel;
|
||
pmSelectApplyFields: TPopupMenu;
|
||
Act_SelectAllApplyFields: TAction;
|
||
Act_DeSelectAllApplyFields: TAction;
|
||
N10: TMenuItem;
|
||
N11: TMenuItem;
|
||
lbSelectFieldsFromApplyInNB: TRzLabel;
|
||
Act_SelectCurrPageAllApplyFields: TAction;
|
||
Act_DeSelectCurrPagetAllApplyFields: TAction;
|
||
N12: TMenuItem;
|
||
N13: TMenuItem;
|
||
cbApplyPrice: TcxCheckBox;
|
||
GT_PropertySysName: TcxGridDBColumn;
|
||
pnApplyNormsResources: TRzPanel;
|
||
cbApplyNorms: TcxCheckBox;
|
||
ToolButton11: TToolButton;
|
||
Act_DelAll: TAction;
|
||
N14: TMenuItem;
|
||
GT_NORMSCountForPoint: TcxGridDBColumn;
|
||
GT_NORMSStepOfPoint: TcxGridDBColumn;
|
||
ToolButton12: TToolButton;
|
||
Act_AddResourceComponToMTNorm: TAction;
|
||
GT_NORMSIsResource: TcxGridDBColumn;
|
||
GT_NORMSGUIDNBCompon: TcxGridDBColumn;
|
||
GT_NORMSTotalKolvo: TcxGridDBColumn;
|
||
btClose: TRzBitBtn;
|
||
cbApplyResources: TcxCheckBox;
|
||
Timer_ChoiceCompType: TTimer;
|
||
lbSpecification: TLabel;
|
||
cbSpecification: TcxComboBox;
|
||
btChangeSpecification: TcxButton;
|
||
cbApplySpecification: TcxCheckBox;
|
||
cbApplyForOnlySelected: TRzCheckBox;
|
||
cbIsMarkInCaptions: TRzCheckBox;
|
||
cbApplyIsMarkInCaptions: TcxCheckBox;
|
||
cbApplyForFocusedProp: TRzCheckBox;
|
||
cbAutoAddInter: TRzCheckBox;
|
||
GT_NORMSLaborTime: TcxGridDBColumn;
|
||
GT_NORMSPricePerTime: TcxGridDBColumn;
|
||
N15: TMenuItem;
|
||
Act_ShowInNormBase: TAction;
|
||
XP_Menu1: TXPMenu;
|
||
cbNotUseUgoBounds: TRzCheckBox;
|
||
procedure Button_OpenPictureClick(Sender: TObject);
|
||
procedure BitBtn_OKClick(Sender: TObject);
|
||
procedure FormShow(Sender: TObject);
|
||
procedure BitBtn_CancelClick(Sender: TObject);
|
||
procedure FormCreate(Sender: TObject);
|
||
procedure btCanComplectClick(Sender: TObject);
|
||
procedure Act_AddInterfaceExecute(Sender: TObject);
|
||
procedure Act_DelInterfaceExecute(Sender: TObject);
|
||
procedure Act_EditInterfaceExecute(Sender: TObject);
|
||
procedure Act_AddPropertyExecute(Sender: TObject);
|
||
procedure Act_EditPropertyExecute(Sender: TObject);
|
||
procedure Act_DelPropertyExecute(Sender: TObject);
|
||
procedure GT_InterfaceTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure ComboBox_NetTypeKeyPress(Sender: TObject; var Key: Char);
|
||
procedure Button_ChangeNetTypeClick(Sender: TObject);
|
||
procedure CurrencyEdit_Price1_KeyUp(Sender: TObject; var Key: Word;
|
||
Shift: TShiftState);
|
||
procedure CurrencyEdit_Price2KeyUp(Sender: TObject; var Key: Word;
|
||
Shift: TShiftState);
|
||
procedure Act_AddExecute(Sender: TObject);
|
||
procedure Act_DelExecute(Sender: TObject);
|
||
procedure Act_EditExecute(Sender: TObject);
|
||
procedure GridActiveTabChanged(Sender: TcxCustomGrid;
|
||
ALevel: TcxGridLevel);
|
||
procedure ColorEditChange(Sender: TObject);
|
||
procedure GT_PropertyPValueGetProperties(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord;
|
||
var AProperties: TcxCustomEditProperties);
|
||
procedure Act_AddComplectEdExecute(Sender: TObject);
|
||
procedure Act_DelComplectEdExecute(Sender: TObject);
|
||
procedure Act_EditComplectEdExecute(Sender: TObject);
|
||
procedure GridEnter(Sender: TObject);
|
||
procedure GridExit(Sender: TObject);
|
||
procedure FormHide(Sender: TObject);
|
||
procedure GT_InterfaceGenderGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure FormDestroy(Sender: TObject);
|
||
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
||
procedure Button_OpenCompIconsClick(Sender: TObject);
|
||
procedure Act_DefaultExecute(Sender: TObject);
|
||
procedure GT_InterfaceNumPairsStrGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure GT_InterfaceSideGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure GT_InterfaceValueIGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure Act_CancelExecute(Sender: TObject);
|
||
procedure Edit_NamePropertiesChange(Sender: TObject);
|
||
procedure ComboBox_NetTypePropertiesChange(Sender: TObject);
|
||
procedure GT_InterfaceKindGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure Button_TypeComponentClick(Sender: TObject);
|
||
procedure Button_ProducerClick(Sender: TObject);
|
||
procedure ComboBox_ComponentTypePropertiesChange(Sender: TObject);
|
||
procedure Act_AddPortExecute(Sender: TObject);
|
||
procedure Act_EditPortExecute(Sender: TObject);
|
||
procedure Act_DelPortExecute(Sender: TObject);
|
||
procedure GT_InterfaceFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure GT_PortFocusedRecordChanged(Sender: TcxCustomGridTableView;
|
||
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure GT_PropertyFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure Edit_IzmPropertiesChange(Sender: TObject);
|
||
procedure Edit_NameShortPropertiesChange(Sender: TObject);
|
||
procedure Edit_NameMarkPropertiesChange(Sender: TObject);
|
||
procedure GT_InterfaceNppGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure Button_ClearImageClick(Sender: TObject);
|
||
procedure Button_ClearComponIconClick(Sender: TObject);
|
||
procedure GT_PortNppGetDisplayText(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord; var AText: string);
|
||
procedure CheckBox_HasNdsPropertiesChange(Sender: TObject);
|
||
procedure Act_AddCableCanalConnectorExecute(Sender: TObject);
|
||
procedure Act_EditCableCanalConnectorExecute(Sender: TObject);
|
||
procedure Act_DelCableCanalConnectorExecute(Sender: TObject);
|
||
procedure GT_CableCanalConnectorsConnectorTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure CheckBox_ApplyForProjectPropertiesChange(Sender: TObject);
|
||
procedure CheckBox_ApplyForListPropertiesChange(Sender: TObject);
|
||
procedure Edit_NameShortKeyPress(Sender: TObject; var Key: Char);
|
||
procedure btOpenSymbolImageClick(Sender: TObject);
|
||
procedure btClearSymbolImageClick(Sender: TObject);
|
||
procedure rbMarkByDefaultClick(Sender: TObject);
|
||
procedure rbMarkByTemplateClick(Sender: TObject);
|
||
procedure Edit_NameMarkEditing(Sender: TObject; var CanEdit: Boolean);
|
||
procedure Timer_AfterEditPropertyTimer(Sender: TObject);
|
||
procedure GT_PropertyEditValueChanged(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem);
|
||
procedure GT_PropertyEditChanged(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem);
|
||
procedure SpinEdit_UserLengthPropertiesEditValueChanged(
|
||
Sender: TObject);
|
||
procedure GT_NORMSCellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
procedure GT_NORMSEditing(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
|
||
procedure GT_NORMSFocusedRecordChanged(Sender: TcxCustomGridTableView;
|
||
APrevFocusedRecord, AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
procedure GT_NORMSCostPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_NORMSKolvoPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ResourcesPricePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ResourcesAdditionalPricePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_ResourcesKolvoPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure Act_AddNormExecute(Sender: TObject);
|
||
procedure Act_AddResourceToMTNormExecute(Sender: TObject);
|
||
procedure Act_EditNormResourceExecute(Sender: TObject);
|
||
procedure Act_DeleteNormResourceExecute(Sender: TObject);
|
||
procedure Act_AddResourceExecute(Sender: TObject);
|
||
procedure Act_EditResourceExecute(Sender: TObject);
|
||
procedure Act_DelResourceExecute(Sender: TObject);
|
||
procedure GT_NORMSRTypeGetDisplayText(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord; var AText: string);
|
||
procedure cbApplyForCurrentDirPropertiesChange(Sender: TObject);
|
||
procedure cbSuppliesKindPropertiesChange(Sender: TObject);
|
||
procedure btSuppliesKindClick(Sender: TObject);
|
||
procedure Act_AddCompDataFromOtherComponExecute(Sender: TObject);
|
||
procedure CurrencyEdit_Price1Exit(Sender: TObject);
|
||
procedure cbApplyComponDataClick(Sender: TObject);
|
||
procedure Act_DublicatePortInterfaceExecute(Sender: TObject);
|
||
procedure GT_InterfaceRNumberGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
procedure GT_PortRNumberGetDisplayText(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord; var AText: string);
|
||
procedure GT_NORMSNPPGetDisplayText(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord; var AText: string);
|
||
procedure gbOkCancelResize(Sender: TObject);
|
||
procedure Act_TurnFromMemTableToSpravochnikExecute(Sender: TObject);
|
||
procedure Act_AddCrossConnectionExecute(Sender: TObject);
|
||
procedure Act_EditCrossConnectionExecute(Sender: TObject);
|
||
procedure Act_DelCrossConnectionExecute(Sender: TObject);
|
||
procedure seIndexPropertiesChange(Sender: TObject);
|
||
procedure Act_EnterExecute(Sender: TObject);
|
||
procedure cePriceSupplyKeyUp(Sender: TObject; var Key: Word;
|
||
Shift: TShiftState);
|
||
procedure cbDismountClick(Sender: TObject);
|
||
procedure GT_CableCanalConnectorsDblClick(Sender: TObject);
|
||
procedure ComboBox_ComponentTypeExit(Sender: TObject);
|
||
procedure GT_NORMSEditChanged(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem);
|
||
procedure GT_NORMSEditValueChanged(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem);
|
||
procedure btImportComponByArtProducerClick(Sender: TObject);
|
||
procedure lbSelectFieldsFromApplyInPMClick(Sender: TObject);
|
||
procedure Act_SelectAllApplyFieldsExecute(Sender: TObject);
|
||
procedure Act_DeSelectAllApplyFieldsExecute(Sender: TObject);
|
||
procedure lbSelectFieldsFromApplyInNBClick(Sender: TObject);
|
||
procedure Act_SelectCurrPageAllApplyFieldsExecute(Sender: TObject);
|
||
procedure Act_DeSelectCurrPagetAllApplyFieldsExecute(Sender: TObject);
|
||
procedure GT_PropertyPValueGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_PropertyIzmGetDisplayText(Sender: TcxCustomGridTableItem;
|
||
ARecord: TcxCustomGridRecord; var AText: String);
|
||
procedure GT_NORMSExpenseForLengthGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_NORMSExpenseForLengthPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_NORMSInitEdit(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
||
procedure GT_InterfaceCoordZGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure pcMainChanging(Sender: TObject; NewIndex: Integer;
|
||
var AllowChange: Boolean);
|
||
procedure Act_DelAllExecute(Sender: TObject);
|
||
procedure GT_NORMSCountForPointPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_NORMSStepOfPointGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure GT_NORMSStepOfPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure Act_AddResourceComponToMTNormExecute(Sender: TObject);
|
||
procedure GT_NORMSCustomDrawCell(Sender: TcxCustomGridTableView;
|
||
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
|
||
var ADone: Boolean);
|
||
procedure GT_NORMSTotalKolvoGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure ComboBox_ProducerPropertiesChange(Sender: TObject);
|
||
procedure cePriceSupplyPropertiesChange(Sender: TObject);
|
||
procedure Edit_NoticePropertiesChange(Sender: TObject);
|
||
procedure Timer_ChoiceCompTypeTimer(Sender: TObject);
|
||
procedure btChangeSpecificationClick(Sender: TObject);
|
||
procedure GT_NORMSLaborTimePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_NORMSPricePerTimePropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
procedure GT_NORMSLaborTimeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
procedure Act_ShowInNormBaseExecute(Sender: TObject);
|
||
procedure Edit_NameDblClick(Sender: TObject);
|
||
private
|
||
{ Private declarations }
|
||
GForm: TForm;
|
||
FMakeEdit: TMakeEdit;
|
||
|
||
InterfFields: TStringList;
|
||
PortFields: TStringList;
|
||
PropertFields: TStringList;
|
||
ComplectsFields: TStringList;
|
||
IOfI_RelFields: TStringList;
|
||
ComponIconsFields: TStringList;
|
||
CableCanalConnectorsFields: TStringList;
|
||
//CrossConnectionsFields: TStringList;
|
||
|
||
GGenLastCableCanalConnectorID: Integer;
|
||
GGenLastCompPropRelID: Integer;
|
||
GGenLastCrossConnectionID: Integer;
|
||
GGenLastInterfID: Integer;
|
||
GGenLastPortInterfRelID: Integer;
|
||
GGenLastNormID: Integer;
|
||
GGenLastResourceID: Integer;
|
||
//GGenLastPropertyID: Integer;
|
||
|
||
GLastPort: Integer;
|
||
GWasChanging: Boolean;
|
||
FIsLoadingForm: Boolean;
|
||
|
||
FApplyCheckBoxes: TObjectList;
|
||
FApplyCheckBoxesBorderColor: TColor;
|
||
FApplyCheckBoxesBorderStyle: TcxEditBorderStyle;
|
||
FApplyCheckBoxesPageIndex: TIntList;
|
||
FApplyControls: TObjectList;
|
||
FApplyComponElementsVisible: TIntList;
|
||
FApplyComponElementsChecked: TIntList;
|
||
|
||
FComponBeforeEdit: TSCSComponent;
|
||
FCurrComponentType: TComponentType;
|
||
FCurrency: TCurrency;
|
||
FNBCurrency: TCurrency;
|
||
FIDCatalog: Integer;
|
||
FOutNormsResources: TSCSNormsResources;
|
||
FTraccaLength: Double;
|
||
|
||
FSuppliesKind: TSuppliesKind;
|
||
|
||
FSpravochnik: TSpravochnik;
|
||
FProjSpravochnik: TSpravochnik;
|
||
FListSpravochnik: TSpravochnik;
|
||
|
||
FChangedComponTypeInCombo: Boolean;
|
||
FIsTemplate: Boolean;
|
||
|
||
procedure OncbApplyForChange(Sender: TObject);
|
||
procedure OncbApplyForPMChange(Sender: TObject);
|
||
procedure SetGenLastID(ATableKind: TTableKind);
|
||
function GetMaxNumPair(AMemTable: TkbmMemTable): Integer;
|
||
function GenNewID(ATableKind: TTableKind): Integer;
|
||
//function GetStrWithoutSpaces(AString: String): String;
|
||
|
||
procedure AddApplyCheckBoxToList(ACheckBox: TcxCheckBox; APageIndex: Integer);
|
||
function CheckRequiredProperties: Boolean;
|
||
procedure ClearFormGrids;
|
||
procedure ClearPortInterfaceMemTable(AMemTable: TkbmMemTable; AIsPort: Boolean);
|
||
function CreateFormOnlyComponent: TSCSComponent;
|
||
function CreateFormComponent: TSCSComponent;
|
||
function CreateFormInterfaces: TSCSInterfaces;
|
||
function CreateFormProperties: TList;
|
||
function CreateFormCableCanalConnectors: TList;
|
||
function CreateFormCrossConnections: TSCSObjectList;
|
||
procedure DeleteAllPortsAndInterf;
|
||
function DelRequiredEmptyProps: Boolean;
|
||
function GetComponentActualPrice: Double;
|
||
function GetComponentNameMarkByTemplate: string;
|
||
function GetNormResourcesCountByCompPropRelID(AIDCompPropRel: Integer): Integer;
|
||
function GetSignType: Integer;
|
||
procedure ImportComponentByID(AID: Integer);
|
||
procedure SetAsDeletedMTRecords(AMemTable, ADetailMemTable: TkbmMemTable;
|
||
ADeletedIDs, ADeletedIDsFromDetail: TIntList);
|
||
|
||
procedure SendComponentToForm(AComponent: TSCSComponent; AFromChangeComponType: Boolean);
|
||
procedure SendInterfacesPortsToMemTable(ASCSComponent: TSCSComponent; AAsNew, AAskDelInterf: Boolean);
|
||
|
||
procedure DefineComponCurrencies;
|
||
procedure DefineComponSecondPrice(AFirstPrice: Double);
|
||
procedure DefineNormResByProperty(Aproperty: PProperty);
|
||
procedure DefineParamsBySupply(APriceSupply: Double; ADefIzm: Boolean);
|
||
procedure DefineSupplyPriceByComponActualPrice;
|
||
procedure DefineSupplyPriceByComponPrice(AComponPrice: Double);
|
||
procedure DefinecbApplyCompData;
|
||
procedure DefineUniversalInterfacesByProperty(AProp: PProperty; const ACompTypeSysName: string);
|
||
procedure DeleteNormResByIDCompPropRel(AIDCompPropRel: Integer);
|
||
procedure LoadNetTypesToForm;
|
||
procedure LoadCompSpecificationToForm;
|
||
procedure LoadProducersToForm;
|
||
procedure LoadSuppliesKindsToForm;
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
procedure SetNewCompPropIDsToNormRes(AOldCompPropIDs, ANewCompPropIDs: TintList);
|
||
procedure SetValueToAllApplyCheckBoxes(AValue: Boolean);
|
||
procedure SetValueToCurrPageApplyCheckBoxes(AValue: Boolean);
|
||
procedure VisibleApplyCheckBoxes(AVisible, ASetAsChecked: Boolean);
|
||
|
||
procedure OnChangeComponPropertyVal(AProperty: PProperty; AOldProperty: PProperty=nil);
|
||
procedure OnSetComponPropertyVal(AMakeEdit: TMakeEdit; AProperty: PProperty; AOldProperty: PProperty=nil);
|
||
procedure OnControlChange(Sender: TObject);
|
||
public
|
||
{ Public declarations }
|
||
//Tolik 21/02/2022 --
|
||
GComponGuidNB: String;
|
||
//
|
||
GFormMode: TFormMode;
|
||
|
||
GIDComponent: Integer;
|
||
GIDObjectIcon: Integer;
|
||
GIDSymbolImage: Integer;
|
||
GGUIDObjectIcon: string;
|
||
GGUIDSymbolImage: string;
|
||
|
||
GName_Currency: string;
|
||
GID_Currency: Integer;
|
||
GCompAdded: Boolean;
|
||
GChangedPicture: Boolean;
|
||
GChangedInterface: Boolean;
|
||
GChangedProperty: Boolean;
|
||
GChangedComplect: Boolean;
|
||
GChangedObjectIcons: Boolean;
|
||
GChangedUserLength: Boolean;
|
||
GChangedIndex: Boolean;
|
||
GChangedNameShort: Boolean;
|
||
GisEditingPrice: Boolean;
|
||
GColors: TStringList;
|
||
|
||
GDeletedInterfRel: TIntList;
|
||
GDeletedPort: TIntList;
|
||
GDeletedPortInterfRels: TIntList;
|
||
//GDeletedComponIcons: TIntList;
|
||
GDeletedPropRel: TIntList;
|
||
GDeletedComplects: TIntList;
|
||
GDeletedIOfIRel: TIntList;
|
||
GDeletedCableCanalConnectors: TIntList;
|
||
GDeletedCrossConnections: TIntList;
|
||
GDeletedNormID: TIntList;
|
||
GDeletedResourceID: TIntList;
|
||
|
||
property ApplyComponElementsChecked: TIntList read FApplyComponElementsChecked write FApplyComponElementsChecked;
|
||
|
||
procedure EnableButtons;
|
||
procedure EnableDisableApplyIncludingMark;
|
||
function GetComponentType: TComponentType;
|
||
procedure SetControls(APrevCompType: PComponentType);
|
||
procedure SetReadOnlyToControls(AReadOnly: Boolean);
|
||
procedure SetSupplyKindControls;
|
||
|
||
//Function GetIDFromComboBox: Integer;
|
||
|
||
function PriceWithNDS(APrice, ANDS: Double): Double;
|
||
function PriceWithoutNDS(APrice, ANDS: Double): Double;
|
||
procedure SetCalcPrice;
|
||
procedure ShowNDSPrice;
|
||
procedure EnableMakeEditCompon(AEnable: Boolean);
|
||
procedure RefreshFields(ATarget: TkbmMemTable; ASTableName,
|
||
ATargetKeyName, ASourceKeyName: string; AFieldsNames: TStringList);
|
||
procedure EnableControl(AEnable: Boolean);
|
||
procedure SetVisibleByIsLine(AIsLineType: Integer);
|
||
procedure VisibleInterfaceColumns(AVisible: Boolean);
|
||
function GetMainformName: string;
|
||
function GetPropertyBySysName(ASysyName: string): string;
|
||
function GetPropertyBySysNameAsFloat(ASysyName: string): Double;
|
||
function isBusyInterface: Boolean;
|
||
procedure SetPropertyValueBySysName(ASysyName, AValue: string);
|
||
procedure SetPropertyValueBySysNameAsFloat(ASysyName: string; AValue: Double);
|
||
//Procedure AddPropertyToNBCompon(aProp: PProperty); // Tolik 05/03/2021 --
|
||
Procedure AddPropertyToNBCompon(aProp: TNBProperty; aValue: string); // Tolik 05/03/2021 --
|
||
|
||
procedure SdvigNppPortAfterDel(ADelNPPPort: Integer);
|
||
|
||
procedure AddInterfacePort(AIsPort: Integer);
|
||
procedure EditInterfacePort(AIsPort: Integer);
|
||
procedure DelAllInterfacesPorts(AIsPort: Boolean);
|
||
procedure DelAllProperties;
|
||
procedure DelAllCableCanalConnectors;
|
||
procedure DelAllCrossConnections;
|
||
procedure DelInterfacePort(AIsPort: Integer);
|
||
procedure DelPropsBySysNames(ASysNames: TStringList);
|
||
procedure DefineAllPortInterfRelNames;
|
||
procedure DefineCurrPortInterfRelNames(AAutoEditPost: Boolean);
|
||
function GetInterfPortMemTable: TkbmMemTable;
|
||
|
||
procedure AddEditCableCanalConnector(AMakeEdit: TMakeEdit);
|
||
procedure AddEditCrossConnection(AMakeEdit: TMakeEdit);
|
||
procedure AddEditProperty(AMakeEdit: TMakeEdit);
|
||
|
||
procedure LoadComponIcon(AIDObjectIcon: Integer; AGUIDObjectIcon: string; ATrgImage: TcxImage);
|
||
procedure LoadImageFromObjectIcons(var AIDIcon: Integer; var AGUIDObjectIcon: string; AImage: TcxImage);
|
||
procedure RefreshCompIcons(AID_CompStateType: Integer);
|
||
|
||
procedure AddInterfaceToMT(AmeInterfaceRel: TmeInterfaceRel);
|
||
|
||
procedure LoadNormsResources(AAsNew: Boolean);
|
||
procedure SaveNormsResources;
|
||
procedure DelResourcesFromCurrNorm;
|
||
procedure EnableEditDelNorm;
|
||
procedure EnableEditDelResource;
|
||
function GetExistsResourcesIDsFromCurrNorm: TIntList;
|
||
procedure AddEditNorm(AMakeEdit: TMakeEdit);
|
||
procedure AddEditResource(AMakeEdit: TMakeEdit; AMemoryTableKind: TTableKind; AMakeFromCompon: Boolean);
|
||
function GetNewNPP(AMemTable: TkbmMemTable): Integer;
|
||
//procedure SdvigNPP(ANPPAfter: Integer; AMemTable: TkbmMemTable);
|
||
//procedure LoadFromResourceToMT(AResource: TSCSResourceRel; AMakeEdit: TMakeEdit; AMemoryTableKind: TTableKind);
|
||
//procedure LoadFromNormToMT(ASCSNorm: TSCSNorm; AMakeEdit: TMakeEdit; AKolvo: Double);
|
||
//procedure LoadFromMTToResource(AMemoryTableKind: TTableKind; AResourceRel: TSCSResourceRel);
|
||
//procedure LoadFromMTToNorm(ASCSNorm: TSCSNorm);
|
||
procedure CalcNormCost;
|
||
procedure CalcWorkCost;
|
||
|
||
procedure ApplyChangedComponentType;
|
||
function ReadOnly: Boolean;
|
||
|
||
//function Excecute(AMakeEdit: TMakeEdit; var ): Boolean;
|
||
|
||
constructor Create(AOwner: TComponent; AForm: TForm);
|
||
|
||
function Execute(AFormMode: TFormMode; AIsTemplate: Boolean): Boolean;
|
||
end;
|
||
|
||
{
|
||
var
|
||
F_AddComponent: TF_AddComponent;
|
||
}
|
||
implementation
|
||
uses Unit_DM_scs, U_CaseForm, U_AnswerToQuast, U_AddInterface, U_Main, Math,
|
||
U_CanDelete, U_Common, cxExtEditRepositoryItems, FIBQuery,
|
||
U_MakeEditCrossConnection, U_ComponDesignWizard, U_ChoiceComponType;
|
||
|
||
{$R *.dfm}
|
||
|
||
// ############################# My Functions ##################################
|
||
// #############################################################################
|
||
//
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.EnableButtons;
|
||
|
||
procedure VisibleButtons(AVisible: Boolean);
|
||
begin
|
||
ToolButton_Make.Visible := AVisible;
|
||
ToolButton_Edit.Visible := AVisible;
|
||
ToolButton_Delete.Visible := AVisible;
|
||
//Label_AddEditDelComplects.Align := alRight;
|
||
//Label_AddEditDelComplects.Align := alLeft;
|
||
end;
|
||
|
||
procedure EnablDisabl(RecCount, ActiveLevelIndex: Integer);
|
||
begin
|
||
if (RecCount = 0) or (ActiveLevelIndex = liComplects) {or (TF_Main(GForm).GDBMode = bkProjectManager)} then
|
||
begin
|
||
Act_Edit.Enabled := false;
|
||
Act_Del.Enabled := false;
|
||
end
|
||
else
|
||
begin
|
||
Act_Edit.Enabled := true;
|
||
Act_Del.Enabled := true;
|
||
end;
|
||
Act_Add.Enabled := true;
|
||
Act_DublicatePortInterface.Visible := ActiveLevelIndex in [liPort, liInterface];
|
||
Act_DublicatePortInterface.Enabled := (RecCount > 0) and (ActiveLevelIndex in [liPort, liInterface]);
|
||
|
||
Act_TurnFromMemTableToSpravochnik.Visible := ActiveLevelIndex in [liPort, liInterface];
|
||
Act_TurnFromMemTableToSpravochnik.Enabled := (RecCount > 0) and (ActiveLevelIndex in [liPort, liInterface]);
|
||
|
||
VisibleButtons(true);
|
||
Label_AddEditDelComplects.Visible := (ActiveLevelIndex = liComplects);
|
||
//if ActiveLevelIndex <> liComplects then
|
||
// //ToolBar_OtherData.Visible := true
|
||
// VisibleButtons(true)
|
||
//else
|
||
// //ToolBar_OtherData.Visible := false;
|
||
// VisibleButtons(false);
|
||
end;
|
||
|
||
begin
|
||
try
|
||
Act_AddCompDataFromOtherCompon.Visible := (TF_Main(GForm).GDBMode = bkNormBase) and GUseVisibleInterfaces and Not FIsTemplate;
|
||
Act_AddCompDataFromOtherCompon.Enabled := false;
|
||
Act_DelAll.Visible := (TF_Main(GForm).GDBMode = bkNormBase) and Not FIsTemplate;
|
||
with TF_Main(GForm).DM {F_Main.DM} do
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
begin
|
||
if MemTable_InterfaceRelEd.Active then
|
||
EnablDisabl(MemTable_InterfaceRelEd.RecordCount, liInterface)
|
||
else
|
||
EnablDisabl(0, liInterface);
|
||
|
||
Act_AddCompDataFromOtherCompon.Enabled := true;
|
||
Act_AddCompDataFromOtherCompon.Hint := cAddComponent_Msg2_1;
|
||
end;
|
||
liPort:
|
||
begin
|
||
if MemTable_PortEd.Active then
|
||
EnablDisabl(MemTable_PortEd.RecordCount, liPort)
|
||
else
|
||
EnablDisabl(0, liPort);
|
||
|
||
Act_AddCompDataFromOtherCompon.Enabled := true;
|
||
Act_AddCompDataFromOtherCompon.Hint := cAddComponent_Msg2_2;
|
||
end;
|
||
liProperty:
|
||
begin
|
||
if MemTable_PropertyEd.Active then
|
||
EnablDisabl(MemTable_PropertyEd.RecordCount, liProperty)
|
||
else
|
||
EnablDisabl(0, liProperty);
|
||
//if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
// Act_Del.Enabled := false;
|
||
end;
|
||
liComplects:
|
||
begin
|
||
if MemTable_ComplectsEd.Active then
|
||
EnablDisabl(MemTable_ComplectsEd.RecordCount, liComplects)
|
||
else
|
||
EnablDisabl(0, liComplects);
|
||
end;
|
||
liCableCanalConnectors:
|
||
begin
|
||
if MemTable_CableCanalConnectorsEd.Active then
|
||
EnablDisabl(MemTable_CableCanalConnectorsEd.RecordCount, liCableCanalConnectors)
|
||
else
|
||
EnablDisabl(0, liCableCanalConnectors);
|
||
end;
|
||
liCrossConnections:
|
||
begin
|
||
if mtCrossConnectionEd.Active then
|
||
EnablDisabl(mtCrossConnectionEd.RecordCount, liCrossConnections)
|
||
else
|
||
EnablDisabl(0, liCrossConnections);
|
||
end;
|
||
end;
|
||
Act_DelAll.Enabled := Act_Del.Enabled;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.EnableButtons: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.EnableDisableApplyIncludingMark;
|
||
var
|
||
CanEnable: Boolean;
|
||
begin
|
||
CanEnable := false;
|
||
if (CheckBox_ApplyForList.Enabled and CheckBox_ApplyForList.Checked) or
|
||
(CheckBox_ApplyForProject.Checked) then
|
||
CanEnable := true;
|
||
CheckBox_ApplyIncludingMark.Enabled := CanEnable;
|
||
lbSelectFieldsFromApplyInPM.Enabled := CanEnable;
|
||
end;
|
||
|
||
function TF_AddComponent.GetComponentType: TComponentType;
|
||
var
|
||
SprComponentType: TNBComponentType;
|
||
begin
|
||
Result.ID := 0;
|
||
Result.NAME := '';
|
||
Result.NamePlural := '';
|
||
Result.PortKind := pkNone;
|
||
Result.ActiveState := biFalse;
|
||
Result.IsLine := biFalse;
|
||
Result.IsStandart := biFalse;
|
||
if ComboBox_ComponentType.Text <> '' then
|
||
begin
|
||
case TF_Main(GForm).GDBMode of
|
||
bkNormBase:
|
||
Result := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType));
|
||
bkProjectManager:
|
||
begin
|
||
SprComponentType := nil;
|
||
if TF_Main(GForm).GSCSBase.CurrProject.CurrList <> nil then
|
||
SprComponentType := TF_Main(GForm).GSCSBase.CurrProject.CurrList.Spravochnik.GetComponentTypeWithAssign(
|
||
GetGUIDFromComboBox(ComboBox_ComponentType), TF_Main(GForm).FNormBase.GSCSBase.NBSpravochnik);
|
||
if SprComponentType <> nil then
|
||
Result := SprComponentType.ComponentType;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetControls(APrevCompType: PComponentType);
|
||
var
|
||
GUIDComponType: string;
|
||
GDBMode: TDBKind;
|
||
CanVisible: Boolean;
|
||
ComponentType: TComponentType;
|
||
HardIzm: String;
|
||
begin
|
||
FIsLoadingForm := true;
|
||
try
|
||
GDBMode := TF_Main(GForm).GDBMode;
|
||
|
||
SetReadOnlyToControls(GFormMode = fmView);
|
||
|
||
GUIDComponType := GetGUIDFromComboBox(ComboBox_ComponentType);
|
||
ComponentType := GetComponentType;
|
||
if GUIDComponType = '' then
|
||
GroupBox_OtherData.Enabled := false
|
||
else
|
||
GroupBox_OtherData.Enabled := true;
|
||
|
||
//cbSuppliesKindPropertiesChange(cbSuppliesKind);
|
||
|
||
//24.09.2007 pnSuppliesKind.Visible := (GDBMode = bkNormBase);
|
||
|
||
if ComponentType.IsLine = biTrue then
|
||
GT_InterfaceMultiple.Caption := GetNameInterfaceMultipleForLine //CMultipleLineInterface
|
||
else
|
||
GT_InterfaceMultiple.Caption := CMultiplePoinInterface;
|
||
GL_CableCanalConnectors.Visible := (ComponentType.SysName = ctsnCableChannel) and Not FIsTemplate;
|
||
GL_CrossConnection.Visible := (ComponentType.SysName = ctsnCupBoard) and (GDBMode = bkNormBase) and Not FIsTemplate;
|
||
GL_Interface.Visible := GUseVisibleInterfaces;
|
||
if Not Grid.ActiveLevel.Visible then
|
||
if Grid.Levels.GetAvailableItem <> nil then
|
||
Grid.ActiveLevel := Grid.Levels.GetAvailableItem;
|
||
|
||
|
||
CanVisible := false;
|
||
if GDBMode = bkProjectManager then
|
||
CanVisible := true;
|
||
//GroupBox_ApplyForAllComponents.Visible := CanVisible;
|
||
//pnApplyForCurrentDir.Visible := Not CanVisible;
|
||
MaskEdit_Cyper.Enabled := not CanVisible;
|
||
lbIndex.Enabled := CanVisible;
|
||
seIndex.Enabled := CanVisible;
|
||
pnProjManElements.Visible := CanVisible;
|
||
|
||
GT_NORMSExpenseForLength.Visible := ComponentType.IsLine = biTrue;
|
||
//GT_NORMSExpenseForSection.Visible := ComponentType.IsLine = biTrue;
|
||
|
||
SetSupplyKindControls;
|
||
cbUseDismounted.Enabled := cbDismount.Checked;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
cbComponentIsTemplate.Checked := (GIDComponent > 0) and (GIDComponent = ComponentType.IDComponTemplate);
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
HardIzm := GetNameUOMForCompon('', @ComponentType, TF_Main(GForm).FUOM);
|
||
if HardIzm <> '' then
|
||
Edit_Izm.Text := HardIzm
|
||
else
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>-<2D> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD>-<2D> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20> <20><>.<2E><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if APrevCompType <> nil then
|
||
begin
|
||
if GetNameUOMForCompon('', APrevCompType, TF_Main(GForm).FUOM) <> '' then
|
||
if (FCurrComponentType.IsLine = biFalse) or (FCurrComponentType.CanUseAsPoint = biTrue) then
|
||
if FSuppliesKind.ID <> 0 then
|
||
Edit_Izm.Text := FSuppliesKind.Izm;
|
||
end;
|
||
Edit_Izm.Properties.ReadOnly := (HardIzm <> '');
|
||
|
||
cbApplyNorms.Properties.Caption := cAddComponent_Msg17;
|
||
cbApplyResources.Properties.Caption := cAddComponent_Msg18;
|
||
|
||
if Not FIsTemplate then
|
||
lbSymbolImage.Caption := cAddComponent_Msg23
|
||
else
|
||
lbSymbolImage.Caption := cAddComponent_Msg24;
|
||
|
||
cbComponentIsTemplate.Enabled := GUseComponTemplates;
|
||
cbComponentIsTemplate.Visible := Not FIsTemplate;
|
||
cbImportFromTemplate.Enabled := GUseComponTemplates;
|
||
cbImportFromTemplate.Visible := Not FIsTemplate;
|
||
|
||
//Label_ArticulProducer.Enabled := Not FIsTemplate;
|
||
//Edit_ArticulProducer.Enabled := Not FIsTemplate;
|
||
//Label_ArticulDistributor.Enabled := Not FIsTemplate;
|
||
//Edit_ArticulDistributor.Enabled := Not FIsTemplate;
|
||
|
||
//Act_AddCompDataFromOtherCompon.Visible := Not FIsTemplate;
|
||
lbCyper.Visible := Not FIsTemplate;
|
||
MaskEdit_Cyper.Visible := Not FIsTemplate;
|
||
|
||
//Tolik 15/02/2022 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//tsWorkingAndResources.TabVisible := Not FIsTemplate;
|
||
//
|
||
pcApplyForAll.Visible := Not FIsTemplate;
|
||
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
cbCanComplect.Visible := GUseVisibleInterfaces and Not FIsTemplate;
|
||
btCanComplect.Visible := GUseVisibleInterfaces and Not FIsTemplate;
|
||
|
||
//28.08.2013 cbIsMarkInCaptions.Visible := ComponentType.IsLine = biFalse;
|
||
|
||
CanVisible := true;
|
||
if GDBMode = bkProjectManager then
|
||
CanVisible := false;
|
||
lbSpecification.Visible := CanVisible;
|
||
cbSpecification.Visible := CanVisible;
|
||
btChangeSpecification.Visible := CanVisible;
|
||
finally
|
||
FIsLoadingForm := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetReadOnlyToControls(AReadOnly: Boolean);
|
||
begin
|
||
BitBtn_OK.Visible := Not AReadOnly;
|
||
BitBtn_Cancel.Visible := Not AReadOnly;
|
||
btClose.Visible := AReadOnly;
|
||
|
||
//ComboBox_ComponentType.Properties.ReadOnly := AReadOnly;
|
||
//ComboBox_NetType.Properties.ReadOnly := AReadOnly;
|
||
//ComboBox_Producer.Properties.ReadOnly := AReadOnly;
|
||
//cbSuppliesKind.Properties.ReadOnly := AReadOnly;
|
||
|
||
Button_TypeComponent.Enabled := Not AReadOnly;
|
||
Button_ChangeNetType.Enabled := Not AReadOnly;
|
||
Button_Producer.Enabled := Not AReadOnly;
|
||
btSuppliesKind.Enabled := Not AReadOnly;
|
||
|
||
Button_OpenPicture.Enabled := Not AReadOnly;
|
||
Button_OpenCompIcons.Enabled := Not AReadOnly;
|
||
btOpenSymbolImage.Enabled := Not AReadOnly;
|
||
|
||
Button_ClearImage.Enabled := Not AReadOnly;
|
||
Button_ClearComponIcon.Enabled := Not AReadOnly;
|
||
btClearSymbolImage.Enabled := Not AReadOnly;
|
||
|
||
pcApplyForAll.Visible := Not AReadOnly;
|
||
|
||
gbOkCancelResize(gbOkCancel);
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetSupplyKindControls;
|
||
var
|
||
IDSuppliesKind: Integer;
|
||
GUIDSuppliesKind: string;
|
||
begin
|
||
IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
|
||
lbPriceSupply.Enabled := (IDSuppliesKind > 0) or (GUIDSuppliesKind <> '');
|
||
cePriceSupply.Enabled := (IDSuppliesKind > 0) or (GUIDSuppliesKind <> '');
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
{Function TF_AddComponent.GetIDFromComboBox: Integer;
|
||
var Item: Integer;
|
||
ID_NetType: TObject;
|
||
begin
|
||
Result := 0;
|
||
Item := ComboBox_NetType.ItemIndex;
|
||
ID_NetType := ComboBox_NetType.Properties.Items.Objects[item];
|
||
Result := (ID_NetType as TID).ID;
|
||
Item := Result;
|
||
end;
|
||
}
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD> #####
|
||
|
||
function TF_AddComponent.PriceWithNDS(APrice, ANDS: Double): Double;
|
||
begin
|
||
Result := Round3(APrice + APrice * (ANDS / 100));
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> #####
|
||
|
||
function TF_AddComponent.PriceWithoutNDS(APrice, ANDS: Double): Double;
|
||
begin
|
||
Result := APrice - Round3(APrice * (ANDS / (100 + ANDS)));
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
|
||
|
||
procedure TF_AddComponent.ShowNDSPrice;
|
||
var
|
||
Price1: Double;
|
||
Price2: Double;
|
||
begin
|
||
//if RadioGroup_HasNds.ItemIndex = 1 then // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
Price1 := 0;
|
||
Price2 := 0;
|
||
//if StrCanBeFloat(CurrencyEdit_Price1.Text) then
|
||
Price1 := StrToFloatU(CorrectStrToFloat(CurrencyEdit_Price1.Text));
|
||
//if StrCanBeFloat(CurrencyEdit_Price2.Text) then
|
||
Price2 := StrToFloatU(CorrectStrToFloat(CurrencyEdit_Price2.Text));
|
||
if not CheckBox_HasNds.Checked then
|
||
begin
|
||
Label_Nds1.Visible := true;
|
||
Label_Nds2.Visible := true;
|
||
CurrencyEdit_NDS1.Visible := true;
|
||
CurrencyEdit_NDS2.Visible := true;
|
||
CurrencyEdit_NDS1.Value := PriceWithNDS(Price1, TF_Main(GForm).GNDS);
|
||
CurrencyEdit_NDS2.Value := PriceWithNDS(Price2, TF_Main(GForm).GNDS);
|
||
end
|
||
else
|
||
begin
|
||
Label_Nds1.Visible := false;
|
||
Label_Nds2.Visible := false;
|
||
CurrencyEdit_NDS1.Visible := false;
|
||
CurrencyEdit_NDS2.Visible := false;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>) #####
|
||
|
||
procedure TF_AddComponent.EnableMakeEditCompon(AEnable: Boolean);
|
||
begin
|
||
TF_Main(GForm).Act_MakeComponent.Enabled := AEnable;
|
||
TF_Main(GForm).Act_EditComponent.Enabled := AEnable;
|
||
TF_Main(GForm).Act_DelComponent.Enabled := AEnable;
|
||
end;
|
||
|
||
// ######################## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ######################################
|
||
|
||
procedure TF_AddComponent.FormCreate(Sender: TObject);
|
||
var
|
||
DBMode: TDBKind;
|
||
begin
|
||
DBMode := TF_Main(GForm).GDBMode;
|
||
case DBMode of
|
||
bkNormBase:
|
||
pcApplyForAll.ActivePage := tsApplyInNB;
|
||
bkProjectManager:
|
||
begin
|
||
pcApplyForAll.ActivePage := tsApplyInPM;
|
||
cbComponentIsTemplate.Visible := false;
|
||
cbImportFromTemplate.Visible := false;
|
||
end;
|
||
end;
|
||
cbImportFromTemplate.Checked := true;
|
||
|
||
FComponBeforeEdit := TSCSComponent.Create(GForm);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>" <20><><EFBFBD><EFBFBD><EFBFBD> ProjectManager
|
||
//*** <20><> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> User-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> isLine
|
||
{if (GForm as TF_Main).GDBMode = bkProjectManager then
|
||
begin
|
||
Grid.PopupMenu := nil;
|
||
ToolBar_OtherData.Visible := false;
|
||
|
||
ActList := TList.Create;
|
||
ActList.Add(Act_Add);
|
||
ActList.Add(Act_AddComplectEd);
|
||
ActList.Add(Act_AddInterface);
|
||
ActList.Add(Act_AddProperty);
|
||
ActList.Add(Act_Edit);
|
||
ActList.Add(Act_EditComplectEd);
|
||
ActList.Add(Act_EditInterface);
|
||
ActList.Add(Act_EditProperty);
|
||
ActList.Add(Act_Del);
|
||
ActList.Add(Act_DelComplectEd);
|
||
ActList.Add(Act_DelInterface);
|
||
ActList.Add(Act_DelProperty);
|
||
|
||
for i := 0 to ActList.Count - 1 do
|
||
begin
|
||
TAction(ActList.Items[i]).Enabled := false;
|
||
TAction(ActList.Items[i]).Visible := false;
|
||
end;
|
||
ActList.Free;
|
||
end; }
|
||
|
||
InterfFields := TStringList.Create;
|
||
InterfFields.Add('ID');
|
||
InterfFields.Add('ID_COMPONENT');
|
||
InterfFields.Add('ID_INTERFACE');
|
||
InterfFields.Add('NAME');
|
||
InterfFields.Add('TYPEI');
|
||
InterfFields.Add('Kind');
|
||
InterfFields.Add('IsPort');
|
||
InterfFields.Add('GENDER');
|
||
InterfFields.Add('IsBusy');
|
||
InterfFields.Add('Multiple');
|
||
InterfFields.Add('isNative');
|
||
InterfFields.Add('ValueI');
|
||
InterfFields.Add('SORT_ID');
|
||
InterfFields.Add(fnNpp);
|
||
InterfFields.Add('Num_Pair');
|
||
InterfFields.Add('Color');
|
||
InterfFields.Add('id_adverse');
|
||
InterfFields.Add('Side');
|
||
InterfFields.Add(fnNotice);
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
InterfFields.Add('CoordZ');
|
||
|
||
PortFields := TStringList.Create;
|
||
PortFields.Add('ID');
|
||
PortFields.Add('ID_COMPONENT');
|
||
PortFields.Add('ID_INTERFACE');
|
||
PortFields.Add(fnNpp);
|
||
PortFields.Add('NAME');
|
||
PortFields.Add(fnNameConnectCable);
|
||
PortFields.Add('TYPEI');
|
||
PortFields.Add('Kind');
|
||
PortFields.Add('IsPort');
|
||
PortFields.Add('IsUser_Port');
|
||
PortFields.Add('Npp_Port');
|
||
PortFields.Add('GENDER');
|
||
PortFields.Add('IsBusy');
|
||
PortFields.Add('Multiple');
|
||
PortFields.Add('isNative');
|
||
PortFields.Add('Color');
|
||
PortFields.Add(fnNotice);
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
PortFields.Add('ID_CONNECTED');
|
||
PortFields.Add('NAME_CONNECTED');
|
||
PortFields.Add('CoordZ');
|
||
end;
|
||
|
||
ComponIconsFields := TStringList.Create;
|
||
ComponIconsFields.Add('ID');
|
||
ComponIconsFields.Add('ID_OBJECT_ICON');
|
||
//ComponIconsFields.Add('Name');
|
||
//ComponIconsFields.Add('ICON');
|
||
|
||
PropertFields := TStringList.Create;
|
||
PropertFields.Add(fnIsStandart);
|
||
PropertFields.Add(fnIsDefault);
|
||
PropertFields.Add(fnID);
|
||
PropertFields.Add(fnIDMaster);
|
||
PropertFields.Add(fnIDProperty);
|
||
PropertFields.Add(fnIDDataType);
|
||
PropertFields.Add(fnNAME);
|
||
PropertFields.Add(fnSYSNAME);
|
||
PropertFields.Add(fnPVALUE);
|
||
PropertFields.Add(fnIZM);
|
||
PropertFields.Add(fnTakeIntoConnect);
|
||
PropertFields.Add(fnTakeIntoJoin);
|
||
PropertFields.Add(fnIsCrossControl);
|
||
PropertFields.Add(fnIDCrossProperty);
|
||
PropertFields.Add(fnDescription);
|
||
|
||
CableCanalConnectorsFields := TStringList.Create;
|
||
CableCanalConnectorsFields.Add(fnID);
|
||
CableCanalConnectorsFields.Add(fnIDComponent);
|
||
CableCanalConnectorsFields.Add(fnIDNBConnector);
|
||
CableCanalConnectorsFields.Add(fnGuidNBConnector);
|
||
CableCanalConnectorsFields.Add(fnConnectorType);
|
||
CableCanalConnectorsFields.Add(fnName);
|
||
|
||
ComplectsFields := TStringList.Create;
|
||
ComplectsFields.Add('ID');
|
||
ComplectsFields.Add('ID_COMPONENT');
|
||
ComplectsFields.Add('ID_CHILD');
|
||
ComplectsFields.Add('NAME');
|
||
ComplectsFields.Add('KOLVO');
|
||
ComplectsFields.Add('PRICE1');
|
||
ComplectsFields.Add('COST1');
|
||
ComplectsFields.Add('PRICE2');
|
||
ComplectsFields.Add('COST2');
|
||
|
||
IOfI_RelFields := TStringList.Create;
|
||
|
||
GDeletedInterfRel := TIntList.Create;
|
||
GDeletedPort := TIntList.Create;
|
||
GDeletedPortInterfRels := TIntList.Create;
|
||
//GDeletedComponIcons := TStringList.Create;
|
||
GDeletedPropRel := TIntList.Create;
|
||
GDeletedComplects := TIntList.Create;
|
||
GDeletedIOfIRel := TIntList.Create;
|
||
GDeletedCableCanalConnectors := TIntList.Create;
|
||
GDeletedCrossConnections := TIntList.Create;
|
||
GDeletedNormID := TIntList.Create;
|
||
GDeletedResourceID := TIntList.Create;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
//FillComboNetType(0);
|
||
///FillComboBox(ComboBox_NetType, F_NormBase.DM.DataSet_NET_TYPE, 'ID', 'Name');
|
||
|
||
GColors := TStringList.Create;
|
||
GColors.Add('dssfsfs');
|
||
|
||
GT_Complects.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_ComplectsEd;
|
||
GT_Property.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_PropertyEd;
|
||
GT_Interface.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_INTERFACERelEd;
|
||
GT_PORT.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_PortEd;
|
||
GT_CableCanalConnectors.DataController.DataSource := TF_Main(GForm).DM.DSrc_MT_CableCanalConnectorsEd;
|
||
GT_CrossConnection.DataController.DataSource := TF_Main(GForm).DM.dsrcMTCrossConnectionEd;
|
||
|
||
GT_Norms.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_NormsEd;
|
||
GT_Resources.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_ResourcesRelEd;
|
||
|
||
GT_InterfaceCoordZ.Visible := false;
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
//Label_NameMark.Visible := false;
|
||
//Edit_NameMark.Visible := false;
|
||
//CheckBox_IsUserMark.Visible := false;
|
||
gbNameMark.Visible := false;
|
||
|
||
//GT_InterfaceCoordZ.Visible := false;
|
||
GT_InterfaceNpp.Visible := false;
|
||
GT_InterfaceKolvoBusy.Visible := false;
|
||
|
||
GT_PORTNpp.Visible := false;
|
||
GT_PORTNppPort.Visible := false;
|
||
GT_PORTNameConnected.Visible := false;
|
||
GT_PORTNameConnectCable.Visible := false;
|
||
GT_PortKolvoBusy.Visible := false;
|
||
end;
|
||
|
||
TcxCurrencyEditProperties(GT_InterfaceValueI.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
|
||
TcxCurrencyEditProperties(GT_ComplectsPrice1.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComplectsCost1.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComplectsPrice2.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_ComplectsCost2.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
|
||
//01.11.2013
|
||
GT_NORMSLaborTime.Caption := TF_Main(GForm).GT_NormsResourcesLaborTime.Caption;
|
||
GT_NORMSLaborTime.DataBinding.FieldName := TF_Main(GForm).GT_NormsResourcesLaborTime.DataBinding.FieldName;
|
||
GT_NORMSPricePerTime.Caption := TF_Main(GForm).GT_NormsResourcesPricePerTime.Caption;
|
||
GT_NORMSPricePerTime.DataBinding.FieldName := TF_Main(GForm).GT_NormsResourcesPricePerTime.DataBinding.FieldName;
|
||
TcxCurrencyEditProperties(GT_NORMSPricePerTime.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSPricePerTime.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
TcxCurrencyEditProperties(GT_NORMSCost.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSCost.Properties).DecimalPlaces := FloatPrecision;
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DecimalPlaces := FloatPrecision;
|
||
GT_NORMSExpenseForLength.DataBinding.FieldName := fnExpenseForLength;
|
||
TcxCurrencyEditProperties(GT_NORMSExpenseForLength.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSExpenseForLength.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_NORMSCountForPoint.Caption := cNameCountForPoint;
|
||
GT_NORMSCountForPoint.DataBinding.FieldName := fnCountForPoint;
|
||
TcxCurrencyEditProperties(GT_NORMSCountForPoint.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSCountForPoint.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_NORMSStepOfPoint.DataBinding.FieldName := fnStepOfPoint;
|
||
TcxCurrencyEditProperties(GT_NORMSStepOfPoint.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSStepOfPoint.Properties).DecimalPlaces := FloatPrecision;
|
||
|
||
GT_NORMSTotalKolvo.Caption := cNameTotalkolvo;
|
||
GT_NORMSTotalKolvo.DataBinding.FieldName := fnTotalKolvo;
|
||
|
||
tsWorkingAndResources.Caption := cNameAccessoryResourceNorm;
|
||
|
||
Act_AddResourceToMTNorm.Hint := Act_AddResourceToMTNorm.Caption;
|
||
Act_AddResourceComponToMTNorm.Caption := cMain_Msg168;
|
||
Act_AddResourceComponToMTNorm.Hint := Act_AddResourceComponToMTNorm.Caption;
|
||
|
||
//TcxCurrencyEditProperties(GT_NORMSExpenseForLength.Properties).
|
||
//TcxLookupComboBoxProperties(GT_NORMSExpenseForLength.Properties).
|
||
|
||
EditRepository_NormCurrency_NormCost.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
EditRepository_NormCurrency_NormCost.Properties.DecimalPlaces := FloatPrecision;
|
||
EditRepository_NormCurrency_NormTotalCost.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
EditRepository_NormCurrency_NormTotalCost.Properties.DecimalPlaces := FloatPrecision;
|
||
EditRepository_NormCurrency_ResourceCost.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
EditRepository_NormCurrency_ResourceCost.Properties.DecimalPlaces := FloatPrecision;
|
||
EditRepository_NormCurrency_ResourcePrice.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
EditRepository_NormCurrency_ResourcePrice.Properties.DecimalPlaces := FloatPrecision;
|
||
|
||
CurrencyEdit_Price1.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
CurrencyEdit_Price1.Properties.DecimalPlaces := FloatPrecision;
|
||
CurrencyEdit_Price2.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
CurrencyEdit_Price2.Properties.DecimalPlaces := FloatPrecision;
|
||
CurrencyEdit_NDS1.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
CurrencyEdit_NDS1.Properties.DecimalPlaces := FloatPrecision;
|
||
CurrencyEdit_NDS2.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
CurrencyEdit_NDS2.Properties.DecimalPlaces := FloatPrecision;
|
||
CurrencyEdit_ResourcesCost.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
CurrencyEdit_ResourcesCost.Properties.DecimalPlaces := FloatPrecision;
|
||
cePriceSupply.Properties.DisplayFormat := GetDisplayFormatForFloat;
|
||
cePriceSupply.Properties.DecimalPlaces := FloatPrecision;
|
||
|
||
FApplyCheckBoxes := TObjectList.Create(False);
|
||
FApplyCheckBoxesPageIndex := TIntList.Create;
|
||
FApplyCheckBoxesBorderColor := clRed;
|
||
FApplyCheckBoxesBorderStyle := ebsSingle;
|
||
|
||
AddApplyCheckBoxToList(cbApplyName, 0);
|
||
AddApplyCheckBoxToList(cbApplyNameShort, 0);
|
||
AddApplyCheckBoxToList(cbApplyArticulProducer, 0);
|
||
AddApplyCheckBoxToList(cbApplyArticulDistributor, 0);
|
||
AddApplyCheckBoxToList(cbApplyIzm, 0);
|
||
AddApplyCheckBoxToList(cbApplyUserLength, 0);
|
||
AddApplyCheckBoxToList(cbApplyComponentType, 0);
|
||
AddApplyCheckBoxToList(cbApplyNetType, 0);
|
||
AddApplyCheckBoxToList(cbApplyProducer, 0);
|
||
AddApplyCheckBoxToList(cbApplyIsMarkInCaptions, 0);
|
||
AddApplyCheckBoxToList(cbApplyNotice, 0);
|
||
AddApplyCheckBoxToList(cbApplyCanComplect, 0);
|
||
AddApplyCheckBoxToList(cbApplyPrice, 0);
|
||
AddApplyCheckBoxToList(cbApplyComponData, 0);
|
||
AddApplyCheckBoxToList(cbApplyImage, 1);
|
||
AddApplyCheckBoxToList(cbApplySpecification, 1);
|
||
AddApplyCheckBoxToList(cbApplyComponIcon, 1);
|
||
AddApplyCheckBoxToList(cbApplySymbol, 1);
|
||
AddApplyCheckBoxToList(cbApplyDescription, 1);
|
||
{$IF Defined(NORMSCS_PE) or Defined(SCS_SPA)}
|
||
cbApplyNorms.Visible := false;
|
||
{$ELSE}
|
||
AddApplyCheckBoxToList(cbApplyNorms, 2);
|
||
{$IFEND}
|
||
AddApplyCheckBoxToList(cbApplyResources, 2);
|
||
|
||
FApplyControls := TObjectList.Create(False);
|
||
FApplyControls.Add(Edit_Name);
|
||
FApplyControls.Add(Edit_NameShort);
|
||
FApplyControls.Add(Edit_ArticulProducer);
|
||
FApplyControls.Add(Edit_ArticulDistributor);
|
||
FApplyControls.Add(Edit_Izm);
|
||
FApplyControls.Add(SpinEdit_UserLength);
|
||
FApplyControls.Add(ComboBox_ComponentType);
|
||
FApplyControls.Add(ComboBox_NetType);
|
||
FApplyControls.Add(ComboBox_Producer);
|
||
FApplyControls.Add(cbIsMarkInCaptions);
|
||
FApplyControls.Add(Edit_Notice);
|
||
FApplyControls.Add(cbCanComplect);
|
||
FApplyControls.Add(gbPrice);
|
||
FApplyControls.Add(Grid);
|
||
FApplyControls.Add(Image);
|
||
FApplyControls.Add(cbSpecification);
|
||
FApplyControls.Add(Image_CompIcons);
|
||
FApplyControls.Add(Image_Symbol);
|
||
FApplyControls.Add(meDescription);
|
||
//FApplyControls.Add(gbNorms);
|
||
{$IF Defined(NORMSCS_PE) or Defined(SCS_SPA)}
|
||
//
|
||
{$ELSE}
|
||
FApplyControls.Add(gbNorms);
|
||
{$IFEND}
|
||
FApplyControls.Add(gbNorms); //FApplyControls.Add(GroupBox_ResourcesRel);
|
||
|
||
FApplyComponElementsVisible := TIntList.Create;
|
||
FApplyComponElementsVisible.Add(BoolToInt(DBMode = bkNormBase)); //liPort = 0
|
||
FApplyComponElementsVisible.Add(BoolToInt(DBMode = bkNormBase)); //liInterface = 1
|
||
FApplyComponElementsVisible.Add(BoolToInt(DBMode = bkNormBase)); //liProperty = 2
|
||
FApplyComponElementsVisible.Add(biFalse); //liComplects = 3
|
||
FApplyComponElementsVisible.Add(BoolToInt(DBMode = bkNormBase)); //liCableCanalConnectors = 4
|
||
FApplyComponElementsVisible.Add(biFalse); //liCrossConnections = 5;
|
||
|
||
FApplyComponElementsChecked := TIntList.Create;
|
||
FApplyComponElementsChecked.Add(biTrue); //liPort = 0
|
||
FApplyComponElementsChecked.Add(biTrue); //liInterface = 1
|
||
FApplyComponElementsChecked.Add(biTrue); //liProperty = 2
|
||
FApplyComponElementsChecked.Add(biFalse); //liComplects = 3
|
||
FApplyComponElementsChecked.Add(biTrue); //liCableCanalConnectors = 4
|
||
FApplyComponElementsChecked.Add(biFalse); //liCrossConnections = 5;
|
||
|
||
{//10.08.2012
|
||
VisibleApplyCheckBoxes(false, true);
|
||
cbApplyName.Checked := false;
|
||
cbApplyNameShort.Checked := false;
|
||
cbApplyArticulProducer.Checked := false;
|
||
cbApplyArticulDistributor.Checked := false;
|
||
cbApplyPrice.Checked := false;
|
||
cbApplyComponIcon.Checked := false;
|
||
pnApplyNormsResources.Visible := false; }
|
||
VisibleApplyCheckBoxes(false, false);
|
||
|
||
pcMain.ActivePage := tsCommon;
|
||
gbOkCancelResize(gbOkCancel);
|
||
|
||
//cePriceSupply.Properties
|
||
//cePriceSupply.ValidateEdit()
|
||
|
||
FIsLoadingForm := false;
|
||
Edit_Name.Properties.OnChange := OnControlChange;
|
||
Edit_Izm.Properties.OnChange := OnControlChange;
|
||
Edit_NameShort.Properties.OnChange := OnControlChange;
|
||
Edit_NameMark.Properties.OnChange := OnControlChange;
|
||
rbMarkByDefault.OnClick := OnControlChange;
|
||
ComboBox_NetType.Properties.OnChange := OnControlChange;
|
||
//RadioGroup_CanComplect.Properties.OnChange := OnControlChange;
|
||
ComboBox_Producer.Properties.OnChange := OnControlChange;
|
||
cePriceSupply.Properties.OnChange := OnControlChange;
|
||
Edit_Notice.Properties.OnChange := OnControlChange;
|
||
// Tolik 25//11/2019 --
|
||
seIndex.Value := 0;
|
||
//
|
||
cbNotUseUgoBounds.Checked := False; // Tolik 09/03/2021 --
|
||
{$IF Not Defined(FINAL_SCS)}
|
||
btImportComponByArtProducer.Visible := true;
|
||
{$IFEND}
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.FormDestroy(Sender: TObject);
|
||
begin
|
||
FreeAndNil(InterfFields);
|
||
FreeAndNil(PropertFields);
|
||
FreeAndNil(ComplectsFields);
|
||
FreeAndNil(IOfI_RelFields);
|
||
FreeAndNil(ComponIconsFields);
|
||
|
||
FreeAndNil(GDeletedInterfRel);
|
||
FreeAndNil(GDeletedPort);
|
||
FreeAndNil(GDeletedPortInterfRels);
|
||
//GDeletedComponIcons.Clear;
|
||
//GDeletedComponIcons.Free;
|
||
FreeAndNil(GDeletedPropRel);
|
||
FreeAndNil(GDeletedComplects);
|
||
FreeAndNil(GDeletedIOfIRel);
|
||
FreeAndNil(GDeletedCableCanalConnectors);
|
||
FreeAndNil(GDeletedCrossConnections);
|
||
FreeAndNil(GDeletedNormID);
|
||
FreeAndNil(GDeletedResourceID);
|
||
|
||
ClearComboBox(ComboBox_ComponentType);
|
||
ClearComboBox(ComboBox_NetType);
|
||
ClearComboBox(ComboBox_Producer);
|
||
ClearComboBox(cbSpecification);
|
||
|
||
FApplyCheckBoxes.Free;
|
||
FApplyCheckBoxesPageIndex.Free;
|
||
FApplyControls.Free;
|
||
|
||
FApplyComponElementsVisible.Free;
|
||
FApplyComponElementsChecked.Free;
|
||
|
||
FreeAndNil(FComponBeforeEdit);
|
||
end;
|
||
|
||
procedure TF_AddComponent.FormClose(Sender: TObject;
|
||
var Action: TCloseAction);
|
||
//var SavedID: Integer;
|
||
begin
|
||
{ with TF_Main(GForm).F_CanDelete do
|
||
ListView_NotDel.OnChange := ListView_NotDelChange; }
|
||
|
||
{with TF_Main(GForm).DM do
|
||
begin
|
||
SavedID := pFIBDataSet1.FN('ID').AsInteger;
|
||
SelectInterfaces;
|
||
SearchRecord(pFIBDataSet1, 'ID', SavedID);
|
||
|
||
SavedID := DataSet_COMP_PROP_RELATION.FN('ID').AsInteger;
|
||
SelectComponProperty;
|
||
SearchRecord(DataSet_COMP_PROP_RELATION, 'ID', SavedID);
|
||
|
||
MemTable_InterfaceRelEd.Active := false;
|
||
MemTable_InterfOfInterf_RelEd.Active := false;
|
||
MemTable_PropertyEd.Active := false;
|
||
MemTable_ComplectsEd.Active := false;
|
||
F_NormBase.DM.MemTable_ComponentIcons.Active := false;
|
||
end; }
|
||
try
|
||
TF_Main(GForm).F_AnswerToQuast.Close;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
// ######################## <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ######################################
|
||
|
||
procedure TF_AddComponent.FormShow(Sender: TObject);
|
||
//var //i: Integer;
|
||
//Ratio: Double;
|
||
//ID_NetType: TObject;
|
||
//Stream: TStream;
|
||
//CurrTreeNode : TTreeNode;
|
||
//ProjManCompon: TSCSComponent;
|
||
|
||
var Prop: PProperty; // Tolik 09/03/2021 --
|
||
SCSCompon: TSCSComponent;
|
||
begin
|
||
try
|
||
//Tolik 21/02/2022 --
|
||
GComponGuidNB := '';
|
||
//
|
||
cbNotUseUgoBounds.Checked := False; // Tolik 09/03/2021 --
|
||
try
|
||
if GReadOnlyMode then
|
||
bitbtn_Ok.Enabled := False;
|
||
|
||
Screen.Cursor := crHourGlass;
|
||
if GL_Interface.Visible then
|
||
Grid.ActiveLevel := GL_Interface;
|
||
GCompAdded := false;
|
||
GChangedPicture := false;
|
||
GChangedInterface := false;
|
||
GChangedProperty := false;
|
||
GChangedComplect := false;
|
||
GChangedObjectIcons := false;
|
||
GChangedUserLength := false;
|
||
GChangedIndex := false;
|
||
GChangedNameShort := false;
|
||
FChangedComponTypeInCombo := false;
|
||
|
||
FSpravochnik := nil;
|
||
FProjSpravochnik := nil;
|
||
FListSpravochnik := nil;
|
||
|
||
FTraccaLength := 0;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
FTraccaLength := FloatInUOM(1, TF_MAIN(GForm).FUOM, umMetr);
|
||
|
||
//TF_Main(GForm).F_CanDelete.ListView_NotDel.OnChange := nil;
|
||
Label_Price1.Caption := cAddComponent_Msg3 + ' ' + TF_Main(GForm).GLocalCurrencyM.Data.NameBrief;
|
||
Label_Price2.Caption := cAddComponent_Msg3 + ' ' + TF_Main(GForm).GLocalCurrencyS.Data.NameBrief;
|
||
GisEditingPrice := false;
|
||
//lbUserLengthUOM.Caption := GetNameUOM(TF_Main(GForm).FUOM, true);
|
||
Label_UserLength.Caption := cAddComponent_Msg16 +', '+GetNameUOM(TF_Main(GForm).FUOM, true);
|
||
GT_InterfaceValueI.Caption := cNameFreeCutset +', '+ GetNameUOM(ConvertUOMToMin(TF_Main(GForm).FUOM), true, false)+'2';
|
||
GT_NORMSExpenseForLength.Caption := cNameExpenseFor +' '+ IntToStr(1)+GetNameUOM(TF_Main(GForm).FUOM, true);
|
||
GT_NORMSStepOfPoint.Caption := TF_Main(GForm).GT_NormsResourcesStepOfPoint.Caption;
|
||
GT_NORMSTotalKolvo.Caption := GetCaptionNormsResourcesTotalKolvo(TF_Main(GForm).FUOM, FTraccaLength);
|
||
|
||
ClearComboBox(ComboBox_ComponentType);
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
FSpravochnik := TF_Main(GForm).GSCSBase.NBSpravochnik;
|
||
|
||
ComboBox_ComponentType.Properties.OnChange := nil;
|
||
FillComboBox(ComboBox_ComponentType, F_NormBase, True, tnComponentTypes, fnID, fnName, '', 0);
|
||
ComboBox_ComponentType.Properties.OnChange := ComboBox_ComponentTypePropertiesChange;
|
||
// Tolik 09/03/2021 --
|
||
if F_NormBase.GSCSBase.SCSComponent <> nil then
|
||
begin
|
||
//Tolik 21/02/2022 -- <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,
|
||
// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
GComponGuidNB := F_NormBase.GSCSBase.SCSComponent.GuidNB;
|
||
//
|
||
Prop := F_NormBase.GSCSBase.SCSComponent.GetPropertyBySysName(pnNotUseUgoBounds);
|
||
if Prop <> nil then
|
||
if Prop.Value = '1' then
|
||
cbNotUseUgoBounds.Checked := True;
|
||
end;
|
||
//FillComboBox(ComboBox_NetType, F_NormBase, false, tnNetType, fnID, fnName, '', 0);
|
||
//FillComboBox(ComboBox_Producer, F_NormBase, True, tnProducers, fnID, fnName, '', 0);
|
||
end
|
||
else if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if TF_Main(GForm).GSCSBase.SCSComponent.ProjectOwner <> nil then
|
||
begin
|
||
FProjSpravochnik := TF_Main(GForm).GSCSBase.SCSComponent.ProjectOwner.Spravochnik;
|
||
if TF_Main(GForm).GSCSBase.SCSComponent.ProjectOwner.GetListBySCSID(TF_Main(GForm).GSCSBase.SCSComponent.ListID) <> nil then
|
||
FListSpravochnik := TF_Main(GForm).GSCSBase.SCSComponent.ProjectOwner.GetListBySCSID(TF_Main(GForm).GSCSBase.SCSComponent.ListID).Spravochnik;
|
||
FSpravochnik := FProjSpravochnik;
|
||
//FProjSpravochnik.LoadNetTypesToStrings(ComboBox_NetType.Properties.Items);
|
||
//FProjSpravochnik.LoadProducersToStrings(ComboBox_Producer.Properties.Items, true);
|
||
end;
|
||
end;
|
||
|
||
LoadNetTypesToForm;
|
||
LoadProducersToForm;
|
||
LoadSuppliesKindsToForm;
|
||
LoadCompSpecificationToForm;
|
||
|
||
ZeroMemory(@FCurrComponentType, SizeOf(TComponentType));
|
||
|
||
GDeletedInterfRel.Clear;
|
||
GDeletedPort.Clear;
|
||
GDeletedPortInterfRels.Clear;
|
||
//GDeletedComponIcons.Clear;
|
||
GDeletedPropRel.Clear;
|
||
GDeletedComplects.Clear;
|
||
GDeletedIOfIRel.Clear;
|
||
GDeletedCableCanalConnectors.Clear;
|
||
GDeletedCrossConnections.Clear;
|
||
|
||
GLastPort := 0;
|
||
|
||
ClearcxImage(Image);
|
||
ClearcxImage(Image_CompIcons);
|
||
ClearcxImage(Image_Symbol);
|
||
CheckBox_ApplyForProject.Checked := false;
|
||
CheckBox_ApplyForList.Checked := false;
|
||
cbApplyForOnlySelected.Checked := false;
|
||
CheckBox_ApplyIncludingMark.Checked := false;
|
||
cbIncludingSubFolders.Enabled := false;
|
||
cbApplyForFocusedProp.Enabled := false;
|
||
cbAutoAddInter.Visible := GUseLiteFunctional;
|
||
if cbAutoAddInter.Checked and Not GUseLiteFunctional then
|
||
cbAutoAddInter.Checked := False;
|
||
cbAutoAddInter.Enabled := false;
|
||
cbApplyForCurrentDir.Checked := false;
|
||
meDescription.Lines.Clear;
|
||
VisibleApplyCheckBoxes(false, false);
|
||
|
||
GIDComponent := 0;
|
||
GIDObjectIcon := 0;
|
||
GIDSymbolImage := 0;
|
||
ZeroMemory(@FSuppliesKind, SizeOf(TSuppliesKind));
|
||
|
||
GGUIDObjectIcon := '';
|
||
GGUIDSymbolImage := '';
|
||
|
||
FMakeEdit := GetMakeEditByFormMode(GFormMode);
|
||
|
||
{$IF Defined(NORMSCS_PE) or Defined(SCS_SPA)}
|
||
Act_AddNorm.Visible := true;
|
||
{$IFEND}
|
||
case GFormMode of
|
||
fmMake:
|
||
begin
|
||
//GIDComponent := 0;
|
||
//GIDObjectIcon := 0;
|
||
//GIDSymbolImage := 0;
|
||
//FIDSuppliesKind := 0;
|
||
|
||
//GGUIDObjectIcon := '';
|
||
//GGUIDSymbolImage := '';
|
||
|
||
//if GUseLiteFunctional then
|
||
// cbImportFromTemplate.Checked := true;
|
||
|
||
|
||
ClearFormGrids;
|
||
pcMain.ActivePage := tsCommon;
|
||
|
||
EnableControl(true);
|
||
if Not FIsTemplate then
|
||
Caption := cAddComponent_Msg4_1
|
||
else
|
||
Caption := cAddComponent_Msg4_3;
|
||
//Edit_Name.SetFocus;
|
||
|
||
Edit_Name.Text := '';
|
||
Edit_NameShort.Text := '';
|
||
seIndex.Value := 0;
|
||
//Edit_MarkStr.Text := '';
|
||
Edit_Izm.Text := '';
|
||
Edit_Notice.Text := '';
|
||
Edit_ArticulDistributor.Text := '';
|
||
Edit_ArticulProducer.Text := '';
|
||
MaskEdit_Cyper.Text := TF_Main(GForm).FNormBase.DM.GenComponentNewCypher; //GenNewComponentCypher;
|
||
|
||
//RadioGroup_CanComplect.ItemIndex := -1;
|
||
cbCanComplect.Checked := true;
|
||
CheckBox_HasNds.Checked := true; //RadioGroup_HasNds.ItemIndex := 0;
|
||
cbIsMarkInCaptions.Checked := false;
|
||
|
||
CurrencyEdit_Price1.Value := 0;
|
||
CurrencyEdit_Price2.Value := 0;
|
||
CurrencyEdit_NDS1.Visible := false;
|
||
CurrencyEdit_NDS2.Visible := false;
|
||
GID_Currency := TF_Main(GForm).GCurrencyM.ID;
|
||
//ComboBox_ComponentType.Properties.OnChange := nil;
|
||
//ComboBox_ComponentType.ItemIndex := 0;
|
||
//ComboBox_ComponentType.Properties.OnChange := ComboBox_ComponentTypePropertiesChange;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//13.05.2009 ComboBox_ComponentType.SetFocus;
|
||
//13.05.2009 ComboBox_ComponentType.DroppedDown := true;
|
||
//13.05.2009 //if SendMessage(ComboBox_ComponentType.Handle, CB_GETDROPPEDSTATE, 0, 0) <> 1 then
|
||
//13.05.2009 //SendMessage(ComboBox_ComponentType.Handle, CB_SHOWDROPDOWN, 1, 0);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
Timer_ChoiceCompType.Enabled := true;
|
||
|
||
SpinEdit_UserLength.Value := 0;
|
||
//SpinEdit_ObjectIconStep.Value := 0;
|
||
|
||
//ComboBox_Producer.ItemIndex := 0;
|
||
//ComboBox_NetType.ItemIndex := 0;
|
||
//SelectItemByIDinCombo(ComboBox_NetType, ntComputer);
|
||
SetVisibleByIsLine(biFalse);
|
||
|
||
cbComponentIsTemplate.Checked := false;
|
||
|
||
FComponBeforeEdit.Clear;
|
||
|
||
DefineComponCurrencies;
|
||
|
||
if FIsTemplate then
|
||
begin
|
||
CurrencyEdit_Price1.Value := 1;
|
||
DefineComponSecondPrice(CurrencyEdit_Price1.Value);
|
||
//CurrencyEdit_Price2.Value := 0;
|
||
end;
|
||
end;
|
||
fmEdit, fmView, fmDisabled:
|
||
//with TF_Main(GForm).GSCSBase.SCSComponent do
|
||
begin
|
||
if Not FIsTemplate then
|
||
Caption := cAddComponent_Msg4_2
|
||
else
|
||
Caption := cAddComponent_Msg4_4;
|
||
GIDComponent := TF_Main(GForm).GSCSBase.SCSComponent.ID;
|
||
|
||
FComponBeforeEdit.Assign(TF_Main(GForm).GSCSBase.SCSComponent, false, false);
|
||
SendComponentToForm(TF_Main(GForm).GSCSBase.SCSComponent, false);
|
||
|
||
(*
|
||
GIDObjectIcon := IDObjectIcon;
|
||
GIDSymbolImage := IDSymbol;
|
||
|
||
if IsLine = biTrue then
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
ProjManCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(ID);
|
||
if (ProjManCompon <> nil) and (ProjManCompon.IsLine = biTrue) then
|
||
FTraccaLength := ProjManCompon.GetPartLength;
|
||
end;
|
||
|
||
Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
if Picture <> nil then
|
||
try
|
||
Picture.Position := 0;
|
||
if Picture.Size > 0 then
|
||
begin
|
||
Stream := TFileStream.Create(ComponPictFileName, fmCreate);
|
||
Stream.Position := 0;
|
||
Stream.CopyFrom(TF_Main(GForm).GSCSBase.SCSComponent.Picture, 0);
|
||
Stream.Position := 0;
|
||
FreeAndNil(Stream);
|
||
Image.Picture.LoadFromFile(ComponPictFileName);
|
||
DeleteFile(ComponPictFileName);
|
||
//Image.Picture.Bitmap.LoadFromStream(Stream);
|
||
//Stream.Free;
|
||
end;
|
||
except
|
||
on E: Exception do ShowMessage('<27><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
|
||
end;
|
||
|
||
if Assigned(Description) then
|
||
if Description.Size > 0 then
|
||
begin
|
||
Description.Position := 0;
|
||
meDescription.Lines.LoadFromStream(Description);
|
||
end;
|
||
|
||
Edit_Name.Text := Name;
|
||
Edit_NameShort.Text := NameShort;
|
||
Edit_NameMark.Text := NameMark;
|
||
Edit_MarkStr.Text := MarkStr;
|
||
GNameMark := NameMark;
|
||
MaskEdit_Cyper.Text := Cypher;
|
||
Edit_Izm.Text := Izm;
|
||
Edit_Notice.Text := Notice;
|
||
Edit_ArticulDistributor.Text := ArticulDistributor;
|
||
Edit_ArticulProducer.Text := ArticulProducer;
|
||
|
||
//CheckBox_IsUserMark.Checked := IntToBool(IsUserMark);
|
||
if IsUserMark = biTrue then
|
||
rbMarkByDefault.Checked := true
|
||
else
|
||
rbMarkByTemplate.Checked := true;
|
||
|
||
//case ISComplect of
|
||
// 0: RadioGroup_CanComplect.ItemIndex := 1;
|
||
// 1: RadioGroup_CanComplect.ItemIndex := 0;
|
||
//end;
|
||
cbCanComplect.Checked := IntToBool(ISComplect);
|
||
|
||
//case HASNDS of
|
||
// 0: RadioGroup_HasNds.ItemIndex := 1;
|
||
// 1: RadioGroup_HasNds.ItemIndex := 0;
|
||
//end;
|
||
cePriceSupply.Properties.OnChange := nil;
|
||
cePriceSupply.Value := PriceSupply;
|
||
cePriceSupply.Properties.OnChange := cePriceSupplyPropertiesChange;
|
||
|
||
CheckBox_HasNds.Checked := IntToBool(HASNDS);
|
||
|
||
ComboBox_ComponentType.Properties.OnChange := nil;
|
||
LoadComponentType;
|
||
case TF_Main(GForm).GDBMode of
|
||
bkNormBase:
|
||
SelectItemByIDinCombo(ComboBox_ComponentType, ID_ComponentType);
|
||
bkProjectManager:
|
||
begin
|
||
AddItemToCombo(ComboBox_ComponentType, ComponentType.Name, GUIDComponentType, ID_ComponentType,
|
||
GUIDComponentType, ID_ComponentType, nil);
|
||
SelectItemByGUIDinCombo(ComboBox_ComponentType, GUIDComponentType);
|
||
end;
|
||
end;
|
||
ComboBox_ComponentType.Properties.OnChange := ComboBox_ComponentTypePropertiesChange;
|
||
|
||
cbSuppliesKind.Properties.OnChange := nil;
|
||
SelectItemByIDinCombo(cbSuppliesKind, IDSuppliesKind);
|
||
cbSuppliesKind.Properties.OnChange := cbSuppliesKindPropertiesChange;
|
||
DefineParamsBySupply(false);
|
||
|
||
SpinEdit_UserLength.Value := UserLength;
|
||
SpinEdit_ObjectIconStep.Value := ObjectIconStep;
|
||
|
||
SelectItemByIDinCombo(ComboBox_Producer, ID_Producer);
|
||
SelectItemByIDinCombo(ComboBox_NetType, IDNetType);
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
{ID_NetType := TObject.Create;
|
||
for i := 0 to ComboBox_NetType.Properties.Items.Count - 1 do
|
||
begin
|
||
ID_NetType := ComboBox_NetType.Properties.Items.Objects[i];
|
||
if (ID_NetType as TID).ID = IDNetType then
|
||
begin
|
||
ComboBox_NetType.ItemIndex := i;
|
||
ComboBox_NetType.Refresh;
|
||
Break;
|
||
end;
|
||
end;}
|
||
|
||
//With TF_Main(GForm).DM do
|
||
// LoadMT(GID_COMPONENT, tkComponIconsED, ComponIconsFields);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
LoadMT(GIDComponent, tkInterfRelED, InterfFields);
|
||
//MemTable_InterfaceRelEd.LoadFromDataSet(MemTable_InterfaceRel, []);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if IsLine = biFalse then
|
||
begin
|
||
//With TF_Main(GForm).DM do
|
||
LoadMT(GIDComponent, tkPortED, PortFields);
|
||
LoadMT(GIDComponent, tkPortInterfRelED, nil);
|
||
DefineAllPortInterfRelNames;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//With TF_Main(GForm).DM do
|
||
LoadMT(GIDComponent, tkPropertyRelED, PropertFields);
|
||
//MemTable_PropertyEd.LoadFromDataSet(MemTable_Property, []);
|
||
LoadComponIcon(GIDObjectIcon, Image_CompIcons);
|
||
LoadComponIcon(GIDSymbolImage, Image_Symbol);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//With TF_Main(GForm).DM do
|
||
LoadMT(GIDComponent, tkComplectED, ComplectsFields);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if ComponentType.SysName = ctsnCableChannel then
|
||
//With TF_Main(GForm).DM do
|
||
LoadMT(GIDComponent, tkCableCanalConnectorsED, CableCanalConnectorsFields);
|
||
end;
|
||
LoadNormsResources;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
ShowNDSPrice;
|
||
case HASNDS of
|
||
0:
|
||
begin // <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
CurrencyEdit_Nds1.Value := Round3(Price);
|
||
CurrencyEdit_Nds2.Value := Round3(Price *
|
||
(TF_Main(GForm).GCurrencyM.Ratio / TF_Main(GForm).GCurrencyS.Ratio));
|
||
|
||
CurrencyEdit_Price1.Value := Round3( PriceWithoutNDS( Price, TF_Main(GForm).GNDS));
|
||
CurrencyEdit_Price2.Value := Round3( PriceWithoutNDS( Price, TF_Main(GForm).GNDS) *
|
||
(TF_Main(GForm).GCurrencyM.Ratio / TF_Main(GForm).GCurrencyS.Ratio));
|
||
end;
|
||
1:
|
||
begin // <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><><EFBFBD>
|
||
CurrencyEdit_Price1.Value := Round3(Price);
|
||
CurrencyEdit_Price2.Value := Round3(Price *
|
||
(TF_Main(GForm).GCurrencyM.Ratio / TF_Main(GForm).GCurrencyS.Ratio));
|
||
end;
|
||
end;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
GLastPort := TF_Main(GForm).DM.GetComponentLastPort(ID);
|
||
EnableControl(false);
|
||
//Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
end
|
||
else
|
||
EnableControl(true);
|
||
SetVisibleByIsLine(ComponentType.IsLine); *)
|
||
end;
|
||
end;
|
||
|
||
SetGenLastID(tkCableCanalConnectorsED);
|
||
SetGenLastID(tkCompPropRelED);
|
||
SetGenLastID(tkCrossConnectionED);
|
||
SetGenLastID(tkInterfRelED);
|
||
SetGenLastID(tkPortInterfRelED);
|
||
SetGenLastID(tkNormEd);
|
||
SetGenLastID(tkResourceRelEd);
|
||
//ComboBox_ComponentTypePropertiesChange(ComboBox_ComponentType);
|
||
|
||
GWasChanging := false;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if GIDComponent > 0 then
|
||
begin
|
||
SCSCompon := F_ProjMan.GSCSBase.CurrProject.CurrList.GetComponentFromReferences(GIDComponent);
|
||
if SCSCompon <> nil then
|
||
begin
|
||
Prop := SCSCompon.GetPropertyBySysName(pnNotUseUgoBounds);
|
||
if Prop <> nil then
|
||
if Prop.Value = '1' then
|
||
cbNotUseUgoBounds.Checked := True;
|
||
end;
|
||
SCSCompon := nil;
|
||
end;
|
||
end;
|
||
|
||
EnableButtons;
|
||
SetControls(nil);
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.FormShow' + E.Message);
|
||
end;
|
||
finally
|
||
Screen.Cursor := crDefault;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Button_OpenPictureClick(Sender: TObject);
|
||
//Var Stream: TStream;
|
||
//Bmp: TBitmap;
|
||
begin
|
||
if OpenPictureDialog1.Execute then
|
||
begin
|
||
Image.Picture.LoadFromFile(OpenPictureDialog1.FileName);
|
||
{if DBImage.DataSource = nil then
|
||
DBImage.DataSource = TF_Main(GForm).DM.DataSource; }
|
||
GChangedPicture := True;
|
||
GWasChanging := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Button_ClearImageClick(Sender: TObject);
|
||
begin
|
||
ClearcxImage(Image);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>" #####
|
||
|
||
procedure TF_AddComponent.CheckBox_HasNdsPropertiesChange(Sender: TObject);
|
||
begin
|
||
ShowNDSPrice;
|
||
DefineSupplyPriceByComponActualPrice;
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Button_ChangeNetTypeClick(Sender: TObject);
|
||
var
|
||
IDNetType: Integer;
|
||
GUIDNetType: string;
|
||
//Iindex: Integer;
|
||
begin
|
||
IDNetType := GetIDFromComboBox(ComboBox_NetType);
|
||
GUIDNetType := GetGUIDFromComboBox(ComboBox_NetType);
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
F_NormBase.F_CaseForm.GIDNotDel := IDNetType;
|
||
F_NormBase.F_CaseForm.GIDToLocate := IDNetType;
|
||
|
||
if (F_NormBase.F_CaseForm.Execute(vkNetType, fmEdit)) then
|
||
begin
|
||
IDNetType := F_NormBase.DM.DataSet_NET_TYPE.FN(fnID).AsInteger;
|
||
FillComboBox(ComboBox_NetType, F_NormBase, false, tnNetType, fnID, fnName, '', IDNetType);
|
||
GWasChanging := true;
|
||
end
|
||
else
|
||
FillComboBox(ComboBox_NetType, F_NormBase, false, tnNetType, fnID, fnName, '', IDNetType);
|
||
end
|
||
else if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkNetType, GUIDNetType) then
|
||
if FProjSpravochnik.LastNetType <> nil then
|
||
GUIDNetType := FProjSpravochnik.LastNetType.GUID;
|
||
|
||
//ComboBox_NetType.Properties.OnChange := nil;
|
||
//FProjSpravochnik.LoadNetTypesToStrings(ComboBox_NetType.Properties.Items, false);
|
||
//ComboBox_NetType.Properties.OnChange := ComboBox_NetTypePropertiesChange;
|
||
LoadNetTypesToForm;
|
||
|
||
SelectItemByGUIDinCombo(ComboBox_NetType, GUIDNetType);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Button_ProducerClick(Sender: TObject);
|
||
var
|
||
ID_Producer: Integer;
|
||
GUIDProducer: string;
|
||
begin
|
||
try
|
||
ID_Producer := GetIDFromComboBox(ComboBox_Producer);
|
||
GUIDProducer := GetGUIDFromComboBox(ComboBox_Producer);
|
||
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
//SearchRecord(F_NormBase.DM.DataSet_PRODUCERS, 'ID', ID_Producer);
|
||
F_NormBase.F_CaseForm.GIDNotDel := ID_Producer;
|
||
F_NormBase.F_CaseForm.GIDToLocate := ID_Producer;
|
||
//F_NormBase.F_CaseForm.GViewKind := vkProducers;
|
||
|
||
//if F_NormBase.F_CaseForm.ShowModal = mrOK then
|
||
if F_NormBase.F_CaseForm.Execute(vkProducers, fmEdit) then
|
||
begin
|
||
ID_Producer := F_NormBase.DM.DataSet_PRODUCERS.FN(fnID).AsInteger;
|
||
FillComboBox(ComboBox_Producer, F_NormBase, false, tnProducers, fnID, fnName, '', ID_Producer);
|
||
GWasChanging := true;
|
||
end
|
||
else
|
||
FillComboBox(ComboBox_Producer, F_NormBase, false, tnProducers, fnID, fnName, '', ID_Producer);
|
||
end
|
||
else if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkProducers, GUIDProducer) then
|
||
if FProjSpravochnik.LastProducer <> nil then
|
||
GUIDProducer := FProjSpravochnik.LastProducer.GUID;
|
||
|
||
//FProjSpravochnik.LoadProducersToStrings(ComboBox_Producer.Properties.Items, true);
|
||
LoadProducersToForm;
|
||
|
||
SelectItemByGUIDinCombo(ComboBox_Producer, GUIDProducer);
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.Button_ProducerClick' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Button_TypeComponentClick(Sender: TObject);
|
||
var
|
||
ID_TypeComponent: Integer;
|
||
begin
|
||
try
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
ID_TypeComponent := GetIDFromComboBox(ComboBox_ComponentType);
|
||
//SearchRecord(F_NormBase.DM.DataSet_COMPONENT_TYPES, 'ID', ID_TypeComponent);
|
||
F_NormBase.F_CaseForm.GIDNotDel := ID_TypeComponent;
|
||
F_NormBase.F_CaseForm.GIDToLocate := ID_TypeComponent;
|
||
//F_NormBase.F_CaseForm.GViewKind := vkComponentType;
|
||
|
||
//if F_NormBase.F_CaseForm.ShowModal = mrOK then
|
||
if F_NormBase.F_CaseForm.Execute(vkComponentType, fmEdit) then
|
||
begin
|
||
ID_TypeComponent := F_NormBase.DM.DataSet_COMPONENT_TYPES.FN(fnID).AsInteger;
|
||
FillComboBox(ComboBox_ComponentType, F_NormBase, false, tnComponentTypes, fnID, fnName, '', ID_TypeComponent);
|
||
|
||
if ID_TypeComponent <> 0 then
|
||
ComboBox_ComponentTypeExit(ComboBox_ComponentType);
|
||
GWasChanging := true;
|
||
end
|
||
else
|
||
FillComboBox(ComboBox_ComponentType, F_NormBase, false, tnComponentTypes, fnID, fnName, '', ID_TypeComponent);
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.Button_TypeComponentClick' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Button_OpenCompIconsClick(Sender: TObject);
|
||
begin
|
||
LoadImageFromObjectIcons(GIDObjectIcon, GGUIDObjectIcon, Image_CompIcons);
|
||
{DataSetLocateByID(F_NormBase.DM.DataSet_OBJECT_ICONS, GID_OBJECT_ICON);
|
||
|
||
F_NormBase.F_CaseForm.GIDNotDel := GID_OBJECT_ICON;
|
||
F_NormBase.F_CaseForm.GViewKind := vkObjectIcons;
|
||
F_NormBase.F_CaseForm.GFormMode := fmEdit;
|
||
|
||
if F_NormBase.F_CaseForm.ShowModal = mrOK then
|
||
begin
|
||
GID_OBJECT_ICON := F_NormBase.DM.DataSet_OBJECT_ICONS.FN('ID').AsInteger;
|
||
LoadComponIcon(GID_OBJECT_ICON, Image_CompIcons);
|
||
GWasChanging := true;
|
||
end; }
|
||
end;
|
||
|
||
procedure TF_AddComponent.btOpenSymbolImageClick(Sender: TObject);
|
||
var
|
||
ComponentType: TComponentType;
|
||
DesignParams: TComponDesignWizardParams;
|
||
begin
|
||
ComponentType := GetComponentType;
|
||
if (ComponentType.SysName = ctsnCupBoard) and (Not FIsTemplate) then
|
||
begin
|
||
DesignParams.IDDesignIcon := GIDSymbolImage;
|
||
DesignParams.GUIDDesignIcon := GGUIDSymbolImage;
|
||
DesignParams.ObjectSignType := GetSignType;
|
||
DesignParams.Height := GetPropertyBySysNameAsFloat(pnHeight);
|
||
DesignParams.Width := GetPropertyBySysNameAsFloat(pnWidth);
|
||
DesignParams.BottomBound := GetPropertyBySysNameAsFloat(pnBottomBound);
|
||
DesignParams.LeftBound := GetPropertyBySysNameAsFloat(pnLeftBound);
|
||
DesignParams.RightBound := GetPropertyBySysNameAsFloat(pnRightBound);
|
||
DesignParams.TopBound := GetPropertyBySysNameAsFloat(pnTopBound);
|
||
|
||
if F_ComponDesignWizard.ExecuteWizard(DesignParams, GForm, FSpravochnik) then
|
||
begin
|
||
GIDSymbolImage := DesignParams.IDDesignIcon;
|
||
GGUIDSymbolImage := DesignParams.GUIDDesignIcon;
|
||
|
||
SetPropertyValueBySysNameAsFloat(pnHeight, DesignParams.Height);
|
||
SetPropertyValueBySysNameAsFloat(pnWidth, DesignParams.Width);
|
||
SetPropertyValueBySysNameAsFloat(pnBottomBound, DesignParams.BottomBound);
|
||
SetPropertyValueBySysNameAsFloat(pnLeftBound, DesignParams.LeftBound);
|
||
SetPropertyValueBySysNameAsFloat(pnRightBound, DesignParams.RightBound);
|
||
SetPropertyValueBySysNameAsFloat(pnTopBound, DesignParams.TopBound);
|
||
|
||
LoadComponIcon(GIDSymbolImage, GGUIDSymbolImage, Image_Symbol);
|
||
//LoadImageFromObjectIcons(GIDSymbolImage, Image_Symbol);
|
||
end;
|
||
end
|
||
else
|
||
LoadImageFromObjectIcons(GIDSymbolImage, GGUIDSymbolImage, Image_Symbol);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Button_ClearComponIconClick(Sender: TObject);
|
||
begin
|
||
ClearcxImage(Image_CompIcons);
|
||
GIDObjectIcon := 0;
|
||
GGUIDObjectIcon := '';
|
||
end;
|
||
|
||
procedure TF_AddComponent.btClearSymbolImageClick(Sender: TObject);
|
||
begin
|
||
ClearcxImage(Image_Symbol);
|
||
GIDSymbolImage := 0;
|
||
GGUIDSymbolImage := '';
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.ColorEditChange(Sender: TObject);
|
||
//var ID_Property: Integer;
|
||
begin
|
||
{with TF_Main(GForm).DM.MemTable_PropertyEd do
|
||
begin
|
||
ID_Property := FieldByName('ID_Property').AsInteger;
|
||
SearchRecordMT(TF_Main(GForm).DM.MemTable_PropertyEd, 'PValue', 'COLOR');
|
||
Edit;
|
||
FieldByName('PValue').AsString := IntToStr(ColorEdit.SelectedColor);
|
||
Post;
|
||
SearchRecordMT(TF_Main(GForm).DM.MemTable_PropertyEd, 'ID_Property', ID_Property);
|
||
end; }
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
// ############################# <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> OK <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ##############################
|
||
// #############################################################################
|
||
//
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD> OK #####
|
||
|
||
procedure TF_AddComponent.BitBtn_OKClick(Sender: TObject);
|
||
var
|
||
i: Integer;
|
||
//RecCount: Integer;
|
||
CanSave: Boolean;
|
||
MessgError: string;
|
||
Price: Double;
|
||
//PriceCalc: Double;
|
||
//OldPrice: Double;
|
||
//ObjectID: Integer;
|
||
|
||
CypherCount: Integer;
|
||
IDComponTemplate: Integer;
|
||
|
||
Stream: TStream;
|
||
AllComponents: TSCSComponents;
|
||
ComponentsForApply: TSCSComponents;
|
||
ComponentType: TComponentType;
|
||
ListIDs: TIntList;
|
||
ListIDsWithWholeCompon: TIntList;
|
||
|
||
SCSCompon: TSCSComponent;
|
||
PartCompon: TSCSComponent;
|
||
|
||
ProjComponent: TSCSComponent;
|
||
WasChangeCompTypeTemplate: Boolean;
|
||
NewIDCompTypeTemplate: Integer;
|
||
OldIDCompTypeTemplate: Integer;
|
||
NBComponentType: TNBComponentType;
|
||
NodeComponTemplate: TTreeNode;
|
||
CanApplyCompon: Boolean;
|
||
|
||
Prop: PProperty;
|
||
NBProp: TNBProperty;
|
||
|
||
//hFile: Cardinal;
|
||
|
||
{Procedure SavePicture(Blob: TFIBBlobField);
|
||
Var Stream: TStream;
|
||
begin
|
||
if GChangedPicture then
|
||
begin
|
||
Stream := TMemoryStream.Create;
|
||
Image.Picture.Bitmap.SaveToStream(Stream);
|
||
Blob.LoadFromStream(Stream);
|
||
Stream.Free;
|
||
end;
|
||
end; }
|
||
|
||
procedure SaveInterfaces(AIDComponent: Integer; AUpdateMT: Boolean);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
SaveMTToDS(AIDComponent, GDeletedInterfRel, tkInterfRelED, AUpdateMT);
|
||
end;
|
||
|
||
procedure SavePorts(AIDComponent: Integer; AUpdateMT: Boolean);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
SaveMTToDS(AIDComponent, GDeletedPort, tkPortEd, AUpdateMT);
|
||
end;
|
||
|
||
procedure SaveComponData(AIDComponent: Integer);
|
||
var
|
||
ComponentType: TComponentType;
|
||
Compon: TSCSComponent;
|
||
Interfaces: TSCSInterfaces;
|
||
Properties: TList;
|
||
NewProperties: TList;
|
||
PropOldIDs: TIntList;
|
||
PropNewIDs: TIntList;
|
||
CableCanalConnectors: TList;
|
||
CrossConnections: TSCSObjectList;
|
||
QueryMode: TQueryMode;
|
||
i, j, k: Integer;
|
||
|
||
Interf: TSCSInterface;
|
||
OldInterf: TSCSInterface;
|
||
ptrPortInterfRel: PPortInterfRel;
|
||
ptrProperty: PProperty;
|
||
ptrOldProperty: PProperty;
|
||
ptrCableCanalConnector: PCableCanalConnector;
|
||
ptrOldCableCanalConnector: PCableCanalConnector;
|
||
begin
|
||
try
|
||
QueryMode := GetQueryModeByGDBMode(TF_Main(GForm).GDBMode);
|
||
ComponentType := GetComponentType;
|
||
|
||
if QueryMode = qmPhisical then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
DeleteRecordsByIDList(tnPortInterfaceRelation, GDeletedPortInterfRels, QueryMode);
|
||
DeleteRecordsByIDList(tnInterfaceRelation, GDeletedInterfRel, QueryMode);
|
||
DeleteRecordsByIDList(tnCompPropRelation, GDeletedPropRel, QueryMode);
|
||
DeleteRecordsByIDList(tnCableCanalConnectors, GDeletedCableCanalConnectors, QueryMode);
|
||
DeleteRecordsByIDList(tnCrossConnection, GDeletedCrossConnections, QueryMode);
|
||
end;
|
||
|
||
Interfaces := CreateFormInterfaces;
|
||
Properties := CreateFormProperties;
|
||
CableCanalConnectors := CreateFormCableCanalConnectors;
|
||
CrossConnections := CreateFormCrossConnections;
|
||
|
||
Compon := nil;
|
||
if Assigned(ProjComponent) then
|
||
begin
|
||
Compon := ProjComponent;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedPortInterfRels.Count - 1 do
|
||
for j := 0 to Compon.Interfaces.Count - 1 do
|
||
begin
|
||
Interf := Compon.Interfaces[j];
|
||
for k := 0 to Interf.PortInterfRels.Count - 1 do
|
||
begin
|
||
ptrPortInterfRel := Interf.PortInterfRels[k];
|
||
if ptrPortInterfRel.ID = GDeletedPortInterfRels[i] then
|
||
begin
|
||
Interf.PortInterfRels[k] := nil;
|
||
Interf.PortInterfaces.Remove(ptrPortInterfRel.Interf);
|
||
FreeMem(ptrPortInterfRel);
|
||
end;
|
||
end;
|
||
Interf.PortInterfRels.Pack;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedInterfRel.Count - 1 do
|
||
begin
|
||
Interf := Compon.GetInterfaceByID(GDeletedInterfRel[i]);
|
||
if Assigned(Interf) then
|
||
begin
|
||
Compon.Interfaces.Remove(Interf);
|
||
FreeAndNil(Interf);
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to Interfaces.Count - 1 do
|
||
begin
|
||
Interf := Interfaces[i];
|
||
if Interf.IsNew or Interf.IsModified then
|
||
begin
|
||
if Interf.IsNew then
|
||
begin
|
||
Compon.Interfaces.Add(Interf);
|
||
Interfaces[i] := nil;
|
||
end
|
||
else if Interf.IsModified and not (Interf.IsNew) then
|
||
begin
|
||
OldInterf := Compon.GetInterfaceByID(Interf.ID);
|
||
if Assigned(OldInterf) then
|
||
begin
|
||
OldInterf.AssignOnlyInterface(Interf);
|
||
//if OldInterf.IsPort = biTrue then ##ISPORT
|
||
begin
|
||
OldInterf.PortInterfaces.Clear;
|
||
ClearList(OldInterf.PortInterfRels);
|
||
OldInterf.AssignPortInterfRel(Interf.PortInterfRels);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
Interfaces.Pack;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
Compon.SetPortInterfRelInterfaces;
|
||
//for i := 0 to Compon.Interfaces.Count - 1 do
|
||
//begin
|
||
// Interf := Compon.Interfaces[i];
|
||
// if Interf.IsPort = biTrue then
|
||
// Interf.DefinePortInterfaces;
|
||
//end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedPropRel.Count - 1 do
|
||
begin
|
||
ptrProperty := Compon.GetPropertyByID(GDeletedPropRel[i]);
|
||
if ptrProperty <> nil then
|
||
begin
|
||
Compon.Properties.Remove(ptrProperty);
|
||
FreeMem(ptrProperty);
|
||
end;
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to Properties.Count - 1 do
|
||
begin
|
||
ptrProperty := Properties[i];
|
||
if ptrProperty.IsNew then
|
||
begin
|
||
Compon.Properties.Add(ptrProperty);
|
||
if Compon.IsLine = biTrue then
|
||
MakeEditPropertyForWholeComponent(meMake, Compon, ptrProperty);
|
||
Properties[i] := nil;
|
||
end
|
||
else if ptrProperty.IsModified then
|
||
begin
|
||
ptrOldProperty := Compon.GetPropertyByID(ptrProperty.ID);
|
||
if ptrOldProperty <> nil then
|
||
ptrOldProperty^ := ptrProperty^;
|
||
|
||
if Compon.IsLine = biTrue then
|
||
MakeEditPropertyForWholeComponent(meEdit, Compon, ptrProperty);
|
||
end;
|
||
end;
|
||
Properties.Pack;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if ComponentType.SysName = ctsnCableChannel then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedCableCanalConnectors.Count - 1 do
|
||
begin
|
||
ptrCableCanalConnector := Compon.GetCableCanalConnectorByID(GDeletedCableCanalConnectors[i]);
|
||
if ptrCableCanalConnector <> nil then
|
||
begin
|
||
Compon.CableCanalConnectors.Remove(ptrCableCanalConnector);
|
||
FreeMem(ptrCableCanalConnector);
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to CableCanalConnectors.Count - 1 do
|
||
begin
|
||
ptrCableCanalConnector := CableCanalConnectors[i];
|
||
if ptrCableCanalConnector.IsNew then
|
||
begin
|
||
Compon.CableCanalConnectors.Add(ptrCableCanalConnector);
|
||
CableCanalConnectors[i] := nil;
|
||
end
|
||
else if ptrCableCanalConnector.IsModified then
|
||
begin
|
||
ptrOldCableCanalConnector := Compon.GetCableCanalConnectorByID(ptrCableCanalConnector.ID);
|
||
if ptrOldCableCanalConnector <> nil then
|
||
ptrOldCableCanalConnector^ := ptrCableCanalConnector^;
|
||
end;
|
||
end;
|
||
CableCanalConnectors.Pack;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
Compon := TSCSComponent.Create(GForm);
|
||
Compon.ID := AIDComponent;
|
||
Compon.AssignOnlyComponent(TF_Main(GForm).GSCSBase.SCSComponent);
|
||
Compon.Interfaces.Assign(Interfaces);
|
||
Compon.AssignProperties(Properties);
|
||
if ComponentType.SysName = ctsnCableChannel then
|
||
Compon.AssignCableCanalConnectors(CableCanalConnectors);
|
||
if ComponentType.SysName = ctsnCupBoard then
|
||
Compon.AssignCrossConnections(CrossConnections);
|
||
end;
|
||
Interfaces.Free;
|
||
FreeAndDisposeList(Properties); //16.10.2007 FreeList(Properties);
|
||
FreeList(CableCanalConnectors);
|
||
FreeAndNil(CrossConnections); //FreeList(CrossConnections);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> ID
|
||
NewProperties := TList.Create;
|
||
PropOldIDs := TIntList.Create;
|
||
PropNewIDs := TIntList.Create;
|
||
for i := 0 to Compon.Properties.Count - 1 do
|
||
begin
|
||
ptrProperty := Compon.Properties[i];
|
||
if ptrProperty.IsNew then
|
||
begin
|
||
NewProperties.Add(ptrProperty);
|
||
PropOldIDs.Add(ptrProperty.ID);
|
||
end;
|
||
end;
|
||
|
||
Compon.SaveInterfacesByServFields;
|
||
Compon.SavePropertiesByServFields(Compon.ID);
|
||
if ComponentType.SysName = ctsnCableChannel then
|
||
Compon.SaveCableCanalConnectorsByServFields;
|
||
if ComponentType.SysName = ctsnCupBoard then
|
||
Compon.SaveCrossConnectionsByServFields;
|
||
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to NewProperties.Count - 1 do
|
||
PropNewIDs.Add(PProperty(NewProperties[i]).ID);
|
||
|
||
SetNewCompPropIDsToNormRes(PropOldIDs, PropNewIDs);
|
||
|
||
FreeAndNil(NewProperties);
|
||
FreeAndNil(PropOldIDs);
|
||
FreeAndNil(PropNewIDs);
|
||
if not Assigned(ProjComponent) then
|
||
Compon.Free;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.SaveComponData', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure SaveProperties(AIDComponent: Integer; AUpdateMT: Boolean);
|
||
//var
|
||
//Compon: TSCSComponent;
|
||
//Properties: TList;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
SaveMTToDS(AIDComponent, GDeletedPropRel, tkCompPropRelED, AUpdateMT);
|
||
|
||
{Properties := CreateFormProperties;
|
||
Compon := nil;
|
||
if Assigned(ProjComponent) then
|
||
begin
|
||
Compon := ProjComponent;
|
||
end
|
||
else
|
||
|
||
Compon := TSCSComponent.Create(GForm);
|
||
|
||
if Assigned(Compon) then
|
||
begin
|
||
|
||
if Not Assigned(ProjComponent) then
|
||
Compon.Free;
|
||
end;
|
||
FreeList(Properties);}
|
||
end;
|
||
|
||
procedure SaveCableCanalConnectors(AIDComponent: Integer; AUpdateMT: Boolean);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
SaveMTToDS(AIDComponent, GDeletedCableCanalConnectors, tkCableCanalConnectorsED, AUpdateMT);
|
||
end;
|
||
|
||
{procedure SaveComponIcons(AIDComponent: Integer; AUpdateMT: Boolean);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
SaveMTToDS(AIDComponent, GDeletedComponIcons, tkComponIconsED, AUpdateMT);
|
||
end;}
|
||
|
||
procedure SaveComplects;
|
||
//var RecNoComp: Integer;
|
||
begin
|
||
|
||
end;
|
||
|
||
procedure AddErrorMessg(AErrorMessg: string);
|
||
begin
|
||
MessgError := MessgError + AErrorMessg;
|
||
CanSave := false;
|
||
end;
|
||
|
||
// Tolik
|
||
Procedure AddNewPropToCompon(aCompon: TSCSComponent; aProp: TNBProperty; aValue: Double);
|
||
var Prop: PProperty;
|
||
i: Integer;
|
||
val: String;
|
||
NBProp: TNBProperty;
|
||
begin
|
||
if aProp <> nil then
|
||
begin
|
||
Prop := aCompon.GetPropertyBySysName(aProp.PropertyData.SysName);
|
||
if Prop = nil then
|
||
begin
|
||
if ACompon.GetPropertyBySysName(aProp.PropertyData.SysName) = nil then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><>
|
||
Val := FloatTostr(aValue);
|
||
NBProp := F_NormBase.GSCSBase.NBSpravochnik.GetPropertyBySysName(aProp.PropertyData.SysName);
|
||
if NBProp <> nil then
|
||
begin
|
||
ACompon.ProjectOwner.Spravochnik.GetPropertyWithAssign(NBProp.PropertyData.GUID, F_NormBase.GSCSBase.NBSpravochnik);
|
||
end;
|
||
AddPropertyToComponFromSprBySysName(ACompon, ACompon.ProjectOwner.Spravochnik, aProp.PropertyData.SysName, Val);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
//
|
||
|
||
begin
|
||
try
|
||
SCSCompon := nil;
|
||
AllComponents := nil;
|
||
ComponentsForApply := nil;
|
||
Stream := nil;
|
||
if GFormMode = fmView then
|
||
begin
|
||
ModalResult := mrCancel;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
// Tolik 03/07/2017 -- <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> CashedCompon (<28><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
|
||
if Assigned(F_ProjMan) then
|
||
if TF_Main(F_ProjMan).CashedCompon <> nil then
|
||
TF_Main(F_ProjMan).CashedCompon.Clear;
|
||
if Assigned(F_NormBase) then
|
||
if TF_Main(F_NormBase).CashedCompon <> nil then
|
||
TF_Main(F_NormBase).CashedCompon.Clear;
|
||
//
|
||
|
||
// Tolik 05/03/2021 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> )
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
//SCSCompon := TF_Main(F_ProjMan).GSCSBase.SCSComponent
|
||
SCSCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(GIDComponent)
|
||
else
|
||
SCSCompon := TF_Main(F_NormBase).GSCSBase.SCSComponent;
|
||
|
||
if SCSCompon <> nil then
|
||
begin
|
||
//SCSCompon.LoadProperties;
|
||
Prop := SCSCompon.GetPropertyBySysName(pnNotUseUgoBounds);
|
||
if cbNotUseUgoBounds.Checked then
|
||
begin
|
||
if Prop = nil then
|
||
begin
|
||
NBProp := TF_Main(F_NormBase).GSCSBase.NBSpravochnik.GetPropertyBySysName(pnNotUseUgoBounds);
|
||
|
||
if NBProp <> nil then
|
||
begin
|
||
{ Prop := SCSCompon.GetPropertyAsNew;
|
||
Prop.IsDefault := 0;
|
||
Prop.TakeIntoConnect := 0;
|
||
prop.TakeIntoJoin := 0;
|
||
prop.IsTakeJoinforPoint := 0;
|
||
prop.IsCrossControl := 0;
|
||
prop.IsForWholeComponent := 1;
|
||
Prop.Guid := NBProp.PropertyData.GUID;
|
||
Prop.IDDataType := NbProp.PropertyData.IDDataType;
|
||
Prop.Name_ := NBProp.PropertyData.Name;
|
||
Prop.SysName := NBProp.PropertyData.SysName;
|
||
Prop.IDMaster := SCSCompon.ID;
|
||
//Prop.IsModified := True;
|
||
//Prop.IsNew := True;
|
||
Prop.Value := BoolToStr(cbNotUseUgoBounds.Checked, false);
|
||
//SCSCompon.SaveProperty(meMake, Prop);
|
||
//SCSCompon.SaveProperty(meMake, Prop);
|
||
SCSCompon.SaveProperty(meEdit, Prop);
|
||
AddPropertyToComponFromSprBySysName
|
||
}
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
AddNewPropToCompon(SCSCompon, NBProp, 1)
|
||
else
|
||
//AddPropertyToComponFromSprBySysName(SCSCompon, TF_Main(F_NormBase).GSCSBase.NBSpravochnik, NBProp.PropertyData.SysName, '1');
|
||
AddPropertyToNBCompon(NBProp, '1');
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
Prop.Value := '1';
|
||
SCSCompon.SaveProperty(meEdit, Prop);
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
if Prop <> nil then
|
||
Prop.Value := '0';//BoolToStr(cbNotUseUgoBounds.Checked);
|
||
SCSCompon.SaveProperty(meEdit, Prop);
|
||
end;
|
||
end;
|
||
|
||
SCSCompon := nil;
|
||
//
|
||
|
||
//if GFormMode = fmDisabled then
|
||
// Exit;
|
||
//if cePriceSupply.Focused then
|
||
//begin
|
||
// cePriceSupply.Hide;
|
||
// DefineParamsBySupply(false);
|
||
//end;
|
||
|
||
ProjComponent := nil;
|
||
if TF_Main(GForm).GDBMode = bkProjectmanager then
|
||
ProjComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(GIDComponent);
|
||
|
||
{if CurrencyEdit_Price1.IsFocused then
|
||
CurrencyEdit_Price1.ValidateEdit(false);
|
||
if CurrencyEdit_Price2.IsFocused then
|
||
CurrencyEdit_Price2.ValidateEdit(false);}
|
||
|
||
ValidateActiveFormControl(Self);
|
||
|
||
CypherCount := 0;
|
||
|
||
CanSave := true;
|
||
|
||
MessgError := cNoDefinedParameters + ':' + #13 + #13;
|
||
if Edit_Name.Text = '' then
|
||
AddErrorMessg('- ' + cNamingComponent + ';' + #13);
|
||
|
||
//if GFormMode = fmMake then
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
if MaskEdit_Cyper.Text <> FComponBeforeEdit.Cypher then
|
||
if not F_NormBase.DM.CheckNBComponentCypher(MaskEdit_Cyper.Text, GIDComponent) then
|
||
AddErrorMessg('- ' + cCypher + ' "' + MaskEdit_Cyper.Text + '" ' + cNowExists + ';' + #13);
|
||
end;
|
||
|
||
//if RadioGroup_IsLine.ItemIndex = -1 then
|
||
// AddErrorMessg('- <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;' + #13);
|
||
{if Edit_ArticulDistributor.Text = '' then
|
||
AddErrorMessg('- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;' + #13);
|
||
if Edit_ArticulDistributor.Text = '' then
|
||
AddErrorMessg('- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;' + #13);}
|
||
if ComboBox_ComponentType.Text = '' then
|
||
AddErrorMessg('- ' + cComponentType + ';' + #13);
|
||
// Tolik 08/06/2021 --
|
||
if GetIDFromComboBox(ComboBox_NetType) = 0 then
|
||
AddErrorMessg('- ' + cNetType + ';' + #13);
|
||
//
|
||
//if ComboBox_NetType.Text = '' then
|
||
// AddErrorMessg('- ' + cNetType + ';' + #13);
|
||
//if ComboBox_Producer.Text = '' then
|
||
// AddErrorMessg('- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;' + #13);
|
||
//if RadioGroup_HasNds.ItemIndex = -1 then
|
||
// AddErrorMessg('- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> - <20> <20><><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>;' + #13);
|
||
|
||
//if RadioGroup_CanComplect.ItemIndex = -1 then
|
||
// AddErrorMessg('- <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";' + #13);
|
||
|
||
//if (RadioGroup_CanComplect.ItemIndex = 0) and
|
||
|
||
// if cbCanComplect.Visible and cbCanComplect.Checked and
|
||
// (TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecordCount = 0) and
|
||
// (TF_Main(GForm).DM.MemTable_PortEd.RecordCount = 0) then
|
||
// AddErrorMessg('- ' + cbMessage6);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
if GUseLiteFunctional then
|
||
begin
|
||
if Not CheckRequiredProperties then
|
||
begin
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
end
|
||
else
|
||
if (GFormMode = fmMake) and Not DelRequiredEmptyProps then
|
||
begin
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
if CanSave then
|
||
begin
|
||
ModalResult := mrOk;
|
||
if TF_Main(GForm).GDBMode = bkProjectmanager then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
ComponentsForApply := TSCSComponents.Create(false);
|
||
|
||
if CheckBox_ApplyForProject.Checked then
|
||
AllComponents := TF_Main(GForm).GSCSBase.CurrProject.ComponentReferences
|
||
else if CheckBox_ApplyForList.Checked and CheckBox_ApplyForList.Enabled then
|
||
if Assigned(TF_Main(GForm).GSCSBase.CurrProject.CurrList) then
|
||
AllComponents := TF_Main(GForm).GSCSBase.CurrProject.CurrList.ComponentReferences;
|
||
if Assigned(AllComponents) and (ProjComponent <> nil) then
|
||
for i := 0 to AllComponents.Count - 1 do
|
||
begin
|
||
SCSCompon := AllComponents[i];
|
||
if (SCSCompon.ID <> ProjComponent.ID) and (SCSCompon.GuidNB = ProjComponent.GuidNB) then
|
||
begin
|
||
CanApplyCompon := true;
|
||
if cbApplyForOnlySelected.Checked then
|
||
CanApplyCompon := IsSelectedComponFigure(SCSCompon);
|
||
if CanApplyCompon then
|
||
ComponentsForApply.Add(SCSCompon);
|
||
end;
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
ListIDs := GetVariousListsIDsByCompons(ComponentsForApply);
|
||
if ProjComponent <> nil then
|
||
if ProjComponent.IsLine = biTrue then
|
||
begin
|
||
ListIDsWithWholeCompon := GetVariousListsIDsByWholeID(ProjComponent.ProjectOwner, ProjComponent.Whole_ID, ListIDs);
|
||
ListIDs.Assign(ListIDsWithWholeCompon, laOr);
|
||
FreeAndNil(ListIDsWithWholeCompon);
|
||
end;
|
||
if ListIDs.IndexOf(ProjComponent.ListID) = -1 then
|
||
ListIDs.Insert(0, ProjComponent.ListID);
|
||
|
||
SaveListsToUndoStack(ListIDs);
|
||
FreeAndNil(ListIDs);
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
MessageModal(MessgError, Caption, MB_OK or MB_ICONINFORMATION);
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
MessgError := '';
|
||
|
||
if TF_Main(GForm).DM.MemTable_PortEd.RecordCount > 0 then
|
||
if Edit_NameShort.Text = '' then
|
||
if MessageModal('- ' + cbMessage1, ApplicationName, MB_ICONQUESTION or MB_YESNO) <> IDYES then
|
||
begin
|
||
Edit_NameShort.Show;
|
||
Edit_NameShort.SetFocus;
|
||
|
||
ModalResult := mrNone;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
Inc(GBaseBeginUpdateCount);
|
||
Screen.Cursor := crHourGlass;
|
||
BeginProgress;
|
||
try
|
||
//if ProjComponent <> nil then
|
||
//begin
|
||
// ProjComponent.GUIDComponentType := GetGUIDFromComboBox(ComboBox_ComponentType);
|
||
// ProjComponent.LoadComponentType;
|
||
// ComponentType := ProjComponent.ComponentType;
|
||
//end
|
||
//else
|
||
// ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType));
|
||
|
||
ComponentType := GetComponentType;
|
||
with TF_Main(GForm).GSCSBase do
|
||
begin
|
||
//SCSComponent.ClearElements;
|
||
if GFormMode = fmMake then
|
||
SCSComponent.Clear;
|
||
if GFormMode = fmEdit then
|
||
SCSComponent.ID := GIDComponent;
|
||
SCSComponent.Name := Edit_Name.Text;
|
||
SCSComponent.NameShort := Edit_NameShort.Text;
|
||
SCSComponent.MarkID := Trunc(seIndex.Value);
|
||
SCSComponent.MarkStr := '';//Edit_MarkStr.Text;
|
||
SCSComponent.Cypher := MaskEdit_Cyper.Text;
|
||
SCSComponent.Izm := Edit_Izm.Text;
|
||
SCSComponent.Notice := Edit_Notice.Text;
|
||
SCSComponent.ArticulDistributor := Edit_ArticulDistributor.Text;
|
||
SCSComponent.ArticulProducer := Edit_ArticulProducer.Text;
|
||
//28.08.2013 if ComponentType.IsLine = biFalse then
|
||
//28.08.2013 SCSComponent.IsMarkInCaptions := BoolToint(cbIsMarkInCaptions.Checked)
|
||
//28.08.2013 else
|
||
//28.08.2013 SCSComponent.IsMarkInCaptions := biFalse;
|
||
SCSComponent.IsMarkInCaptions := BoolToint(cbIsMarkInCaptions.Checked); //28.08.2013
|
||
|
||
if SCSComponent.Description = nil then
|
||
SCSComponent.Description := TMemoryStream.Create;
|
||
SCSComponent.Description.Clear;
|
||
SCSComponent.Description.Position := 0;
|
||
meDescription.Lines.SaveToStream(SCSComponent.Description);
|
||
|
||
if SCSComponent.Picture = nil then
|
||
SCSComponent.Picture := TMemoryStream.Create;
|
||
SCSComponent.Picture.Clear;
|
||
SCSComponent.Picture.Position;
|
||
|
||
{SCSComponent.Picture := TMemoryStream.Create;
|
||
SCSComponent.Picture.Position := 0;
|
||
Image.Picture.Bitmap.SaveToStream(SCSComponent.Picture);
|
||
SCSComponent.Picture.Position := 0;
|
||
ShowMessage(IntTOStr(SCSComponent.Picture.Size));}
|
||
//hFile := CreateFile(PChar(ComponPictFileName), GENERIC_READ or GENERIC_WRITE, 0, nil, CREATE_NEW, FILE_ATTRIBUTE_NORMAL, 0);
|
||
//CloseHandle(hFile);
|
||
|
||
try
|
||
Image.Picture.SaveToFile(ComponPictFileName);
|
||
if FileExists(ComponPictFileName) then
|
||
begin
|
||
Stream := TFileStream.Create(ComponPictFileName, fmOpenReadWrite);
|
||
Stream.Position := 0;
|
||
SCSComponent.Picture.Position := 0;
|
||
SCSComponent.Picture.CopyFrom(Stream, 0);
|
||
SCSComponent.Picture.Position := 0;
|
||
FreeAndNil(Stream);
|
||
DeleteFile(PChar(ComponPictFileName));
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
ShowMessage(cAddComponent_Msg5);
|
||
end;
|
||
|
||
SCSComponent.ComponentType := ComponentType;
|
||
SCSComponent.IsLine := GetIsLineByComponType(ComponentType);
|
||
SCSComponent.ISComplect := BoolToInt(cbCanComplect.Checked); //1 - RadioGroup_CanComplect.ItemIndex;
|
||
SCSComponent.UserLength := FloatInUOM(SpinEdit_UserLength.Value, TF_Main(GForm).FUOM, umMetr);
|
||
SCSComponent.ObjectIconStep := 0;//SpinEdit_ObjectIconStep.Value;
|
||
SCSComponent.HASNDS := BoolToInt(CheckBox_HasNds.Checked); //1- RadioGroup_HasNds.ItemIndex;
|
||
Price := 0;
|
||
//case RadioGroup_HasNds.ItemIndex of
|
||
// 0: Price := CurrencyEdit_Price1.Value;
|
||
// 1: Price := PriceWithNDS(CurrencyEdit_Price1.Value, GNDS);
|
||
//end;
|
||
//CurrencyEdit_Price1.
|
||
case CheckBox_HasNds.Checked of
|
||
true: Price := CurrencyEdit_Price1.Value;
|
||
false: Price := PriceWithNDS(CurrencyEdit_Price1.Value, TF_Main(GForm).GNDS);
|
||
end;
|
||
if CheckPriceTransformToUOMByCompType(@FCurrComponentType) then
|
||
Price := FloatInUOM(Price, umMetr, TF_Main(GForm).FUOM);
|
||
case GFormMode of
|
||
fmMake:
|
||
SCSComponent.PRICE_CALC := Price;
|
||
fmEdit:
|
||
SCSComponent.PRICE_CALC := SCSComponent.PRICE_CALC - SCSComponent.PRICE + Price;
|
||
end;
|
||
SCSComponent.Price := Price;
|
||
SCSComponent.PriceSupply := cePriceSupply.Value;
|
||
SCSComponent.ID_CURRENCY := GID_CURRENCY;
|
||
SCSComponent.ID_Producer := GetIDFromComboBox(ComboBox_Producer);
|
||
SCSComponent.ID_ComponentType := GetIDFromComboBox(ComboBox_ComponentType);
|
||
SCSComponent.IDObjectIcon := GIDObjectIcon;
|
||
SCSComponent.IDSymbol := GIDSymbolImage;
|
||
SCSComponent.IDNetType := GetIDFromComboBox(ComboBox_NetType);
|
||
SCSComponent.IDCompSpecification := GetIDFromComboBox(cbSpecification);
|
||
SCSComponent.IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
if SCSComponent.IDSuppliesKind < 0 then
|
||
SCSComponent.IDSuppliesKind := 0;
|
||
|
||
SCSComponent.GUIDProducer := GetGUIDFromComboBox(ComboBox_Producer);
|
||
SCSComponent.GUIDNetType := GetGUIDFromComboBox(ComboBox_NetType);
|
||
SCSComponent.GUIDComponentType := ComponentType.GUID;
|
||
SCSComponent.GUIDObjectIcon := GGUIDObjectIcon;
|
||
SCSComponent.GUIDSymbol := GGUIDSymbolImage;
|
||
SCSComponent.GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
SCSComponent.NameMark := Edit_NameMark.Text;
|
||
//SCSComponent.IsUserMark := CheckBox_IsUserMark.Checked);
|
||
SCSComponent.IsUserMark := BoolToInt(rbMarkByDefault.Checked);
|
||
SCSComponent.IsDismount := BoolToInt(cbDismount.Checked);
|
||
SCSComponent.IsUseDismounted := BoolToInt(cbUseDismounted.Checked);
|
||
end;
|
||
|
||
if GFormMode = fmMake then
|
||
begin
|
||
SCSComponent.KolComplect := 0;
|
||
SCSComponent.GuidNB := CreateGUID;
|
||
SCSComponent.IsTemplate := BoolToInt(FIsTemplate);
|
||
GIDComponent := SCSComponent.SaveComponentAsNew(false, false);
|
||
SCSComponent.ID := GIDComponent;
|
||
if Not FIsTemplate then
|
||
TF_Main(GForm).AppendToCatalRel(TF_Main(GForm).GSCSBase.SCSCatalog.ID, GIDComponent)
|
||
else
|
||
TF_Main(GForm).DM.AppendToTemplateRel(GIDComponent, TF_Main(GForm).FTemplateGrp.FID, biFalse);
|
||
//SaveComponIcons(GID_COMPONENT, true);
|
||
end
|
||
else
|
||
begin
|
||
SCSComponent.SaveComponent;
|
||
|
||
if (TF_Main(GForm).GDBMode = bkProjectManager) and (SCSComponent.IsLine = biTrue) then
|
||
begin
|
||
SCSComponent.LoadWholeComponent(false);
|
||
for i := 0 to SCSComponent.WholeComponent.Count - 1 do
|
||
if SCSComponent.WholeComponent[i] <> GIDComponent then
|
||
begin
|
||
PartCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(SCSComponent.WholeComponent[i]);
|
||
if Assigned(PartCompon) then
|
||
begin
|
||
PartCompon.AssignOnlyComponentCommonData(SCSComponent, true);
|
||
PartCompon.SaveComponent;
|
||
|
||
TF_Main(GForm).OnUpdateComponent(FMakeEdit, nil, PartCompon, GChangedIndex, GChangedNameShort);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
SaveComponData(GIDComponent);
|
||
SaveNormsResources;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if Not FIsTemplate then
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
NewIDCompTypeTemplate := 0;
|
||
//OldIDCompTypeTemplate := ComponentType.IDComponTemplate;
|
||
WasChangeCompTypeTemplate := false;
|
||
if cbComponentIsTemplate.Checked and cbComponentIsTemplate.Enabled and cbComponentIsTemplate.Visible then
|
||
begin
|
||
if ComponentType.IDComponTemplate <> GIDComponent then
|
||
begin
|
||
WasChangeCompTypeTemplate := true;
|
||
NewIDCompTypeTemplate := GIDComponent;
|
||
NodeComponTemplate := TF_Main(GForm).FindTreeNodeByDat(ComponentType.IDComponTemplate, [itComponLine, itComponCon]);
|
||
|
||
TF_Main(GForm).DM.RemoveIDComponTemplateFromComponTypes(GIDComponent);
|
||
TF_Main(GForm).DM.UpdateIntTableFieldByID(tnComponentTypes, fnIDComponTemplate, ComponentType.ID, GIDComponent, qmPhisical);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
NBComponentType := NBSpravochnik.GetComponentTypeByGUID(ComponentType.GUID);
|
||
if NBComponentType <> nil then
|
||
NBComponentType.ComponentType.IDComponTemplate := GIDComponent;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if NodeComponTemplate <> nil then
|
||
TF_Main(GForm).SetNodeState(NodeComponTemplate, -1, TF_Main(GForm).GEditKind);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//if FComponBeforeEdit.ComponentType.GUID <> ComponentType.GUID then
|
||
//begin
|
||
// NBComponentType := NBSpravochnik.GetComponentTypeByGUID(FComponBeforeEdit.ComponentType.GUID);
|
||
// if NBComponentType <> nil then
|
||
// if NBComponentType.ComponentType.IDComponTemplate = GIDComponent then
|
||
// NBComponentType.ComponentType.IDComponTemplate := 0;
|
||
//end;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
IDComponTemplate := 0;
|
||
if (ComponentType.IDComponTemplate > 0) and (ComponentType.IDComponTemplate = GIDComponent) then
|
||
IDComponTemplate := ComponentType.ID
|
||
else
|
||
if (FComponBeforeEdit.ComponentType.IDComponTemplate > 0) and
|
||
(FComponBeforeEdit.ComponentType.IDComponTemplate = GIDComponent) then
|
||
IDComponTemplate := FComponBeforeEdit.ComponentType.ID;
|
||
if IDComponTemplate > 0 then
|
||
begin
|
||
WasChangeCompTypeTemplate := true;
|
||
NewIDCompTypeTemplate := 0;
|
||
TF_Main(GForm).DM.UpdateTableField(tnComponentTypes, fnIDComponTemplate, fnID, IDComponTemplate, null, qmPhisical);
|
||
|
||
NBComponentType := NBSpravochnik.GetComponentTypeObjByID(IDComponTemplate);
|
||
if NBComponentType <> nil then
|
||
NBComponentType.ComponentType.IDComponTemplate := 0;
|
||
end;
|
||
end;
|
||
if WasChangeCompTypeTemplate then
|
||
begin
|
||
SCSComponent.ComponentType.IDComponTemplate := NewIDCompTypeTemplate;
|
||
//NBComponentType := NBSpravochnik.GetComponentTypeByGUID(ComponentType.GUID);
|
||
//if NBComponentType <> nil then
|
||
// if (NBComponentType.ComponentType.IDComponTemplate = 0) or
|
||
// (NBComponentType.ComponentType.IDComponTemplate = GIDComponent) then
|
||
// NBComponentType.ComponentType.IDComponTemplate := NewIDCompTypeTemplate;
|
||
//if (SCSComponent.ComponentType.IDComponTemplate = 0) or
|
||
// (SCSComponent.ComponentType.IDComponTemplate = GIDComponent) then
|
||
// SCSComponent.ComponentType.IDComponTemplate := NewIDCompTypeTemplate;
|
||
|
||
//if FComponBeforeEdit.ComponentType.GUID <> ComponentType.GUID then
|
||
//begin
|
||
// NBComponentType := NBSpravochnik.GetComponentTypeByGUID(FComponBeforeEdit.ComponentType.GUID);
|
||
// if NBComponentType <> nil then
|
||
// if NBComponentType.ComponentType.IDComponTemplate = GIDComponent then
|
||
// NBComponentType.ComponentType.IDComponTemplate := 0;
|
||
//end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//NodeComponTemplate := TF_Main(GForm).FindTreeNodeByDat(FComponBeforeEdit.ComponentType.ID, [itComponLine, itComponCon]);
|
||
//if NodeComponTemplate <> nil then
|
||
// TF_Main(GForm).SetNodeState(NodeComponTemplate, -1, TF_Main(GForm).GEditKind);
|
||
end;
|
||
end;
|
||
|
||
if GFormMode = fmEdit then
|
||
begin
|
||
//SCSComponent.LoadOwnerCatalog(false);
|
||
//TF_Main(GForm).F_ChoiceConnectSide.DefineObjectIcon(TSCSCatalog(SCSComponent.OwnerCatalog));
|
||
//RefreshAllLists;
|
||
|
||
if Not FIsTemplate then
|
||
begin
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
SCSCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(SCSComponent.ID);
|
||
if Assigned(SCSCompon) then
|
||
begin
|
||
SCSCompon.AssignOnlyComponent(SCSComponent);
|
||
//SCSCompon.LoadInterfaces;
|
||
//SCSCompon.LoadProperties;
|
||
//SCSCompon.NormsResources.LoadResources(true);
|
||
//if SCSCompon.ID_ComponentType = ctCableCanal then
|
||
// SCSCompon.LoadCableCanalConnectors;
|
||
//SCSCompon.RefreshInterfacesJoining;
|
||
TF_Main(GForm).OnUpdateComponent(FMakeEdit, FComponBeforeEdit, SCSCompon, GChangedIndex, GChangedNameShort);
|
||
SCSComponent.NameMark := SCSCompon.NameMark;
|
||
|
||
if GChangedUserLength then
|
||
SCSCompon.RefreshWholeLength;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{if CheckBox_ApplyForProject.Checked then
|
||
AllComponents := TF_Main(GForm).GSCSBase.CurrProject.ComponentReferences
|
||
else if CheckBox_ApplyForList.Checked and CheckBox_ApplyForList.Enabled then
|
||
if Assigned(TF_Main(GForm).GSCSBase.CurrProject.CurrList) then
|
||
AllComponents := TF_Main(GForm).GSCSBase.CurrProject.CurrList.ComponentReferences;
|
||
if Assigned(AllComponents) and (ProjComponent <> nil) then}
|
||
if ComponentsForApply <> nil then
|
||
for i := 0 to ComponentsForApply.Count - 1 do
|
||
begin
|
||
SCSCompon := ComponentsForApply[i];
|
||
if Assigned(SCSCompon) then
|
||
if SCSCompon.ID <> ProjComponent.ID then
|
||
if SCSCompon.GuidNB = ProjComponent.GuidNB then
|
||
begin
|
||
if cbApplyName.Checked then
|
||
SCSCompon.Name := ProjComponent.Name;
|
||
if cbApplyNameShort.Checked then
|
||
SCSCompon.NameShort := ProjComponent.NameShort;
|
||
if cbApplyArticulProducer.Checked then
|
||
SCSCompon.ArticulProducer := ProjComponent.ArticulProducer;
|
||
if cbApplyArticulDistributor.Checked then
|
||
SCSCompon.ArticulDistributor := ProjComponent.ArticulDistributor;
|
||
if cbApplyIzm.Checked then
|
||
SCSCompon.Izm := ProjComponent.Izm;
|
||
if cbApplyUserLength.Checked then
|
||
SCSCompon.UserLength := ProjComponent.UserLength;
|
||
if cbApplyComponentType.Checked then
|
||
begin
|
||
SCSCompon.ID_ComponentType := ProjComponent.ID_ComponentType;
|
||
SCSCompon.GUIDComponentType := ProjComponent.GUIDComponentType;
|
||
end;
|
||
if cbApplyNetType.Checked then
|
||
begin
|
||
SCSCompon.IDNetType := ProjComponent.IDNetType;
|
||
SCSCompon.GUIDNetType := ProjComponent.GUIDNetType;
|
||
end;
|
||
if cbApplyProducer.Checked then
|
||
begin
|
||
SCSCompon.ID_Producer := ProjComponent.ID_Producer;
|
||
SCSCompon.GUIDProducer := ProjComponent.GUIDProducer;
|
||
end;
|
||
if cbApplyIsMarkInCaptions.Checked then
|
||
SCSCompon.IsMarkInCaptions := ProjComponent.IsMarkInCaptions;
|
||
if cbApplyNotice.Checked then
|
||
SCSCompon.Notice := ProjComponent.Notice;
|
||
if cbApplyCanComplect.Checked then
|
||
SCSCompon.ISComplect := ProjComponent.ISComplect;
|
||
if cbApplyPrice.Checked then
|
||
begin
|
||
SCSCompon.IDSuppliesKind := ProjComponent.IDSuppliesKind;
|
||
SCSCompon.PriceSupply := ProjComponent.PriceSupply;
|
||
SCSCompon.Price_Calc := SCSCompon.Price_Calc - SCSCompon.Price + ProjComponent.Price;
|
||
SCSCompon.Price := ProjComponent.Price;
|
||
SCSCompon.HasNDS := ProjComponent.HasNDS;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if SCSComponent.IDSuppliesKind > 0 then
|
||
//SCSCompon.Izm := TF_Main(GForm).FNormBase.DM.GetSuppliesKindByID(ProjComponent.IDSuppliesKind).Izm;
|
||
SCSCompon.Izm := TF_Main(GForm).DM.GetSuppliesKindByID(ProjComponent.IDSuppliesKind,
|
||
ProjComponent.GUIDComponentType).Izm;
|
||
end;
|
||
if cbApplyImage.Checked then
|
||
SCSCompon.AssignPicture(ProjComponent.Picture);
|
||
if cbApplySpecification.Checked then
|
||
SCSCompon.IDCompSpecification := ProjComponent.IDCompSpecification;
|
||
if cbApplyComponIcon.Checked then
|
||
begin
|
||
SCSCompon.IDObjectIcon := ProjComponent.IDObjectIcon;
|
||
SCSCompon.GUIDObjectIcon := ProjComponent.GUIDObjectIcon;
|
||
end;
|
||
if cbApplySymbol.Checked then
|
||
begin
|
||
SCSCompon.IDSymbol := ProjComponent.IDSymbol;
|
||
SCSCompon.GUIDSymbol := ProjComponent.GUIDSymbol;
|
||
end;
|
||
if cbApplyDescription.Checked then
|
||
SCSCompon.AssignDescription(ProjComponent.Description);
|
||
|
||
//--- <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if cbApplyNorms.Checked then
|
||
SCSCompon.NormsResources.AssignNorms(ProjComponent.NormsResources.Norms); //SCSCompon.NormsResources.Assign(ProjComponent.NormsResources);
|
||
if cbApplyResources.Checked then
|
||
SCSCompon.NormsResources.AssignResources(ProjComponent.NormsResources.Resources);
|
||
|
||
if CheckBox_ApplyIncludingMark.Checked then
|
||
begin
|
||
SCSCompon.NameMark := ProjComponent.NameMark;
|
||
SCSCompon.IsUserMark := ProjComponent.IsUserMark;
|
||
end;
|
||
|
||
SCSCompon.SaveComponent;
|
||
TF_Main(GForm).OnUpdateComponent(FMakeEdit, nil, SCSCompon, GChangedIndex, GChangedNameShort);
|
||
//SCSCompon.AssignOnlyComponentCommonData(SCSComponent, CheckBox_ApplyIncludingMark.Checked);
|
||
//SCSCompon.SaveComponent;
|
||
//TF_Main(GForm).OnUpdateComponent(SCSCompon, GChangedNameShort);
|
||
end;
|
||
end;
|
||
RefreshAllLists;
|
||
end
|
||
else
|
||
TF_Main(GForm).OnUpdateComponent(FMakeEdit, FComponBeforeEdit, SCSComponent, GChangedIndex, GChangedNameShort);
|
||
end;
|
||
|
||
with TF_Main(GForm) do
|
||
begin
|
||
if GDBMode = bkNormBase then
|
||
begin
|
||
GSCSBase.SCSComponent.LoadInterfaces;
|
||
GSCSBase.SCSComponent.LoadCableCanalConnectors;
|
||
end;
|
||
DM.SelectInterfaces(Tree_Catalog.Selected);
|
||
DM.LocateMTByOtherMT(DM.MemTable_InterfaceRel, DM.MemTable_InterfaceRelEd);
|
||
DM.LocateMTByOtherMT(DM.MemTable_Port, DM.MemTable_PortEd);
|
||
|
||
DM.SelectComponProperty(ProjComponent);
|
||
DM.LocateMTByOtherMT(DM.MemTable_Property, DM.MemTable_PropertyEd);
|
||
|
||
if ComponentType.SysName = ctsnCableChannel then
|
||
begin
|
||
DM.SelectCableChannelsConnectors(SCSComponent);
|
||
DM.LocateMTByOtherMT(DM.mtCableCanalConnectors, DM.MemTable_CableCanalConnectorsEd);
|
||
end;
|
||
if (GDBMode = bkNormBase) and
|
||
(ComponentType.SysName = ctsnCupBoard) then
|
||
begin
|
||
DM.SelectCrossConnections;
|
||
DM.LocateMTByOtherMT(DM.MemTable_CrossConnection, DM.mtCrossConnectionEd);
|
||
end;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if GDBMode = bkNormBase then
|
||
begin
|
||
SCSComponent.NormsResources.LoadNorms(false, true);
|
||
SCSComponent.NormsResources.LoadResources(true);
|
||
DM.SelectNorms(SCSComponent.NormsResources);
|
||
end
|
||
else
|
||
DM.SelectNorms(ProjComponent.NormsResources);
|
||
DM.LocateMTByOtherMT(DM.mtNorms, DM.MemTable_NormsEd);
|
||
end;
|
||
end;
|
||
|
||
if Not FIsTemplate then
|
||
with TF_Main(GForm) do
|
||
if cbApplyForCurrentDir.Checked then
|
||
begin
|
||
if GDBMode = bkNormBase then
|
||
begin
|
||
GSCSBase.SCSComponent.LoadComponentByID(GSCSBase.SCSComponent.ID, true);
|
||
DM.ApplyComponentForDir(GSCSBase.SCSComponent, GSCSBase.SCSCatalog.ID, cbIncludingSubFolders.Checked);
|
||
end;
|
||
end;
|
||
|
||
//<#MemTableClar#>TF_Main(GForm).DM.CorrectInterfaceAdverseRelation(GIDComponent);
|
||
|
||
//if GChangedUserLength then
|
||
// if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
// TF_Main(GForm).GSCSBase.SCSComponent.RefreshWholeLength;
|
||
//TF_Main(GForm).GSCSBase.SCSComponent.LoadComponentByID(GID_Component, false);
|
||
end;
|
||
finally
|
||
EndProgress;
|
||
Screen.Cursor := crDefault;
|
||
Dec(GBaseBeginUpdateCount);
|
||
end;
|
||
|
||
if ComponentsForApply <> nil then
|
||
FreeAndNil(ComponentsForApply);
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.BitBtn_OKClick: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.BitBtn_CancelClick(Sender: TObject);
|
||
begin
|
||
if ComboBox_ComponentType.DroppedDown then
|
||
ComboBox_ComponentType.DroppedDown := false;
|
||
|
||
Close;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Active := false;
|
||
end;
|
||
|
||
// #############################################################################
|
||
// ############################ <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ######################################
|
||
//
|
||
|
||
procedure TF_AddComponent.btCanComplectClick(Sender: TObject);
|
||
//var Hint: THintWindowClass;
|
||
begin
|
||
TF_Main(GForm).F_AnswerToQuast.GCaption := cAddComponent_Msg6_1;
|
||
TF_Main(GForm).F_AnswerToQuast.GAnswer := cAddComponent_Msg6_2;
|
||
TF_Main(GForm).F_AnswerToQuast.ShowContextHelp(TF_Main(GForm).F_AnswerToQuast.GCaption, TF_Main(GForm).F_AnswerToQuast.GAnswer);
|
||
end;
|
||
|
||
// #############################################################################
|
||
// ########################## ActionList_Component #############################
|
||
//
|
||
// ##### <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DefaultExecute(Sender: TObject);
|
||
|
||
procedure ClearMT(AMemTable: TkbmMemTable; ADeletedList: TIntList; AISInterface: Boolean);
|
||
begin
|
||
if AMemTable.Active = false then
|
||
Exit; //// EXIT ////
|
||
AMemTable.First;
|
||
while not AMemTable.Eof do
|
||
begin
|
||
if (AMemTable.FieldByName('isNew').AsBoolean = false) and
|
||
(not AISInterface or AMemTable.FieldByName(fnIsNative).AsBoolean) then
|
||
ADeletedList.Add(AMemTable.FieldByName(fnID).AsInteger);
|
||
AMemTable.Next;
|
||
end;
|
||
AMemTable.Active := false;
|
||
AMemTable.Active := true;
|
||
end;
|
||
|
||
begin
|
||
EnableControl(true);
|
||
|
||
if Edit_Name.Text = '' then
|
||
Edit_Name.Text := 'Default';
|
||
Edit_Name.SelectAll;
|
||
Edit_Name.SetFocus;
|
||
|
||
if Edit_ArticulDistributor.Text = '' then
|
||
Edit_ArticulDistributor.Text := cAddComponent_Msg7;
|
||
|
||
if Edit_ArticulProducer.Text = '' then
|
||
Edit_ArticulProducer.Text := cAddComponent_Msg7;
|
||
|
||
ComboBox_Producer.ItemIndex := 1;
|
||
|
||
//Image.Clear;
|
||
Image.Picture.Bitmap := nil;
|
||
Image_CompIcons.Clear;
|
||
|
||
//RadioGroup_CanComplect.ItemIndex := 1;
|
||
cbCanComplect.Checked := true;
|
||
CheckBox_HasNds.Checked := true; //RadioGroup_HasNds.ItemIndex := 0;
|
||
cbIsMarkInCaptions.Checked := false;
|
||
|
||
CurrencyEdit_Price1.Value := 0;
|
||
CurrencyEdit_Price2.Value := 0;
|
||
CurrencyEdit_NDS1.Visible := false;
|
||
CurrencyEdit_NDS2.Visible := false;
|
||
|
||
GID_Currency := TF_Main(GForm).GCurrencyM.ID;
|
||
ComboBox_NetType.ItemIndex := 0;
|
||
cbSpecification.ItemIndex := 0;
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
ClearMT(MemTable_InterfaceRelEd, GDeletedInterfRel, true);
|
||
ClearMT(MemTable_PropertyEd, GDeletedPropRel, false);
|
||
//ClearMT(F_NormBase.DM.MemTable_ComponentIcons, GDeletedComponIcons);
|
||
GChangedInterface := true;
|
||
GChangedProperty := true;
|
||
GChangedObjectIcons := true;
|
||
GChangedPicture := true;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if ComboBox_ComponentType.Text = '' then
|
||
ComboBox_ComponentType.ItemIndex := 1;
|
||
ComboBox_ComponentTypePropertiesChange(ComboBox_ComponentType);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddInterfaceExecute(Sender: TObject);
|
||
//var FieldsNames: TStringList;
|
||
//i: Integer;
|
||
//meInterfaceRel: TmeInterfaceRel;
|
||
//ComponentType: TComponentType;
|
||
begin
|
||
AddInterfacePort(biFalse);
|
||
{try
|
||
try
|
||
FieldsNames := nil;
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit;
|
||
|
||
if ComboBox_ComponentType.Text <> '' then
|
||
ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType))
|
||
else
|
||
ComponentType.IsLine := biFalse;
|
||
|
||
meInterfaceRel.IsLineCompon := ComponentType.IsLine;
|
||
F_NormBase.F_CaseForm.GUseMemTable := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
if TF_Main(GForm).F_AddInterface.GetInterfRel(meInterfaceRel, fmMake) then
|
||
begin
|
||
meInterfaceRel.NAME := TF_Main(GForm).F_AddInterface.ComboBox_Name.Text;
|
||
AddInterfaceToMT(meInterfaceRel);
|
||
end;
|
||
|
||
FieldsNames := TStringList.Create;
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.Act_AddInterfaceExecute: : '+E.Message);
|
||
end;
|
||
finally
|
||
if FieldsNames <> nil then
|
||
FieldsNames.Free;
|
||
end; }
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditInterfaceExecute(Sender: TObject);
|
||
//var FieldsNames: TStringList;
|
||
//meInterfaceRel: TmeInterfaceRel;
|
||
//EditId: Integer;
|
||
//ID_Adverse: Integer;
|
||
//NumPair: Integer;
|
||
//RecNo: Integer;
|
||
//ComponentType: TComponentType;
|
||
begin
|
||
EditInterfacePort(biFalse);
|
||
(*try
|
||
try
|
||
FieldsNames := nil;
|
||
EditID := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('ID').AsInteger;
|
||
NumPair := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('Num_Pair').AsInteger;
|
||
RecNo := -1;
|
||
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
if isUseInterfRel(GForm, TF_Main(GForm).DM.MemTable_InterfaceRelEd, meEdit) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isBusy').AsInteger = biTrue then
|
||
begin
|
||
MessageModal(Self.Handle, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_ICONINFORMATION or MB_OK);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
if ComboBox_ComponentType.Text <> '' then
|
||
ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType))
|
||
else
|
||
ComponentType.IsLine := biFalse;
|
||
|
||
meInterfaceRel := TF_Main(GForm).DM.GetInterfaceRel(TF_Main(GForm).DM.DataSource_MT_INTERFACERelEd);
|
||
meInterfaceRel.IsLineCompon := ComponentType.IsLine;
|
||
F_NormBase.F_CaseForm.GUseMemTable := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
if TF_Main(GForm).F_AddInterface.GetInterfRel(meInterfaceRel, fmEdit) then
|
||
begin
|
||
meInterfaceRel.ID_COMPONENT := TF_Main(GForm).GSCSBase.SCSComponent.ID;
|
||
RecNo := TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecNo;
|
||
with TF_Main(GForm).DM.MemTable_InterfaceRelEd do
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := meInterfaceRel.Name;
|
||
FieldByName('TypeI').AsInteger := meInterfaceRel.Typei;
|
||
FieldByName('Kind').AsInteger := meInterfaceRel.Kind;
|
||
FieldByName('Gender').AsInteger := meInterfaceRel.Gender;
|
||
FieldByName('Multiple').AsInteger := meInterfaceRel.Multiple;
|
||
FieldByName('ID_Interface').AsInteger := meInterfaceRel.ID_INTERFACE;
|
||
FieldByName('ValueI').AsFloat := meInterfaceRel.ValueI;
|
||
FieldByName('Color').AsFloat := meInterfaceRel.Color;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
|
||
if meInterfaceRel.ID_Adverse <> 0 then
|
||
if SearchRecordMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'id', meInterfaceRel.ID_Adverse) then
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := meInterfaceRel.Name;
|
||
FieldByName('TypeI').AsInteger := meInterfaceRel.Typei;
|
||
FieldByName('Kind').AsInteger := meInterfaceRel.Kind;
|
||
FieldByName('Gender').AsInteger := meInterfaceRel.Gender;
|
||
FieldByName('Multiple').AsInteger := meInterfaceRel.Multiple;
|
||
FieldByName('ID_Interface').AsInteger := meInterfaceRel.ID_INTERFACE;
|
||
FieldByName('ValueI').AsFloat := meInterfaceRel.ValueI;
|
||
FieldByName('Color').AsFloat := meInterfaceRel.Color;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
//SearchRecordMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'id', meInterfaceRel.ID);
|
||
end;
|
||
GChangedInterface := true;
|
||
end;
|
||
end;
|
||
|
||
{TF_Main(GForm).F_AddInterface.GFormMode := fmEdit;
|
||
TF_Main(GForm).F_AddInterface.GID_Interface := TF_Main(GForm).DM.MemTable_Interface.FieldByName('ID_Interface').AsInteger;
|
||
TF_Main(GForm).F_AddInterface.GKolvo := TF_Main(GForm).DM.MemTable_Interface.FieldByName('Kolvo').AsInteger;
|
||
TF_Main(GForm).F_AddInterface.GTypeInterface := TF_Main(GForm).DM.MemTable_Interface.FieldByName('TypeI').AsInteger;
|
||
|
||
with TF_Main(GForm).DM.MemTable_Interface do
|
||
begin
|
||
if TF_Main(GForm).F_AddInterface.ShowModal = mrOK then
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := TF_Main(GForm).F_AddInterface.ComboBox_Name.Text;
|
||
FieldByName('TypeI').AsInteger := TF_Main(GForm).F_AddInterface.ComboBox_Type_I.ItemIndex;
|
||
FieldByName('Gender').AsInteger := 1 - TF_Main(GForm).F_AddInterface.RadioGroup_Gender.ItemIndex;
|
||
FieldByName('ID_Interface').AsInteger := TF_Main(GForm).F_AddInterface.GID_INTERFACE;
|
||
FieldByName('Kolvo').AsInteger := TF_Main(GForm).F_AddInterface.SpinEdit_Kolvo.Value;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
end;
|
||
|
||
GChangedInterface := true;
|
||
end; }
|
||
//GT_Interface.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_INTERFACE;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
FieldsNames := TStringList.Create;
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.Act_EditInterfaceExecute: : '+E.Message);
|
||
end;
|
||
finally
|
||
if FieldsNames <> nil then
|
||
FieldsNames.Free;
|
||
if RecNo <> -1 then
|
||
begin
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.First;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecNo := RecNo;
|
||
end;
|
||
end; *)
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DelInterfaceExecute(Sender: TObject);
|
||
//var InterfName: String;
|
||
//DelID: Integer;
|
||
//ID_Adverse: Integer;
|
||
//NumPair: Integer;
|
||
begin
|
||
DelInterfacePort(biFalse);
|
||
(*try
|
||
DelID := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('ID').AsInteger;
|
||
NumPair := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('Num_Pair').AsInteger;
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
if isUseInterfRel(GForm, TF_Main(GForm).DM.MemTable_InterfaceRelEd, meDel) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isBusy').AsInteger = biTrue then
|
||
begin
|
||
MessageModal(Self.Handle, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_ICONINFORMATION or MB_OK);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
InterfName := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('Name').AsString;
|
||
if MessageModal(Self.Handle, PAnsiChar('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "'+ InterfName + '" ?'),
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_YESNO or MB_ICONQUESTION) = mrYES then
|
||
begin
|
||
ID_Adverse := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('id_Adverse').AsInteger;
|
||
NumPair := TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('Num_Pair').AsInteger;
|
||
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedInterfRel.Add(IntToStr(DelID))
|
||
else
|
||
GGenLastInterfID := GGenLastInterfID - 1;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Delete;
|
||
|
||
if NumPair <> 0 then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_InterfaceRelEd.Last;
|
||
while Not MemTable_InterfaceRelEd.Bof do
|
||
begin
|
||
if MemTable_InterfaceRelEd.FieldByName('Num_Pair').AsInteger = NumPair then
|
||
begin
|
||
if MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedInterfRel.Add(IntToStr(MemTable_InterfaceRelEd.FieldByName('ID').AsInteger))
|
||
else
|
||
GGenLastInterfID := GGenLastInterfID - 1;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Delete;
|
||
end
|
||
else
|
||
MemTable_InterfaceRelEd.Prior;
|
||
end;
|
||
|
||
{if SearchRecordMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'id', ID_Adverse) then
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedInterfRel.Add(IntToStr(ID_Adverse))
|
||
else
|
||
GGenLastInterfID := GGenLastInterfID - 1;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Delete;
|
||
end; }
|
||
end;
|
||
GChangedInterface := true;
|
||
EnableButtons;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.Act_DelInterfaceExecute: : '+E.Message);
|
||
end; *)
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddPortExecute(Sender: TObject);
|
||
begin
|
||
AddInterfacePort(biTrue);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditPortExecute(Sender: TObject);
|
||
begin
|
||
EditInterfacePort(biTrue);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DelPortExecute(Sender: TObject);
|
||
begin
|
||
DelInterfacePort(biTrue);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddPropertyExecute(Sender: TObject);
|
||
//var FieldsNames: TStringList;
|
||
//ID_DataType: Integer;
|
||
// ComponentType: TComponentType;
|
||
begin
|
||
AddEditProperty(meMake);
|
||
|
||
{try
|
||
ComponentType := GetComponentType;
|
||
|
||
FieldsNames := nil;
|
||
//F_NormBase.F_CaseForm.GViewKind := vkProperty;
|
||
//F_NormBase.F_CaseForm.GFormMode := fmMake;
|
||
if ComponentType.IsLine = biTrue then
|
||
F_NormBase.F_CaseForm.GItemType := itComponLine
|
||
else
|
||
F_NormBase.F_CaseForm.GItemType := itComponCon;
|
||
F_NormBase.F_CaseForm.GUseMemTable := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
//if F_NormBase.F_CaseForm.ShowModal = mrOk then
|
||
if F_NormBase.F_CaseForm.Execute(vkProperty, fmMake) then
|
||
with TF_Main(GForm).DM.MemTable_PropertyEd do
|
||
begin
|
||
with TF_Main(GForm) do
|
||
if Not DM.CheckNoRepeatPropertyMT(DM.MemTable_PropertyEd, F_NormBase.DM.DataSet_PROPERTIES.FN('ID').AsInteger, Edit_Name.Text) then
|
||
Exit; ///// EXIT /////
|
||
|
||
last;
|
||
Append;
|
||
FieldByName('ID').AsInteger := GenNewID(tkCompPropRelED);
|
||
FieldByName('Name').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Name').AsString;
|
||
FieldByName('SysName').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('SysName').AsString;
|
||
FieldByName('ID_PROPERTY').AsInteger := F_NormBase.DM.DataSet_PROPERTIES.FN('ID').AsInteger;
|
||
FieldByName('PVALUE').AsString := F_NormBase.F_CaseForm.GValue;
|
||
FieldByName('Izm').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Izm').AsString;
|
||
FieldByName('TAKE_INTO_CONNECT').AsInteger := F_NormBase.F_CaseForm.GTakeIntoConnect;
|
||
FieldByName('TAKE_INTO_JOIN').AsInteger := F_NormBase.F_CaseForm.GTakeIntoJoin;
|
||
FieldByName('Description').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Description').AsString;
|
||
FieldByName('IsStandart').AsInteger := F_NormBase.DM.DataSet_PROPERTIES.FN('IsStandart').AsInteger;
|
||
FieldByName(fnIsDefault).AsInteger := biFalse;
|
||
FieldByName('isNew').AsBoolean := true;
|
||
FieldByName('isModified').AsBoolean := false;
|
||
Post;
|
||
|
||
GChangedProperty := true;
|
||
EnableButtons;
|
||
end;
|
||
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
FieldsNames.Add('SysName');
|
||
FieldsNames.Add('Name');
|
||
FieldsNames.Add('Izm');
|
||
FieldsNames.Add('Description');
|
||
FieldsNames.Add('ID_Data_Type');
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_PropertyEd, 'PROPERTIES', 'ID_Property', 'ID', FieldsNames);
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.Act_AddPropertyExecute: '+E.Message);
|
||
end;}
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditPropertyExecute(Sender: TObject);
|
||
{var FieldsNames: TStringList;
|
||
ComponentType: TComponentType;
|
||
|
||
procedure SendToMT_Prop;
|
||
begin
|
||
with TF_Main(GForm).DM.MemTable_PropertyEd do
|
||
begin
|
||
FieldByName('Name').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Name').AsString;
|
||
FieldByName('SysName').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('SysName').AsString;
|
||
FieldByName('ID_PROPERTY').AsInteger := F_NormBase.DM.DataSet_PROPERTIES.FN('ID').AsInteger;
|
||
FieldByName('Izm').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Izm').AsString;
|
||
FieldByName('Description').AsString := F_NormBase.DM.DataSet_PROPERTIES.FN('Description').AsString;
|
||
end;
|
||
end;}
|
||
|
||
begin
|
||
AddEditProperty(meEdit);
|
||
{try
|
||
Exit; //// EXIT /////
|
||
|
||
ComponentType := GetComponentType;
|
||
|
||
//GT_Property.DataController.DataSource := nil;
|
||
FieldsNames := nil;
|
||
//F_NormBase.F_CaseForm.GViewKind := vkProperty;
|
||
//F_NormBase.F_CaseForm.GFormMode := fmEdit;
|
||
if ComponentType.IsLine = biTrue then
|
||
F_NormBase.F_CaseForm.GItemType := itComponLine
|
||
else
|
||
F_NormBase.F_CaseForm.GItemType := itComponCon;
|
||
F_NormBase.F_CaseForm.GIDToLocate := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName('ID_PROPERTY').AsInteger;
|
||
F_NormBase.F_CaseForm.GValue := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName('PValue').AsString;
|
||
F_NormBase.F_CaseForm.GTakeIntoConnect := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName('TAKE_INTO_CONNECT').AsInteger;
|
||
F_NormBase.F_CaseForm.GTakeIntoJoin := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName('TAKE_INTO_JOIN').AsInteger;
|
||
F_NormBase.F_CaseForm.GUseMemTable := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
with TF_Main(GForm).DM.MemTable_PropertyEd do
|
||
begin
|
||
//if F_NormBase.F_CaseForm.ShowModal = mrOK then
|
||
if F_NormBase.F_CaseForm.Execute(vkProperty, fmEdit) then
|
||
begin
|
||
Edit;
|
||
SendToMT_Prop;
|
||
FieldByName('PVALUE').AsString := F_NormBase.F_CaseForm.GValue;
|
||
FieldByName('TAKE_INTO_CONNECT').AsInteger := F_NormBase.F_CaseForm.GTakeIntoConnect;
|
||
FieldByName('TAKE_INTO_JOIN').AsInteger := F_NormBase.F_CaseForm.GTakeIntoJoin;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FieldByName('ID_Data_Type').AsInteger = dtCompStateType then
|
||
begin
|
||
LoadComponIcon(GIDObjectIcon, Image_CompIcons); //RefreshCompIcons(StrToInt(F_NormBase.F_CaseForm.GValue));
|
||
LoadComponIcon(GIDSymbolImage, Image_Symbol);
|
||
end;
|
||
GChangedProperty := true;
|
||
end;
|
||
//GT_Property.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_Property;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
FieldsNames.Add('SysName');
|
||
FieldsNames.Add('Name');
|
||
FieldsNames.Add('Izm');
|
||
FieldsNames.Add('Description');
|
||
FieldsNames.Add('ID_Data_Type');
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_PropertyEd, 'PROPERTIES', 'ID_Property', 'ID', FieldsNames);
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.Act_EditPropertyExecute: '+E.Message);
|
||
end;}
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DelPropertyExecute(Sender: TObject);
|
||
var
|
||
PropName: string;
|
||
PropSysName: string;
|
||
DelID: Integer;
|
||
CanDel: Boolean;
|
||
begin
|
||
PropName := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnName).AsString;
|
||
PropSysName := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnSysName).AsString;
|
||
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnIsDefault).AsInteger = biTrue then
|
||
begin
|
||
{$IF Defined (FINAL_SCS)}
|
||
MessageModal(cImpossibleDelProperty + ' "' + PropName + '", ' + cSinceItUse + '.', cDeletingProperty, MB_ICONINFORMATION or MB_OK);
|
||
Exit; //// EXIT ////
|
||
{$ELSE}
|
||
if MessageQuastYN(cImpossibleDelProperty + ' "' + PropName + '", ' + cSinceItUse + '. Delete it ?') <> IDYES then
|
||
Exit; //// EXIT ////
|
||
{$IFEND}
|
||
end;
|
||
|
||
////*** <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//if TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName('isStandart').AsInteger = 1 then
|
||
// begin
|
||
// MessageModal(Self.Handle, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_ICONINFORMATION or MB_OK);
|
||
// Exit;
|
||
// end;
|
||
|
||
{//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>"
|
||
if RadioGroup_IsLine.ItemIndex = 0 then
|
||
if PropSysName = 'LENGTH' then
|
||
begin
|
||
MessageModal(Self.Handle, '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD>" <20>.<2E>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.',
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ', MB_OK or MB_ICONINFORMATION);
|
||
Exit;
|
||
end;}
|
||
|
||
if MessageModal(cQuastDelProperty + ' "' + PropName + '" ?', cDeletingProperty,
|
||
MB_YESNO or MB_ICONQUESTION) = mrYES then
|
||
begin
|
||
DelID := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnID).AsInteger;
|
||
|
||
CanDel := true;
|
||
if GetNormResourcesCountByCompPropRelID(DelID) > 0 then
|
||
begin
|
||
case MessageModal(cMain_Msg177, ApplicationName, MB_YESNOCANCEL or MB_ICONQUESTION) of
|
||
IDYES:
|
||
DeleteNormResByIDCompPropRel(DelID);
|
||
IDCANCEL:
|
||
CanDel := false;
|
||
end;
|
||
end;
|
||
|
||
if CanDel then
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnIsNew).AsBoolean = false then
|
||
GDeletedPropRel.Add(DelID);
|
||
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Delete;
|
||
GChangedProperty := true;
|
||
EnableButtons;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddComplectEdExecute(Sender: TObject);
|
||
begin
|
||
{EnableMakeEditCompon(False);
|
||
TF_Main(GForm).AddEditComplect(cmAdd, true);
|
||
EnableMakeEditCompon(True);
|
||
|
||
SetCalcPrice;
|
||
ChangedComplect := true;
|
||
EnableButtons; }
|
||
MessageModal(cbMessage2 + ' "' + GetMainformName + '"',
|
||
cAddingComplect, MB_ICONINFORMATION or MB_OK);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DelComplectEdExecute(Sender: TObject);
|
||
//var ComplectName : String;
|
||
//DelID: Integer;
|
||
begin
|
||
MessageModal(cbMessage3 + ' "' + GetMainformName + '"',
|
||
cDeletingComplect, MB_ICONINFORMATION or MB_OK);
|
||
|
||
{
|
||
ComplectName := TF_Main(GForm).DM.MemTable_ComplectsEd.FieldByName('Name').AsString;
|
||
if MessageModal(Self.Handle, PAnsiChar('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "' + ComplectName +'" ?'),
|
||
'<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_YESNO or MB_ICONQUESTION) = mrYES then
|
||
begin
|
||
DelID := TF_Main(GForm).DM.MemTable_ComplectsEd.FieldByName('ID').AsInteger;
|
||
GDeletedComplects.Add(IntToStr(DelID));
|
||
|
||
TF_Main(GForm).DM.MemTable_ComplectsEd.Delete;
|
||
SetCalcPrice;
|
||
GChangedComplect := true;
|
||
EnableButtons;
|
||
end; }
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditComplectEdExecute(Sender: TObject);
|
||
begin
|
||
{EnableMakeEditCompon(False);
|
||
TF_Main(GForm).AddEditComplect(cmEdit, true);
|
||
EnableMakeEditCompon(True);
|
||
SetCalcPrice;
|
||
ChangedComplect := true;
|
||
EnableButtons;}
|
||
MessageModal(cbMessage4 + ' "' + GetMainformName + '"',
|
||
cEditingComplect, MB_ICONINFORMATION or MB_OK);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddCableCanalConnectorExecute(
|
||
Sender: TObject);
|
||
begin
|
||
AddEditCableCanalConnector(meMake);
|
||
EnableButtons;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditCableCanalConnectorExecute(
|
||
Sender: TObject);
|
||
begin
|
||
AddEditCableCanalConnector(meEdit);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DelCableCanalConnectorExecute(
|
||
Sender: TObject);
|
||
var
|
||
DelName: string;
|
||
DelID: Integer;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
DelName := MemTable_CableCanalConnectorsEd.FieldByName(fnName).AsString;
|
||
if MessageModal(cQuastDelCableChannelElement + ' "' + DelName + '"?',
|
||
Application.Title, MB_YESNO or MB_ICONQUESTION) = IDYES then
|
||
begin
|
||
if MemTable_CableCanalConnectorsEd.FieldByName(fnIsNew).AsBoolean = false then
|
||
begin
|
||
DelID := MemTable_CableCanalConnectorsEd.FieldByName(fnID).AsInteger;
|
||
GDeletedCableCanalConnectors.Add(DelID);
|
||
end;
|
||
MemTable_CableCanalConnectorsEd.Delete;
|
||
end;
|
||
end;
|
||
EnableButtons;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.GT_InterfaceTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg8_1;
|
||
if AText = '1' then
|
||
AText := cAddComponent_Msg8_2;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceKindGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg9_1;
|
||
if AText = '1' then
|
||
AText := cAddComponent_Msg9_2;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceValueIGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg10
|
||
else
|
||
AText := GetDisplayTextInFLoatUOMMin2(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceNumPairsStrGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg10;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceSideGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg10;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ComboBox_NetTypeKeyPress(Sender: TObject;
|
||
var Key: Char);
|
||
begin
|
||
Key := #0;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> 1 #####
|
||
|
||
procedure TF_AddComponent.CurrencyEdit_Price1_KeyUp(Sender: TObject;
|
||
var Key: Word; Shift: TShiftState);
|
||
var
|
||
NewValue: Double;
|
||
RoundValue: Double;
|
||
begin
|
||
try
|
||
NewValue := 0;
|
||
//if StrCanBeFloat(CurrencyEdit_Price1.Text) then
|
||
begin
|
||
NewValue := StrToFloatU(CorrectStrToFloat(CurrencyEdit_Price1.Text));
|
||
DefineComponSecondPrice(NewValue);
|
||
ShowNDSPrice;
|
||
GWasChanging := true;
|
||
|
||
DefineSupplyPriceByComponActualPrice; //DefineSupplyPriceByComponPrice(NewValue);
|
||
end;
|
||
{if Key in [188, 190, 191, 110] then
|
||
Exit;
|
||
if CurrencyEdit_Price1.Text <> '' then
|
||
NewValue := StrToFloat_My(CurrencyEdit_Price1.Text)
|
||
else
|
||
NewValue := 0;
|
||
|
||
if Not (CurrencyEdit_Price1.Text[Length(CurrencyEdit_Price1.Text)] in ['0', ',', '.']) and
|
||
Not (CurrencyEdit_Price1.Text[1] in ['0', ',', '.']) then
|
||
CurrencyEdit_Price1.Value := NewValue;
|
||
|
||
RoundValue := RoundX(NewValue * (TF_Main(GForm).GCurrencyM.Ratio / TF_Main(GForm).GCurrencyS.Ratio),2);
|
||
CurrencyEdit_Price2.Value := RoundValue;
|
||
ShowNDSPrice;
|
||
GWasChanging := true;}
|
||
except
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> 2 #####
|
||
|
||
procedure TF_AddComponent.CurrencyEdit_Price2KeyUp(Sender: TObject;
|
||
var Key: Word; Shift: TShiftState);
|
||
var
|
||
NewValue: Double;
|
||
RoundValue: Double;
|
||
begin
|
||
try
|
||
NewValue := 0;
|
||
//if StrCanBeFloat(CurrencyEdit_Price2.Text) then
|
||
begin
|
||
NewValue := StrToFloatU(CorrectStrToFloat(CurrencyEdit_Price2.Text));
|
||
//RoundValue := Round3(NewValue * (TF_Main(GForm).GLocalCurrencyS.Data.Ratio / TF_Main(GForm).GLocalCurrencyM.Data.Ratio));
|
||
RoundValue := Round3(GetPriceAfterChangeCurrency(NewValue, TF_Main(GForm).GLocalCurrencyS.Data, TF_Main(GForm).GLocalCurrencyM.Data, valEpsilonCurrency));
|
||
CurrencyEdit_Price1.Value := RoundValue;
|
||
ShowNDSPrice;
|
||
GWasChanging := true;
|
||
|
||
DefineSupplyPriceByComponActualPrice; //DefineSupplyPriceByComponPrice(RoundValue);
|
||
end;
|
||
|
||
{
|
||
if Key in [188, 190, 191, 110] then
|
||
Exit;
|
||
|
||
if CurrencyEdit_Price2.Text <> '' then
|
||
NewValue := StrToFloat_My( CurrencyEdit_Price2.Text)
|
||
else
|
||
NewValue := 0;
|
||
|
||
if Not(CurrencyEdit_Price2.Text[Length(CurrencyEdit_Price2.Text)] in ['0', ',', '.']) and
|
||
Not(CurrencyEdit_Price2.Text[1] in ['0', ',', '.']) then
|
||
CurrencyEdit_Price2.Value := NewValue;
|
||
|
||
RoundValue := RoundX(NewValue * (TF_Main(GForm).GCurrencyS.Ratio / TF_Main(GForm).GCurrencyM.Ratio), 2);
|
||
CurrencyEdit_Price1.Value := RoundValue;
|
||
ShowNDSPrice;
|
||
GWasChanging := true; }
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.cePriceSupplyKeyUp(Sender: TObject;
|
||
var Key: Word; Shift: TShiftState);
|
||
var
|
||
NewValue: Double;
|
||
begin
|
||
NewValue := StrToFloatU(CorrectStrToFloat(cePriceSupply.Text));
|
||
DefineParamsBySupply(NewValue, false);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_AddExecute(Sender: TObject);
|
||
begin
|
||
{ if GFormMode = fmView then
|
||
Exit;}
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
Act_AddInterface.Execute;
|
||
liPort:
|
||
Act_AddPort.Execute;
|
||
liProperty:
|
||
Act_AddProperty.Execute;
|
||
liCableCanalConnectors:
|
||
Act_AddCableCanalConnector.Execute;
|
||
liComplects:
|
||
Act_AddComplectEd.Execute;
|
||
liCrossConnections:
|
||
Act_AddCrossConnection.Execute;
|
||
end;
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_DelExecute(Sender: TObject);
|
||
begin
|
||
{if GFormMode = fmView then
|
||
Exit;}
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
Act_DelInterface.Execute;
|
||
liPort:
|
||
Act_DelPort.Execute;
|
||
liProperty:
|
||
Act_DelProperty.Execute;
|
||
liCableCanalConnectors:
|
||
Act_DelCableCanalConnector.Execute;
|
||
liComplects:
|
||
Act_DelComplectEd.Execute;
|
||
liCrossConnections:
|
||
Act_DelCrossConnection.Execute;
|
||
end;
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.Act_EditExecute(Sender: TObject);
|
||
begin
|
||
try
|
||
//if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
// Exit; ///// EXIT /////
|
||
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecordCount > 0 then
|
||
Act_EditInterface.Execute;
|
||
liPort:
|
||
if TF_Main(GForm).DM.MemTable_PortEd.RecordCount > 0 then
|
||
Act_EditPort.Execute;
|
||
liProperty:
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.RecordCount > 0 then
|
||
Act_EditProperty.Execute;
|
||
liCableCanalConnectors:
|
||
if TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.RecordCount > 0 then
|
||
Act_EditCableCanalConnector.Execute;
|
||
liComplects:
|
||
if TF_Main(GForm).DM.MemTable_ComplectsEd.RecordCount > 0 then
|
||
Act_EditComplectEd.Execute;
|
||
liCrossConnections:
|
||
Act_EditCrossConnection.Execute;
|
||
end;
|
||
GWasChanging := true;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.Act_EditExecute: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Tab #####
|
||
|
||
procedure TF_AddComponent.GridActiveTabChanged(Sender: TcxCustomGrid;
|
||
ALevel: TcxGridLevel);
|
||
begin
|
||
EnableButtons;
|
||
DefinecbApplyCompData;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Edit-<2D> <20> Grid #####
|
||
|
||
procedure TF_AddComponent.GT_PropertyPValueGetProperties(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AProperties: TcxCustomEditProperties);
|
||
begin
|
||
if ARecord.Values[6] <> null then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
case ARecord.Values[6] of
|
||
dtBoolean:
|
||
AProperties := EditRepositoryCheckBoxItem.Properties;
|
||
//dtFloat : AProperties := EditRepositorySpinItem.Properties;
|
||
//dtInteger: AProperties := EditRepositorySpinItem.Properties;
|
||
//dtDate:
|
||
// AProperties := EditRepositoryDateItem.Properties;
|
||
dtCompStateType:
|
||
AProperties := EditRepositoryLookupCompSateType.Properties;
|
||
dtColor:
|
||
AProperties := EditRepositoryColorComboBox.Properties;
|
||
dtCableCanalElementType:
|
||
AProperties := EditRepositoryLookupCableCanalElementType.Properties;
|
||
//dtSectionSide:
|
||
// AProperties := EditRepositoryMaskItemSectionSide.Properties;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PropertyPValueGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
//var
|
||
// CurrFloat: Double;
|
||
var DoSetDisplay: boolean; // IGOR 04/07/2019 --
|
||
begin
|
||
// IGOR 04/07/2019 --
|
||
DoSetDisplay := True;
|
||
if ARecord.Values[6] <> null then
|
||
begin
|
||
if (ARecord.Values[6] = dtBoolean) or (ARecord.Values[6] = dtCompStateType)
|
||
or (ARecord.Values[6] = dtColor) or (ARecord.Values[6] = dtCableCanalElementType) then
|
||
DoSetDisplay := False;
|
||
end;
|
||
if DoSetDisplay then
|
||
//
|
||
SetDisplayTextToGridTablePropValue(AText, ARecord, 6, 7, TF_Main(GForm).FUOM);
|
||
{if ARecord.Values[6] <> null then
|
||
case ARecord.Values[6] of
|
||
dtFloat:
|
||
try
|
||
CurrFloat := StrToFloatU(AText);
|
||
if GPropSysNameInUOM.IndexOf(ARecord.Values[7]) <> -1 then
|
||
CurrFloat := RoundCP(FloatInUOM(CurrFloat, umMetr, TF_Main(GForm).FUOM));
|
||
AText := FloatToStr(CurrFloat);
|
||
except
|
||
end;
|
||
dtDate:
|
||
try
|
||
AText := DateToStr(StrToDateU(AText));
|
||
except
|
||
end;
|
||
end;}
|
||
end;
|
||
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.SetCalcPrice;
|
||
var
|
||
CurrRecNo: Integer;
|
||
PriceWithNDS: Double; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
function GetPriceFromStr(StrPrice: string): Double;
|
||
var
|
||
Str: string;
|
||
Len: Integer;
|
||
i: Integer;
|
||
begin
|
||
Result := 0;
|
||
Str := StrPrice;
|
||
Len := Length(StrPrice);
|
||
for i := 1 to Len do
|
||
if StrPrice[i] = ' ' then
|
||
begin
|
||
SetLength(Str, i);
|
||
Break;
|
||
end;
|
||
Result := Round3(StrToFloatU(Str));
|
||
end;
|
||
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_ComplectsEd.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
with TF_Main(GForm).DM.MemTable_ComplectsEd do
|
||
begin
|
||
CurrRecNo := RecNo;
|
||
PriceWithNDS := 0;
|
||
First;
|
||
while not Eof do
|
||
begin
|
||
PriceWithNDS := PriceWithNDS +
|
||
GetPriceFromStr(FieldByName('Cost1').AsString);
|
||
TF_Main(GForm).DM.MemTable_ComplectsEd.Next;
|
||
end;
|
||
RecNo := CurrRecNo;
|
||
end;
|
||
end;
|
||
|
||
//case RadioGroup_HasNds.ItemIndex of
|
||
// // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
// 0 : CurrencyEdit_Price1.Value := RoundX(PriceWithNDS, 2);
|
||
// // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
// 1 : CurrencyEdit_Price1.Value := RoundX(
|
||
// PriceWithoutNDS(PriceWithNDS, GNDS), 2);
|
||
//end;
|
||
|
||
case CheckBox_HasNds.Checked of
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
true: CurrencyEdit_Price1.Value := Round3(PriceWithNDS);
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
false: CurrencyEdit_Price1.Value := Round3(PriceWithoutNDS(PriceWithNDS, TF_Main(GForm).GNDS));
|
||
end;
|
||
//CurrencyEdit_Price2.Value := Round3(CurrencyEdit_Price1.Value * (TF_Main(GForm).GLocalCurrencyM.Data.Ratio / TF_Main(GForm).GLocalCurrencyS.Data.Ratio));
|
||
CurrencyEdit_Price2.Value := Round3(GetPriceAfterChangeCurrency(CurrencyEdit_Price1.Value,
|
||
TF_Main(GForm).GLocalCurrencyM.Data, TF_Main(GForm).GLocalCurrencyS.Data));
|
||
|
||
//ShowNDSPrice;
|
||
end;
|
||
|
||
procedure TF_AddComponent.RefreshFields(ATarget: TkbmMemTable;
|
||
ASTableName, ATargetKeyName, ASourceKeyName: string; AFieldsNames: TStringList);
|
||
var
|
||
TRecNo: Integer;
|
||
FNamesCount: Integer;
|
||
i: Integer;
|
||
begin
|
||
try
|
||
if ATarget.Active = false then
|
||
Exit; //// EXIT ////
|
||
|
||
if TF_Main(GForm).FNormBase = GForm then
|
||
begin
|
||
FNamesCount := AFieldsNames.Count;
|
||
if ATarget.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
TRecNo := ATarget.RecNo;
|
||
try
|
||
ATarget.First;
|
||
while not ATarget.Eof do
|
||
begin
|
||
SetSQLToQuery(F_NormBase.DM.scsQ, ' SELECT * FROM ' + ASTableName +
|
||
' WHERE ' + ASourceKeyName + ' = ' + IntToStr(ATarget.FieldByName(ATargetKeyName).AsInteger));
|
||
ATarget.Edit;
|
||
for i := 0 to FNamesCount - 1 do
|
||
ATarget.FieldByName(AFieldsNames.Strings[i]).Value := F_NormBase.DM.scsQ.GetFNAsVariant(AFieldsNames.Strings[i]);
|
||
ATarget.Post;
|
||
|
||
ATarget.Next;
|
||
end;
|
||
finally
|
||
ATarget.RecNo := TRecNo;
|
||
if ATarget.RecNo <> TRecNo then
|
||
ATarget.RecNo := TRecNo;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.RefreshFields: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GridEnter(Sender: TObject);
|
||
begin
|
||
//Act_Del.ShortCut := ShortCut(VK_DELETE, []);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GridExit(Sender: TObject);
|
||
begin
|
||
//Act_Del.ShortCut := ShortCut(VK_NONAME, []);
|
||
end;
|
||
|
||
procedure TF_AddComponent.FormHide(Sender: TObject);
|
||
begin
|
||
// ##### <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>s<EFBFBD><73><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
//Position := poMainFormCenter;
|
||
end;
|
||
|
||
constructor TF_AddComponent.Create(AOwner: TComponent; AForm: TForm);
|
||
begin
|
||
//inherited;
|
||
GForm := AForm;
|
||
inherited Create(AOwner);
|
||
end;
|
||
|
||
function TF_AddComponent.GetMainformName: string;
|
||
begin
|
||
case TF_Main(GForm).GDBMode of
|
||
bkNormBase: Result := cAddComponent_Msg11_1;
|
||
bkProjectManager: Result := cAddComponent_Msg11_2;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceGenderGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg12_1;
|
||
|
||
if AText = '1' then
|
||
AText := cAddComponent_Msg12_2;
|
||
end;
|
||
|
||
procedure TF_AddComponent.EnableControl(AEnable: Boolean);
|
||
begin
|
||
{GroupBox_MainData.Enabled := AEnable;
|
||
GroupBox_NetType.Enabled := AEnable;
|
||
GroupBox_Price.Enabled := AEnable;
|
||
RadioGroup_CanComplect.Enabled := AEnable;
|
||
ColorEdit.Enabled := AEnable;
|
||
Label_CanComplect.Enabled := AEnable;}
|
||
|
||
{Panel_MainData.Enabled := AEnable;
|
||
ToolBar_OtherData.Enabled := AEnable;
|
||
Label_Default.Visible := AEnable;}
|
||
|
||
//Label_ArticulDistributor.Enabled := AEnable;
|
||
//Edit_ArticulDistributor.Enabled := AEnable;
|
||
//Label_ArticulProducer.Enabled := AEnable;
|
||
//Edit_ArticulProducer.Enabled := AEnable;
|
||
|
||
//Label_ComponentType.Enabled := AEnable;
|
||
ComboBox_ComponentType.Enabled := AEnable;
|
||
Button_TypeComponent.Enabled := AEnable;
|
||
|
||
//Label_Producer.Enabled := AEnable;
|
||
//ComboBox_Producer.Enabled := AEnable;
|
||
|
||
//Label_NetType.Enabled := AEnable;
|
||
//ComboBox_NetType.Enabled := AEnable;
|
||
//Button_ChangeNetType.Enabled := AEnable;
|
||
|
||
//Button_OpenCompIcons.Enabled := AEnable;
|
||
|
||
//RadioGroup_CanComplect.Enabled := AEnable;
|
||
cbCanComplect.Enabled := AEnable;
|
||
|
||
//Act_EditProperty.Enabled := AEnable;
|
||
//Act_DelProperty.Enabled := AEnable;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetVisibleByIsLine(AIsLineType: Integer);
|
||
var
|
||
ShowUserLength: Boolean;
|
||
begin
|
||
ShowUserLength := false;
|
||
if AIsLineType = biTrue then
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
ShowUserLength := true;
|
||
Label_UserLength.Visible := ShowUserLength;
|
||
SpinEdit_UserLength.Visible := ShowUserLength;
|
||
|
||
{//14.05.2009
|
||
case AIsLineType of
|
||
biFalse:
|
||
begin
|
||
//Label_ObjectIconStep.Visible := false;
|
||
//SpinEdit_ObjectIconStep.Visible := false;
|
||
|
||
GL_PORT.Visible := true;
|
||
end;
|
||
biTrue:
|
||
begin
|
||
//Label_ObjectIconStep.Visible := true;
|
||
//SpinEdit_ObjectIconStep.Visible := true;
|
||
|
||
GL_PORT.Visible := false;
|
||
end;
|
||
end;}
|
||
|
||
GL_PORT.Visible := (GUseVisibleInterfaces) and (AIsLineType = biFalse);
|
||
end;
|
||
|
||
procedure TF_AddComponent.VisibleInterfaceColumns(AVisible: Boolean);
|
||
begin
|
||
//GT_INTERFACEMultiple.Visible := AVisible;
|
||
//GT_InterfaceValueI.Visible := AVisible;
|
||
GT_InterfaceNumPairsStr.Visible := AVisible;
|
||
//GT_InterfaceColor.Visible := AVisible;
|
||
GT_InterfaceSide.Visible := AVisible;
|
||
GT_NORMSExpenseForLength.Visible := AVisible;
|
||
GT_NORMSCountForPoint.Visible := AVisible;
|
||
GT_NORMSStepOfPoint.Visible := AVisible;
|
||
GT_NORMSTotalKolvo.Visible := AVisible;
|
||
end;
|
||
|
||
function TF_AddComponent.GetPropertyBySysName(ASysyName: string): string;
|
||
var
|
||
RecNo: Integer;
|
||
i: Integer;
|
||
begin
|
||
Result := '';
|
||
// Tolik 28/12/2019 --
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.RecordCount = 0 then
|
||
exit;
|
||
//
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
RecNo := MemTable_PropertyEd.RecNo;
|
||
MemTable_PropertyEd.DisableControls;
|
||
try
|
||
for i := 0 to MemTable_PropertyEd.RecordCount - 1 do
|
||
begin
|
||
MemTable_PropertyEd.RecNo := i + 1;
|
||
if MemTable_PropertyEd.FieldByName(fnSysName).AsString = ASysyName then
|
||
begin
|
||
Result := MemTable_PropertyEd.FieldByName(fnPValue).AsString;
|
||
Break; ///// BREAK /////
|
||
end;
|
||
end;
|
||
finally
|
||
MemTable_PropertyEd.RecNo := RecNo;
|
||
MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetPropertyBySysNameAsFloat(ASysyName: string): Double;
|
||
var
|
||
StrRes: string;
|
||
begin
|
||
Result := 0;
|
||
StrRes := GetPropertyBySysName(ASysyName);
|
||
if StrRes <> '' then
|
||
Result := StrToFloatU(StrRes);
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
function TF_AddComponent.isBusyInterface: Boolean;
|
||
begin
|
||
result := false;
|
||
with TF_Main(GForm).DM.MemTable_InterfOfInterf_RelEd do
|
||
begin
|
||
First;
|
||
while not Eof do
|
||
begin
|
||
if FieldByName('isBusy').AsBoolean = true then
|
||
begin
|
||
Result := true;
|
||
First;
|
||
Break;
|
||
end;
|
||
Next;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetPropertyValueBySysName(ASysyName, AValue: string);
|
||
var
|
||
RecNo: Integer;
|
||
i: Integer;
|
||
begin
|
||
// Tolik 28/12/2019 --
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.RecordCount = 0 then
|
||
exit;
|
||
//
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
RecNo := MemTable_PropertyEd.RecNo;
|
||
MemTable_PropertyEd.DisableControls;
|
||
try
|
||
for i := 0 to MemTable_PropertyEd.RecordCount - 1 do
|
||
begin
|
||
MemTable_PropertyEd.RecNo := i + 1;
|
||
if MemTable_PropertyEd.FieldByName(fnSysName).AsString = ASysyName then
|
||
begin
|
||
MemTable_PropertyEd.Edit;
|
||
MemTable_PropertyEd.FieldByName(fnPValue).AsString := AValue;
|
||
MemTable_PropertyEd.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTable_PropertyEd.Post;
|
||
Break; ///// BREAK /////
|
||
end;
|
||
end;
|
||
finally
|
||
MemTable_PropertyEd.RecNo := RecNo;
|
||
MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetPropertyValueBySysNameAsFloat(ASysyName: string; AValue: Double);
|
||
begin
|
||
SetPropertyValueBySysName(ASysyName, FloatToStrU(AValue));
|
||
end;
|
||
|
||
//Procedure AddPropertyToNBCompon(aProp: PProperty); // Tolik 05/03/2021 --
|
||
Procedure TF_AddComponent.AddPropertyToNBCompon(aProp: TNBProperty; aValue: string); // Tolik 05/03/2021 --
|
||
var FieldsNames: TStringList;
|
||
Prop: TProperty;
|
||
begin
|
||
//if TF_Main(GForm).GDBMode = bkNormBase then
|
||
ZeroMemory(@Prop, sizeof(TProperty));
|
||
begin
|
||
if F_NormBase.GSCSBase.SCSComponent <> nil then
|
||
begin
|
||
F_NormBase.DM.MemTable_PropertyEd.DisableControls;
|
||
|
||
Prop.Guid := aProp.PropertyData.GUID;
|
||
Prop.IDMaster := F_NormBase.GSCSBase.SCSComponent.ID;
|
||
Prop.ID_Property := aProp.PropertyData.ID;
|
||
Prop.IDDataType := aProp.PropertyData.IDDataType;
|
||
Prop.SysName := aProp.PropertyData.SysName;
|
||
Prop.Value := aValue;
|
||
Prop.Name_ := aProp.PropertyData.Name;
|
||
Prop.IsForWholeComponent := 1;
|
||
Prop.IsNew := True;
|
||
F_NormBase.DM.MemTable_PropertyEd.Append;
|
||
Prop.ID := GenNewID(tkCompPropRelED);
|
||
if F_NormBase.DM.MemTable_PropertyEd.State <> dsBrowse then
|
||
begin
|
||
F_NormBase.DM.SetPropertyToTable(F_NormBase.DM.DataSource_MT_PropertyEd, Prop);
|
||
F_NormBase.DM.MemTable_PropertyEd.Post;
|
||
end;
|
||
|
||
{F_NormBase.DM.MemTable_PropertyEd.Edit;
|
||
F_NormBase.DM.MemTable_PropertyEd.Last;
|
||
F_NormBase.DM.MemTable_PropertyEd.Append;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDMaster).AsInteger := F_NormBase.GSCSBase.SCSComponent.ID;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnGuidProperty).AsString := aProp.PropertyData.GUID;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDProperty).AsInteger := aProp.PropertyData.ID;
|
||
//F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnTakeIntoConnect).AsInteger := aProp.PropertyData.
|
||
//F_NormBase.DM.MemTable_PropertyEdd.FieldByName(fnTakeIntoJoin, ftInteger);
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDDataType).asinteger := aProp.PropertyData.IDDataType;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnName).AsString := aProp.PropertyData.Name;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnSysName).AsString := aProp.PropertyData.SysName;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnPValue).AsString := aValue;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIzm).AsString := aProp.PropertyData.Izm;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnDescription).AsString := aProp.PropertyData.Description;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisStandart).AsInteger := aProp.PropertyData.IsStandart;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsTakeJoinForPoints).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsCrossControl).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnGuidCrossProperty).AsString := '';
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDCrossProperty).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsForWholeComponent).AsInteger := 1;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsDefault).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisModified).AsBoolean := False;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisNew).AsBoolean := False;
|
||
{F_NormBase.DM.MemTable_PropertyEd.DisableControls;
|
||
F_NormBase.DM.MemTable_PropertyEd.Edit;
|
||
F_NormBase.DM.MemTable_PropertyEd.Last;
|
||
F_NormBase.DM.MemTable_PropertyEd.Append;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDMaster).AsInteger := F_NormBase.GSCSBase.SCSComponent.ID;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnGuidProperty).AsString := aProp.PropertyData.GUID;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDProperty).AsInteger := aProp.PropertyData.ID;
|
||
//F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnTakeIntoConnect).AsInteger := aProp.PropertyData.
|
||
//F_NormBase.DM.MemTable_PropertyEdd.FieldByName(fnTakeIntoJoin, ftInteger);
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDDataType).asinteger := aProp.PropertyData.IDDataType;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnName).AsString := aProp.PropertyData.Name;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnSysName).AsString := aProp.PropertyData.SysName;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnPValue).AsString := aValue;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIzm).AsString := aProp.PropertyData.Izm;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnDescription).AsString := aProp.PropertyData.Description;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisStandart).AsInteger := aProp.PropertyData.IsStandart;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsTakeJoinForPoints).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsCrossControl).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnGuidCrossProperty).AsString := '';
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIDCrossProperty).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsForWholeComponent).AsInteger := 1;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnIsDefault).AsInteger := 0;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisModified).AsBoolean := False;
|
||
F_NormBase.DM.MemTable_PropertyEd.FieldByName(fnisNew).AsBoolean := False;
|
||
F_NormBase.DM.MemTable_PropertyEd.Post;
|
||
F_NormBase.DM.MemTable_PropertyEd.Refresh;
|
||
}
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add(fnName);
|
||
FieldsNames.Add(fnSysName);
|
||
FieldsNames.Add(fnName);
|
||
FieldsNames.Add(fnIzm);
|
||
FieldsNames.Add(fnDescription);
|
||
FieldsNames.Add(fnIDDataType);
|
||
RefreshFields(F_NormBase.DM.MemTable_PropertyEd, tnProperties, fnIDProperty, fnID, FieldsNames);
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
F_NormBase.DM.MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SdvigNppPortAfterDel(ADelNPPPort: Integer);
|
||
var
|
||
RecNo: Integer;
|
||
MemTable_PortED: TkbmMemTable;
|
||
CurrNppPort: Integer;
|
||
begin
|
||
try
|
||
MemTable_PortED := nil;
|
||
RecNo := -1;
|
||
if TF_Main(GForm).GDBMode <> bkProjectManager then
|
||
Exit; //// EXIT ////
|
||
|
||
MemTable_PortED := TF_Main(GForm).DM.MemTable_PortEd;
|
||
if MemTable_PortED <> nil then
|
||
begin
|
||
RecNo := MemTable_PortED.RecNo;
|
||
MemTable_PortED.DisableControls;
|
||
//GT_PORT.BeginUpdate;
|
||
if MemTable_PortED.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
try
|
||
MemTable_PortED.First;
|
||
while not MemTable_PortED.Eof do
|
||
begin
|
||
CurrNppPort := MemTable_PortED.FieldByName('Npp_Port').AsInteger;
|
||
if MemTable_PortED.FieldByName('isUser_Port').AsInteger = biFalse then
|
||
//if MemTable_PortED.FieldByName('isNew').AsBoolean = True then
|
||
if CurrNppPort > ADelNPPPort then
|
||
begin
|
||
MemTable_PortED.Edit;
|
||
MemTable_PortED.FieldByName('Npp_Port').AsInteger := CurrNppPort - 1;
|
||
MemTable_PortED.Post;
|
||
end;
|
||
MemTable_PortED.Next;
|
||
end;
|
||
finally
|
||
MemTable_PortED.RecNo := RecNo;
|
||
MemTable_PortED.EnableControls;
|
||
//GT_PORT.EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.SdvigNppPortAfterDel: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.AddInterfacePort(AIsPort: Integer);
|
||
var
|
||
MemTable_InterfOrPort: TkbmMemTable;
|
||
FieldsNames: TStringList;
|
||
//i: Integer;
|
||
meInterfaceRel: TmeInterfaceRel;
|
||
ComponentType: TComponentType;
|
||
begin
|
||
try
|
||
FieldsNames := nil;
|
||
MemTable_InterfOrPort := nil;
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit; //// EXIT ////
|
||
|
||
ZeroMemory(@meInterfaceRel, SizeOf(TmeInterfaceRel));
|
||
case AIsPort of
|
||
biTrue:
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_PortEd;
|
||
biFalse:
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
end;
|
||
|
||
if MemTable_InterfOrPort <> nil then
|
||
begin
|
||
//if ComboBox_ComponentType.Text <> '' then
|
||
// ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType))
|
||
//else
|
||
// ComponentType.IsLine := biFalse;
|
||
ComponentType := GetComponentType;
|
||
|
||
meInterfaceRel.ID := GGenLastInterfID + 1;
|
||
meInterfaceRel.ID_COMPONENT := GIDComponent;
|
||
meInterfaceRel.IsLineCompon := ComponentType.IsLine;
|
||
meInterfaceRel.IsPort := AIsPort;
|
||
//if meInterfaceRel.IsPort = biTrue then
|
||
begin
|
||
meInterfaceRel.mtInterfaces := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
meInterfaceRel.mtPorts := TF_Main(GForm).DM.MemTable_PortEd;
|
||
meInterfaceRel.mtPortInterfRel := TF_Main(GForm).DM.MemTable_PortInterfRelEd;
|
||
meInterfaceRel.ServiceShowApplyForAllNoRelPorts := true;
|
||
end;
|
||
meInterfaceRel.mtInterfInternalConnect := TF_Main(GForm).DM.mtInterfInternalConnEd;
|
||
F_NormBase.F_CaseForm.GUseMemTable := MemTable_InterfOrPort; //TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
if TF_Main(GForm).CreateFAddInterface.GetInterfRel(meInterfaceRel, fmMake) then
|
||
begin
|
||
meInterfaceRel.NAME := TF_Main(GForm).F_AddInterface.ComboBox_Name.Text;
|
||
AddInterfaceToMT(meInterfaceRel);
|
||
if meInterfaceRel.ServiceApplyForAllNoRelPorts then
|
||
DefineAllPortInterfRelNames;
|
||
end;
|
||
F_NormBase.F_CaseForm.GUseMemTable := nil;
|
||
|
||
if (AIsPort = biTrue) and (not meInterfaceRel.ServiceApplyForAllNoRelPorts) then
|
||
DefineCurrPortInterfRelNames(true);
|
||
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.DisableControls;
|
||
TF_Main(GForm).DM.MemTable_PortEd.DisableControls;
|
||
try
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_PortEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
finally
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.EnableControls;
|
||
TF_Main(GForm).DM.MemTable_PortEd.EnableControls;
|
||
end;
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.AddInterfacePort: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.EditInterfacePort(AIsPort: Integer);
|
||
var
|
||
MemTable_InterfOrPort: TkbmMemTable;
|
||
DataSource_InterfOrPort: TDataSource;
|
||
|
||
FieldsNames: TStringList;
|
||
meInterfaceRel: TmeInterfaceRel;
|
||
EditId: Integer;
|
||
//ID_Adverse: Integer;
|
||
NumPair: Integer;
|
||
RecNo: Integer;
|
||
//BookmarkStr: String;
|
||
BookmarkStr: TBookMark;
|
||
ComponentType: TComponentType;
|
||
ReadOnlyMode: Boolean;
|
||
begin
|
||
try
|
||
FieldsNames := nil;
|
||
MemTable_InterfOrPort := nil;
|
||
DataSource_InterfOrPort := nil;
|
||
|
||
case AIsPort of
|
||
biTrue:
|
||
begin
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_PortEd;
|
||
DataSource_InterfOrPort := TF_Main(GForm).DM.DataSource_MT_PortEd;
|
||
end;
|
||
biFalse:
|
||
begin
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
DataSource_InterfOrPort := TF_Main(GForm).DM.DataSource_MT_INTERFACERelEd;
|
||
end;
|
||
end;
|
||
|
||
if (MemTable_InterfOrPort <> nil) and (DataSource_InterfOrPort <> nil) then
|
||
begin
|
||
EditID := MemTable_InterfOrPort.FieldByName('ID').AsInteger;
|
||
NumPair := 0;
|
||
if AIsPort = biFalse then
|
||
NumPair := MemTable_InterfOrPort.FieldByName('Num_Pair').AsInteger;
|
||
RecNo := -1;
|
||
//BookmarkStr := '';
|
||
BookmarkStr := nil;
|
||
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit; ///// EXIT /////
|
||
|
||
ReadOnlyMode := false;
|
||
if MemTable_InterfOrPort.FieldByName('isNew').AsBoolean = false then
|
||
if IsUseInterfRelInMemTable(GForm, MemTable_InterfOrPort, meEdit, false) then
|
||
ReadOnlyMode := true; //Exit; ///// EXIT /////
|
||
if MemTable_InterfOrPort.FieldByName('isBusy').AsInteger = biTrue then
|
||
begin
|
||
//MessageModal('<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>', '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', MB_ICONINFORMATION or MB_OK);
|
||
ReadOnlyMode := true; //Exit; ///// EXIT /////
|
||
end;
|
||
//*** <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AIsPort = biFalse then
|
||
if IsUseInterfRelInPortInterfRels(TF_Main(GForm).DM.MemTable_InterfaceRelEd, TF_Main(GForm).DM.MemTable_PortInterfRelEd, meEdit, false) then
|
||
ReadOnlyMode := true; //Exit; ///// EXIT /////
|
||
|
||
if ReadOnlyMode then
|
||
MessageModal(CReadOnlyInterface, ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
|
||
//if ComboBox_ComponentType.Text <> '' then
|
||
// ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType))
|
||
//else
|
||
// ComponentType.IsLine := biFalse;
|
||
ComponentType := GetComponentType;
|
||
|
||
meInterfaceRel := TF_Main(GForm).DM.GetInterfaceRel(DataSource_InterfOrPort, nil);
|
||
meInterfaceRel.IsPort := AIsPort;
|
||
meInterfaceRel.IsLineCompon := ComponentType.IsLine;
|
||
if meInterfaceRel.IsPort = biTrue then
|
||
begin
|
||
meInterfaceRel.mtPorts := TF_Main(GForm).DM.MemTable_PortEd;
|
||
meInterfaceRel.mtPortInterfRel := TF_Main(GForm).DM.MemTable_PortInterfRelEd;
|
||
meInterfaceRel.ServiceShowApplyForAllNoRelPorts := true;
|
||
end;
|
||
meInterfaceRel.mtInterfaces := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
meInterfaceRel.mtInterfInternalConnect := TF_Main(GForm).DM.mtInterfInternalConnEd;
|
||
F_NormBase.F_CaseForm.GUseMemTable := MemTable_InterfOrPort;
|
||
if TF_Main(GForm).CreateFAddInterface.GetInterfRel(meInterfaceRel, fmEdit, ReadOnlyMode) then
|
||
begin
|
||
meInterfaceRel.ID_COMPONENT := GIDComponent; //TF_Main(GForm).GSCSBase.SCSComponent.ID;
|
||
RecNo := MemTable_InterfOrPort.RecNo;
|
||
//BookmarkStr := MemTable_InterfOrPort.Bookmark;
|
||
BookmarkStr := MemTable_InterfOrPort.GetBookmark;
|
||
with MemTable_InterfOrPort do
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := meInterfaceRel.Name;
|
||
FieldByName('TypeI').AsInteger := meInterfaceRel.Typei;
|
||
FieldByName('Kind').AsInteger := meInterfaceRel.Kind;
|
||
FieldByName('Gender').AsInteger := meInterfaceRel.Gender;
|
||
FieldByName('Multiple').AsInteger := meInterfaceRel.Multiple;
|
||
FieldByName('ID_Interface').AsInteger := meInterfaceRel.ID_INTERFACE;
|
||
FieldByName(fnGuidInterface).AsString := meInterfaceRel.GUIDInterface;
|
||
FieldByName(fnNpp).AsInteger := meInterfaceRel.Npp;
|
||
if AIsPort = biFalse then
|
||
begin
|
||
FieldByName('ValueI').AsFloat := meInterfaceRel.ValueI;
|
||
if meInterfaceRel.ID_Adverse = 0 then
|
||
FieldByName(fnSide).AsInteger := meInterfaceRel.Side;
|
||
end
|
||
else
|
||
begin
|
||
FieldByName(fnNppPort).AsInteger := meInterfaceRel.NppPort;
|
||
FieldByName(fnIsUserPort).AsInteger := meInterfaceRel.IsUserPort;
|
||
end;
|
||
FieldByName('Color').AsFloat := meInterfaceRel.Color;
|
||
FieldByName(fnNotice).AsString := meInterfaceRel.Notice;
|
||
FieldByName(fnKolvo).AsInteger := meInterfaceRel.Kolvo;
|
||
FieldByName(fnSignType).AsInteger := meInterfaceRel.SignType;
|
||
FieldByName(fnConnToAnyGender).AsInteger := meInterfaceRel.ConnToAnyGender;
|
||
FieldByName(fnSideSection).AsString := meInterfaceRel.SideSection;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
|
||
if meInterfaceRel.ID_Adverse <> 0 then
|
||
if ComponentType.IsLine = biTrue then
|
||
if SearchRecordMT(MemTable_InterfOrPort, 'id', meInterfaceRel.ID_Adverse) then
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := meInterfaceRel.Name;
|
||
FieldByName('TypeI').AsInteger := meInterfaceRel.Typei;
|
||
FieldByName('Kind').AsInteger := meInterfaceRel.Kind;
|
||
FieldByName('Gender').AsInteger := meInterfaceRel.Gender;
|
||
FieldByName('Multiple').AsInteger := meInterfaceRel.Multiple;
|
||
FieldByName('ID_Interface').AsInteger := meInterfaceRel.ID_INTERFACE;
|
||
FieldByName(fnGuidInterface).AsString := meInterfaceRel.GUIDInterface;
|
||
FieldByName(fnNpp).AsInteger := meInterfaceRel.Npp;
|
||
FieldByName('ValueI').AsFloat := meInterfaceRel.ValueI;
|
||
if AIsPort = biFalse then
|
||
if meInterfaceRel.ID_Adverse = 0 then
|
||
FieldByName(fnSide).AsInteger := meInterfaceRel.Side;
|
||
FieldByName('Color').AsFloat := meInterfaceRel.Color;
|
||
FieldByName(fnNotice).AsString := meInterfaceRel.Notice;
|
||
FieldByName(fnKolvo).AsInteger := meInterfaceRel.Kolvo;
|
||
FieldByName(fnSignType).AsInteger := meInterfaceRel.SignType;
|
||
FieldByName(fnConnToAnyGender).AsInteger := meInterfaceRel.ConnToAnyGender;
|
||
FieldByName(fnSideSection).AsString := meInterfaceRel.SideSection;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
//SearchRecordMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'id', meInterfaceRel.ID);
|
||
end;
|
||
GChangedInterface := true;
|
||
end;
|
||
|
||
//if AIsPort = biTrue then ##ISPORT
|
||
//GDeletedPortInterfRels.AddStrings(TF_Main(GForm).F_AddInterface.GDeletedPortInterfRels);
|
||
GDeletedPortInterfRels.Assign(TF_Main(GForm).F_AddInterface.GDeletedPortInterfRelIDs, laOR);
|
||
|
||
if meInterfaceRel.ServiceApplyForAllNoRelPorts then
|
||
DefineAllPortInterfRelNames;
|
||
|
||
if meInterfaceRel.TYPEI = itFunctional then
|
||
ShowMessageAboutCheckCableCanalElemnts(Edit_Name.Text, TF_MAIN(GForm).DM.MemTable_CableCanalConnectorsEd.RecordCount);
|
||
end;
|
||
F_NormBase.F_CaseForm.GUseMemTable := nil;
|
||
|
||
if (AIsPort = biTrue) and (meInterfaceRel.ServiceApplyForAllNoRelPorts = false) then
|
||
DefineCurrPortInterfRelNames(true);
|
||
|
||
{TF_Main(GForm).F_AddInterface.GFormMode := fmEdit;
|
||
TF_Main(GForm).F_AddInterface.GID_Interface := TF_Main(GForm).DM.MemTable_Interface.FieldByName('ID_Interface').AsInteger;
|
||
TF_Main(GForm).F_AddInterface.GKolvo := TF_Main(GForm).DM.MemTable_Interface.FieldByName('Kolvo').AsInteger;
|
||
TF_Main(GForm).F_AddInterface.GTypeInterface := TF_Main(GForm).DM.MemTable_Interface.FieldByName('TypeI').AsInteger;
|
||
|
||
with TF_Main(GForm).DM.MemTable_Interface do
|
||
begin
|
||
if TF_Main(GForm).F_AddInterface.ShowModal = mrOK then
|
||
begin
|
||
Edit;
|
||
FieldByName('Name').AsString := TF_Main(GForm).F_AddInterface.ComboBox_Name.Text;
|
||
FieldByName('TypeI').AsInteger := TF_Main(GForm).F_AddInterface.ComboBox_Type_I.ItemIndex;
|
||
FieldByName('Gender').AsInteger := 1 - TF_Main(GForm).F_AddInterface.RadioGroup_Gender.ItemIndex;
|
||
FieldByName('ID_Interface').AsInteger := TF_Main(GForm).F_AddInterface.GID_INTERFACE;
|
||
FieldByName('Kolvo').AsInteger := TF_Main(GForm).F_AddInterface.SpinEdit_Kolvo.Value;
|
||
FieldByName('isModified').AsBoolean := true;
|
||
Post;
|
||
end;
|
||
|
||
GChangedInterface := true;
|
||
end; }
|
||
//GT_Interface.DataController.DataSource := TF_Main(GForm).DM.DataSource_MT_INTERFACE;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add('Name');
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.DisableControls;
|
||
TF_Main(GForm).DM.MemTable_PortEd.DisableControls;
|
||
try
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_PortEd, 'INTERFACE', 'ID_Interface', 'ID', FieldsNames);
|
||
finally
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.EnableControls;
|
||
TF_Main(GForm).DM.MemTable_PortEd.EnableControls;
|
||
end;
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
//if RecNo <> -1 then
|
||
//begin
|
||
// MemTable_InterfOrPort.First;
|
||
// MemTable_InterfOrPort.RecNo := RecNo;
|
||
//end;
|
||
{if BookmarkStr <> '' then
|
||
MemTable_InterfOrPort.Bookmark := BookmarkStr;}
|
||
if BookmarkStr <>nil then
|
||
begin
|
||
MemTable_InterfOrPort.GotoBookmark(BookmarkStr);
|
||
MemTable_InterfOrPort.FreeBookmark(BookmarkStr);
|
||
end;
|
||
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.Act_EditInterfaceExecute: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelAllInterfacesPorts(AIsPort: Boolean);
|
||
var
|
||
MemTable: TkbmMemTable;
|
||
strQuast: String;
|
||
begin
|
||
try
|
||
MemTable := nil;
|
||
strQuast := '';
|
||
if AIsPort then
|
||
begin
|
||
MemTable := TF_Main(GForm).DM.MemTable_PortEd;
|
||
strQuast := cAddComponent_Msg19_1;
|
||
end
|
||
else
|
||
begin
|
||
MemTable := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
strQuast := cAddComponent_Msg19_2;
|
||
end;
|
||
|
||
if MessageModal(strQuast, ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
ClearPortInterfaceMemTable(MemTable, AIsPort);
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DelAllInterfacesPorts', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelAllProperties;
|
||
begin
|
||
try
|
||
if MessageModal(cAddComponent_Msg19_3, ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.MemTable_PropertyEd, nil, GDeletedPropRel, nil);
|
||
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Active := true;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DelAllProperties', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelAllCableCanalConnectors;
|
||
begin
|
||
try
|
||
if MessageModal(cAddComponent_Msg19_4, ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd, nil, GDeletedCableCanalConnectors, nil);
|
||
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := true;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DelAllCableCanalConnectors', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelAllCrossConnections;
|
||
begin
|
||
try
|
||
if MessageModal(cAddComponent_Msg19_5, ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.mtCrossConnectionEd, nil, GDeletedCrossConnections, nil);
|
||
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := false;
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := true;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DelAllCrossConnections', E.Message);
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> #####
|
||
procedure TF_AddComponent.DelInterfacePort(AIsPort: Integer);
|
||
var
|
||
MemTable_InterfOrPort: TkbmMemTable;
|
||
SubstanceName: string;
|
||
//DeletedInterfOrPort: TIntList;
|
||
|
||
InterfName: string;
|
||
InterfType: Integer;
|
||
DelID: Integer;
|
||
ID_Adverse: Integer;
|
||
NumPair: Integer;
|
||
NppPort: Integer;
|
||
ComponentType: TComponentType;
|
||
|
||
DeletedInterfIDs: TIntList;
|
||
InterfRelIDsForKolvo: TIntList;
|
||
InterfRelKolvosForKolvo: TIntList;
|
||
begin
|
||
try
|
||
ComponentType := GetComponentType;
|
||
MemTable_InterfOrPort := nil;
|
||
//DeletedInterfOrPort := nil;
|
||
|
||
InterfRelIDsForKolvo := nil;
|
||
InterfRelKolvosForKolvo := nil;
|
||
|
||
NppPort := -1;
|
||
case AIsPort of
|
||
biTrue:
|
||
begin
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_PortEd;
|
||
SubstanceName := cNamePort;
|
||
//DeletedInterfOrPort := GDeletedPort;
|
||
end;
|
||
biFalse:
|
||
begin
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
SubstanceName := cNameInterface;
|
||
//DeletedInterfOrPort := GDeletedInterfRel;
|
||
end;
|
||
end;
|
||
|
||
if (MemTable_InterfOrPort <> nil) {and (DeletedInterfOrPort <> nil)} then
|
||
begin
|
||
DelID := MemTable_InterfOrPort.FieldByName('ID').AsInteger;
|
||
InterfType := MemTable_InterfOrPort.FieldByName(fnTypeI).AsInteger;
|
||
|
||
NumPair := 0;
|
||
if AIsPort = biFalse then
|
||
NumPair := MemTable_InterfOrPort.FieldByName('Num_Pair').AsInteger
|
||
else
|
||
NppPort := MemTable_InterfOrPort.FieldByName('Npp_Port').AsInteger;
|
||
if (GFormMode = fmView) or (GFormMode = fmDisabled) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if MemTable_InterfOrPort.FieldByName('isNew').AsBoolean = false then
|
||
if IsUseInterfRelInMemTable(GForm, MemTable_InterfOrPort, meDel, true) then
|
||
Exit; ///// EXIT /////
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AIsPort = biFalse then
|
||
if IsUseInterfRelInPortInterfRels(TF_Main(GForm).DM.MemTable_InterfaceRelEd, TF_Main(GForm).DM.MemTable_PortInterfRelEd, meDel, true) then
|
||
Exit; ///// EXIT /////
|
||
|
||
if MemTable_InterfOrPort.FieldByName('isBusy').AsInteger = biTrue then
|
||
begin
|
||
MessageModal(SubstanceName + ' ' + cBusy, cDeleting + ' ' + SubstanceName + cSufixA, MB_ICONINFORMATION or MB_OK);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
InterfName := MemTable_InterfOrPort.FieldByName('Name').AsString;
|
||
if MessageModal(cQuastDel + ' ' + SubstanceName + ' "' + InterfName + '" ?',
|
||
cDeleting + ' ' + SubstanceName + cSufixA, MB_YESNO or MB_ICONQUESTION) = mrYES then
|
||
begin
|
||
DeletedInterfIDs := TIntList.Create;
|
||
if AIsPort = biTrue then
|
||
begin
|
||
InterfRelIDsForKolvo := TIntList.Create;
|
||
InterfRelKolvosForKolvo := TIntList.Create;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
TF_Main(GForm).DM.DefineInterfRelIDsForKolvo(false, InterfRelIDsForKolvo, InterfRelKolvosForKolvo, TF_Main(GForm).DM.MemTable_PortInterfRelEd);
|
||
TF_Main(GForm).DM.DefineInterfacesKolvoByPortKolvo(0,
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd, TF_Main(GForm).DM.MemTable_InterfaceRelEd, InterfRelIDsForKolvo, InterfRelKolvosForKolvo);
|
||
end;
|
||
if AIsPort = biFalse then
|
||
begin
|
||
ID_Adverse := MemTable_InterfOrPort.FieldByName('id_Adverse').AsInteger;
|
||
NumPair := MemTable_InterfOrPort.FieldByName('Num_Pair').AsInteger;
|
||
end;
|
||
|
||
if MemTable_InterfOrPort.FieldByName(fnIsNative).AsBoolean = true then
|
||
begin
|
||
DeletedInterfIDs.Add(DelID);
|
||
if MemTable_InterfOrPort.FieldByName(fnIsNew).AsBoolean = false then
|
||
GDeletedInterfRel.Add(DelID);
|
||
end;
|
||
|
||
MemTable_InterfOrPort.Delete;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
if NppPort <> -1 then
|
||
SdvigNppPortAfterDel(NppPort);
|
||
|
||
if NumPair <> 0 then
|
||
if ComponentType.IsLine = biTrue then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_InterfOrPort.Last;
|
||
while not MemTable_InterfOrPort.Bof do
|
||
begin
|
||
if MemTable_InterfOrPort.FieldByName(fnNumPair).AsInteger = NumPair then
|
||
begin
|
||
if MemTable_InterfOrPort.FieldByName(fnIsNative).AsBoolean = true then
|
||
begin
|
||
DeletedInterfIDs.Add(MemTable_InterfOrPort.FieldByName(fnID).AsInteger);
|
||
if MemTable_InterfOrPort.FieldByName(fnisNew).AsBoolean = false then
|
||
GDeletedInterfRel.Add(MemTable_InterfOrPort.FieldByName(fnID).AsInteger);
|
||
end;
|
||
//else
|
||
// GGenLastInterfID := GGenLastInterfID - 1;
|
||
MemTable_InterfOrPort.Delete;
|
||
end
|
||
else
|
||
MemTable_InterfOrPort.Prior;
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
TF_Main(GForm).DM.DefineInterfaceNumPairs(MemTable_InterfOrPort, nil);
|
||
|
||
{if SearchRecordMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd, 'id', ID_Adverse) then
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedInterfRel.Add(IntToStr(ID_Adverse))
|
||
else
|
||
GGenLastInterfID := GGenLastInterfID - 1;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Delete;
|
||
end; }
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
TF_Main(GForm).DM.DeleteInterfInternalConnFromMTByInterfIDs(TF_Main(GForm).DM.mtInterfInternalConnEd, DeletedInterfIDs);
|
||
|
||
GChangedInterface := true;
|
||
EnableButtons;
|
||
|
||
if InterfType = itFunctional then
|
||
ShowMessageAboutCheckCableCanalElemnts(Edit_Name.Text, TF_MAIN(GForm).DM.MemTable_CableCanalConnectorsEd.RecordCount);
|
||
|
||
FreeAndNil(DeletedInterfIDs);
|
||
if InterfRelIDsForKolvo <> nil then
|
||
FreeAndNil(InterfRelIDsForKolvo);
|
||
if InterfRelKolvosForKolvo <> nil then
|
||
FreeAndNil(InterfRelKolvosForKolvo);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.DelInterfacePort: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelPropsBySysNames(ASysNames: TStringList);
|
||
var
|
||
//MemTableBookmark: string;
|
||
MemTableBookmark: TBookMark;
|
||
MemTable: TkbmMemTable;
|
||
i: integer;
|
||
begin
|
||
try
|
||
MemTable := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
for i := 0 to ASysNames.Count - 1 do
|
||
if MemTable.Locate(fnSysName, ASysNames[i], []) then
|
||
begin
|
||
// if MemTableBookmark = MemTable.Bookmark then
|
||
// MemTableBookmark := '';
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedPropRel.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
MemTable.Delete;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
{if MemTableBookmark <> '' then
|
||
MemTable.Bookmark := MemTableBookmark;}
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogExt(ClassName, 'DelPropsBySysNames', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineAllPortInterfRelNames;
|
||
var
|
||
PortRecNo: Integer;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if MemTable_PortEd.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
MemTable_InterfaceRelEd.DisableControls;
|
||
PortRecNo := MemTable_PortEd.RecNo;
|
||
GT_PORT.BeginUpdate;
|
||
try
|
||
MemTable_PortEd.First;
|
||
while not MemTable_PortEd.Eof do
|
||
begin
|
||
DefineCurrPortInterfRelNames(true);
|
||
MemTable_PortEd.Next;
|
||
end;
|
||
MemTable_PortEd.First;
|
||
finally
|
||
GT_PORT.EndUpdate;
|
||
MemTable_PortEd.RecNo := PortRecNo;
|
||
MemTable_InterfaceRelEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// #### <20><><EFBFBD><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> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ####
|
||
|
||
procedure TF_AddComponent.DefineCurrPortInterfRelNames(AAutoEditPost: Boolean);
|
||
var
|
||
IDInterfaces: TIntList;
|
||
CountInterfaces: TIntList;
|
||
IndexID: Integer;
|
||
CurrCount: Integer;
|
||
|
||
NewInterfRelNames: string;
|
||
IDInterface: Integer;
|
||
InterfKolvo: Integer;
|
||
i: Integer;
|
||
InterfRecNo: Integer;
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecordCount = 0 then // Tolik 28/12/2019 --
|
||
exit;
|
||
IDInterfaces := TIntList.Create;
|
||
CountInterfaces := TIntList.Create;
|
||
InterfRecNo := TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecNo;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.DisableControls;
|
||
try
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_PortInterfRelEd.First;
|
||
while not MemTable_PortInterfRelEd.Eof do
|
||
begin
|
||
IDInterface := GetIDInterfaceByIDInterfRelFromMemTable(
|
||
MemTable_PortInterfRelEd.FieldByName(fnIDInterfRel).AsInteger,
|
||
MemTable_InterfaceRelEd, @InterfKolvo);
|
||
if IDInterface > 0 then
|
||
begin
|
||
IndexID := IDInterfaces.IndexOf(IDInterface);
|
||
if IndexID = -1 then
|
||
begin
|
||
IDInterfaces.Add(IDInterface);
|
||
//CountInterfaces.Add(1);
|
||
CountInterfaces.Add(InterfKolvo);
|
||
end
|
||
else
|
||
begin
|
||
CurrCount := CountInterfaces[IndexID];
|
||
//Inc(CurrCount);
|
||
CurrCount := CurrCount + InterfKolvo;
|
||
CountInterfaces[IndexID] := CurrCount;
|
||
end;
|
||
end;
|
||
MemTable_PortInterfRelEd.Next;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
NewInterfRelNames := '';
|
||
for i := 0 to IDInterfaces.Count - 1 do
|
||
begin
|
||
if NewInterfRelNames <> '' then
|
||
NewInterfRelNames := NewInterfRelNames + '; ';
|
||
|
||
NewInterfRelNames := NewInterfRelNames + F_NormBase.GSCSBase.NBSpravochnik.GetInterfaceNameByID(IDInterfaces[i]);
|
||
if CountInterfaces[i] > 1 then
|
||
NewInterfRelNames := NewInterfRelNames + ' x' + IntToStr(CountInterfaces[i]);
|
||
end;
|
||
|
||
if NewInterfRelNames <> MemTable_PortEd.FieldByName(fnInterfRelNames).AsString then
|
||
begin
|
||
if AAutoEditPost then
|
||
MemTable_PortEd.Edit;
|
||
if MemTable_PortEd.State <> dsBrowse then
|
||
begin
|
||
MemTable_PortEd.FieldByName(fnInterfRelNames).AsString := NewInterfRelNames;
|
||
if AAutoEditPost then
|
||
MemTable_PortEd.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.RecNo := InterfRecNo;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.EnableControls;
|
||
IDInterfaces.Free;
|
||
CountInterfaces.Free;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetInterfPortMemTable: TkbmMemTable;
|
||
begin
|
||
Result := nil;
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
Result := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
liPort:
|
||
Result := TF_Main(GForm).DM.MemTable_PortEd;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.AddEditCableCanalConnector(AMakeEdit: TMakeEdit);
|
||
var
|
||
FormComponent: TSCSComponent;
|
||
NBComponent: TSCSComponent;
|
||
//InterfCount: Integer;
|
||
ConnectorType: Integer;
|
||
|
||
IDCurrConnector: Integer;
|
||
begin
|
||
FormComponent := CreateFormComponent;
|
||
if Assigned(FormComponent) then
|
||
begin
|
||
//if FormComponent.ID_Producer < 1 then
|
||
// ShowMessageByType(Self.Handle, smtDisplay, '<27><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>', Application.Title, MB_OK or MB_ICONINFORMATION)
|
||
//else
|
||
begin
|
||
IDCurrConnector := 0;
|
||
if AMakeEdit = meEdit then
|
||
IDCurrConnector := TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.FieldByName(fnIDNBConnector).AsInteger;
|
||
|
||
NBComponent := TF_Main(GForm).CreateFConnectComplWith.DefineCableCanalConnector(FormComponent, IDCurrConnector);
|
||
if Assigned(NBComponent) then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
ConnectorType := -1;
|
||
//InterfCount := NBComponent.GetInterfcesCountByTypeIsBusySide(itFunctional, biFalse, biNone);
|
||
//if InterfCount = 1 then
|
||
// ConnectorType := contCork;
|
||
//if InterfCount = 2 then
|
||
// ConnectorType := contAnglePlane;
|
||
//if InterfCount = 3 then
|
||
// ConnectorType := contTjoin;
|
||
|
||
if NBComponent.Properties.Count = 0 then
|
||
NBComponent.LoadProperties;
|
||
ConnectorType := NBComponent.GetPropertyValueAsInteger(pnCableCanalElemetType);
|
||
if ConnectorType <> -1 then
|
||
begin
|
||
if AMakeEdit = meMake then
|
||
begin
|
||
MemTable_CableCanalConnectorsEd.Append;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnID).AsInteger := GenNewID(tkCableCanalConnectorsED);
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnIsNew).AsBoolean := true;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnIsModified).AsBoolean := false;
|
||
end;
|
||
if AMakeEdit = meEdit then
|
||
begin
|
||
MemTable_CableCanalConnectorsEd.Edit;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnIsModified).AsBoolean := true;
|
||
end;
|
||
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnIDComponent).AsInteger := GIDComponent;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnIDNBConnector).AsInteger := NBComponent.ID;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnGuidNBConnector).AsString := NBComponent.GuidNB;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnConnectorType).AsInteger := ConnectorType;
|
||
MemTable_CableCanalConnectorsEd.FieldByName(fnName).AsString := NBComponent.Name;
|
||
|
||
MemTable_CableCanalConnectorsEd.Post;
|
||
|
||
FreeAndNil(NBComponent);
|
||
end;
|
||
end;
|
||
end;
|
||
FreeAndNil(FormComponent);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.AddEditCrossConnection(AMakeEdit: TMakeEdit);
|
||
var
|
||
CrossConnection: TSCSCrossConnection;
|
||
FormComponent: TSCSComponent;
|
||
MemTable: TkbmMemTable;
|
||
begin
|
||
try
|
||
MemTable := TF_Main(GForm).DM.mtCrossConnectionEd;
|
||
CrossConnection := nil;
|
||
if AMakeEdit = meMake then
|
||
CrossConnection := TSCSCrossConnection.Create(GForm) //ZeroMemory(@CrossConnection, SizeOf(TCrossConnection))
|
||
else
|
||
begin
|
||
CrossConnection := TSCSCrossConnection.Create(GForm);
|
||
TF_Main(GForm).DM.LoadCrossConnectionFromMemTable(MemTable, CrossConnection);
|
||
end;
|
||
CrossConnection.IDComponent := GIDComponent;
|
||
|
||
FormComponent := CreateFormComponent;
|
||
FormComponent.LoadChildComplectsQuick(true, true, true);
|
||
if TF_Main(GForm).CreateFMakeEditCrossConnection.Execute(AMakeEdit, FormComponent, CrossConnection) then
|
||
begin
|
||
TF_Main(GForm).DM.LoadCrossConnectionToMemTable(AMakeEdit, MemTable, CrossConnection);
|
||
end;
|
||
FreeAndNil(FormComponent);
|
||
FreeAndNil(CrossConnection);
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.AddEditCrossConnection: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.AddEditProperty(AMakeEdit: TMakeEdit);
|
||
var
|
||
OldValue: String;
|
||
PropFromMT, OldPropFromMT: TProperty;
|
||
FieldsNames: TStringList;
|
||
ComponentType: TComponentType;
|
||
ItemType: Integer;
|
||
begin
|
||
ZeroMemory(@PropFromMT, sizeof(TProperty));
|
||
ComponentType := GetComponentType;
|
||
ItemType := itNone;
|
||
ItemType := GetItemTypeByIsLine(GetIsLineByComponType(ComponentType));
|
||
|
||
with TF_Main(GForm) do
|
||
begin
|
||
if AMakeEDit = meEdit then
|
||
begin
|
||
PropFromMT := DM.GetPropertyFromTable(DM.DataSource_MT_PropertyEd);
|
||
if GDBMode = bkProjectManager then
|
||
//if not DM.CanEditProperty(DM.MemTable_PropertyEd) then
|
||
//begin
|
||
// MessageModal(cImpossibleChangeProperty + ' "' + PropFromMT.Name_ + '" ' + cBecauseItUse,
|
||
// ApplicationName, MB_ICONINFORMATION or MB_OK);
|
||
// Exit; ///// EXIT /////
|
||
//end;
|
||
if IsReadOnlyProp(ItemType, @PropFromMT) then
|
||
begin
|
||
MessageInfo(cMain_Msg182);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
end;
|
||
|
||
OldValue := PropFromMT.Value;
|
||
OldPropFromMT := PropFromMT;
|
||
if CreateFMakeEditPropRel.Execute(AMakeEdit, tkComponent, @PropFromMT, DM.MemTable_PropertyEd, ItemType, nil, FSpravochnik, TF_Main(GForm).OnCheckPropRelFormValue) then
|
||
begin
|
||
case AMakeEdit of
|
||
meMake:
|
||
begin
|
||
DM.MemTable_PropertyEd.Append;
|
||
PropFromMT.ID := GenNewID(tkCompPropRelED);
|
||
PropFromMT.IsNew := True;
|
||
end;
|
||
meEdit:
|
||
begin
|
||
DM.MemTable_PropertyEd.Edit;
|
||
PropFromMT.IsModified := True;
|
||
end;
|
||
end;
|
||
DM.MemTable_PropertyEd.DisableControls;
|
||
if DM.MemTable_PropertyEd.State <> dsBrowse then
|
||
begin
|
||
DM.SetPropertyToTable(DM.DataSource_MT_PropertyEd, PropFromMT);
|
||
DM.MemTable_PropertyEd.Post;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//if AMakeEdit = meEdit then
|
||
if DM.MemTable_PropertyEd.FieldByName(fnIDDataType).AsInteger = dtCompStateType then
|
||
begin
|
||
LoadComponIcon(GIDObjectIcon, GGUIDObjectIcon, Image_CompIcons); //RefreshCompIcons(StrToInt(F_NormBase.F_CaseForm.GValue));
|
||
LoadComponIcon(GIDSymbolImage, GGUIDSymbolImage, Image_Symbol);
|
||
end;
|
||
if OldValue <> PropFromMT.Value then
|
||
DefineNormResByProperty(@PropFromMT);
|
||
GChangedProperty := true;
|
||
|
||
if GUseLiteFunctional then
|
||
if AMakeEdit = meEdit then
|
||
Self.DefineUniversalInterfacesByProperty(@PropFromMT, ComponentType.SysName); //Self.DefineUniversalInterfacesByProperty(@PropFromMT, '');
|
||
|
||
Self.OnSetComponPropertyVal(AMakeEdit, @PropFromMT, @OldPropFromMT);
|
||
|
||
FieldsNames := TStringList.Create;
|
||
try
|
||
FieldsNames.Clear;
|
||
FieldsNames.Add(fnName);
|
||
FieldsNames.Add(fnSysName);
|
||
FieldsNames.Add(fnName);
|
||
FieldsNames.Add(fnIzm);
|
||
FieldsNames.Add(fnDescription);
|
||
FieldsNames.Add(fnIDDataType);
|
||
RefreshFields(TF_Main(GForm).DM.MemTable_PropertyEd, tnProperties, fnIDProperty, fnID, FieldsNames);
|
||
finally
|
||
FreeAndNil(FieldsNames);
|
||
DM.MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.LoadComponIcon(AIDObjectIcon: Integer; AGUIDObjectIcon: string; ATrgImage: TcxImage);
|
||
var
|
||
Stream: TMemoryStream;
|
||
IconType: Integer;
|
||
// RecNo: Integer;
|
||
begin
|
||
Stream := nil;
|
||
if not Assigned(ATrgImage) then
|
||
Exit; ///// EXIT /////
|
||
|
||
ClearcxImage(ATrgImage);
|
||
|
||
if (AIDObjectIcon < 1) and (AGUIDObjectIcon = '') then
|
||
Exit; ///// EXIT /////
|
||
try
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
IconType := GetSignType;
|
||
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
Stream := F_NormBase.DM.GetComponIconByIconType(AIDObjectIcon, IconType, ieBMP)
|
||
else
|
||
Stream := FSpravochnik.GetObjectIconByIconType(AGUIDObjectIcon, IconType, ieBMP);
|
||
if Assigned(Stream) then
|
||
begin
|
||
Stream.Position := 0;
|
||
ATrgImage.Picture.Bitmap.LoadFromStream(Stream);
|
||
FreeAndNil(Stream);
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.LoadComponIcon: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadImageFromObjectIcons(var AIDIcon: Integer; var AGUIDObjectIcon: string; AImage: TcxImage);
|
||
begin
|
||
try
|
||
//DataSetLocateByID(F_NormBase.DM.DataSet_OBJECT_ICONS, AIDIcon);
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
F_NormBase.F_CaseForm.GIDNotDel := AIDIcon;
|
||
F_NormBase.F_CaseForm.GIDToLocate := AIDIcon;
|
||
//F_NormBase.F_CaseForm.GViewKind := vkObjectIcons;
|
||
//F_NormBase.F_CaseForm.GFormMode := fmEdit;
|
||
|
||
//if F_NormBase.F_CaseForm.ShowModal = mrOK then
|
||
if F_NormBase.F_CaseForm.Execute(vkObjectIcons, fmEdit) then
|
||
begin
|
||
AIDIcon := F_NormBase.DM.DataSet_OBJECT_ICONS.FN('ID').AsInteger;
|
||
AGUIDObjectIcon := F_NormBase.DM.DataSet_OBJECT_ICONS.FN(fnGUID).AsString;
|
||
LoadComponIcon(AIDIcon, AGUIDObjectIcon, AImage);
|
||
GWasChanging := true;
|
||
end;
|
||
end
|
||
else if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkObjectIcons, AGUIDObjectIcon) then
|
||
if FProjSpravochnik.LastObjectIcon <> nil then
|
||
begin
|
||
AIDIcon := FProjSpravochnik.LastObjectIcon.ID;
|
||
AGUIDObjectIcon := FProjSpravochnik.LastObjectIcon.GUID;
|
||
LoadComponIcon(FProjSpravochnik.LastObjectIcon.ID, FProjSpravochnik.LastObjectIcon.GUID, AImage);
|
||
GWasChanging := true;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.LoadImageFromObjectIcons: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.RefreshCompIcons(AID_CompStateType: Integer);
|
||
//var NPP_ID: Integer;
|
||
begin
|
||
{with F_NormBase.DM do
|
||
if MemTable_ComponentIcons.RecordCount > 0 then
|
||
begin
|
||
NPP_ID := MemTable_ComponentIcons.FieldByName('NPP_ID_OBJECT_ICON').AsInteger;
|
||
SelectCompIconsByNPP(NPP_ID);
|
||
SearchRecordMT(MemTable_ComponentIcons, 'ID_COMP_STATE_TYPE', AID_CompStateType);
|
||
LoadComponIcon;
|
||
end; }
|
||
end;
|
||
|
||
procedure TF_AddComponent.AddInterfaceToMT(AmeInterfaceRel: TmeInterfaceRel);
|
||
var
|
||
IsPort: Integer;
|
||
MemTable_InterfOrPort: TkbmMemTable;
|
||
|
||
i: Integer;
|
||
NewIDList: TList;
|
||
NumPair: Integer;
|
||
Side: Integer;
|
||
ptrNewID: ^Integer;
|
||
ID1: Integer;
|
||
ID2: Integer;
|
||
|
||
Npp: Integer;
|
||
NppPort: Integer;
|
||
|
||
{function GetMaxNumPair: Integer;
|
||
var
|
||
CurrMaxNumPair: Integer;
|
||
begin
|
||
Result := 0;
|
||
CurrMaxNumPair := 0;
|
||
with MemTable_InterfOrPort do
|
||
begin
|
||
First;
|
||
while Not Eof do
|
||
begin
|
||
if FieldByName('num_pair').AsInteger > CurrMaxNumPair then
|
||
CurrMaxNumPair := FieldByName('num_pair').AsInteger;
|
||
Next;
|
||
end;
|
||
end;
|
||
result := CurrMaxNumPair;
|
||
end;}
|
||
|
||
function GetInterfCountByNumPair(ANumPair: Integer): Integer;
|
||
var
|
||
CurrCount: Integer;
|
||
begin
|
||
Result := 0;
|
||
CurrCount := 0;
|
||
with MemTable_InterfOrPort do
|
||
begin
|
||
First;
|
||
while not Eof do
|
||
begin
|
||
if FieldByName('num_pair').AsInteger = ANumPair then
|
||
CurrCount := CurrCount + 1;
|
||
Next;
|
||
end;
|
||
end;
|
||
Result := CurrCount;
|
||
end;
|
||
|
||
function GetNewNumPair: Integer;
|
||
var
|
||
LastNumPair: Integer;
|
||
CountInterfPair: Integer;
|
||
i: Integer;
|
||
begin
|
||
{Result := 0;
|
||
with MemTable_InterfOrPort do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
LastNumPair := GetMaxNumPair(MemTable_InterfOrPort);
|
||
if LastNumPair > 0 then
|
||
begin
|
||
for i := 0 to LastNumPair - 1 do
|
||
begin
|
||
CountInterfPair := GetInterfCountByNumPair(i+1);
|
||
if (CountInterfPair mod 2 <> 0) or (CountInterfPair = 0) then
|
||
begin
|
||
Result := i+1;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
end;
|
||
Result := LastNumPair + 1;
|
||
end
|
||
else
|
||
Result := 1;
|
||
end;}
|
||
Result := TF_Main(GForm).DM.GetInterfaceNewNumPairFromMT(MemTable_InterfOrPort);
|
||
end;
|
||
|
||
function GetMaxInterfNppFromMT(AMemTable: TkbmmemTable): Integer;
|
||
var
|
||
i: Integer;
|
||
RecordNo: Integer;
|
||
MaxNpp: Integer;
|
||
begin
|
||
Result := 0;
|
||
RecordNo := AMemTable.RecNo;
|
||
MaxNpp := 0;
|
||
if AMemTable.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
try
|
||
for i := 0 to AMemTable.RecordCount - 1 do
|
||
begin
|
||
AMemTable.RecNo := i + 1;
|
||
if AMemTable.FieldByName(fnNpp).AsInteger > MaxNpp then
|
||
if AMemTable.FieldByName(fnIDInterface).AsInteger = AmeInterfaceRel.ID_INTERFACE then
|
||
MaxNpp := AMemTable.FieldByName(fnNpp).AsInteger;
|
||
end;
|
||
Result := MaxNpp;
|
||
finally
|
||
AMemTable.RecNo := RecordNo;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function GetLastNpp: Integer;
|
||
var //i: Integer;
|
||
// RecordNo: Integer;
|
||
MaxNpp: Integer;
|
||
begin
|
||
Result := 0;
|
||
MaxNpp := GetMaxInterfNppFromMT(TF_Main(GForm).DM.MemTable_InterfaceRelEd);
|
||
Result := MaxNpp;
|
||
MaxNpp := GetMaxInterfNppFromMT(TF_Main(GForm).DM.MemTable_PortEd);
|
||
if MaxNpp > Result then
|
||
Result := MaxNpp;
|
||
|
||
{MaxNpp := 0;
|
||
with TF_Main(GForm).DM.MemTable_InterfaceRelEd do
|
||
try
|
||
RecordNo := RecNo;
|
||
for i := 0 to RecordCount - 1 do
|
||
begin
|
||
RecNo := i+1;
|
||
if FieldByName(fnNpp).AsInteger > MaxNpp then
|
||
MaxNpp := FieldByName(fnNpp).AsInteger;
|
||
end;
|
||
finally
|
||
RecNo := RecordNo;
|
||
end;
|
||
with TF_Main(GForm).DM.MemTable_PortEd do
|
||
try
|
||
RecordNo := RecNo;
|
||
for i := 0 to RecordCount - 1 do
|
||
begin
|
||
RecNo := i+1;
|
||
if FieldByName(fnNpp).AsInteger > MaxNpp then
|
||
MaxNpp := FieldByName(fnNpp).AsInteger;
|
||
end;
|
||
finally
|
||
RecNo := RecordNo;
|
||
end;
|
||
Result := MaxNpp;}
|
||
end;
|
||
|
||
procedure SetIDAdverse(AIDInterface, AIDAdverse: Integer);
|
||
begin
|
||
with MemTable_InterfOrPort do
|
||
if SearchRecordMT(MemTable_InterfOrPort, 'ID', AIDInterface) then
|
||
begin
|
||
Edit;
|
||
FieldByName('id_adverse').AsInteger := AIDAdverse;
|
||
Post;
|
||
end;
|
||
end;
|
||
|
||
begin
|
||
NewIDList := nil;
|
||
MemTable_InterfOrPort := nil;
|
||
Side := 0;
|
||
try
|
||
try
|
||
//GT_Interface.BeginUpdate;
|
||
Npp := 0;
|
||
NppPort := 0;
|
||
|
||
IsPort := AmeInterfaceRel.IsPort;
|
||
case IsPort of
|
||
biTrue:
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_PortEd;
|
||
biFalse:
|
||
begin
|
||
MemTable_InterfOrPort := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
NppPort := 0;
|
||
end;
|
||
end;
|
||
|
||
if Assigned(MemTable_InterfOrPort) then
|
||
begin
|
||
MemTable_InterfOrPort.DisableControls;
|
||
try
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
NppPort := GLastPort;
|
||
|
||
if (AmeInterfaceRel.IsLineCompon = biTrue) and
|
||
(AmeInterfaceRel.TYPEI = itFunctional) and
|
||
(AmeInterfaceRel.ServiceIsPair = true) then
|
||
begin
|
||
NewIDList := TList.Create;
|
||
NumPair := 1;
|
||
end
|
||
else
|
||
NumPair := 0;
|
||
|
||
//if AmeInterfaceRel.TYPEI = itFunctional then
|
||
Npp := GetLastNpp;
|
||
|
||
with MemTable_InterfOrPort do
|
||
begin
|
||
for i := 0 to AmeInterfaceRel.Count - 1 do
|
||
begin
|
||
if (AmeInterfaceRel.IsLineCompon = biTrue) and
|
||
(AmeInterfaceRel.TYPEI = itFunctional) and
|
||
(AmeInterfaceRel.ServiceIsPair = true) then
|
||
begin
|
||
//NumPair := GetNewNumPair;
|
||
Side := (i mod 2) + 1;
|
||
if i mod 2 = 0 then
|
||
begin
|
||
Npp := Npp + 1;
|
||
NumPair := GetNewNumPair;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
Npp := Npp + 1;
|
||
if AmeInterfaceRel.TYPEI = itFunctional then
|
||
begin
|
||
if AmeInterfaceRel.IsLineCompon = biTrue then
|
||
Side := AmeInterfaceRel.Side;
|
||
end
|
||
else
|
||
Side := stNoneSide;
|
||
NumPair := 0;
|
||
end;
|
||
Last;
|
||
Append;
|
||
FieldByName('id').AsInteger := GenNewID(tkInterfRelED);
|
||
FieldByName(fnIDComponent).AsInteger := GIDComponent;
|
||
FieldByName(fnNpp).AsInteger := Npp;
|
||
FieldByName('Name').AsString := AmeInterfaceRel.Name;
|
||
FieldByName('TypeI').AsInteger := AmeInterfaceRel.TYPEI;
|
||
FieldByName('Kind').AsInteger := AmeInterfaceRel.Kind;
|
||
FieldByName('IsPort').AsInteger := AmeInterfaceRel.IsPort;
|
||
FieldByName('Gender').AsInteger := AmeInterfaceRel.GENDER;
|
||
FieldByName('ID_Interface').AsInteger := AmeInterfaceRel.ID_INTERFACE;
|
||
FieldByName(fnGuidInterface).AsString := AmeInterfaceRel.GUIDInterface;
|
||
FieldByName('Multiple').AsInteger := AmeInterfaceRel.Multiple;
|
||
FieldByName('IsBusy').AsInteger := 0;
|
||
FieldByName('Color').AsInteger := AmeInterfaceRel.Color;
|
||
FieldByName(fnNotice).AsString := AmeInterfaceRel.Notice;
|
||
FieldByName(fnKolvo).AsInteger := AmeInterfaceRel.Kolvo;
|
||
FieldByName(fnKolvoBusy).AsInteger := 0;
|
||
FieldByName(fnSignType).AsInteger := AmeInterfaceRel.SignType;
|
||
FieldByName(fnConnToAnyGender).AsInteger := AmeInterfaceRel.ConnToAnyGender;
|
||
FieldByName(fnSideSection).AsString := AmeInterfaceRel.SideSection;
|
||
FieldByName('isNative').AsBoolean := True;
|
||
|
||
case IsPort of
|
||
biTrue:
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
//NppPort := NppPort + 1;
|
||
//GLastPort := GLastPort + 1;
|
||
NppPort := NppPort + 1;
|
||
FieldByName('npp_port').AsInteger := NppPort;
|
||
|
||
NppPort := NppPort + AmeInterfaceRel.Kolvo - 1;
|
||
GLastPort := NppPort;
|
||
end;
|
||
biFalse:
|
||
begin
|
||
FieldByName('ValueI').AsFloat := AmeInterfaceRel.ValueI;
|
||
FieldByName('Num_Pair').AsInteger := NumPair;
|
||
FieldByName('Side').AsInteger := Side;
|
||
TF_Main(GForm).DM.DefineInterfaceNumPairsStr(MemTable_InterfOrPort, NumPair, AmeInterfaceRel.Kolvo);
|
||
end;
|
||
end;
|
||
|
||
FieldByName('isNew').AsBoolean := true;
|
||
FieldByName('isModified').AsBoolean := false;
|
||
Post;
|
||
|
||
if FieldByName('ID').AsInteger <= 1 then
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//SetSQLToQuery(scsQSelect, ' select * from GET_LAST_INTERF_REL_ID ');
|
||
//Edit;
|
||
//FieldByName('ID').AsInteger := scsQSelect.GetFNAsInteger('LASTID') + 1;
|
||
//Post;
|
||
Edit;
|
||
FieldByName('ID').AsInteger := GetLastInterfRelID(TF_Main(GForm).GDBMode) + 1;
|
||
Post;
|
||
end;
|
||
|
||
if NewIDList <> nil then
|
||
begin
|
||
New(ptrNewID);
|
||
ptrNewID^ := FieldByName('ID').AsInteger;
|
||
NewIDList.Add(ptrNewID);
|
||
end;
|
||
|
||
GChangedInterface := true;
|
||
EnableButtons;
|
||
end;
|
||
|
||
if NewIDList <> nil then
|
||
begin
|
||
i := 0;
|
||
while i < NewIDList.Count do
|
||
begin
|
||
ID1 := Integer(NewIDList.Items[i]^);
|
||
ID2 := Integer(NewIDList.Items[i + 1]^);
|
||
SetIDAdverse(ID1, ID2);
|
||
SetIDAdverse(ID2, ID1);
|
||
i := i + 2;
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
MemTable_InterfOrPort.EnableControls;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.AddInterfaceToMT: ' + E.Message);
|
||
end;
|
||
finally
|
||
//GT_Interface.EndUpdate;
|
||
if NewIDList <> nil then
|
||
// Tolik 03/10/2017 --
|
||
// FreeAndNil(NewIDList);
|
||
FreeAndDisposeList(NewIDList); // <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
//
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.CalcNormCost;
|
||
var
|
||
SCSNorm: TSCSNorm;
|
||
ResourceRel: TSCSResourceRel;
|
||
RecNoResource: Integer;
|
||
i: Integer;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
RecNoResource := MemTable_ResourcesRelEd.RecNo;
|
||
SCSNorm := TSCSNorm.Create(GForm, ntProj);
|
||
|
||
SCSNorm.Kolvo := -1;
|
||
SCSNorm.Price := -1;
|
||
try
|
||
try
|
||
RecNoResource := MemTable_ResourcesRelEd.RecNo;
|
||
//GT_Resources.DataController.BeginUpdate;
|
||
if MemTable_NormsEd.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
SCSNorm.Kolvo := MemTable_NormsEd.FieldByName(fnKolvo).AsFloat;
|
||
SCSNorm.Price := MemTable_NormsEd.FieldByName(fnPrice).AsFloat;
|
||
end;
|
||
{MemTable_ResourcesRelEd.First;
|
||
while Not MemTable_ResourcesRelEd.Eof do
|
||
begin
|
||
if MemTable_ResourcesRelEd.FieldByName('IsOn').AsInteger = biTrue then
|
||
begin
|
||
New(ptrResource);
|
||
ptrResource.IsOn := MemTable_ResourcesRelEd.FieldByName('IsOn').AsInteger;
|
||
ptrResource.Cost := MemTable_ResourcesRelEd.FieldByName('Cost').AsFloat;
|
||
SCSNorm.Resources.Add(ptrResource);
|
||
end;
|
||
MemTable_ResourcesRelEd.Next;
|
||
end; }
|
||
|
||
if GT_Resources.DataController.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
for i := 0 to GT_Resources.DataController.RecordCount - 1 do
|
||
begin
|
||
if GT_Resources.DataController.Values[i, fiResourceIsOn] = biTrue then
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntProj);
|
||
ResourceRel.IsOn := GT_Resources.DataController.Values[i, fiResourceIsOn];
|
||
ResourceRel.Price := GT_Resources.DataController.Values[i, fiResourcePrice];
|
||
ResourceRel.AdditionalPrice := GT_Resources.DataController.Values[i, fiResourceAdditionalPrice];
|
||
ResourceRel.Kolvo := GT_Resources.DataController.Values[i, fiResourceKolvo];
|
||
ResourceRel.Cost := GT_Resources.DataController.Values[i, fiResourceCost];
|
||
SCSNorm.Resources.Add(ResourceRel);
|
||
end;
|
||
end;
|
||
end;
|
||
if SCSNorm.Kolvo > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
SCSNorm.CalcTotalCost(true);
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnCost).AsFloat := SCSNorm.Cost;
|
||
MemTable_NormsEd.FieldByName('total_cost').AsFloat := SCSNorm.TotalCost;
|
||
MemTable_NormsEd.FieldByName('isModified').AsBoolean := true;
|
||
MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.CalcNormCost: ' + E.Message);
|
||
end;
|
||
finally
|
||
SCSNorm.Free;
|
||
if RecNoResource > -1 then // Tolik 28/12/2019 --
|
||
MemTable_ResourcesRelEd.RecNo := RecNoResource;
|
||
//GT_Resources.DataController.EndUpdate;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.CalcWorkCost;
|
||
var
|
||
SCSNorms: TSCSNormsResources;
|
||
SCSNorm: TSCSNorm;
|
||
i: Integer;
|
||
begin
|
||
SCSNorms := TSCSNormsResources.Create(GForm, ctkComponent {GMasterTableKind});
|
||
try
|
||
try
|
||
SCSNorms.IDMaster := GIDComponent; //FIDMaster;
|
||
if GT_NORMS.DataController.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
for i := 0 to GT_NORMS.DataController.RecordCount - 1 do
|
||
begin
|
||
if GT_NORMS.DataController.Values[i, 1] = biTrue then //*** <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
begin
|
||
SCSNorm := TSCSNorm.Create(GForm, ntProj);
|
||
SCSNorm.IsOn := GT_NORMS.DataController.Values[i, fiNormIsOn];
|
||
SCSNorm.TotalCost := GT_NORMS.DataController.Values[i, fiNormTotalCost];
|
||
SCSNorms.Norms.Add(SCSNorm);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
SCSNorms.CalcResourcesCost(false, false);
|
||
CurrencyEdit_ResourcesCost.Value := SCSNorms.TotalCost;
|
||
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.CalcWorkCost: ' + E.Message);
|
||
end;
|
||
finally
|
||
SCSNorms.Free;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ApplyChangedComponentType;
|
||
const
|
||
IDConstrInterf = 97;
|
||
var //*** <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
MemTable_Prop: TkbmMemTable;
|
||
PrevComponType: TComponentType;
|
||
NewComponentType: TComponentType;
|
||
KeepIDList: TList;
|
||
IDComponType: Integer;
|
||
IDProperty: Integer;
|
||
IDCompPropRel: Integer;
|
||
ptrID: ^Integer;
|
||
|
||
ComponTypePropCount: Integer;
|
||
|
||
//*** <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
HaveConstructive: Boolean;
|
||
HaveIDConstrInterf: Boolean;
|
||
RecNomber: Integer;
|
||
meInterfaceRel: TmeInterfaceRel;
|
||
|
||
TemplateComponent: TSCSComponent;
|
||
LoadedFromTemplate: Boolean;
|
||
begin
|
||
try
|
||
IDComponType := GetIDFromComboBox(ComboBox_ComponentType);
|
||
if IDComponType < 1 then
|
||
Exit; ///// EXIT /////
|
||
|
||
LoadedFromTemplate := false;
|
||
PrevComponType := FCurrComponentType;
|
||
NewComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(IDComponType);
|
||
|
||
if FCurrComponentType.GUID <> NewComponentType.GUID then
|
||
begin
|
||
if Edit_Name.Text = '' then
|
||
Edit_Name.Text := NewComponentType.Name;
|
||
|
||
//18.04.2013 if (GUseLiteFunctional or (GUseComponTemplates and cbImportFromTemplate.Checked)) and
|
||
if (GLiteVersion or (GUseComponTemplates and cbImportFromTemplate.Checked)) and
|
||
(TF_Main(GForm).GDBMode = bkNormBase) then
|
||
begin
|
||
ProcessMessagesEx;
|
||
TemplateComponent := TSCSComponent.Create(GForm);
|
||
try
|
||
if GUseComponTemplates and (NewComponentType.IDComponTemplate > 0) and cbImportFromTemplate.Checked then
|
||
begin
|
||
{//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
RemoveNoNativeInterfacesFromMemTable(MemTable_PortEd);
|
||
RemoveNoNativeInterfacesFromMemTable(MemTable_InterfaceRelEd);
|
||
SetAsDeletedMTRecords(MemTable_PortEd, MemTable_PortInterfRelEd, GDeletedInterfRel, GDeletedPortInterfRels);
|
||
SetAsDeletedMTRecords(MemTable_InterfaceRelEd, nil, GDeletedInterfRel, nil);
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(MemTable_CableCanalConnectorsEd, nil, GDeletedCableCanalConnectors, nil);
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(mtCrossConnectionEd, nil, GDeletedCrossConnections, nil);
|
||
end;
|
||
|
||
TemplateComponent.LoadComponentByID(NewComponentType.IDComponTemplate, false);
|
||
TemplateComponent.LoadComponentData([cdCableCanalConnectors,
|
||
//cdConections,
|
||
cdCrossConnections,
|
||
cdProperties,
|
||
cdInterfaces,
|
||
cdComponentType,
|
||
cdNorms,
|
||
cdResources]);
|
||
TemplateComponent.SetPortInterfRelInterfaces;
|
||
TemplateComponent.SetInterfacesParallel;
|
||
|
||
SendComponentToForm(TemplateComponent, true);
|
||
LoadedFromTemplate := true; }
|
||
|
||
ImportComponentByID(NewComponentType.IDComponTemplate);
|
||
LoadedFromTemplate := true;
|
||
end
|
||
else
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
SetAsDeletedMTRecords(MemTable_PropertyEd, nil, GDeletedPropRel, nil);
|
||
|
||
TemplateComponent.ComponentType := NewComponentType;
|
||
TemplateComponent.ID_ComponentType := NewComponentType.ID;
|
||
TemplateComponent.GUIDComponentType := NewComponentType.GUID;
|
||
TemplateComponent.LoadPropertyesFromComponentType;
|
||
TF_Main(GForm).DM.FillMemTablePropFromList(TF_Main(GForm).DM.MemTable_PropertyEd, TemplateComponent.Properties, true);
|
||
if NewComponentType.IDDesignIcon > 0 then
|
||
begin
|
||
GIDObjectIcon := NewComponentType.IDDesignIcon;
|
||
LoadComponIcon(NewComponentType.IDDesignIcon, '', Image_CompIcons);
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if GUseLiteFunctional then
|
||
begin
|
||
DeleteAllPortsAndInterf;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
DefineUniversalInterfacesByProperty(nil, NewComponentType.SysName);
|
||
end;
|
||
end;
|
||
finally
|
||
TemplateComponent.Free;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
//GT_NORMSExpenseForLength.Visible := NewComponentType.IsLine = biTrue;
|
||
//VisibleInterfaceColumns(NewComponentType.IsLine = biTrue);
|
||
//SetVisibleByIsLine(NewComponentType.IsLine);
|
||
end;
|
||
if not LoadedFromTemplate then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>-<2D><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD>-<2D>
|
||
if (NewComponentType.IsLine = biTrue) and (FCurrComponentType.IsLine = biFalse) then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
TF_Main(GForm).DM.RemoveNoNativeInterfacesFromMemTable(TF_Main(GForm).DM.MemTable_PortEd);
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.MemTable_PortEd, TF_Main(GForm).DM.MemTable_PortInterfRelEd, GDeletedInterfRel, GDeletedPortInterfRels);
|
||
TF_Main(GForm).DM.MemTable_PortEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PortEd.Active := True;
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd.Active := True;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.mtCrossConnectionEd, nil, GDeletedCrossConnections, nil);
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := false;
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := True;
|
||
end;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (NewComponentType.SysName <> ctsnCableChannel) and (FCurrComponentType.SysName = ctsnCableChannel) then
|
||
begin
|
||
SetAsDeletedMTRecords(TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd, nil, GDeletedCableCanalConnectors, nil);
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := true;
|
||
end;
|
||
|
||
VisibleInterfaceColumns(NewComponentType.IsLine = biTrue);
|
||
SetVisibleByIsLine(NewComponentType.IsLine);
|
||
end;
|
||
FCurrComponentType := NewComponentType;
|
||
DefineSupplyPriceByComponActualPrice;
|
||
|
||
//21.08.2012 - <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if pcApplyForAll.ActivePage = tsApplyInNB then
|
||
begin
|
||
if cbApplyForCurrentDir.Checked then
|
||
cbApplyForCurrentDirPropertiesChange(cbApplyForCurrentDir);
|
||
end
|
||
else
|
||
if pcApplyForAll.ActivePage = tsApplyInPM then
|
||
begin
|
||
if CheckBox_ApplyForProject.Checked then
|
||
CheckBox_ApplyForProjectPropertiesChange(CheckBox_ApplyForProject)
|
||
else
|
||
if CheckBox_ApplyForList.Checked then
|
||
CheckBox_ApplyForListPropertiesChange(CheckBox_ApplyForList);
|
||
end;
|
||
|
||
EnableButtons;
|
||
SetControls(@PrevComponType);
|
||
end;
|
||
|
||
(*
|
||
IDComponType := GetIDFromComboBox(ComboBox_ComponentType);
|
||
if IDComponType < 1 then
|
||
Exit; ///// EXIT /////
|
||
|
||
NewComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(IDComponType);
|
||
if Edit_Name.Text = '' then
|
||
Edit_Name.Text := NewComponentType.NAME;
|
||
|
||
//GT_NORMSExpenseForLength.Visible := NewComponentType.IsLine = biTrue;
|
||
VisibleInterfaceColumns(NewComponentType.IsLine = biTrue);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeepIDList := TList.Create;
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.DisableControls;
|
||
try
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_PropertyEd.Last;
|
||
while Not MemTable_PropertyEd.Bof do
|
||
begin
|
||
IDProperty := MemTable_PropertyEd.FieldByName('ID_PROPERTY').AsInteger;
|
||
IDCompPropRel := MemTable_PropertyEd.FieldByName('ID').AsInteger;
|
||
ComponTypePropCount := 0;
|
||
with TF_Main(GForm).FNormBase.DM do
|
||
begin
|
||
SetSQLToQuery(scsQSelect, ' select count(id) from comp_type_prop_relation '+
|
||
' where (id_component_type = '''+IntToStr(IDComponType)+''') and '+
|
||
' (id_property = '''+IntToStr(IDProperty)+''') ');
|
||
ComponTypePropCount := scsQSelect.GetFNAsInteger('count');
|
||
end;
|
||
|
||
if ComponTypePropCount = 0 then
|
||
begin
|
||
if MemTable_PropertyEd.FieldByName(fnIsNew).AsBoolean = false then
|
||
GDeletedPropRel.Add(IntToStr(MemTable_PropertyEd.FieldByName('ID').AsInteger));
|
||
MemTable_PropertyEd.Delete;
|
||
end
|
||
else
|
||
begin
|
||
New(ptrID);
|
||
ptrID^ := IDProperty;
|
||
KeepIDList.Add(ptrID);
|
||
MemTable_PropertyEd.Prior;
|
||
end;
|
||
end;
|
||
MemTable_Prop := MemTable_PropertyEd;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).FNormBase.DM do
|
||
begin
|
||
SetSQLToQuery(scsQSelect, ' SELECT ID_PROPERTY, PVALUE, TAKE_INTO_CONNECT, TAKE_INTO_JOIN, '+
|
||
' NAME, SYSNAME, IZM, DESCRIPTION, ID_DATA_TYPE '+
|
||
' FROM COMP_TYPE_PROP_RELATION, PROPERTIES '+
|
||
' WHERE (ID_COMPONENT_TYPE = '''+IntToStr(IDComponType)+''') AND (PROPERTIES.ID = ID_PROPERTY) ');
|
||
while Not scsQSelect.Eof do
|
||
begin
|
||
if CheckNoIDinList(scsQSelect.GetFNAsInteger('ID_PROPERTY'), KeepIDList) then
|
||
begin
|
||
MemTable_Prop.Append;
|
||
MemTable_Prop.FieldByName('Name').AsString := scsQSelect.GetFNAsString('Name');
|
||
MemTable_Prop.FieldByName('SysName').AsString := scsQSelect.GetFNAsString('SysName');
|
||
MemTable_Prop.FieldByName('ID_PROPERTY').AsInteger := scsQSelect.GetFNAsInteger('ID_PROPERTY');
|
||
MemTable_Prop.FieldByName('PVALUE').AsString := scsQSelect.GetFNAsString('PVALUE');
|
||
MemTable_Prop.FieldByName('Izm').AsString := scsQSelect.GetFNAsString('Izm');
|
||
MemTable_Prop.FieldByName('TAKE_INTO_CONNECT').AsInteger := scsQSelect.GetFNAsInteger('TAKE_INTO_CONNECT');
|
||
MemTable_Prop.FieldByName('TAKE_INTO_JOIN').AsInteger := scsQSelect.GetFNAsInteger('TAKE_INTO_JOIN');
|
||
MemTable_Prop.FieldByName('Description').AsString := scsQSelect.GetFNAsString('Description');
|
||
MemTable_Prop.FieldByName('ID_Data_Type').AsInteger := scsQSelect.GetFNAsInteger('ID_Data_Type');
|
||
MemTable_Prop.FieldByName(fnIsDefault).AsInteger := biTrue;
|
||
MemTable_Prop.FieldByName('IsNew').AsBoolean := True;
|
||
MemTable_Prop.Post;
|
||
end;
|
||
scsQSelect.Next;
|
||
end;
|
||
MemTable_Prop.First;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
HaveIDConstrInterf := false;
|
||
HaveConstructive := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
RecNomber := MemTable_InterfaceRelEd.RecNo;
|
||
MemTable_InterfaceRelEd.Last;
|
||
while Not MemTable_InterfaceRelEd.Bof do
|
||
begin
|
||
if (NewComponentType.IsLine = biFalse) and
|
||
(MemTable_InterfaceRelEd.FieldByName('ID_INTERFACE').AsInteger = IDConstrInterf) then
|
||
begin
|
||
if MemTable_InterfaceRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedInterfRel.Add(IntToStr(MemTable_InterfaceRelEd.FieldByName('ID').AsInteger));
|
||
MemTable_InterfaceRelEd.Delete;
|
||
Break;
|
||
end
|
||
else
|
||
begin
|
||
if NewComponentType.IsLine = biTrue then
|
||
if MemTable_InterfaceRelEd.FieldByName('TypeI').AsInteger = itConstructive then
|
||
begin
|
||
HaveConstructive := true;
|
||
Break;
|
||
end;
|
||
MemTable_InterfaceRelEd.Prior;
|
||
end;
|
||
end;
|
||
MemTable_InterfaceRelEd.RecNo := RecNomber;
|
||
|
||
if (NewComponentType.IsLine = biTrue) and Not(HaveConstructive) then
|
||
begin
|
||
with F_NormBase.DM do
|
||
begin
|
||
SetSQLToQuery(scsQSelect, ' select name from interface where id = '''+IntToStr(IDConstrInterf)+''' ');
|
||
meInterfaceRel.NAME := scsQSelect.GetFNAsString('name');
|
||
end;
|
||
if meInterfaceRel.NAME <> '' then
|
||
begin
|
||
meInterfaceRel.IsLineCompon := biTrue;
|
||
meInterfaceRel.TypeI := itConstructive;
|
||
meInterfaceRel.Gender := gtMale;
|
||
meInterfaceRel.ID_Interface := IDConstrInterf;
|
||
meInterfaceRel.Kolvo := 1;
|
||
meInterfaceRel.Multiple := biFalse;
|
||
meInterfaceRel.IsBusy := biFalse;
|
||
meInterfaceRel.ValueI := 10;
|
||
AddInterfaceToMT(meInterfaceRel);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
LoadComponIcon(NewComponentType.IDDesignIcon, Image_Symbol);
|
||
GIDSymbolImage := NewComponentType.IDDesignIcon;
|
||
|
||
SetControls;
|
||
SetVisibleByIsLine(NewComponentType.IsLine);
|
||
{case NewComponentType.IsLine of
|
||
biFalse:
|
||
begin
|
||
Label_MaxLength.Visible := false;
|
||
SpinEdit_MaxLength.Visible := false;
|
||
|
||
Label_UserLength.Visible := False;
|
||
SpinEdit_UserLength.Visible := false;
|
||
end;
|
||
biTrue:
|
||
begin
|
||
Label_MaxLength.Visible := true;
|
||
SpinEdit_MaxLength.Visible := true;
|
||
|
||
Label_UserLength.Visible := True;
|
||
SpinEdit_UserLength.Visible := True;
|
||
end;
|
||
end;}
|
||
|
||
EnableButtons;
|
||
GWasChanging := true;
|
||
finally
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.EnableControls;
|
||
FreeList(KeepIDList);
|
||
//GT_Property.EndUpdate;
|
||
end; *)
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.ApplyChangedComponentType: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.ReadOnly: Boolean;
|
||
begin
|
||
Result := false;
|
||
if GFormMode = fmView then
|
||
begin
|
||
Result := true;
|
||
MessageModal(cAddComponent_Msg21, ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadNormsResources(AAsNew: Boolean);
|
||
var //qSQL: String;
|
||
SCSComponent: TSCSComponent;
|
||
OutNormsResources: TSCSNormsResources;
|
||
NormsResources: TSCSNormsResources;
|
||
//ObjectLength: Double;
|
||
//LevelCatalogID: Integer;
|
||
ptrObjectCurrency: PObjectCurrencyRel;
|
||
|
||
i, j: Integer;
|
||
SCSNorm: TSCSNorm;
|
||
ResourceRel: TSCSResourceRel;
|
||
RecCount: Integer;
|
||
NppFinded: Boolean;
|
||
//SavedMasterSource: TDataSource;
|
||
begin
|
||
DefineComponCurrencies;
|
||
|
||
//if TF_MAIN(GForm).GDBMode = bkNormBase then
|
||
//begin
|
||
// IDCatalog := 0;
|
||
// if GFormMode = fmMake then
|
||
// IDCatalog := TF_Main(GForm).GSCSBase.SCSCatalog.ID
|
||
// else
|
||
// IDCatalog := TF_Main(GForm).DM.GetComponCatalogOwnerID(GIDComponent);
|
||
// FNBCurrency := TF_Main(GForm).FNormBase.GCurrencyM;
|
||
// //LevelCatalogID := TF_Main(GForm).DM.GetParentCatalogIDByLevel(IDCatalog, dirCurrencyLevel);
|
||
// //ptrObjectCurrency := TF_Main(GForm).DM.GetObjectCurrencyByIDCurrency(LevelCatalogID, FNBCurrency.ID);
|
||
// ptrObjectCurrency := TF_Main(GForm).DM.GetCatalogCurrencyByCurrencyID(IDCatalog, TF_Main(GForm).FNormBase.GCurrencyM.ID);
|
||
// if ptrObjectCurrency <> nil then
|
||
// begin
|
||
// FNBCurrency := ptrObjectCurrency.Data;
|
||
// FreeMem(ptrObjectCurrency);
|
||
// end;
|
||
// //FNBCurrency := TF_Main(GForm).FNormBase.DM.get GCurrencyM;
|
||
//end
|
||
//else
|
||
//// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD>.
|
||
//if TF_MAIN(GForm).GDBMode = bkProjectManager then
|
||
// FNBCurrency := TF_Main(GForm).FNormBase.GCurrencyM;
|
||
|
||
OutNormsResources := nil;
|
||
SCSComponent := nil;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
SCSComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(GIDComponent);
|
||
if Assigned(SCSComponent) then
|
||
OutNormsResources := SCSComponent.NormsResources;
|
||
end;
|
||
|
||
GT_NORMS.OnFocusedRecordChanged := nil;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
//GT_NORMSCost.Properties.
|
||
{
|
||
SavedMasterSource := MemTable_ResourcesRelEd.MasterSource;
|
||
MemTable_ResourcesRelEd.MasterSource := nil;
|
||
MemTable_ResourcesRelEd.Active := false;
|
||
MemTable_ResourcesRelEd.Active := true;
|
||
|
||
MemTable_NormsEd.Active := false;
|
||
MemTable_NormsEd.Active := true;
|
||
MemTable_ResourcesRelEd.MasterSource := SavedMasterSource;
|
||
}
|
||
|
||
{MemTable_NormsEd.Active := false;
|
||
MemTable_NormsEd.Active := true;
|
||
MemTable_ResourcesRelEd.Active := false;
|
||
MemTable_ResourcesRelEd.Active := true;}
|
||
|
||
MemTable_ResourcesRelEd.Active := false;
|
||
MemTable_NormsEd.Active := false;
|
||
MemTable_NormsEd.Active := true;
|
||
MemTable_ResourcesRelEd.Active := true;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
NormsResources := nil;
|
||
FOutNormsResources := OutNormsResources;
|
||
if not Assigned(OutNormsResources) then
|
||
begin
|
||
NormsResources := TSCSNormsResources.Create(GForm, ctkComponent);
|
||
NormsResources.IDMaster := GIDComponent;
|
||
NormsResources.LoadNorms(true, true);
|
||
NormsResources.LoadResources(True);
|
||
end
|
||
else
|
||
NormsResources := OutNormsResources;
|
||
|
||
if Assigned(NormsResources) then
|
||
begin
|
||
NormsResources.IDMaster := GIDComponent;
|
||
//NormsResources.Length := ObjectLength;
|
||
|
||
NormsResources.CalcResourcesCost(true, true);
|
||
|
||
{MemTable_NormsEd.Active := false;
|
||
MemTable_NormsEd.Active := true;
|
||
MemTable_ResourcesRelEd.Active := false;
|
||
MemTable_ResourcesRelEd.Active := true; }
|
||
|
||
for j := 0 to NormsResources.Norms.Count - 1 do
|
||
begin
|
||
SCSNorm := NormsResources.Norms.Items[j];
|
||
SCSNorm.IsNew := AAsNew;
|
||
LoadFromNormToMT(SCSNorm, MemTable_NormsEd, meNone, -1, FTraccaLength, nil); //Self.LoadFromNormToMT(SCSNorm, meNone, -1);
|
||
end;
|
||
for j := 0 to NormsResources.Resources.Count - 1 do
|
||
begin
|
||
ResourceRel := NormsResources.Resources.Items[j];
|
||
ResourceRel.IsNew := AAsNew;
|
||
LoadFromResourceToMT(ResourceRel, MemTable_NormsEd, meNone, tkNormEd, FTraccaLength, nil); //Self.LoadFromResourceToMT(ResourceRel, meNone, tkNormEd);
|
||
end;
|
||
|
||
{RecCount := NormsResources.Norms.Count + NormsResources.Resources.Count;
|
||
for i := 0 to RecCount - 1 do
|
||
begin
|
||
NppFinded := false;
|
||
for j := 0 to NormsResources.Norms.Count - 1 do
|
||
begin
|
||
SCSNorm := NormsResources.Norms.Items[j];
|
||
//if SCSNorm.NPP = i + 1 then
|
||
begin
|
||
LoadFromNormToMT(SCSNorm, meNone, -1);
|
||
NppFinded := true;
|
||
Break;
|
||
end;
|
||
end;
|
||
|
||
if Not NppFinded then
|
||
for j := 0 to NormsResources.Resources.Count - 1 do
|
||
begin
|
||
ResourceRel := NormsResources.Resources.Items[j];
|
||
//if ResourceRel.NPP = i + 1 then
|
||
begin
|
||
LoadFromResourceToMT(ResourceRel, meNone, tkNormEd);
|
||
Break;
|
||
end;
|
||
end;
|
||
end;}
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//GComponPrice := 0;
|
||
//if NormsResources.Resources.Count > 0 then
|
||
// GComponPrice := TSCSResourceRel(NormsResources.Resources[0]).Price;
|
||
|
||
//MemTable_NormsEd.First;
|
||
if not Assigned(OutNormsResources) then
|
||
NormsResources.Free;
|
||
end;
|
||
CalcWorkCost;
|
||
end;
|
||
GT_NORMS.OnFocusedRecordChanged := GT_NORMSFocusedRecordChanged;
|
||
TF_Main(GForm).DM.MemTable_NormsEd.First;
|
||
|
||
EnableEditDelNorm;
|
||
GDeletedNormID.Clear;
|
||
GDeletedResourceID.Clear;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SaveNormsResources;
|
||
var
|
||
i: Integer;
|
||
//qSQL: String;
|
||
//MakeEdit: TMakeEdit;
|
||
//NormsFields: TStringList;
|
||
//ResourcesFields: TStringList;
|
||
//NormResourceRelFields: TStringList;
|
||
|
||
//CurrIDNorm: Integer;
|
||
//CurrIDResource: Integer;
|
||
|
||
NormResources: TSCSNormsResources;
|
||
SCSNorm: TSCSNorm;
|
||
ResourceRel: TSCSResourceRel;
|
||
//SCSComponent: TSCSComponent;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedResourceID.Count - 1 do
|
||
begin
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
DelResourceRelByID(GDeletedResourceID[i]);
|
||
if Assigned(FOutNormsResources) then
|
||
begin
|
||
ResourceRel := FOutNormsResources.Resources.GetResourceByID(GDeletedResourceID[i]);
|
||
if Assigned(ResourceRel) then
|
||
begin
|
||
FOutNormsResources.Resources.Remove(ResourceRel);
|
||
FreeAndNil(ResourceRel);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to GDeletedNormID.Count - 1 do
|
||
begin
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
DelNormByID(GDeletedNormID[i]);
|
||
if Assigned(FOutNormsResources) then
|
||
begin
|
||
SCSNorm := FOutNormsResources.Norms.GetNormByID(GDeletedNormID[i]);
|
||
if Assigned(SCSNorm) then
|
||
begin
|
||
FOutNormsResources.Norms.Remove(SCSNorm);
|
||
FreeAndNil(SCSNorm);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
NormResources := nil;
|
||
if not Assigned(FOutNormsResources) then
|
||
NormResources := TSCSNormsResources.Create(GForm, ctkComponent)
|
||
else
|
||
begin
|
||
NormResources := FOutNormsResources;
|
||
NormResources.Norms.Clear;
|
||
NormResources.Resources.Clear;
|
||
end;
|
||
if Assigned(NormResources) then
|
||
begin
|
||
MemTable_NormsEd.First;
|
||
while not MemTable_NormsEd.Eof do
|
||
begin
|
||
case TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean of
|
||
true: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntProj);
|
||
LoadFromMTToResource(TF_Main(GForm).DM.MemTable_NormsEd, ResourceRel, tkNormEd); //LoadFromMTToResource(tkNormEd, ResourceRel);
|
||
NormResources.IDMaster := GIDComponent;
|
||
NormResources.Resources.Add(ResourceRel);
|
||
end;
|
||
false: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
begin
|
||
SCSNorm := TSCSNorm.Create(GForm, ntProj);
|
||
LoadFromMTToNorm(TF_Main(GForm).DM.MemTable_NormsEd, SCSNorm); //LoadFromMTToNorm(SCSNorm);
|
||
NormResources.Norms.Add(SCSNorm);
|
||
SCSNorm.IDMaster := GIDComponent;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
MemTable_ResourcesRelEd.First;
|
||
while not MemTable_ResourcesRelEd.Eof do
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntProj);
|
||
LoadFromMTToResource(MemTable_ResourcesRelEd, ResourceRel, tkResourceRelEd); //LoadFromMTToResource(tkResourceRelEd, ResourceRel);
|
||
SCSNorm.Resources.Add(ResourceRel);
|
||
MemTable_ResourcesRelEd.Next;
|
||
end;
|
||
end;
|
||
end;
|
||
MemTable_NormsEd.Next;
|
||
end;
|
||
NormResources.SaveByServiceFields(GIDComponent);
|
||
if not Assigned(FOutNormsResources) then
|
||
NormResources.Free;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DelResourcesFromCurrNorm;
|
||
var
|
||
IDResource: Integer;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_ResourcesRelEd.Last;
|
||
while not MemTable_ResourcesRelEd.Bof do
|
||
begin
|
||
IDResource := MemTable_ResourcesRelEd.FieldByName('id').AsInteger;
|
||
if MemTable_ResourcesRelEd.FieldByName('isNew').AsBoolean = false then
|
||
GDeletedResourceID.Add(IDResource);
|
||
MemTable_ResourcesRelEd.Delete;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.EnableEditDelNorm;
|
||
begin
|
||
if not TF_Main(GForm).DM.MemTable_NormsEd.Active or (TF_Main(GForm).DM.MemTable_NormsEd.RecordCount = 0) then
|
||
begin
|
||
Act_EditNormResource.Enabled := false;
|
||
Act_DeleteNormResource.Enabled := false;
|
||
end
|
||
else
|
||
begin
|
||
Act_EditNormResource.Enabled := true;
|
||
Act_DeleteNormResource.Enabled := true;
|
||
end;
|
||
EnableEditDelResource;
|
||
end;
|
||
|
||
procedure TF_AddComponent.EnableEditDelResource;
|
||
begin
|
||
if not TF_Main(GForm).DM.MemTable_NormsEd.Active or (TF_Main(GForm).DM.MemTable_NormsEd.RecordCount = 0) then
|
||
begin
|
||
Act_AddResource.Enabled := false;
|
||
Act_EditResource.Enabled := false;
|
||
Act_DelResource.Enabled := false;
|
||
end
|
||
else
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean = true {TF_Main(GForm).DM.MemTable_NormsEd.RecNo = 1} {FieldByName('npp').AsInteger = 1} then
|
||
Act_AddResource.Enabled := false
|
||
else
|
||
Act_AddResource.Enabled := true;
|
||
|
||
if not TF_Main(GForm).DM.MemTable_ResourcesRelEd.Active or (TF_Main(GForm).DM.MemTable_ResourcesRelEd.RecordCount = 0) then
|
||
begin
|
||
Act_EditResource.Enabled := false;
|
||
Act_DelResource.Enabled := false;
|
||
end
|
||
else
|
||
begin
|
||
Act_EditResource.Enabled := true;
|
||
Act_DelResource.Enabled := true;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetExistsResourcesIDsFromCurrNorm: TIntList;
|
||
var
|
||
IDResource: Integer;
|
||
begin
|
||
Result := TIntList.Create;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_ResourcesRelEd.Last;
|
||
while not MemTable_ResourcesRelEd.Bof do
|
||
begin
|
||
IDResource := MemTable_ResourcesRelEd.FieldByName('id').AsInteger;
|
||
if MemTable_ResourcesRelEd.FieldByName('isNew').AsBoolean = false then
|
||
Result.Add(IDResource);
|
||
MemTable_ResourcesRelEd.Prior;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> / <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
procedure TF_AddComponent.AddEditNorm(AMakeEdit: TMakeEdit);
|
||
var
|
||
ExistsResourcesIDsFromCurrNorm: TIntList;
|
||
|
||
ID_Norm: Integer;
|
||
//ID_ResourceRel: Integer;
|
||
//ModRes: TModalResult;
|
||
//NewNpp: Integer;
|
||
GUIDNorm: string;
|
||
SCSNorm: TSCSNorm;
|
||
FormMode: TFormMode;
|
||
begin
|
||
SCSNorm := nil;
|
||
ExistsResourcesIDsFromCurrNorm := nil;
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
ExistsResourcesIDsFromCurrNorm := GetExistsResourcesIDsFromCurrNorm;
|
||
|
||
SCSNorm := TF_Main(GForm).DM.AddEditNormWithMemTable(AMakeEdit, GIDComponent,
|
||
TF_Main(GForm).DM.MemTable_NormsEd, FNBCurrency, FCurrency, false);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if SCSNorm <> nil then
|
||
begin
|
||
if AMakeEdit = meMake then
|
||
begin
|
||
SCSNorm.ID := GenNewID(tkNormEd);
|
||
TF_Main(GForm).DM.MemTable_NormsEd.Edit;
|
||
TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnID).AsInteger := SCSNorm.ID;
|
||
//added by Tolik
|
||
TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnKolvo).AsFloat := TF_Main(GForm).DM.GetExpenceFromIzm(SCSNorm.Izm_);
|
||
//
|
||
TF_Main(GForm).DM.MemTable_NormsEd.Post;
|
||
end;
|
||
|
||
TF_Main(GForm).DM.CalcNormTatalCostInMT(TF_Main(GForm).DM.MemTable_NormsEd, FTraccaLength);
|
||
|
||
if ExistsResourcesIDsFromCurrNorm <> nil then
|
||
GDeletedResourceID.Assign(ExistsResourcesIDsFromCurrNorm, laOr);
|
||
SCSNorm.Free;
|
||
CalcNormCost;
|
||
end;
|
||
if ExistsResourcesIDsFromCurrNorm <> nil then
|
||
FreeAndNil(ExistsResourcesIDsFromCurrNorm);
|
||
|
||
{
|
||
FormMode := fmNone;
|
||
|
||
case AMakeEdit of
|
||
meMake:
|
||
FormMode := fmMake;
|
||
meEdit:
|
||
FormMode := fmEdit;
|
||
end;
|
||
|
||
//case AMakeEdit of
|
||
// meMake:
|
||
// begin
|
||
// FormMode := fmMake;
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value := 1;
|
||
// end;
|
||
// meEdit:
|
||
// begin
|
||
// FormMode := fmEdit;
|
||
// //if GLength = 0 then
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('Kolvo').AsFloat
|
||
// end;
|
||
//end;
|
||
|
||
//if GLength > 0 then
|
||
// begin
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value := GLength;
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Properties.ReadOnly := true;
|
||
// //F_NormBase.F_CaseForm.Label_CaptLength.Visible := true;
|
||
// end
|
||
//else
|
||
begin
|
||
F_NormBase.F_CaseForm.SpinEdit_Kolvo.Properties.ReadOnly := false;
|
||
//F_NormBase.F_CaseForm.Label_CaptLength.Visible := false;
|
||
end;
|
||
|
||
//F_NormBase.F_CaseForm.GViewKind := vkNorm;
|
||
//ModRes := F_NormBase.F_CaseForm.ShowModal;
|
||
|
||
SCSNorm := nil;
|
||
GUIDNorm := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnGuidNB).AsString;
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
with TF_Main(GForm) do
|
||
begin
|
||
//if ModRes = mrOk then
|
||
F_NormBase.F_CaseForm.GGUIDToLocate := GUIDNorm;
|
||
if F_NormBase.F_CaseForm.Execute(vkNorm, FormMode) then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AMakeEdit = meEdit then
|
||
DelResourcesFromCurrNorm;
|
||
|
||
ID_Norm := F_NormBase.DM.DataSet_NB_NORMS.FN('ID').AsInteger;
|
||
SCSNorm := TSCSNorm.Create(TF_Main(GForm).FNormBase, ntNB);
|
||
SCSNorm.LoadNorm(ID_Norm, true);
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkNorm, GUIDNorm) then
|
||
if FProjSpravochnik.LastNorm <> nil then
|
||
begin
|
||
SCSNorm := TSCSNorm.Create(GForm, ntNB);
|
||
SCSNorm.ID := FProjSpravochnik.LastNorm.ID;
|
||
SCSNorm.GuidNB := FProjSpravochnik.LastNorm.GUID;
|
||
SCSNorm.Cypher := FProjSpravochnik.LastNorm.Cypher;
|
||
SCSNorm.Name := FProjSpravochnik.LastNorm.Name;
|
||
SCSNorm.Izm := FProjSpravochnik.LastNorm.Izm;
|
||
//SCSNorm.GUIDESmeta := FProjSpravochnik.LastNorm.GUIDESmeta
|
||
end;
|
||
end;
|
||
|
||
if SCSNorm <> nil then
|
||
begin
|
||
SCSNorm.IDMaster := GIDComponent; // FIDMaster;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
SCSNorm.RefreshPricesAfterChangeCurrency(FNBCurrency, FCurrency, false);
|
||
SCSNorm.IsFromInterface := biFalse;
|
||
|
||
TF_Main(GForm).DM.LoadFromNormToMT(SCSNorm, TF_Main(GForm).DM.MemTable_NormsEd, AMakeEdit, 1, nil);
|
||
SCSNorm.Free;
|
||
CalcNormCost;
|
||
end;}
|
||
end;
|
||
|
||
procedure TF_AddComponent.AddEditResource(AMakeEdit: TMakeEdit; AMemoryTableKind: TTableKind; AMakeFromCompon: Boolean);
|
||
var
|
||
//ID_ResourceRel: Integer;
|
||
//ModRes: TModalResult;
|
||
ResourceRel: TSCSResourceRel;
|
||
FormMode: TFormMode;
|
||
ResourceMemTable: TkbmMemTable;
|
||
GUIDNB: string;
|
||
begin
|
||
ResourceRel := nil;
|
||
|
||
ResourceMemTable := TF_Main(GForm).DM.GetMemTableByMemoryTableKind(AMemoryTableKind);
|
||
|
||
ResourceRel := TF_Main(GForm).DM.AddEditResourceWithMemTable(AMakeEdit, GIDComponent, FIDCatalog,
|
||
ResourceMemTable, AMemoryTableKind, FNBCurrency, FCurrency, AMakeFromCompon, false);
|
||
|
||
if ResourceRel <> nil then
|
||
begin
|
||
if AMakeEdit = meMake then
|
||
begin
|
||
ResourceRel.ID := GenNewID(tkResourceRelEd);
|
||
ResourceMemTable.Edit;
|
||
ResourceMemTable.FieldByName(fnID).AsInteger := ResourceRel.ID;
|
||
ResourceMemTable.Post;
|
||
end;
|
||
|
||
TF_Main(GForm).DM.CalcNormTatalCostInMT(TF_Main(GForm).DM.MemTable_NormsEd, FTraccaLength);
|
||
|
||
ResourceRel.Free;
|
||
|
||
if AMemoryTableKind = tkResourceRelEd then
|
||
CalcNormCost
|
||
else
|
||
CalcWorkCost;
|
||
end;
|
||
|
||
{
|
||
FormMode := fmNone;
|
||
ResourceMemTable := TF_Main(GForm).DM.GetMemTableByMemoryTableKind(AMemoryTableKind);
|
||
|
||
case AMakeEdit of
|
||
meMake:
|
||
FormMode := fmMake;
|
||
meEdit:
|
||
begin
|
||
FormMode := fmEdit;
|
||
end;
|
||
end;
|
||
|
||
//F_NormBase.F_CaseForm.GViewKind := vkResource;
|
||
//ModRes := F_NormBase.F_CaseForm.ShowModal;
|
||
|
||
GUIDNB := ResourceMemTable.FieldByName(fnGuidNB).AsString;
|
||
|
||
ResourceRel := nil;
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
if AMakeEdit = meEdit then
|
||
F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value := Round3(ResourceMemTable.FieldByName(fnKolvo).AsFloat);
|
||
//if GLength > 0 then
|
||
// begin
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value := GLength;
|
||
// F_NormBase.F_CaseForm.SpinEdit_Kolvo.Properties.ReadOnly := true;
|
||
// //F_NormBase.F_CaseForm.Label_CaptLength.Visible := true;
|
||
// end
|
||
//else
|
||
begin
|
||
F_NormBase.F_CaseForm.SpinEdit_Kolvo.Properties.ReadOnly := false;
|
||
//F_NormBase.F_CaseForm.Label_CaptLength.Visible := false;
|
||
end;
|
||
|
||
with TF_Main(GForm) do
|
||
begin
|
||
//if ModRes = mrOk then
|
||
F_NormBase.F_CaseForm.GGUIDToLocate := GUIDNB;
|
||
|
||
if F_NormBase.F_CaseForm.Execute(vkResource, FormMode) then
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntNB);
|
||
//Resource.ID := F_NormBase.DM.DataSet_NB_RESOURCES.FN('ID').AsInteger;
|
||
|
||
//ResourceRel.IDMaster := DM.MemTable_NormsEd.FieldByName('Id').AsInteger;
|
||
|
||
//ResourceRel.IDResource := F_NormBase.DM.DataSet_NB_RESOURCES.FN('ID').AsInteger;
|
||
ResourceRel.IDNB := F_NormBase.DM.DataSet_NB_RESOURCES.FN('ID').AsInteger;
|
||
|
||
ResourceRel.GuidNB := F_NormBase.DM.DataSet_NB_RESOURCES.FN(fnGUID).AsString;
|
||
ResourceRel.Cypher := F_NormBase.DM.DataSet_NB_RESOURCES.FN('Cypher').AsString;
|
||
ResourceRel.Name := F_NormBase.DM.DataSet_NB_RESOURCES.FN('Name').AsString;
|
||
ResourceRel.Izm := F_NormBase.DM.DataSet_NB_RESOURCES.FN('Izm').AsString;
|
||
ResourceRel.Price := F_NormBase.DM.DataSet_NB_RESOURCES.FN('Price').AsFloat;
|
||
ResourceRel.AdditionalPrice := F_NormBase.DM.DataSet_NB_RESOURCES.FN(fnAdditionalPrice).AsFloat;
|
||
ResourceRel.RType := F_NormBase.DM.DataSet_NB_RESOURCES.FN('RType').AsInteger;
|
||
|
||
ResourceRel.Kolvo := F_NormBase.F_CaseForm.SpinEdit_Kolvo.Value;
|
||
ResourceRel.Cost := ResourceRel.Price * ResourceRel.Kolvo; //F_NormBase.DM.DataSet_NB_RESOURCES.FN('Cost').AsFloat;
|
||
|
||
ResourceRel.RefreshPricesAfterChangeCurrency(FNBCurrency, FCurrency, false);
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkResource, GUIDNB) then
|
||
if FProjSpravochnik.LastResource <> nil then
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntNB);
|
||
|
||
ResourceRel.IDResource := FProjSpravochnik.LastResource.ID;
|
||
ResourceRel.GuidNB := FProjSpravochnik.LastResource.GUID;
|
||
ResourceRel.Cypher := FProjSpravochnik.LastResource.Cypher;
|
||
ResourceRel.Name := FProjSpravochnik.LastResource.Name;
|
||
ResourceRel.Izm := FProjSpravochnik.LastResource.Izm;
|
||
ResourceRel.Price := FProjSpravochnik.LastResource.Price;
|
||
ResourceRel.AdditionalPrice := 0;
|
||
ResourceRel.RType := FProjSpravochnik.LastResource.RType;
|
||
|
||
ResourceRel.Kolvo := 1;
|
||
ResourceRel.Cost := ResourceRel.Price * ResourceRel.Kolvo;
|
||
end;
|
||
end;
|
||
|
||
if ResourceRel <> nil then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
case AMemoryTableKind of
|
||
tkNormEd:
|
||
ResourceRel.MasterTableKind := ctkComponent; //GMasterTableKind;
|
||
tkResourceRelEd:
|
||
ResourceRel.MasterTableKind := ctkNorm;
|
||
end;
|
||
ResourceRel.IDMaster := GIDComponent;
|
||
ResourceRel.TableKindNB := ctkNBResources;
|
||
ResourceRel.IsOn := 1;
|
||
|
||
TF_Main(GForm).DM.LoadFromResourceToMT(ResourceRel, ResourceMemTable, AMakeEdit, AMemoryTableKind, nil); //LoadFromResourceToMT(ResourceRel, AMakeEdit, AMemoryTableKind);
|
||
ResourceRel.Free;
|
||
|
||
if AMemoryTableKind = tkResourceRelEd then
|
||
CalcNormCost
|
||
else
|
||
CalcWorkCost;
|
||
end;}
|
||
end;
|
||
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
|
||
function TF_AddComponent.GetNewNPP(AMemTable: TkbmMemTable): Integer;
|
||
var
|
||
RecordNo: Integer;
|
||
MaxNPP: Integer;
|
||
begin
|
||
Result := 1;
|
||
// Tolik 28/12/2019 --
|
||
MaxNPP := 0;
|
||
if AMemTable.RecordCount > 0 then
|
||
//
|
||
begin
|
||
with AMemTable do
|
||
begin
|
||
RecordNo := RecNo;
|
||
First;
|
||
MaxNPP := FieldByName('NPP').AsInteger;
|
||
while not Eof do
|
||
begin
|
||
if FieldByName('NPP').AsInteger > MaxNPP then
|
||
MaxNPP := FieldByName('NPP').AsInteger;
|
||
Next;
|
||
end;
|
||
RecNo := RecordNo;
|
||
end;
|
||
end;
|
||
Result := MaxNPP + 1;
|
||
end;
|
||
{
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> ANPPAfter <20><> -1 #####
|
||
procedure TF_AddComponent.SdvigNPP(ANPPAfter: Integer; AMemTable: TkbmMemTable);
|
||
var
|
||
RecordNo: Integer;
|
||
NewNPP: Integer;
|
||
begin
|
||
try
|
||
if (AMemTable = nil) or (AMemTable.Active = false) then
|
||
Exit; ///// EXIT /////
|
||
|
||
RecordNo := AMemTable.RecNo;
|
||
AMemTable.First;
|
||
while not AMemTable.Eof do
|
||
begin
|
||
if AMemTable.FieldByName(fnNpp).AsInteger > ANPPAfter then
|
||
begin
|
||
NewNPP := AMemTable.FieldByName(fnNpp).AsInteger - 1;
|
||
AMemTable.Edit;
|
||
AMemTable.FieldByName(fnNpp).AsInteger := NewNPP;
|
||
AMemTable.FieldByName(fnisModified).AsBoolean := true;
|
||
AMemTable.Post;
|
||
end;
|
||
AMemTable.Next;
|
||
end;
|
||
AMemTable.RecNo := RecordNo;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.SdvigNPP: ' + E.Message);
|
||
end;
|
||
end;}
|
||
|
||
(*
|
||
// ##### <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> #####
|
||
procedure TF_AddComponent.LoadFromResourceToMT(AResource: TSCSResourceRel; AMakeEdit: TMakeEdit; AMemoryTableKind: TTableKind);
|
||
var
|
||
TrgMemTable: TkbmMemTable;
|
||
NewNpp: Integer;
|
||
begin
|
||
try
|
||
TrgMemTable := nil;
|
||
with TF_Main(GForm).DM do
|
||
TrgMemTable := GetMemTableByMemoryTableKind(AMemoryTableKind);
|
||
if TrgMemTable = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
case AMakeEdit of
|
||
meMake:
|
||
begin
|
||
NewNpp := GetNewNPP(TrgMemTable);
|
||
TrgMemTable.Append;
|
||
TrgMemTable.FieldByName('Npp').AsInteger := NewNpp;
|
||
if AMemoryTableKind = tkNormEd then
|
||
TrgMemTable.FieldByName(fnIsResource).AsBoolean := true;
|
||
end;
|
||
meEdit: TrgMemTable.Edit;
|
||
meNone:
|
||
begin
|
||
TrgMemTable.Append;
|
||
TrgMemTable.FieldByName('id').AsInteger := AResource.ID;
|
||
TrgMemTable.FieldByName('id_master').AsInteger := AResource.IDMaster;
|
||
TrgMemTable.FieldByName('Npp').AsInteger := AResource.Npp;
|
||
if AMemoryTableKind = tkNormEd then
|
||
TrgMemTable.FieldByName(fnIsResource).AsBoolean := true;
|
||
end;
|
||
end;
|
||
TrgMemTable.FieldByName('Table_Kind').AsInteger := AResource.MasterTableKind;
|
||
|
||
if AMakeEdit <> meEdit then
|
||
TrgMemTable.FieldByName('id_resource').AsInteger := AResource.IDResource;
|
||
TrgMemTable.FieldByName('id_nb').AsInteger := AResource.IDNB;
|
||
TrgMemTable.FieldByName(fnGuidNB).AsString := AResource.GuidNB;
|
||
TrgMemTable.FieldByName('table_kind_nb').AsInteger := AResource.TableKindNB;
|
||
|
||
TrgMemTable.FieldByName('kolvo').AsFloat := RoundCP(AResource.Kolvo);
|
||
TrgMemTable.FieldByName('ison').AsInteger := AResource.IsOn;
|
||
|
||
TrgMemTable.FieldByName('Cypher').AsString := AResource.Cypher;
|
||
TrgMemTable.FieldByName('Name').AsString := AResource.Name;
|
||
TrgMemTable.FieldByName('Izm').AsString := AResource.Izm;
|
||
case AMemoryTableKind of
|
||
tkResourceRelEd:
|
||
begin
|
||
TrgMemTable.FieldByName('Price').AsFloat := RoundCP(AResource.Price);
|
||
TrgMemTable.FieldByName(fnAdditionalPrice).AsFloat := RoundCP(AResource.AdditionalPrice);
|
||
TrgMemTable.FieldByName('Cost').AsFloat := RoundCP(AResource.Cost);
|
||
end;
|
||
tkNormEd:
|
||
begin
|
||
TrgMemTable.FieldByName('Cost').AsFloat := RoundCP(AResource.Price);
|
||
TrgMemTable.FieldByName('Total_Cost').AsFloat := RoundCP(AResource.Cost);
|
||
end;
|
||
end;
|
||
TrgMemTable.FieldByName(fnExpenseForLength).AsFloat := RoundCP(AResource.ExpenseForLength);
|
||
|
||
TrgMemTable.FieldByName('RType').AsInteger := AResource.RType;
|
||
case AMakeEdit of
|
||
meNone:
|
||
begin
|
||
TrgMemTable.FieldByName('isModified').AsBoolean := false;
|
||
TrgMemTable.FieldByName('isNew').AsBoolean := false;
|
||
end;
|
||
meMake:
|
||
TrgMemTable.FieldByName('isNew').AsBoolean := true;
|
||
meEdit:
|
||
TrgMemTable.FieldByName('isModified').AsBoolean := true;
|
||
end;
|
||
TrgMemTable.Post;
|
||
|
||
{with TF_Main(GForm).DM do
|
||
begin
|
||
case AMakeEdit of
|
||
meMake : MemTable_ResourcesRelEd.Append;
|
||
meEdit: MemTable_ResourcesRelEd.Edit;
|
||
meNone:
|
||
begin
|
||
MemTable_ResourcesRelEd.Append;
|
||
MemTable_ResourcesRelEd.FieldByName('id').AsInteger := AResource.ID;
|
||
MemTable_ResourcesRelEd.FieldByName('id_master').AsInteger := AResource.IDMaster;
|
||
end;
|
||
end;
|
||
MemTable_ResourcesRelEd.FieldByName('id_resource').AsInteger := AResource.IDResource;
|
||
MemTable_ResourcesRelEd.FieldByName('kolvo').AsFloat := AResource.Kolvo;
|
||
MemTable_ResourcesRelEd.FieldByName('ison').AsInteger := AResource.IsOn;
|
||
|
||
MemTable_ResourcesRelEd.FieldByName('Cypher').AsString := AResource.Cypher;
|
||
MemTable_ResourcesRelEd.FieldByName('Name').AsString := AResource.Name;
|
||
MemTable_ResourcesRelEd.FieldByName('Izm').AsString := AResource.Izm;
|
||
MemTable_ResourcesRelEd.FieldByName('Price').AsFloat := AResource.Price;
|
||
MemTable_ResourcesRelEd.FieldByName('Cost').AsFloat := AResource.Cost;
|
||
MemTable_ResourcesRelEd.FieldByName('RType').AsInteger := AResource.RType;
|
||
case AMakeEdit of
|
||
meNone:
|
||
begin
|
||
MemTable_ResourcesRelEd.FieldByName('isModified').AsBoolean := false;
|
||
MemTable_ResourcesRelEd.FieldByName('isNew').AsBoolean := false;
|
||
end;
|
||
meMake:
|
||
MemTable_ResourcesRelEd.FieldByName('isNew').AsBoolean := true;
|
||
meEdit:
|
||
MemTable_ResourcesRelEd.FieldByName('isModified').AsBoolean := true;
|
||
end;
|
||
MemTable_ResourcesRelEd.Post;
|
||
end; }
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.LoadResourceToMT: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadFromNormToMT(ASCSNorm: TSCSNorm; AMakeEdit: TMakeEdit; AKolvo: Double);
|
||
var
|
||
i: Integer;
|
||
ResourceRel: TSCSResourceRel;
|
||
NewNpp: Integer;
|
||
begin
|
||
NewNpp := 0;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
case AMakeEdit of
|
||
meMake:
|
||
begin
|
||
NewNpp := GetNewNPP(MemTable_NormsEd);
|
||
MemTable_NormsEd.Append;
|
||
end;
|
||
meEdit:
|
||
MemTable_NormsEd.Edit;
|
||
meNone:
|
||
MemTable_NormsEd.Append;
|
||
end;
|
||
MemTable_NormsEd.FieldByName('ID_Master').AsInteger := GIDComponent; //FIDMaster;
|
||
MemTable_NormsEd.FieldByName(fnIDNB).AsInteger := ASCSNorm.IDNB;
|
||
MemTable_NormsEd.FieldByName(fnGuidNB).AsString := ASCSNorm.GuidNB;
|
||
MemTable_NormsEd.FieldByName('TABLE_KIND').AsInteger := ctkComponent; //GMasterTableKind;
|
||
MemTable_NormsEd.FieldByName('Cypher').AsString := ASCSNorm.Cypher;
|
||
MemTable_NormsEd.FieldByName('Name').AsString := ASCSNorm.Name;
|
||
MemTable_NormsEd.FieldByName('Work_Kind').AsString := ASCSNorm.WorkKind;
|
||
MemTable_NormsEd.FieldByName('Izm').AsString := ASCSNorm.Izm;
|
||
MemTable_NormsEd.FieldByName('Cost').AsFloat := RoundCP(ASCSNorm.Cost);
|
||
MemTable_NormsEd.FieldByName('Total_Cost').AsFloat := RoundCP(ASCSNorm.TotalCost); //ASCSNorm.Cost * ASCSNorm.Kolvo;
|
||
MemTable_NormsEd.FieldByName(fnExpenseForLength).AsFloat := RoundCP(ASCSNorm.ExpenseForLength);
|
||
//MemTable_NormRel.FieldByName('Zarplat').AsFloat := F_NormBase.DM.Query.FN('Zarplat').AsFloat;
|
||
|
||
MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger := ASCSNorm.IsFromInterface;
|
||
|
||
case AMakeEdit of
|
||
meNone:
|
||
begin
|
||
MemTable_NormsEd.FieldByName('ID').AsInteger := ASCSNorm.ID;
|
||
MemTable_NormsEd.FieldByName('NPP').AsInteger := ASCSNorm.NPP;
|
||
MemTable_NormsEd.FieldByName('ISON').AsInteger := ASCSNorm.IsOn;
|
||
MemTable_NormsEd.FieldByName('Kolvo').AsFloat := RoundX(ASCSNorm.Kolvo, PrecisionNormKolvo);
|
||
|
||
MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean := false;
|
||
MemTable_NormsEd.FieldByName('isModified').AsBoolean := false;
|
||
MemTable_NormsEd.FieldByName('isNew').AsBoolean := false;
|
||
end;
|
||
meMake:
|
||
begin
|
||
MemTable_NormsEd.FieldByName('NPP').AsInteger := NewNpp;
|
||
MemTable_NormsEd.FieldByName('ISON').AsInteger := 1;
|
||
MemTable_NormsEd.FieldByName('Kolvo').AsFloat := RoundCP(AKolvo);
|
||
MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean := false;
|
||
MemTable_NormsEd.FieldByName('isNew').AsBoolean := true;
|
||
end;
|
||
meEdit:
|
||
begin
|
||
MemTable_NormsEd.FieldByName('Kolvo').AsFloat := RoundCP(AKolvo);
|
||
MemTable_NormsEd.FieldByName('isModified').AsBoolean := true;
|
||
end;
|
||
end;
|
||
MemTable_NormsEd.Post;
|
||
end;
|
||
|
||
for i := 0 to ASCSNorm.Resources.Count - 1 do
|
||
begin
|
||
ResourceRel := ASCSNorm.Resources.Items[i];
|
||
LoadFromResourceToMT(ResourceRel, AMakeEdit, tkResourceRelEd);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadFromMTToResource(AMemoryTableKind: TTableKind; AResourceRel: TSCSResourceRel);
|
||
var
|
||
TrgMemTable: TkbmMemTable;
|
||
begin
|
||
try
|
||
if AResourceRel = nil then
|
||
Exit; /// EXIT ///
|
||
|
||
TrgMemTable := nil;
|
||
with TF_Main(GForm).DM do
|
||
case AMemoryTableKind of
|
||
tkResourceRelEd:
|
||
TrgMemTable := MemTable_ResourcesRelEd;
|
||
tkNormEd:
|
||
TrgMemTable := MemTable_NormsEd;
|
||
end;
|
||
if TrgMemTable = nil then
|
||
Exit; //// EXIT ////
|
||
|
||
AResourceRel.ID := TrgMemTable.FieldByName('id').AsInteger;
|
||
AResourceRel.IDMaster := TrgMemTable.FieldByName('id_master').AsInteger;
|
||
AResourceRel.MasterTableKind := TrgMemTable.FieldByName('Table_Kind').AsInteger;
|
||
AResourceRel.Npp := TrgMemTable.FieldByName('Npp').AsInteger;
|
||
AResourceRel.IsOn := TrgMemTable.FieldByName('ison').AsInteger;
|
||
|
||
AResourceRel.IDResource := TrgMemTable.FieldByName('id_resource').AsInteger;
|
||
AResourceRel.IDNB := TrgMemTable.FieldByName('id_nb').AsInteger;
|
||
AResourceRel.GuidNB := TrgMemTable.FieldByName(fnGuidNB).AsString;
|
||
AResourceRel.TableKindNB := TrgMemTable.FieldByName('table_kind_nb').AsInteger;
|
||
|
||
AResourceRel.Kolvo := RoundCP(TrgMemTable.FieldByName('kolvo').AsFloat);
|
||
|
||
AResourceRel.Cypher := TrgMemTable.FieldByName('Cypher').AsString;
|
||
AResourceRel.Name := TrgMemTable.FieldByName('Name').AsString;
|
||
AResourceRel.Izm := TrgMemTable.FieldByName('Izm').AsString;
|
||
case AMemoryTableKind of
|
||
tkResourceRelEd:
|
||
begin
|
||
AResourceRel.Price := RoundCP(TrgMemTable.FieldByName('Price').AsFloat);
|
||
AResourceRel.AdditionalPrice := RoundCP(TrgMemTable.FieldByName(fnAdditionalPrice).AsFloat);
|
||
AResourceRel.Cost := RoundCP(TrgMemTable.FieldByName('Cost').AsFloat);
|
||
end;
|
||
tkNormEd:
|
||
begin
|
||
AResourceRel.Price := RoundCP(TrgMemTable.FieldByName('Cost').AsFloat);
|
||
AResourceRel.Cost := RoundCP(TrgMemTable.FieldByName('Total_Cost').AsFloat);
|
||
end;
|
||
end;
|
||
AResourceRel.ExpenseForLength := RoundCP(TrgMemTable.FieldByName(fnExpenseForLength).AsFloat);
|
||
|
||
AResourceRel.RType := TrgMemTable.FieldByName('RType').AsInteger;
|
||
AResourceRel.IsModified := TrgMemTable.FieldByName('isModified').AsBoolean;
|
||
AResourceRel.IsNew := TrgMemTable.FieldByName('isNew').AsBoolean;
|
||
except
|
||
on E: Exception do AddExceptionToLog('TF_AddComponent.LoadFromMTToResource: '+E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadFromMTToNorm(ASCSNorm: TSCSNorm);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
ASCSNorm.ID := MemTable_NormsEd.FieldByName('ID').AsInteger;
|
||
ASCSNorm.IDMaster := MemTable_NormsEd.FieldByName('ID_Master').AsInteger;
|
||
ASCSNorm.IDNB := MemTable_NormsEd.FieldByName(fnIDNB).AsInteger;
|
||
ASCSNorm.GuidNB := MemTable_NormsEd.FieldByName(fnGuidNB).AsString;
|
||
ASCSNorm.MasterTableKind := MemTable_NormsEd.FieldByName('TABLE_KIND').AsInteger;
|
||
|
||
ASCSNorm.NPP := MemTable_NormsEd.FieldByName('NPP').AsInteger;
|
||
ASCSNorm.IsOn := MemTable_NormsEd.FieldByName('ISON').AsInteger;
|
||
ASCSNorm.Kolvo := RoundX(MemTable_NormsEd.FieldByName('Kolvo').AsFloat, PrecisionNormKolvo);
|
||
|
||
ASCSNorm.Cypher := MemTable_NormsEd.FieldByName('Cypher').AsString;
|
||
ASCSNorm.Name := MemTable_NormsEd.FieldByName('Name').AsString;
|
||
ASCSNorm.WorkKind := MemTable_NormsEd.FieldByName('Work_Kind').AsString;
|
||
ASCSNorm.Izm := MemTable_NormsEd.FieldByName('Izm').AsString;
|
||
ASCSNorm.Cost := RoundCP(MemTable_NormsEd.FieldByName('Cost').AsFloat);
|
||
ASCSNorm.TotalCost := RoundCP(MemTable_NormsEd.FieldByName('Total_Cost').AsFloat);
|
||
ASCSNorm.ExpenseForLength := RoundCP(MemTable_NormsEd.FieldByName(fnExpenseForLength).AsFloat);
|
||
//MemTable_NormRel.FieldByName('Zarplat').AsFloat := F_NormBase.DM.Query.FN('Zarplat').AsFloat;
|
||
ASCSNorm.IsFromInterface := MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger;
|
||
|
||
ASCSNorm.IsModified := MemTable_NormsEd.FieldByName('isModified').AsBoolean;
|
||
ASCSNorm.IsNew := MemTable_NormsEd.FieldByName('isNew').AsBoolean;
|
||
end;
|
||
end; *)
|
||
|
||
procedure TF_AddComponent.OncbApplyForChange(Sender: TObject);
|
||
var
|
||
ApplyCheckBoxBorderColor: TColor;
|
||
ApplyCheckBoxBorderStyle: TcxEditBorderStyle;
|
||
begin
|
||
ApplyCheckBoxBorderColor := FApplyCheckBoxesBorderColor;
|
||
ApplyCheckBoxBorderStyle := FApplyCheckBoxesBorderStyle;
|
||
if not TRzCheckBox(Sender).Checked then
|
||
begin
|
||
ApplyCheckBoxBorderColor := clWindowFrame;
|
||
ApplyCheckBoxBorderStyle := ebsUltraFlat;
|
||
end;
|
||
pnApplyNormsResources.Visible := TRzCheckBox(Sender).Checked;
|
||
|
||
//TcxCheckBox(Sender).Style.BorderColor := ApplyCheckBoxBorderColor;
|
||
//TcxCheckBox(Sender).Style.BorderStyle := ApplyCheckBoxBorderStyle;
|
||
//VisibleApplyCheckBoxes(TcxCheckBox(Sender).Checked, false);
|
||
|
||
//TRzCheckBox(Sender).Style.BorderColor := ApplyCheckBoxBorderColor;
|
||
//TRzCheckBox(Sender).Style.BorderStyle := ApplyCheckBoxBorderStyle;
|
||
|
||
TRzCheckBox(Sender).Font.Color := ApplyCheckBoxBorderColor;
|
||
VisibleApplyCheckBoxes(TRzCheckBox(Sender).Checked, false);
|
||
|
||
|
||
end;
|
||
|
||
procedure TF_AddComponent.OncbApplyForPMChange(Sender: TObject);
|
||
begin
|
||
OncbApplyForChange(Sender);
|
||
EnableDisableApplyIncludingMark; //17.08.2012
|
||
cbApplyForOnlySelected.Enabled := CheckBox_ApplyForList.Checked or CheckBox_ApplyForProject.Checked;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetGenLastID(ATableKind: TTableKind);
|
||
//var LastID: Integer;
|
||
var
|
||
GDBMode: TDBKind;
|
||
begin
|
||
//LastID := -1;
|
||
//with TF_Main(GForm).DM do
|
||
GDBMode := TF_Main(GForm).GDBMode;
|
||
case ATableKind of
|
||
tkCableCanalConnectorsED:
|
||
GGenLastCableCanalConnectorID := GetLastCableCanalConnectorID(GDBMode);
|
||
tkCompPropRelED:
|
||
GGenLastCompPropRelID := GetLastCompPropRelID(GDBMode);
|
||
tkCrossConnectionED:
|
||
if GDBMode = bkNormBase then
|
||
GGenLastCrossConnectionID := GenIDFromTable(TF_Main(GForm).DM.Query_Select, gnCrossConnectionID, 0)
|
||
else
|
||
GGenLastCrossConnectionID := 0;
|
||
tkInterfRelED:
|
||
GGenLastInterfID := GetLastInterfRelID(GDBMode);
|
||
tkPortInterfRelED:
|
||
GGenLastPortInterfRelID := GetLastPortInterfRelID(GDBMode);
|
||
tkNormEd:
|
||
GGenLastNormID := GetLastNormID(GDBMode);
|
||
tkResourceRelEd:
|
||
GGenLastResourceID := GetLastNormResourceID(GDBMode);
|
||
end;
|
||
|
||
//if LastID <> -1 then
|
||
// GGenLastInterfID := LastID;
|
||
end;
|
||
|
||
function TF_AddComponent.GetMaxNumPair(AMemTable: TkbmMemTable): Integer;
|
||
var
|
||
CurrMaxNumPair: Integer;
|
||
begin
|
||
Result := 0;
|
||
CurrMaxNumPair := 0;
|
||
AMemTable.First;
|
||
while not AMemTable.Eof do
|
||
begin
|
||
if AMemTable.FieldByName(fnNumPair).AsInteger > CurrMaxNumPair then
|
||
CurrMaxNumPair := AMemTable.FieldByName(fnNumPair).AsInteger;
|
||
AMemTable.Next;
|
||
end;
|
||
Result := CurrMaxNumPair;
|
||
end;
|
||
|
||
function TF_AddComponent.GenNewID(ATableKind: TTableKind): Integer;
|
||
begin
|
||
Result := 0;
|
||
case ATableKind of
|
||
tkCableCanalConnectorsED:
|
||
begin
|
||
Inc(GGenLastCableCanalConnectorID);
|
||
Result := GGenLastCableCanalConnectorID
|
||
end;
|
||
tkCompPropRelED:
|
||
begin
|
||
Inc(GGenLastCompPropRelID);
|
||
Result := GGenLastCompPropRelID
|
||
end;
|
||
tkCrossConnectionED:
|
||
begin
|
||
Inc(GGenLastCrossConnectionID);
|
||
Result := GGenLastCrossConnectionID
|
||
end;
|
||
tkInterfRelED, tkPortEd:
|
||
begin
|
||
Inc(GGenLastInterfID);
|
||
Result := GGenLastInterfID;
|
||
end;
|
||
tkPortInterfRelED:
|
||
begin
|
||
Inc(GGenLastPortInterfRelID);
|
||
Result := GGenLastPortInterfRelID
|
||
end;
|
||
tkNormEd:
|
||
begin
|
||
Inc(GGenLastNormID);
|
||
Result := GGenLastNormID;
|
||
end;
|
||
tkResourceRelEd:
|
||
begin
|
||
Inc(GGenLastResourceID);
|
||
Result := GGenLastResourceID;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
{
|
||
function TF_AddComponent.GetStrWithoutSpaces(AString: String): String;
|
||
var ResStr: String;
|
||
i: Integer;
|
||
LenStr: Integer;
|
||
ResStrIndex: Integer;
|
||
begin
|
||
LenStr := Length(AString);
|
||
ResStrIndex := 0;
|
||
for i := 1 to LenStr do
|
||
begin
|
||
if Ord(AString[i]) <> 160 then
|
||
begin
|
||
ResStrIndex := ResStrIndex + 1;
|
||
SetLength(ResStr, ResStrIndex);
|
||
ResStr[ResStrIndex] := AString[i];
|
||
end;
|
||
end;
|
||
Result := ResStr;
|
||
end; }
|
||
|
||
procedure TF_AddComponent.AddApplyCheckBoxToList(ACheckBox: TcxCheckBox; APageIndex: Integer);
|
||
begin
|
||
FApplyCheckBoxes.Add(ACheckBox);
|
||
FApplyCheckBoxesPageIndex.Add(APageIndex);
|
||
end;
|
||
|
||
function TF_AddComponent.CheckRequiredProperties: Boolean;
|
||
var
|
||
//MemTableBookmark: string;
|
||
MemTableBookmark: TbookMark;
|
||
MemTable: TkbmMemTable;
|
||
Prop: TProperty;
|
||
MessageStr: string;
|
||
PropSysNamesToDel: TStringList;
|
||
CanEditProp: Boolean;
|
||
RelatedPortPropSysName: String;
|
||
begin
|
||
Result := true;
|
||
try
|
||
PropSysNamesToDel := TStringList.Create;
|
||
|
||
MemTable := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.First;
|
||
while Not MemTable.Eof do
|
||
begin
|
||
Prop := TF_Main(GForm).DM.GetPropertyFromTable(nil, MemTable);
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (GPropRequired.IndexOf(Prop.SysName) <> -1) and
|
||
(PropSysNamesToDel.IndexOf(Prop.SysName) = -1) then
|
||
begin
|
||
MessageStr := '';
|
||
case Prop.IDDataType of
|
||
dtInteger:
|
||
if StrToIntDef(Prop.Value, 0) <= 0 then
|
||
MessageStr := cAddComponent_Msg22_1 +' "'+Prop.Name_+'" '+cAddComponent_Msg22_2;
|
||
dtFloat:
|
||
if StrToFloatDefU(Prop.Value, 0) <= 0 then
|
||
MessageStr := cAddComponent_Msg22_1 +' "'+Prop.Name_+'" '+cAddComponent_Msg22_2;
|
||
dtCableCanalElementType:
|
||
if StrToIntDef(Prop.Value, contNone) = contNone then
|
||
MessageStr := cAddComponent_Msg22_1 +' "'+Prop.Name_+'" '+cAddComponent_Msg22_3;
|
||
dtDimensions:
|
||
if Prop.Value = '' then
|
||
MessageStr := cAddComponent_Msg22_1 +' "'+Prop.Name_+'" '+cAddComponent_Msg22_3;
|
||
end;
|
||
|
||
if MessageStr <> '' then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>-<2D><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
RelatedPortPropSysName := '';
|
||
if Prop.SysName = pnPortCount then
|
||
RelatedPortPropSysName := pnPortWireCount
|
||
else
|
||
if Prop.SysName = pnPortWireCount then
|
||
RelatedPortPropSysName := pnPortCount;
|
||
|
||
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
|
||
pcMain.ActivePage := tsCommon;
|
||
Grid.ActiveLevel := GL_Property;
|
||
Application.ProcessMessages;
|
||
Sleep(100);
|
||
|
||
MemTable.EnableControls;
|
||
CanEditProp := true;
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (RelatedPortPropSysName <> '') and Not FIsTemplate and (FCurrComponentType.IsLine = biFalse) then
|
||
begin
|
||
if MessageQuastYN(cAddComponent_Msg26_1 + snNextRow+
|
||
'(' +cAddComponent_Msg26_2 + ' "'+Prop.Name_+'")' ) = IDYES then
|
||
begin
|
||
CanEditProp := false;
|
||
PropSysNamesToDel.Add(Prop.SysName);
|
||
PropSysNamesToDel.Add(RelatedPortPropSysName);
|
||
end;
|
||
end
|
||
else
|
||
MessageInfo(MessageStr);
|
||
Application.ProcessMessages;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if CanEditProp then
|
||
begin
|
||
AddEditProperty(meEdit);
|
||
Result := false;
|
||
end;
|
||
|
||
Break; //// BREAK ////
|
||
end;
|
||
end;
|
||
MemTable.Next;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
//MemTable.Bookmark := MemTableBookmark;
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
|
||
if PropSysNamesToDel.Count > 0 then
|
||
DelPropsBySysNames(PropSysNamesToDel);
|
||
|
||
FreeAndNil(PropSysNamesToDel);
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.CheckRequiredProperties', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ClearFormGrids;
|
||
begin
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_InterfaceRelEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.MemTable_InterfOfInterf_RelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_InterfOfInterf_RelEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.MemTable_PortEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PortEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd.Active := false;
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd.Active := true;
|
||
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.MemTable_ComplectsEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_ComplectsEd.Active := True;
|
||
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.Active := true;
|
||
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := false;
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Active := true;
|
||
|
||
TF_Main(GForm).DM.MemTable_ResourcesRelEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_NormsEd.Active := false;
|
||
TF_Main(GForm).DM.MemTable_NormsEd.Active := true;
|
||
TF_Main(GForm).DM.MemTable_ResourcesRelEd.Active := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ClearPortInterfaceMemTable(AMemTable: TkbmMemTable; AIsPort: Boolean);
|
||
var
|
||
i: Integer;
|
||
NumPair: Integer;
|
||
CanDelete: Boolean;
|
||
begin
|
||
try
|
||
AMemTable.Last;
|
||
while not AMemTable.Bof do
|
||
begin
|
||
if (AMemTable.FieldByName(fnIsBusy).AsInteger = biFalse) and
|
||
(AMemTable.FieldByName(fnIsNative).AsBoolean = True) then
|
||
begin
|
||
NumPair := 0;
|
||
if not AIsPort then
|
||
NumPair := AMemTable.FieldByName(fnNumPair).AsInteger;
|
||
|
||
CanDelete := false;
|
||
if AMemTable.FieldByName(fnIsNew).AsBoolean then
|
||
CanDelete := true
|
||
else if not CheckInterfIsUse(GForm, GIDComponent, AMemTable.FieldByName(fnID).AsInteger, NumPair) then
|
||
CanDelete := true;
|
||
|
||
if CanDelete then
|
||
begin
|
||
if (AMemTable.FieldByName(fnIsNew).AsBoolean = false) and
|
||
(AMemTable.FieldByName(fnIsNative).AsBoolean = true) then
|
||
GDeletedInterfRel.Add(AMemTable.FieldByName(fnID).AsInteger);
|
||
AMemTable.Delete;
|
||
Continue; ///// CONTINUE /////
|
||
end;
|
||
end;
|
||
AMemTable.Prior;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.ClearPortInterfaceMemTable', E.Message);
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.CreateFormOnlyComponent: TSCSComponent;
|
||
var
|
||
Stream: TStream;
|
||
ComponentType: TComponentType;
|
||
Price: Double;
|
||
begin
|
||
Result := nil;
|
||
//ComponentType := TF_Main(GForm).FNormBase.DM.GetComponentType(GetIDFromComboBox(ComboBox_ComponentType));
|
||
ComponentType := GetComponentType;
|
||
Result := TSCSComponent.Create(GForm);
|
||
try
|
||
|
||
if GFormMode = fmEdit then
|
||
Result.ID := GIDComponent;
|
||
Result.Name := Edit_Name.Text;
|
||
Result.NameShort := Edit_NameShort.Text;
|
||
Result.MarkStr := '';//Edit_MarkStr.Text;
|
||
Result.MarkID := Trunc(seIndex.Value);
|
||
Result.Izm := Edit_Izm.Text;
|
||
Result.Notice := Edit_Notice.Text;
|
||
Result.ArticulDistributor := Edit_ArticulDistributor.Text;
|
||
Result.ArticulProducer := Edit_ArticulProducer.Text;
|
||
|
||
//if Result.Picture <> nil then
|
||
// FreeAndNil(Result.Picture);
|
||
//Result.Picture := TMemoryStream.Create;
|
||
try
|
||
Image.Picture.SaveToFile(ComponPictFileName);
|
||
if FileExists(ComponPictFileName) then
|
||
begin
|
||
Stream := TFileStream.Create(ComponPictFileName, fmOpenReadWrite);
|
||
Stream.Position := 0;
|
||
Result.Picture.Position := 0;
|
||
Result.Picture.CopyFrom(Stream, 0);
|
||
Result.Picture.Position := 0;
|
||
FreeAndNil(Stream);
|
||
DeleteFile(PChar(ComponPictFileName));
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
ShowMessage(cAddComponent_Msg5);
|
||
end;
|
||
|
||
Result.IsLine := GetIsLineByComponType(ComponentType);
|
||
Result.ISComplect := BoolToint(cbCanComplect.Checked); //1 - RadioGroup_CanComplect.ItemIndex;
|
||
//28.08.2013 if ComponentType.IsLine = biFalse then
|
||
//28.08.2013 Result.IsMarkInCaptions := BoolToint(cbIsMarkInCaptions.Checked)
|
||
//28.08.2013 else
|
||
//28.08.2013 Result.IsMarkInCaptions := biFalse;
|
||
Result.IsMarkInCaptions := BoolToint(cbIsMarkInCaptions.Checked);
|
||
Result.UserLength := FloatInUOM(SpinEdit_UserLength.Value, TF_Main(GForm).FUOM, umMetr);
|
||
Result.ObjectIconStep := 0;//SpinEdit_ObjectIconStep.Value;
|
||
Result.HASNDS := BoolToInt(CheckBox_HasNds.Checked); //1- RadioGroup_HasNds.ItemIndex;
|
||
Price := 0;
|
||
//case RadioGroup_HasNds.ItemIndex of
|
||
// 0: Price := CurrencyEdit_Price1.Value;
|
||
// 1: Price := PriceWithNDS(CurrencyEdit_Price1.Value, GNDS);
|
||
//end;
|
||
case CheckBox_HasNds.Checked of
|
||
true: Price := CurrencyEdit_Price1.Value;
|
||
false: Price := PriceWithNDS(CurrencyEdit_Price1.Value, TF_Main(GForm).GNDS);
|
||
end;
|
||
if CheckPriceTransformToUOMByCompType(@FCurrComponentType) then
|
||
Price := FloatInUOM(Price, umMetr, TF_Main(GForm).FUOM);
|
||
Result.PRICE_CALC := Price;
|
||
Result.PRICE := Price;
|
||
Result.ID_CURRENCY := GID_CURRENCY;
|
||
Result.ID_Producer := GetIDFromComboBox(ComboBox_Producer);
|
||
Result.ID_ComponentType := GetIDFromComboBox(ComboBox_ComponentType);
|
||
Result.IDObjectIcon := GIDObjectIcon;
|
||
Result.IDSymbol := GIDSymbolImage;
|
||
Result.IDNetType := GetIDFromComboBox(ComboBox_NetType);
|
||
Result.IDCompSpecification := GetIDFromComboBox(cbSpecification);
|
||
Result.IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
|
||
Result.GUIDProducer := GetGUIDFromComboBox(ComboBox_Producer);
|
||
Result.GUIDNetType := GetGUIDFromComboBox(ComboBox_NetType);
|
||
Result.ComponentType := ComponentType;
|
||
Result.GUIDComponentType := ComponentType.GUID;
|
||
Result.GUIDObjectIcon := GGUIDObjectIcon;
|
||
Result.GUIDSymbol := GGUIDSymbolImage;
|
||
Result.GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
Result.NameMark := Edit_NameMark.Text;
|
||
//Result.IsUserMark := BoolToInt(CheckBox_IsUserMark.Checked);
|
||
Result.IsUserMark := BoolToInt(rbMarkByDefault.Checked);
|
||
Result.IsDismount := BoolToInt(cbDismount.Checked);
|
||
Result.IsUseDismounted := BoolToInt(cbUseDismounted.Checked);
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.CreateFormComponent: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.CreateFormComponent: TSCSComponent;
|
||
var
|
||
FormCompon: TSCSComponent;
|
||
Interfaces: TSCSInterfaces;
|
||
Properties: TList;
|
||
CrossConnections: TSCSObjectList;
|
||
begin
|
||
Result := nil;
|
||
FormCompon := nil;
|
||
FormCompon := CreateFormOnlyComponent;
|
||
if Assigned(FormCompon) then
|
||
begin
|
||
FormCompon.Interfaces.Clear; //ClearList(FormCompon.Interfaces);
|
||
ClearList(FormCompon.Properties);
|
||
|
||
Interfaces := nil;
|
||
Interfaces := CreateFormInterfaces;
|
||
if Assigned(Interfaces) then
|
||
begin
|
||
FormCompon.Interfaces.Assign(Interfaces);
|
||
FreeAndNil(Interfaces);
|
||
end;
|
||
|
||
Properties := nil;
|
||
Properties := CreateFormProperties;
|
||
if Assigned(Properties) then
|
||
begin
|
||
FormCompon.Properties.Assign(Properties);
|
||
FreeAndNil(Properties);
|
||
end;
|
||
|
||
CrossConnections := nil;
|
||
CrossConnections := CreateFormCrossConnections;
|
||
if Assigned(CrossConnections) then
|
||
begin
|
||
FormCompon.CrossConnections.Assign(CrossConnections);
|
||
CrossConnections.OwnsObjects := false;
|
||
FreeAndNil(CrossConnections);
|
||
end;
|
||
end;
|
||
Result := FormCompon;
|
||
end;
|
||
// Tolik 28/12/2019 -- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - -<2D><> <20><><EFBFBD><EFBFBD>
|
||
function TF_AddComponent.CreateFormInterfaces: TSCSInterfaces;
|
||
var
|
||
ResList: TSCSInterfaces;
|
||
SavedMasterSource: TDataSource;
|
||
|
||
procedure LoadToInterfacesList(AMemTable: TkbmMemTable);
|
||
var
|
||
i, j: Integer;
|
||
RecNo: Integer;
|
||
Interfac: TSCSInterface;
|
||
ComponType: TComponentType;
|
||
begin
|
||
if Assigned(AMemTable) then
|
||
begin
|
||
ComponType := GetComponentType;
|
||
if AMemTable.RecordCount > 0 then
|
||
begin
|
||
RecNo := AMemTable.RecNo;
|
||
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd.MasterSource := nil;
|
||
AMemTable.DisableControls;
|
||
try
|
||
for i := 0 to AMemTable.RecordCount - 1 do
|
||
begin
|
||
AMemTable.RecNo := i + 1;
|
||
|
||
//GetMem(Interfac, SizeOf(TInterface));
|
||
Interfac := TSCSInterface.Create(GForm);
|
||
TF_Main(GForm).DM.LoadFromMemTableToInterface(Interfac, AMemTable);
|
||
Interfac.IsLineCompon := ComponType.IsLine;
|
||
|
||
//ResList.Add(Interfac);
|
||
Result.Add(Interfac);
|
||
TF_Main(GForm).DM.LoadPortInterfRelsToInterfaceFromMT(Interfac,
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd,
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd);
|
||
end;
|
||
finally
|
||
AMemTable.RecNo := RecNo;
|
||
AMemTable.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
begin
|
||
Result := TSCSInterfaces.Create(false);
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
LoadToInterfacesList(MemTable_InterfaceRelEd);
|
||
SavedMasterSource := MemTable_PortInterfRelEd.MasterSource;
|
||
MemTable_PortInterfRelEd.MasterSource := nil;
|
||
try
|
||
LoadToInterfacesList(MemTable_PortEd);
|
||
finally
|
||
MemTable_PortInterfRelEd.MasterSource := SavedMasterSource;
|
||
end;
|
||
end;
|
||
//Result := ResList;
|
||
end;
|
||
{
|
||
function TF_AddComponent.CreateFormInterfaces: TSCSInterfaces;
|
||
var
|
||
ResList: TSCSInterfaces;
|
||
SavedMasterSource: TDataSource;
|
||
|
||
procedure LoadToInterfacesList(AMemTable: TkbmMemTable);
|
||
var
|
||
i, j: Integer;
|
||
RecNo: Integer;
|
||
Interfac: TSCSInterface;
|
||
ComponType: TComponentType;
|
||
begin
|
||
if Assigned(AMemTable) then
|
||
begin
|
||
ComponType := GetComponentType;
|
||
RecNo := AMemTable.RecNo;
|
||
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd.MasterSource := nil;
|
||
AMemTable.DisableControls;
|
||
try
|
||
for i := 0 to AMemTable.RecordCount - 1 do
|
||
begin
|
||
AMemTable.RecNo := i + 1;
|
||
|
||
//GetMem(Interfac, SizeOf(TInterface));
|
||
Interfac := TSCSInterface.Create(GForm);
|
||
TF_Main(GForm).DM.LoadFromMemTableToInterface(Interfac, AMemTable);
|
||
Interfac.IsLineCompon := ComponType.IsLine;
|
||
|
||
ResList.Add(Interfac);
|
||
|
||
TF_Main(GForm).DM.LoadPortInterfRelsToInterfaceFromMT(Interfac,
|
||
TF_Main(GForm).DM.MemTable_PortInterfRelEd,
|
||
TF_Main(GForm).DM.mtInterfInternalConnEd);
|
||
end;
|
||
finally
|
||
AMemTable.RecNo := RecNo;
|
||
AMemTable.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
begin
|
||
Result := nil;
|
||
ResList := TSCSInterfaces.Create(false);
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
LoadToInterfacesList(MemTable_InterfaceRelEd);
|
||
SavedMasterSource := MemTable_PortInterfRelEd.MasterSource;
|
||
MemTable_PortInterfRelEd.MasterSource := nil;
|
||
try
|
||
LoadToInterfacesList(MemTable_PortEd);
|
||
finally
|
||
MemTable_PortInterfRelEd.MasterSource := SavedMasterSource;
|
||
end;
|
||
end;
|
||
Result := ResList;
|
||
end;
|
||
}
|
||
function TF_AddComponent.CreateFormProperties: TList;
|
||
var
|
||
i: Integer;
|
||
RecNo: Integer;
|
||
ptrProperty: PProperty;
|
||
begin
|
||
Result := nil;
|
||
Result := TList.Create;
|
||
// Tolik 28/12/2019 --
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.RecordCount = 0 then
|
||
exit;
|
||
//
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
RecNo := MemTable_PropertyEd.RecNo;
|
||
try
|
||
MemTable_PropertyEd.DisableControls;
|
||
RecNo := MemTable_PropertyEd.RecNo;
|
||
for i := 0 to MemTable_PropertyEd.RecordCount - 1 do
|
||
begin
|
||
MemTable_PropertyEd.RecNo := i + 1;
|
||
//16.10.2007 GetMem(ptrProperty, SizeOf(TProperty));
|
||
New(ptrProperty);
|
||
ZeroMemory(ptrProperty, SizeOf(TProperty));
|
||
ptrProperty^ := GetPropertyFromTable(DataSource_MT_PropertyEd);
|
||
{ptrProperty.ID := MemTable_PropertyEd.FieldByName(fnID).AsInteger;
|
||
ptrProperty.ID_Property := MemTable_PropertyEd.FieldByName(fnIDProperty).AsInteger;
|
||
ptrProperty.Name := MemTable_PropertyEd.FieldByName(fnName).AsString;
|
||
ptrProperty.SysName := MemTable_PropertyEd.FieldByName(fnSysName).AsString;
|
||
ptrProperty.Value := MemTable_PropertyEd.FieldByName(fnPValue).AsString;
|
||
ptrProperty.TakeIntoConnect := MemTable_PropertyEd.FieldByName(fnTakeIntoConnect).AsInteger;
|
||
ptrProperty.TakeIntoJoin := MemTable_PropertyEd.FieldByName(fnTakeIntoJoin).AsInteger;
|
||
ptrProperty.IsCrossControl := MemTable_PropertyEd.FieldByName(fnIsCrossControl).AsInteger;
|
||
ptrProperty.IDCrossProperty := MemTable_PropertyEd.FieldByName(fnIDCrossProperty).AsInteger;
|
||
ptrProperty.IsNew := MemTable_PropertyEd.FieldByName(fnIsNew).AsBoolean;
|
||
ptrProperty.IsModified := MemTable_PropertyEd.FieldByName(fnIsModified).AsBoolean;
|
||
}
|
||
Result.Add(ptrProperty);
|
||
end;
|
||
finally
|
||
MemTable_PropertyEd.RecNo := RecNo;
|
||
MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.CreateFormCableCanalConnectors: TList;
|
||
var
|
||
ptrCableCanalConnector: PCableCanalConnector;
|
||
RecNo: Integer;
|
||
begin
|
||
Result := TList.Create;
|
||
// Tolik 28/12/2019 --
|
||
if TF_Main(GForm).DM.MemTable_CableCanalConnectorsEd.RecordCount = 0 then
|
||
exit;
|
||
//
|
||
with TF_Main(GForm).DM do
|
||
if MemTable_CableCanalConnectorsEd.Active then
|
||
begin
|
||
RecNo := MemTable_CableCanalConnectorsEd.RecNo;
|
||
MemTable_CableCanalConnectorsEd.DisableControls;
|
||
try
|
||
MemTable_CableCanalConnectorsEd.First;
|
||
while not MemTable_CableCanalConnectorsEd.Eof do
|
||
begin
|
||
GetZeroMem(ptrCableCanalConnector, SizeOf(TCableCanalConnector));
|
||
ptrCableCanalConnector.ID := MemTable_CableCanalConnectorsEd.FieldByName(fnID).AsInteger;
|
||
ptrCableCanalConnector.IDCableCanal := MemTable_CableCanalConnectorsEd.FieldByName(fnIDComponent).AsInteger;
|
||
ptrCableCanalConnector.IDNBConnector := MemTable_CableCanalConnectorsEd.FieldByName(fnIDNBConnector).AsInteger;
|
||
ptrCableCanalConnector.GuidNBConnector := MemTable_CableCanalConnectorsEd.FieldByName(fnGuidNBConnector).AsString;
|
||
ptrCableCanalConnector.ConnectorType := MemTable_CableCanalConnectorsEd.FieldByName(fnConnectorType).AsInteger;
|
||
ptrCableCanalConnector.IsModified := MemTable_CableCanalConnectorsEd.FieldByName(fnIsModified).AsBoolean;
|
||
ptrCableCanalConnector.IsNew := MemTable_CableCanalConnectorsEd.FieldByName(fnIsNew).AsBoolean;
|
||
Result.Add(ptrCableCanalConnector);
|
||
|
||
MemTable_CableCanalConnectorsEd.Next;
|
||
end;
|
||
MemTable_CableCanalConnectorsEd.RecNo := RecNo;
|
||
finally
|
||
MemTable_CableCanalConnectorsEd.EnableControls;
|
||
MemTable_CableCanalConnectorsEd.RecNo := RecNo;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.CreateFormCrossConnections: TSCSObjectList;
|
||
var
|
||
ptrDestCrossConnection: TSCSCrossConnection;
|
||
MemTable: TkbmMemTable;
|
||
RecNo: Integer;
|
||
i: Integer;
|
||
begin
|
||
Result := TSCSObjectList.Create(false);
|
||
MemTable := TF_Main(GForm).DM.mtCrossConnectionEd;
|
||
if MemTable.Active and (MemTable.RecordCount > 0) then
|
||
begin
|
||
RecNo := MemTable.RecNo;
|
||
MemTable.DisableControls;
|
||
try
|
||
for i := 0 to MemTable.RecordCount - 1 do
|
||
begin
|
||
MemTable.RecNo := i + 1;
|
||
|
||
//GetMem(ptrDestCrossConnection, SizeOf(TCrossConnection));
|
||
ptrDestCrossConnection := TSCSCrossConnection.Create(GForm);
|
||
TF_Main(GForm).DM.LoadCrossConnectionFromMemTable(MemTable, ptrDestCrossConnection);
|
||
Result.Add(ptrDestCrossConnection);
|
||
end;
|
||
finally
|
||
MemTable.RecNo := RecNo;
|
||
MemTable.EnableControls;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DeleteAllPortsAndInterf;
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
ClearPortInterfaceMemTable(MemTable_PortEd, true);
|
||
ClearPortInterfaceMemTable(MemTable_InterfaceRelEd, false);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
mtInterfInternalConnEd.First;
|
||
while not mtInterfInternalConnEd.Eof do
|
||
mtInterfInternalConnEd.Delete;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.DelRequiredEmptyProps: Boolean;
|
||
var
|
||
//PropSysNamesCanDel: TStringList;
|
||
i: Integer;
|
||
|
||
//PropsBookmarks: TStringList;
|
||
PropsNames: TStringList;
|
||
PropsSysNames: TStringList;
|
||
//MemTableBookmark: string;
|
||
MemTableBookmark: TBookMark;
|
||
MemTable: TkbmMemTable;
|
||
|
||
MessageStr: string;
|
||
StrValue: String;
|
||
begin
|
||
Result := false;
|
||
try
|
||
//PropSysNamesCanDel := TStringList.Create;
|
||
//PropSysNamesCanDel.Add(pnPortCount);
|
||
//PropSysNamesCanDel.Add(pnPortWireCount);
|
||
|
||
//PropsBookmarks := TStringList.Create;
|
||
PropsSysNames := TStringList.Create;
|
||
PropsNames := TStringList.Create;
|
||
MemTable := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.First;
|
||
while Not MemTable.Eof do
|
||
begin
|
||
if GPropRequired.IndexOf(MemTable.FieldByName(fnSysName).AsString) <> -1 then
|
||
begin
|
||
StrValue := PropValueToCaption(
|
||
MemTable.FieldByName(fnPValue).AsString,
|
||
MemTable.FieldByName(fnSysName).AsString, '',
|
||
MemTable.FieldByName(fnIDDataType).AsInteger,
|
||
TF_Main(GForm).FUOM, false);
|
||
if (StrValue = '') or (StrToFloatDef_My(StrValue, 0) <= 0) then
|
||
begin
|
||
//PropsBookmarks.Add(MemTable.Bookmark);
|
||
PropsSysNames.Add(MemTable.FieldByName(fnSysName).AsString);
|
||
PropsNames.Add(MemTable.FieldByName(fnName).AsString);
|
||
end;
|
||
end;
|
||
MemTable.Next;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
//MemTable.Bookmark := MemTableBookmark;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if PropsSysNames.Count > 0 then
|
||
begin
|
||
MessageStr := cAddComponent_Msg25_1 + ': ';
|
||
for i := 0 to PropsNames.Count - 1 do
|
||
begin
|
||
if i > 0 then
|
||
MessageStr := MessageStr + snCommaS;
|
||
MessageStr := MessageStr + PropsNames[i];
|
||
end;
|
||
MessageStr := MessageStr + snPoint + snNextRow+ cAddComponent_Msg25_2;
|
||
|
||
if MessageQuastYN(MessageStr) = IDYES then
|
||
begin
|
||
{MemTableBookmark := MemTable.Bookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
for i := 0 to PropsSysNames.Count - 1 do
|
||
if MemTable.Locate(fnSysName, PropsSysNames[i], []) then
|
||
begin
|
||
if MemTableBookmark = MemTable.Bookmark then
|
||
MemTableBookmark := '';
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedPropRel.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
MemTable.Delete;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
if MemTableBookmark <> '' then
|
||
MemTable.Bookmark := MemTableBookmark;
|
||
end;}
|
||
DelPropsBySysNames(PropsSysNames);
|
||
Result := true;
|
||
end;
|
||
end
|
||
else
|
||
Result := true;
|
||
|
||
FreeAndNil(PropsNames);
|
||
FreeAndNil(PropsSysNames);
|
||
//FreeAndNil(PropsBookmarks);
|
||
//FreeAndNil(PropSysNamesCanDel);
|
||
except
|
||
on E: Exception do AddExceptionToLogExt(ClassName, 'DelPortProps', E.Message);
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetComponentActualPrice: Double;
|
||
begin
|
||
Result := 0;
|
||
if CheckBox_HasNds.Checked then
|
||
Result := StrToFloatU(CorrectStrToFloat(CurrencyEdit_Price1.Text))
|
||
else
|
||
Result := StrToFloatU(CorrectStrToFloat(CurrencyEdit_NDS1.Text));
|
||
end;
|
||
|
||
function TF_AddComponent.GetComponentNameMarkByTemplate: string;
|
||
var
|
||
ProjComponent: TSCSComponent;
|
||
ProjComponentOwner: TSCSCatalog;
|
||
FormComponent: TSCSComponent;
|
||
begin
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
ProjComponent := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(GIDComponent);
|
||
if ProjComponent <> nil then
|
||
begin
|
||
if TF_Main(GForm).GSCSBase.CurrProject.Setting.MarkMode = mmTemplate then
|
||
begin
|
||
ProjComponentOwner := ProjComponent.GetFirstParentCatalog;
|
||
if ProjComponentOwner <> nil then
|
||
begin
|
||
FormComponent := CreateFormOnlyComponent;
|
||
FormComponent.ProjectOwner := ProjComponent.ProjectOwner;
|
||
try
|
||
Result := TF_Main(GForm).MakeNameMarkComponent(FormComponent, ProjComponentOwner, false);
|
||
finally
|
||
FreeAndNil(FormComponent);
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
begin
|
||
Result := TF_Main(GForm).MakeNameMarkComponent(ProjComponent, nil, false);
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetNormResourcesCountByCompPropRelID(AIDCompPropRel: Integer): Integer;
|
||
var
|
||
MemTable: TkbmMemTable;
|
||
//MemTableBookmark: string;
|
||
MemTableBookmark: TBookMark;
|
||
begin
|
||
Result := 0;
|
||
try
|
||
MemTable := TF_Main(GForm).DM.MemTable_NormsEd;
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.First;
|
||
while Not MemTable.Eof do
|
||
begin
|
||
if MemTable.FieldByName(fnIDCompPropRel).AsInteger = AIDCompPropRel then
|
||
Result := Result + 1;
|
||
MemTable.Next;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
//MemTable.Bookmark := MemTableBookmark;
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DeleteComponNormResByIDCompPropRel', E.Message);
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.GetSignType: Integer;
|
||
var
|
||
//BookMarkStr: string;
|
||
BookMarkStr: TBookMark;
|
||
begin
|
||
Result := oitProjectible;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
//BookMarkStr := TF_Main(GForm).DM.MemTable_PropertyEd.Bookmark;
|
||
BookMarkStr := TF_Main(GForm).DM.MemTable_PropertyEd.GetBookmark;
|
||
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.DisableControls;
|
||
try
|
||
//if SearchRecordMT(TF_Main(GForm).DM.MemTable_PropertyEd, 'ID_Data_Type', dtCompStateType) then
|
||
if TF_Main(GForm).DM.MemTable_PropertyEd.Locate(fnSysName, pnSignType, []) then
|
||
Result := TF_Main(GForm).DM.MemTable_PropertyEd.FieldByName(fnPValue).AsVariant;
|
||
|
||
// TF_Main(GForm).DM.MemTable_PropertyEd.Bookmark := BookMarkStr;
|
||
if BookMarkStr <> nil then
|
||
begin
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.GotoBookmark(BookMarkStr);
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.FreeBookmark(BookMarkStr);
|
||
end;
|
||
finally
|
||
TF_Main(GForm).DM.MemTable_PropertyEd.EnableControls;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ImportComponentByID(AID: Integer);
|
||
var
|
||
TemplateComponent: TSCSComponent;
|
||
begin
|
||
TemplateComponent := TSCSComponent.Create(GForm);
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(MemTable_PropertyEd, nil, GDeletedPropRel, nil);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
RemoveNoNativeInterfacesFromMemTable(MemTable_PortEd);
|
||
RemoveNoNativeInterfacesFromMemTable(MemTable_InterfaceRelEd);
|
||
SetAsDeletedMTRecords(MemTable_PortEd, MemTable_PortInterfRelEd, GDeletedInterfRel, GDeletedPortInterfRels);
|
||
SetAsDeletedMTRecords(MemTable_InterfaceRelEd, nil, GDeletedInterfRel, nil);
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(MemTable_CableCanalConnectorsEd, nil, GDeletedCableCanalConnectors, nil);
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SetAsDeletedMTRecords(mtCrossConnectionEd, nil, GDeletedCrossConnections, nil);
|
||
end;
|
||
|
||
TemplateComponent.LoadComponentByID(AID, false);
|
||
TemplateComponent.LoadComponentData([cdCableCanalConnectors,
|
||
//cdConections,
|
||
cdCrossConnections,
|
||
cdProperties,
|
||
cdInterfaces,
|
||
cdComponentType,
|
||
cdNorms,
|
||
cdResources]);
|
||
TemplateComponent.SetPortInterfRelInterfaces;
|
||
TemplateComponent.SetInterfacesParallel;
|
||
|
||
SendComponentToForm(TemplateComponent, true);
|
||
|
||
FreeAndNil(TemplateComponent);
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetAsDeletedMTRecords(AMemTable, ADetailMemTable: TkbmMemTable;
|
||
ADeletedIDs, ADeletedIDsFromDetail: TIntList);
|
||
var
|
||
SavedMasterSource: TDataSource;
|
||
|
||
procedure SetForMT(AMT: TkbmMemTable; ADelIDs: TIntList);
|
||
var
|
||
i: Integer;
|
||
RecNo: Integer;
|
||
TableID: Integer;
|
||
begin
|
||
if AMT.RecordCount > 0 then
|
||
begin
|
||
RecNo := AMT.RecNo;
|
||
AMT.DisableControls;
|
||
try
|
||
for i := 0 to AMT.RecordCount - 1 do
|
||
begin
|
||
AMT.RecNo := i + 1;
|
||
if AMT.FieldByName(fnIsNew).AsBoolean = false then
|
||
begin
|
||
TableID := AMT.FieldByName(fnID).AsInteger;
|
||
if (TableID > 0) and (ADelIDs.IndexOf(TableID) = -1) then
|
||
ADelIDs.Add(TableID);
|
||
end;
|
||
end;
|
||
finally
|
||
AMT.EnableControls;
|
||
AMT.RecNo := RecNo;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
begin
|
||
try
|
||
SavedMasterSource := nil;
|
||
if ADetailMemTable <> nil then
|
||
begin
|
||
SavedMasterSource := ADetailMemTable.MasterSource;
|
||
ADetailMemTable.MasterSource := nil;
|
||
end;
|
||
try
|
||
SetForMT(AMemTable, ADeletedIDs);
|
||
if (ADetailMemTable <> nil) and (ADeletedIDsFromDetail <> nil) then
|
||
SetForMT(ADetailMemTable, ADeletedIDsFromDetail);
|
||
finally
|
||
if ADetailMemTable <> nil then
|
||
ADetailMemTable.MasterSource := SavedMasterSource;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.SetAsDeletedMTRecords: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SendComponentToForm(AComponent: TSCSComponent; AFromChangeComponType: Boolean);
|
||
var
|
||
Stream: TStream;
|
||
ProjManCompon: TSCSComponent;
|
||
ComponPrice: Double;
|
||
IsEnableControls: Boolean;
|
||
begin
|
||
ProjManCompon := nil;
|
||
|
||
FIsLoadingForm := true;
|
||
try
|
||
ClearFormGrids;
|
||
|
||
GIDObjectIcon := AComponent.IDObjectIcon;
|
||
GIDSymbolImage := AComponent.IDSymbol;
|
||
GGUIDObjectIcon := AComponent.GUIDObjectIcon;
|
||
GGUIDSymbolImage := AComponent.GUIDSymbol;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
ProjManCompon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(AComponent.ID);
|
||
if ProjManCompon <> nil then
|
||
begin
|
||
if ProjManCompon.IsLine = biTrue then
|
||
begin
|
||
FTraccaLength := ProjManCompon.GetPartLength;
|
||
GT_NORMSTotalKolvo.Caption := GetCaptionNormsResourcesTotalKolvo(TF_Main(GForm).FUOM, FTraccaLength);
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if ProjManCompon.ProjectOwner <> nil then
|
||
ProjManCompon.ProjectOwner.DefineSpravObjectIconFromCAD(ProjManCompon.GUIDObjectIcon, ProjManCompon.GetFirstParentCatalog);
|
||
end;
|
||
end;
|
||
|
||
if AComponent.Picture <> nil then
|
||
try
|
||
AComponent.Picture.Position := 0;
|
||
if AComponent.Picture.Size > 0 then
|
||
begin
|
||
Stream := TFileStream.Create(ComponPictFileName, fmCreate);
|
||
Stream.Position := 0;
|
||
Stream.CopyFrom(AComponent.Picture, 0);
|
||
Stream.Position := 0;
|
||
FreeAndNil(Stream);
|
||
Image.Picture.LoadFromFile(ComponPictFileName);
|
||
DeleteFile(ComponPictFileName);
|
||
//Image.Picture.Bitmap.LoadFromStream(Stream);
|
||
//Stream.Free;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
ShowMessage(cAddComponent_Msg5);
|
||
end;
|
||
|
||
if Assigned(AComponent.Description) then
|
||
if AComponent.Description.Size > 0 then
|
||
begin
|
||
AComponent.Description.Position := 0;
|
||
meDescription.Lines.LoadFromStream(AComponent.Description);
|
||
end;
|
||
|
||
if not AFromChangeComponType then
|
||
begin
|
||
Edit_Name.Text := AComponent.Name;
|
||
//Edit_Izm.Text := AComponent.Izm; //#From Oleg# 2007.07.19
|
||
|
||
MaskEdit_Cyper.Text := AComponent.Cypher;
|
||
|
||
Edit_ArticulDistributor.Text := AComponent.ArticulDistributor;
|
||
Edit_ArticulProducer.Text := AComponent.ArticulProducer;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
seIndex.Properties.OnChange := nil;
|
||
try
|
||
seIndex.Value := AComponent.MarkID;
|
||
finally
|
||
seIndex.Properties.OnChange := seIndexPropertiesChange;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
AComponent.LoadComponentType;
|
||
ComboBox_ComponentType.Properties.OnChange := nil;
|
||
try
|
||
case TF_Main(GForm).GDBMode of
|
||
bkNormBase:
|
||
SelectItemByIDinCombo(ComboBox_ComponentType, AComponent.ID_ComponentType);
|
||
bkProjectManager:
|
||
begin
|
||
AddItemToCombo(ComboBox_ComponentType, AComponent.ComponentType.Name, AComponent.GUIDComponentType, AComponent.ID_ComponentType,
|
||
AComponent.GUIDComponentType, AComponent.ID_ComponentType, nil);
|
||
SelectItemByGUIDinCombo(ComboBox_ComponentType, AComponent.GUIDComponentType);
|
||
end;
|
||
end;
|
||
finally
|
||
ComboBox_ComponentType.Properties.OnChange := ComboBox_ComponentTypePropertiesChange;
|
||
end;
|
||
FCurrComponentType := AComponent.ComponentType;
|
||
|
||
//*** <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//cePriceSupply.Properties.OnChange := nil;
|
||
cePriceSupply.Value := RoundCP(AComponent.PriceSupply);
|
||
|
||
//cePriceSupply.Properties.OnChange := cePriceSupplyPropertiesChange;
|
||
//FSuppliesKind := F_NormBase.DM.GetSuppliesKindByID(AComponent.IDSuppliesKind, AComponent.GUIDSuppliesKind);
|
||
FSuppliesKind := TF_Main(GForm).DM.GetSuppliesKindByID(AComponent.IDSuppliesKind, AComponent.GUIDSuppliesKind);
|
||
DefineSuppliesKindWorkValuesToFields(FSuppliesKind, TF_Main(GForm).FUOM);
|
||
|
||
cbSuppliesKind.Properties.OnChange := nil;
|
||
if AComponent.GUIDSuppliesKind <> '' then
|
||
SelectItemByGUIDinCombo(cbSuppliesKind, AComponent.GUIDSuppliesKind)
|
||
else
|
||
SelectItemByIDinCombo(cbSuppliesKind, AComponent.IDSuppliesKind);
|
||
cbSuppliesKind.Properties.OnChange := cbSuppliesKindPropertiesChange;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
CheckBox_HasNds.Checked := IntToBool(AComponent.HASNDS);
|
||
|
||
ShowNDSPrice;
|
||
ComponPrice := AComponent.Price;
|
||
if CheckPriceTransformToUOMByCompType(@FCurrComponentType) then
|
||
ComponPrice := FloatInUOM(ComponPrice, TF_Main(GForm).FUOM, umMetr);
|
||
case AComponent.HASNDS of
|
||
biFalse:
|
||
begin // <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><>
|
||
CurrencyEdit_Nds1.Value := Round3(ComponPrice);
|
||
//CurrencyEdit_Nds2.Value := Round3(AComponent.Price *
|
||
// (TF_Main(GForm).GLocalCurrencyM.Data.Ratio / TF_Main(GForm).GLocalCurrencyS.Data.Ratio));
|
||
CurrencyEdit_Nds2.Value := Round3(GetPriceAfterChangeCurrency(ComponPrice,
|
||
TF_Main(GForm).GLocalCurrencyM.Data, TF_Main(GForm).GLocalCurrencyS.Data));
|
||
|
||
CurrencyEdit_Price1.Value := Round3(PriceWithoutNDS(ComponPrice, TF_Main(GForm).GNDS));
|
||
//CurrencyEdit_Price2.Value := Round3( PriceWithoutNDS( AComponent.Price, TF_Main(GForm).GNDS) *
|
||
// (TF_Main(GForm).GLocalCurrencyM.Data.Ratio / TF_Main(GForm).GLocalCurrencyS.Data.Ratio));
|
||
CurrencyEdit_Price2.Value := Round3(GetPriceAfterChangeCurrency(PriceWithoutNDS(ComponPrice, TF_Main(GForm).GNDS),
|
||
TF_Main(GForm).GLocalCurrencyM.Data, TF_Main(GForm).GLocalCurrencyS.Data));
|
||
end;
|
||
biTrue:
|
||
begin // <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> - <20><><EFBFBD>
|
||
CurrencyEdit_Price1.Value := Round3(ComponPrice);
|
||
//CurrencyEdit_Price2.Value := Round3(AComponent.Price *
|
||
// (TF_Main(GForm).GLocalCurrencyM.Data.Ratio / TF_Main(GForm).GLocalCurrencyS.Data.Ratio));
|
||
CurrencyEdit_Price2.Value := Round3(GetPriceAfterChangeCurrency(ComponPrice,
|
||
TF_Main(GForm).GLocalCurrencyM.Data, TF_Main(GForm).GLocalCurrencyS.Data));
|
||
end;
|
||
end;
|
||
end;
|
||
DefineSupplyPriceByComponActualPrice;
|
||
|
||
Edit_NameShort.Text := AComponent.NameShort;
|
||
Edit_Izm.Text := AComponent.Izm;
|
||
Edit_NameMark.Text := AComponent.NameMark;
|
||
//Edit_MarkStr.Text := AComponent.MarkStr;
|
||
Edit_Notice.Text := AComponent.Notice;
|
||
|
||
//CheckBox_IsUserMark.Checked := IntToBool(IsUserMark);
|
||
if AComponent.IsUserMark = biTrue then
|
||
SetValueToCXRadioBottonAsNoChange(rbMarkByDefault, true)
|
||
else
|
||
SetValueToCXRadioBottonAsNoChange(rbMarkByTemplate, true);
|
||
|
||
//case ISComplect of
|
||
// 0: RadioGroup_CanComplect.ItemIndex := 1;
|
||
// 1: RadioGroup_CanComplect.ItemIndex := 0;
|
||
//end;
|
||
cbCanComplect.Checked := IntToBool(AComponent.ISComplect);
|
||
cbIsMarkInCaptions.Checked := IntToBool(AComponent.IsMarkInCaptions);
|
||
|
||
//case HASNDS of
|
||
// 0: RadioGroup_HasNds.ItemIndex := 1;
|
||
// 1: RadioGroup_HasNds.ItemIndex := 0;
|
||
//end;
|
||
|
||
ComboBox_ComponentType.Properties.OnChange := nil;
|
||
VisibleInterfaceColumns(AComponent.IsLine = biTrue);
|
||
ComboBox_ComponentType.Properties.OnChange := ComboBox_ComponentTypePropertiesChange;
|
||
|
||
//DefineParamsBySupply(false);
|
||
|
||
SpinEdit_UserLength.Value := FloatInUOM(AComponent.UserLength, umMetr, TF_Main(GForm).FUOM);
|
||
//SpinEdit_ObjectIconStep.Value := AComponent.ObjectIconStep;
|
||
cbDismount.OnClick := nil;
|
||
try
|
||
cbDismount.Checked := IntToBool(AComponent.IsDismount);
|
||
finally
|
||
cbDismount.OnClick := cbDismountClick;
|
||
end;
|
||
cbUseDismounted.Checked := IntToBool(AComponent.IsUseDismounted);
|
||
|
||
if AComponent.GUIDProducer <> '' then
|
||
SelectItemByGUIDinCombo(ComboBox_Producer, AComponent.GUIDProducer)
|
||
else
|
||
SelectItemByIDinCombo(ComboBox_Producer, AComponent.ID_Producer);
|
||
if AComponent.GUIDNetType <> '' then
|
||
SelectItemByGUIDinCombo(ComboBox_NetType, AComponent.GUIDNetType)
|
||
else
|
||
SelectItemByIDinCombo(ComboBox_NetType, AComponent.IDNetType);
|
||
|
||
SelectItemByIDinCombo(cbSpecification, AComponent.IDCompSpecification);
|
||
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
{ID_NetType := TObject.Create;
|
||
for i := 0 to ComboBox_NetType.Properties.Items.Count - 1 do
|
||
begin
|
||
ID_NetType := ComboBox_NetType.Properties.Items.Objects[i];
|
||
if (ID_NetType as TID).ID = IDNetType then
|
||
begin
|
||
ComboBox_NetType.ItemIndex := i;
|
||
ComboBox_NetType.Refresh;
|
||
Break;
|
||
end;
|
||
end;}
|
||
|
||
//With TF_Main(GForm).DM do
|
||
// LoadMT(GID_COMPONENT, tkComponIconsED, ComponIconsFields);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if not AFromChangeComponType then
|
||
begin
|
||
LoadMT(AComponent.ID, tkInterfRelED, InterfFields, AFromChangeComponType);
|
||
|
||
//MemTable_InterfaceRelEd.LoadFromDataSet(MemTable_InterfaceRel, []);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AComponent.IsLine = biFalse then
|
||
begin
|
||
//With TF_Main(GForm).DM do
|
||
LoadMT(AComponent.ID, tkPortED, PortFields, AFromChangeComponType);
|
||
LoadMT(AComponent.ID, tkPortInterfRelED, nil, AFromChangeComponType);
|
||
DefineAllPortInterfRelNames;
|
||
end;
|
||
LoadMT(AComponent.ID, tkInterfInternalConnED, nil, AFromChangeComponType);
|
||
end
|
||
else
|
||
SendInterfacesPortsToMemTable(AComponent, true, false);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//With TF_Main(GForm).DM do
|
||
if not AFromChangeComponType then
|
||
LoadMT(AComponent.ID, tkPropertyRelED, PropertFields, AFromChangeComponType)
|
||
else
|
||
FillMemTablePropFromList(MemTable_PropertyEd, AComponent.Properties, true);
|
||
|
||
//MemTable_PropertyEd.LoadFromDataSet(MemTable_Property, [], AFromChangeComponType);
|
||
LoadComponIcon(AComponent.IDObjectIcon, AComponent.GUIDObjectIcon, Image_CompIcons);
|
||
LoadComponIcon(AComponent.IDSymbol, AComponent.GUIDSymbol, Image_Symbol);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
//With TF_Main(GForm).DM do
|
||
if not AFromChangeComponType then
|
||
LoadMT(AComponent.ID, tkComplectED, ComplectsFields, AFromChangeComponType);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AComponent.ComponentType.SysName = ctsnCableChannel then
|
||
if not AFromChangeComponType then
|
||
LoadMT(AComponent.ID, tkCableCanalConnectorsED, CableCanalConnectorsFields, AFromChangeComponType)
|
||
else
|
||
FillMemTableCableCanalConnectors(MemTable_CableCanalConnectorsEd, AComponent.CableCanalConnectors, true);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if AComponent.ComponentType.SysName = ctsnCupBoard then
|
||
if not AFromChangeComponType then
|
||
LoadMT(AComponent.ID, tkCrossConnectionED, nil, AFromChangeComponType)
|
||
end;
|
||
LoadNormsResources(AFromChangeComponType);
|
||
|
||
IsEnableControls := true;
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
GLastPort := TF_Main(GForm).DM.GetComponentLastPort(AComponent.ID);
|
||
//26.05.2009 EnableControl(false);
|
||
IsEnableControls := false;
|
||
//Caption := '<27><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
|
||
end
|
||
else
|
||
begin
|
||
{$IF Defined (FINAL_SCS)}
|
||
IsEnableControls := Not FIsTemplate;
|
||
{$IFEND}
|
||
end;
|
||
EnableControl(IsEnableControls);
|
||
|
||
SetVisibleByIsLine(AComponent.ComponentType.IsLine);
|
||
finally
|
||
FIsLoadingForm := false;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SendInterfacesPortsToMemTable(ASCSComponent: TSCSComponent; AAsNew, AAskDelInterf: Boolean);
|
||
var
|
||
ComponentType: TComponentType;
|
||
Interf: TSCSInterface;
|
||
InternalConnected: TSCSInterface;
|
||
ptrPortInterfRel: PPortInterfRel;
|
||
NewID: Integer;
|
||
i, j: Integer;
|
||
WorkMemTable: TkbmMemtable;
|
||
SavedMasterSource: TDataSource;
|
||
PortInterfRelName: string;
|
||
|
||
CurrNumPair: Integer;
|
||
|
||
{procedure ClearPortInterfaceMemTable(AMemTable: TkbmMemTable; AIsPort: Boolean);
|
||
var
|
||
i: Integer;
|
||
NumPair: Integer;
|
||
CanDelete: Boolean;
|
||
begin
|
||
AMemTable.Last;
|
||
while not AMemTable.Bof do
|
||
begin
|
||
if (AMemTable.FieldByName(fnIsBusy).AsInteger = biFalse) and
|
||
(AMemTable.FieldByName(fnIsNative).AsBoolean = True) then
|
||
begin
|
||
NumPair := 0;
|
||
if not AIsPort then
|
||
NumPair := AMemTable.FieldByName(fnNumPair).AsInteger;
|
||
|
||
CanDelete := false;
|
||
if AMemTable.FieldByName(fnIsNew).AsBoolean then
|
||
CanDelete := true
|
||
else if not CheckInterfIsUse(GForm, GIDComponent, AMemTable.FieldByName(fnID).AsInteger, NumPair) then
|
||
CanDelete := true;
|
||
|
||
if CanDelete then
|
||
begin
|
||
if (AMemTable.FieldByName(fnIsNew).AsBoolean = false) and
|
||
(AMemTable.FieldByName(fnIsNative).AsBoolean = true) then
|
||
GDeletedInterfRel.Add(AMemTable.FieldByName(fnID).AsInteger);
|
||
AMemTable.Delete;
|
||
Continue; ///// CONTINUE /////
|
||
end;
|
||
end;
|
||
AMemTable.Prior;
|
||
end;
|
||
end;}
|
||
|
||
begin
|
||
ComponentType := GetComponentType;
|
||
CurrNumPair := 0;
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (MemTable_PortEd.RecordCount > 0) or (MemTable_InterfaceRelEd.RecordCount > 0) then
|
||
begin
|
||
if Not AAskDelInterf or (MessageModal(cQuastLeavePresentInterfaces, ApplicationName, MB_ICONINFORMATION or MB_YESNO) = IDNO) then
|
||
begin
|
||
//ClearPortInterfaceMemTable(MemTable_PortEd, true);
|
||
// ClearPortInterfaceMemTable(MemTable_InterfaceRelEd, false);
|
||
//
|
||
// //*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// mtInterfInternalConnEd.First;
|
||
// while not mtInterfInternalConnEd.Eof do
|
||
// mtInterfInternalConnEd.Delete;
|
||
|
||
DeleteAllPortsAndInterf;
|
||
end
|
||
else
|
||
begin
|
||
CurrNumPair := GetMaxNumPair(MemTable_InterfaceRelEd);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> 0
|
||
for i := 0 to ASCSComponent.Interfaces.Count - 1 do
|
||
ASCSComponent.Interfaces[i].NumPair := 0;
|
||
end;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID <20><>
|
||
for i := 0 to ASCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
Interf := ASCSComponent.Interfaces[i];
|
||
|
||
NewID := GenNewID(tkInterfRelED);
|
||
Interf.ClearIOfIRels;
|
||
if Interf.ParallelInterface <> nil then
|
||
begin
|
||
case ComponentType.IsLine of
|
||
biTrue:
|
||
begin
|
||
Interf.ParallelInterface.IDAdverse := NewID;
|
||
if (Interf.NumPair = 0) and (Interf.ParallelInterface.NumPair = 0) then
|
||
begin
|
||
Inc(CurrNumPair);
|
||
Interf.NumPair := CurrNumPair;
|
||
Interf.ParallelInterface.NumPair := CurrNumPair;
|
||
end;
|
||
end;
|
||
biFalse:
|
||
begin
|
||
Interf.ParallelInterface.IDAdverse := 0;
|
||
Interf.IDAdverse := 0;
|
||
end;
|
||
end;
|
||
end;
|
||
//if Interf.PortOwner <> nil then
|
||
// begin
|
||
// ptrPortInterfRel := Interf.PortOwner.GetPortInterfRelByInterfID(Interf.ID);
|
||
// if ptrPortInterfRel <> nil then
|
||
// ptrPortInterfRel.IDInterfRel := NewID;
|
||
// end;
|
||
////if Interf.IsPort = biTrue then ##ISPORT
|
||
//for j := 0 to Interf.PortInterfRels.Count - 1 do
|
||
// begin
|
||
// ptrPortInterfRel := Interf.PortInterfRels[j];
|
||
// ptrPortInterfRel.ID := GenNewID(tkPortInterfRelED);
|
||
// ptrPortInterfRel.IDPort := NewID;
|
||
// end;
|
||
Interf.NewID := NewID;
|
||
Interf.ID_Component := GIDComponent;
|
||
Interf.IsBusy := biFalse;
|
||
Interf.IsNew := True;
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to ASCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
Interf := ASCSComponent.Interfaces[i];
|
||
for j := 0 to Interf.PortInterfRels.Count - 1 do
|
||
begin
|
||
ptrPortInterfRel := Interf.PortInterfRels[j];
|
||
ptrPortInterfRel.ID := GenNewID(tkPortInterfRelED);
|
||
ptrPortInterfRel.IDPort := Interf.NewID;
|
||
InternalConnected := ASCSComponent.GetInterfaceByID(ptrPortInterfRel.IDInterfRel);
|
||
//if InternalConnected <> nil then
|
||
ptrPortInterfRel.IDInterfRel := InternalConnected.NewID;
|
||
ptrPortInterfRel.IsNew := True;
|
||
end;
|
||
end;
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ID-<2D><>
|
||
for i := 0 to ASCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
Interf := ASCSComponent.Interfaces[i];
|
||
Interf.ID := Interf.NewID;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to ASCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
Interf := ASCSComponent.Interfaces[i];
|
||
WorkMemTable := nil;
|
||
case Interf.IsPort of
|
||
biTrue:
|
||
WorkMemTable := MemTable_PortEd;
|
||
biFalse:
|
||
WorkMemTable := MemTable_InterfaceRelEd;
|
||
end;
|
||
|
||
if WorkMemTable <> nil then
|
||
begin
|
||
LoadInterfaceToMemTable(Interf, WorkMemTable, MemTable_PortInterfRelEd, mtInterfInternalConnEd, meMake,
|
||
ComponentType.IsLine, true, false);
|
||
WorkMemTable.Edit;
|
||
WorkMemTable.FieldByName(fnIsNew).AsBoolean := AAsNew;
|
||
WorkMemTable.Post;
|
||
end;
|
||
end;
|
||
LoadInterfRelNamesToMemTable(MemTable_PortEd);
|
||
LoadInterfRelNamesToMemTable(MemTable_InterfaceRelEd);
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if MemTable_PortInterfRelEd.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
SavedMasterSource := MemTable_PortInterfRelEd.MasterSource;
|
||
MemTable_PortInterfRelEd.MasterSource := nil;
|
||
try
|
||
for j := 0 to MemTable_PortInterfRelEd.RecordCount - 1 do
|
||
begin
|
||
PortInterfRelName := '';
|
||
Interf := ASCSComponent.GetInterfaceByID(MemTable_PortInterfRelEd.FieldByName(fnIDInterfRel).AsInteger);
|
||
if Interf <> nil then
|
||
PortInterfRelName := Interf.LoadName;
|
||
|
||
MemTable_PortInterfRelEd.RecNo := j + 1;
|
||
MemTable_PortInterfRelEd.Edit;
|
||
MemTable_PortInterfRelEd.FieldByName(fnName).AsString := PortInterfRelName;
|
||
MemTable_PortInterfRelEd.FieldByName(fnIsNew).AsBoolean := AAsNew;
|
||
MemTable_PortInterfRelEd.Post;
|
||
end;
|
||
finally
|
||
MemTable_PortInterfRelEd.MasterSource := SavedMasterSource;
|
||
end;
|
||
end;
|
||
DefineAllPortInterfRelNames;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineComponCurrencies;
|
||
begin
|
||
//FCurrency := TF_Main(GForm).GCurrencyM;
|
||
//FNBCurrency := TF_Main(GForm).FNormBase.GCurrencyM;
|
||
FCurrency := TF_Main(GForm).GLocalCurrencyM.Data;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
|
||
FIDCatalog := 0;
|
||
if GFormMode = fmMake then
|
||
FIDCatalog := TF_Main(GForm).GSCSBase.SCSCatalog.ID
|
||
else
|
||
FIDCatalog := TF_Main(GForm).DM.GetComponCatalogOwnerID(GIDComponent);
|
||
FNBCurrency := TF_Main(GForm).DM.GetCatalogOrComponCurrencyProperGlobalMainInNB(FIDCatalog, GIDComponent);
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineComponSecondPrice(AFirstPrice: Double);
|
||
var
|
||
RoundValue: Double;
|
||
begin
|
||
//RoundValue := Round3(AFirstPrice * (TF_Main(GForm).GLocalCurrencyM.Data.Ratio / TF_Main(GForm).GLocalCurrencyS.Data.Ratio));
|
||
RoundValue := Round3(GetPriceAfterChangeCurrency(AFirstPrice, TF_Main(GForm).GLocalCurrencyM.Data, TF_Main(GForm).GLocalCurrencyS.Data));
|
||
CurrencyEdit_Price2.Value := RoundValue;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineNormResByProperty(Aproperty: PProperty);
|
||
var
|
||
Compon: TSCSComponent;
|
||
SCSNorm: TSCSNorm;
|
||
ResourceRel: TSCSResourceRel;
|
||
|
||
MemTable: TkbmMemTable;
|
||
//MemTableBookmark: String;
|
||
MemTableBookmark: TBookMark;
|
||
|
||
DeletedFromMemTable: Boolean;
|
||
FDeletedNormIDs: TIntList;
|
||
FDeletedResIDs: TIntList;
|
||
ObjFromMemTable: TRapList;
|
||
i: Integer;
|
||
begin
|
||
try
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
Compon := CreateFormOnlyComponent;
|
||
ObjFromMemTable := TRapList.Create;
|
||
MemTable := TF_Main(GForm).DM.MemTable_NormsEd;
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.First;
|
||
while not MemTable.Eof do
|
||
begin
|
||
case MemTable.FieldByName(fnIsResource).AsBoolean of
|
||
true: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
begin
|
||
ResourceRel := TSCSResourceRel.Create(GForm, ntProj);
|
||
TF_Main(GForm).DM.LoadFromMTToResource(MemTable, ResourceRel, tkNormEd);
|
||
ResourceRel.IDMaster := Compon.ID;
|
||
Compon.NormsResources.Resources.Add(ResourceRel);
|
||
InsertValueToSortetRapList(ResourceRel, ObjFromMemTable);
|
||
end;
|
||
false: // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
begin
|
||
SCSNorm := TSCSNorm.Create(GForm, ntProj);
|
||
TF_Main(GForm).DM.LoadFromMTToNorm(MemTable, SCSNorm);
|
||
SCSNorm.IDMaster := Compon.ID;
|
||
Compon.NormsResources.Norms.Add(SCSNorm);
|
||
InsertValueToSortetRapList(SCSNorm, ObjFromMemTable);
|
||
end;
|
||
end;
|
||
MemTable.Next;
|
||
end;
|
||
|
||
Compon.ProjectOwner := TF_Main(GForm).GSCSBase.CurrProject;
|
||
|
||
FDeletedNormIDs := TIntList.Create;
|
||
FDeletedResIDs := TIntList.Create;
|
||
try
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
DefineComponNormResByProperty(Compon, Aproperty, false, FDeletedNormIDs, FDeletedResIDs);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (FDeletedNormIDs.Count > 0) or (FDeletedResIDs.Count > 0) then
|
||
begin
|
||
MemTable.Last;
|
||
while Not MemTable.Bof do
|
||
begin
|
||
DeletedFromMemTable := false;
|
||
if MemTable.FieldByName(fnIsResource).AsBoolean then
|
||
begin
|
||
if FDeletedResIDs.IndexOf(MemTable.FieldByName(fnID).AsInteger) <> -1 then
|
||
begin
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedResourceID.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
{if MemTableBookmark = MemTable.Bookmark then
|
||
MemTableBookmark := '';}
|
||
MemTable.Delete;
|
||
DeletedFromMemTable := true;
|
||
end;
|
||
end
|
||
else
|
||
if FDeletedNormIDs.IndexOf(MemTable.FieldByName(fnID).AsInteger) <> -1 then
|
||
begin
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedNormID.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
{ if MemTableBookmark = MemTable.Bookmark then
|
||
MemTableBookmark := '';}
|
||
MemTable.Delete;
|
||
DeletedFromMemTable := true;
|
||
end;
|
||
|
||
if Not DeletedFromMemTable then
|
||
MemTable.Prior;
|
||
end;
|
||
//GDeletedNormID.Assign(FDeletedNormIDs, laOr);
|
||
//GDeletedResourceID.Assign(FDeletedResIDs, laOr);
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to Compon.NormsResources.Norms.Count - 1 do
|
||
begin
|
||
SCSNorm := Compon.NormsResources.Norms[i];
|
||
if GetValueIndexFromSortedRapList(SCSNorm, ObjFromMemTable) = -1 then
|
||
begin
|
||
SCSNorm.ID := GenNewID(tkNormEd);
|
||
SCSNorm.IsNew := True;
|
||
TF_Main(GForm).DM.LoadFromNormToMT(SCSNorm, MemTable, meMake, -1, FTraccaLength, nil);
|
||
{ if MemTableBookmark = '' then
|
||
MemTableBookmark := MemTable.Bookmark;}
|
||
end;
|
||
end;
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to Compon.NormsResources.Resources.Count - 1 do
|
||
begin
|
||
ResourceRel := Compon.NormsResources.Resources[i];
|
||
if GetValueIndexFromSortedRapList(ResourceRel, ObjFromMemTable) = -1 then
|
||
begin
|
||
ResourceRel.ID := GenNewID(tkResourceRelEd);
|
||
ResourceRel.IsNew := True;
|
||
TF_Main(GForm).DM.LoadFromResourceToMT(ResourceRel, MemTable, meMake, tkNormEd, FTraccaLength, nil);
|
||
{ if MemTableBookmark = '' then
|
||
MemTableBookmark := MemTable.Bookmark;}
|
||
end;
|
||
end;
|
||
finally
|
||
FreeAndNil(FDeletedNormIDs);
|
||
FreeAndNil(FDeletedResIDs);
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
FreeAndNil(Compon);
|
||
FreeAndNil(ObjFromMemTable);
|
||
{if MemTableBookmark <> '' then
|
||
MemTable.Bookmark := MemTableBookmark;}
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DefineNormResByProperty', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineParamsBySupply(APriceSupply: Double; ADefIzm: Boolean);
|
||
var
|
||
IDSuppliesKind: Integer;
|
||
GUIDSuppliesKind: string;
|
||
SuppliesKind: TSuppliesKind;
|
||
Key: Word;
|
||
|
||
NewComponPrice: Double;
|
||
begin
|
||
IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
|
||
SuppliesKind := FSuppliesKind; //F_NormBase.DM.GetSuppliesKindByID(IDSuppliesKind);
|
||
if (SuppliesKind.ID <> 0) or (SuppliesKind.GUID <> '') then
|
||
begin
|
||
NewComponPrice := Round3(APriceSupply / SuppliesKind.UnitKolvo);
|
||
if CheckPriceTransformToUOMByCompType(@FCurrComponentType) then
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><>. <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD>) <20> <20><><EFBFBD>. <20><>.<2E><><EFBFBD><EFBFBD><EFBFBD>
|
||
NewComponPrice := FloatInUOM(NewComponPrice, TF_Main(GForm).FUOM, TF_Main(GForm).FUOMSupplKind);
|
||
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20> <20><><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>- <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if not CheckBox_HasNds.Checked then
|
||
NewComponPrice := PriceWithoutNDS(NewComponPrice, TF_Main(GForm).GNDS);
|
||
|
||
CurrencyEdit_Price1.Value := NewComponPrice;
|
||
DefineComponSecondPrice(CurrencyEdit_Price1.Value);
|
||
|
||
ShowNDSPrice;
|
||
|
||
//Key := 0;
|
||
//CurrencyEdit_Price1_KeyUp(CurrencyEdit_Price1, Key, []);
|
||
|
||
if ADefIzm then
|
||
begin
|
||
if SuppliesKind.Izm <> '' then
|
||
if GetNameUOMForCompon('', @FCurrComponentType, TF_Main(GForm).FUOM) = '' then
|
||
Edit_Izm.Text := SuppliesKind.Izm;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineSupplyPriceByComponActualPrice;
|
||
begin
|
||
DefineSupplyPriceByComponPrice(GetComponentActualPrice);
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineSupplyPriceByComponPrice(AComponPrice: Double);
|
||
var
|
||
SavedOnChange: TNotifyEvent;
|
||
ComponPrice: Double;
|
||
begin
|
||
if FSuppliesKind.ID > 0 then
|
||
begin
|
||
SavedOnChange := cePriceSupply.Properties.OnChange;
|
||
cePriceSupply.Properties.OnChange := nil;
|
||
try
|
||
ComponPrice := AComponPrice;
|
||
if CheckPriceTransformToUOMByCompType(@FCurrComponentType) then
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD>. <20><>.<2E><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
ComponPrice := FloatInUOM(ComponPrice, TF_Main(GForm).FUOMSupplKind, TF_Main(GForm).FUOM);
|
||
|
||
cePriceSupply.Value := RoundCP(ComponPrice * FSuppliesKind.UnitKolvo);
|
||
finally
|
||
cePriceSupply.Properties.OnChange := SavedOnChange;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefinecbApplyCompData;
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
if cbApplyForCurrentDir.Checked then
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
cbApplyComponData.Visible := IntToBool(FApplyComponElementsVisible[Grid.ActiveLevel.Index]);
|
||
cbApplyComponData.Checked := IntToBool(FApplyComponElementsChecked[Grid.ActiveLevel.Index]);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DefineUniversalInterfacesByProperty(AProp: PProperty; const ACompTypeSysName: string);
|
||
var
|
||
MemTableProp: TkbmMemTable;
|
||
//MemTablePropBookmark: string;
|
||
MemTablePropBookmark, MemTablePortBookmark,MemTableInterfRelBookmark: TBookMark;
|
||
MemTablePort: TkbmMemTable;
|
||
//MemTablePortBookmark: string;
|
||
MemTableInterfRel: TkbmMemTable;
|
||
//MemTableInterfRelBookmark: string;
|
||
MemTablePortInterfRel: TkbmMemTable;
|
||
MemTableInterfInternalConn: TkbmMemTable;
|
||
|
||
Spravochnik: TSpravochnik;
|
||
//SprInterface: TNBInterface;
|
||
|
||
mePortRel: TmeInterfaceRel;
|
||
meInterfRel: TmeInterfaceRel;
|
||
InterfFinded: Boolean;
|
||
|
||
PortCount: Integer;
|
||
PortWireCount: Integer;
|
||
WireCount: Integer;
|
||
|
||
PropGender: ShortInt;
|
||
InterfSection: Double;
|
||
InterfGuid: String;
|
||
|
||
InterfRelCount: Integer;
|
||
KeyValues: OleVariant;
|
||
|
||
PropSysNamesConduitElmtSideDimensions: TStringList;
|
||
IDChangedInterfaces: TIntList;
|
||
|
||
FindedInterf: Boolean;
|
||
|
||
i: Integer;
|
||
|
||
function GetNewInterfPortRel(const AGUID: string): TmeInterfaceRel;
|
||
var
|
||
SprInterface: TNBInterface;
|
||
begin
|
||
Result.ID := GGenLastInterfID + 1;
|
||
Result.ID_COMPONENT := GIDComponent;
|
||
Result.IsLineCompon := FCurrComponentType.IsLine;
|
||
Result.Color := clWhite;
|
||
Result.ID_INTERFACE := 0;
|
||
Result.IsBusy := biFalse;
|
||
Result.SignType := oitProjectible;
|
||
|
||
Result.Count := 1;
|
||
|
||
SprInterface := Spravochnik.CreateInterfaceByStandartGUID(AGUID);
|
||
Result.ID_INTERFACE := SprInterface.ID;
|
||
Result.GUIDInterface := AGUID;
|
||
Result.Name := SprInterface.Name;
|
||
end;
|
||
|
||
begin
|
||
try
|
||
if (AProp <> nil) or (ACompTypeSysName <> '') then
|
||
begin
|
||
|
||
MemTableProp := TF_Main(GForm).DM.MemTable_PropertyEd;
|
||
//MemTablePropBookmark := MemTableProp.Bookmark;
|
||
MemTablePropBookmark := MemTableProp.GetBookmark;
|
||
|
||
MemTablePort := TF_Main(GForm).DM.MemTable_PortEd;
|
||
//MemTablePortBookmark := MemTablePort.Bookmark;
|
||
MemTablePortBookmark := MemTablePort.GetBookmark;
|
||
|
||
MemTableInterfRel := TF_Main(GForm).DM.MemTable_InterfaceRelEd;
|
||
//MemTableInterfRelBookmark := MemTableInterfRel.Bookmark;
|
||
MemTableInterfRelBookmark := MemTableInterfRel.getBookmark;
|
||
|
||
MemTablePortInterfRel := TF_Main(GForm).DM.MemTable_PortInterfRelEd;
|
||
MemTableInterfInternalConn := TF_Main(GForm).DM.mtInterfInternalConnEd;
|
||
|
||
Spravochnik := TF_Main(GForm).GetSpravochnik;
|
||
|
||
PropSysNamesConduitElmtSideDimensions := CreateStringListSorted; //TStringList.Create;
|
||
PropSysNamesConduitElmtSideDimensions.Add(pnConduitElmentSideDimensions); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
PropSysNamesConduitElmtSideDimensions.Add(pnConduitElmentSide1Dimensions); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
PropSysNamesConduitElmtSideDimensions.Add(pnConduitElmentSide2Dimensions); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
PropSysNamesConduitElmtSideDimensions.Add(pnConduitElmentSide3Dimensions); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
PropSysNamesConduitElmtSideDimensions.Add(pnConduitElmentSide4Dimensions); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 4 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
MemTableProp.DisableControls;
|
||
try
|
||
ZeroMemory(@mePortRel, SizeOf(TmeInterfaceRel));
|
||
ZeroMemory(@meInterfRel, SizeOf(TmeInterfaceRel));
|
||
if AProp <> nil then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||
if (AProp.SysName = pnPortCount) or (AProp.SysName = pnPortWireCount) then
|
||
begin
|
||
{IGOR} //D0000006314
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if GLiteVersion or GAllowConvertInterfToUniversal then
|
||
begin
|
||
PortCount := -1;
|
||
PortWireCount := -1;
|
||
|
||
if AProp.SysName = pnPortCount then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD>
|
||
PortCount := StrToIntDef(AProp.Value, 0);
|
||
if MemTableProp.Locate(fnSysName, pnPortWireCount, []) then
|
||
PortWireCount := StrToIntDef(MemTableProp.FieldByName(fnPValue).AsString, 0);
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if Not MemTablePort.Locate(fnGuidInterface, guidUniversalPort, []) then
|
||
begin
|
||
mePortRel := GetNewInterfPortRel(guidUniversalPort);
|
||
mePortRel.IsPort := biTrue;
|
||
|
||
mePortRel.TypeI := itFunctional;
|
||
mePortRel.Kind := ikSplit;
|
||
mePortRel.Gender := gtFemale;
|
||
mePortRel.Multiple := biFalse;
|
||
mePortRel.Kolvo := PortCount;
|
||
AddInterfaceToMT(mePortRel);
|
||
mePortRel.ID := MemTablePort.FieldByName(fnID).AsInteger;
|
||
end
|
||
else
|
||
begin
|
||
MemTablePort.Edit;
|
||
MemTablePort.FieldByName(fnKolvo).AsInteger := PortCount;
|
||
MemTablePort.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTablePort.Post;
|
||
mePortRel.ID := MemTablePort.FieldByName(fnID).AsInteger;
|
||
end;
|
||
end
|
||
else
|
||
if AProp.SysName = pnPortWireCount then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
PortWireCount := StrToIntDef(AProp.Value, 0);
|
||
if MemTableProp.Locate(fnSysName, pnPortCount, []) then
|
||
PortCount := StrToIntDef(MemTableProp.FieldByName(fnPValue).AsString, 0);
|
||
|
||
// <20><><EFBFBD><EFBFBD> ID <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if MemTablePort.Locate(fnGuidInterface, guidUniversalPort, []) then
|
||
mePortRel.ID := MemTablePort.FieldByName(fnID).AsInteger;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if PortWireCount <> -1 then
|
||
begin
|
||
InterfRelCount := PortWireCount;
|
||
if PortCount <> -1 then
|
||
InterfRelCount := PortCount * PortWireCount;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := guidUniversalWire;
|
||
KeyValues[1] := itFunctional;
|
||
KeyValues[2] := gtFemale;
|
||
if Not MemTableInterfRel.Locate(fnGuidInterface+';'+fnTypeI+';'+fnGender, KeyValues, []) then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(guidUniversalWire);
|
||
meInterfRel.IsPort := biFalse;
|
||
|
||
meInterfRel.TypeI := itFunctional;
|
||
meInterfRel.Kind := ikNoSplit;
|
||
meInterfRel.Gender := gtFemale;
|
||
meInterfRel.Multiple := biFalse;
|
||
meInterfRel.Kolvo := InterfRelCount;
|
||
AddInterfaceToMT(meInterfRel);
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
end
|
||
else
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnKolvo).AsInteger := InterfRelCount;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
meInterfRel.Name := MemTableInterfRel.FieldByName(fnName).AsString;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
if (mePortRel.ID <> 0) and (meInterfRel.ID <> 0) then
|
||
begin
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := mePortRel.ID; //fnIDPort
|
||
KeyValues[1] := meInterfRel.ID; //fnIDInterfRel
|
||
KeyValues[2] := rtPortInterfRel; //fnRelType
|
||
if Not MemTablePortInterfRel.Locate(fnIDPort+';'+fnIDInterfRel+';'+fnRelType, KeyValues, []) then
|
||
begin
|
||
MemTablePortInterfRel.Append;
|
||
MemTablePortInterfRel.FieldByName(fnRelType).AsInteger := rtPortInterfRel;
|
||
MemTablePortInterfRel.FieldByName(fnIDPort).AsInteger := mePortRel.ID;
|
||
MemTablePortInterfRel.FieldByName(fnIDInterfRel).AsInteger := meInterfRel.ID;
|
||
MemTablePortInterfRel.FieldByName(fnUnitInterfKolvo).AsInteger := PortWireCount;
|
||
MemTablePortInterfRel.FieldByName(fnName).AsString := meInterfRel.Name;
|
||
MemTablePortInterfRel.FieldByName(fnIsNew).AsBoolean := true;
|
||
MemTablePortInterfRel.Post;
|
||
end
|
||
else
|
||
begin
|
||
MemTablePortInterfRel.Edit;
|
||
MemTablePortInterfRel.FieldByName(fnUnitInterfKolvo).AsInteger := PortWireCount;
|
||
MemTablePortInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTablePortInterfRel.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>
|
||
if AProp.SysName = pnWireCount then
|
||
begin
|
||
{IGOR} //D0000006314
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if GLiteVersion or GAllowConvertInterfToUniversal then
|
||
begin
|
||
WireCount := StrToIntDef(AProp.Value, 0);
|
||
|
||
PropGender := gtMale;
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><><EFBFBD><EFBFBD> <20><>), <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biFalse then
|
||
PropGender := gtFemale;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := guidUniversalWire;
|
||
KeyValues[1] := itFunctional;
|
||
KeyValues[2] := PropGender;
|
||
if Not MemTableInterfRel.Locate(fnGuidInterface+';'+fnTypeI+';'+fnGender, KeyValues, []) then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(guidUniversalWire);
|
||
meInterfRel.IsPort := biFalse;
|
||
|
||
meInterfRel.TypeI := itFunctional;
|
||
meInterfRel.Kind := ikNoSplit;
|
||
meInterfRel.Gender := PropGender;
|
||
meInterfRel.Multiple := biFalse;
|
||
meInterfRel.Kolvo := WireCount;
|
||
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biTrue then
|
||
begin
|
||
meInterfRel.Count := 2;
|
||
meInterfRel.ServiceIsPair := true;
|
||
end;
|
||
AddInterfaceToMT(meInterfRel);
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
end
|
||
else
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnKolvo).AsInteger := WireCount;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
meInterfRel.ID_Adverse := MemTableInterfRel.FieldByName(fnIDAdverse).AsInteger;
|
||
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biTrue then
|
||
if MemTableInterfRel.Locate(fnID, meInterfRel.ID_Adverse, []) then
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnKolvo).AsInteger := WireCount;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (AProp.SysName = pnInSection) or (AProp.SysName = pnOutSection) then
|
||
begin
|
||
InterfSection := StrToFloatDef_My(AProp.Value, 0);
|
||
InterfSection := FloatInUOM(InterfSection, umMM, umSM, 2);
|
||
|
||
InterfFinded := false;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
InterfGuid := guidUniversalInConstr;
|
||
PropGender := gtFemale;
|
||
if AProp.SysName = pnOutSection then
|
||
begin
|
||
InterfGuid := guidUniversalOutConstr;
|
||
PropGender := gtMale;
|
||
end;
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := InterfGuid;
|
||
KeyValues[1] := itConstructive;
|
||
KeyValues[2] := PropGender;
|
||
if Not MemTableInterfRel.Locate(fnGuidInterface+';'+fnTypeI+';'+fnGender, KeyValues, []) then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD>=PropGender, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 3], varVariant);
|
||
KeyValues[0] := itConstructive;
|
||
KeyValues[1] := PropGender;
|
||
KeyValues[2] := True; //IsNative
|
||
KeyValues[3] := biTrue; // Multiple
|
||
if Not MemTableInterfRel.Locate(fnTypeI+';'+fnGender+';'+fnIsNative+';'+fnMultiple, KeyValues, []) then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(InterfGuid);
|
||
meInterfRel.IsPort := biFalse;
|
||
|
||
meInterfRel.TypeI := itConstructive;
|
||
meInterfRel.Kind := ikNoSplit;
|
||
meInterfRel.Gender := PropGender;
|
||
meInterfRel.Multiple := biTrue;
|
||
meInterfRel.Kolvo := 1;
|
||
meInterfRel.ValueI := InterfSection;
|
||
AddInterfaceToMT(meInterfRel);
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
end
|
||
else
|
||
InterfFinded := true;
|
||
end
|
||
else
|
||
InterfFinded := true;
|
||
|
||
if InterfFinded then
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnValueI).AsFloat := InterfSection;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
end;
|
||
end
|
||
else
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (AProp.SysName = pnConduitSideDimensions) or (AProp.SysName = pnCableChannelSideSection) then
|
||
begin
|
||
//18.01.2011
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
// <20> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (AProp.SysName = pnCableChannelSideSection) and MemTableProp.Locate(fnSysName, pnConduitSideDimensions, []) then
|
||
Exit; ///// EXIT /////
|
||
|
||
InterfFinded := false;
|
||
|
||
PropGender := gtMale;
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biFalse then
|
||
PropGender := gtFemale;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := guidUniversalChannelSide;
|
||
KeyValues[1] := itFunctional;
|
||
KeyValues[2] := PropGender;
|
||
if Not MemTableInterfRel.Locate(fnGuidInterface+';'+fnTypeI+';'+fnGender, KeyValues, []) then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 3], varVariant);
|
||
KeyValues[0] := itFunctional;
|
||
KeyValues[1] := gtMale;
|
||
KeyValues[2] := True; //IsNative
|
||
KeyValues[3] := biFalse;
|
||
if Not MemTableInterfRel.Locate(fnTypeI+';'+fnGender+';'+fnIsNative+';'+fnMultiple, KeyValues, []) then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(guidUniversalChannelSide);
|
||
meInterfRel.IsPort := biFalse;
|
||
|
||
meInterfRel.TypeI := itFunctional;
|
||
meInterfRel.Kind := ikNoSplit;
|
||
meInterfRel.Gender := PropGender;
|
||
meInterfRel.Multiple := biFalse;
|
||
meInterfRel.Kolvo := 1;
|
||
meInterfRel.SideSection := AProp.Value;
|
||
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biTrue then
|
||
begin
|
||
meInterfRel.Count := 2;
|
||
meInterfRel.ServiceIsPair := true;
|
||
end;
|
||
AddInterfaceToMT(meInterfRel);
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
end
|
||
else
|
||
InterfFinded := true;
|
||
end
|
||
else
|
||
InterfFinded := true;
|
||
|
||
if InterfFinded then
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnSideSection).AsString := AProp.Value;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
meInterfRel.ID_Adverse := MemTableInterfRel.FieldByName(fnIDAdverse).AsInteger;
|
||
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FCurrComponentType.IsLine = biTrue then
|
||
if MemTableInterfRel.Locate(fnID, meInterfRel.ID_Adverse, []) then
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnSideSection).AsString := AProp.Value;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if PropSysNamesConduitElmtSideDimensions.IndexOf(AProp.SysName) <> -1 then
|
||
begin
|
||
IDChangedInterfaces := TIntList.Create;
|
||
try
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
for i := 0 to PropSysNamesConduitElmtSideDimensions.Count - 1 do
|
||
begin
|
||
if MemTableProp.Locate(fnSysName, PropSysNamesConduitElmtSideDimensions[i], []) then
|
||
begin
|
||
FindedInterf := false;
|
||
MemTableInterfRel.First;
|
||
while Not MemTableInterfRel.Eof do
|
||
begin
|
||
if (MemTableInterfRel.FieldByName(fnGuidInterface).AsString = guidUniversalChannelSide) and
|
||
(MemTableInterfRel.FieldByName(fnIsPort).AsInteger = biFalse) and
|
||
(IDChangedInterfaces.IndexOf(MemTableInterfRel.FieldByName(fnID).AsInteger) = -1) and
|
||
(MemTableInterfRel.FieldByName(fnGender).AsInteger = gtFemale) and
|
||
(MemTableInterfRel.FieldByName(fnTypeI).AsInteger = itFunctional) then
|
||
begin
|
||
MemTableInterfRel.Edit;
|
||
MemTableInterfRel.FieldByName(fnSideSection).AsString := MemTableProp.FieldByName(fnPValue).AsString;
|
||
MemTableInterfRel.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableInterfRel.Post;
|
||
|
||
FindedInterf := true;
|
||
Break; //// BREAK ////
|
||
end;
|
||
MemTableInterfRel.Next;
|
||
end;
|
||
if Not FindedInterf then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(guidUniversalChannelSide);
|
||
|
||
meInterfRel.IsPort := biFalse;
|
||
meInterfRel.TypeI := itFunctional;
|
||
meInterfRel.Kind := ikNoSplit;
|
||
meInterfRel.Gender := gtFemale;
|
||
meInterfRel.Multiple := biFalse;
|
||
meInterfRel.Kolvo := 1;
|
||
meInterfRel.SideSection := MemTableProp.FieldByName(fnPValue).AsString;
|
||
|
||
AddInterfaceToMT(meInterfRel);
|
||
end;
|
||
IDChangedInterfaces.Add(MemTableInterfRel.FieldByName(fnID).AsInteger);
|
||
end;
|
||
end;
|
||
finally
|
||
FreeAndNil(IDChangedInterfaces);
|
||
end;
|
||
end;
|
||
end
|
||
else
|
||
if ACompTypeSysName <> '' then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
if ACompTypeSysName = ctsnPatchCord then
|
||
begin
|
||
{IGOR} //D0000006314
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if GLiteVersion or GAllowConvertInterfToUniversal then
|
||
begin
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := guidUniversalPort;
|
||
KeyValues[1] := itFunctional;
|
||
KeyValues[2] := gtMale;
|
||
if Not MemTableInterfRel.Locate(fnGuidInterface+';'+fnTypeI+';'+fnGender, KeyValues, []) then
|
||
begin
|
||
meInterfRel := GetNewInterfPortRel(guidUniversalPort);
|
||
meInterfRel.IsPort := biFalse;
|
||
|
||
meInterfRel.TypeI := itFunctional;
|
||
meInterfRel.Kind := ikSplit;
|
||
meInterfRel.Gender := gtMale;
|
||
meInterfRel.Multiple := biFalse;
|
||
meInterfRel.Kolvo := 1;
|
||
AddInterfaceToMT(meInterfRel);
|
||
meInterfRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
AddInterfaceToMT(meInterfRel);
|
||
mePortRel.ID := MemTableInterfRel.FieldByName(fnID).AsInteger;
|
||
end;
|
||
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if (mePortRel.ID <> 0) and (meInterfRel.ID <> 0) then
|
||
begin
|
||
KeyValues := VarArrayCreate([0, 2], varVariant);
|
||
KeyValues[0] := mePortRel.ID; //fnIDPort
|
||
KeyValues[1] := meInterfRel.ID; //fnIDInterfRel
|
||
KeyValues[2] := rtInterfInternalConn; //fnRelType
|
||
if Not MemTableInterfInternalConn.Locate(fnIDPort+';'+fnIDInterfRel+';'+fnRelType, KeyValues, []) then
|
||
begin
|
||
MemTableInterfInternalConn.Append;
|
||
MemTableInterfInternalConn.FieldByName(fnRelType).AsInteger := rtInterfInternalConn;
|
||
MemTableInterfInternalConn.FieldByName(fnIDPort).AsInteger := meInterfRel.ID;
|
||
MemTableInterfInternalConn.FieldByName(fnIDInterfRel).AsInteger := mePortRel.ID;
|
||
MemTableInterfInternalConn.FieldByName(fnName).AsString := meInterfRel.Name;
|
||
MemTableInterfInternalConn.FieldByName(fnUnitInterfKolvo).AsInteger := 1;
|
||
MemTableInterfInternalConn.FieldByName(fnGender).AsInteger := gtMale;
|
||
MemTableInterfInternalConn.FieldByName(fnIsNew).AsBoolean := true;
|
||
MemTableInterfInternalConn.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
finally
|
||
MemTableProp.EnableControls;
|
||
{ MemTableProp.Bookmark := MemTablePropBookmark;
|
||
MemTablePort.Bookmark := MemTablePortBookmark;
|
||
MemTableInterfRel.Bookmark := MemTableInterfRelBookmark;}
|
||
|
||
if MemTablePropBookmark <> nil then
|
||
begin
|
||
MemTableProp.GotoBookmark(MemTablePropBookmark);
|
||
MemTableProp.FreeBookmark(MemTablePropBookmark);
|
||
end;
|
||
if MemTablePortBookmark <> nil then
|
||
begin
|
||
MemTablePort.GotoBookmark(MemTablePortBookmark);
|
||
MemTablePort.FreeBookmark(MemTablePortBookmark);
|
||
end;
|
||
if MemTableInterfRelBookmark <> nil then
|
||
begin
|
||
MemTableInterfRel.GotoBookmark(MemTableInterfRelBookmark);
|
||
MemTableInterfRel.FreeBookmark(MemTableInterfRelBookmark);
|
||
end;
|
||
|
||
FreeAndNil(PropSysNamesConduitElmtSideDimensions);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DefineUniqueInterfacesByProperty', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.DeleteNormResByIDCompPropRel(AIDCompPropRel: Integer);
|
||
var
|
||
MemTable: TkbmMemTable;
|
||
//MemTableBookmark: string;
|
||
MemTableBookmark: TBookMark;
|
||
begin
|
||
try
|
||
MemTable := TF_Main(GForm).DM.MemTable_NormsEd;
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.Last;
|
||
while Not MemTable.Bof do
|
||
begin
|
||
if MemTable.FieldByName(fnIDCompPropRel).AsInteger = AIDCompPropRel then
|
||
begin
|
||
if MemTable.FieldByName(fnIsResource).AsBoolean then
|
||
begin
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedResourceID.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
end
|
||
else
|
||
begin
|
||
if Not MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
GDeletedNormID.Add(MemTable.FieldByName(fnID).AsInteger);
|
||
end;
|
||
|
||
{if MemTableBookmark = MemTable.Bookmark then
|
||
MemTableBookmark := '';}
|
||
MemTable.Delete;
|
||
end
|
||
else
|
||
MemTable.Prior;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
{
|
||
if MemTableBookmark <> '' then
|
||
MemTable.Bookmark := MemTableBookmark;
|
||
}
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.DeleteComponNormResByIDCompPropRel', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadNetTypesToForm;
|
||
begin
|
||
try
|
||
ComboBox_NetType.Properties.OnChange := nil;
|
||
ComboBox_NetType.Properties.BeginUpdate;
|
||
try
|
||
FSpravochnik.LoadNetTypesToStrings(ComboBox_NetType.Properties.Items, true);
|
||
ComboBox_NetType.ItemIndex := 0; //18.02.2009
|
||
finally
|
||
ComboBox_NetType.Properties.EndUpdate;
|
||
end;
|
||
ComboBox_NetType.Properties.OnChange := ComboBox_NetTypePropertiesChange;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.LoadNetTypesToForm', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadCompSpecificationToForm;
|
||
begin
|
||
try
|
||
cbSpecification.Properties.BeginUpdate;
|
||
try
|
||
FillComboBox(cbSpecification, F_NormBase, true, tnFiles, fnID, fnFileName, '', 0);
|
||
finally
|
||
cbSpecification.Properties.EndUpdate;
|
||
end;
|
||
cbSpecification.ItemIndex := 0;
|
||
except
|
||
on E: Exception do AddExceptionToLogExt(ClassName, MethodName(@TF_AddComponent.LoadCompSpecificationToForm), E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadProducersToForm;
|
||
begin
|
||
try
|
||
ComboBox_Producer.Properties.BeginUpdate;
|
||
try
|
||
FSpravochnik.LoadProducersToStrings(ComboBox_Producer.Properties.Items, true);
|
||
finally
|
||
ComboBox_Producer.Properties.EndUpdate;
|
||
end;
|
||
ComboBox_Producer.ItemIndex := 0;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.LoadProducersToForm', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.LoadSuppliesKindsToForm;
|
||
begin
|
||
try
|
||
//FillComboBox(cbSuppliesKind, F_NormBase, True, tnSuppliesKinds, fnID, fnName, strNoDefined, 0);
|
||
cbSuppliesKind.Properties.OnChange := nil;
|
||
cbSuppliesKind.Properties.BeginUpdate;
|
||
try
|
||
FSpravochnik.LoadSuppliesKindsToStrings(cbSuppliesKind.Properties.Items, true);
|
||
finally
|
||
cbSuppliesKind.Properties.EndUpdate;
|
||
end;
|
||
cbSuppliesKind.Properties.OnChange := cbSuppliesKindPropertiesChange;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.LoadSuppliesKindsToForm', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetNewCompPropIDsToNormRes(AOldCompPropIDs, ANewCompPropIDs: TintList);
|
||
var
|
||
MemTable: TkbmMemTable;
|
||
//MemTableBookmark: String;
|
||
MemTableBookmark: TBookMark;
|
||
IDCompPropRel: Integer;
|
||
IDIndex: Integer;
|
||
begin
|
||
try
|
||
if (AOldCompPropIDs.Count > 0) and (ANewCompPropIDs.Count > 0) then
|
||
begin
|
||
MemTable := TF_Main(GForm).DM.MemTable_NormsEd;
|
||
//MemTableBookmark := MemTable.Bookmark;
|
||
MemTableBookmark := MemTable.GetBookmark;
|
||
MemTable.DisableControls;
|
||
try
|
||
MemTable.First;
|
||
while Not MemTable.Eof do
|
||
begin
|
||
if MemTable.FieldByName(fnIsNew).AsBoolean then
|
||
begin
|
||
IDCompPropRel := MemTable.FieldByName(fnIDCompPropRel).AsInteger;
|
||
if IDCompPropRel <> 0 then
|
||
begin
|
||
IDIndex := AOldCompPropIDs.IndexOf(IDCompPropRel);
|
||
if IDIndex <> -1 then
|
||
begin
|
||
IDCompPropRel := ANewCompPropIDs[IDIndex];
|
||
MemTable.Edit;
|
||
MemTable.FieldByName(fnIDCompPropRel).AsInteger := IDCompPropRel;
|
||
MemTable.Post;
|
||
end;
|
||
end;
|
||
end;
|
||
MemTable.Next;
|
||
end;
|
||
finally
|
||
MemTable.EnableControls;
|
||
//MemTable.Bookmark := MemTableBookmark;
|
||
if MemTableBookmark <> nil then
|
||
begin
|
||
MemTable.GotoBookmark(MemTableBookmark);
|
||
MemTable.FreeBookmark(MemTableBookmark);
|
||
end;
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.SetNewCompPropIDsToNormRes', E.Message);
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.SetValueToAllApplyCheckBoxes(AValue: Boolean);
|
||
var
|
||
i: Integer;
|
||
ApplyCheckBox: TcxCheckBox;
|
||
begin
|
||
try
|
||
for i := 0 to FApplyCheckBoxes.Count - 1 do
|
||
begin
|
||
ApplyCheckBox := TcxCheckBox(FApplyCheckBoxes[i]);
|
||
ApplyCheckBox.Checked := AValue;
|
||
end;
|
||
for i := 0 to FApplyComponElementsChecked.Count - 1 do
|
||
FApplyComponElementsChecked[i] := BoolToInt(AValue);
|
||
DefinecbApplyCompData;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.SetValueToAllApplyCheckBoxes', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SetValueToCurrPageApplyCheckBoxes(AValue: Boolean);
|
||
var
|
||
i, j: Integer;
|
||
CurrPageIndex: Integer;
|
||
ApplyCheckBox: TcxCheckBox;
|
||
begin
|
||
try
|
||
CurrPageIndex := pcMain.ActivePageIndex;
|
||
for i := 0 to FApplyCheckBoxesPageIndex.Count - 1 do
|
||
begin
|
||
if FApplyCheckBoxesPageIndex[i] = CurrPageIndex then
|
||
begin
|
||
ApplyCheckBox := TcxCheckBox(FApplyCheckBoxes[i]);
|
||
ApplyCheckBox.Checked := AValue;
|
||
|
||
if ApplyCheckBox = cbApplyComponData then
|
||
for j := 0 to FApplyComponElementsChecked.Count - 1 do
|
||
FApplyComponElementsChecked[j] := BoolToInt(AValue);
|
||
end;
|
||
end;
|
||
except
|
||
on E: Exception do AddExceptionToLogEx('TF_AddComponent.SetValueToCurrPageApplyCheckBoxes', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.VisibleApplyCheckBoxes(AVisible, ASetAsChecked: Boolean);
|
||
var
|
||
i: Integer;
|
||
CurrCheckBox: TcxCheckBox;
|
||
begin
|
||
for i := 0 to FApplyCheckBoxes.Count - 1 do
|
||
begin
|
||
CurrCheckBox := TcxCheckBox(FApplyCheckBoxes[i]);
|
||
if AVisible then
|
||
begin
|
||
if (FApplyControls[i] = Grid) and (TF_Main(GForm).GDBMode = bkProjectManager) then
|
||
Continue; ///// CONTINUE /////
|
||
if TControl(FApplyControls[i]).Visible and TControl(FApplyControls[i]).Enabled then
|
||
CurrCheckBox.Visible := true
|
||
else
|
||
CurrCheckBox.Visible := false;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
if CurrCheckBox = cbApplySpecification then
|
||
CurrCheckBox.Visible := false;
|
||
end;
|
||
end
|
||
else
|
||
CurrCheckBox.Visible := false;
|
||
|
||
if ASetAsChecked then
|
||
CurrCheckBox.Checked := true;
|
||
if AVisible then
|
||
begin
|
||
CurrCheckBox.Style.BorderColor := FApplyCheckBoxesBorderColor;
|
||
CurrCheckBox.Style.BorderStyle := FApplyCheckBoxesBorderStyle;
|
||
end;
|
||
end;
|
||
if AVisible then
|
||
DefinecbApplyCompData;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_CancelExecute(Sender: TObject);
|
||
var
|
||
MessResult: Integer;
|
||
begin
|
||
if GFormMode = fmView then
|
||
begin
|
||
ModalResult := mrCancel;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
MessResult := ID_NO;
|
||
if GWasChanging then
|
||
MessResult := MessageModal(cQuastSaveChanging, Application.Title, MB_YESNOCANCEL or MB_ICONQUESTION);
|
||
case MessResult of
|
||
ID_YES:
|
||
BitBtn_OK.Click;
|
||
ID_NO:
|
||
BitBtn_Cancel.Click;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NamePropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NameShortPropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NameMarkPropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NameDblClick(Sender: TObject);
|
||
begin
|
||
if GComponGuidNB <> '' then
|
||
begin
|
||
Clipboard.Open;
|
||
Clipboard.AsText := GComponGuidNB;
|
||
Clipboard.Close;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NameMarkEditing(Sender: TObject;
|
||
var CanEdit: Boolean);
|
||
begin
|
||
//CheckBox_IsUserMark.Checked := true;
|
||
rbMarkByDefault.Checked := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.rbMarkByDefaultClick(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.rbMarkByTemplateClick(Sender: TObject);
|
||
begin
|
||
Edit_NameMark.Text := GetComponentNameMarkByTemplate;
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_IzmPropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := True;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ComboBox_NetTypePropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ComboBox_ComponentTypePropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
FChangedComponTypeInCombo := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
begin
|
||
{with TF_Main(GForm) do
|
||
if GDBMode = bkProjectManager then
|
||
if DM.MemTable_InterfaceRelEd.FieldByName('IsNew').AsBoolean = true then
|
||
begin
|
||
Self.Act_Edit.Enabled := true;
|
||
Self.Act_Del.Enabled := true;
|
||
end
|
||
else
|
||
begin
|
||
Self.Act_Edit.Enabled := false;
|
||
Self.Act_Del.Enabled := false;
|
||
end; }
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PortFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
begin
|
||
{with TF_Main(GForm) do
|
||
if GDBMode = bkProjectManager then
|
||
if DM.MemTable_PortEd.FieldByName('IsNew').AsBoolean = true then
|
||
begin
|
||
Self.Act_Edit.Enabled := true;
|
||
Self.Act_Del.Enabled := true;
|
||
end
|
||
else
|
||
begin
|
||
Self.Act_Edit.Enabled := false;
|
||
Self.Act_Del.Enabled := false;
|
||
end;}
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PropertyFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
begin
|
||
with TF_Main(GForm) do
|
||
if GDBMode = bkProjectManager then
|
||
begin
|
||
{if DM.MemTable_PropertyEd.FieldByName('IsNew').AsBoolean = true then
|
||
begin
|
||
Self.Act_Edit.Enabled := true;
|
||
Self.Act_Del.Enabled := true;
|
||
end
|
||
else
|
||
begin
|
||
Self.Act_Edit.Enabled := false;
|
||
Self.Act_Del.Enabled := false;
|
||
end;}
|
||
|
||
//if DM.CanEditProperty(DM.MemTable_PropertyEd) then
|
||
// GT_PROPERTY.OptionsSelection.CellSelect := true
|
||
//else
|
||
// GT_PROPERTY.OptionsSelection.CellSelect := false;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceNppGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg10;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PortNppGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText = '0' then
|
||
AText := cAddComponent_Msg10;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_CableCanalConnectorsConnectorTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText <> '' then
|
||
AText := GetCableChannelElementName(StrToInt(AText));
|
||
{if AText = IntToStr(contCork) then
|
||
AText := ctnCork
|
||
else
|
||
if AText = IntToStr(contAnglePlane) then
|
||
AText := ctnAnglePlane
|
||
else
|
||
if AText = IntToStr(contTjoin) then
|
||
AText := ctnTjoin
|
||
else
|
||
if AText = IntToStr(contAngleIn) then
|
||
AText := ctnAngleIn
|
||
else
|
||
if AText = IntToStr(contAngleOut) then
|
||
AText := ctnAngleOut
|
||
else
|
||
if AText = IntToStr(contADapter) then
|
||
AText := ctnADapter
|
||
else
|
||
if AText = IntToStr(contConnector) then
|
||
AText := ctnConnector;}
|
||
end;
|
||
|
||
procedure TF_AddComponent.CheckBox_ApplyForProjectPropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
CheckBox_ApplyForList.Enabled := not TRzCheckBox(Sender).Checked;
|
||
//17.08.2012 OncbApplyForChange(Sender);
|
||
//17.08.2012 EnableDisableApplyIncludingMark;
|
||
OncbApplyForPMChange(Sender);
|
||
end;
|
||
|
||
procedure TF_AddComponent.CheckBox_ApplyForListPropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
//17.08.2012 OncbApplyForChange(Sender);
|
||
//17.08.2012 EnableDisableApplyIncludingMark;
|
||
OncbApplyForPMChange(Sender);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NameShortKeyPress(Sender: TObject;
|
||
var Key: Char);
|
||
begin
|
||
GChangedNameShort := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Timer_AfterEditPropertyTimer(Sender: TObject);
|
||
begin
|
||
GWasChanging := True;
|
||
Timer_AfterEditProperty.Enabled := false;
|
||
|
||
GT_PROPERTY.DataController.Post;
|
||
GT_PROPERTY.OnEditValueChanged := GT_PROPERTYEditValueChanged;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PropertyEditValueChanged(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
|
||
begin
|
||
if GT_PROPERTY.DataController.IsEditing then
|
||
begin
|
||
GT_PROPERTY.OnEditValueChanged := nil;
|
||
Timer_AfterEditProperty.Enabled := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PropertyEditChanged(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
|
||
begin
|
||
//with TF_Main(GForm).DM do
|
||
// MemTable_PropertyEd.AfterEdit := MemTable_PropertyEdAfterEdit;
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if MemTable_PropertyEd.FieldByName(fnIDDataType).AsInteger = dtCompStateType then
|
||
LoadComponIcon(GIDObjectIcon, GGUIDObjectIcon, Image_CompIcons);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.SpinEdit_UserLengthPropertiesEditValueChanged(
|
||
Sender: TObject);
|
||
var
|
||
WholeLength: Double;
|
||
SavedUserLength: Double;
|
||
Compon: TSCSComponent;
|
||
begin
|
||
GChangedUserLength := True;
|
||
GWasChanging := True;
|
||
Compon := nil;
|
||
WholeLength := 0;
|
||
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
if TF_Main(GForm).GSCSBase.SCSComponent.IsLine = biTrue then
|
||
begin
|
||
Compon := TF_Main(GForm).GSCSBase.CurrProject.GetComponentFromReferences(GIDComponent);
|
||
if Assigned(Compon) then
|
||
begin
|
||
SavedUserLength := Compon.UserLength;
|
||
try
|
||
Compon.UserLength := FloatInUOM(SpinEdit_UserLength.Value, TF_Main(GForm).FUOM, umMetr);
|
||
WholeLength := Compon.GetWholeLength;
|
||
finally
|
||
Compon.UserLength := SavedUserLength;
|
||
end;
|
||
end;
|
||
SetPropertyValueBySysNameAsFloat(pnLength, WholeLength);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSCellClick(Sender: TcxCustomGridTableView;
|
||
ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
|
||
AShift: TShiftState; var AHandled: Boolean);
|
||
begin
|
||
//if TF_Main(GForm).DM.MemTable_NormsEd.RecNo > 1 then
|
||
if ACellViewInfo.Item.Index = finIsOn then //*** <20><><EFBFBD><EFBFBD> "<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if MemTable_NormsEd.RecordCount > 0 then // Tolik 28/12/2019 --
|
||
begin
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName('IsOn').AsInteger := 1 - MemTable_NormsEd.FieldByName('IsOn').AsInteger;
|
||
MemTable_NormsEd.FieldByName('IsModified').AsBoolean := true;
|
||
MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
AHandled := true;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSEditing(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem; var AAllow: Boolean);
|
||
begin
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTable_NormsEd.Post;
|
||
end;
|
||
|
||
//if AItem = GT_NORMSExpenseForLength then
|
||
// AItem.EditValue := GetNORMExpenseForLengthDisplayText(AItem.EditValue);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSFocusedRecordChanged(
|
||
Sender: TcxCustomGridTableView; APrevFocusedRecord,
|
||
AFocusedRecord: TcxCustomGridRecord;
|
||
ANewItemRecordFocusingChanged: Boolean);
|
||
var
|
||
IsResource: Boolean;
|
||
IsNormFromInterface: Boolean;
|
||
begin
|
||
IsResource := false;
|
||
IsNormFromInterface := false;
|
||
if TF_Main(GForm).DM.MemTable_NormsEd.Active and (TF_Main(GForm).DM.MemTable_NormsEd.RecordCount > 0) then
|
||
begin
|
||
IsResource := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean;
|
||
if not IsResource then
|
||
IsNormFromInterface := IntToBool(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger);
|
||
end;
|
||
GroupBox_ResourcesRel.Enabled := not IsResource;
|
||
GT_NORMSLaborTime.Options.Editing := Not IsResource; //01.11.2013
|
||
GT_NORMSPricePerTime.Options.Editing := Not IsResource; //01.11.2013
|
||
GT_NORMSCost.Options.Editing := IsResource or not IsNormFromInterface; //24.09.2010 IsResource;
|
||
GT_NORMSKolvo.Options.Editing := IsResource or not IsNormFromInterface;
|
||
GT_NORMSExpenseForLength.Options.Editing := IsResource or not IsNormFromInterface;
|
||
GT_NORMSCountForPoint.Options.Editing := GT_NORMSExpenseForLength.Options.Editing;
|
||
GT_NORMSStepOfPoint.Options.Editing := GT_NORMSExpenseForLength.Options.Editing;
|
||
//GT_NORMSExpenseForSection.Options.Editing := GT_NORMSExpenseForLength.Options.Editing;
|
||
//GT_NORMSTotalCost.Options.Editing := IsResource;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if IsResource then
|
||
begin
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DisplayFormat := GetDisplayFormatForFloat;
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DecimalPlaces := FloatPrecision;
|
||
end
|
||
else
|
||
begin
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DisplayFormat := GetDisplayFormatForFloatByPrecision(PrecisionNormKolvo);
|
||
TcxCurrencyEditProperties(GT_NORMSKolvo.Properties).DecimalPlaces := PrecisionNormKolvo;
|
||
end;
|
||
|
||
EnableEditDelNorm;
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.GT_NORMSLaborTimePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := MemTable_NormsEd.FieldByName(fnLaborTime).AsFloat;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnLaborTime).AsFloat := DisplayValue;
|
||
MemTable_NormsEd.Post;
|
||
|
||
CalcNormCostTime(MemTable_NormsEd, fnLaborTime, IsCalcNormTotal); //01.11.2013
|
||
if IsCalcNormTotal = true then
|
||
begin
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
CalcWorkCost;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSPricePerTimePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := MemTable_NormsEd.FieldByName(fnPricePerTime).AsFloat;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnPricePerTime).AsFloat := DisplayValue;
|
||
MemTable_NormsEd.Post;
|
||
|
||
CalcNormCostTime(MemTable_NormsEd, fnPricePerTime, IsCalcNormTotal); //01.11.2013
|
||
if IsCalcNormTotal = true then
|
||
begin
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
CalcWorkCost;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.GT_NORMSCostPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
//var
|
||
// Cost, Kolvo, TotalCost: Double;
|
||
var
|
||
IsCalcNormTotal: Boolean;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := MemTable_NormsEd.FieldByName(fnCost).AsFloat;
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
//Cost := DisplayValue;
|
||
//Kolvo := MemTable_NormsEd.FieldByName(fnKolvo).AsFloat;
|
||
//CalcNormTatalCostInMT(MemTable_NormsEd, Cost, Kolvo);
|
||
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnCost).AsFloat := DisplayValue;
|
||
MemTable_NormsEd.Post;
|
||
|
||
CalcNormCostTime(MemTable_NormsEd, fnCost, IsCalcNormTotal); //01.11.2013
|
||
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
|
||
//TotalCost := RoundCP(Cost * Kolvo);
|
||
//MemTable_NormsEd.Edit;
|
||
//MemTable_NormsEd.FieldByName('Total_Cost').AsFloat := TotalCost;
|
||
//MemTable_NormsEd.FieldByName('Cost').AsFloat := Cost;
|
||
//MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
end;
|
||
|
||
// Added by Tolik
|
||
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||
procedure TF_AddComponent.GT_NORMSKolvoPropertiesValidate(Sender: TObject;
|
||
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
|
||
var
|
||
Cost, Kolvo, TotalCost: Double;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
//Cost := MemTable_NormsEd.FieldByName(fnCost).AsFloat;
|
||
//Kolvo := DisplayValue;
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := MemTable_NormsEd.FieldByName(fnKolvo).AsFloat;
|
||
Exit; ///// EXIT /////
|
||
end
|
||
else
|
||
if GetExpenceFromIzm(MemTable_NormsEd.FieldByName(fnIzm).AsString) <> 1 then
|
||
DisplayValue := DisplayValue*GetExpenceFromIzm(MemTable_NormsEd.FieldByName(fnIzm).AsString);
|
||
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnKolvo).AsFloat := DisplayValue;
|
||
|
||
MemTable_NormsEd.FieldByName(fnExpenseForLength).AsFloat := 0;
|
||
MemTable_NormsEd.FieldByName(fnCountForPoint).AsFloat := 0;
|
||
MemTable_NormsEd.FieldByName(fnStepOfPoint).AsFloat := 0;
|
||
MemTable_NormsEd.Post;
|
||
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
|
||
//TotalCost := RoundCP(Cost * Kolvo);
|
||
//MemTable_NormsEd.Edit;
|
||
//MemTable_NormsEd.FieldByName('Total_Cost').AsFloat := TotalCost;
|
||
//MemTable_NormsEd.FieldByName('kolvo').AsFloat := kolvo;
|
||
//MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_ResourcesPricePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
cost, price, AdditionalPrice, kolvo: Double;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
price := DisplayValue;
|
||
AdditionalPrice := MemTable_ResourcesRelEd.FieldByName(fnAdditionalPrice).AsFloat;
|
||
kolvo := MemTable_ResourcesRelEd.FieldByName('kolvo').AsFloat;
|
||
cost := (price + AdditionalPrice) * kolvo;
|
||
MemTable_ResourcesRelEd.Edit;
|
||
MemTable_ResourcesRelEd.FieldByName('Cost').AsFloat := cost; //MemTable_ResourcesRelEd.FieldByName('Price').AsFloat * MemTable_ResourcesRelEd.FieldByName('kolvo').AsInteger;
|
||
MemTable_ResourcesRelEd.FieldByName('price').AsFloat := price;
|
||
MemTable_ResourcesRelEd.Post;
|
||
end;
|
||
CalcNormCost;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_ResourcesAdditionalPricePropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
cost, price, AdditionalPrice, kolvo: Double;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
price := MemTable_ResourcesRelEd.FieldByName(fnPrice).AsFloat;
|
||
AdditionalPrice := DisplayValue;
|
||
kolvo := MemTable_ResourcesRelEd.FieldByName('kolvo').AsInteger;
|
||
cost := (price + AdditionalPrice) * kolvo;
|
||
MemTable_ResourcesRelEd.Edit;
|
||
MemTable_ResourcesRelEd.FieldByName('Cost').AsFloat := cost; //MemTable_ResourcesRelEd.FieldByName('Price').AsFloat * MemTable_ResourcesRelEd.FieldByName('kolvo').AsInteger;
|
||
MemTable_ResourcesRelEd.FieldByName(fnAdditionalPrice).AsFloat := AdditionalPrice;
|
||
MemTable_ResourcesRelEd.Post;
|
||
end;
|
||
CalcNormCost;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_ResourcesKolvoPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
cost, price, AdditionalPrice, kolvo: Double;
|
||
begin
|
||
Error := false;
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
price := MemTable_ResourcesRelEd.FieldByName('Price').AsFloat;
|
||
AdditionalPrice := MemTable_ResourcesRelEd.FieldByName(fnAdditionalPrice).AsFloat;
|
||
kolvo := DisplayValue; //MemTable_ResourcesRelEd.FieldByName('kolvo').AsInteger;
|
||
cost := (price + AdditionalPrice) * kolvo;
|
||
MemTable_ResourcesRelEd.Edit;
|
||
MemTable_ResourcesRelEd.FieldByName('Cost').AsFloat := cost; //MemTable_ResourcesRelEd.FieldByName('Price').AsFloat * MemTable_ResourcesRelEd.FieldByName('kolvo').AsInteger;
|
||
MemTable_ResourcesRelEd.FieldByName('kolvo').AsFloat := kolvo;
|
||
MemTable_ResourcesRelEd.Post;
|
||
end;
|
||
CalcNormCost;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddNormExecute(Sender: TObject);
|
||
begin
|
||
if pcMain.ActivePage = tsWorkingAndResources then
|
||
if Grid_NORMS.Showing then
|
||
SetFocusToControl(Grid_NORMS);
|
||
//Grid_NORMS.SetFocus;
|
||
//ProcessMessagesEx;
|
||
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
AddEditNorm(meMake);
|
||
EnableEditDelNorm;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddResourceToMTNormExecute(Sender: TObject);
|
||
begin
|
||
SetFocusToControl(Grid_NORMS);
|
||
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
AddEditResource(meMake, tkNormEd, false);
|
||
EnableEditDelNorm;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddResourceComponToMTNormExecute(
|
||
Sender: TObject);
|
||
begin
|
||
SetFocusToControl(Grid_NORMS);
|
||
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
AddEditResource(meMake, tkNormEd, true);
|
||
EnableEditDelNorm;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_EditNormResourceExecute(Sender: TObject);
|
||
var
|
||
EditName: string;
|
||
begin
|
||
SetFocusToControl(Grid_NORMS);
|
||
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
case TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean of
|
||
true:
|
||
AddEditResource(meEdit, tkNormEd, false);
|
||
false:
|
||
begin
|
||
EditName := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnName).AsString;
|
||
if GUseVisibleInterfaces and
|
||
(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger = biTrue) then
|
||
MessageModal(cImpossibleReplaceNorm + ' "' + EditName + '" ' + cbMessage5, cReplacingNorm, MB_ICONINFORMATION or MB_OK)
|
||
else
|
||
AddEditNorm(meEdit);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DeleteNormResourceExecute(Sender: TObject);
|
||
var
|
||
DelName: string;
|
||
IDDel: Integer;
|
||
CurrNPP: Integer;
|
||
CanDel: Boolean;
|
||
StrMessg: String;
|
||
// Tolik
|
||
FromInterFace, Deleted: Boolean;
|
||
SCSCompon: TSCSComponent; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||
i, j, k, l, NormID: Integer;
|
||
ChildCompon: TSCSComponent;
|
||
currInterFace: TSCSInterface;
|
||
s, currNormGuid: string;
|
||
|
||
DelDataSet: TpFIBDataSet;
|
||
MemTable: TkbmMemTable;
|
||
InterfIdList: TIntList;
|
||
currNorm: TSCSNorm;
|
||
sprInterf: TNBInterFace;
|
||
currForm: TF_Main;
|
||
currInterfaceID: Integer;
|
||
Norm_ID: Integer;
|
||
Id_Interface: Integer;
|
||
NormInterfaceGuid: String;
|
||
|
||
begin
|
||
SetFocusToControl(Grid_NORMS);
|
||
currInterfaceID := -1;
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
try
|
||
CanDel := false;
|
||
currNormGuid := '';
|
||
FromInterFace :=False;
|
||
Norm_ID := -1;
|
||
Id_Interface := -1;
|
||
NormInterfaceGuid := '';
|
||
|
||
Norm_ID := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('ID').Value;
|
||
currNormGuid := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnGuidNB).Value;
|
||
// Tolik
|
||
if not TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('GuidInterface').IsNull then // 21/02/2018 --
|
||
NormInterFaceGuid := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('GuidInterface').Value;
|
||
//
|
||
DelName := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('Name').AsString;
|
||
case TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean of
|
||
true:
|
||
begin
|
||
StrMessg := '';
|
||
if TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnGuidNBComponent).AsString = '' then
|
||
StrMessg := cQuastDelResource
|
||
else
|
||
StrMessg := cQuastDelAccessoryCompon;
|
||
if MessageModal(StrMessg + ' "' + DelName + '"?',
|
||
ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
CanDel := true;
|
||
end;
|
||
false:
|
||
begin
|
||
// Tolik
|
||
//*** <20><> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// if MessageModal(cImpossibleDelNorm + ' "' + DelName + '" ' + cbMessage5, ApplicationName, MB_ICONINFORMATION or YESNO) = IDYES then
|
||
if GUseVisibleInterfaces and (TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger = biTrue) then
|
||
begin
|
||
if MessageModal(cAttentionDelInterfNorm + #13#10 + cQuastDelNorm + ' "' + DelName + '"?' , cDeletingNorm, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
CanDel := True;
|
||
end
|
||
else
|
||
begin
|
||
if MessageModal(cQuastDelNorm + ' "' + DelName + '"?', cDeletingNorm, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
CanDel := true;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
if CanDel then
|
||
begin
|
||
//Tolik
|
||
if GUseVisibleInterfaces and (TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsFromInterface).AsInteger = biTrue) then
|
||
FromInterFace := True;
|
||
//
|
||
IDDel := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('ID').AsInteger;
|
||
|
||
if TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('isNew').AsBoolean = false then
|
||
case TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean of
|
||
true:
|
||
GDeletedResourceID.Add(IDDel);
|
||
false:
|
||
begin
|
||
DelResourcesFromCurrNorm;
|
||
GDeletedNormID.Add(IDDel);
|
||
end;
|
||
end;
|
||
CurrNPP := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName('NPP').AsInteger;
|
||
TF_Main(GForm).DM.MemTable_NormsEd.Delete;
|
||
TF_Main(GForm).DM.SdvigNPPInMemTable(CurrNPP, TF_Main(GForm).DM.MemTable_NormsEd);
|
||
CalcWorkCost;
|
||
|
||
// Tolik
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
// <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>, <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
if FromInterFace then
|
||
begin
|
||
currForm := nil;
|
||
currForm := TF_MAIN(GForm);
|
||
if currForm <> nil then
|
||
begin
|
||
// if TF_MAIN(GForm).GDBMode = bkProjectManager then
|
||
begin
|
||
//if F_ProjMan.GSCSBase.SCSComponent.ID <> 0 then
|
||
if currForm.GSCSBase.SCSComponent.ID <> 0 then
|
||
begin
|
||
sprInterf := nil;
|
||
sprInterf := currForm.GSCSBase.CurrProject.Spravochnik.GetInterfaceWithAssign(NormInterfaceGUID, F_ProjMan.GSCSBase.NBSpravochnik, false, false);
|
||
if sprInterf <> nil then
|
||
begin
|
||
for k := 0 to sprInterF.InterfaceNorms.Count - 1 do
|
||
begin
|
||
Deleted := False;
|
||
if TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).GuidNBNorm = currNormGuid then
|
||
begin
|
||
TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).Free;
|
||
sprInterf.InterfaceNorms[k] := nil;
|
||
Deleted := True;
|
||
//break;
|
||
end;
|
||
end;
|
||
sprInterF.InterfaceNorms.Pack;
|
||
end;
|
||
|
||
|
||
//SCSCompon := F_ProjMan.GSCSBase.CurrProject.GetComponentFromReferences(F_ProjMan.GSCSBase.SCSComponent.ID);
|
||
(* SCSCompon := currForm.GSCSBase.CurrProject.GetComponentFromReferences(F_ProjMan.GSCSBase.SCSComponent.ID);
|
||
if SCSCompon <> nil then
|
||
begin
|
||
Deleted := False;
|
||
for i := 0 to SCSCompon.NormsResources.Norms.Count - 1 do
|
||
begin
|
||
currNorm := SCSCompon.NormsResources.Norms[i];
|
||
if (currNorm.IsFromInterface = biTrue) then
|
||
begin
|
||
for j := 0 to SCSCompon.Interfaces.Count - 1 do
|
||
begin
|
||
sprInterf := nil;
|
||
currInterFace := TSCSInterface(SCSCompon.Interfaces[j]);
|
||
|
||
sprInterf := currForm.GSCSBase.CurrProject.Spravochnik.GetInterfaceWithAssign(currInterFace.GUIDInterface, F_ProjMan.GSCSBase.NBSpravochnik, false, false);
|
||
|
||
if sprInterf <> nil then
|
||
begin
|
||
for k := 0 to sprInterF.InterfaceNorms.Count - 1 do
|
||
begin
|
||
// if TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).GuidNBNorm = currNormGuid then
|
||
if TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).IDNBNorm = Norm_ID then
|
||
begin
|
||
TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).Free;
|
||
sprInterf.InterfaceNorms[k] := nil;
|
||
Deleted := True;
|
||
//break;
|
||
end;
|
||
end;
|
||
sprInterF.InterfaceNorms.Pack;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
//Tolik -- 21/06/2016 --
|
||
// <20><><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>)
|
||
if not Deleted then
|
||
begin
|
||
for i := 0 to SCSCompon.ChildReferences.Count - 1 do
|
||
begin
|
||
ChildCompon := TSCSComponent(SCSCompon.ChildReferences[i]);
|
||
if not ChildCompon.ServToDelete then
|
||
begin
|
||
{for j := 0 to ChildCompon.NormsResources.Norms.Count - 1 do
|
||
begin
|
||
currNorm := ChildCompon.NormsResources.Norms[j];
|
||
if (currNorm.IsFromInterface = biTrue) then
|
||
begin}
|
||
for k := 0 to ChildCompon.Interfaces.Count - 1 do
|
||
begin
|
||
sprInterf := nil;
|
||
currInterFace := TSCSInterface(ChildCompon.Interfaces[k]);
|
||
sprInterf := currForm.GSCSBase.CurrProject.Spravochnik.GetInterfaceWithAssign(currInterFace.GUIDInterface, F_ProjMan.GSCSBase.NBSpravochnik, false, false);
|
||
if sprInterf <> nil then
|
||
begin
|
||
for l := 0 to sprInterF.InterfaceNorms.Count - 1 do
|
||
begin
|
||
//if TNBInterFaceNorm(sprInterf.InterfaceNorms[l]).GuidNBNorm = currNormGuid then
|
||
if TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).IDNbNorm = Norm_ID then
|
||
begin
|
||
TNBInterFaceNorm(sprInterf.InterfaceNorms[l]).Free;
|
||
sprInterf.InterfaceNorms[l] := nil;
|
||
Deleted := True;
|
||
//break;
|
||
end;
|
||
end;
|
||
sprInterF.InterfaceNorms.Pack;
|
||
end;
|
||
end;
|
||
|
||
end;
|
||
end;
|
||
end;
|
||
//
|
||
end;
|
||
*)
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
EnableEditDelNorm;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_AddComponent.Act_DeleteNormResourceExecute: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddResourceExecute(Sender: TObject);
|
||
begin
|
||
AddEditResource(meMake, tkResourceRelEd, false);
|
||
EnableEditDelResource;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_EditResourceExecute(Sender: TObject);
|
||
begin
|
||
AddEditResource(meEdit, tkResourceRelEd, false);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DelResourceExecute(Sender: TObject);
|
||
var
|
||
DelName: string;
|
||
IDDel: Integer;
|
||
CurrNPP: Integer;
|
||
begin
|
||
try
|
||
DelName := TF_Main(GForm).DM.MemTable_ResourcesRelEd.FieldByName('Name').AsString;
|
||
if MessageModal(cQuastDelResource + ' "' + DelName + '"?',
|
||
cDeletingResource, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
if TF_Main(GForm).DM.MemTable_ResourcesRelEd.FieldByName('isNew').AsBoolean = false then
|
||
begin
|
||
IDDel := TF_Main(GForm).DM.MemTable_ResourcesRelEd.FieldByName('ID').AsInteger;
|
||
GDeletedResourceID.Add(IDDel);
|
||
end;
|
||
CurrNPP := TF_Main(GForm).DM.MemTable_ResourcesRelEd.FieldByName('NPP').AsInteger;
|
||
TF_Main(GForm).DM.MemTable_ResourcesRelEd.Delete;
|
||
TF_Main(GForm).DM.SdvigNPPInMemTable(CurrNPP, TF_Main(GForm).DM.MemTable_ResourcesRelEd);
|
||
|
||
CalcNormCost;
|
||
EnableEditDelResource;
|
||
end;
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLog('TF_Norms.Act_DelResourceExecute: ' + E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSRTypeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
if AText <> '' then
|
||
AText := GetResourceTypeName(StrToInt(AText));
|
||
|
||
{if AText <> '' then
|
||
begin
|
||
if (StrToInt(AText) = rtMat) then
|
||
AText := cAddComponent_Msg13_1
|
||
else if (StrToInt(AText) = rtMachMech) then
|
||
AText := cAddComponent_Msg13_2
|
||
else if (StrToInt(AText) = rtPrice) then
|
||
AText := cAddComponent_Msg13_3;
|
||
end;}
|
||
end;
|
||
|
||
procedure TF_AddComponent.cbApplyForCurrentDirPropertiesChange(
|
||
Sender: TObject);
|
||
//var
|
||
//ApplyCheckBoxBorderColor: TColor;
|
||
//ApplyCheckBoxBorderStyle: TcxEditBorderStyle;
|
||
begin
|
||
cbIncludingSubFolders.Enabled := cbApplyForCurrentDir.Checked;
|
||
lbSelectFieldsFromApplyInNB.Enabled := cbApplyForCurrentDir.Checked;
|
||
|
||
OncbApplyForChange(Sender);
|
||
if (FApplyComponElementsChecked[liProperty] = biTrue) then
|
||
cbApplyForFocusedProp.Enabled := cbApplyForCurrentDir.Checked
|
||
else
|
||
cbApplyForFocusedProp.Enabled := False;
|
||
|
||
cbAutoAddInter.Enabled := cbApplyForCurrentDir.Checked;
|
||
//ApplyCheckBoxBorderColor := FApplyCheckBoxesBorderColor;
|
||
//ApplyCheckBoxBorderStyle := FApplyCheckBoxesBorderStyle;
|
||
//if Not cbApplyForCurrentDir.Checked then
|
||
//begin
|
||
// ApplyCheckBoxBorderColor := clWindowFrame;
|
||
// ApplyCheckBoxBorderStyle := ebsUltraFlat;
|
||
//end;
|
||
|
||
//cbApplyForCurrentDir.Style.BorderColor := ApplyCheckBoxBorderColor;
|
||
//cbApplyForCurrentDir.Style.BorderStyle := ApplyCheckBoxBorderStyle;
|
||
//VisibleApplyCheckBoxes(cbApplyForCurrentDir.Checked, false);
|
||
end;
|
||
|
||
procedure TF_AddComponent.cbSuppliesKindPropertiesChange(Sender: TObject);
|
||
var
|
||
IDSuppliesKind: Integer;
|
||
GUIDSuppliesKind: string;
|
||
//SavedOnChange: TNotifyEvent;
|
||
begin
|
||
IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
|
||
FSuppliesKind := TF_Main(GForm).DM.GetSuppliesKindByID(IDSuppliesKind, GUIDSuppliesKind);
|
||
DefineSuppliesKindWorkValuesToFields(FSuppliesKind, TF_Main(GForm).FUOM);
|
||
|
||
|
||
SetSupplyKindControls;
|
||
|
||
if (IDSuppliesKind > 0) or (GUIDSuppliesKind <> '') then
|
||
begin
|
||
DefineSupplyPriceByComponPrice(CurrencyEdit_Price1.Value);
|
||
|
||
if FSuppliesKind.Izm <> '' then
|
||
if GetNameUOMForCompon('', @FCurrComponentType, TF_Main(GForm).FUOM) = '' then
|
||
Edit_Izm.Text := FSuppliesKind.Izm;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
{if FSuppliesKind.ID = 0 then
|
||
if (cePriceSupply.Value = 0) and (CurrencyEdit_Price1.Value > 0) then
|
||
begin
|
||
SavedOnChange := cePriceSupply.Properties.OnChange;
|
||
cePriceSupply.Properties.OnChange := nil;
|
||
try
|
||
cePriceSupply.Value := RoundCP(CurrencyEdit_Price1.Value * SuppliesKind.UnitKolvo);
|
||
finally
|
||
cePriceSupply.Properties.OnChange := SavedOnChange;
|
||
end;
|
||
end;}
|
||
|
||
//DefineParamsBySupply(cePriceSupply.Value, true);
|
||
end;
|
||
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.btSuppliesKindClick(Sender: TObject);
|
||
var
|
||
IDSuppliesKind: Integer;
|
||
GUIDSuppliesKind: string;
|
||
//Iindex: Integer;
|
||
begin
|
||
IDSuppliesKind := GetIDFromComboBox(cbSuppliesKind);
|
||
GUIDSuppliesKind := GetGUIDFromComboBox(cbSuppliesKind);
|
||
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
F_NormBase.F_CaseForm.GIDNotDel := IDSuppliesKind;
|
||
F_NormBase.F_CaseForm.GIDToLocate := IDSuppliesKind;
|
||
|
||
if (F_NormBase.F_CaseForm.Execute(VKSuppliesKind, fmEdit)) then
|
||
begin
|
||
IDSuppliesKind := F_NormBase.DM.DataSet_SuppliesKinds.FN(fnID).AsInteger;
|
||
|
||
cbSuppliesKind.Properties.BeginUpdate;
|
||
try
|
||
//cbSuppliesKind.Properties.OnChange := nil;
|
||
//FSpravochnik.LoadSuppliesKindsToStrings(cbSuppliesKind.Properties.Items, true);
|
||
//cbSuppliesKind.Properties.OnChange := cbSuppliesKindPropertiesChange;
|
||
LoadSuppliesKindsToForm;
|
||
finally
|
||
cbSuppliesKind.Properties.EndUpdate;
|
||
end;
|
||
SelectItemByIDinCombo(cbSuppliesKind, IDSuppliesKind);
|
||
|
||
GWasChanging := true;
|
||
end;
|
||
end
|
||
else
|
||
if TF_Main(GForm).GDBMode = bkprojectManager then
|
||
begin
|
||
if ShowCurrProjectProperties(vkSuppliesKind, GUIDSuppliesKind) then
|
||
if FProjSpravochnik.LastSuppliesKind <> nil then
|
||
GUIDSuppliesKind := FProjSpravochnik.LastSuppliesKind.Data.GUID;
|
||
|
||
//cbSuppliesKind.Properties.OnChange := nil;
|
||
//FProjSpravochnik.LoadSuppliesKindsToStrings(cbSuppliesKind.Properties.Items, true);
|
||
//cbSuppliesKind.Properties.OnChange := cbSuppliesKindPropertiesChange;
|
||
LoadSuppliesKindsToForm;
|
||
SelectItemByGUIDinCombo(cbSuppliesKind, GUIDSuppliesKind);
|
||
end;
|
||
//FillComboBox(cbSuppliesKind, F_NormBase, true, tnSuppliesKinds, fnID, fnName, strNoDefined, IDSuppliesKind);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddCompDataFromOtherComponExecute(
|
||
Sender: TObject);
|
||
var
|
||
NBComponent: TSCSComponent;
|
||
begin
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
NBComponent := TF_Main(GForm).CreateFConnectComplWith.GetComponentFromNB(GIDComponent, '');
|
||
if NBComponent <> nil then
|
||
begin
|
||
try
|
||
with TF_Main(GForm).DM do
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface, liPort:
|
||
begin
|
||
NBComponent.LoadInterfaces;
|
||
NBComponent.SetPortInterfRelInterfaces;
|
||
NBComponent.SetInterfacesParallel;
|
||
|
||
SendInterfacesPortsToMemTable(NBComponent, true, true);
|
||
end;
|
||
liProperty: ;
|
||
end;
|
||
finally
|
||
NBComponent.Free;
|
||
end;
|
||
EnableButtons;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.CurrencyEdit_Price1Exit(Sender: TObject);
|
||
begin
|
||
if TcxCurrencyEdit(Sender).Text = '' then
|
||
TcxCurrencyEdit(Sender).Value := 0;
|
||
end;
|
||
|
||
procedure TF_AddComponent.cbApplyComponDataClick(Sender: TObject);
|
||
begin
|
||
FApplyComponElementsChecked[Grid.ActiveLevel.Index] := BoolToInt(TcxCheckBox(Sender).Checked);
|
||
if Grid.ActiveLevel.Index = liPort then
|
||
FApplyComponElementsChecked[liInterface] := FApplyComponElementsChecked[liPort];
|
||
if Grid.ActiveLevel.Index = liInterface then
|
||
FApplyComponElementsChecked[liPort] := FApplyComponElementsChecked[liInterface];
|
||
|
||
if (FApplyComponElementsChecked[liProperty] = biTrue) then
|
||
cbApplyForFocusedProp.Enabled := cbApplyForCurrentDir.Checked
|
||
else
|
||
cbApplyForFocusedProp.Enabled := False;
|
||
cbAutoAddInter.Enabled := cbApplyForCurrentDir.Checked;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DublicatePortInterfaceExecute(
|
||
Sender: TObject);
|
||
var
|
||
meInterfacePortRel: TmeInterfaceRel;
|
||
dsrcPortInterface: TDataSource;
|
||
IsPort: Integer;
|
||
ComponentType: TComponentType;
|
||
begin
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
dsrcPortInterface := nil;
|
||
IsPort := biFalse;
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
begin
|
||
dsrcPortInterface := TF_Main(GForm).DM.DataSource_MT_INTERFACERelEd;
|
||
IsPort := biFalse;
|
||
end;
|
||
liPort:
|
||
begin
|
||
dsrcPortInterface := TF_Main(GForm).DM.DataSource_MT_PortEd;
|
||
IsPort := biTrue;
|
||
end;
|
||
end;
|
||
|
||
if dsrcPortInterface <> nil then
|
||
begin
|
||
meInterfacePortRel := TF_Main(GForm).DM.GetInterfaceRel(dsrcPortInterface, nil);
|
||
if meInterfacePortRel.IsNative = false then
|
||
MessageModal(cImpossibleDupNoNativeInterface, ApplicationName, MB_ICONINFORMATION or MB_OK)
|
||
else
|
||
begin
|
||
ComponentType := GetComponentType;
|
||
|
||
meInterfacePortRel.Count := 1;
|
||
meInterfacePortRel.IsPort := IsPort;
|
||
meInterfacePortRel.IsBusy := biFalse;
|
||
meInterfacePortRel.DataSource := nil;
|
||
meInterfacePortRel.IsLineCompon := ComponentType.IsLine;
|
||
meInterfacePortRel.ServiceIsPair := (meInterfacePortRel.IsLineCompon = biTrue) and (meInterfacePortRel.ID_Adverse > 0);
|
||
if meInterfacePortRel.ServiceIsPair then
|
||
Inc(meInterfacePortRel.Count);
|
||
AddInterfaceToMT(meInterfacePortRel);
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceRNumberGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
AText := IntToStr(AREcord.Index + 1);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PortRNumberGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
AText := IntToStr(AREcord.Index + 1);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSNPPGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: string);
|
||
begin
|
||
AText := IntToStr(ARecord.Index + 1);
|
||
end;
|
||
|
||
procedure TF_AddComponent.gbOkCancelResize(Sender: TObject);
|
||
begin
|
||
SetMiddleControlChilds(TControl(Sender), Self);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_TurnFromMemTableToSpravochnikExecute(
|
||
Sender: TObject);
|
||
var
|
||
InterfPortMemTable: TkbmMemTable;
|
||
begin
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
InterfPortMemTable := GetInterfPortMemTable;
|
||
if InterfPortMemTable <> nil then
|
||
ShowSpravochnikForInterface(GForm, InterfPortMemTable);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_AddCrossConnectionExecute(Sender: TObject);
|
||
begin
|
||
AddEditCrossConnection(meMake);
|
||
EnableButtons;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_EditCrossConnectionExecute(Sender: TObject);
|
||
begin
|
||
AddEditCrossConnection(meEdit);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DelCrossConnectionExecute(Sender: TObject);
|
||
var
|
||
DelID: Integer;
|
||
begin
|
||
if MessageModal(cQuastDelCurrCrossConnection,
|
||
Application.Title, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
DelID := TF_Main(GForm).DM.mtCrossConnectionEd.FieldByName(fnID).AsInteger;
|
||
if TF_Main(GForm).DM.mtCrossConnectionEd.FieldByName(fnIsNew).AsBoolean = false then
|
||
GDeletedCrossConnections.Add(DelID);
|
||
TF_Main(GForm).DM.mtCrossConnectionEd.Delete;
|
||
end;
|
||
EnableButtons;
|
||
end;
|
||
|
||
procedure TF_AddComponent.seIndexPropertiesChange(Sender: TObject);
|
||
begin
|
||
GChangedIndex := true;
|
||
if TF_Main(GForm).GDBMode = bkProjectManager then
|
||
if rbMarkByTemplate.Checked then
|
||
begin
|
||
Edit_NameMark.Text := GetComponentNameMarkByTemplate;
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_EnterExecute(Sender: TObject);
|
||
begin
|
||
BitBtn_OK.Click;
|
||
end;
|
||
|
||
procedure TF_AddComponent.cbDismountClick(Sender: TObject);
|
||
var
|
||
//BookmarkStr: string;
|
||
BookmarkStr: TBookMark;
|
||
MemTableNorms: TkbmMemTable;
|
||
begin
|
||
try
|
||
cbUseDismounted.Enabled := cbDismount.Checked;
|
||
|
||
{$IF Not Defined(NORMSCS_PE) and Not Defined(SCS_SPA)}
|
||
if cbDismount.Checked then
|
||
begin
|
||
MemTableNorms := TF_Main(GForm).DM.MemTable_NormsEd;
|
||
if MemTableNorms.Active then
|
||
if MessageModal(cAddComponent_Msg14, ApplicationName, MB_ICONQUESTION or MB_YESNO) = IDYES then
|
||
begin
|
||
//BookmarkStr := MemTableNorms.Bookmark;
|
||
BookmarkStr := MemTableNorms.GetBookmark;
|
||
MemTableNorms.DisableControls;
|
||
try
|
||
MemTableNorms.First;
|
||
while not MemTableNorms.Eof do
|
||
begin
|
||
if not MemTableNorms.FieldByName(fnIsResource).AsBoolean and
|
||
(MemTableNorms.FieldByName(fnIsOn).AsInteger = biTrue) then
|
||
begin
|
||
MemTableNorms.Edit;
|
||
MemTableNorms.FieldByName(fnIsOn).AsInteger := biFalse;
|
||
MemTableNorms.FieldByName(fnIsModified).AsBoolean := true;
|
||
MemTableNorms.Post;
|
||
end;
|
||
MemTableNorms.Next;
|
||
end;
|
||
finally
|
||
if BookmarkStr <> nil then
|
||
begin
|
||
MemTableNorms.GotoBookMark(BookmarkStr);
|
||
MemTableNorms.FreeBookMark(BookmarkStr);
|
||
end;
|
||
|
||
MemTableNorms.EnableControls;
|
||
end;
|
||
Act_AddNorm.Execute;
|
||
|
||
cbUseDismounted.Checked := true;
|
||
end
|
||
else
|
||
cbUseDismounted.Checked := false;
|
||
end;
|
||
{$IFEND}
|
||
except
|
||
on E: Exception do
|
||
AddExceptionToLogEx('TF_AddComponent.cbDismountClick', E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_CableCanalConnectorsDblClick(Sender: TObject);
|
||
begin
|
||
Act_EditCableCanalConnector.Execute;
|
||
end;
|
||
|
||
procedure TF_AddComponent.ComboBox_ComponentTypeExit(Sender: TObject);
|
||
begin
|
||
FChangedComponTypeInCombo := false;
|
||
if GFormMode <> fmView then
|
||
ApplyChangedComponentType;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSEditChanged(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
|
||
begin
|
||
//
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSEditValueChanged(
|
||
Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem);
|
||
begin
|
||
//
|
||
end;
|
||
|
||
procedure TF_AddComponent.btImportComponByArtProducerClick(
|
||
Sender: TObject);
|
||
var
|
||
IDComponent: Integer;
|
||
NewComponentType: TComponentType;
|
||
SavedOnChange: TNotifyEvent;
|
||
begin
|
||
IDComponent := 0;
|
||
if Edit_ArticulProducer.Text <> '' then
|
||
begin
|
||
IDComponent := TF_Main(GForm).DM.GetComponIDByArtProducer(Edit_ArticulProducer.Text, GIDComponent);
|
||
if IDComponent <> 0 then
|
||
begin
|
||
FCurrComponentType := TF_Main(GForm).DM.GetComponentTypeByIDCompon(IDComponent);
|
||
if FCurrComponentType.ID <> 0 then
|
||
begin
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
SavedOnChange := ComboBox_ComponentType.Properties.OnChange;
|
||
ComboBox_ComponentType.Properties.OnChange := nil;
|
||
try
|
||
SelectItemByIDinCombo(ComboBox_ComponentType, FCurrComponentType.ID);
|
||
finally
|
||
ComboBox_ComponentType.Properties.OnChange := SavedOnChange;
|
||
end;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
ImportComponentByID(IDComponent);
|
||
|
||
EnableButtons;
|
||
SetControls(nil);
|
||
end;
|
||
end
|
||
else
|
||
MessageModal(cAddComponent_Msg15, ApplicationName, MB_OK or MB_ICONINFORMATION);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.lbSelectFieldsFromApplyInPMClick(
|
||
Sender: TObject);
|
||
begin
|
||
ShowPopupMenuForControl(lbSelectFieldsFromApplyInPM, pmSelectApplyFields);
|
||
end;
|
||
|
||
procedure TF_AddComponent.lbSelectFieldsFromApplyInNBClick(
|
||
Sender: TObject);
|
||
begin
|
||
ShowPopupMenuForControl(lbSelectFieldsFromApplyInNB, pmSelectApplyFields);
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.Act_SelectAllApplyFieldsExecute(Sender: TObject);
|
||
begin
|
||
SetValueToAllApplyCheckBoxes(true);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DeSelectAllApplyFieldsExecute(
|
||
Sender: TObject);
|
||
begin
|
||
SetValueToAllApplyCheckBoxes(false);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_SelectCurrPageAllApplyFieldsExecute(
|
||
Sender: TObject);
|
||
begin
|
||
SetValueToCurrPageApplyCheckBoxes(true);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DeSelectCurrPagetAllApplyFieldsExecute(
|
||
Sender: TObject);
|
||
begin
|
||
SetValueToCurrPageApplyCheckBoxes(false);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_PropertyIzmGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
SetDisplayTextToGridTablePropIzm(AText, ARecord, 7, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSExpenseForLengthGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
try
|
||
AText := GetDisplayTextToNORMExpenseForLength(AText, TF_Main(GForm).FUOM);
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSExpenseForLengthPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
//added by Tolik
|
||
ExpenseForIzm : string;
|
||
//
|
||
begin
|
||
try
|
||
ExpenseForIzm := (TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIzm).AsString);
|
||
// <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(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnExpenseForLength).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end
|
||
// added by Tolik
|
||
else
|
||
if TF_Main(GForm).DM.GetExpenceFromIzm(ExpenseForIzm) <> 1 then
|
||
DisplayValue := FloatToStr(StrToFloat_My(DisplayValue)*TF_Main(GForm).DM.GetExpenceFromIzm(ExpenseForIzm));
|
||
//
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
ValueFloat := FloatInUOM(ValueFloat, umMetr, TF_Main(GForm).FUOM);
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
MemTable_NormsEd.Edit;
|
||
MemTable_NormsEd.FieldByName(fnExpenseForLength).AsFloat := RoundCP(ValueFloat);
|
||
|
||
if MemTable_NormsEd.FieldByName(fnIsResource).AsBoolean then
|
||
MemTable_NormsEd.FieldByName(fnTotalCost).AsFloat := 0;
|
||
MemTable_NormsEd.FieldByName(fnKolvo).AsFloat := 0;
|
||
MemTable_NormsEd.FieldByName(fnCountForPoint).AsFloat := 0;
|
||
MemTable_NormsEd.FieldByName(fnStepOfPoint).AsFloat := 0;
|
||
MemTable_NormsEd.Post;
|
||
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
end;
|
||
CalcWorkCost;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSCountForPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnCountForPoint).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end
|
||
else
|
||
if TF_Main(GForm).DM.GetExpenceFromIzm(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIzm).AsString) <> 1 then
|
||
DisplayValue := DisplayValue*TF_Main(GForm).DM.GetExpenceFromIzm(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnIzm).AsString);
|
||
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
InputFloatToRelatedZeroFieldInMT(MemTable_NormsEd, ValueFloat, fnCountForPoint, fnStepOfPoint,
|
||
fnKolvo+';'+fnTotalCost+';'+fnExpenseForLength, cAddComponent_Msg20_1, true, TF_Main(GForm).FUOM);
|
||
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
//MemTable_NormsEd.Edit;
|
||
//MemTable_NormsEd.FieldByName(fnCountForPoint).AsFloat := RoundCP(ValueFloat);
|
||
//MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSStepOfPointGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextInFLoatUOM(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSStepOfPointPropertiesValidate(
|
||
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
|
||
var Error: Boolean);
|
||
var
|
||
ValueFloat: Double;
|
||
begin
|
||
try
|
||
if DisplayValue = '' then
|
||
begin
|
||
DisplayValue := FloatToStr(TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnStepOfPoint).AsFloat);
|
||
Exit; ///// EXIT /////
|
||
end;
|
||
ValueFloat := StrToFloat_My(DisplayValue);
|
||
ValueFloat := FloatInUOM(ValueFloat, TF_Main(GForm).FUOM, umMetr);
|
||
|
||
with TF_Main(GForm).DM do
|
||
begin
|
||
InputFloatToRelatedZeroFieldInMT(MemTable_NormsEd, ValueFloat, fnStepOfPoint, fnCountForPoint,
|
||
fnKolvo+';'+fnTotalCost+';'+fnExpenseForLength, cAddComponent_Msg20_2, false, TF_Main(GForm).FUOM);
|
||
CalcNormTatalCostInMT(MemTable_NormsEd, FTraccaLength);
|
||
//MemTable_NormsEd.Edit;
|
||
//MemTable_NormsEd.FieldByName(fnStepOfPoint).AsFloat := RoundCP(ValueFloat);
|
||
//MemTable_NormsEd.Post;
|
||
end;
|
||
CalcWorkCost;
|
||
except
|
||
end;
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.GT_NORMSInitEdit(Sender: TcxCustomGridTableView;
|
||
AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit);
|
||
begin
|
||
if AItem = GT_NORMSExpenseForLength then
|
||
AEdit.EditValue := GetDisplayTextToNORMExpenseForLength(AEdit.EditValue, TF_Main(GForm).FUOM)
|
||
else
|
||
if AItem = GT_NORMSStepOfPoint then
|
||
AEdit.EditValue := GetDisplayTextInFLoatUOM(AEdit.EditValue, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_InterfaceCoordZGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextInFLoatUOM(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.pcMainChanging(Sender: TObject;
|
||
NewIndex: Integer; var AllowChange: Boolean);
|
||
begin
|
||
if pcMain.ActivePage = tsWorkingAndResources then
|
||
if GT_Norms.DataController.IsEditing then
|
||
SetFocusToControl(Grid_NORMS);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_DelAllExecute(Sender: TObject);
|
||
begin
|
||
if ReadOnly then
|
||
Exit; ///// EXIT /////
|
||
|
||
case Grid.ActiveLevel.Index of
|
||
liInterface:
|
||
DelAllInterfacesPorts(false);
|
||
liPort:
|
||
DelAllInterfacesPorts(true);
|
||
liProperty:
|
||
DelAllProperties;
|
||
liComplects:
|
||
;
|
||
liCableCanalConnectors:
|
||
DelAllCableCanalConnectors;
|
||
liCrossConnections:
|
||
DelAllCrossConnections;
|
||
end;
|
||
EnableButtons;
|
||
end;
|
||
|
||
|
||
procedure TF_AddComponent.GT_NORMSCustomDrawCell(
|
||
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
|
||
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
||
begin
|
||
OnNormsResourcesCustomDrawCell(ACanvas, AViewInfo, GT_NORMSIsResource.Index,
|
||
GT_NORMSGUIDNBCompon.Index, GT_NORMSTotalKolvo.Index, true);
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSTotalKolvoGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
//AText := GetDisplayTextInFLoatUOM(AText, TF_Main(GForm).FUOM);
|
||
end;
|
||
|
||
procedure TF_AddComponent.ComboBox_ProducerPropertiesChange(
|
||
Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.cePriceSupplyPropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Edit_NoticePropertiesChange(Sender: TObject);
|
||
begin
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.Timer_ChoiceCompTypeTimer(Sender: TObject);
|
||
var
|
||
GUIDCompType: String;
|
||
begin
|
||
TTimer(Sender).Enabled := false;
|
||
|
||
GUIDCompType := ExecuteChoiceComponType(GForm);
|
||
if GUIDCompType <> '' then
|
||
begin
|
||
if SelectItemByGUIDinCombo(ComboBox_ComponentType, GUIDCompType) then
|
||
ComboBox_ComponentTypeExit(ComboBox_ComponentType);
|
||
end
|
||
else
|
||
begin
|
||
ComboBox_ComponentType.SetFocus;
|
||
ComboBox_ComponentType.DroppedDown := true;
|
||
end;
|
||
end;
|
||
|
||
function TF_AddComponent.Execute(AFormMode: TFormMode; AIsTemplate: Boolean): Boolean;
|
||
begin
|
||
Result := false;
|
||
try
|
||
GFormMode := AFormMode;
|
||
FIsTemplate := AIsTemplate;
|
||
|
||
if ShowModal = mrOK then
|
||
Result := true;
|
||
except
|
||
on E: Exception do AddExceptionToLogExt(ClassName, MethodName(@TF_AddComponent.Execute), E.Message);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.btChangeSpecificationClick(Sender: TObject);
|
||
var
|
||
IDObject: Integer;
|
||
begin
|
||
IDObject := GetIDFromComboBox(cbSpecification);
|
||
if TF_Main(GForm).GDBMode = bkNormBase then
|
||
begin
|
||
F_NormBase.F_CaseForm.GIDNotDel := IDObject;
|
||
F_NormBase.F_CaseForm.GIDToLocate := IDObject;
|
||
|
||
if (F_NormBase.F_CaseForm.Execute(vkCompSpecifications, fmEdit)) then
|
||
begin
|
||
IDObject := F_NormBase.DM.dsetCompSpecifications.FN(fnID).AsInteger;
|
||
FillComboBox(cbSpecification, F_NormBase, true, tnFiles, fnID, fnFileName, '', IDObject);
|
||
GWasChanging := true;
|
||
end
|
||
else
|
||
FillComboBox(cbSpecification, F_NormBase, true, tnFiles, fnID, fnFileName, '', IDObject);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.OnChangeComponPropertyVal(AProperty: PProperty; AOldProperty: PProperty=nil);
|
||
begin
|
||
if AProperty.SysName = pnHeightInUnits then
|
||
begin
|
||
SetPropertyValueBySysNameAsFloat(pnHeight, StrToFloatU(AProperty^.Value) * cUnitHeight);
|
||
end;
|
||
end;
|
||
|
||
procedure TF_AddComponent.OnSetComponPropertyVal(AMakeEdit: TMakeEdit; AProperty: PProperty; AOldProperty: PProperty=nil);
|
||
begin
|
||
OnChangeComponPropertyVal(AProperty, AOldProperty);
|
||
end;
|
||
|
||
procedure TF_AddComponent.OnControlChange(Sender: TObject);
|
||
begin
|
||
if Not FIsLoadingForm then
|
||
GWasChanging := true;
|
||
end;
|
||
|
||
procedure TF_AddComponent.GT_NORMSLaborTimeGetDisplayText(
|
||
Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
|
||
var AText: String);
|
||
begin
|
||
AText := GetDisplayTextToNORMLaborTime(AText);
|
||
end;
|
||
|
||
procedure TF_AddComponent.Act_ShowInNormBaseExecute(Sender: TObject);
|
||
var
|
||
InterfPortMemTable: TkbmMemTable;
|
||
Spravochnick: TSpravochnik;
|
||
Node: TTreeNode;
|
||
SCSComponent : TSCSComponent;
|
||
currInterFace: TSCSInterface;
|
||
sprInterf: TNBInterface;
|
||
currNormGuid: string;
|
||
i,j,k : Integer;
|
||
currNorm: TSCSNorm;
|
||
begin
|
||
currNormGuid := TF_Main(GForm).DM.MemTable_NormsEd.FieldByName(fnGuidNB).Value;
|
||
SCSComponent := nil;
|
||
SCScomponent := F_ProjMan.GSCSBase.SCSComponent;
|
||
if SCScomponent <> nil then
|
||
begin
|
||
Node := F_NormBase.FindComponentByGUIDWithBlink(SCSComponent.GuidNB);
|
||
if Node <> nil then
|
||
begin
|
||
Node.Selected := True;
|
||
if F_NormBase.GSCSBase.SCSComponent <> nil then
|
||
begin
|
||
F_NormBase.OnClickCompon(F_NormBase.GSCSBase.SCScomponent);
|
||
F_NormBase.GSCSBase.SCSComponent.LoadInterfaces;
|
||
SCScomponent := F_NormBase.GSCSBase.SCSComponent;
|
||
InterfPortMemTable := TF_MAIN(F_NormBase).DM.MemTable_InterfaceRelEd;
|
||
|
||
//InterfPortMemTable := TF_Main(F_NormBase).DM.MemTable_InterfaceRel;
|
||
if InterfPortMemTable <> nil then
|
||
begin
|
||
if not InterfPortMemTable.Active then
|
||
InterfPortMemTable.Open;
|
||
F_NormBase.GT_Interface.Focused := True;
|
||
|
||
end;
|
||
|
||
SCSComponent := F_ProjMan.GSCSBase.CurrProject.GetComponentFromReferences(F_ProjMan.GSCSBase.SCSComponent.ID);
|
||
if SCSComponent <> nil then
|
||
begin
|
||
|
||
for i := 0 to SCSComponent.NormsResources.Norms.Count - 1 do
|
||
begin
|
||
currNorm := SCSComponent.NormsResources.Norms[i];
|
||
if (currNorm.IsFromInterface = biTrue) then
|
||
begin
|
||
for j := 0 to SCSComponent.Interfaces.Count - 1 do
|
||
begin
|
||
currInterFace := TSCSInterface(SCSComponent.Interfaces[j]);
|
||
if (currInterFace.IsBusy = biTrue) or (currInterFace.BusyPositions.Count > 0) then
|
||
begin
|
||
sprInterf := F_ProjMan.GSCSBase.CurrProject.Spravochnik.GetInterfaceWithAssign(currInterFace.GUIDInterface, F_ProjMan.GSCSBase.NBSpravochnik, false, false);
|
||
if sprInterf <> nil then
|
||
begin
|
||
for k := 0 to sprInterF.InterfaceNorms.Count - 1 do
|
||
begin
|
||
if TNBInterFaceNorm(sprInterf.InterfaceNorms[k]).GuidNBNorm = currNormGuid then
|
||
begin
|
||
break;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
|
||
|
||
{ TF_Main(F_NormBase).F_CaseForm.GUseMemTable := TF_MAIN(F_NormBase).DM.MemTable_InterfaceRel;//AMemTable;
|
||
TF_Main(F_NormBase).F_CaseForm.GIDToLocate := currInterFace.ID_Interface;
|
||
TF_Main(F_NormBase).DM.SelectInterfaces(TF_Main(F_NormBase).Tree_Catalog.Selected);
|
||
TF_Main(F_NormBase).F_CaseForm.Execute(vkInterface, fmView); }
|
||
|
||
TF_Main(F_NormBase).F_CaseForm.GUseMemTable := TF_MAIN(F_NormBase).DM.MemTable_InterfaceRel;//AMemTable;
|
||
TF_Main(F_NormBase).F_CaseForm.GIDToLocate := sprInterf.ID;
|
||
TF_Main(F_NormBase).DM.SelectInterfaces(TF_Main(F_NormBase).Tree_Catalog.Selected);
|
||
TF_Main(F_NormBase).F_CaseForm.Execute(vkInterface, fmView);
|
||
|
||
|
||
|
||
// ShowSpravochnikForInterface(TF_Main(F_NormBase), InterfPortMemTable);
|
||
//TF_MAIN(F_NormBase).DM.MemTable_InterfaceRel.Refresh;
|
||
{ ShowSpravochnikForInterface(TF_Main(F_NormBase), InterfPortMemTable);
|
||
TF_Main(F_NormBase).DM.SelectInterfaces(TF_Main(F_NormBase).Tree_Catalog.Selected);}
|
||
// end;
|
||
//F_NormBase.F_CaseForm.Execute(vkInterface, fmView);
|
||
{ F_NormBase.F_CaseForm.Execute(vkInterface, fmView);
|
||
TF_Main(F_NormBase).DM.SelectInterfaces(TF_Main(F_NormBase).Tree_Catalog.Selected);}
|
||
end;
|
||
end;
|
||
end;
|
||
|
||
{ IDInterface: Integer;
|
||
GUIDInterface: String;
|
||
|
||
|
||
OldName: String;
|
||
CurrSprInterface: TNBInterface;
|
||
|
||
RecNo: Integer;
|
||
i: Integer;
|
||
|
||
DBMode: TDBKind;
|
||
begin
|
||
Spravochnick := nil;
|
||
|
||
IDInterface := -1;
|
||
GUIDInterface := '';
|
||
|
||
IDInterface := AMemTable.FieldByName(fnIDInterface).AsInteger;
|
||
GUIDInterface := AMemTable.FieldByName(fnGuidInterface).AsString;
|
||
OldName := AMemTable.FieldByName(fnName).AsString;
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||
|
||
Spravochnick := TF_Main(F_NormBase).GSCSBase.NBSpravochnik;
|
||
TF_Main(AForm).F_CaseForm.GUseMemTable := AMemTable;
|
||
TF_Main(AForm).F_CaseForm.GIDToLocate := IDInterface;
|
||
TF_Main(AForm).F_CaseForm.Execute(vkInterface, fmView);
|
||
|
||
|
||
//*** <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> AMemTable
|
||
if Spravochnick <> nil then
|
||
begin
|
||
CurrSprInterface := nil;
|
||
if GUIDInterface <> '' then
|
||
CurrSprInterface := Spravochnick.GetInterfaceWithAssign(GUIDInterface, F_NormBase.GSCSBase.NBSpravochnik, false, false)
|
||
else
|
||
CurrSprInterface := Spravochnick.GetInterfaceByID(IDInterface);
|
||
if CurrSprInterface <> nil then
|
||
if CurrSprInterface.Name <> OldName then
|
||
begin
|
||
RecNo := AMemTable.RecNo;
|
||
AMemTable.DisableControls;
|
||
try
|
||
for i := 0 to AMemTable.RecordCount - 1 do
|
||
begin
|
||
AMemTable.RecNo := i+1;
|
||
if ((GUIDInterface <> '') and (AMemTable.FieldByName(fnGuidInterface).AsString = GUIDInterface)) or
|
||
(AMemTable.FieldByName(fnIDInterface).AsInteger = IDInterface) then
|
||
begin
|
||
AMemTable.Edit;
|
||
AMemTable.FieldByName(fnName).AsString := CurrSprInterface.Name;
|
||
AMemTable.Post;
|
||
end;
|
||
end;
|
||
finally
|
||
AMemTable.RecNo := RecNo;
|
||
AMemTable.EnableControls;
|
||
end;
|
||
end;
|
||
end; }
|
||
end;
|
||
|
||
end.
|
||
|
||
//IDCatalog := 0;
|
||
// if GFormMode = fmMake then
|
||
// IDCatalog := TF_Main(GForm).GSCSBase.SCSCatalog.ID
|
||
// else
|
||
// IDCatalog := TF_Main(GForm).DM.GetComponCatalogOwnerID(GIDComponent);
|
||
// FNBCurrency := TF_Main(GForm).FNormBas
|
||
|