[Gnucash-changes] r13165 - gnucash/trunk/src/gnome-utils - Add two
columns to the Accounts page: "Total (Period)" & "Balance (Period)"
Chris Shoemaker
chris at cvs.gnucash.org
Wed Feb 8 23:53:43 EST 2006
Author: chris
Date: 2006-02-08 23:53:43 -0500 (Wed, 08 Feb 2006)
New Revision: 13165
Trac: http://svn.gnucash.org/trac/changeset/13165
Modified:
gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
Log:
Add two columns to the Accounts page: "Total (Period)" & "Balance (Period)"
These are the recursive and non-recursive, respectively, period balances,
where the accounting period is specified in the preferences.
Modified: gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c 2006-02-09 04:41:42 UTC (rev 13164)
+++ gnucash/trunk/src/gnome-utils/gnc-tree-view-account.c 2006-02-09 04:53:43 UTC (rev 13165)
@@ -45,6 +45,7 @@
#include "gnc-icons.h"
#include "gnc-ui-util.h"
#include "dialog-utils.h"
+#include "window-main-summarybar.h"
#define SAMPLE_ACCOUNT_VALUE "$1,000,000.00"
@@ -337,7 +338,46 @@
return 1;
}
+#define RECURSE GINT_TO_POINTER(1)
+static void
+cdf_period(GtkTreeViewColumn *col, GtkCellRenderer *cell,
+ GtkTreeModel *s_model, GtkTreeIter *iter, gpointer data)
+{
+ Account *acct;
+ time_t t1, t2;
+ const char *str;
+
+ g_return_if_fail(GTK_TREE_VIEW_COLUMN(col));
+ g_return_if_fail(GTK_CELL_RENDERER(cell));
+ g_return_if_fail(GTK_TREE_MODEL_SORT(s_model));
+
+ acct = gnc_tree_view_account_get_account_from_iter(s_model, iter);
+ t1 = gnc_main_window_summary_get_start();
+ t2 = gnc_main_window_summary_get_end();
+
+ if (t2 > t1) {
+ GValue *value;
+ gnc_numeric b1, b2, b3;
+ g_value_init (value, G_TYPE_STRING);
+
+ if (data == RECURSE) {
+ b1 = xaccAccountGetBalanceAsOfDateInCurrency(acct, t1, NULL, TRUE);
+ b2 = xaccAccountGetBalanceAsOfDateInCurrency(acct, t2, NULL, TRUE);
+ } else {
+ b1 = xaccAccountGetBalanceAsOfDate(acct, t1);
+ b2 = xaccAccountGetBalanceAsOfDate(acct, t2);
+ }
+ b3 = gnc_numeric_sub(b2, b1, GNC_DENOM_AUTO, GNC_HOW_DENOM_FIXED);
+ if (gnc_reverse_balance (acct))
+ b3 = gnc_numeric_neg (b3);
+
+ str = xaccPrintAmount(b3, gnc_account_print_info(acct, TRUE));
+
+ } else str = "";
+ g_object_set(cell, "text", str, NULL);
+}
+
/************************************************************/
/* New View Creation */
/************************************************************/
@@ -445,6 +485,17 @@
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_BALANCE,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_balance_value);
+
+ {
+ GtkTreeViewColumn *col = gnc_tree_view_add_numeric_column(
+ view, _("Balance (Period)"), "balance-period", SAMPLE_ACCOUNT_VALUE,
+ GNC_TREE_VIEW_COLUMN_DATA_NONE, GNC_TREE_VIEW_COLUMN_COLOR_NONE,
+ GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS, NULL);
+ GtkCellRenderer *cr = gnc_tree_view_column_get_renderer(col);
+ gtk_tree_view_column_set_cell_data_func(
+ col, cr, cdf_period, NULL, NULL);
+ }
+
gnc_tree_view_add_numeric_column(view, _("Cleared"), "cleared",
SAMPLE_ACCOUNT_VALUE,
GNC_TREE_MODEL_ACCOUNT_COL_CLEARED,
@@ -493,6 +544,16 @@
GNC_TREE_MODEL_ACCOUNT_COL_COLOR_TOTAL,
GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS,
sort_by_total_value);
+ {
+ GtkTreeViewColumn *col = gnc_tree_view_add_numeric_column(
+ view, _("Total (Period)"), "total-period", SAMPLE_ACCOUNT_VALUE,
+ GNC_TREE_VIEW_COLUMN_DATA_NONE, GNC_TREE_VIEW_COLUMN_COLOR_NONE,
+ GNC_TREE_VIEW_COLUMN_VISIBLE_ALWAYS, NULL);
+ GtkCellRenderer *cr = gnc_tree_view_column_get_renderer(col);
+ gtk_tree_view_column_set_cell_data_func(
+ col, cr, cdf_period, RECURSE, NULL);
+ }
+
priv->notes_column
= gnc_tree_view_add_text_column(view, _("Notes"), "notes", NULL,
"Sample account notes.",
More information about the gnucash-changes
mailing list