====== 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
|