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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2011, 12:46   #1
Ist
Пользователь
 
Аватар для Ist
 
Регистрация: 05.05.2011
Сообщений: 19
По умолчанию Экспорт в Word

Ребята помогите пожалуйста экспортировать данные с DBGrid'a и с DBLookupListBox
В данный момент процедура имеет вид:

Код:
function GetProgramPath : String;
begin
 GetProgramPath:=ExtractFilePath(ParamStr(0));
end;
function GetPath:String;
begin
 GetPath:=GetProgramPath+'/Data/Templates/Word/template.doc';
end;

procedure TMaterialExForm.ButtonExClick(Sender: TObject);
var
 DocName, FN, gp, Psw, PswTmp, Revert, WritePsw, WritePswTmp, Fmt, Index: OleVariant;
 _Prod, Prod,ConfConv,ReadOnly,AddToRecFiles,replace, FalseParam: OleVariant;
 TrueParam: OleVariant;
 Wrap     : OleVariant;
 i1       : OleVariant;
 SP       : OleVariant;
 EP       : OleVariant;
 i        : integer;
 EmptyParam: OleVariant;
 S,S1     : string;
begin
 Gauge.Visible:=True;
 DocName:=GetProgramPath+'/Data/Templates/Word/template.doc';
 ConfConv:=true;
 ReadOnly:=False;
 AddToRecFiles:=False;
 Psw:='';
 PswTmp:='';
 Revert:=False;
 WritePsw:='False';
 WritePswTmp:='False';
 Fmt:=WdOpenFormatAuto;

 FalseParam:=False;
 TrueParam:=True;
 Wrap:=WdFindContinue;

 WordApplication.Connect;
 WordApplication.Documents.OpenOld(DocName, ConfConv, ReadOnly, AddToRecFiles, Psw, PswTmp, Revert, WritePsw, WritePswTmp, Fmt);
 WordDocument.ConnectTo(WordApplication.ActiveDocument);

 Replace:=WdReplaceAll;
 Index:=0;

 for i:=1 to WordApplication.Documents.Count do
  begin
   i1:=i;
   S:=FN;
   if Pos('.',S)<>0
   then S:=Copy(S,1,Pos('.',S));
   S:=S+'doc';
   S1:=WordApplication.Documents.Item(I1).Name;
   S:=ExtractFileName(S);
   S1:=ExtractFileName(S1);
   if UpperCase(S1)=UpperCase(S) then
    begin
     WordApplication.Visible:=True;
     SP:=wdPromptToSaveChanges;
     EP:=wdOriginalDocumentFormat;
     WordApplication.Documents.Item(i1).Close(SP,EP,EP);
    end;
  end;
 gp:=GetProgramPath+'/Report/'+'Учет материала.doc';
 WordDocument.SaveAs(gp);

//Формы вывода//

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='MNAIM';
 Prod:=MacrosForm.MNAIM.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='COD';
 Prod:=MacrosForm.COD.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='NORM';
 Prod:=MacrosForm.NORM.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='CENA';
 Prod:=MacrosForm.CENA.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='NAIMYA';
 Prod:=MacrosForm.NAIMYA.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='POST';
 Prod:=MacrosForm.POST.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='PRIHODVKOL';
 Prod:=MacrosForm.PRIHODVKOL.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='PRIHODDATE';
 Prod:=MacrosForm.PRIHODDATE.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='VIDANNA';
 Prod:=MacrosForm.VIDANNA.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

      Gauge.Progress:=Gauge.Progress+9;
 _Prod:='VCEH';
 Prod:=MacrosForm.VCEH.Text;
 WordDocument.Range.Find.ExecuteOld(_Prod, EmptyParam, EmptyParam, EmptyParam,
     EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, Prod, replace);

 WordApplication.Application.Visible:=True;
 WordApplication.Disconnect;

 Gauge.Progress:=0;
 MaterialExForm.Close;
end;
Могу скинуть саму прогу, при необходимости!
Ist вне форума Ответить с цитированием
Старый 01.06.2011, 19:52   #2
Ist
Пользователь
 
Аватар для Ist
 
Регистрация: 05.05.2011
Сообщений: 19
По умолчанию

ап\\\\\\\\\\\
Ist вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в Word Jantar Общие вопросы Delphi 2 27.03.2011 16:13
Экспорт в Word Yiguoliang Общие вопросы Delphi 1 10.02.2011 16:33
Экспорт из БД в Word в Delphi sting1920 Помощь студентам 3 03.03.2010 13:36
экспорт в word AD_min Общие вопросы Delphi 4 05.12.2008 14:17
Экспорт в Word Constellation БД в Delphi 5 15.04.2008 18:47