| 
| 
 | Вопрос # 4 455/ вопрос открыт / | 
 |  [COLOR="Red"][B][U]СРОЧНО[/U][/B][/COLOR] нужна помощь!!! Для начало вкратце объясню суть задачи. Есть огромная dbf-таблица. Из нее необходимо выбрать данные по определенным критериям и сформировать отчет в Excel. Я делаю с помощью технологии ADO, вывожу в DBGrid саму таблицу. А вот отчет сделать не могу. Таблица должна состоять из нескольких строк, в каждой из которых содержится сумма всех элементов, обладающих сходными свойствами. Проблема состоит в том, что я не могу сформировать правильный SQL-запрос. Как в него добавить строки или что-то вроде того?
 Или...
 
 Есть еще идея. Можно выгружать в Excel по строке. Но есть одно "но". В процедуре выгрузки файл перезаписывается. Можно ли сделать так, чтобы сначала выгрузились все данные, а потом только он сохранился?
 
 ПОМОГИТЕ плиз, а то на работе прибьют
 
 Вот процедура выгрузки:
 Приложение:Переключить в обычный режим [code] procedure SendtoExcel(ShFile: string; Querys: TADOQuery; m,n:Integer);var ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData: variant; BeginCol, BeginRow, j: integer; RowCount, ColCount: integer;begin   BeginCol:=2; BeginRow:=4;   RowCount:=Querys.RecordCount+1; ColCount:=Querys.FieldDefs.Count;   ExcelApp:=CreateOleObject('Excel.Application');   ExcelApp.Application.EnableEvents:=False;    Workbook:=ExcelApp.Workbooks.Add(ShFile); Workbook.SaveAs(ShFile); ArrayData:=VarArrayCreate([1, RowCount, 1, ColCount], varVariant);   Querys.DisableControls; Querys.First; while not Querys.Eof do  begin   for j:=1 to Querys.FieldDefs.Count do    begin     ArrayData[Querys.RecNo, j]:=     Querys.FieldbyName(Querys.FieldDefs.Items[j-1].DisplayName).Value;    end;    Querys.Next;  end; Querys.EnableControls;   Cell1:=Workbook.Worksheets[1].Cells[BeginRow, BeginCol];   Cell2:=Workbook.Worksheets[1].Cells[m, n];   Range:=Workbook.Worksheets[1].Range[Cell1,Cell2];   Range.Value:=ArrayData;   ExcelApp.Visible:=True;end;[/code]
|  |   Вопрос задал: antonio (статус: Посетитель)Вопрос отправлен: 22 июля 2010, 14:31
 Состояние вопроса: открыт, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 22 июля 2010, 15:15; участников в обсуждении: 2. 
|   | Vic (статус: 1-ый класс), 22 июля 2010, 14:46 [#1]:А текст запроса где? |  
|   | antonio (статус: Посетитель), 22 июля 2010, 15:01 [#2]:Ну я толком даже не знаю, что писать... У меня паника начинается, сегодня нужно показать, а у меня мало что есть. 
 const
 QQQ='Select Sex,Ysh,Data,Nzak,N_par,Fo,Zvet,Df,Sht,Mas,Zena,Summa from GODSRU.dbf ';
 
 ADOConnection1.Connected:=True;
 with ADOQuery2 do
 begin
 SQL.Clear;
 SQL.Add(Unit1.QQQ+'WHERE Summa<7 and Mas<=0.02 and Mas>=0.01');
 SQL.Add('or');
 SQL.Add('Summa<8 and Mas<=0.05 and Mas>=0.03');
 SQL.Add('or');
 SQL.Add('Summa<9 and Mas<=0.07 and Mas>=0.06');
 SQL.Add('or');
 SQL.Add('Summa<10 and Mas<=0.10 and Mas>=0.08');
 SQL.Add('or');
 SQL.Add('Summa<11 and Mas<=0.12 and Mas>=0.11');
 SQL.Add('or');
 SQL.Add('Summa<12 and Mas<=0.14 and Mas>=0.13');
 SQL.Add('or');
 SQL.Add('Summa<15 and Mas<=0.19 and Mas>=0.15');
 SQL.Add('or');
 SQL.Add('Summa<17 and Mas<=0.24 and Mas>=0.20');
 SQL.Add('or');
 SQL.Add('Summa<18 and Mas<=0.29 and Mas>=0.25');
 SQL.Add('or');
 SQL.Add('Summa<21 and Mas<=0.39 and Mas>=0.39');
 SQL.Add('or');
 SQL.Add('Summa<23 and Mas<=0.49 and Mas>=0.40');
 SQL.Add('or');
 SQL.Add('Summa<25 and Mas<=0.59 and Mas>=0.50');
 SQL.Add('or');
 SQL.Add('Summa<28 and Mas<=0.69 and Mas>=0.60');
 SQL.Add('or');
 SQL.Add('Summa<30 and Mas<=0.79 and Mas>=0.70');
 SQL.Add('or');
 SQL.Add('Summa<33 and Mas<=0.89 and Mas>=0.80');
 SQL.Add('or');
 SQL.Add('Summa<36 and Mas<=0.99 and Mas>=0.90');
 SQL.Add('or');
 SQL.Add('Summa<44 and Mas<=1.24 and Mas>=1.00');
 SQL.Add('or');
 SQL.Add('Summa<49 and Mas<=1.49 and Mas>=1.25');
 SQL.Add('or');
 SQL.Add('Summa<55 and Mas<=1.74 and Mas>=1.50');
 SQL.Add('or');
 SQL.Add('Summa<58 and Mas<=1.99 and Mas>=1.75');
 SQL.Add('or');
 SQL.Add('Summa<64 and Mas<=2.24 and Mas>=2.00');
 Open;
 end;
 end;
 
 Это запрос на выборку необходимой информации.. А как в отчет его занести я хз.
 |  
|   | Vic (статус: 1-ый класс), 22 июля 2010, 15:15 [#4]:Попробуйте изменить текст запроса Допустим
 'Select SUM(Zena),SUM(Summa) from GODSRU.dbf
 GROUPBY Summa'
 этот запрос должен выдать несколько строк взависимости
 от количества разных сумм
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |