|
v7: Табличное поле 1с++: добавить флажок | ☑ | ||
---|---|---|---|---|
0
Aristo
26.08.11
✎
10:09
|
Проискал весь яндекс , но не смог найти внятного примера использования флажка с возможностью изменения его пользователем.
Это инициализация табличного поля по источнику Для сч = 1 по тзРезультат.КоличествоКолонок() цикл Заголовок = ""; Ширина = 0; Данные = тзРезультат.ПолучитьПараметрыКолонки(Сч,,,,Заголовок,Ширина); Колонка = гТабличноеПоле.Колонки.Добавить(Данные); Если Сч = 1 Тогда Картинка = СоздатьОбъект("Картинка"); Картинка.Загрузить(КаталогИБ()+"ExtForms\map1.bmp"); Картинка.РежимРисования(1); Колонка.УстановитьКартинкиСтрок(Картинка,); КонецЕсли; Колонка.Заголовок = Заголовок; Колонка.Данные = Данные; Колонка.Ширина = Ширина*2; Колонка.ПереноситьПоСловам = 1; Если СписокКолонокНаСледующейСтроке.НайтиЗначение(Данные)<>0 Тогда Колонка.Положение = 1; КонецЕсли ; Если СписокКолонокВТойЖеКолонке.НайтиЗначение(Данные)<>0 Тогда Колонка.Положение = 2; КонецЕсли; Если СписокНевидимыхКолонок.НайтиЗначение(Данные)<>0 Тогда Колонка.Видимость = 0; КонецЕсли; КонецЦикла; |
|||
1
Anatolik
26.08.11
✎
10:18
|
||||
2
Aristo
26.08.11
✎
10:22
|
да есть документация, но я только вчера его начал использовать, мне документации мало, мне надо примеры увидеть
Например, как использовать метод "Отображать флажок" , Значение флажка. Задача такая - пометить некоторые поля из списка, и потом обработать только эти поля. По документации - читаю, но в коде - туплю |
|||
3
viktor_vv
26.08.11
✎
10:22
|
Делал так.
Процедура мВывестиЯчейку(ОформлениеСтроки,ДанныеСтроки,идКолонки) ОбъектЯчейка=ОформлениеСтроки.Ячейки.Получить(идКолонки); ТекДанные = ДанныеСтроки.Получить(идКолонки); ОбъектЯчейка.ОтображатьТекст = 0 ; ОбъектЯчейка.ОтображатьФлажок = 1 ; ОбъектЯчейка.ЗначениеФлажка = ТекДанные ; КонецПроцедуры Процедура фтпКлиентыПриВыводеСтроки(отпКлиенты, ОформлениеСтроки, ДанныеСтроки) мВывестиЯчейку(ОформлениеСтроки,ДанныеСтроки,"Call") ; КонецПроцедуры Процедура фтпКлиентыПриВыбореФлажка(ДанныеСтроки, Колонка, ТипРегиона) Если ДанныеСтроки.ТекущаяКолонка.Имя = "Call" Тогда НомерСтрокиТЗ = ДанныеСтроки.ТекущиеДанные.НомерСтроки ; ТекДанные = ДанныеСтроки.ТекущиеДанные.Call; НовыеДанные = ?(ТекДанные = 1,0,1) ; мЗаписатьВбазуПРИзнак("Call",НомерСтрокиТЗ,НовыеДанные); КонецЕсли ; КонецПроцедуры |
|||
4
Aristo
26.08.11
✎
10:25
|
(3) спасибо. маленький вопросик - правильно ли я понимаю что название предопределенной процедуры собирается из имени реквизита табличного поля на форме и самого имени предопределенной процедуры ?
|
|||
5
viktor_vv
26.08.11
✎
10:26
|
Да. В (3) фтпКлиенты - это идентификатор кнопки на которую навешено табличное поле.
|
|||
6
Aristo
26.08.11
✎
10:49
|
А можешь еще мЗаписатьБазуВПризнак увидеть?
Я просто не увидел как обновляется табличное поле после НовыеДанные = ?(ТекДанные = 1,0,1) ; По идее нужно задать чтобы тп обновилось и показало изменения флага. Или я неправ ? |
|||
7
viktor_vv
26.08.11
✎
10:53
|
Процедура мЗаписатьВбазуПРИзнак(ИмяПоляВБазе,пНомерСтрокиТЗ,пНовыеДанные) // ,пНовыеДанные
Если пНомерСтрокиТЗ > 0 Тогда фтзКлиенты.УстановитьЗначение(пНомерСтрокиТЗ,ИмяПоляВбазе,пНовыеДанные); отпКлиенты.ОбновитьСтроки(); КонецЕсли ; КонецПроцедуры Убрал лишнее. Там еще писалось в стороннюю табличку. фтзКлиенты - источник данных для табличного поля. |
|||
8
viktor_vv
26.08.11
✎
10:54
|
(7)+ оТПКлиенты - объект таблтчное поле.
|
|||
9
Aristo
26.08.11
✎
13:16
|
(8) ага, обновитьстроки(). спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |