![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |
| Этот пользователь сказал Спасибо friz за это полезное сообщение: | ||
grom333 (09.02.2012)
| ||
|
#3
|
|||
|
|||
|
Спасибо friz
|