From bcc87e3f30895c867301b46ff0b72e4b4cdd267a Mon Sep 17 00:00:00 2001 From: milek7 Date: Mon, 1 Apr 2019 01:53:04 +0200 Subject: [PATCH] report generation --- widgets/trainingcard.cpp | 58 ++++++++++++++++++++++++++++++++++++++-- widgets/trainingcard.h | 3 +++ 2 files changed, 59 insertions(+), 2 deletions(-) diff --git a/widgets/trainingcard.cpp b/widgets/trainingcard.cpp index 769f29c6..9f5310d4 100644 --- a/widgets/trainingcard.cpp +++ b/widgets/trainingcard.cpp @@ -15,20 +15,60 @@ void trainingcard_panel::clear() place.clear(); trainee_name.clear(); + trainee_birthdate.clear(); + trainee_company.clear(); instructor_name.clear(); + track_segment.clear(); remarks.clear(); place.resize(256, 0); trainee_name.resize(256, 0); + trainee_birthdate.resize(256, 0); + trainee_company.resize(256, 0); instructor_name.resize(256, 0); + track_segment.resize(256, 0); remarks.resize(4096, 0); } void trainingcard_panel::save_thread_func() { std::tm *tm = std::localtime(&(*start_time_wall)); + std::string date = std::to_string(tm->tm_year + 1900) + "-" + std::to_string(tm->tm_mon + 1) + "-" + std::to_string(tm->tm_mday); + std::string from = std::to_string(tm->tm_hour) + ":" + std::to_string(tm->tm_min); + std::time_t now = std::time(nullptr); + tm = std::localtime(&now); + std::string to = std::to_string(tm->tm_hour) + ":" + std::to_string(tm->tm_min); + + std::fstream temp("input.json", std::ios_base::out | std::ios_base::binary | std::ios_base::trunc); + + temp << "{" << std::endl; + temp << "\"place\": \"" << place.c_str() << "\"," << std::endl; + temp << "\"date\": \"" << date << "\"," << std::endl; + temp << "\"from\": \"" << from << "\"," << std::endl; + temp << "\"to\": \"" << to << "\"," << std::endl; + temp << "\"trainee_name\": \"" << trainee_name.c_str() << "\"," << std::endl; + temp << "\"trainee_birthdate\": \"" << trainee_birthdate.c_str() << "\"," << std::endl; + temp << "\"company\": \"" << trainee_company.c_str() << "\"," << std::endl; + temp << "\"instructor_name\": \"" << instructor_name.c_str() << "\"," << std::endl; + temp << "\"track_segment\": \"" << track_segment.c_str() << "\"," << std::endl; + temp << "\"remarks\": \"" << remarks.c_str() << "\"" << std::endl; + temp << "}" << std::endl; + + temp.close(); + std::string rep = std::to_string(tm->tm_year + 1900) + std::to_string(tm->tm_mon + 1) + std::to_string(tm->tm_mday) - + std::to_string(tm->tm_hour) + std::to_string(tm->tm_min) + "_" + trainee_name + "_" + instructor_name; + + std::to_string(tm->tm_hour) + std::to_string(tm->tm_min) + "_" + std::string(trainee_name.c_str()) + "_" + std::string(instructor_name.c_str()); + +#ifdef _WIN32 + std::string generator("./fillpdf.exe"); +#else + std::string generator("./fillpdf"); +#endif + + std::string cmd(generator + " complete -d input.json -t template.json doc.pdf " + rep + ".pdf"); + std::cout << cmd<< std::endl; + system(cmd.c_str()); + state.store(EndRecording(rep)); } @@ -76,12 +116,26 @@ void trainingcard_panel::render_contents() ImGui::SameLine(); ImGui::InputText("##trainee", &trainee_name[0], trainee_name.size()); + ImGui::TextUnformatted("Data urodzenia:"); + ImGui::SameLine(); + ImGui::InputText("##birthdate", &trainee_birthdate[0], trainee_birthdate.size()); + + ImGui::TextUnformatted("Firma:"); + ImGui::SameLine(); + ImGui::InputText("##company", &trainee_company[0], trainee_company.size()); + ImGui::TextUnformatted("Instruktor:"); ImGui::SameLine(); ImGui::InputText("##instructor", &instructor_name[0], instructor_name.size()); + ImGui::TextUnformatted("Odcinek trasy:"); + ImGui::SameLine(); + ImGui::InputText("##segment", &track_segment[0], track_segment.size()); + ImGui::TextUnformatted("Uwagi"); - ImGui::InputTextMultiline("##remarks", &remarks[0], remarks.size(), ImVec2(-1.0f, 200.0f)); + ImGui::SameLine(); + ImGui::InputText("##remarks", &remarks[0], remarks.size()); + //ImGui::InputTextMultiline("##remarks", &remarks[0], remarks.size(), ImVec2(-1.0f, 200.0f)); if (!start_time_wall) { if (ImGui::Button("Rozpocznij szkolenie")) { diff --git a/widgets/trainingcard.h b/widgets/trainingcard.h index dc38ca5d..7e974c20 100644 --- a/widgets/trainingcard.h +++ b/widgets/trainingcard.h @@ -4,7 +4,10 @@ class trainingcard_panel : public ui_panel { std::string place; std::string trainee_name; + std::string trainee_birthdate; + std::string trainee_company; std::string instructor_name; + std::string track_segment; std::string remarks; std::optional start_time_wall;