Анимация
JavaScript
|
Главная Библионтека FaiEn DesicpicE liEtiigh.Ecx Fame Fopm1 3 PBjfK Рис. 10.18. Для события Init объекта Olec1 записываем следующий код: && Помещаем в массив aTabList список таблиц из словаря данных. && В связи с установленным уровнем доступа, равным по умолчанию пяти, && данный список таблиц фильтруем с помощью предложения WHERE SELECT tableslist.table name ; FROM datavocabularyltableslist ; WHERE ALLT(Tableslist.table name)<<>>"Sale" ; AND ALLT(Tableslist.table name)<<>>"Account" ; AND ALLT(Tableslist.table name)<<>>"Customer" AND ALLT(Tableslist.table name)<<>>"Order" ; AND ALLT(Tableslist.table name)<<>>"Salesman" INTO ARRAY aTabList && Определяем значение переменной nnPabl nnPabl=0 && Последовательно заносим список полей для каждой таблицы && в массивы 1nnAr, 2nnAr, 3nnAr, <193> && После чего в объект Olec1 добавляем имена таблиц и соответствующих && этим таблицам полей, а для каждого поля устанавливаем отступ (indent)=2 && и тип изображения (PictureType)=2 FOR X=1 TO ALEN(aTabList) ThisForm.Olec1.AddItem(ALLT(aTabList(X))) nnTab=ALLT(aTabList(X)) nnAr="nnAr"+ALLT(STR(X)) SELECT Tables.field name ; FROM datavocabularyltables ; WHERE Tables.table name = nnTab ; INTO ARRAY &nnAr nnAddItem="ThisForm.Olec1.AddItem" nnArn="nnAr"+ALLT(STR(X)) FOR I = 1 TO ALEN(&nnArn) &n nAddItem(ALLT(&n nArn (i))) nnBeby=nnPabl+X+I-1 ThisForm.Olec1.indent(nnBeby)=2 ThisForm.Olec1.PictureType(nnBeby)=2 ENDFOR nnPabl=nnPabl+ALEN(&nnArn) ENDFOR Права ШР1гп1 lkeyfirm lnamefirm key country lnameco unify =!)»HFiie! oil 0- ИТугв "{Autcmohil ejiasseh ij e rear Рис. 10.19. Форма с иерархическим списком в действии Календарь В следующем примере рассмотрим использование календаря для ввода или редактирования данных в поле, содержащем дату. Вместо набора даты вручную пользователь должен иметь возможность визуального выбора в календаре требуемой даты. После выбора дата должна автоматически записаться в нужное поле, как это показано на рис. 10.20. Для этого в Visual Basic откроем новый проект и создадим несложную форму. Чтобы сделать процесс создания формы максимально простым, используем, пожалуй, единственный визуальный инструмент разработчика, присутствующий в Visual Basic, - Data Form Designer - Конструктор формы для работы с данными, показанный на рис. 10.22. Необходимые пояснения для построения формы вы найдете на этом же рисунке. Построенная Конструктором форма приведена на рис. 10.21. Как видите, она мало пригодна для использования в пользовательском приложении, хотя черновая работа по размещению полей и выбора для них элементов управления выполняется автоматически без нашего участия. Мы привнесли в форму минимальные изменения и за счет корректировки значений свойств привели ее к виду, показанному на рис. 10.20. Потребовалось выполнить для объектов Label и CommandButton изменения значений свойства Caption, перемещение и изменение размеров некоторых элементов управления. Если у вас возникнут трудности с изменением размера элемента управления Data Control, установите значение свойства Allign равным 0. Остальные элементы формы не имеют значения для работы иерархического списка, и мы не будем на них останавливаться. Готовая запущенная форма показана на рис. 10.19. Петр- 0 плачей,: Новая цата ЬЗоеый ik Выберите дату October 1996 ос<°ье, Tjjuas j
Рис. 10.20. Изменение даты с помощью календаря игн предстазгения данньт CqVi Form Designer 3=is= Fo m Mome (w/c Exten? cn): Ът=г: Sjlnng: Access kccounts ~Qogn ClaiEbEEe =mrrln jrrF "3 Sc lo ct a ТаЫо/С l с rvDof ro m = I ic: or onHor a SOL otatohr о rt. Irckided fJcUimns KFV Anr.OU\T KEr :iJSTi:MER KFr 4l ГТП ид I h W-il I Ь SE.LED QiJ/.NTrPr £L.ilJ lliHFunn Drcg/ZroptoQiongeOrcei Исходны11 cnncoif попей e таалице Cni/icoh: izneA, рамзщэемья в форме Рис. 10.21. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 [ 122 ] 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |