real HourUse(real rFromTime, real rToTime)
{
real rTimeFrom, rTimeTo, rTimeRa, rTimeRb, rTimeRc, rTimeR;
int iTimea, iTimeb;
real rTimeMinute;
int turn2minute;
;
rTimeFrom = rFromTime;
rTimeTo = rToTime;
if( rTimeFrom == rTimeTo)
{
rTimeR = 0;
}
else if(rTimeTo > rTimeFrom)
{
rTimeR = (rTimeTo- rTimeFrom)/3600;
if((rTimeTo - rTimeFrom) mod 3600 != 0)
{
rTimeMinute = (((rTimeTo - rTimeFrom) mod 3600)/60)*0.01; // minute
turn2minute = rTimeR; // hour (cut minute by interger variable)
}
rTimeR = turn2minute + rTimeMinute; // hour.minute
}
else if(rTimeTo < rTimeFrom)
{
rTimeR = 12 + (rTimeTo + 43200 - rTimeFrom)/3600;
if((rTimeTo - rTimeFrom) mod 3600 != 0)
{
rTimeMinute = 0.60 + (((rTimeTo - rTimeFrom) mod 3600)/60)*0.01; // minute
turn2minute = rTimeR; // hour (cut minute by interger variable)
rTimeR = turn2minute + rTimeMinute; // hour.minute
}
}
// info(strfmt("%1 - %2 = %3 = %4 Hrs %5 Minute",rTimeTo,rTimeFrom,(rTimeTo - rTimeFrom),rTimeR,rTimeMinute));
return rTimeR;
}
วันเสาร์ที่ 28 กรกฎาคม พ.ศ. 2555
วันศุกร์ที่ 27 กรกฎาคม พ.ศ. 2555
lookup
=LOOKUP(D12,A2:A7,C2:C7)
D12 = Cell
A2:A7 = Column Check with D12
C2:C7 = Returned Value Column
D12 = Cell
A2:A7 = Column Check with D12
C2:C7 = Returned Value Column
วันพุธที่ 18 กรกฎาคม พ.ศ. 2555
Args
static void CallJobByCoding(Args _args)
{
Args args;
;
args = new Args();
args.name(identifierStr(Job10));
new
menuFunction(menuItemActionStr(Job10), MenuItemType::Action).run(args);
}
static void CallFormByCoding(Args _args)
{
Args args;
;
args = new Args();
args.name(identifierStr(Material_SWAN));
new
menuFunction(menuItemDisplayStr(Material_SWAN),
MenuItemType::Display).run(args);
}
static void CallReportByCoding(Args _args)
{
Args args;
;
args = new Args();
args.name(identifierStr(SWAN_PurchHist));
new
menuFunction(menuItemOutputStr(SWAN_PurchHist),
MenuItemType::Output).run(args);
}
วันพุธที่ 11 กรกฎาคม พ.ศ. 2555
Collection Class : List,Set,Map,Array
static void AList(Args _args)
{
List enumList = new List(Types::Enum);
ListEnumerator enumerator;
List integerList = new List(Types::Integer);
ListEnumerator integerEnumerator;
;
enumList.addStart(ABC::A);
enumList.addEnd(ItemType::Item);
enumList.addEnd(ItemType::BOM);
enumList.addEnd(NoYes::Yes);
integerList.addStart(2);
integerList.addStart(1);
integerList.addEnd(3);
enumerator = enumList.getEnumerator(); // set ListEnumerator to manage List
enumerator.reset(); //go to begin of enumerator
//ListEnumerator manage List !
enumerator.moveNext();
enumerator.moveNext();
info(strfmt("%1",enumerator.current()));
}
วันจันทร์ที่ 9 กรกฎาคม พ.ศ. 2555
ส่ง parameter แบบ string, enum และ record
ที่ FormA
void
clicked()
{
// Args class is usually used in Axapta for
passing parameters between forms
Args args;
FormRun formRun;
EmplTable emplTable;
// Our custom made class for passing
complex set of parameters
// FormBParams formBParams = new FormBParams();
//Array items = new Array( Types::String );
// int i;
;
args = new args();
// Our values which we want to pass to
FormB
// If we want pass just simple string we
can use 'parm' method of 'Args' class
//-------------------------ส่ง parameter แบบ String,Enumและ Record----------------------
args.parm(CustTable.Name );
// We also can pass enum value to FormB
args.parmEnum( NoYes::Yes );
args.parmEnumType( EnumNum( NoYes ) );
// and also can pass a cursor pointing to
some record (in our case it is EmplTable )
args.record( CustTable );
// Run FormB
args.name( formstr( FormB ) );
formRun = classFactory.formRunClass( Args
);
formRun.init();
formrun.run();
formrun.wait();
/*
if( formrun.closedOk() )
{
//answerFromFormB.text( args.parm() );
info(strfmt("%1",args.parm()));
}
*/
super();
}
ที่ FormB
void clicked()
{
CustTable CustTableRecord;
//FormBParams formBParams;
Array items;
int i;
;
super();
// Check for passed arguments
if( element.args() )
{
// get string parameter
info(strfmt("%1",(element.args().parm())));
if( element.args().parmEnumType() ==
EnumNum( NoYes ) )
{
info(strfmt("%1",(
element.args().parmEnum())));
}
// get record parameter
if( element.args().record() &&
element.args().record().TableId == TableNum( CustTable ) )
{
CustTableRecord = element.args().record();
// emplName.text(
emplTableRecord.Name );
info(strfmt("%1 :
%2",CustTableRecord.AccountNum,CustTableRecord.Name));
}
}
}
วันศุกร์ที่ 6 กรกฎาคม พ.ศ. 2555
ทวน NAV
ฝั่งซื้อ
1. เปิด PR ที่ Req.WworkSheet แล้วติ๊กถูก ที่ Confirm
2. ข้อมูลจะวิ่งไปที่ Req.WorkSheet(Approve) ให้หัวหน้าแผนก ผู้จัดการ ติ๊ก Approved
++ Requisitionline WHERE(Confirmed = Flilter(Yes))
3. แล้วไปที่ Req.WorkSheet(Make Order) เพื่อเลือกฟังก์ชัน Carry Out Action Message เพื่อสร้างเป็น PO ต่อไป
++ Requisitionline WHERE(Approved = Flilter(Yes))
4. แล้วจะได้ Purchase Order ที่สร้างมาจาก PR โดยผ่านการ Confirmed และ Approved
++ Purchase Header WHERE (Document Type = Filter(Order))
Order GRN >=POST=> ตาราง 120,121 โดยเก็บประวัติการรับแต่ละครั้ง
PO >=POST=> ดูจาก Navigator, Item Ledger, Value Entry
IINVOICE >=POST=> Posted Purchase Invoice,GL Entry,Vat Entry(ถ้ามี Vat),Detail Vendor Ledg. Entry, Value Entry
5. Credit Memo ก่อน Post จะอยู่ที่ Purchase Header กับ Purchase Line
หลัง Post จะอยู่ที่ Credit Memo ตาราง 124,125
ฝั่งขาย
1. เปิด Quote ใบเสนอราคา
++ Sales Header WHERE (Document Type=Filter(Quote))
ให้ไป Make Order เพื่อสร้างเป็น Sale Order จริงๆ
2. แล้วข้อมูลจะวิ่งไปที่ Order
++ Sales Header WHERE (Document Type=Filter(Order))
ให้ไป Functions >> Release เป็น ใบส่งของ
3. แล้วมาที่หน้า Sale Order - Shipment
++ Sales Header WHERE (Document Type=Filter(Order),status=Filter(<>Open))
4. Invoice การสร้าง invoice นั้นจะไม่ได้ดึงจาก Sale Order แต่เป็นการสร้างใหม่ที่ฟอร์ม Invoice
++ ales Header WHERE (Document Type=Filter(Invoice))
Warehouse
1. Item Journal มี Positive กับ Negative ไม่มีต้นทุน
2. Item Reclass ย้ายของ
2. BOM Journal ผลิตitemตาม KitBOM
1. เปิด PR ที่ Req.WworkSheet แล้วติ๊กถูก ที่ Confirm
2. ข้อมูลจะวิ่งไปที่ Req.WorkSheet(Approve) ให้หัวหน้าแผนก ผู้จัดการ ติ๊ก Approved
++ Requisitionline WHERE(Confirmed = Flilter(Yes))
3. แล้วไปที่ Req.WorkSheet(Make Order) เพื่อเลือกฟังก์ชัน Carry Out Action Message เพื่อสร้างเป็น PO ต่อไป
++ Requisitionline WHERE(Approved = Flilter(Yes))
4. แล้วจะได้ Purchase Order ที่สร้างมาจาก PR โดยผ่านการ Confirmed และ Approved
++ Purchase Header WHERE (Document Type = Filter(Order))
Order GRN >=POST=> ตาราง 120,121 โดยเก็บประวัติการรับแต่ละครั้ง
PO >=POST=> ดูจาก Navigator, Item Ledger, Value Entry
IINVOICE >=POST=> Posted Purchase Invoice,GL Entry,Vat Entry(ถ้ามี Vat),Detail Vendor Ledg. Entry, Value Entry
5. Credit Memo ก่อน Post จะอยู่ที่ Purchase Header กับ Purchase Line
หลัง Post จะอยู่ที่ Credit Memo ตาราง 124,125
ฝั่งขาย
1. เปิด Quote ใบเสนอราคา
++ Sales Header WHERE (Document Type=Filter(Quote))
ให้ไป Make Order เพื่อสร้างเป็น Sale Order จริงๆ
2. แล้วข้อมูลจะวิ่งไปที่ Order
++ Sales Header WHERE (Document Type=Filter(Order))
ให้ไป Functions >> Release เป็น ใบส่งของ
3. แล้วมาที่หน้า Sale Order - Shipment
++ Sales Header WHERE (Document Type=Filter(Order),status=Filter(<>Open))
4. Invoice การสร้าง invoice นั้นจะไม่ได้ดึงจาก Sale Order แต่เป็นการสร้างใหม่ที่ฟอร์ม Invoice
++ ales Header WHERE (Document Type=Filter(Invoice))
Warehouse
1. Item Journal มี Positive กับ Negative ไม่มีต้นทุน
2. Item Reclass ย้ายของ
2. BOM Journal ผลิตitemตาม KitBOM
วันอังคารที่ 3 กรกฎาคม พ.ศ. 2555
รายงาน cost ของแต่ละแผนก เป็นรายเดือน
Display Real GetCostAmt32()
{
real ret;
InventTrans _InventTrans;
InventJournalTrans
_InventJournalTrans;
InventDim _InventDim;
InventTable _InventTable;
Date FromDate,ToDate;
InventJournalTable
_InventJournalTable;
;
FromDate =
str2date("01/11/"+ int2str(_Year), 123);
ToDate =
endMth(FromDate);
select
SUM(CostAmountAdjustment) from _InventTrans
where (_InventTrans.DateFinancial >= FromDate
&& _InventTrans.DateFinancial <= Todate)
join _InventJournalTrans
where _InventJournalTrans.InventTransId ==
_InventTrans.InventTransId
&& _InventJournalTrans.Dimension[1] ==
SWAN_SumPostedMovement_CostAmt_1.Department // Department
join _InventTable
where _InventTable.ItemId
==_InventJournalTrans.ItemId
&& _InventTable.ItemGroupId ==
SWAN_SumPostedMovement_CostAmt_1.ItemGroupId
join _InventDim
where
(_Inventdim.inventDimId == _InventJournalTrans.InventDimId)
&&
_InventDim.InventLocationId == P_InventLocationId ; // P_InventLocationId
ret =
_InventTrans.CostAmountAdjustment;
adjCostNov = ret;
return ret;
}
สมัครสมาชิก:
บทความ (Atom)