Berikut ini digunakan untuk melakukan insert data ke 2 company dengan menggunakan class.
Syntax nya changeCompany("HSP").
static void Create_to_2Company(Args _args)
{
AxPurchTable table;
AxPurchLine line;
;
table = new AxPurchTable();
table.parmOrderAccount('');
table.parmInventLocationId('WAREHOUSE');
table.save();
line = new AxPurchLine();
line.axPurchTable(table);
line.parmItemId('A001'); // Item number Q987
line.parmPurchQty(12); // 12 pcs.
line.save();
changeCompany("HSP")
{
table = new AxPurchTable();
table.parmOrderAccount('');
table.parmInventLocationId('WAREHOUSE');
table.save();
line = new AxPurchLine();
line.axPurchTable(table);
line.parmItemId('A001'); // Item number Q987
line.parmPurchQty(12); // 12 pcs.
line.save();
}
}
Sunday, March 18, 2012
Monday, March 5, 2012
Lookup modifikasi
Berikut ini digunakan untuk membuat lookup sendiri. Kasusnya, nambah form dan EditString, namun tidak ada relasi ke datasource (EdiString lepasan gitu.....)
public void lookup()
{
//super();
//Inisialisasi sysTableLookupClass
sysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventItemgroup), this);
Query query = New Query();
QueryBuildDataSource qbdsTbl1, qbdsTbl2;
QueryBuildRange qbr;
;
//Tambah tabel
qbdsTbl1 = query.addDataSource(tableNum(InventItemgroup));
//Tambah rentang Query untuk membatasi daftar record
qbr = qbdsTbl1.addRange(fieldNum(InventItemgroup,ItemGroupId));
qbr.value();
qbr = qbdsTbl1.addRange(fieldNum(InventItemgroup,Name));
qbr.value();
qbdsTbl1.relations(true);
sysTableLookup.addLookupfield(fieldNum(InventItemgroup, ItemGroupId));
sysTableLookup.addLookupfield(fieldNum(InventItemgroup, Name));
sysTableLookup.parmQuery(query);
//Tampilkan drop down
sysTableLookup.performFormLookup();
}
public void lookup()
{
//super();
//Inisialisasi sysTableLookupClass
sysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventItemgroup), this);
Query query = New Query();
QueryBuildDataSource qbdsTbl1, qbdsTbl2;
QueryBuildRange qbr;
;
//Tambah tabel
qbdsTbl1 = query.addDataSource(tableNum(InventItemgroup));
//Tambah rentang Query untuk membatasi daftar record
qbr = qbdsTbl1.addRange(fieldNum(InventItemgroup,ItemGroupId));
qbr.value();
qbr = qbdsTbl1.addRange(fieldNum(InventItemgroup,Name));
qbr.value();
qbdsTbl1.relations(true);
sysTableLookup.addLookupfield(fieldNum(InventItemgroup, ItemGroupId));
sysTableLookup.addLookupfield(fieldNum(InventItemgroup, Name));
sysTableLookup.parmQuery(query);
//Tampilkan drop down
sysTableLookup.performFormLookup();
}
Wednesday, February 22, 2012
Membuat dialog sederhana dengan lookup dan input value
Berikut ini dialog dasar dengan lookup dan inputan value.
static void OpenDialogItemGroup(Args _args)
{
Dialog dialog = new Dialog("Item grup selection");
DialogField fieldGroup;
DialogField fieldDisc;
ItemgroupId ItemgroupId;
Amount Amount;
;
fieldGroup = dialog.addField(typeid(ItemgroupId));
fieldDisc = dialog.addField(typeid(Amount),"Disc. Pct.");
if (dialog.run())
{
info("You selected: " + fieldGroup.value() + " " +int2str(fieldDisc.value()));
}
}
{
Dialog dialog = new Dialog("Item grup selection");
DialogField fieldGroup;
DialogField fieldDisc;
ItemgroupId ItemgroupId;
Amount Amount;
;
fieldGroup = dialog.addField(typeid(ItemgroupId));
fieldDisc = dialog.addField(typeid(Amount),"Disc. Pct.");
if (dialog.run())
{
info("You selected: " + fieldGroup.value() + " " +int2str(fieldDisc.value()));
}
}
Tuesday, August 2, 2011
Contoh manipulasi tanggal di AX 2009
static void Testing_Tgl(Args _args)
{
str tglitem,tglstr,blnstr,thnstr,tglwalbln;
date tgl,akhirbln;
date d = today(),x;
int i;
;
tglitem = '2011/06/10';
tglstr=date2str(str2date(tglitem,321), 123, 2, 0, 0, 0,0);
blnstr=date2str(str2date(tglitem,321), 123, 0, 0, 2, 0,0);
thnstr=date2str(str2date(tglitem,321), 123, 0, 0, 0, 0,4);
info('Tgl :' +tglstr);
info('Bln :' +blnstr);
info('thn :' +thnstr);
info('Waktu :'+time2str(timeNow(),TimeSeparator::Dot, TimeFormat::Hour24));
akhirbln = EndMth(str2date(tglitem,321));
info('Tgl Awal Bulan '+blnstr+': '+date2str(str2date(thnstr+blnstr+'01',321), 123,2,0,0,0,0));
info('Tgl Akhir Bulan '+blnstr+': '+date2str(akhirbln, 123, 2, 1, 0, 1,0));
// info(date2str(str2date(thnstr+blnstr+tglstr,321), 123, 2, 1, 2, 1,4));
info(date2str(str2date('201110'+tglstr,321), 123, 2, -1, 2, -1,4));
}
{
str tglitem,tglstr,blnstr,thnstr,tglwalbln;
date tgl,akhirbln;
date d = today(),x;
int i;
;
tglitem = '2011/06/10';
tglstr=date2str(str2date(tglitem,321), 123, 2, 0, 0, 0,0);
blnstr=date2str(str2date(tglitem,321), 123, 0, 0, 2, 0,0);
thnstr=date2str(str2date(tglitem,321), 123, 0, 0, 0, 0,4);
info('Tgl :' +tglstr);
info('Bln :' +blnstr);
info('thn :' +thnstr);
info('Waktu :'+time2str(timeNow(),TimeSeparator::Dot, TimeFormat::Hour24));
akhirbln = EndMth(str2date(tglitem,321));
info('Tgl Awal Bulan '+blnstr+': '+date2str(str2date(thnstr+blnstr+'01',321), 123,2,0,0,0,0));
info('Tgl Akhir Bulan '+blnstr+': '+date2str(akhirbln, 123, 2, 1, 0, 1,0));
// info(date2str(str2date(thnstr+blnstr+tglstr,321), 123, 2, 1, 2, 1,4));
info(date2str(str2date('201110'+tglstr,321), 123, 2, -1, 2, -1,4));
}
Friday, June 10, 2011
Mengetahui koneksi user di SQL Server
SELECT d.name, p.login_time,p.status,p.hostname,p.loginame
from master.dbo.sysprocesses p
join master.dbo.sysdatabases d on p.dbID = d.dbID
Monday, May 30, 2011
Import General Journal dengan CSV (termasuk Fixed asset & prepayment)
static void Import_GL_LedgerJournal_CSV(Args _args)///and also it will import the data from the Excel
{
LedgerJournalName ledgerJournalName;
LedgerJournalTable ledgerjournalTable;
Axledgerjournaltrans axledgerjournaltrans;
LedgerJournalTrans ledgerJournalTrans;
LedgerJournalTrans_Asset ledgerJournalTrans_asset;
LedgerJournalACType ledgerJournalACType;
Numberseq _NumberSeq;
Voucher numbervoucher;
Dialog dialog;
DialogField dialogField,dialogField2,dialogdate;
Filename filename;
CommaIO io;
Container con;
Container filterCriteria;
str val, qtyStr, priceStr, tgl, tgl_due;
str acctype,offacctype,_bookId,prepay;
COMVariant cOMVariant;
int i,j,k;
SysOperationProgress simpleProgress;
#avifiles
;
Dialog = new dialog();
dialogField = dialog.addField(typeId(FileNameOpen),'File Name');
filterCriteria = ['*.csv','*.csv'];//// To filter only CSV files
filterCriteria = dialog.filenameLookupFilter(filterCriteria);
dialog.run();
if(dialog.run())
fileName = dialogField.value();
info(filename);
io = new CommaIO(fileName, "r");
io.read();
io.inFieldDelimiter(";");
if(fileName)
{
ttsBegin;
ledgerJournalTable.JournalName = "GL-BEGIN";
ledgerJournalTable.Name = " Saldo Awal ";
ledgerJournalTable.initFromLedgerJournalName();
ledgerJournalTable.insert();
ttscommit;
_NumberSeq = NumberSeq::newGetVoucherFromCode(ledgerJournalName::find(ledgerJournalTable.JournalName).VoucherSeries);
numbervoucher = _NumberSeq.voucher();
simpleProgress = SysOperationProgress::newGeneral(#aviUpdate,'Importing Transactions',100);///SysProgressOperation
while((io.status()==IO_Status::Ok))
{
con = io.read();
if (conlen(con) == 26)
{
j++;
simpleProgress.incCount();
simpleprogress.setText(strfmt("Transaction Imported: %1",i));
sleep(10);
tgl = conPeek(con, 22);
tgl_due = conPeek(con, 22);
_BookId = conPeek(con, 19);
acctype = conPeek(con, 3);
offacctype = conPeek(con, 2);
prepay = conPeek(con, 26);
axledgerjournaltrans = new Axledgerjournaltrans();
axledgerjournaltrans.parmJournalNum(ledgerJournalTable.JournalNum);
// mm-dd-yy --> 213, dd-mm-yy --> 123
axledgerjournaltrans.parmTransDate(str2date(tgl,213));
//info(tgl + ' - ' + date2str(str2date(tgl,213),123,2,2,2,2,4));
axledgerjournaltrans.parmVoucher(conPeek(con, 17));
switch(acctype) //accounttype
{
case "Ledger":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Ledger);
break;
case "Customer":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Cust);
break;
case "Vendor":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Vend);
break;
case "Fixed assets":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::FixedAssets);
break;
case "Bank":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Bank);
break;
}
axledgerjournaltrans.parmAccountNum(conPeek(con, 4));
axledgerjournaltrans.parmTxt(conPeek(con, 6));
axledgerjournaltrans.parmPostingProfile(conPeek(con, 8));
if (prepay == "Y" )
{
axledgerjournaltrans.parmPrepayment(Noyes::Yes);
}
else
{
axledgerjournaltrans.parmPrepayment(Noyes::No);
}
axledgerjournaltrans.parmAmountCurDebit(conPeek(con, 11));
axledgerjournaltrans.parmAmountCurCredit(conPeek(con, 10));
switch(offacctype) //offset accounttype
{
case "Ledger":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Ledger);
break;
case "Customer":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Cust);
break;
case "Vendor":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Vend);
break;
case "Fixed assets":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::FixedAssets);
break;
case "Bank":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Bank);
break;
}
axledgerjournaltrans.parmOffsetAccount(conPeek(con, 5));
axledgerjournaltrans.parmDue(str2date(tgl_due,123));
axledgerjournaltrans.parmDocumentDate(str2date(tgl,123));
axledgerjournaltrans.save();
/*
if(acctype == "Fixed assets")
{
if(axledgerjournaltrans.ledgerJournalTrans().RecId)
{
ttsbegin;
ledgerJournalTrans_asset.RefRecId = axledgerjournaltrans.ledgerJournalTrans().RecId;
ledgerJournalTrans_asset.AssetId = axledgerjournaltrans.ledgerJournalTrans().getAssetId();
ledgerJournalTrans_Asset.Company = axledgerjournaltrans.ledgerJournalTrans().getAssetCompany();
ledgerJournalTrans_asset.BookId = _BookId;
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Acquisition;
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Depreciation;
if(assetype == "A")
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Acquisition;
else
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Depreciation;
ledgerJournalTrans_asset.insert();
ttscommit;
}
}
*/
i++;
} //if
}//while
}//if filename
}
{
LedgerJournalName ledgerJournalName;
LedgerJournalTable ledgerjournalTable;
Axledgerjournaltrans axledgerjournaltrans;
LedgerJournalTrans ledgerJournalTrans;
LedgerJournalTrans_Asset ledgerJournalTrans_asset;
LedgerJournalACType ledgerJournalACType;
Numberseq _NumberSeq;
Voucher numbervoucher;
Dialog dialog;
DialogField dialogField,dialogField2,dialogdate;
Filename filename;
CommaIO io;
Container con;
Container filterCriteria;
str val, qtyStr, priceStr, tgl, tgl_due;
str acctype,offacctype,_bookId,prepay;
COMVariant cOMVariant;
int i,j,k;
SysOperationProgress simpleProgress;
#avifiles
;
Dialog = new dialog();
dialogField = dialog.addField(typeId(FileNameOpen),'File Name');
filterCriteria = ['*.csv','*.csv'];//// To filter only CSV files
filterCriteria = dialog.filenameLookupFilter(filterCriteria);
dialog.run();
if(dialog.run())
fileName = dialogField.value();
info(filename);
io = new CommaIO(fileName, "r");
io.read();
io.inFieldDelimiter(";");
if(fileName)
{
ttsBegin;
ledgerJournalTable.JournalName = "GL-BEGIN";
ledgerJournalTable.Name = " Saldo Awal ";
ledgerJournalTable.initFromLedgerJournalName();
ledgerJournalTable.insert();
ttscommit;
_NumberSeq = NumberSeq::newGetVoucherFromCode(ledgerJournalName::find(ledgerJournalTable.JournalName).VoucherSeries);
numbervoucher = _NumberSeq.voucher();
simpleProgress = SysOperationProgress::newGeneral(#aviUpdate,'Importing Transactions',100);///SysProgressOperation
while((io.status()==IO_Status::Ok))
{
con = io.read();
if (conlen(con) == 26)
{
j++;
simpleProgress.incCount();
simpleprogress.setText(strfmt("Transaction Imported: %1",i));
sleep(10);
tgl = conPeek(con, 22);
tgl_due = conPeek(con, 22);
_BookId = conPeek(con, 19);
acctype = conPeek(con, 3);
offacctype = conPeek(con, 2);
prepay = conPeek(con, 26);
axledgerjournaltrans = new Axledgerjournaltrans();
axledgerjournaltrans.parmJournalNum(ledgerJournalTable.JournalNum);
// mm-dd-yy --> 213, dd-mm-yy --> 123
axledgerjournaltrans.parmTransDate(str2date(tgl,213));
//info(tgl + ' - ' + date2str(str2date(tgl,213),123,2,2,2,2,4));
axledgerjournaltrans.parmVoucher(conPeek(con, 17));
switch(acctype) //accounttype
{
case "Ledger":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Ledger);
break;
case "Customer":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Cust);
break;
case "Vendor":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Vend);
break;
case "Fixed assets":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::FixedAssets);
break;
case "Bank":
axledgerjournaltrans.parmAccountType(ledgerJournalACType::Bank);
break;
}
axledgerjournaltrans.parmAccountNum(conPeek(con, 4));
axledgerjournaltrans.parmTxt(conPeek(con, 6));
axledgerjournaltrans.parmPostingProfile(conPeek(con, 8));
if (prepay == "Y" )
{
axledgerjournaltrans.parmPrepayment(Noyes::Yes);
}
else
{
axledgerjournaltrans.parmPrepayment(Noyes::No);
}
axledgerjournaltrans.parmAmountCurDebit(conPeek(con, 11));
axledgerjournaltrans.parmAmountCurCredit(conPeek(con, 10));
switch(offacctype) //offset accounttype
{
case "Ledger":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Ledger);
break;
case "Customer":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Cust);
break;
case "Vendor":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Vend);
break;
case "Fixed assets":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::FixedAssets);
break;
case "Bank":
axledgerjournaltrans.parmOffsetAccountType(ledgerJournalACType::Bank);
break;
}
axledgerjournaltrans.parmOffsetAccount(conPeek(con, 5));
axledgerjournaltrans.parmDue(str2date(tgl_due,123));
axledgerjournaltrans.parmDocumentDate(str2date(tgl,123));
axledgerjournaltrans.save();
/*
if(acctype == "Fixed assets")
{
if(axledgerjournaltrans.ledgerJournalTrans().RecId)
{
ttsbegin;
ledgerJournalTrans_asset.RefRecId = axledgerjournaltrans.ledgerJournalTrans().RecId;
ledgerJournalTrans_asset.AssetId = axledgerjournaltrans.ledgerJournalTrans().getAssetId();
ledgerJournalTrans_Asset.Company = axledgerjournaltrans.ledgerJournalTrans().getAssetCompany();
ledgerJournalTrans_asset.BookId = _BookId;
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Acquisition;
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Depreciation;
if(assetype == "A")
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Acquisition;
else
ledgerJournalTrans_asset.TransType = AssetTransTypeJournal::Depreciation;
ledgerJournalTrans_asset.insert();
ttscommit;
}
}
*/
i++;
} //if
}//while
}//if filename
}
Saturday, May 28, 2011
Buat Master Aset
static void GL_ImporttAsset(Args _args)
{
axAssetTable _axAssetTable;
assetBook _assetBook;
AssetId _AsseiId;
;
if (Box::yesNo("Create New Asset ?",DialogButton::No))
{
_axAssetTable = new axAssetTable();
_axAssetTable.parmAssetGroup("INV.00");
_axAssetTable.parmAssetId("008001987001");
_axAssetTable.parmName("NEW ASSET");
_axAssetTable.save();
ttsBegin;
select forUpdate _assetBook
where _assetBook.AssetId == "008001987001" && _assetBook.BookId == "Y02";
_assetBook.Depreciation = NoYes::Yes;
_assetBook.update();
ttsCommit;
}
}
{
axAssetTable _axAssetTable;
assetBook _assetBook;
AssetId _AsseiId;
;
if (Box::yesNo("Create New Asset ?",DialogButton::No))
{
_axAssetTable = new axAssetTable();
_axAssetTable.parmAssetGroup("INV.00");
_axAssetTable.parmAssetId("008001987001");
_axAssetTable.parmName("NEW ASSET");
_axAssetTable.save();
ttsBegin;
select forUpdate _assetBook
where _assetBook.AssetId == "008001987001" && _assetBook.BookId == "Y02";
_assetBook.Depreciation = NoYes::Yes;
_assetBook.update();
ttsCommit;
}
}
Subscribe to:
Posts (Atom)