为了使用另一个软件包解决合并问题,我们使用 Invantive Control 将所有总帐交易行下载到 Excel 表中。在 Exact Online 中,我们对每家公司都有一个分类 2,其中包含客户的代码,例如“123400”。每个客户有多家公司。
我们从另一个电子表格中使用如下查询引用那些 GL 交易行:
SELECT `'Exact transacties$'`.Administratie, `'Exact transacties$'`.Jaar2, `'Exact transacties$'`.Periode, `'Exact transacties$'`.Grootboeknr, `'Exact transacties$'`.Grootboekomschr, `'Exact transacties$'`.Classificatie_code, `'Exact transacties$'`.Zoek_code, `'Exact transacties$'`.Dagboek, `'Exact transacties$'`.Valuta, `'Exact transacties$'`.Bedrag
FROM `'Exact transacties$'` `'Exact transacties$'`
ORDER BY `'Exact transacties$'`.Administratie, `'Exact transacties$'`.Jaar2, `'Exact transacties$'`.Grootboeknr
数据来源为:
DSN=Excel Files;DBQ=PATH\Databestand EOL (bestandsnaam niet wijzigen).xlsm;DefaultDir=PATH;DriverId=1046;MaxBufferSize=2048;PageTimeout=5;
但是,对客户所有公司的每个期间进行合并需要 30 分钟。大部分时间都花在了在 Exact Online 电子表格上执行查询数千次上,通过以下公式,该公式出现在大约 10 家公司 x 14 个期间 x 600 个类别 = 84,000 个单元格中:
=ALS(W$511<=Huidige_periode;V595+(-SOMMEN.ALS(Tabel_Query_van_Excel_Files_1[Bedrag];Tabel_Query_van_Excel_Files_1[Administratie];Cliëntnr_EOL1;Tabel_Query_van_Excel_Files_1[Jaar2];HuidigBoekjaar;Tabel_Query_van_Excel_Files_1[Periode];W$511;Tabel_Query_van_Excel_Files_1[Classificatie_code];$B595&"*";Tabel_Query_van_Excel_Files_1[Dagboek];"<900"));0)
我怎样才能将性能提高到一分钟以内?
答案1
虽然从技术和功能上来说是正确的,但您描述的方法有点慢,而且对 API 和 CPU 的要求较高。最好只从 Exact Online 检索总计余额,然后让它们完成繁重的工作。
例子:
选择合适的公司来请求以下数据:
use
select DIVISIONCLASSES_DIVISIONCLASSNAME_DIVISIONCLASSNAMES_ADMINISTRATION_CODE_ATTR
from AllAdministrationClassifications
where DIVISIONCLASSES_DIVISIONCLASSNAME_NUMBER_ATTR = 2
and CODE_ATTR = '123123' -- PUT HERE YOUR CLIENT CODE
SQL Server 以外的语句use
允许您指定多个分区(即 Exact Online 上的公司)。
然后获取每个总帐帐户、期间和部门的结果:
select BALANCE
, PERIODS_YEAR_YEARS_BALANCE_CODE_ATTR
, DIVISION_HID
, PERIODS_YEAR_REPORTINGYEAR_ATTR
, REPORTINGPERIOD_ATTR
from BalanceLinesPerPeriod
在我的设置中,检索 10 家大公司的合并金额大约需要 10 秒。
有一些可用的表格变体,如成本单位/成本中心和年度期初/期末余额。