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

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

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 20:00   #1
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию Вывод отчета в Word. Bulder

Вот мой код!!!

//---------------------------------------------------------------------------

#include <vcl.h>
#include <ComObj.hpp>
#include <utilcls.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Variant vVarApp,vVarDocs,vVarParagraphs,vVa rParagraph;


bool fStart;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{

}
//---------------------------------------------------------------------------




void __fastcall TForm1::Button3Click(TObject *Sender)
{
if(fStart) vVarApp.OleProcedure("Quit");
Close();
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
vVarApp.OlePropertySet("имя", значение);
переменная = app.OlePropertyGet("имя");
vVarApp.OleProcedure("имя",список параметров метода);
vVarApp=CreateOleObject("Word.Appli cation");
Variant v;
if(!fStart)
{
try
{
vVarApp=CreateOleObject("Word.Appli cation");
fStart=true;
}
catch(...)
{
MessageBox(0, "Ошибка при открытии сервера Word",
"Ошибка", MB_OK);
return;
}
}
vVarApp.OlePropertySet("Visible",tr ue);
vVarDocs=vVarApp.OlePropertyGet("Do cuments");
vVarDocs.OleProcedure("Add","Templa te", NewTemplate, DocumentType);
vVarDocs.OleProcedure("Add",
"C:\\WINDOWS\\Application Data\\Microsoft\\Шаблоны\\Normal.do t",
false,0);
vVarDocs.OleProcedure("Add");
vVarDoc=vVarDocs.OleFunction("Item" ,n);
vVarDocs.OleProcedure("Add");
vVarDocs.OleProcedure("Add");
vVarDocs.OleProcedure("Add");
vVarDocs.OleProcedure("Add");
if(vVarDocs.OlePropertyGet("Count") != 2)
{
MessageBox(0, "Ошибка при создании документов",
"Ошибка", MB_OK);
return;
}
vVarDoc=vVarDocs.OleFunction("Item" ,2);
vVarDoc.OleProcedure("Activate");
vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="\t\tОзнакомлен\t\t";
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",1);
vVarParagraph.OlePropertyGet("Range ").
OlePropertySet("Text",str.c_str());
vVarParagraph.OlePropertySet("Align ment",2);
str="Директор\t\t=Пупкин=";
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",2);
vVarParagraph.OlePropertyGet("Range ").
OlePropertySet("Text",str.c_str());
vVarParagraph.OlePropertySet("Align ment",2);
vVarParagraphs.OleProcedure("Add");
str="\"....\"...................... .....2003г.";
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",4);
vVarParagraph.OlePropertyGet("Range ").
OlePropertySet("Text",str.c_str());
vVarParagraph.OlePropertySet("Align ment",2);
vVarParagraphs.OleProcedure("Add");
str="Итоги работы за неделю.";
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",6);
vVarParagraph.OlePropertyGet("Range ").
OlePropertySet("Text",str.c_str());
vVarParagraph.OlePropertySet("Align ment",1);

}
//---------------------------------------------------------------------------
Марат05 вне форума Ответить с цитированием
Старый 12.05.2012, 20:00   #2
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

А вот ошибки, которые он мне выдает!!! Я новичок, и мне очень сложно понять! ЗАранее спасибо.

[C++ Error] Unit1.cpp(37): E2206 Illegal character 'з' (0xe7)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'н' (0xed)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'à' (0xe0)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'ч' (0xf7)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'е' (0xe5)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'н' (0xed)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'и' (0xe8)
[C++ Error] Unit1.cpp(37): E2206 Illegal character 'е' (0xe5)
[C++ Error] Unit1.cpp(37): E2188 Expression syntax
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'п' (0xef)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'е' (0xe5)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'р' (0xf0)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'е' (0xe5)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'м' (0xec)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'е' (0xe5)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'н' (0xed)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'н' (0xed)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'а' (0xe0)
[C++ Error] Unit1.cpp(38): E2206 Illegal character 'я' (0xff)
[C++ Error] Unit1.cpp(38): E2188 Expression syntax
[C++ Error] Unit1.cpp(39): E2206 Illegal character 'с' (0xf1)
[C++ Error] Unit1.cpp(39): E2206 Illegal character 'п' (0xef)
[C++ Error] Unit1.cpp(39): E2206 Illegal character 'и' (0xe8)
[C++ Error] Unit1.cpp(39): E2206 Illegal character 'с' (0xf1)
[C++ Error] Unit1.cpp(39): E2206 Illegal character 'о' (0xee)
[C++ Error] Unit1.cpp(39): E2228 Too many error or warning messages

Как их убрать и на что он жалуется?Text
Марат05 вне форума Ответить с цитированием
Старый 12.05.2012, 20:39   #3
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

Код:
vVarApp.OlePropertySet("имя", значение);
переменная = app.OlePropertyGet("имя");
vVarApp.OleProcedure("имя",список параметров метода);
C++ еще не научился русскому языку. Переменные должны быть на латинице.
Drugnir вне форума Ответить с цитированием
Старый 12.05.2012, 21:29   #4
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

создать объект автоматизации:
vVarApp=CreateOleObject("Word.Appli cation");

Также, по причине описанной ввыше (Ч 1. П 1.1), не будем ориентироваться на конкретную библиотеку *.olb Office (конструкцию типа Word.Application.8 или Excel.Application.9, как и имена констант использовать не будем).

С этого момента можно пользоваться свойствами и методами созданного ole сервера, а именно:


Установка свойства.
vVarApp.OlePropertySet("имя", значение);


Чтение значения свойства.
переменная = app.OlePropertyGet("имя");


Вызов метода:
vVarApp.OleProcedure("имя",список параметров метода);
=================================== =========
Я их правильно описал???? в коде. а то я переделал русские слова - на английский. он такие ошибки выдает!


[C++ Error] Unit1.cpp(37): E2451 Undefined symbol 'znachenie'
[C++ Error] Unit1.cpp(37): E2285 Could not find a match for 'Variant::OlePropertySet(char *,undefined)'
[C++ Error] Unit1.cpp(38): E2451 Undefined symbol 'peremennay'
[C++ Error] Unit1.cpp(38): E2451 Undefined symbol 'app'
[C++ Error] Unit1.cpp(39): E2451 Undefined symbol 'poisk'
[C++ Error] Unit1.cpp(39): E2121 Function call missing )
[C++ Error] Unit1.cpp(58): E2451 Undefined symbol 'NewTemplate'
[C++ Error] Unit1.cpp(58): E2451 Undefined symbol 'DocumentType'
[C++ Error] Unit1.cpp(58): E2285 Could not find a match for 'Variant::OleProcedure(char *,char *,undefined,undefined)'
[C++ Error] Unit1.cpp(63): E2451 Undefined symbol 'vVarDoc'
[C++ Error] Unit1.cpp(63): E2451 Undefined symbol 'n'
[C++ Error] Unit1.cpp(63): E2285 Could not find a match for 'Variant::OleFunction(char *,undefined)'
[C++ Error] Unit1.cpp(77): E2451 Undefined symbol 'str'
[C++ Error] Unit1.cpp(81): E2285 Could not find a match for 'Variant::OlePropertySet(char *,undefined)'
[C++ Error] Unit1.cpp(87): E2285 Could not find a match for 'Variant::OlePropertySet(char *,undefined)'
[C++ Error] Unit1.cpp(94): E2285 Could not find a match for 'Variant::OlePropertySet(char *,undefined)'
[C++ Error] Unit1.cpp(101): E2285 Could not find a match for 'Variant::OlePropertySet(char *,undefined)'
Марат05 вне форума Ответить с цитированием
Старый 12.05.2012, 21:51   #5
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

http://stackoverflow.com/questions/2...in-the-foregro
просто поменять на английский не правильно, нужно знать эти параметры, вот ссылка почитайте.
Drugnir вне форума Ответить с цитированием
Старый 12.05.2012, 22:11   #6
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

http://upwap.ru/2331434
пароль 123 просмотрите
Марат05 вне форума Ответить с цитированием
Старый 12.05.2012, 22:31   #7
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

[C++ Error] Unit1.cpp(287): E2451 Undefined symbol 'vVarApp'
[C++ Error] Unit1.cpp(288): E2451 Undefined symbol 'vVarDocs'
[C++ Error] Unit1.cpp(291): E2451 Undefined symbol 'vVarDoc'
[C++ Error] Unit1.cpp(292): E2451 Undefined symbol 'vVarParagraphs'
[C++ Error] Unit1.cpp(293): E2451 Undefined symbol 'str'
[C++ Error] Unit1.cpp(327): E2451 Undefined symbol 'vVarParagraph'
[C++ Error] Unit1.cpp(328): E2451 Undefined symbol 'v'

как понять эти ошибки и описать их?
вот код
//формирование отчета в Word
vVarApp = CreateOleObject("Word.Application" );
vVarDocs=vVarApp.OlePropertyGet("Do cuments");
vVarApp.OlePropertySet("Visible", 1);
vVarDocs.OleProcedure ("Add"); //("Open", "C:\\12.xls");
vVarDoc=vVarDocs.OleFunction("Item" ,1);
vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Код формулы по УКУД ___________________________________ ______________________"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",1);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);


vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Код учреждения по ОКПО ___________________________________ ______________________ ";
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",2);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);
Марат05 вне форума Ответить с цитированием
Старый 12.05.2012, 22:31   #8
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Медицинская документация"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",5);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",8);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);


vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Форма№027/у"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",7);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",8);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Утвержд. Миндздравом СССР 04.10.80 "; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",8);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",8);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="№1030"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",9);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",8);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",2);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Министрество здравоохранения РФ"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",4);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",0);


vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="Наименование учреждения_________________________ ___________"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",5);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",0);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="ВЫПИСКА"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",9);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
v.OlePropertySet("Bold",true);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",1);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="из медицинской карты амблаторного, стационарного"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",11);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
v.OlePropertySet("Bold",true);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",1);

vVarParagraphs=vVarDoc.OlePropertyG et("Paragraphs");
str="(нужное подчеркнуть) больного"; //Поменять Лэйбл на новый
vVarParagraphs.OleProcedure("Add");
vVarParagraph=vVarParagraphs.OleFun ction("Item",12);
v=vVarParagraph.OlePropertyGet("Ran ge").OlePropertyGet("Font");
v.OlePropertySet("Size",10);
v.OlePropertySet("Bold",true);
vVarParagraph.OlePropertyGet("Range ").OlePropertySet("Text",str.c_str( ));
vVarParagraph.OlePropertySet("Align ment",1);
Марат05 вне форума Ответить с цитированием
Старый 13.05.2012, 12:57   #9
Drugnir
Форумчанин
 
Регистрация: 17.11.2010
Сообщений: 262
По умолчанию

С++ типизированный язык, по-этому нужно задать тип переменных.
Код:
[C++ Error] Unit1.cpp(287): E2451 Undefined symbol 'vVarApp'
[C++ Error] Unit1.cpp(288): E2451 Undefined symbol 'vVarDocs'
[C++ Error] Unit1.cpp(291): E2451 Undefined symbol 'vVarDoc'
[C++ Error] Unit1.cpp(292): E2451 Undefined symbol 'vVarParagraphs'
[C++ Error] Unit1.cpp(293): E2451 Undefined symbol 'str'
[C++ Error] Unit1.cpp(327): E2451 Undefined symbol 'vVarParagraph'
[C++ Error] Unit1.cpp(328): E2451 Undefined symbol 'v'
vVar... и v - тип Variant
str - AnsiString или UnicodeString (дома borlanda нет, точно не проверю)
http://wladm.narod.ru/Borland/word.html вот еще ссылка на хороший ресурс с объяснением. Прочитай его полностью.
Drugnir вне форума Ответить с цитированием
Старый 16.05.2012, 14:38   #10
Марат05
Пользователь
 
Регистрация: 07.12.2010
Сообщений: 72
По умолчанию Drugnir

Drugnir Спасибо. Ты правильно описал данную проблему. Но я Это уже сделал и сдал курсовую. Спасибо тебе, что помогал!!!
Марат05 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение отчета .dot (Word) через Delphi McKaY Помощь студентам 0 27.02.2012 22:36
Bulder и Fortran Чайник, но учусь C++ Builder 4 14.11.2011 20:44
просьба создание отчета по word Arderun Microsoft Office Excel 8 14.04.2011 20:11
Первая программа, C++ Bulder edmynt Помощь студентам 2 31.01.2010 15:12
экспорт отчета в Word higor Microsoft Office Access 4 04.10.2009 00:24