Пример #1
0
    // ---------------------------------------------------------------------------------
    void KReportTable::export_data_to_file()
    {
      Uuid const&id = _M_data_model->report().reportType().id();
      //fetching the target file name from the most recent representation of the report type (instead of using the cached report type definition):
      QString filename = context()->reportManager()->load ( id ).exportDataFileName ( _M_data_model->report() );

      filename = KFileDialog::getSaveFileName ( detail::url ( filename ), QString(), 0, i18n ( "Export Report Data to" ) );
      if ( filename.isEmpty() ) {return;}
      QFile out ( filename );
      QFileInfo out_info ( out );
      if ( out_info.exists() )
      {
        if ( KMessageBox::questionYesNo ( 0, i18n ( "The target file <b>'%1'</b> already exists. Do you really want to overwrite it?" ).arg ( filename ), i18n ( "File already exists - Don't Panik" ) ) == KMessageBox::No )
        {
          return;
        }
      }
      if ( !out.open ( QIODevice::WriteOnly ) )
      {
        KMessageBox::error ( 0, i18n ( "Unable to export Report Data to file <b>'%1'</b>." ).arg ( filename ), i18n ( "Report Export Error" ) );
        return;
      }
      out.write ( _M_data_model->report().reportData().exportDataString().toAscii() );
      out.close();
      KDialog *dlg = new ReportExportedSuccessfullyDialog ( out_info, this );
      int result = KMessageBox::createKMessageBox ( dlg
                   , QMessageBox::Information
                   , i18n ( "Report exported successfully to <b>'%1'</b>." ).arg ( filename )
                   , QStringList()
                   , QString ( "" )
                   , 0
                   , KMessageBox::Notify );
      if ( result == KDialog::User1 )
      {
        Mail mail;
        mail.setSubject ( out_info.fileName() );
        mail.addAttachement ( out_info.absoluteFilePath() );
        MailInterface interface;
        interface.send ( mail );
      }
    }