Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с выводом в excel из таблицы. / 6 сообщений из 6, страница 1 из 1
15.09.2017, 17:51
    #39522019
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
Добрый день всем!

Подскажите пожалуйста с решением следующей проблемы. Никак не могу сообразить. Есть у меня таблица, которую прикладываю к письму.

Опишу сразу (без просмотра ее, хотя она приложена) что в ней есть:
fiob stoim naim_usl
Чубарова 99.9 консультация пол-ки
Чубарова 418.0 консультация эндокринолога

Более детально в таблице.

Нужно вывести в exсel следующую информацию:

Чубарова 99.9 консультация пол-ки
418.0 консультация консультация эндокринолога


Т.е. заголовок допустим фио для отдельного человека, а в нем идут подпункты.
Могут идти в принципе записи так:

fiob stoim naim_usl
Чубарова 99.9 консультация пол-ки
Чубарова 418.0 консультация эндокринолога
Петров 99.9 консультация пол-ки
Петров 418.0 консультация эндокринолога

Нужно в принципе вывести тогда так:

Чубаров 99.9 консультация пол-ки
418.0 консультация эндокринолога

Петров 99.9 консультация пол-ки
418.0 консультация эндокринолога

Т.е. группировкой по фио и с пробелом.

Я не понимаю как группировать т.е. один раз фио выписывать и как переходить к другому фио после прохода первого фио.
помогите пожалуйста. В принципе я привожу пример таблицы - конечно есть и id_pers у человека - без проблем можно в таблицу вставить - это просто я не вставил.
Как я вывожу в excel я кидаю код (я делаю так):

NameFile = 'Øàáëîí1.XLS'
nameExcel = f3_ot + NameFile
NameFile1 = '&sum_str' + '.XLS'
*NameFile1 = 'àëÿïøåâ'+ '.XLS'
saveExcel = f3_ot+NameFile1

WAIT WINDOW NOWAIT "Èä¸ò âûâîä â ôàéë " + saveExcel
tmpsheet = GETOBJECT("","Excel.Sheet")
loExcel = tmpsheet.application
loBook = loExcel.Workbooks.Open(nameExcel)
loSheet = loExcel.sheets(1)

sele custship
k1 = ALLTRIM(custship.par5)
k2 = ALLTRIM(custship.par6)
k3 = ALLTRIM(custship.par7)
k4 = ALLTRIM(custship.par8)
k5 = ALLTRIM(custship.par9)
k6 = ALLTRIM(custship.par10)
k7 = ALLTRIM(custship.par11)
k8 = ALLTRIM(custship.par12)
form_str = 'OD ñôåðà'+'&k1'+';'+'öèë.'+'&k2'+';'+'îñü'+'&k3'+';'+'OS ñôåðà'+'&k4'+';'+'öèë.'+'&k5'+';'+'îñü'+'&k6'+';'+'ÐÖ'+'&k7'+';'+'òèï ëèíç'+'&k8'
go top
DO WHILE .T.
IF EOF()
EXIT
ELSE
.cells(j,2).Value = custship.par2
.cells(j,1).Value = custship.par1
.cells(j,3).Value = custship.fname
.cells(j,4).Value = form_str
.cells(j,7).Value = custship.par14
.cells(j,8).Value = custship.par13
.cells(j,9).Value = custship.par15
.cells(j,10).Value = custship.par17
.cells(j,11).Value = custship.par19
.cells(j,12).Value = custship.par3
...
Рейтинг: 0 / 0
15.09.2017, 17:54
    #39522020
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
тут плохо вышло как я хочу постараюсь снова сделать

Чубаров:

99.9 консуль пол-ки
140.0 консульта эндор


Петров:

99.9 консуль пол-ки
140.0 консульта эндор

т.е. такая группировка

спасибо
...
Рейтинг: 0 / 0
15.09.2017, 17:58
    #39522022
Sergey Sizov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
dima_18,
ужас...
Кто вас научил для склейки строк использовать макроподстановку?
Сравните:
Код: sql
1.
NameFile1 = '&sum_str' + '.XLS'


и
Код: sql
1.
NameFile1 = sum_str + '.XLS'
...
Рейтинг: 0 / 0
16.09.2017, 13:25
    #39522192
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
Уважаемый Сергей!

Большое спасибо за комментарий, но во -первых я это делаю и проблем нет, да и еще я привожу часть кода. Во-вторых, там все получается и так работал, спасибо за совет буду делать как Вы сказали - это не беда и не фатально. Но ответ на мой вопрос, который актуален - так и остался в силе.
Спасибо!
...
Рейтинг: 0 / 0
17.09.2017, 16:26
    #39522389
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
Вам не надо группировать. Вам надо сортировать. Т.е. выводить данные в определенном порядке. При этом, в процессе вывода анализировать текущее значение с тем, что было в предыдущей строке

Код: sql
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.
* переменная, в которой будет хранится значение поля из предыдущей строки
local lcFioBPrev, lnRowNum
lcFioBPrev = ''
lnRowNum = 0

* Для таблицы настраиваем сортировку
* Предполагая, что у таблицы есть индекс по нужному полю
sele custship
set order to tag fiob && предполагаю, что есть индексный тег с именем fiob 

* Собственно вывод
scan

   * Номер строки Excel
   lnRowNum = m.lnRowNum+1

    * Если предыдущее значение отлично от текущего, то нужно сделать заголовок
    if m.lcFioBPrev <> custship.FioB
        .cells(m.lnRowNum,1).Value = custship.FioB
        lnRowNum = m.lnRowNum+1
    endif

    * Вывод данных по очередной строке
    .cells(m.lnRowNum,1).Value = custship.stoim
    .cells(m.lnRowNum,2).Value = custship.naim_usl

    * Обновляю значение переменной для анализа следующей записи
    m.lcFioBPrev = custship.FioB

endscan
...
Рейтинг: 0 / 0
18.09.2017, 15:29
    #39522801
dima_18
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с выводом в excel из таблицы.
Владимир, большое спасибо за ответ!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с выводом в excel из таблицы. / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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