Срочно по Excel....(всем программистам).........
От: CO0lGirL  
Дата: 05.03.02 10:00
Оценка:
Уважаемые программисты вот такие дела!!
При составлении отчета из базы через Query делается запрос и выводится в ексел таким образом...
j:=1;
query1.close;
query1.SQL.Add('select sum(price) as SUMPRICE,Company,GroupTov, AdvrtName,ConstrType from comcon2.db where GroupTov='''+Edit1.Text+''' group by Company, AdvrtName, ConstrType,GroupTov');
query1.Open;

Query1.First;
While not Query1.Eof do
begin
XArr[5]:=Query1.FieldByName('SumPrice').AsString;
XArr[2]:=Query1.FieldByName('AdvrtName').AsString;
XArr[3]:=Query1.FieldByName('ConstrType').AsString;
XArr[4]:=Query1.FieldByName('GroupTov').AsString;
XArr[1]:=Query1.fieldbyName('Company').asstring;

// .......

XLR:= XLS.Range[XLS.Cells[j+1,2],XLS.Cells[j+1,2+9]];
XLR.Value := XArr;
XLR.Font.Bold := True;
XLR.Interior.ColorIndex := 0;
Query1.Next;
J:=J+1;
end;

end;
end.

при этом данные выводятся в столбец по такому методу
Name Type Type1 Price
1 a a1 65464
1 a a2 32154
и т.д. надо чтобы было так....
Name
1 Type
a Type1 Price
a1 3245
a2 2151
Посоветовали сделать вложенные циклы на перебор Name, Type, Type1>>>>>
сделала вот так но он не показывает данные хотя видно что цикл происходит прошу помогите в чем дело?????....
срочно надо


const
xlWBATWorksheet = $FFFFEFB9;
var
XL, XLS, XLR, XArr: Variant;
fname,st1:String;
tshor,tempstr:String;
j,i:integer;
begin
XArr:=VarArrayCreate([1,10],varVariant);
XL:=CreateOLEObject('Excel.Application');
XL.WorkBooks.add(xlWBATWorksheet); // добавляет только один лист
XLS:=XL.Workbooks[1].ActiveSheet; // рабочий лист
XL.DisplayAlerts:=false; // отключение сообщений Екселя
XL.visible:=true;

j:=1;
query1.close;
query1.SQL.Add('select sum(price) as SUMPRICE,Company,GroupTov, AdvrtName,ConstrType from comcon2.db where GroupTov='''+Edit1.Text+''' group by Company, AdvrtName, ConstrType,GroupTov');
query1.Open;
Query1.First;

tempstr:=Query1.fieldbyName('Company').asstring;
While not Query1.Eof do
begin
if Query1.fieldbyName('Company').asstring=tempstr then
begin
XArr[2]:=Query1.FieldByName('AdvrtName').AsString;
XArr[3]:=Query1.FieldByName('ConstrType').AsString;
XArr[4]:=Query1.FieldByName('GroupTov').AsString;
XArr[1]:=Query1.fieldbyName('Company').asstring;

// .......

{XLR:= XLS.Range[XLS.Cells[j+2,2],XLS.Cells[j+2,2+9]];
XLR.Value := XArr;
XLR.Font.Bold := True;
XLR.Interior.ColorIndex := 0; }
end
else
XArr[5]:=Query1.FieldByName('SumPrice').AsString;

end;
XLR:= XLS.Range[XLS.Cells[j+2,2],XLS.Cells[j+2,2+9]];
XLR.Value := XArr;
XLR.Font.Bold := True;
XLR.Interior.ColorIndex := 0;
Query1.Next;
J:=J+1;
заранее спасибо
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.