How to using to code import to GL journal[AX2012]
- static void THK_importLedgerJournalTrans(Args _args)
- {
- Filename fileName = "C:\\Users\\ksiu3880\\Desktop\\GL Journal test.xlsx";
- LedgerJournalId ledgerJournalId = "000425_010";
- Name nameDimensionAttribute1 = "Department";
- Name nameDimensionAttribute2 = "CostCenter";
- Name nameDimensionAttribute3 = "ExpensePurpose";
- LedgerJournalTrans_Asset ledgerJournalTrans_Asset;
- AxLedgerJournalTable axLedgerJournalTable;
- AxLedgerJournalTrans axLedgerJournalTrans;
- DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;
- SysExcelApplication application = SysExcelApplication::construct();
- SysExcelWorkbooks workbooks = application.workbooks();
- SysExcelWorkbook workbook;
- SysExcelWorksheets worksheets;
- SysExcelWorksheet worksheet;
- SysExcelCells cells;
- COMVariantType type;
- TransDate transDate;
- LedgerJournalACType ledgerJournalACType, ledgerJournalACTypeOffset;
- MainAccountNum mainAccountNum, mainAccountNumOffset;
- DimensionValue dimensionValue1, dimensionValue2, dimensionValue3;
- LedgerJournalTransTxt ledgerJournalTransTxt;
- CurrencyCode currencyCode;
- AmountCur amountCur;
- ExchRate exchRate, exchRateSecond;
- InvoiceId invoiceId;
- DocumentDate documentDate;
- DueDate dueDate;
- PaymTermId paymTermId;
- AssetTransTypeJournal assetTransTypeJournal;
- AssetBookIdPurchSalesInvent assetBookIdPurchSalesInvent;
- container con, conOffset;
- int numOfDimension;
- int row = ;
- setPrefix("THK_importLedgerJournalTrans");
- try
- {
- if (!LedgerJournalTable::checkExist(ledgerJournalId))
- throw Exception::Error;
- workbooks.open(fileName);
- workbook = workbooks.item();
- worksheets = workbook.worksheets();
- worksheet = worksheets.itemFromNum();
- cells = worksheet.cells();
- ttsBegin;
- do
- {
- row++;
- print row;
- setPrefix(strFmt("Row %1", row));
- transDate = cells.item(row, ).value().date();
- mainAccountNum = strLRTrim(cells.item(row, ).value().bStr());
- dimensionValue1 = strLRTrim(cells.item(row, ).value().bStr());
- dimensionValue2 = strLRTrim(cells.item(row, ).value().bStr());
- dimensionValue3 = strLRTrim(cells.item(row, ).value().bStr());
- ledgerJournalTransTxt = strLRTrim(cells.item(row, ).value().bStr());
- currencyCode = strLRTrim(cells.item(row, ).value().bStr());
- amountCur = cells.item(row, ).value().double();
- exchRate = cells.item(row, ).value().double();
- exchRateSecond = cells.item(row, ).value().double();
- invoiceId = strLRTrim(cells.item(row, ).value().bStr());
- documentDate = cells.item(row, ).value().date();
- dueDate = cells.item(row, ).value().date();
- paymTermId = strLRTrim(cells.item(row, ).value().bStr());
- assetBookIdPurchSalesInvent = strLRTrim(cells.item(row, ).value().bStr());
- mainAccountNumOffset = strLRTrim(cells.item(row, ).value().bStr());
- switch (strLRTrim(cells.item(row, ).value().bStr()))
- {
- case "Bank": ledgerJournalACType = ledgerJournalACType::Bank; break;
- case "Customer": ledgerJournalACType = ledgerJournalACType::Cust; break;
- case "Fixed Assets": ledgerJournalACType = ledgerJournalACType::FixedAssets; break;
- case "Ledger": ledgerJournalACType = ledgerJournalACType::Ledger; break;
- case "Project": ledgerJournalACType = ledgerJournalACType::Project; break;
- case "Vendor": ledgerJournalACType = ledgerJournalACType::Vend; break;
- default: ledgerJournalACType = ledgerJournalACType::Ledger; break;
- }
- switch (strLRTrim(cells.item(row, ).value().bStr()))
- {
- case "Acquisition": assetTransTypeJournal = AssetTransTypeJournal::Acquisition; break;
- case "Acquisition Adjustment": assetTransTypeJournal = AssetTransTypeJournal::AcquisitionAdj; break;
- default: assetTransTypeJournal = AssetTransTypeJournal::Acquisition; break;
- }
- switch (strLRTrim(cells.item(row, ).value().bStr()))
- {
- case "Bank": ledgerJournalACTypeOffset = ledgerJournalACType::Bank; break;
- case "Customer": ledgerJournalACTypeOffset = ledgerJournalACType::Cust; break;
- case "Fixed Assets": ledgerJournalACTypeOffset = ledgerJournalACType::FixedAssets; break;
- case "Ledger": ledgerJournalACTypeOffset = ledgerJournalACType::Ledger; break;
- case "Project": ledgerJournalACTypeOffset = ledgerJournalACType::Project; break;
- case "Vendor": ledgerJournalACTypeOffset = ledgerJournalACType::Vend; break;
- default: ledgerJournalACTypeOffset = ledgerJournalACType::Ledger; break;
- }
- axLedgerJournalTrans = new AxLedgerJournalTrans();
- con = [mainAccountNum, mainAccountNum];
- conOffset = [mainAccountNumOffset, mainAccountNumOffset];
- dimensionAttributeValueSetStorage = new DimensionAttributeValueSetStorage();
- numOfDimension = ;
- if (dimensionValue1)
- {
- con += [nameDimensionAttribute1, dimensionValue1];
- conOffset += [nameDimensionAttribute1, dimensionValue1];
- numOfDimension ++;
- dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute1), dimensionValue1));
- }
- if (dimensionValue2)
- {
- con += [nameDimensionAttribute2, dimensionValue2];
- conOffset += [nameDimensionAttribute2, dimensionValue2];
- numOfDimension ++;
- dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute2), dimensionValue2));
- }
- if (dimensionValue3)
- {
- con += [nameDimensionAttribute3, dimensionValue3];
- conOffset += [nameDimensionAttribute3, dimensionValue3];
- numOfDimension ++;
- dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute3), dimensionValue3));
- }
- con = conIns(con, , numOfDimension);
- conOffset = conIns(conOffset, , numOfDimension);
- axLedgerJournalTrans.parmJournalNum(ledgerJournalId);
- axLedgerJournalTrans.parmTransDate(transDate);
- axLedgerJournalTrans.parmAccountType(ledgerJournalACType);
- axLedgerJournalTrans.parmLedgerDimension(AxdDimensionUtil::getMultiTypeAccountId(enumNum(LedgerJournalACType), ledgerJournalACType, con));
- axLedgerJournalTrans.parmTxt(ledgerJournalTransTxt);
- axLedgerJournalTrans.parmCurrencyCode(currencyCode);
- axLedgerJournalTrans.parmExchRate(exchRate * );
- axLedgerJournalTrans.parmPaymId(num2str(exchRateSecond, , , , ));
- axLedgerJournalTrans.parmInvoice(invoiceId);
- axLedgerJournalTrans.parmDocumentDate(documentDate);
- axLedgerJournalTrans.parmDue(dueDate);
- axLedgerJournalTrans.parmPayment(paymTermId);
- if (ledgerJournalACType != LedgerJournalACType::Ledger)
- axLedgerJournalTrans.parmDefaultDimension(dimensionAttributeValueSetStorage.save());
- if (amountCur >= )
- axLedgerJournalTrans.parmAmountCurDebit(amountCur);
- else
- axLedgerJournalTrans.parmAmountCurCredit(-amountCur);
- if (mainAccountNumOffset)
- {
- axLedgerJournalTrans.parmOffsetAccountType(ledgerJournalACTypeOffset);
- axLedgerJournalTrans.parmOffsetLedgerDimension(AxdDimensionUtil::getMultiTypeAccountId(enumNum(LedgerJournalACType), ledgerJournalACTypeOffset, conOffset));
- if (ledgerJournalACTypeOffset != LedgerJournalACType::Ledger)
- axLedgerJournalTrans.parmOffsetDefaultDimension(dimensionAttributeValueSetStorage.save());
- }
- axLedgerJournalTrans.save();
- if (axLedgerJournalTrans.ledgerJournalTrans().isFixedAssetsTransaction())
- {
- ledgerJournalTrans_Asset.clear();
- ledgerJournalTrans_Asset.initValue();
- ledgerJournalTrans_Asset.RefRecId = axLedgerJournalTrans.ledgerJournalTrans().RecId;
- ledgerJournalTrans_Asset.AssetId = axLedgerJournalTrans.ledgerJournalTrans().getAssetId();
- ledgerJournalTrans_Asset.Company = axLedgerJournalTrans.ledgerJournalTrans().getAssetCompany();
- ledgerJournalTrans_Asset.TransType = assetTransTypeJournal;
- ledgerJournalTrans_Asset.BookId = assetBookIdPurchSalesInvent;
- if (!ledgerJournalTrans_Asset.validateWrite())
- throw Exception::Error;
- ledgerJournalTrans_Asset.insert();
- }
- type = cells.item(row + , ).value().variantType();
- }
- while (type != COMVariantType::VT_EMPTY);
- ttsCommit;
- }
- catch (Exception::Error)
- {
- }
- application.quit();
- }
How to using to code import to GL journal[AX2012]的更多相关文章
- How to using x++ code create GL journal[AX2012]
static void FAN_GLImport(Args _args) { AxLedgerJournalTable header = new AxLedgerJournalTable(); AxL ...
- R12: Improving Performance of General Ledger and Journal Import (Doc ID 858725.1 )
In this Document Purpose Scope Details A) Database Init.ora Parameters B) Concurrent Progr ...
- spring源码分析之@ImportSelector、@Import、ImportResource工作原理分析
1. @importSelector定义: /** * Interface to be implemented by types that determine which @{@link Config ...
- Python on VS Code
install python extension Press F1, and input "ext install python". Then the icon at the le ...
- 小白的Python之路 day5 python模块详解及import本质
一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块 ...
- Spring注解之@Import
/** * Indicates one or more {@link Configuration @Configuration} classes to import. * 表示import 一个或多个 ...
- python标准库介绍——30 code 模块详解
==code 模块== ``code`` 模块提供了一些用于模拟标准交互解释器行为的函数. ``compile_command`` 与内建 ``compile`` 函数行为相似, 但它会通过测试来保证 ...
- ES6中的import与export对class操作相关用法举例
两种用法: 一.指定输出类名 // export 输出 export class App extends React.Componet { // ..code } // import 引入 impor ...
- 6 Easy Steps to Learn Naive Bayes Algorithm (with code in Python)
6 Easy Steps to Learn Naive Bayes Algorithm (with code in Python) Introduction Here’s a situation yo ...
随机推荐
- mysql设置定时任务
–查看时间调度器是否开启 SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; –开启时间调度器 SET GLOBAL ev ...
- 什么是条带化(striping) ?(转载)
条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法.简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法. 许多情况下,这是通过硬件控制器来完成的. ...
- 在 Angular 中实现搜索关键字高亮
在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...
- Solum入门知识(编辑中)
概要 参考:https://wiki.openstack.org/wiki/Solum An OpenStack project designed to make cloud services eas ...
- socket学习笔记——select与epoll函数的使用(linux)
select.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <u ...
- POJ2001-Shortest Prefixes-Trie树应用
沉迷WOW又颓了两天orz,暴雪爸爸要在国服出月卡了...这是要我好好学习吗?赶紧来刷题了... OJ:http://poj.org/problem?id=2001 题目大意是求所有字符串里每一个字符 ...
- SQL to_char,to_date日期字符串转换问题
1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...
- 学习练习 java 集合
将1—100之间的所有正整数存放在一个List集合中,并将集合中索引位置是10的对象从集合中移除 package com.hanqi; import java.util.*; public class ...
- JDBC链接MySQL和Oracle
import java.sql.*; JDBC中所要用的包几乎都在import?java.sql.*;中: 在项目中导入Oracel或者是MySQL包和装载驱动: 项目的Cla ...
- __main__:1: Warning: Unknown table 'employ' 0L
__main__:1: Warning: Unknown table 'employ' 0L from warnings import filterwarnings import MySQLdb fi ...