mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-10-10 16:43:35 +02:00
2022-02-12 Fred Gleason <fredg@paravelsystems.com>
* Added CSV generation routines in 'lib/rdcsv.[cpp|h]'. * Added a 'Log Listing (CSV)' report to rdlogedit(1). Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// List and Generate Log Reports
|
||||
//
|
||||
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <QPushButton>
|
||||
|
||||
#include <rdconf.h>
|
||||
#include <rdcsv.h>
|
||||
#include <rddatedialog.h>
|
||||
#include <rdreport.h>
|
||||
#include <rdtextfile.h>
|
||||
@@ -57,7 +58,8 @@ ListReports::ListReports(const QString &logname,const QString &description,
|
||||
list_reports_box=new QComboBox(this);
|
||||
list_reports_box->setGeometry(50,10,sizeHint().width()-60,19);
|
||||
list_reports_box->insertItem(0,tr("Log Listing"));
|
||||
list_reports_box->insertItem(1,tr("Log Exception Report"));
|
||||
list_reports_box->insertItem(1,tr("Log Listing (CSV)"));
|
||||
list_reports_box->insertItem(2,tr("Log Exception Report"));
|
||||
QLabel *list_reports_label=new QLabel(tr("Type:"),this);
|
||||
list_reports_label->setGeometry(10,10,35,19);
|
||||
list_reports_label->setFont(labelFont());
|
||||
@@ -138,7 +140,11 @@ void ListReports::generateData()
|
||||
GenerateLogReport(&report);
|
||||
break;
|
||||
|
||||
case 1: // XLoad Report
|
||||
case 1: // Event Report
|
||||
GenerateLogCsvReport(&report);
|
||||
break;
|
||||
|
||||
case 2: // XLoad Report
|
||||
GenerateExceptionReport(&report,list_date_edit->date());
|
||||
break;
|
||||
|
||||
@@ -288,6 +294,143 @@ void ListReports::GenerateLogReport(QString *report)
|
||||
}
|
||||
|
||||
|
||||
void ListReports::GenerateLogCsvReport(QString *report)
|
||||
{
|
||||
RDLogLine *logline;
|
||||
|
||||
//
|
||||
// Column Names
|
||||
//
|
||||
*report+=RDCsvField("TYPE");
|
||||
*report+=RDCsvField("START_TIME");
|
||||
*report+=RDCsvField("TIME_TYPE");
|
||||
*report+=RDCsvField("TRANS_TYPE");
|
||||
*report+=RDCsvField("CART_NUMBER");
|
||||
*report+=RDCsvField("GROUP_NAME");
|
||||
*report+=RDCsvField("LENGTH");
|
||||
*report+=RDCsvField("TITLE");
|
||||
*report+=RDCsvField("ARTIST");
|
||||
*report+=RDCsvField("CLIENT");
|
||||
*report+=RDCsvField("AGENCY");
|
||||
*report+=RDCsvField("ALBUM");
|
||||
*report+=RDCsvField("LABEL");
|
||||
*report+=RDCsvField("CONDUCTOR");
|
||||
*report+=RDCsvField("COMPOSER");
|
||||
*report+=RDCsvField("PUBLISHER");
|
||||
*report+=RDCsvField("USER_DEFINED");
|
||||
*report+=RDCsvField("SONG_ID");
|
||||
*report+=RDCsvField("USAGE_CODE");
|
||||
*report+=RDCsvField("SOURCE");
|
||||
*report+=RDCsvField("EXT_DATA");
|
||||
*report+=RDCsvField("EXT_EVENT_ID");
|
||||
*report+=RDCsvField("EXT_ANNC_TYPE");
|
||||
*report+=RDCsvField("LINE_ID");
|
||||
*report+=RDCsvField("LINE",true);
|
||||
|
||||
for(int i=0;i<list_model->lineCount();i++) {
|
||||
logline=list_model->logLine(i);
|
||||
|
||||
//
|
||||
// Event Type
|
||||
//
|
||||
*report+=RDCsvField(RDLogLine::typeText(logline->type()));
|
||||
|
||||
//
|
||||
// Time
|
||||
//
|
||||
if(logline->startTime(RDLogLine::Imported).isNull()||
|
||||
(logline->startTime(RDLogLine::Imported)==QTime(0,0,0,0))) {
|
||||
*report+=RDCsvField();
|
||||
}
|
||||
else {
|
||||
*report+=RDCsvField(logline->startTime(RDLogLine::Imported).
|
||||
toString("hh:mm:ss"));
|
||||
}
|
||||
if(logline->timeType()==RDLogLine::Hard) {
|
||||
*report+=RDCsvField("Hard");
|
||||
}
|
||||
else {
|
||||
*report+=RDCsvField("Relative");
|
||||
}
|
||||
|
||||
//
|
||||
// Transition Type
|
||||
//
|
||||
*report+=RDCsvField(RDLogLine::transText(logline->transType()));
|
||||
|
||||
switch(logline->type()) {
|
||||
case RDLogLine::Cart:
|
||||
case RDLogLine::Macro:
|
||||
*report+=RDCsvField(logline->cartNumber());
|
||||
*report+=RDCsvField(logline->groupName());
|
||||
*report+=RDCsvField(RDGetTimeLength(logline->forcedLength(),false,false));
|
||||
*report+=RDCsvField(logline->title());
|
||||
*report+=RDCsvField(logline->artist());
|
||||
break;
|
||||
|
||||
case RDLogLine::Marker:
|
||||
case RDLogLine::Track:
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField(":00");
|
||||
*report+=RDCsvField(logline->markerComment());
|
||||
*report+=RDCsvField();
|
||||
break;
|
||||
|
||||
case RDLogLine::TrafficLink:
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField(":00");
|
||||
*report+=RDCsvField(tr("Traffic Import"));
|
||||
*report+=RDCsvField();
|
||||
break;
|
||||
|
||||
case RDLogLine::MusicLink:
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField(":00");
|
||||
*report+=RDCsvField(tr("Music Import"));
|
||||
*report+=RDCsvField();
|
||||
break;
|
||||
|
||||
case RDLogLine::Chain:
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField(logline->markerLabel());
|
||||
*report+=RDCsvField();
|
||||
break;
|
||||
|
||||
case RDLogLine::OpenBracket:
|
||||
case RDLogLine::CloseBracket:
|
||||
case RDLogLine::UnknownType:
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
*report+=RDCsvField();
|
||||
break;
|
||||
}
|
||||
*report+=RDCsvField(logline->client());
|
||||
*report+=RDCsvField(logline->agency());
|
||||
*report+=RDCsvField(logline->album());
|
||||
*report+=RDCsvField(logline->label());
|
||||
*report+=RDCsvField(logline->conductor());
|
||||
*report+=RDCsvField(logline->composer());
|
||||
*report+=RDCsvField(logline->publisher());
|
||||
*report+=RDCsvField(logline->userDefined());
|
||||
*report+=RDCsvField(logline->songId());
|
||||
*report+=RDCsvField(RDCart::usageText(logline->usageCode()));
|
||||
*report+=RDCsvField(RDLogLine::sourceText(logline->source()));
|
||||
*report+=RDCsvField(logline->extData());
|
||||
*report+=RDCsvField(logline->extEventId());
|
||||
*report+=RDCsvField(logline->extAnncType());
|
||||
*report+=RDCsvField(logline->id());
|
||||
*report+=RDCsvField(i,true);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void ListReports::GenerateExceptionReport(QString *report,const QDate &date)
|
||||
{
|
||||
int errs=list_model->validate(report,date);
|
||||
|
@@ -2,7 +2,7 @@
|
||||
//
|
||||
// List and Generate Log Reports
|
||||
//
|
||||
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2022 Fred Gleason <fredg@paravelsystems.com>
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License version 2 as
|
||||
@@ -47,6 +47,7 @@ class ListReports : public RDDialog
|
||||
|
||||
private:
|
||||
void GenerateLogReport(QString *report);
|
||||
void GenerateLogCsvReport(QString *report);
|
||||
void GenerateExceptionReport(QString *report,const QDate &date);
|
||||
QComboBox *list_reports_box;
|
||||
QString list_log_name;
|
||||
|
Reference in New Issue
Block a user