วันศุกร์ที่ 12 ตุลาคม พ.ศ. 2555

Export to Excel


static void Q_Prod_Eff_All_DoubleDie_MFG3(Args _args)
{
   // Retreive data
   ProdJournalRoute _ProdJournalRoute;
   ProdJournalTable _ProdJournalTable;
   SWAN_Machine_Capacity _SWAN_Machine_Capacity;
   ProdTable _ProdTable;
   Date _fromDate;
   Date _toDate;
   // Export to Excel
   SysExcelApplication  xlsApplication;
   SysExcelWorkBooks    xlsWorkBookCollection;
   SysExcelWorkBook     xlsWorkBook;
   SysExcelWorkSheets   xlsWorkSheetCollection;
   SysExcelWorkSheet    xlsWorkSheet;
   SysExcelRange        xlsRange;
   CustTable            custTable;
   int                  row = 1;
   str                  fileName;
   ;


   // Export to Excel
   //Filename
   fileName = "C:\\Test.xlsx";


   //Initialize Excel instance
   xlsApplication           = SysExcelApplication::construct();

   //Open Excel document
   //xlsApplication.visible(true);


   //Create Excel WorkBook and WorkSheet
   xlsWorkBookCollection    = xlsApplication.workbooks();
   xlsWorkBook              = xlsWorkBookCollection.add();
   xlsWorkSheetCollection   = xlsWorkBook.worksheets();
   xlsWorkSheet             = xlsWorkSheetCollection.itemFromNum(1);


   //Excel columns captions
   xlsWorkSheet.cells().item(row,1).value("Machine No.");
   xlsWorkSheet.cells().item(row,2).value("ProdId");
   xlsWorkSheet.cells().item(row,3).value("JournalId");
   xlsWorkSheet.cells().item(row,4).value("Team");
   xlsWorkSheet.cells().item(row,5).value("Trandate");
   xlsWorkSheet.cells().item(row,6).value("ActualCap");
   xlsWorkSheet.cells().item(row,7).value("Fullcap");

   row++;


    while
    select * from _SWAN_Machine_Capacity
    group by MachineNo
    order by MachineNo
    where _SWAN_Machine_Capacity.MachineNo Like "DD*"
    {
       print "----------------------------";
       print  _SWAN_Machine_Capacity.MachineNo;
       print "----------------------------";
       //strMachineNO = _SWAN_Machine_Capacity.MachineNo;

     // Group by Team and Full,Acutualcap and ItemId and ProdId and JournalId
        while
        select * from _ProdJournalTable
        where _ProdJournalTable.MachineNo ==  _SWAN_Machine_Capacity.MachineNo
        join _ProdJournalRoute

        where _ProdJournalRoute.ProdId == _ProdJournalTable.ProdId
        && _ProdJournalRoute.JournalId == _ProdJournalTable.JournalId
        &&  _ProdJournalRoute.TransDate   == mkDate(10,08,12)  // dialog feild
        // _ProdJournalRoute.TransDate    <= DateTo    // dialog feild
        {
           // print _ProdJournalTable.MachineNo;
            print _ProdJournalTable.ProdId;
            print _ProdJournalTable.JournalId;
            print _ProdJournalTable.MachineNo;
            print _ProdJournalTable.Team;
            print _ProdJournalRoute.FullCap;
            print _ProdJournalRoute.ActualCap;
            print _ProdJournalRoute.TransDate;

            //Find ItemId
            select _ProdTable
            where _ProdTable.ProdId == _ProdJournalTable.ProdId;
            print _ProdTable.ItemId;
            print "++++++++++++++++++++++++++++++";
            pause;



            xlsWorkSheet.cells().item(row,1).value(_ProdJournalTable.MachineNo);
            xlsWorkSheet.cells().item(row,2).value(_ProdJournalTable.ProdId);
            xlsWorkSheet.cells().item(row,3).value(_ProdJournalTable.JournalId);
            xlsWorkSheet.cells().item(row,4).value(_ProdJournalTable.Team);
            xlsWorkSheet.cells().item(row,5).value(_ProdJournalRoute.TransDate);
            xlsWorkSheet.cells().item(row,6).value(_ProdJournalRoute.ActualCap);
            xlsWorkSheet.cells().item(row,7).value(_ProdJournalRoute.FullCap);
            row++;

        }

      //  break;


    }


   //Check whether the document already exists
    if(WinApi::fileExists(fileName))
      WinApi::deleteFile(fileName);


   //Save Excel document
   xlsWorkbook.saveAs(fileName);

   //Open Excel document
   xlsApplication.visible(true);


   //Close Excel
   //xlsApplication.quit();
   //xlsApplication.finalize();

}

วันจันทร์ที่ 8 ตุลาคม พ.ศ. 2555

X++ : Dialog


static void Pan_AxDialog(Args _args)
{
    Dialog d1;
    DialogGroup dg1;
    DialogField df1,df2;
    ;
   
    d1 = new Dialog("Jet");
    d1.addGroup("Group");
    d1.addField(TypeID(CustAccount),"Account Number");
   
    if(d1.run())
    {
    //  print df1.value();
    print " run";
    }
    else
    {
      print "not run";
    }
    pause;
}

X++ : Map

วันจันทร์ที่ 1 ตุลาคม พ.ศ. 2555

วันอังคารที่ 11 กันยายน พ.ศ. 2555

ดึงราคาจากPO ก่อน Movement/Transfer จากรายงาน inventTranlist


display real PricePerUnit()
{
  real realRet;
  PurchIdBase ret;
  InventTrans  inventTrans_PONO;

  PurchLine  purchline;
  ;

     while select inventTrans_PONO
     where inventTrans_PONO.TransType == InventTransType::Purch
     && inventTrans_PONO.ItemId    == InventTrans.ItemId
     && inventTrans_PONO.InventTransId <= InventTrans.InventTransId
     {
        ret = inventTrans_PONO.TransRefId;
     }
  if(inventTrans.TransType == InventTransType::Purch)
   {
      ret = "";
   }

 if(ret != "")
{
      select purchline
      where purchline.PurchId == ret
         && purchline.ItemId == InventTrans.ItemId;

     realRet = purchline.PurchPrice;
      }
  else
 {
    realRet = 0;
  }

  return  realRet;
}

วันอาทิตย์ที่ 2 กันยายน พ.ศ. 2555

Create JournalMovement


Boolean CreateJournalMovement()
{

InventJournalTable journalTable;
InventJournalTrans journalTrans;
JournalTableData journalTableData;

InventJournalId journalId;
InventJournalName journalName;

;
ttsbegin;
//journalName = InventJournalName::find([MyJournalName]);
journalName = InventJournalName::find("M-FG");

journalTable.clear();

journalTable.JournalNameId=journalName.JournalNameId;
//rint journalTable.JournalNameId;
//ause;


journalTableData = JournalTableData::newTable(journalTable);
journalTableData.initFromJournalName(journalTableData.JournalStatic().findJournalName(journalTable.journalNameId));

journalTable.JournalId = journalTableData.nextJournalId();
   print journalTable.JournalId;
journalTable.Reservation = ItemReservation::Automatic;
journalTable.insert();


//=== Journal Trans ===//
journalTrans.clear();
journalTrans.JournalId = journalTable.JournalId;
journalTrans.JournalType = journalName.JournalType;
journalTrans.LedgerAccountIdOffset = journalName.LedgerAccountIdOffset;

   print journalTrans.JournalId;
   print journalTrans.JournalType;
   print journalTrans.LedgerAccountIdOffset;
   pause;
 
 //  BBCN0001

//journalTrans.ItemId = [MyItemId];
journalTrans.ItemId = "BBCN0001";

//journalTrans.initFromInventTable(InventTable::find([MyItemId]),False,False);
journalTrans.initFromInventTable(InventTable::find("BBCN0001"),False,False);



//ournalTrans.InventDimId = [MyInventDimId];
journalTrans.InventDimId = "DM-0000001";

journalTrans.TransDate = SystemDateGet();
//journalTrans.Qty = [MyQty];
journalTrans.Qty = 1000;
//journalTrans.PriceUnit = [MyPriceUnit];
journalTrans.PriceUnit = 1000;
//journalTrans.CostPrice = [MyCostPrice];
journalTrans.CostPrice = 999;
journalTrans.CostAmount = journalTrans.calcCostAmount();

print journalTrans.CostAmount;
pause;


journalTrans.insert();
ttscommit;

 info("Create journal movement is done.");

return true;

}

Reference http://oromux.wordpress.com/2008/07/02/ax-create-journal-movement-via-x/
Thanks....

SysGlobalCache ไว้เก็บค่า Global


static void SysGlobalCache(Args _args)
{
   SysGlobalCache globalCache;
   ;
   globalCache = ClassFactory.globalCache();
   globalCache.set(curuserid(), 1, "One");
   globalCache.set(curuserid(), 2, "two");
 
   print globalCache.get(curuserid(), 1);
   print globalCache.get(curuserid(), 2);
   globalcache.remove(curuserid(), 1);
   pause;
   print globalCache.get(curuserid(), 1);
   print globalCache.get(curuserid(), 2);
   pause;
}

อ้างอิง http://learnax.blogspot.com/2010/01/globalcache-alternative-to.html
Thanks.... Nagaraj Jadhav | India 

How to use:
To Set a Value:
static void GlobalCacheSet(Args _args)
{
SysGlobalCache globalCache;
;
globalCache = ClassFactory.globalCache();
globalCache.set(curuserid(), 1, "One");
} 
To Get the Value:
static void GlobalCacheGet(Args _args)
{
SysGlobalCache globalCache;
;
globalCache = ClassFactory.globalCache();
print globalCache.get(curuserid(), 1);
globalcache.remove(curuserid(), 1);
pause;
}