Другие языки программирования и технологии
срочно нужна помощь по бд в delphi
в базе данных сделанную в ado надо распечатать через microsoft word данные находящиеся в ней !!!помогите пожалуйста)
Вот процедура экспорта в Word из моей программы, может поможет.
procedure TMenuForm.ToWord(DataSet:TDataSet; Title, FlagCol:string);
//Универсальная процедура экспорта таблицы в Word
//Датасет - наша таблица, тайтл - заголовок таблицы, ФлагКол - указатель на колонки
//таблицы, которые нужно выводить, в виде "001001", где 0 - выводим колонку, 0 - не выводим
var
WordApp, NewDoc, WordTable: OLEVariant;
tformat, tappbrd: OleVariant;
iRows, iCols, iGridRows, jGridCols, jRoWRoW,i: Integer;
begin
try //Загружаем Word
WordApp := CreateOleObject('Word.Application');
except
Exit;
end;
WordApp.Visible := True; //Делаем его видимым
NewDoc := WordApp.Documents.Add; //Создаем новый документ
//Вставляем заголовок таблицы
NewDoc.Range(EmptyParam,EmptyParam).InsertBefore(Title);
//NewDoc.Range(EmptyParam,EmptyParam).InsertBefore('Меню на: '+DateToStr(DateTimePicker1.Date));
WordApp.Selection.Endkey(); // Переходим в конец документа
iRows := DataSet.Fields.Count; //Количество столбцов в таблице
iCols := DataSet.RecordCount+1; //Количество строк
jRoWRow:=0;
for i:=0 to (length(FlagCol)) do // Перебираем каждый столбец
if FlagCol='1' then jRoWRoW:=jRowRow+1;//Узнаем количество активных столбцов
WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, jRoWRoW);
jRoWRow:=0;
DataSet.First;
WordTable.Cell(1, 1).Range.Text :='Наименование';
WordTable.Cell(1, 2).Range.Text :='Описание';
WordTable.Cell(1, 3).Range.Text :='Цена';
WordTable.Cell(1, 4).Range.Text :='Грамм';
WordTable.Cell(1, 5).Range.Text :='Раздел';
for iGridRows := 1 to iRows do //Перебираем столбцы
if FlagCol[iGridRows]='1' then //Если столбец отмечен как активный... .
begin
DataSet.First;
jRoWRoW:=jRoWRoW+1;
for jGridCols := 2 to iCols do
begin
WordTable.Cell(jGridCols, jRoWRoW).Range.Text := //.. то выводим все данные из него
(DataSet.Fields[iGridRows-1].AsString);
DataSet.Next;
end;
end;
NewDoc.Tables.Item(1).Columns.AutoFit;
tformat := wdTableFormatElegant;
tappbrd := wdTableFormatApplyBorders;
i := 1;
NewDoc.Tables.Item(i).AutoFormat(tformat, tappbrd, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
//Обнуляем ставшие ненужными переменные
WordApp := Unassigned;
NewDoc := Unassigned;
WordTable := Unassigned;
end;
procedure TMenuForm.ToWord(DataSet:TDataSet; Title, FlagCol:string);
//Универсальная процедура экспорта таблицы в Word
//Датасет - наша таблица, тайтл - заголовок таблицы, ФлагКол - указатель на колонки
//таблицы, которые нужно выводить, в виде "001001", где 0 - выводим колонку, 0 - не выводим
var
WordApp, NewDoc, WordTable: OLEVariant;
tformat, tappbrd: OleVariant;
iRows, iCols, iGridRows, jGridCols, jRoWRoW,i: Integer;
begin
try //Загружаем Word
WordApp := CreateOleObject('Word.Application');
except
Exit;
end;
WordApp.Visible := True; //Делаем его видимым
NewDoc := WordApp.Documents.Add; //Создаем новый документ
//Вставляем заголовок таблицы
NewDoc.Range(EmptyParam,EmptyParam).InsertBefore(Title);
//NewDoc.Range(EmptyParam,EmptyParam).InsertBefore('Меню на: '+DateToStr(DateTimePicker1.Date));
WordApp.Selection.Endkey(); // Переходим в конец документа
iRows := DataSet.Fields.Count; //Количество столбцов в таблице
iCols := DataSet.RecordCount+1; //Количество строк
jRoWRow:=0;
for i:=0 to (length(FlagCol)) do // Перебираем каждый столбец
if FlagCol='1' then jRoWRoW:=jRowRow+1;//Узнаем количество активных столбцов
WordTable := NewDoc.Tables.Add(WordApp.Selection.Range, iCols, jRoWRoW);
jRoWRow:=0;
DataSet.First;
WordTable.Cell(1, 1).Range.Text :='Наименование';
WordTable.Cell(1, 2).Range.Text :='Описание';
WordTable.Cell(1, 3).Range.Text :='Цена';
WordTable.Cell(1, 4).Range.Text :='Грамм';
WordTable.Cell(1, 5).Range.Text :='Раздел';
for iGridRows := 1 to iRows do //Перебираем столбцы
if FlagCol[iGridRows]='1' then //Если столбец отмечен как активный... .
begin
DataSet.First;
jRoWRoW:=jRoWRoW+1;
for jGridCols := 2 to iCols do
begin
WordTable.Cell(jGridCols, jRoWRoW).Range.Text := //.. то выводим все данные из него
(DataSet.Fields[iGridRows-1].AsString);
DataSet.Next;
end;
end;
NewDoc.Tables.Item(1).Columns.AutoFit;
tformat := wdTableFormatElegant;
tappbrd := wdTableFormatApplyBorders;
i := 1;
NewDoc.Tables.Item(i).AutoFormat(tformat, tappbrd, EmptyParam,
EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, EmptyParam, EmptyParam);
//Обнуляем ставшие ненужными переменные
WordApp := Unassigned;
NewDoc := Unassigned;
WordTable := Unassigned;
end;
дебильный вопрос, "распечатать через microsoft word"
причем тут microsoft word
выводишь данные из БД например в memo и от туда уже выводишь на печать
причем тут microsoft word
выводишь данные из БД например в memo и от туда уже выводишь на печать
Похожие вопросы
- Срочно нужна помощь Ввести ряд чисел и сформировать список элементов ряда, кратных 10. Язык программирования Delphi.
- Срочно нужна помощь WEB-программиста, который мог бы состряпать сайт
- Есть кто нибудь кто знает язык С ?? срочно нужна помощь !!
- срочно нужна помощь
- срочно нужна помощь пожалуста
- СРОЧНО НУЖНА ПОМОЩЬ!!!!при открытии ссылки на весь экран вылезло сообщение: "Ваша система заблокирована! отправьте..."
- Здравствуйте! Срочно нужна помощь! Удалила папку с фотографиями, и с корзины тоже. Можно ли как нибудь восстановить?
- Очень срочно нужна помощь!! мне знает ли кто нибудь программу, чтобёпределять схожесть текста? конктерней эст список
- Срочно нужна помощь! Пропали иконки и пуск со стола
- срочно нужна помощь