1. static void THK_importLedgerJournalTrans(Args _args)
  2. {
  3. Filename fileName = "C:\\Users\\ksiu3880\\Desktop\\GL Journal test.xlsx";
  4.  
  5. LedgerJournalId ledgerJournalId = "000425_010";
  6. Name nameDimensionAttribute1 = "Department";
  7. Name nameDimensionAttribute2 = "CostCenter";
  8. Name nameDimensionAttribute3 = "ExpensePurpose";
  9.  
  10. LedgerJournalTrans_Asset ledgerJournalTrans_Asset;
  11.  
  12. AxLedgerJournalTable axLedgerJournalTable;
  13. AxLedgerJournalTrans axLedgerJournalTrans;
  14.  
  15. DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage;
  16.  
  17. SysExcelApplication application = SysExcelApplication::construct();
  18. SysExcelWorkbooks workbooks = application.workbooks();
  19. SysExcelWorkbook workbook;
  20. SysExcelWorksheets worksheets;
  21. SysExcelWorksheet worksheet;
  22. SysExcelCells cells;
  23.  
  24. COMVariantType type;
  25.  
  26. TransDate transDate;
  27. LedgerJournalACType ledgerJournalACType, ledgerJournalACTypeOffset;
  28. MainAccountNum mainAccountNum, mainAccountNumOffset;
  29. DimensionValue dimensionValue1, dimensionValue2, dimensionValue3;
  30. LedgerJournalTransTxt ledgerJournalTransTxt;
  31. CurrencyCode currencyCode;
  32. AmountCur amountCur;
  33. ExchRate exchRate, exchRateSecond;
  34. InvoiceId invoiceId;
  35. DocumentDate documentDate;
  36. DueDate dueDate;
  37. PaymTermId paymTermId;
  38. AssetTransTypeJournal assetTransTypeJournal;
  39. AssetBookIdPurchSalesInvent assetBookIdPurchSalesInvent;
  40.  
  41. container con, conOffset;
  42. int numOfDimension;
  43.  
  44. int row = ;
  45.  
  46. setPrefix("THK_importLedgerJournalTrans");
  47.  
  48. try
  49. {
  50. if (!LedgerJournalTable::checkExist(ledgerJournalId))
  51. throw Exception::Error;
  52.  
  53. workbooks.open(fileName);
  54.  
  55. workbook = workbooks.item();
  56. worksheets = workbook.worksheets();
  57. worksheet = worksheets.itemFromNum();
  58. cells = worksheet.cells();
  59.  
  60. ttsBegin;
  61.  
  62. do
  63. {
  64. row++;
  65.  
  66. print row;
  67.  
  68. setPrefix(strFmt("Row %1", row));
  69.  
  70. transDate = cells.item(row, ).value().date();
  71. mainAccountNum = strLRTrim(cells.item(row, ).value().bStr());
  72. dimensionValue1 = strLRTrim(cells.item(row, ).value().bStr());
  73. dimensionValue2 = strLRTrim(cells.item(row, ).value().bStr());
  74. dimensionValue3 = strLRTrim(cells.item(row, ).value().bStr());
  75. ledgerJournalTransTxt = strLRTrim(cells.item(row, ).value().bStr());
  76. currencyCode = strLRTrim(cells.item(row, ).value().bStr());
  77. amountCur = cells.item(row, ).value().double();
  78. exchRate = cells.item(row, ).value().double();
  79. exchRateSecond = cells.item(row, ).value().double();
  80. invoiceId = strLRTrim(cells.item(row, ).value().bStr());
  81. documentDate = cells.item(row, ).value().date();
  82. dueDate = cells.item(row, ).value().date();
  83. paymTermId = strLRTrim(cells.item(row, ).value().bStr());
  84. assetBookIdPurchSalesInvent = strLRTrim(cells.item(row, ).value().bStr());
  85. mainAccountNumOffset = strLRTrim(cells.item(row, ).value().bStr());
  86.  
  87. switch (strLRTrim(cells.item(row, ).value().bStr()))
  88. {
  89. case "Bank": ledgerJournalACType = ledgerJournalACType::Bank; break;
  90. case "Customer": ledgerJournalACType = ledgerJournalACType::Cust; break;
  91. case "Fixed Assets": ledgerJournalACType = ledgerJournalACType::FixedAssets; break;
  92. case "Ledger": ledgerJournalACType = ledgerJournalACType::Ledger; break;
  93. case "Project": ledgerJournalACType = ledgerJournalACType::Project; break;
  94. case "Vendor": ledgerJournalACType = ledgerJournalACType::Vend; break;
  95. default: ledgerJournalACType = ledgerJournalACType::Ledger; break;
  96. }
  97.  
  98. switch (strLRTrim(cells.item(row, ).value().bStr()))
  99. {
  100. case "Acquisition": assetTransTypeJournal = AssetTransTypeJournal::Acquisition; break;
  101. case "Acquisition Adjustment": assetTransTypeJournal = AssetTransTypeJournal::AcquisitionAdj; break;
  102. default: assetTransTypeJournal = AssetTransTypeJournal::Acquisition; break;
  103. }
  104.  
  105. switch (strLRTrim(cells.item(row, ).value().bStr()))
  106. {
  107. case "Bank": ledgerJournalACTypeOffset = ledgerJournalACType::Bank; break;
  108. case "Customer": ledgerJournalACTypeOffset = ledgerJournalACType::Cust; break;
  109. case "Fixed Assets": ledgerJournalACTypeOffset = ledgerJournalACType::FixedAssets; break;
  110. case "Ledger": ledgerJournalACTypeOffset = ledgerJournalACType::Ledger; break;
  111. case "Project": ledgerJournalACTypeOffset = ledgerJournalACType::Project; break;
  112. case "Vendor": ledgerJournalACTypeOffset = ledgerJournalACType::Vend; break;
  113. default: ledgerJournalACTypeOffset = ledgerJournalACType::Ledger; break;
  114. }
  115.  
  116. axLedgerJournalTrans = new AxLedgerJournalTrans();
  117. con = [mainAccountNum, mainAccountNum];
  118. conOffset = [mainAccountNumOffset, mainAccountNumOffset];
  119. dimensionAttributeValueSetStorage = new DimensionAttributeValueSetStorage();
  120. numOfDimension = ;
  121.  
  122. if (dimensionValue1)
  123. {
  124. con += [nameDimensionAttribute1, dimensionValue1];
  125. conOffset += [nameDimensionAttribute1, dimensionValue1];
  126. numOfDimension ++;
  127.  
  128. dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute1), dimensionValue1));
  129. }
  130.  
  131. if (dimensionValue2)
  132. {
  133. con += [nameDimensionAttribute2, dimensionValue2];
  134. conOffset += [nameDimensionAttribute2, dimensionValue2];
  135. numOfDimension ++;
  136.  
  137. dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute2), dimensionValue2));
  138. }
  139.  
  140. if (dimensionValue3)
  141. {
  142. con += [nameDimensionAttribute3, dimensionValue3];
  143. conOffset += [nameDimensionAttribute3, dimensionValue3];
  144. numOfDimension ++;
  145.  
  146. dimensionAttributeValueSetStorage.addItem(DimensionAttributeValue::findByDimensionAttributeAndValue(DimensionAttribute::findByName(nameDimensionAttribute3), dimensionValue3));
  147. }
  148.  
  149. con = conIns(con, , numOfDimension);
  150. conOffset = conIns(conOffset, , numOfDimension);
  151.  
  152. axLedgerJournalTrans.parmJournalNum(ledgerJournalId);
  153. axLedgerJournalTrans.parmTransDate(transDate);
  154. axLedgerJournalTrans.parmAccountType(ledgerJournalACType);
  155. axLedgerJournalTrans.parmLedgerDimension(AxdDimensionUtil::getMultiTypeAccountId(enumNum(LedgerJournalACType), ledgerJournalACType, con));
  156. axLedgerJournalTrans.parmTxt(ledgerJournalTransTxt);
  157. axLedgerJournalTrans.parmCurrencyCode(currencyCode);
  158. axLedgerJournalTrans.parmExchRate(exchRate * );
  159. axLedgerJournalTrans.parmPaymId(num2str(exchRateSecond, , , , ));
  160. axLedgerJournalTrans.parmInvoice(invoiceId);
  161. axLedgerJournalTrans.parmDocumentDate(documentDate);
  162. axLedgerJournalTrans.parmDue(dueDate);
  163. axLedgerJournalTrans.parmPayment(paymTermId);
  164.  
  165. if (ledgerJournalACType != LedgerJournalACType::Ledger)
  166. axLedgerJournalTrans.parmDefaultDimension(dimensionAttributeValueSetStorage.save());
  167.  
  168. if (amountCur >= )
  169. axLedgerJournalTrans.parmAmountCurDebit(amountCur);
  170. else
  171. axLedgerJournalTrans.parmAmountCurCredit(-amountCur);
  172.  
  173. if (mainAccountNumOffset)
  174. {
  175. axLedgerJournalTrans.parmOffsetAccountType(ledgerJournalACTypeOffset);
  176. axLedgerJournalTrans.parmOffsetLedgerDimension(AxdDimensionUtil::getMultiTypeAccountId(enumNum(LedgerJournalACType), ledgerJournalACTypeOffset, conOffset));
  177.  
  178. if (ledgerJournalACTypeOffset != LedgerJournalACType::Ledger)
  179. axLedgerJournalTrans.parmOffsetDefaultDimension(dimensionAttributeValueSetStorage.save());
  180. }
  181.  
  182. axLedgerJournalTrans.save();
  183.  
  184. if (axLedgerJournalTrans.ledgerJournalTrans().isFixedAssetsTransaction())
  185. {
  186. ledgerJournalTrans_Asset.clear();
  187. ledgerJournalTrans_Asset.initValue();
  188.  
  189. ledgerJournalTrans_Asset.RefRecId = axLedgerJournalTrans.ledgerJournalTrans().RecId;
  190. ledgerJournalTrans_Asset.AssetId = axLedgerJournalTrans.ledgerJournalTrans().getAssetId();
  191. ledgerJournalTrans_Asset.Company = axLedgerJournalTrans.ledgerJournalTrans().getAssetCompany();
  192. ledgerJournalTrans_Asset.TransType = assetTransTypeJournal;
  193. ledgerJournalTrans_Asset.BookId = assetBookIdPurchSalesInvent;
  194.  
  195. if (!ledgerJournalTrans_Asset.validateWrite())
  196. throw Exception::Error;
  197.  
  198. ledgerJournalTrans_Asset.insert();
  199. }
  200.  
  201. type = cells.item(row + , ).value().variantType();
  202. }
  203. while (type != COMVariantType::VT_EMPTY);
  204.  
  205. ttsCommit;
  206. }
  207. catch (Exception::Error)
  208. {
  209. }
  210.  
  211. application.quit();
  212. }

How to using to code import to GL journal[AX2012]的更多相关文章

  1. How to using x++ code create GL journal[AX2012]

    static void FAN_GLImport(Args _args) { AxLedgerJournalTable header = new AxLedgerJournalTable(); AxL ...

  2. 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 ...

  3. spring源码分析之@ImportSelector、@Import、ImportResource工作原理分析

    1. @importSelector定义: /** * Interface to be implemented by types that determine which @{@link Config ...

  4. Python on VS Code

    install python extension Press F1, and input "ext install python". Then the icon at the le ...

  5. 小白的Python之路 day5 python模块详解及import本质

    一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块 ...

  6. Spring注解之@Import

    /** * Indicates one or more {@link Configuration @Configuration} classes to import. * 表示import 一个或多个 ...

  7. python标准库介绍——30 code 模块详解

    ==code 模块== ``code`` 模块提供了一些用于模拟标准交互解释器行为的函数. ``compile_command`` 与内建 ``compile`` 函数行为相似, 但它会通过测试来保证 ...

  8. ES6中的import与export对class操作相关用法举例

    两种用法: 一.指定输出类名 // export 输出 export class App extends React.Componet { // ..code } // import 引入 impor ...

  9. 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 ...

随机推荐

  1. mysql设置定时任务

    –查看时间调度器是否开启 SHOW VARIABLES LIKE 'event_scheduler'; SELECT @@event_scheduler; –开启时间调度器 SET GLOBAL ev ...

  2. 什么是条带化(striping) ?(转载)

    条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法.简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法. 许多情况下,这是通过硬件控制器来完成的. ...

  3. 在 Angular 中实现搜索关键字高亮

    在 Angular 中,我们不应该试图直接修改 DOM 的内容,当需要更新 DOM 内容的时候,应该修改的其实是我们的数据模型,也就是 $scope 中的数据,Angular 会帮助我们将修改之后的数 ...

  4. Solum入门知识(编辑中)

    概要 参考:https://wiki.openstack.org/wiki/Solum An OpenStack project designed to make cloud services eas ...

  5. socket学习笔记——select与epoll函数的使用(linux)

    select.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <u ...

  6. POJ2001-Shortest Prefixes-Trie树应用

    沉迷WOW又颓了两天orz,暴雪爸爸要在国服出月卡了...这是要我好好学习吗?赶紧来刷题了... OJ:http://poj.org/problem?id=2001 题目大意是求所有字符串里每一个字符 ...

  7. SQL to_char,to_date日期字符串转换问题

    1.转换函数 与date操作关系最大的就是两个转换函数:to_date(),to_char() to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date('2004-11 ...

  8. 学习练习 java 集合

    将1—100之间的所有正整数存放在一个List集合中,并将集合中索引位置是10的对象从集合中移除 package com.hanqi; import java.util.*; public class ...

  9. JDBC链接MySQL和Oracle

    import java.sql.*;         JDBC中所要用的包几乎都在import?java.sql.*;中: 在项目中导入Oracel或者是MySQL包和装载驱动:     项目的Cla ...

  10. __main__:1: Warning: Unknown table 'employ' 0L

    __main__:1: Warning: Unknown table 'employ' 0L from warnings import filterwarnings import MySQLdb fi ...