| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424 |
- #include "reporting.h"
- #include "ui_reporting.h"
- #include <QDesktopWidget>
- #include <QToolBar>
- #include <QVBoxLayout>
- #include <QAxWidget>
- #include <QAxObject>
- #include<QDebug>
- #include<QFileDialog>
- #include<QMessageBox>
- Reporting::Reporting(QWidget *parent) :
- QWidget(parent),
- ui(new Ui::Reporting)
- {
- ui->setupUi(this);
- QToolBar* locToolBar = new QToolBar(tr("报告"),this); //创建工具栏
- locToolBar->addAction(ui->saveAction);
- connect (ui->saveAction,SIGNAL(triggered(bool)),this,SLOT(fileSave()));
- locToolBar->addAction(ui->openAction);
- connect (ui->openAction,SIGNAL(triggered(bool)),this,SLOT(openAction()));
- locToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
- QVBoxLayout *Layout = new QVBoxLayout();//图片合成主界面垂直布局
- Layout->addWidget(locToolBar); //设置工具栏和编辑器上下布局
- }
- Reporting::~Reporting()
- {
- delete ui;
- }
- void Reporting::fileSave(){
- QString number=ui->numberEdit->text();//字号
- QString wtdw=ui->wtdwEdit->text();//委托单位
- QString sjr=ui->sjrEdit->text();//送检人
- QDate slrqEdit=ui->slrqEdit->date();
- QString slrq=QString::number(slrqEdit.year())+"年"+QString::number(slrqEdit.month())+"月"+QString::number(slrqEdit.day())+"日";//送检日期
- QString qkzy=ui->qkzyTextEdit->toPlainText();//案(事)件情况摘要
- QString jc=ui->jcTextEdit->toPlainText();//检材
- QString yb=ui->ybTextEdit->toPlainText();//样本
- QString jdyq=ui->jdyqEdit->text();//鉴定要求
- QDate jyksrqEdit=ui->jyksrqDateEdit->date();
- QString jyksrq=QString::number(jyksrqEdit.year())+"年"+QString::number(jyksrqEdit.month())+"月"+QString::number(jyksrqEdit.day())+"日";//检验开始日期
- QString jydd=ui->jyddEdit->text();//检验地点
- QString jy=ui->jyTextEdit->toPlainText();//检验
- QString jcjy=ui->jcjyTextEdit->toPlainText();//检材检验
- QString ybjy=ui->ybjyTextEdit->toPlainText();//样本检验
- QString bdjy=ui->bdjyTextEdit->toPlainText();//比对检验
- QString lz=ui->lzTextEdit->toPlainText();//论证
- QString jdyj=ui->jdyjTextEdit->toPlainText();//鉴定意见
- QString fj=ui->fjEdit->text();//附件
- QString jdr1=ui->jdr1Edit->text();//鉴定人1
- QString jdr2=ui->jdr2Edit->text();//鉴定人2
- QString sqqzr=ui->sqqzrEdit->text();//授权签字人
- QDate rqEdit=ui->rqDateEdit->date();
- QString rq=QString::number(rqEdit.year())+"年"+QString::number(rqEdit.month())+"月"+QString::number(rqEdit.day())+"日";//检验开始日期
- QString zp1=ui->zp1Edit->text();//照片1地址
- QString zp2=ui->zp2Edit->text();//照片2地址
- QString wzbh1=ui->wzbh1Edit->text();//照片2物证编号
- QString zp3=ui->zp3Edit->text();//照片3
- QString wzbh2=ui->wzbh2Edit->text();//照片3物证编号
- QString zp4=ui->zp4Edit->text();//照片4
- QString outFileName = QFileDialog::getSaveFileName(this, QStringLiteral("请输入要保存的名字:"),".", "Microsoft Word 97-2003(*.doc);;Microsoft Word 2007-2013(*.docx)");
- if (outFileName.isEmpty()) {
- QMessageBox::warning(this, tr("警告"),tr("输入的文件名为空!"),QMessageBox::Ok);
- return ;
- }
- // 新建一个word应用程序,并设置为不可见
- QAxWidget *word=new QAxWidget("Word.Application", 0, Qt::MSWindowsOwnDC);
- word->setProperty("Visible", false);
- // 获取所有的工作文档
- QAxObject * documents = word->querySubObject("Documents");
- // 以文件testTemplate.dot为模版新建一个文档,注意这里的路径为绝对路径
- QDir dir(".");
- documents->dynamicCall("Add(QString)",templatePath);
- // 获取当前激活的文档
- QAxObject *document=word->querySubObject("ActiveDocument");
- // 获取文档中名字为number的标签
- // QString bookmakrName="number";
- QAxObject*numbermark_text=document->querySubObject(QString("Bookmarks(%1)").arg("number").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!numbermark_text->isNull())
- {
- numbermark_text->dynamicCall("Select(void)");
- numbermark_text->querySubObject("Range")->setProperty("Text",number);
- }
- QAxObject*wtdwmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("wtdw").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!wtdwmark_text->isNull())
- {
- wtdwmark_text->dynamicCall("Select(void)");
- wtdwmark_text->querySubObject("Range")->setProperty("Text",wtdw);
- }
- QAxObject*sjrmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("sjr").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!sjrmark_text->isNull())
- {
- sjrmark_text->dynamicCall("Select(void)");
- sjrmark_text->querySubObject("Range")->setProperty("Text",sjr);
- }
- QAxObject*slrqmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("slrq").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!slrqmark_text->isNull())
- {
- slrqmark_text->dynamicCall("Select(void)");
- slrqmark_text->querySubObject("Range")->setProperty("Text",slrq);
- }
- QAxObject*qkzymark_text=document->querySubObject(QString("Bookmarks(%1)").arg("qkzy").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!qkzymark_text->isNull())
- {
- qkzymark_text->dynamicCall("Select(void)");
- qkzymark_text->querySubObject("Range")->setProperty("Text",qkzy);
- }
- QAxObject*jcmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jc").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jcmark_text->isNull())
- {
- jcmark_text->dynamicCall("Select(void)");
- jcmark_text->querySubObject("Range")->setProperty("Text",jc);
- }
- // 获取文档中名字为number的标签
- QAxObject*ybmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("yb").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!ybmark_text->isNull())
- {
- ybmark_text->dynamicCall("Select(void)");
- ybmark_text->querySubObject("Range")->setProperty("Text",yb);
- }
- QAxObject*jdyqmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jdyq").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jdyqmark_text->isNull())
- {
- jdyqmark_text->dynamicCall("Select(void)");
- jdyqmark_text->querySubObject("Range")->setProperty("Text",jdyq);
- }
- QAxObject*jyksrqmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jyksrq").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jyksrqmark_text->isNull())
- {
- jyksrqmark_text->dynamicCall("Select(void)");
- jyksrqmark_text->querySubObject("Range")->setProperty("Text",jyksrq);
- }
- QAxObject*jyddmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jydd").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jyddmark_text->isNull())
- {
- jyddmark_text->dynamicCall("Select(void)");
- jyddmark_text->querySubObject("Range")->setProperty("Text",jydd);
- }
- QAxObject*jymark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jy").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jymark_text->isNull())
- {
- jymark_text->dynamicCall("Select(void)");
- jymark_text->querySubObject("Range")->setProperty("Text",jy);
- }
- QAxObject*jcjymark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jcjy").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jcjymark_text->isNull())
- {
- jcjymark_text->dynamicCall("Select(void)");
- jcjymark_text->querySubObject("Range")->setProperty("Text",jcjy);
- }
- QAxObject*ybjymark_text=document->querySubObject(QString("Bookmarks(%1)").arg("ybjy").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!ybjymark_text->isNull())
- {
- ybjymark_text->dynamicCall("Select(void)");
- ybjymark_text->querySubObject("Range")->setProperty("Text",ybjy);
- }
- QAxObject*bdjymark_text=document->querySubObject(QString("Bookmarks(%1)").arg("bdjy").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!bdjymark_text->isNull())
- {
- bdjymark_text->dynamicCall("Select(void)");
- bdjymark_text->querySubObject("Range")->setProperty("Text",bdjy);
- }
- QAxObject*lzmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("lz").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!lzmark_text->isNull())
- {
- lzmark_text->dynamicCall("Select(void)");
- lzmark_text->querySubObject("Range")->setProperty("Text",lz);
- }
- QAxObject*jdyjmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jdyj").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jdyjmark_text->isNull())
- {
- jdyjmark_text->dynamicCall("Select(void)");
- jdyjmark_text->querySubObject("Range")->setProperty("Text",jdyj);
- }
- QAxObject*fjmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("fj").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!fjmark_text->isNull())
- {
- fjmark_text->dynamicCall("Select(void)");
- fjmark_text->querySubObject("Range")->setProperty("Text",fj);
- }
- QAxObject*jdr1mark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jdr1").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jdr1mark_text->isNull())
- {
- jdr1mark_text->dynamicCall("Select(void)");
- jdr1mark_text->querySubObject("Range")->setProperty("Text",jdr1);
- }
- QAxObject*jdr2mark_text=document->querySubObject(QString("Bookmarks(%1)").arg("jdr2").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!jdr2mark_text->isNull())
- {
- jdr2mark_text->dynamicCall("Select(void)");
- jdr2mark_text->querySubObject("Range")->setProperty("Text",jdr2);
- }
- QAxObject*sqqzrmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("sqqzr").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!sqqzrmark_text->isNull())
- {
- sqqzrmark_text->dynamicCall("Select(void)");
- sqqzrmark_text->querySubObject("Range")->setProperty("Text",sqqzr);
- }
- QAxObject*rqmark_text=document->querySubObject(QString("Bookmarks(%1)").arg("rq").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!rqmark_text->isNull())
- {
- rqmark_text->dynamicCall("Select(void)");
- rqmark_text->querySubObject("Range")->setProperty("Text",rq);
- }
- QAxObject*zp1mark_pic=document->querySubObject("Bookmarks(QVariant)","zp1");
- // 选中标签,将字符插入到标签位置
- if(!zp1mark_pic->isNull())
- {
- zp1mark_pic->dynamicCall("Select(void)");
- QAxObject *range;
- range = zp1mark_pic->querySubObject("Range");
- QVariant tmp = range->asVariant();
- QList<QVariant>qList;
- qList<<QVariant(zp1);
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- // zp1mark_pic->querySubObject("Range")->setProperty("Text",zp1);
- }
- QAxObject*zp2mark_pic=document->querySubObject("Bookmarks(QVariant)","zp2");
- // 选中标签,将字符插入到标签位置
- if(!zp2mark_pic->isNull())
- {
- zp2mark_pic->dynamicCall("Select(void)");
- QAxObject *range;
- range = zp2mark_pic->querySubObject("Range");
- QVariant tmp = range->asVariant();
- QList<QVariant>qList;
- qList<<QVariant(zp2);
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- }
- QAxObject*wzbh1mark_text=document->querySubObject(QString("Bookmarks(%1)").arg("wzbh1").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!wzbh1mark_text->isNull())
- {
- wzbh1mark_text->dynamicCall("Select(void)");
- wzbh1mark_text->querySubObject("Range")->setProperty("Text",wzbh1);
- }
- QAxObject*zp3mark_pic=document->querySubObject("Bookmarks(QVariant)","zp3");
- // 选中标签,将字符插入到标签位置
- if(!zp3mark_pic->isNull())
- {
- zp3mark_pic->dynamicCall("Select(void)");
- QAxObject *range;
- range = zp3mark_pic->querySubObject("Range");
- QVariant tmp = range->asVariant();
- QList<QVariant>qList;
- qList<<QVariant(zp3);
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- }
- QAxObject*wzbh2mark_text=document->querySubObject(QString("Bookmarks(%1)").arg("wzbh2").toLocal8Bit().data());
- // 选中标签,将字符插入到标签位置
- if(!wzbh2mark_text->isNull())
- {
- wzbh2mark_text->dynamicCall("Select(void)");
- wzbh2mark_text->querySubObject("Range")->setProperty("Text",wzbh2);
- }
- QAxObject*zp4mark_pic=document->querySubObject("Bookmarks(QVariant)","zp4");
- // 选中标签,将字符插入到标签位置
- if(!zp4mark_pic->isNull())
- {
- zp4mark_pic->dynamicCall("Select(void)");
- QAxObject *range;
- range = zp4mark_pic->querySubObject("Range");
- QVariant tmp = range->asVariant();
- QList<QVariant>qList;
- qList<<QVariant(zp4);
- qList<<QVariant(false);
- qList<<QVariant(true);
- qList<<tmp;
- QAxObject *Inlineshapes = document->querySubObject("InlineShapes");
- Inlineshapes->dynamicCall("AddPicture(const QString&, QVariant, QVariant ,QVariant)",qList);
- }
- // 将文件另存为outFileName,关闭工作文档,退出应用程序
- document->dynamicCall("SaveAs (const QString&)", outFileName);
- document->dynamicCall("Close (boolean)", true); //关闭文本窗口
- word->dynamicCall("Quit(void)"); //退出word
- QMessageBox::information(this, tr("消息"),tr("报告生成成功!"),QMessageBox::Ok);
- // delete bookmark_text;
- delete document;
- delete documents;
- delete word;
- }
- void Reporting::on_zp1Button_clicked()
- {
- //定义文件对话框类
- QFileDialog *fileDialog = new QFileDialog(this);
- //定义文件对话框标题
- fileDialog->setWindowTitle(tr("选择图片"));
- //设置默认文件路径
- fileDialog->setDirectory(".");
- //设置文件过滤器
- fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
- //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
- fileDialog->setFileMode(QFileDialog::ExistingFiles);
- //设置视图模式
- fileDialog->setViewMode(QFileDialog::Detail);
- ui->zp1Edit->setText(QString(fileDialog->getOpenFileName()));
- }
- void Reporting::on_zp2Button_clicked()
- {
- //定义文件对话框类
- QFileDialog *fileDialog = new QFileDialog(this);
- //定义文件对话框标题
- fileDialog->setWindowTitle(tr("选择图片"));
- //设置默认文件路径
- fileDialog->setDirectory(".");
- //设置文件过滤器
- fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
- //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
- fileDialog->setFileMode(QFileDialog::ExistingFiles);
- //设置视图模式
- fileDialog->setViewMode(QFileDialog::Detail);
- ui->zp2Edit->setText(QString(fileDialog->getOpenFileName()));
- }
- void Reporting::on_pushButton_3_clicked()
- {
- //定义文件对话框类
- QFileDialog *fileDialog = new QFileDialog(this);
- //定义文件对话框标题
- fileDialog->setWindowTitle(tr("选择图片"));
- //设置默认文件路径
- fileDialog->setDirectory(".");
- //设置文件过滤器
- fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
- //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
- fileDialog->setFileMode(QFileDialog::ExistingFiles);
- //设置视图模式
- fileDialog->setViewMode(QFileDialog::Detail);
- ui->zp3Edit->setText(QString(fileDialog->getOpenFileName()));
- }
- void Reporting::on_zp4Button_clicked()
- {
- //定义文件对话框类
- QFileDialog *fileDialog = new QFileDialog(this);
- //定义文件对话框标题
- fileDialog->setWindowTitle(tr("选择图片"));
- //设置默认文件路径
- fileDialog->setDirectory(".");
- //设置文件过滤器
- fileDialog->setNameFilter(tr("Images(*.png *.jpg *.jpeg *.bmp)"));
- //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
- fileDialog->setFileMode(QFileDialog::ExistingFiles);
- //设置视图模式
- fileDialog->setViewMode(QFileDialog::Detail);
- ui->zp4Edit->setText(QString(fileDialog->getOpenFileName()));
- }
- void Reporting::openAction()
- {
- //定义文件对话框类
- QFileDialog *fileDialog = new QFileDialog(this);
- //定义文件对话框标题
- fileDialog->setWindowTitle(tr("选择文件"));
- //设置默认文件路径
- fileDialog->setDirectory(".");
- //设置文件过滤器
- fileDialog->setNameFilter(tr("dot(*.dot)"));
- //设置可以选择多个文件,默认为只能选择一个文件QFileDialog::ExistingFiles
- fileDialog->setFileMode(QFileDialog::ExistingFiles);
- //设置视图模式
- fileDialog->setViewMode(QFileDialog::Detail);
- templatePath=QString(fileDialog->getOpenFileName());
- }
|