|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Нестандартный вывод
Есть БД access (ADO). Хранятся поля Наименование|Цена|Группа
Нужно вывести в Эксель список по такому правилу. 1. Вывод производится в 4 колонки Наименование|Цена Наименование|Цена Наименование|Цена Наименование|Цена Наименование|Цена Наименование|Цена ..... 2. Перед каждой группой нужно делать название данной группы. Поясняю. Группы это: мониторы, мыши, процессоры. Вот как подписать можно так по группам. МОниторы: Наименование|Цена Наименование|Цена Наименование|Цена Наименование|Цена ... Клавиатуры: Наименование|Цена Наименование|Цена Наименование|Цена Наименование|Цена ... ----------------------------- Стандартный вывод сделал в Excel: Наименование|Цена Наименование|Цена Наименование|Цена ... Код:
A.First; for i:=0 to A.RecordCount-1 do begin Sheet.Cells[index,2]:= A.FieldByName('naim').AsString; Sheet.Cells[index,3]:= A.FieldByName('cena').AsString; Inc(index); A.Next; end; Решение 1 пункта: Код:
A.First; while not A.Eof do begin Sheet.Cells[index,2]:= A.FieldByName('naim').AsString; Sheet.Cells[index,3]:= A.FieldByName('cena').AsString; a.Next; if a.Eof then Break; Sheet.Cells[index,5]:= A.FieldByName('naim').AsString; Sheet.Cells[index,6]:= A.FieldByName('cena').AsString; Inc(index); A.Next; end; Теперь остался второй пункт... Последний раз редактировалось grom333, 09.02.2012 в 12:12. |
#2
|
||||
|
||||
как-то так:
1) запрос сортируешь по группам 2) Код:
A.First; //Делаем первую группу GROUP:=A.FieldByName('group').AsString; Sheet.Cells[index,1]:=GROUP; while not A.Eof do begin if GROUP<>A.FieldByName('group').AsString THEN begin Sheet.Cells[index,1]:=A.FieldByName('group').AsString; Inc(index); GROUP:=A.FieldByName('group').AsString ; end; Sheet.Cells[index,2]:= A.FieldByName('naim').AsString; Sheet.Cells[index,3]:= A.FieldByName('cena').AsString; a.Next; if a.Eof then Break; Sheet.Cells[index,5]:= A.FieldByName('naim').AsString; Sheet.Cells[index,6]:= A.FieldByName('cena').AsString; Inc(index); A.Next; end; Последний раз редактировалось Admin, Сегодня в 10:32. |
Этот пользователь сказал Спасибо friz за это полезное сообщение: | ||
grom333 (09.02.2012)
|
#3
|
|||
|
|||
Спасибо friz
|