From 8c59d59c48bd5df426de40db51bd86796d3f17f2 Mon Sep 17 00:00:00 2001 From: Yorik van Havre Date: Sat, 15 Oct 2016 12:22:37 -0300 Subject: [PATCH] Arch: alternate export method for schedules --- src/Mod/Arch/ArchSchedule.py | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/Mod/Arch/ArchSchedule.py b/src/Mod/Arch/ArchSchedule.py index e64c7fd03..41ad91105 100644 --- a/src/Mod/Arch/ArchSchedule.py +++ b/src/Mod/Arch/ArchSchedule.py @@ -322,9 +322,23 @@ class _ArchScheduleTaskPanel: def exportCSV(self): if self.obj: - filename = QtGui.QFileDialog.getSaveFileName(QtGui.qApp.activeWindow(), translate("Arch","Export CSV File"), None, "CSV file (*.csv)"); - if filename: - self.obj.Result.exportFile(str(filename[0].encode("utf8"))) + if self.obj.Result: + filename = QtGui.QFileDialog.getSaveFileName(QtGui.qApp.activeWindow(), translate("Arch","Export CSV File"), None, "CSV file (*.csv)"); + if filename: + # the following line crashes, couldn't fnid out why + # self.obj.Result.exportFile(str(filename[0].encode("utf8"))) + import csv + if not("Up-to-date" in self.obj.State): + self.obj.Proxy.execute(self.obj) + numrows = len(self.obj.Description)+1 + with open(filename[0].encode("utf8"), 'wb') as csvfile: + csvfile = csv.writer(csvfile,delimiter="\t") + for i in range(numrows): + r = [] + for j in ["A","B","C"]: + r.append(self.obj.Result.getContents(j+str(i+1))) + csvfile.writerow(r) + print "successfully exported ",filename[0] def select(self): if self.form.list.currentRow() >= 0: