diff --git a/build/BudgetMaster.exe b/build/BudgetMaster.exe
index fb7db919eb7a0748bb8e951a1f063a0cce2e6635..12e350ea3f7f3ae44248587d295ba3436175db09 100644
Binary files a/build/BudgetMaster.exe and b/build/BudgetMaster.exe differ
diff --git a/build/BudgetMasterClient.jar b/build/BudgetMasterClient.jar
index f389bc9c30fed034c82c2fab6bf1ec7f3be75758..0aab6a2d7bb684ca672674cafc7c5effc3480c06 100644
Binary files a/build/BudgetMasterClient.jar and b/build/BudgetMasterClient.jar differ
diff --git a/build/BudgetMasterServer.jar b/build/BudgetMasterServer.jar
index 73ae6603501f348f03888b3a177074cbbaace775..0c26a7ec50ad0a4f977d30c450f14c3670d662e5 100644
Binary files a/build/BudgetMasterServer.jar and b/build/BudgetMasterServer.jar differ
diff --git a/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java
index 37c153d1a0d288ea42667e610b50dee9864f58c0..46c039508c72f972cbd4a741945d83300f0de304 100644
--- a/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java
+++ b/src/de/deadlocker8/budgetmaster/logic/charts/CategoriesChart.java
@@ -30,8 +30,9 @@ public class CategoriesChart extends VBox implements ChartExportable
 	private String currency;
 	private double totalIncomes;
 	private double totalPayments;
-	private LegendType legendType;
-	
+	private LegendType legendType;	
+	private final double CHART_HEIGHT = 200;
+	private final double FULL_LEGEND_ITEM_HEIGHT = 40;
 
 	public CategoriesChart(String titleIncomes, String titlePayments, ArrayList<CategoryInOutSum> categoryInOutSums, String currency, LegendType legendType)
 	{
@@ -295,18 +296,21 @@ public class CategoriesChart extends VBox implements ChartExportable
 	public WritableImage export(int width, int height)
 	{
 		VBox root = new VBox();
-		root.setStyle("-fx-background-color: transparent;");
-		root.setPadding(new Insets(25));
-		
-		root.getChildren().add(generate(titleIncomes, true));
-		root.getChildren().add(generate(titlePayments, false));
-		
-		Region spacer = new Region();
-		root.getChildren().add(spacer);
-		VBox.setVgrow(spacer, Priority.ALWAYS);
-		
-		root.getChildren().add(generateFullLegend());		
-		
+
+        root.setStyle("-fx-background-color: transparent;");
+        root.setPadding(new Insets(25));
+        root.setSpacing(10);
+        
+        root.getChildren().add(generate(titleIncomes, true));
+        root.getChildren().add(generate(titlePayments, false));
+        
+        Region spacer = new Region();
+        spacer.setMinHeight(25);
+        root.getChildren().add(spacer);
+        VBox.setVgrow(spacer, Priority.ALWAYS);
+        
+        root.getChildren().add(generateFullLegend());	    
+
 		Stage newStage = new Stage();
 		newStage.initModality(Modality.NONE);
 		newStage.setScene(new Scene(root, width, height));
@@ -329,6 +333,6 @@ public class CategoriesChart extends VBox implements ChartExportable
 	@Override
 	public double getSuggestedHeight()
 	{
-		return getHeight() + 100;
+		return CHART_HEIGHT + categoryInOutSums.size() * FULL_LEGEND_ITEM_HEIGHT + 50;
 	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmaster/logic/report/ColumnType.java b/src/de/deadlocker8/budgetmaster/logic/report/ColumnType.java
index b7503a80ce55a7b2d0da8699c98f17edf4f022c4..e810df6179e46af257690ba2648abbd5139a8303 100644
--- a/src/de/deadlocker8/budgetmaster/logic/report/ColumnType.java
+++ b/src/de/deadlocker8/budgetmaster/logic/report/ColumnType.java
@@ -2,24 +2,31 @@ package de.deadlocker8.budgetmaster.logic.report;
 
 public enum ColumnType
 {
-	POSITION("Nr."),
-	DATE("Datum"),
-	REPEATING("Wiederholend"),
-	CATEGORY("Kategorie"),
-	NAME("Name"),
-	DESCRIPTION("Notiz"), 
-	RATING("Bewertung"), 
-	AMOUNT("Betrag");
+	POSITION("Nr.", 1),
+	DATE("Datum", 2),
+	REPEATING("Wiederholend", 1),
+	CATEGORY("Kategorie", 3),
+	NAME("Name", 3),
+	DESCRIPTION("Notiz", 3), 
+	RATING("+/-", 1), 
+	AMOUNT("Betrag", 2);
 	
 	private String name;
+	private float proportion;
 
-	private ColumnType(String name)
+	private ColumnType(String name, float proportion)
 	{
 		this.name = name;
+		this.proportion = proportion;
 	}
 
 	public String getName()
 	{
 		return name;
 	}
+
+	public float getProportion()
+	{
+		return proportion;
+	}
 }
\ No newline at end of file
diff --git a/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java b/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java
index 9ad46eb9572e7f72a2c5b635cf47819cc0e9a928..27cd67b4652f86cbf2a30a804560cf0022080ea8 100644
--- a/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java
+++ b/src/de/deadlocker8/budgetmaster/logic/report/ReportGenerator.java
@@ -7,6 +7,7 @@ import java.io.FileOutputStream;
 import java.util.ArrayList;
 
 import org.joda.time.DateTime;
+import org.joda.time.format.DateTimeFormat;
 
 import com.itextpdf.text.BaseColor;
 import com.itextpdf.text.Chapter;
@@ -23,6 +24,7 @@ import com.itextpdf.text.pdf.PdfPCell;
 import com.itextpdf.text.pdf.PdfPTable;
 import com.itextpdf.text.pdf.PdfWriter;
 
+import de.deadlocker8.budgetmaster.logic.Budget;
 import de.deadlocker8.budgetmaster.logic.CategoryBudget;
 import de.deadlocker8.budgetmaster.logic.utils.Helpers;
 
@@ -31,33 +33,35 @@ public class ReportGenerator
 	private ArrayList<ReportItem> reportItems;
 	private ArrayList<CategoryBudget> categoryBudgets;
 	private ColumnOrder columnOrder;
+	private boolean includeBudget;
 	private boolean splitTable;
 	private boolean includeCategoryBudgets;
 	private File savePath;
 	private String currency;
 	private DateTime date;
+	private Budget budget;
 
-	public ReportGenerator(ArrayList<ReportItem> reportItems, ArrayList<CategoryBudget> categoryBudgets, ColumnOrder columnOrder, boolean splitTable, boolean includeCategoryBudgets, File savePath, String currency, DateTime date)
+	public ReportGenerator(ArrayList<ReportItem> reportItems, ArrayList<CategoryBudget> categoryBudgets, ColumnOrder columnOrder, boolean includeBudget, boolean splitTable, boolean includeCategoryBudgets, File savePath, String currency, DateTime date, Budget budget)
 	{	
 		this.reportItems = reportItems;
 		this.categoryBudgets = categoryBudgets;
 		this.columnOrder = columnOrder;
+		this.includeBudget = includeBudget;
 		this.splitTable = splitTable;
 		this.includeCategoryBudgets = includeCategoryBudgets;
 		this.savePath = savePath;
 		this.currency = currency;
 		this.date = date;
+		this.budget = budget;
 	}
 
 	private Chapter generateHeader()
 	{
-		Font chapterFont = new Font(FontFamily.HELVETICA, 16, Font.BOLDITALIC);
-		Font paragraphFont = new Font(FontFamily.HELVETICA, 12, Font.NORMAL);
+		Font chapterFont = new Font(FontFamily.HELVETICA, 16, Font.BOLDITALIC);		
 		Chunk chunk = new Chunk("Monatsbericht - " + date.toString("MMMM yyyy"), chapterFont);
 		Chapter chapter = new Chapter(new Paragraph(chunk), 1);
 		chapter.setNumberDepth(0);
-		chapter.add(Chunk.NEWLINE);
-		chapter.add(new Paragraph("Buchungsübersicht", paragraphFont));
+		chapter.add(Chunk.NEWLINE);		
 		return chapter;
 	}
 
@@ -69,7 +73,13 @@ public class ReportGenerator
 
 		if(numberOfColumns > 0)
 		{
-			PdfPTable table = new PdfPTable(numberOfColumns);
+			float[] proportions = new float[numberOfColumns];
+			for(int i = 0; i < columnOrder.getColumns().size(); i++)
+			{
+				proportions[i] = columnOrder.getColumns().get(i).getProportion();
+			}
+			
+			PdfPTable table = new PdfPTable(proportions);
 			table.setWidthPercentage(tableWidth);
 			Font font = new Font(FontFamily.HELVETICA, 8, Font.NORMAL, GrayColor.BLACK);
 
@@ -146,14 +156,32 @@ public class ReportGenerator
 		writer.setPageEvent(new HeaderFooterPageEvent());
 		document.open();
 		document.setMargins(50, 45, 50, 70);
+		Font headerFont = new Font(FontFamily.HELVETICA, 14, Font.BOLD);
+		Font smallHeaderFont = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
 		Font paragraphFont = new Font(FontFamily.HELVETICA, 12, Font.NORMAL);
 
 		document.add(generateHeader());
 		document.add(Chunk.NEWLINE);
+		
+		if(includeBudget)
+		{
+			Font fontGreen = new Font(FontFamily.HELVETICA, 12, Font.NORMAL, new BaseColor(36, 122, 45));
+			Font fontRed = new Font(FontFamily.HELVETICA, 12, Font.NORMAL, BaseColor.RED);
+			Font fontBlack = new Font(FontFamily.HELVETICA, 12, Font.BOLD);
+			document.add(new Paragraph("Budget", headerFont));
+			document.add(Chunk.NEWLINE);
+			document.add(new Paragraph("Einnahmen: " + Helpers.getCurrencyString(budget.getIncomeSum(), currency), fontGreen));
+			document.add(new Paragraph("Ausgaben: " + Helpers.getCurrencyString(budget.getPaymentSum(), currency), fontRed));
+			document.add(new Paragraph("Restbudget: " + Helpers.getCurrencyString(budget.getIncomeSum()-budget.getPaymentSum(), currency), fontBlack));			
+			document.add(Chunk.NEWLINE);
+		}
+		
+		document.add(new Paragraph("Buchungsübersicht", headerFont));
+		document.add(Chunk.NEWLINE);
 
 		if(splitTable)
 		{
-			document.add(new Paragraph("Einnahmen", paragraphFont));
+			document.add(new Paragraph("Einnahmen", smallHeaderFont));
 			document.add(Chunk.NEWLINE);
 			PdfPTable table = generateTable(100, AmountType.INCOME);
 			if(table != null)
@@ -162,7 +190,7 @@ public class ReportGenerator
 			}
 
 			document.add(Chunk.NEWLINE);
-			document.add(new Paragraph("Ausgaben", paragraphFont));
+			document.add(new Paragraph("Ausgaben", smallHeaderFont));
 			document.add(Chunk.NEWLINE);
 			table = generateTable(100, AmountType.PAYMENT);
 			if(table != null)
@@ -182,7 +210,7 @@ public class ReportGenerator
 		if(includeCategoryBudgets)
 		{
 			document.add(Chunk.NEWLINE);
-			document.add(new Paragraph("Verbrauch nach Kategorien", paragraphFont));
+			document.add(new Paragraph("Verbrauch nach Kategorien", headerFont));
 			document.add(Chunk.NEWLINE);
 			PdfPTable table = generateCategoryBudgets();
 			if(table != null)
@@ -244,8 +272,8 @@ public class ReportGenerator
 					name = "Keine Kategorie";
 				}			
 				return name;
-			case DATE:
-				return reportItem.getDate();
+			case DATE:			    
+				return DateTime.parse(reportItem.getDate(), DateTimeFormat.forPattern("YYYY-MM-dd")).toString("dd.MM.YYYY");
 			case DESCRIPTION:
 				return reportItem.getDescription();
 			case NAME:
diff --git a/src/de/deadlocker8/budgetmaster/main/_de.properties b/src/de/deadlocker8/budgetmaster/main/_de.properties
index d82abed3111911a5cf8458a12db8f1427b0437b9..fd5fb2a3405a5283d60152c08e6be9359c0b0961 100644
--- a/src/de/deadlocker8/budgetmaster/main/_de.properties
+++ b/src/de/deadlocker8/budgetmaster/main/_de.properties
@@ -1,7 +1,7 @@
 app.name=BudgetMaster
-version.code=4
-version.name=1.3.0
-version.date=10.08.17
+version.code=5
+version.name=1.3.1
+version.date=12.08.17
 author=Robert Goldmann
 
 folder=Deadlocker/BudgetMaster
diff --git a/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java b/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
index 4790ea4e2a084fb0a68e878ac533fca679e01494..9d48523978f3db1faf0859d6fa2054c0387a4510 100644
--- a/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
+++ b/src/de/deadlocker8/budgetmaster/ui/controller/ReportController.java
@@ -9,6 +9,9 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.Optional;
 
+import org.joda.time.DateTime;
+
+import de.deadlocker8.budgetmaster.logic.Budget;
 import de.deadlocker8.budgetmaster.logic.FilterSettings;
 import de.deadlocker8.budgetmaster.logic.Payment;
 import de.deadlocker8.budgetmaster.logic.RepeatingPaymentEntry;
@@ -60,6 +63,7 @@ public class ReportController implements Refreshable
 	@FXML private AnchorPane anchorPaneMain;
 	@FXML private Label labelPayments;
 	@FXML private Label labelFilterActive;
+	@FXML private CheckBox checkBoxIncludeBudget;
 	@FXML private CheckBox checkBoxSplitTable;
 	@FXML private CheckBox checkBoxIncludeCategoryBudgets;
 	@FXML private Button buttonFilter;
@@ -85,6 +89,7 @@ public class ReportController implements Refreshable
 		labelFilterActive.setStyle("-fx-text-fill: " + controller.getBundle().getString("color.text"));
 		buttonFilter.setStyle("-fx-background-color: #2E79B9; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;");
 		buttonGenerate.setStyle("-fx-background-color: #2E79B9; -fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 16;");
+		checkBoxIncludeBudget.setStyle("-fx-text-fill: " + controller.getBundle().getString("color.text") + "; -fx-font-size: 14;");
 		checkBoxSplitTable.setStyle("-fx-text-fill: " + controller.getBundle().getString("color.text") + "; -fx-font-size: 14;");
 		checkBoxIncludeCategoryBudgets.setStyle("-fx-text-fill: " + controller.getBundle().getString("color.text") + "; -fx-font-size: 14;");
 
@@ -522,19 +527,31 @@ public class ReportController implements Refreshable
 			fileChooser.setInitialDirectory(reportPath.getParentFile());
 			fileChooser.setInitialFileName(reportPath.getName());
 		}
+		else
+		{
+		    DateTime currentDate = controller.getCurrentDate();
+		    String currentMonth = currentDate.toString("MMMM");
+		    String currentYear = currentDate.toString("YYYY");
+		    fileChooser.setInitialFileName("BudgetMaster Monatsbericht - " + currentMonth + " " + currentYear + ".pdf");
+		}
 		fileChooser.getExtensionFilters().add(extFilter);
 		File file = fileChooser.showSaveDialog(controller.getStage());		
 		if(file != null)
 		{		
 			reportPath = file;
+			
+			Budget budget = new Budget(controller.getPaymentHandler().getPayments());		
+			
 			ReportGenerator reportGenerator = new ReportGenerator(new ArrayList<ReportItem>(tableView.getItems()),
 																controller.getCategoryBudgets(),
 																columnOrder,
+																checkBoxIncludeBudget.isSelected(),
 																checkBoxSplitTable.isSelected(), 
 																checkBoxIncludeCategoryBudgets.isSelected(),																
 																file,
 																controller.getSettings().getCurrency(),
-																controller.getCurrentDate());
+																controller.getCurrentDate(),
+																budget);
 			
 			Stage modalStage = Helpers.showModal("Vorgang läuft", "Der Monatsbericht wird erstellt, bitte warten...", controller.getStage(), controller.getIcon());
 
diff --git a/src/de/deadlocker8/budgetmaster/ui/fxml/ReportTab.fxml b/src/de/deadlocker8/budgetmaster/ui/fxml/ReportTab.fxml
index ab291d65658415d00f20767d52e55fdb8d82a51b..35239f67f597ccd7771823c28e4fed449228c04d 100644
--- a/src/de/deadlocker8/budgetmaster/ui/fxml/ReportTab.fxml
+++ b/src/de/deadlocker8/budgetmaster/ui/fxml/ReportTab.fxml
@@ -39,6 +39,7 @@
                <children>
                   <VBox spacing="10.0">
                      <children>
+                        <CheckBox fx:id="checkBoxIncludeBudget" mnemonicParsing="false" text="Budgetkalkulation hinzufügen" />
                         <CheckBox fx:id="checkBoxSplitTable" mnemonicParsing="false" text="Einnahmen und Ausgaben als getrennte Tabellen" />
                         <CheckBox fx:id="checkBoxIncludeCategoryBudgets" mnemonicParsing="false" text="Verbrauch nach Kategorien hinzufügen" />
                      </children>
diff --git a/src/de/deadlocker8/budgetmasterserver/main/_de.properties b/src/de/deadlocker8/budgetmasterserver/main/_de.properties
index 713a76327463db483cc54898db38106a16685244..cc0a0ccf45be1d7000a5eb8be6afcf220a9ae49c 100644
--- a/src/de/deadlocker8/budgetmasterserver/main/_de.properties
+++ b/src/de/deadlocker8/budgetmasterserver/main/_de.properties
@@ -1,5 +1,5 @@
 app.name=BudgetMasterServer
-version.code=4
-version.name=1.3.0
-version.date=10.08.17
+version.code=5
+version.name=1.3.1
+version.date=12.08.17
 author=Robert Goldmann
\ No newline at end of file