Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2014, 15:56   #1
GugaE
 
Регистрация: 28.11.2012
Сообщений: 8
По умолчанию Помогите разобраться с кодом

Плиззз кто нибудь может по подробней написать комментарий к следующему коду
var
summ,count,i,k:integer;
MSWord,wdDoc,wdTable,wdRng: Variant;
arr:array[0..3] of string;
Bm : TBookMark;
begin
arr[0]:='№';
arr[1]:='Название блюда';
arr[2]:='Порция';
arr[3]:='Цена';
try
MsWord := CreateOleObject('Word.Application') ;
MsWord.Visible := True;
//MsWord := GetActiveOleObject('Word.Applicatio n');
except
end;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT SUM(Цена) FROM Заказ_основного_меню WHERE Статус=true and Дата="'+FormatDateTime('dd.mm.yyyy' , Now)+'"');
ADOQuery1.Open;
summ:=ADOQuery1.Fields[0].AsInteger;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Заказ_основного_меню WHERE Статус=true and Дата="'+FormatDateTime('dd.mm.yyyy' , Now)+'"');
ADOQuery1.Open;
count:=ADOQuery1.RecordCount;
wdDoc:=MSWord.Documents.Add;
wdRng:= wdDoc.Content;
wdRng.Start := wdRng.End;
wdRng.InsertAfter('Дата: '+FormatDateTime('dd.mm.yyyy', Now)+#13);
wdRng.InsertAfter('Список заказов(Обычное меню): '+#13);
//wdRng.InsertAfter('За сегодняшний день('+FormatDateTime('dd.mm.yyyy', Now)+') продано '+inttostr(count)+' товаров'+#13);
wdRng.ParagraphFormat.Reset;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
wdRng.Font.Reset;
wdRng.Font.Size := 14;
wdRng.Font.Bold := False;
wdTable := wdDoc.Tables.Add(wdRng.Characters.L ast, 2, 4);
wdTable.columns.item(1).Width:=22;
wdTable.columns.item(2).Width:=200;
wdTable.columns.item(3).Width:=50;
wdTable.columns.item(4).Width:=40;
wdTable.Borders.InsideLineStyle := wdLineStyleSingle;
wdTable.Borders.OutsideLineStyle := wdLineStyleSingle;
wdRng.ParagraphFormat.Reset;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wdRng := wdTable.Rows.Item(1).Range;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
wdRng.Font.Size := 10;
wdRng.Font.Bold := True;
wdRng := wdTable.Rows.Item(2).Range;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wdRng.Font.Size := 10;
wdRng.Font.Bold := False;
for i := 0 to High(arr)-Low(arr) do
wdTable.Cell(1, i + 1).Range.Text := arr[i];
ADOQuery1.DisableControls;
Bm := ADOQuery1.GetBookMark;
ADOQuery1.First;
i := 1;
while not ADOQuery1.Eof do begin
Inc(i);
k:=k+1;
if i > 2 then wdTable.Rows.Add;
wdTable.Cell(i, 1).Range.Text := inttostr(k);
wdTable.Cell(i, 2).Range.Text := ADOQuery1.FieldByName('Наименование _блюда').AsString;
wdTable.Cell(i, 3).Range.Text := ADOQuery1.FieldByName('Порция').AsS tring;
wdTable.Cell(i, 4).Range.Text := ADOQuery1.FieldByName('Цена').AsStr ing;
ADOQuery1.Next;
end;
ADOQuery1.GotoBookMark(Bm);
ADOQuery1.EnableControls;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT SUM(Цена) FROM Заказ_банкетного_меню WHERE Статус=true and Дата="'+FormatDateTime('dd.mm.yyyy' , Now)+'"');
ADOQuery1.Open;
summ:=summ+ADOQuery1.Fields[0].AsInteger;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM Заказ_банкетного_меню WHERE Статус=true and Дата="'+FormatDateTime('dd.mm.yyyy' , Now)+'"');
ADOQuery1.Open;
count:=count+ADOQuery1.RecordCount;
wdRng := wdDoc.Content;
wdRng.Start := wdRng.End;
wdRng.InsertAfter(#13#10);
wdRng.InsertAfter('Списокзаказов(Ба нкетноеменю): '+#13);
//wdRng.InsertAfter('Засегодняшнийден ь('+FormatDateTime('dd.mm.yyyy', Now)+') продано '+inttostr(count)+' товаров'+#13);
wdRng.ParagraphFormat.Reset;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
wdRng.Font.Reset;
wdRng.Font.Size := 14;
wdRng.Font.Bold := False;
wdTable := wdDoc.Tables.Add(wdRng.Characters.L ast, 2, 4);
wdTable.columns.item(1).Width:=22;
wdTable.columns.item(2).Width:=200;
wdTable.columns.item(3).Width:=50;
wdTable.columns.item(4).Width:=40;
wdTable.Borders.InsideLineStyle := wdLineStyleSingle;
wdTable.Borders.OutsideLineStyle := wdLineStyleSingle;
wdRng.ParagraphFormat.Reset;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wdRng := wdTable.Rows.Item(1).Range;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;
wdRng.Font.Size := 10;
wdRng.Font.Bold := True;
wdRng := wdTable.Rows.Item(2).Range;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wdRng.Font.Size := 10;
wdRng.Font.Bold := False;
for i := 0 to High(arr)-Low(arr) do
wdTable.Cell(1, i + 1).Range.Text := arr[i];
ADOQuery1.DisableControls;
Bm := ADOQuery1.GetBookMark;
GugaE вне форума Ответить с цитированием
Старый 08.06.2014, 15:56   #2
GugaE
 
Регистрация: 28.11.2012
Сообщений: 8
По умолчанию

ADOQuery1.First;
i := 1;
while not ADOQuery1.Eof do begin
Inc(i);
k:=k+1;
if i > 2 then wdTable.Rows.Add;
wdTable.Cell(i, 1).Range.Text := inttostr(k);
wdTable.Cell(i, 2).Range.Text := ADOQuery1.FieldByName('Наименование _блюда').AsString;
wdTable.Cell(i, 3).Range.Text := ADOQuery1.FieldByName('Порция').AsS tring;
wdTable.Cell(i, 4).Range.Text := ADOQuery1.FieldByName('Цена').AsStr ing;
ADOQuery1.Next;
end;
ADOQuery1.GotoBookMark(Bm);
ADOQuery1.EnableControls;
wdRng := wdDoc.Content;
wdRng.Start := wdRng.End;
wdRng.InsertAfter(#13#10);
wdRng.InsertAfter('Всегозаказов: '+inttostr(count)+#13);
wdRng.InsertAfter('Итоговаясумма: '+inttostr(summ)+' тенге');
wdRng.ParagraphFormat.Reset;
wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;
wdRng.Font.Reset;
wdRng.Font.Size := 14;
wdRng.Font.Bold := False;
MSWord.Application.PrintOut(false);
MSWord.Documents.Close(false);
MSWord.quit;
end;
GugaE вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с кодом Лера.К БД в Delphi 6 21.05.2014 16:36
Помогите разобраться с кодом Superlotles Общие вопросы Delphi 6 19.08.2009 22:24
Помогите разобраться с кодом С++ Noor Помощь студентам 20 10.10.2007 17:42