Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
07.02.2004, 22:59
|
|||
|---|---|---|---|
|
|||
Массив |
|||
|
#18+
То ли сани не едут, то ли что. Пытаюсь удалить из массива все поля кроме дат: Хочу оставить массив типа 1 /Table.Field_on/D 2 /Table.Field_zwai/D 3 /Table.Field3_dray/D и без всяких там F/F/F заместо других полей!!! MY_=THIS.Gridname && выясняем название грида loGridname=&MY_ && делаем ссылку на объект PUBLIC laControlSource(loGridname.ColumnCount,3) FOR I=1 TO loGridname.ColumnCount && количество столбцов в этом гриде loCol=loGridname.Columns(I) laControlSource(I,1) = i laControlSource(I,2) = loCol.ControlSource laControlSource(I,3) = TYPE(laControlSource(I,2)) ENDFOR *!!!!!Массив красиво построился, как хотел!!!!!!!!!! *Теперь пытаемся безуспешно удалить поля "не D" FOR m.i =1 TO ALEN(laControlSource,1) IF TYPE('laControlSource[m.i,2]')="N" .OR. TYPE('laControlSource[m.i,2]')="C" .OR.TYPE('laControlSource[m.i,2]')="L" ADEL(laControlSource,m.i) ENDIF ENDFOR *!!!!! НЕ получается удалить!!!!!!!! IF .f. *Удаляем из массива не поля ДАТЫ(через заднеее место!!!) FOR m.i =1 TO ALEN(laControlSource,1) IF TYPE('laControlSource[m.i,2]')="C" .OR.; TYPE('laControlSource[m.i,2]')="N" .OR.; TYPE('laControlSource[m.i,2]')="M" .OR.; TYPE('laControlSource[m.i,2]')="G" .OR.; TYPE('laControlSource[m.i,2]')="U" .OR.; TYPE('laControlSource[m.i,2]')="Y" .OR.; TYPE('laControlSource[m.i,2]')="T" .OR.; TYPE('laControlSource[m.i,2]')="L" .OR.; TYPE('laControlSource[m.i,2]')="O" =ADEL(laControlSource,m.i) ENDIF ENDFOR ENDIF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2004, 00:51
|
|||
|---|---|---|---|
|
|||
Массив |
|||
|
#18+
ADEL() - удаляет строку и сдвигает данные, но не меняет размерность массива. Надо еще поменять размерность массива DIMENSION Примерно так: ..... LOCAL lnDel lnDel=0 && Количество вычищаемых строк. FOR I =1 TO ALEN(laControlSource,1) lnDel=lnDel+IIF(!INLI(TYPE('laControlSource(I,2)'),"D",....) and ADEL(laControlSource,I)=1,1,0) ENDIF ENDF DIME laControlSource(MAX(ALEN(laControlSource,1)-lnDel,1),3) .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2004, 00:55
|
|||
|---|---|---|---|
|
|||
Массив |
|||
|
#18+
И комбо глючит, ничего не понимаю!!!! фокс 8-SP1. Все уж по этому вопросу в форумах по фоксу я прочел... В ините контейнера формирую свойства комбо В дизайнере все установки дефолтные. Примерно так выглядит массив (сделал свойством контейнера.) 1 /Table.Field_on/D Свойство массив в дюбагере формируется. Любая модификация с использованием закомментирования ниже приведенных строк в различных вариантах, количесве и комбинации :-))), в течении 3 часов не приводит к результату: то есть при клике на выбор из комбо в раскрывающемся списке видим Table.Field_on ->выбираем->видим 1 в иините контейнера формируем свойства комбо: THIS.Combo1.BoundColumn=2 && && и для интереса 1,2,3 тоже не помогает This.Combo1.BoundTo=.t. && и .F. тоже не помогает THIS.Combo1.ColumnCount=3 THIS.Combo1.RowSourceType = 5 THIS.Combo1.RowSource ="THIS.Parent.laControlSource" *THIS.Combo1.VALUE = THIS.Combo1.LIST[2] THIS.Combo1.ColumnWidths="0,150,0" This.Combo1.ColumnLines= .F. This.Combo1.requery() This.Combo1.refresh() THIS.Combo1.DisplayValue=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2004, 01:17
|
|||
|---|---|---|---|
|
|||
Массив |
|||
|
#18+
ComboBox в текстовой части всегда показывает данные из первой колонки, а RecordSource и Value зависят от BoundColumn=N. Переделай массив. Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2004, 01:41
|
|||
|---|---|---|---|
|
|||
Массив |
|||
|
#18+
Здравствуйте Андрей, спасибо за помощь, но... >ComboBox в текстовой части всегда показывает данные из первой колонки, >а RecordSource и Value зависят от BoundColumn=N. безобразие!!! Это что вообще не как не победить без перестройки ммассива??? Это же не очень логично!? >>>Переделай массив. Чего делать, то -переделаю... Ваша функция.... LOCAL lnDel lnDel=0 && Количество вычищаемых строк. FOR I =1 TO ALEN(laControlSource,1) lnDel=lnDel+IIF(!INLI(TYPE('laControlSource(I,2)'),"D",....) and ADEL(laControlSource,I)=1,1,0) ENDIF ENDF DIME laControlSource(MAX(ALEN(laControlSource,1)-lnDel,1),3) ...возвращает ..... только первое поле в массиве, значит не в какой тип поля не входит "D", а это не так!!!! Хотя TYPE( возвращает символьное выражение......-странно как-то... Не помогает поиск по 3-му столбцу массива просто функциеей inlist()..... И даже так не помогает :-)))) INLIST("C","N",TYPE('laControlSource(I,2)')) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=41&mobile=1&tid=1597229]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
21ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
22ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 293ms |

| 0 / 0 |
