Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Предновогодняя / 3 сообщений из 3, страница 1 из 1
29.12.2007, 17:53
    #35042361
Предновогодняя
незатейлевая вобщем-то задачка.....
из таблицы в эксел вывожу приблизительно такие данные
ИВАНОВ январь
ИВАНОВ февраль
ИВАНОВ мар
СИДИРОВ октябрь
СИДОРОВ ноябрь
НИКОЛАЕВ март
Код: plaintext
1.
2.
3.
4.
5.
6.
lnRow =  2   &&начинаем со второй строки
SCAN
    .Cells(lnRow,  1 ).Value = ALLTRIM(клиент)
    .Cells(lnRow,  2 ).Value = месяц
    lnRow = lnRow +  1 
ENDSCAN

Но хотелось бы убрать повторяющиеся значения клиентов, т.е. получить результат
ИВАНОВ январь
февраль
март
СИДИРОВ октябрь
ноябрь
НИКОЛАЕВ март

Вроде бы всё ясно и понятно: сравниваешь одно с другим предыдущим и всё, ан нет, весь день убил на это.

ЗЫ. в идела ле бы еще и пустую строку выводить между смоной фамилий. ;)
...
Рейтинг: 0 / 0
29.12.2007, 21:37
    #35042469
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Предновогодняя
Во-первых, не надо убирать повторяющиеся значения.

Смотрется-то это будет красиво, но вот как анлизировать потом этот файл? Обычно ведь накладывают автофильтр и если надо посмотреть, скажем, только "Иванов", то его и выбирают. Но если у тебя "Иванов" только в первой записи, то после наложения фильтра только первую запись и увидишь.

Во-вторых, чтобы убрать повторы надо быть уверенным, что записи упорядочены (выстроены) в нужной последовательности. Тогда можно сравнивать значение из соседних записей.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
LOCAL lcNamePrev
lcNamePrev = space( 10 )	&& число равно размерности поля "клиент"
lnRow =  2   &&начинаем со второй строки
SCAN
	IF (m.lcNamePrev <> клиент)
		IF EMPTY(m.lcNamePrev) = .F.    && Не первая фамилия. Вводим пустую строку
			lnRow = lnRow +  1 
		ENDIF
		m.lcNamePrev = клиент
		.Cells(lnRow,  1 ).Value = ALLTRIM(клиент)
	ENDIF
	.Cells(lnRow,  2 ).Value = месяц
	lnRow = lnRow +  1 
ENDSCAN
...
Рейтинг: 0 / 0
30.12.2007, 00:43
    #35042521
Предновогодняя
Спасибо, ВладимирМ! То, что надо. Ну а что касаемо автофильра, то тут пусть париться пользователь. Он захотел так, я ему сделал так.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Предновогодняя / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]