|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.06.2014, 15:56 | #1 |
Регистрация: 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; |
08.06.2014, 15:56 | #2 |
Регистрация: 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; |
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите разобраться с кодом | Лера.К | БД в Delphi | 6 | 21.05.2014 16:36 |
Помогите разобраться с кодом | Superlotles | Общие вопросы Delphi | 6 | 19.08.2009 22:24 |
Помогите разобраться с кодом С++ | Noor | Помощь студентам | 20 | 10.10.2007 17:42 |