====== ISpr Клас====== Реалізує інтерфейс списку довідника. **Нагадування** При конфігуруванні документу в відповідних подіях, умова **The.TypeForm=1** вказує, що код відноситься для роботи з списком, **The.TypeForm=2**-елементом довідника, **The.TypeForm=3**-групою. ^ Член ^ Тип ^ Параметри ^ Опис ^ ^ Init(Spr,[cPar],[oCrs]) | L | //tSpr//-довідник; //cPar//-параметри; //oCrs//-курсор| Конструктор. loSpr = CreateObject('iSpr','_KSPROF','ID="'+lcID+'"') loSpr.Show() If VarType(loSpr)='O' MessageBox(loSpr.MD.Choice) EndIf | ^ OnExit() | | | Викликає та повертає значення функції заданої в конфігураторі в події **OnExit**. Якщо в конфігураторі ця подія не перекривалась - метод повертає **True** | ^ OnDel() | | | Викликає та повертає значення функції заданої в конфігураторі в події **OnDel**. Якщо в конфігураторі ця подія не перекривалась - метод повертає **True**. Тобто для заборони видалення досить повернути **False**. В відповідній події конфігуратора існує властивість **DelFlag**, яка дозволяє виконати код до видалення (**DelFlag=0**), або після (**DelFlag=1**). Do Case Case The.TypeForm = 4 If The.DelFlag=0 && До видалення Local lcDocID, lcCrsDoc, loUsed lcDocID = The.MD.HF.ID loUsed = CreateObject('TUsed') lcCrsDoc = FindRef(lcDocID,.T.,.T.) Select (lcCrsDoc) Locate For ID # Spr._Zob.Gui If Found() && Return .F. - Заборона подальших штатних дій Return MessageBox('На документ існують посилання. Видалення не можливе.',16,'Видалення')<0 EndIf If The.MD.HF.IsDel=0 And MessageBox('Видалити документ ?',1+32,'Запит')=1 *---Удаляем Зобов'язання Select (lcCrsDoc) Scan For Seek(ID,'_Zob','ID') Delete In _Zob EndScan *---Видаляем документ самостійно SysLog.Fix('Doc','Del',lcDocID, DocShort(lcDocID),,The.MD.HF.Date) The.MD.Delete(lcDocID,1) EndIf Return .F. && Заборона подальших штатних дій EndCase | ^ OnLoad() | | | Викликає та повертає значення функції заданої в конфігураторі в події **OnLoad**, яка відбувається перед відображенням форми редагування. Якщо в конфігураторі ця подія не перекривалась - метод повертає **True**. Для заборони редагування досить повернути **False**. Зручно використовувати для налаштування можливостей редагування, якщо стандартні можливості не влаштовують. Do Case Case The.TypeForm= 2 The.Descr.is_Button = .T. The.Descr.ModeChoice = .T. The.Descr.CommandClick = [BProc.Spr._Posada.SelectKP()] EndCase | ^ isSelectMode | L | | Означає що довідник буде працювати в режимі вибору, і якщо вибір відбувся, то результат буде збережено в **ISpr.MD.Choice**. loSpr = CreateObject('iSpr','_KSPROF') loSpr.isSelectMode = .T. loSpr.Show() If VarType(loSpr)='O' MessageBox(loSpr.MD.Choice) EndIf | ^ MD | [[smartfox:class:tspr-51|TSpr]] | | Посилання на об'єкт метаданих який відображає інтерфейс | ^ ReadOnly | L | | **True** переключає довідник в режим **Тільки читання** (можливість додавання та редагування буде відключена). Використовується, як правило в методі **OnLoad()**. | ^ SetSize(nAddLbl,nAddTxt) | L | //nAddLbl//+-довжина лейбла; //nAddTxt//+-довжина контрола | Встановлює нестандартні розміри реквізитів в стадартній формі. Do Case Case The.TypeForm = 2 The.SetSize(20,100) EndCase |