วันพฤหัสบดีที่ 7 มีนาคม พ.ศ. 2556

Passing_values_between_forms

Credit  http://www.axaptapedia.com/index.php?title=Passing_values_between_forms

override fetch() in report



// Class Declaration
public class ReportRun extends ObjectRun
{
  A  AP;
}

// set current record

public void init()
{
    super();

    AP = element.args().record();

}

// change datasorce in fetch() method and ranged by  field on current record


public boolean fetch()
{
    QueryRun qr;
    QueryBuildRange rangeJobNumber;
    boolean ret;
    A   _A;
    ;

    qr = new QueryRun(element);
    rangeJobNumber =
    element.query().dataSourceTable(tablenum(A)).addRange(fieldnum(A,A1));
    rangeJobNumber.value(AP.A1);
    rangeJobNumber.status(RangeStatus::Locked);

 if(qr.prompt() && element.prompt())
  {
    // element.send(A_1,1);
     while (qr.next())
     {
          _A= qr.get(TableNum(A));
          element.send(_A);
     }
  }

   ret = true;
   return ret;
}





วันศุกร์ที่ 11 มกราคม พ.ศ. 2556

Finance.Setค่า

Currency -> กำหนดสกุลเงินหลักและสกุลเงินรองพร้อมทั้งอัตราแลกเปลี่ยน
               -> สร้างบัญชีกำไรขาดทุนจากอัตราแลกเปลี่ยน
               -> กำหนดค่า currency หลักที่ company information
Financial Period
Default Dimension ของบัญชีใน Chart of Account

Journal Name เช่น IV,JV,PV,RV
Account Type เช่น Profit&Lost(รับ-จ่าย),Cost(จ่าย),Revenue(รับ),Asset,Header
                               Total(ต้องกำหนดAccount ที่รวมใน Total ด้วย)
ส่วน System Account เช่น error Account,System Account

วันอาทิตย์ที่ 23 ธันวาคม พ.ศ. 2555

SubQuery

PRINCIPLES
1.(SELECT...)
2.can use with SELECT,FROM,WHERE,HAVING

EX1
SELECT CustTable.CustID, CustTable.balance, (
SELECT SUM( CustTable.balance )
FROM CustTable
), CustTable.balance / ( 
SELECT SUM( CustTable.balance ) 
FROM CustTable ) *100

FROM `custtable`

EX2
SELECT * FROM CustTable WHERE CustTable.Balance >= ( SELECT avg(CustTable.Balance) FROM CustTable );
EX3 SELECT iCityID, sCityName FROM citymaster c where iCityID in(SELECT iStateID FROM statemaster s)

วันเสาร์ที่ 22 ธันวาคม พ.ศ. 2555

Over Dues and Over balance Customer

SELECT CustTable.CustName,CustTable.Balance ,Sum(SalesLine.LineAmt),Salestable.DuesDate
FROM CustTable,Salestable,SalesLine
WHERE CustTable.CustID = Salestable.CustID
  And Salestable.SalesID = SalesLine.SalesID
  And Salestable.DuesDate > now()
  and CustTable.Balance > 1000
GROUP BY CustTable.CustName,CustTable.Balance,Salestable.DuesDate
Order By CustTable.Balance  Desc

Max Balance Customer


SELECT CustTable.CustName,Max(CustTable.Balance)
FROM CustTable
Group by CustTable.CustID
Order by Max(CustTable.Balance) Desc
Limit 0,1

Top 10 Item


Select InventTable.ItemID,sum(SalesLine.LineAmt)
FROM SalesLine,SalesTable,InventTable
WHERE SalesTable.SalesID = SalesLine.SalesID
  And InventTable.ItemID= SalesLine.ItemID
Group By InventTable.ItemID
Order By sum(SalesLine.LineAmt) DESC
Limit 0,10

Top 10 Customer


Select CustTable.CustName,sum(SalesLine.LineAmt)
FROM SalesLine,SalesTable,CustTable
WHERE SalesTable.SalesID = SalesLine.SalesID
  And SalesTable.CustID = CustTable.CustID
Group By CustTable.CustName
Order By sum(SalesLine.LineAmt) DESC
Limit 0,10

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

update reflesh master


real SumHoldHFP(ProdJournalRoute _ProdJournalRoute)
{
    real rSumQty;
    SWAN_ProdJournalRoute_Hold _SWAN_ProdJournalRoute_Hold;
    SWAN_Hold_Problem   _SWAN_Hold_Problem;
 
    ;


    select sum(Qty) from _SWAN_ProdJournalRoute_Hold
    where _SWAN_ProdJournalRoute_Hold.JobId == _ProdJournalRoute.JobId
    &&    _SWAN_ProdJournalRoute_Hold.JournalId == _ProdJournalRoute.JournalId
    &&    _SWAN_ProdJournalRoute_Hold.Sequence  == _ProdJournalRoute.Sequence
    join _SWAN_Hold_Problem
    where _SWAN_Hold_Problem.CodeHold == _SWAN_ProdJournalRoute_Hold.Code
    && _SWAN_Hold_Problem.IDHoldGroup == "HFP";


    rSumQty = _SWAN_ProdJournalRoute_Hold.Qty;

  /*
    callerForm         = element.args().caller();

   callerForm.dataSource().refresh();

   callerForm.dataSource().reread();

    callerForm.dataSource().research();
    */
    return rSumQty;
}


SWAN_ProdJournalRoute_Hold

public void refresh()
{
    ProdJournalTable _ProJournalTable;
    ;

    select _ProJournalTable
    where _ProJournalTable.JournalId == ProdJournalRoute.JournalId;

    if(_ProJournalTable.Posted == NoYes::No)
    {
        rSumHoldHFP = element.SumHoldHFP(ProdJournalRoute);
        ProdJournalRoute.HoldFP = rSumHoldHFP;
        rSumHoldMAT = element.SumHoldMAT(ProdJournalRoute);
        ProdJournalRoute.HoldMat = rSumHoldMAT;
        rSumHoldWIP = element.SumHoldWIP(ProdJournalRoute);
        ProdJournalRoute.HoldProd = rSumHoldWIP;
    }

    super();
}

public void delete()
{
    ProdJournalTable _ProJournalTable;
    ;

    select _ProJournalTable
    where _ProJournalTable.JournalId == ProdJournalRoute.JournalId;

    if(_ProJournalTable.Posted == NoYes::No)
    {
        rSumHoldHFP = element.SumHoldHFP(ProdJournalRoute);
        ProdJournalRoute.HoldFP = rSumHoldHFP;
        rSumHoldMAT = element.SumHoldMAT(ProdJournalRoute);
        ProdJournalRoute.HoldMat = rSumHoldMAT;
        rSumHoldWIP = element.SumHoldWIP(ProdJournalRoute);
        ProdJournalRoute.HoldProd = rSumHoldWIP;
    }

    super();
}

วันอังคารที่ 20 พฤศจิกายน พ.ศ. 2555

คืนค่า External Downtime,External Downtime,Production Time ในProdJournalRoute


 Datasource :: SWAN_ProdJournalRoute_Downtime
public void delete()
{
    ProdJournalTable _ProdJournalTable;
    SWAN_DownTime_Problem _SWAN_DownTime_Problem;
    ProdJournalRoute _ProdJournalRoute;
    ;

    select _ProdJournalTable
    where _ProdJournalTable.JournalId == ProdJournalRoute.JournalId;
    if(_ProdJournalTable.Posted == NoYes::No)
    {
        element.Downtime();
    }

  //  info(strfmt("%1",SWAN_ProdJournalRoute_Downtime.HoursUse));

     select _SWAN_DownTime_Problem
     where _SWAN_DownTime_Problem.Code == SWAN_ProdJournalRoute_Downtime.Code_Problem;

   //  info(strfmt("%1",_SWAN_DownTime_Problem.TimeStatus));

    select _ProdJournalRoute
    where _ProdJournalRoute.JournalId == SWAN_ProdJournalRoute_Downtime.JournalId
      &&  _ProdJournalRoute.JobId     == SWAN_ProdJournalRoute_Downtime.JobId;
    //  &&  _ProdJournalRoute.Sequence ==  SWAN_ProdJournalRoute_Downtime.Sequence;

   if(_SWAN_DownTime_Problem.TimeStatus == 1)
   {
   ProdJournalRoute.TimeInternal = ProdJournalRoute.TimeInternal - SWAN_ProdJournalRoute_Downtime.HoursUse;
   ProdJournalRoute.update();
   ProdJournalRoute.reread();
   }
   else if(_SWAN_DownTime_Problem.TimeStatus == 2)
    {
   ProdJournalRoute.TimeExternal = ProdJournalRoute.TimeExternal - SWAN_ProdJournalRoute_Downtime.HoursUse;
   ProdJournalRoute.ProTime      = ProdJournalRoute.ProTime + SWAN_ProdJournalRoute_Downtime.HoursUse;
   ProdJournalRoute.update();
   ProdJournalRoute.reread();
   }

  //  info(strfmt("%1",_ProdJournalRoute.ProTime));

    super();
}

วันศุกร์ที่ 9 พฤศจิกายน พ.ศ. 2555

Update inventTrans From InventJournalTrans(Transfer)


static void UpdateTransactionFromInventJournalTrans(Args _args)
{
    InventTrans inventTrans;
    InventJournalTrans injts;
    InventJournalTable injt;
    ;

    ttsbegin;
    while select forupdate  inventTrans
    join injts
    where injts.InventTransId == inventTrans.InventTransId
    join injt
    where injt.JournalId == injts.JournalId
    //&& injt.JournalId == "IV12-32167"
    && injt.JournalNameId == "IRON-R12"
  //  && injt.JournalNameId == "IRON-W12"
    {

       print injts.InventTransId;
       print inventTrans.InventTransId;
       print injts.ItemId;
       print inventTrans.ItemId;
       print injts.VBS_2ndQty;
       print inventTrans.VBS_2ndQty;
      // pause;

       inventTrans.VBS_2ndQty = injts.VBS_2ndQty;
       inventTrans.update();

    }

     while select forupdate  inventTrans
    join injts
    where injts.ToInventTransId == inventTrans.InventTransId
    join injt
    where injt.JournalId == injts.JournalId
   // && injt.JournalId == "IV12-32167"
    && injt.JournalNameId == "IRON-R12"
  //  && injt.JournalNameId == "IRON-W12"
    {

       print injts.InventTransId;
       print inventTrans.InventTransId;
       print injts.ItemId;
       print inventTrans.ItemId;
       print -1*injts.VBS_2ndQty;
       print inventTrans.VBS_2ndQty;
       //pause;

       inventTrans.VBS_2ndQty = -1*injts.VBS_2ndQty;
       inventTrans.update();

    }
    ttscommit;
    info("Finished");
}

วันพฤหัสบดีที่ 8 พฤศจิกายน พ.ศ. 2555

Job Update2ndQty


static void Update2ndQty(Args _args)
{
   inventDim inventDim;
   inventSum inventSum;
   unitConvert unitConvert;
   inventSum inventSum2;
   ;

   while select inventDim
   where inventDim.InventLocationId == "omcan"
   // iron ,mfg1,2,5
   // iron24
   // paiboon
   // ks
   // apc
   // omcan

  //  ||   inventDim.InventLocationId == "MFG1"
 //  &&  inventDim.inventSerialId == "GB152957"
   {
      print inventDim.InventLocationId;
      print inventDim.inventDimId;
      print inventDim.inventBatchId;

      while select  inventSum
      where inventSum.ItemId Like "R*"
         && inventSum.InventDimId == inventDim.inventDimId
      {
  //    ttsbegin;
      select unitConvert
      where  unitConvert.FromUnit == "Sheet"
       && unitConvert.ToUnit == "Ton"
      &&  unitConvert.ItemId == inventSum.ItemId;


      print inventSum.InventDimId;
      print inventSum.ItemId;
      print "on order :";
      print inventSum.OnOrder;
      print "PostedQty :";
      print inventSum.PostedQty;
      print "Received :";
      print inventSum.Received;
      print "Deducted :";
      print inventSum.Deducted;
      print "Registered :";
      print inventSum.Registered;
      print "Picked :";
      print inventSum.Picked;



      print "VBS_2ndOnOrder :";
      print inventSum.VBS_2ndOnOrder;
      print "New VBS_2ndOnOrder: ";
      print inventSum.OnOrder * unitConvert.Factor;

      print   unitConvert.Factor;
      print unitConvert.Factor * inventSum.OnOrder;
      print unitConvert.Factor * inventSum.PostedQty;
      print unitConvert.Factor * inventSum.Received;
      print unitConvert.Factor * inventSum.Deducted;
      print unitConvert.Factor * inventSum.Registered;
      print unitConvert.Factor * inventSum.Picked;

      print inventSum.Arrived;
      print inventSum.VBS_2ndArrived;
      print inventSum.Ordered;
      print inventSum.VBS_2ndOrdered;
      print inventSum.ReservOrdered;
      print inventSum.VBS_2ndReservOrdered;

   //   pause;

              ttsbegin;
              while select forupdate  inventSum2
              where inventSum2.ItemId == inventSum.ItemId
                 && inventSum2.InventDimId == inventDim.inventDimId
               //  && inventSum2.
              {
             //decround (1.2 , 0)
             inventSum2.VBS_2ndArrived =  decround ((inventSum.Arrived * unitConvert.Factor),0);
             inventSum2.VBS_2ndOrdered =  decround ((inventSum.Ordered *  unitConvert.Factor),0);
             inventSum2.VBS_2ndReservOrdered =  decround ((inventSum.ReservOrdered * unitConvert.Factor),0);
             inventSum2.VBS_2ndOnOrder = decround ((inventSum.OnOrder * unitConvert.Factor),0);
             inventSum2.VBS_2ndPostedQty = decround ((unitConvert.Factor * inventSum.PostedQty),0);
             inventSum2.VBS_2ndReceived = decround ((unitConvert.Factor * inventSum.Received),0);
             inventSum2.VBS_2ndDeducted = decround ((unitConvert.Factor * inventSum.Deducted),0);
             inventSum2.VBS_2ndRegistered = decround ((unitConvert.Factor * inventSum.Registered),0);
             inventSum2.VBS_2ndPicked = decround ((unitConvert.Factor * inventSum.Picked),0);


             inventSum2.update();

      }
      ttscommit;

 //   ttscommit;
      }
   //  print "---";
   // return this.VBS_2ndPostedQty + this.VBS_2ndReceived - this.VBS_2ndDeducted + this.VBS_2ndRegistered - this.VBS_2ndPicked;


}
 info("Finish");
}

วันเสาร์ที่ 27 ตุลาคม พ.ศ. 2555

Group -> ( Sum && While Select +=Sum )


static void Q_Eff_Report_Excel(Args _args)
{
  // SWAN_Machine_Capacity _SWAN_Machine_Capacity;
   ProdJournalTable  _ProdJournalTable;
   ProdJournalRoute  _ProdJournalRoute;
   counter counter;
   ProdJournalTable  _ProdJournalTable2;
   ProdJournalRoute  _ProdJournalRoute2;
   // sum(QtyGood)
   ProdJournalTable  _ProdJournalTable3;
   ProdJournalRoute  _ProdJournalRoute3;
   // sum(Target)
   ProdJournalTable  _ProdJournalTable4;
   ProdJournalRoute  _ProdJournalRoute4;
 
 //  SWAN_Machine_Capacity _SWAN_Machine_Capacity2;
   ;
  //  while
  //  select * from _SWAN_Machine_Capacity
  //  order by _SWAN_Machine_Capacity.MachineNo
  //  group by _SWAN_Machine_Capacity.MachineNo
  //  where _SWAN_Machine_Capacity.MachineNo Like "C*"
  //  {
    //    print "<---------------";
   //     print _SWAN_Machine_Capacity.MachineNo;
   //     pause;

        while select _ProdJournalTable
        order by _ProdJournalTable.MachineNo, _ProdJournalTable.Team, _ProdJournalRoute.ActualCap asc //, _ProdJournalRoute.WrkCtrId
        group by _ProdJournalTable.MachineNo, _ProdJournalTable.Team, _ProdJournalRoute.ActualCap//, _ProdJournalRoute.WrkCtrId
        where _ProdJournalTable.MachineNo Like "C*"
        join _ProdJournalRoute
        where _ProdJournalRoute.JournalId == _ProdJournalTable.JournalId
           && _ProdJournalRoute.JobStatus == "Working"
        //  &&  _ProdJournalRoute.TransDate   == mkDate(13,07,12)
        //   && _ProdJournalRoute.WrkCtrId  == _ProdJournalTable.WrkCtrId
        {
             print _ProdJournalTable.MachineNo;    // << Alert! Mandatory
             print _ProdJournalTable.Team;         // << Alert! Mandatory
             print _ProdJournalRoute.ActualCap;    // << Alert! Mandatory
         //  print _ProdJournalRoute.JobStatus;
         //  print _ProdJournalRoute.WrkCtrId;
             counter++;

           //  print "--------------->";
             print "---------";
             pause;

             while select _ProdJournalTable2
             join _ProdJournalRoute2
             where _ProdJournalRoute2.JournalId == _ProdJournalTable2.JournalId
                && _ProdJournalTable2.MachineNo == _ProdJournalTable.MachineNo
                && _ProdJournalTable2.Team == _ProdJournalTable.Team
                && _ProdJournalRoute2.ActualCap == _ProdJournalRoute.ActualCap
             {
                print "          ---------";
                print _ProdJournalTable2.MachineNo;    // << Alert! Mandatory
                print _ProdJournalTable2.Team;         // << Alert! Mandatory
                print _ProdJournalRoute2.ActualCap;    // << Alert! Mandatory
                print "QtyGood";
                print _ProdJournalRoute2.QtyGood;
                print "Target";
                print _ProdJournalRoute2.Target;
               
             }

             select sum(QtyGood) from _ProdJournalRoute3
             where _ProdJournalRoute3.ActualCap == _ProdJournalRoute.ActualCap
             join  _ProdJournalTable3
             where _ProdJournalRoute3.JournalId == _ProdJournalTable3.JournalId
                && _ProdJournalTable3.MachineNo == _ProdJournalTable.MachineNo
                && _ProdJournalTable3.Team == _ProdJournalTable.Team;
                print "SUM(QtyGood)";
                print _ProdJournalRoute3.QtyGood;
               
               
             select sum(Target) from _ProdJournalRoute4
             where _ProdJournalRoute4.ActualCap == _ProdJournalRoute.ActualCap
             join  _ProdJournalTable4
             where _ProdJournalRoute4.JournalId == _ProdJournalTable4.JournalId
                && _ProdJournalTable4.MachineNo == _ProdJournalTable.MachineNo
                && _ProdJournalTable4.Team == _ProdJournalTable.Team;
                print "SUM(Target)";
                print _ProdJournalRoute4.Target;
               
             print  SWAN_TimePlus::Plus(0.5,0.55);
             print  _ProdJournalRoute.JobStatus;
             pause;
           

             /*
            _JobStatusId          =  _ProdJournalRoute.JobStatus;
            rBuffsum              =  rSumWorkingTime; rSumWorkingTime = 0;
            rSumWorkingTime      +=  element.TimePlus(rBuffsum, _ProdJournalRoute.SWAN_HourUse);
            rSumQtyGood          +=  _ProdJournalRoute.QtyGood;
            rSumTarget           +=  _ProdJournalRoute.Target;
            rSumHoldProcess      +=  _ProdJournalRoute.HoldProd;
            rSumHoldMaterial     +=  _ProdJournalRoute.HoldMat;
            rSumWaste            +=  _ProdJournalRoute.QtyError;
            rBuffsum              =  rSumInternalDowntime; rSumInternalDowntime = 0;
            rSumInternalDowntime +=  element.TimePlus(rBuffsum, _ProdJournalRoute.TimeInternal);
            rBuffsum              =  rSumExternalDowntime; rSumExternalDowntime = 0;
            rSumExternalDowntime +=  element.TimePlus(rBuffsum, _ProdJournalRoute.TimeExternal);
             */

        }
      print counter;
      pause;
  //  }

   // << What!
   // How .MachineNo relation with .WrkCtrId ?
   // >>




}

วันศุกร์ที่ 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....