#include // For std::putenv #include // For std::strdup #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "MainWindow.h" #include "GenerateReportBase.h" #include "CloseCurrentReport.h" using namespace std; using namespace com::sun::star::uno; using namespace com::sun::star::lang; using namespace com::sun::star::beans; using namespace com::sun::star::bridge; using namespace com::sun::star::frame; using namespace com::sun::star::sheet; using namespace com::sun::star::registry; using namespace com::sun::star::text; using namespace rtl; using com::sun::star::beans::PropertyValue; using com::sun::star::text::XTextDocument; using com::sun::star::text::XText; using com::sun::star::text::XTextCursor; namespace GenerateReport { CloseCurrentReport::CloseCurrentReport() { } //CloseCurrentReport::~CloseCurrentReport() //{ //} void CloseCurrentReport::closeReportExcute() { //确认生成报告后关闭文档 auto _textDocument = GenerateReportBaseInstance->getTextDocument(); Reference xCloseable(_textDocument, UNO_QUERY); if (xCloseable.is()) { try { auto _main = GenerateReportBaseInstance->getMainWindow(); _main->destructionCenterWidget(); //参数false表示如果文档有未保存的修改,不会强制保存文档。如果将参数设置为true, // 则在关闭文档时会自动保存文档(前提是文档支持保存操作并且有合适的保存位置等条件) //xCloseable->close(false); GenerateReportBaseInstance->setCurrentReportNumber(0); } catch (Exception& e) { // 处理关闭文档时可能出现的异常 OUString errorMessage = e.Message; // 可以在这里输出错误信息或进行其他错误处理 } } } }