首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用Scheme创建自定义GnuCash报告

Scheme (语言):

Scheme 是一种通用、过程式、动态类型的编程语言。它于20世纪中叶由数学家和计算机科学家肯尼斯·立诺夫斯基(Kenneth E. Iverson)创建,并以美国数理逻辑学家库尔特·哥德尔(Kurt Gödel)命名的。Scheme 最初应用于人工智能(AI)和符号计算领域,现已成为计算机教育的基本语言之一。

创建自定义 GnuCash 报告:

要在 GNU Cash 中创建自定义报告,您需要安装并使用 Scheme 环境。以下是创建自定义 GnuCash 报告的简短步骤。

  1. 安装 Scheme 环境:

您可以通过包管理器在大多数平台上安装 Scheme(如 GnuCash 8)。

代码语言:txt
复制
$ sudo apt update
$ sudo apt install gnucash-scheme
  1. 登录到 GnuCash:

打开终端,然后登录到您的 GnuCash 数据库中。

代码语言:txt
复制
$ gnucash
  1. 导入方案环境:

要在 GnuCash 中使用 Scheme 编写自定义报告,首先打开 扩展设置 > Scheme 脚本扩展。在 添加 菜单中,您需要确保导入正确的 Scheme 脚本。例如,如果您要引入 Basic Scheme 脚本,请输入以下内容:

代码语言:scheme
复制
#lang basic
  1. 创建自定义报告:

接下来,你可以根据需求设置一个简单的自定义报告。例如,创建一个包含账户和总金额的报告。

代码语言:scheme
复制
#+BEGIN_CENTER
#+BIND:scheme_report
#+BEGIN_ARTICLE
| Account Name  |  Value   |
|-------------|---------|
| account-name  |    total |
|  balance      |    other |
#+END_ARTICLE#BIND:scheme_report
#+END_CENTER
  1. 保存并在报表中应用自定义报告

编辑完成自定义报告后,将其另存为一个 .scm 文件。您也可以将 .scm 文件关联到 GnuCash 中的某个报表,以便在报表中使用自定义报告。

代码语言:lua
复制
# 保存并替换文件名为您选择的文件名
(with-syntax-tables ((standard (copy get-standard-scheme-tables)))
  (write-file "./report/myCustomReports.scm")(current-time))

# 设置关联报告
(set-file-association "./report/*.scm" "custom_report")
  1. 运行报表:

现在,报表的选项中将显示您刚才创建的自定义报告。如有需要,您可以编辑报告和报告选项以使用其他报告模板、设置或筛选器。

总之,使用 Scheme 可以帮助您创建自定义 GnuCash 报告,并增强 GnuCash 作为会计系统的灵活性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

GnuCash:一个强大的开源会计软件

GnuCash: 自由开源的会计软件 image.png GnuCash 是一款为专业需求量身定做的免费会计软件,可以追踪交易、股票等。...虽然刚开始使用可能会让人不知所措,但对于管理个人交易而言很容易使用。在你开始管理一个账户,并添加交易后,你可以得到一个详细的报告。...有税务支持的小企业会计(如印度的商品和服务税) 详细的分类报告 便于分析的图表 支持财务计算 自动保存功能 彩色编码 网上银行向导 日志 贷款还款计算器 用于快速计算的价格数据库 每个类别的预算平衡表...image.png 在 Linux 上安装 GnuCash 你可以在你的 Linux 发行版的软件中心找到 GnuCash。从那里安装或使用发行版的软件包管理器。...对于那些想要最新版本的人来说,还可以使用 Flatpak 包。如果你不知道它,我建议你去看看我们的 Flatpak 指南。

1.3K20
  • 使用 key paths 创建自定义查询函数

    前言 作为一个相当严格,静态编译的语言,Swift 可能不会在语法自定义方面提供许多渠道,但这实际上确正好相反。...通过如何在 Swift 中自定义操作符,Swift 中 key paths 的能力,函数/结果构建器 等功能,我们有很多机会为特定用例进行调整 Swift 的语法。...—如果我们想创建包含所有未读文章的类似过滤的数组,那么我们必须使用闭包(或 传入一个函数[1])代替: let unreadArticles = articles.filter { !...“ 这就是语法自定义的概念进来的地方。通过实现以下前缀函数,我们实际上可以创建一个小小的调整,这将让我们不用担心 true 或 false 的使用 key paths: prefix func !...的比较轻松过滤任何集合,如下所示: let fullLengthArticles = articles.filter(\.category == .fullLength) 结语 Swift 让我们通过几个轻量级重载轻松创建上述功能的事实是非常棒的或令人难以置信的

    2K30

    使用 key paths 创建自定义查询函数

    作为一个相当严格,静态编译的语言,Swift可能不会在语法自定义方面提供许多渠道,但这实际上确正好相反。...通过自定义和重载运算符,key paths,函数/结果构建器 等功能,我们有很多机会为特定用例进行调整 Swift 的语法。...] = ... let readArticles = articles.filter(\.isRead) 这真的是非常好,但是,只有在我们想要与true比较时才能使用以上语法 ——如果我们想创建包含所有未读文章的类似过滤的数组...“ 这就是语法自定义的概念进来的地方。通过实现以下前缀函数,我们实际上可以创建一个小小的调整,这将让我们不用担心 true 或 false 的使用key paths: prefix func !...的比较轻松过滤任何集合,如下所示: let fullLengthArticles = articles.filter(\.category == .fullLength) 结语 Swift让我们通过几个轻量级重载轻松创建上述功能的事实是非常棒的或令人难以置信的

    1.3K10

    Python基础:创建使用自定义模块

    然而,也可以用Python编写自己的自定义模块。 创建自定义Python模块 要在Python中创建自定义模块,所需做的是创建一个新的Python文件。...要使用自定义Python模块,Python解释器应该能够访问包含自定义模块的Python文件。有三个位置可以保存包含自定义模块的Python文件,以便Python解释器可以访问它。...导入同一目录中的自定义模块 在你创建的newmodule.py文件相同的目录中创建另一个名为mainfile.py的文件。 要导入自定义模块,可以使用import语句后跟模块名称。...使用Python文件newmodule2.py创建另一个模块。该文件包含一个方法find_sqrt(),如下所示。...sqrt16 = newmodule.find_sqrt(16) print(sqrt16) prod85 =newmodule3.find_product(8,5) print(prod85) 将经常使用的函数存储在它们自己的自定义模块中是一种很好的做法

    1.2K40

    使用JaCoCo Maven插件创建代码覆盖率报告

    这篇博客文章描述了我们如何使用JaCoCo Maven插件为单元和集成测试创建代码覆盖率报告。 我们的构建要求如下: 运行测试时,我们的构建必须为单元测试和集成测试创建代码覆盖率报告。...代码覆盖率报告必须在单独的目录中创建。换句话说,必须将用于单元测试的代码覆盖率报告创建到与用于集成测试的代码覆盖率报告不同的目录中。让我们开始吧。...运行单元测试后,第二次执行将为单元测试创建代码覆盖率报告。...创建一个执行,该执行在集成测试运行后为集成测试创建代码覆盖率报告。...让我们看看如何为单元测试和集成测试创建代码覆盖率报告。 此博客文章的示例应用程序具有三个构建配置文件,下面对此进行了描述: 在开发配置文件开发过程中使用,这是我们构建的默认配置文件。

    1.9K20

    2016年十大顶级开源项目

    GnuCash ? GnuCash 是一个跨平台的开源桌面应用,它可以用来管理个人和小型商业账户。...Jason Baker 把 GnuCash 列入了我们针对个人金融的 Mint 和 Quicken 的开源替代品的综述列表中: GnuCash “具有多项记账的特性,能从多种格式导入数据,处理多重汇率...,为你创建预算,打印支票,创建定制计划报告,并且能够直接从网上银行导入和拉取股票行情。”...尽管今年我们没有深入地报道 Kodi, 但依旧出现在许多关于创建一个家用 Linux 音乐服务器、媒体管理工具的文章中,还出现在之前的一个关于最喜爱的开源视频播放器的投票中(如果你在家中使用 Kodi,...尽管潜在用户在尝试亲自构建或使用该系统前应该小心地测试该项目并和他们的健康护理医生讨论,但该项目的创建者希望开放技术能够加速医疗设备行业的研究和开发步伐,从而发现新的治疗方案并更快的投入市场。”

    1.6K30

    在Hypermesh中使用Hyperbeam创建自定义梁截面

    在Hypermesh中进入HyperBeam面板,HyperBeam提供了两种创建梁截面的方法:shell section和solid section,分别用来创建壳单元梁和实体梁。...本文以壳单元梁为例,选择shellsection子面板,在lines中选择用来创建梁截面的几何线,把section base node切换为shear center(剪切中心的概念是:当载荷作用线通过该点时梁截面不会发生扭转...,本例所创建的梁截面根据剪切中心进行定位),其他保持默认值,单击create打开HyperBeam窗口。...自定义截面创建完成后,即可将梁截面关联到一维梁单元的单元属性中。 在Hypermesh中使用linemesh创建梁单元时还可以在面板中指定梁单元的方向和偏置。...在直接使用两个节点创建梁单元时,hypermesh hyperbeam不仅可以指定梁单元的方向和偏置,和可以指定梁单元的平动和转动属性,如下图所示,创建面板中有pins a和pins b选项,“pin”

    4.3K40

    使用 Kubebuilder 创建自定义 K8s AdmissionWebhooks

    使用 Kubebuilder 创建自定义 K8s AdmissionWebhooks Kubebuilder 除了可以构建 CRD API 及其 Controller 之外,还能构建 AdmissionWebhooks...先说场景,如果我们需要在 pod 创建出来之前,对其进行配置修改或者检查,这部分工作如果放在 ApiServer 里,需要管理员在 ApiServer 中将其编译成二进制文件,如果配置修改想做成自定义的形式会非常麻烦...创建自定义 AdmissionWebhooks 这里使用一个简单的场景做一个演示,我们自定义一个名为 App 资源,当用户创建一个 App 实例时,我们根据用户的描述创建出一个 Deployment。...然后我们添加一个 MutatingAdmissionWebhook,当用户通过 App 创建 Deployment 时,自动添加一个 sidecar 容器到 Pod 中(这里使用 nginx 作为 sidecar...Controller 的 Reconcile 函数后,使 Kubebuilder 重新生成代码,并将 config/crd 下的 CRD yaml 应用到当前集群: make make install 创建

    2.1K30

    使用VUE组件创建SpreadJS自定义单元格(二)

    在上篇中,我们介绍了如何通过设置runtimeCompiler为true,在Vue中实现了动态创建电子表格组件。想了解具体内容可看点击查看使用VUE组件创建SpreadJS自定义单元格(一)。...但是在实际场景中,我们可能只需要动态创建VUE组件,而组件的template内容并不需要动态加载。面对这种情况, autoComplete就是一个很典型使用场景。...而现在想在纯前端表格中实现这一功能,我们就可以将动态创建的Component固化,按需import 然后挂载即可。 这样就简化了我们在上篇中提到的,需要开启runtimeCompiler来实现了。...这系列两篇文章详细为大家介绍使用两种不同的方式,解决由于框架生命周期以及自定义单元格渲染逻辑的问题,目前无法直接在框架页面下直接通过template的方式使用框架下的组件的问题。...而我们使用Vue顺利解决了这个问题,并在第二种方式中进行了优化,有效提高代码的易维护性。

    55820

    如何使用Vue 3创建可重用的自定义组件

    Vue 3还提供了一些新的API,其中包括Composition API,它使开发人员能够更轻松地创建可重用的自定义组件。...在本文中,我们将探讨如何使用Vue 3的Composition API创建可重用的自定义组件。.../App.vue'; const app = createApp(App); app.mount('#app'); 现在我们可以创建我们的第一个自定义组件。...使用Vue 3的Composition API,我们可以更轻松地创建可重用的自定义组件,并更好地组织和维护我们的代码。 接下来,我们将深入探讨Composition API的一些更高级功能。...首先是使用computed函数创建计算属性。计算属性是根据其他响应式状态变量计算得出的值,当这些状态变量发生变化时,计算属性也会自动更新。

    91600

    使用VUE组件创建SpreadJS自定义单元格(一)

    除了以表格的形式展示数据,电子表格还有一个非常重要的功能,即支持自定义功能拓展和各种定制化的数据展示效果,比如checkbox,Radio button等;还需要实现当单元格进入编辑状态时,使用下拉菜单...在之前的内容中,我们提到了可以使用Svelte使用Web Conmponents封装其他组件可以使用的组件。...除了上面提到的方法之外,我们如果想在Vue环境下使用自定义单元格,可以考虑使用持动态渲染的方式来创建和挂载组件,从而将组件注入自定义单元格。...下面为大家演演示如何在VUE项目中,创建一个使用VUE 组件的自定义单元格。...1、自定义的元素,需要添加gcUIElement属性,如果元素或者其父元素没有该属性,点击创建的组件便会直接退出编辑状态无法编辑。

    1.3K20

    从零到一:SpringBoot自定义条件注解的创建使用

    从上面的分析中我们可以发现,自定义条件注解主要分为两步: 自定义一个条件注解,该注解要被@Conditional() 注解标记。 写一个自定义条件注解的实现类。...SpringBootCondition 是 Condition接口的实现并进行了封装,推荐使用SpringBootCondition ,当然,如果自定义条件注解的实现类已经有父类,使用 Condition...其实还有一种选择那就是实现 ConfigurationCondition ,它继承了Condition接口,并在其基础上增加了一些针对配置类的条件判断方法,使用它也可以实现自定义条件注解,下篇文章将介绍一下...Bean接口及实现类 创建一个BrotherRoosterSkill接口,用于测试条件注解,然后分别创建3个实现类:篮球技能BrotherRoosterSkillBasketball、rap技能 BrotherRoosterRap...public void printSkill() { System.out.println("唱跳"); } } 新建配置注入技能包的Bean 创建

    30010

    使用 Jetpack 卡片库在 Wear OS by Google 谷歌上创建自定义卡片

    开发者可以使用该库在 Wear OS 智能手表上创建自定义卡片。我们将在今年晚些时候推出相应的 Wear OS 平台更新,届时用户便能使用此类自定义卡片。...image.png 开始构建 卡片使用 Android Studio 构建,是 Wear OS 应用的一部分。...wear-tiles:1.0.0-alpha01" debugImplementation "androidx.wear:wear-tiles-renderer:1.0.0-alpha01" } 第一个依赖项包含创建卡片所需的库...您可以使用多个 TimelineEntry 实例来为 不同的时间点 渲染不同的布局。 onResourcesRequest() 则用于传递渲染卡片所需的所有资源。...创建一个简单的 Activity 来预览卡片。将此 Activity 添加到 src/debug 中而不是 src/main 中,因为此 Activity 仅用于调试/预览。

    80620

    【快学springboot】10.使用@Async注解创建多线程,自定义线程池

    说明 使用@Async注解创建多线程非常的方便,还可以通过配置,实现线程池。比直接使用线程池简单太多。而且在使用上跟普通方法没什么区别,加上个@Async注解即可实现异步调用。...(InterruptedException e) { e.printStackTrace(); } LOG.info("多线程注册成功"); } } 复制代码 这里只是做一个简单地打印输出,使用...i < 10; i++) { asyncTask.register(); } System.out.println("主线程结束"); return "OK"; } } 复制代码 这里循环创建...另外通过查看线程名,可以看到创建了10个线程去执行。 ---- 使用线程池 通过上面的结果可以看出,直接使用@Async注解是直接创建线程去执行的。...但是在实际开发中,都应该使用线程池去管理线程,节省线程开销。

    1.2K21
    领券