Kamis, 28 Juli 2011

Requirement User perlu di cari solusi, begitu pula Requirement mood kita



spAXrtan ...

have you feel frustrated and depressed with your busy and makes you feel that you are the miserable person in the world. Well, sometimes we will get better if break it down with our best friend but do not get used. it's good if we learn to overcome our mood.

Ya benar. Mood yang tidak bagus-entah karena sakit, perdebatan dengan atasan atau dengan teman maupun karena situasi-kondisi lingkungan kerja/kantor yang sedang fooging, ga kebagian kursi atau meja(warung bakmi kalie), ada yang kentut dll, secara tidak sadar membuat perubahan pada diri kita. misalnya ...
1. mendadak menjadi saingan-nya Tukul Arwana.
2. bikin bingung arah mouse mau kemana (mengscroll mouse secara bolak-balik).
3. raib dari meja kerja-pergi jalan-jalan.
4. menjadi mahluk paling liar dan buas di kantor-sensitif.
5. jajan (ga pake tanda kutip yah) berlebihan.ujung-ujungnya takut dengan timbangan badan.
6. ada juga yang sampai kehilangan semangat hidup sampai
7. Nyuruh sesuatu yang ga penting(cabutin uban) ke OB kita dll.

Ada bebarapa cara yang biasa-nya saya lakukan jika saya menghadapi situasi yang membuat mood ga jelas tak menentu. Saya biasa ... dari pada membolak-balik/memutar-mutar scroll pada mouse saya mengambil pinsil dan kertas - mulai menggambar kadang Saya juga bersenandung ria. Bukan bermaksud menjadi so' baik atau so' alim terkadang saya menunggu datang-nya waktu sholat untuk bisa mengadu pada-Nya.

Dr. Donald Schnell, salah satu pendiri dari The Spiritual Java Coaching Programme (http://www.spiritualjava.com/) memberikan 7 langkah yang bisa Anda lakukan untuk menuju kehidupan yang lebih baik.

  1. Selalu tanyakan pada diri Anda apabila Anda frustrasi menghadapi masalah. Misal: “Bagaimana caranya agar pekerjaan ini bisa lebih menyenangkan, lebih mudah dikerjakan, lebih cepat selesai, lebih baik?”
  2. Ciptakan ketertarikan dan rasa ingin tahu yang besar terhadap diri sendiri atau hal-hal di sekitar Anda. Sikap ini akan membuat Anda termotivasi untuk mengetahui sesuatu yang baru dan menyelesaikan sebuah masalah.
  3. Terima kekurangan Anda. Semua orang memiliki kekurangan, jadi jangan terfokus bagaimana caranya agar Anda tidak memiliki kekurangan. Sebaliknya, carilah teman yang sekiranya bisa membantu Anda mengatasi kekurangan tersebut.
  4. Jangan pernah berhenti belajar. Sama halnya dengan tubuh kita, otak kita juga perlu dilatih setiap hari, jika tidak otak kita akan menjadi lemah. Buka mata Anda dan Anda akan lihat setiap hari pasti ada hal baru yang bisa Anda pelajari dan membuat hidup Anda menjadi lebih baik.
  5. Maksimalkan hari ini. Maksudnya jangan sia-siakan waktu dan belajar menghargai hal-hal baik dan benar. Jangan sampai Anda kehilangan hal-hal yang menakjubkan dalam hidup Anda hari ini, ketika Anda disibukkan dengan mereka-reka masa depan.
  6. Jangan hidup di masa silam. Hal ini menekankan Anda untuk konsentrasi di masa ini yaitu hari ini. Yang lalu biarlah berlalu karena tidak ada yang bisa Anda lakukan untuk memperbaikinya kecuali yang bisa Anda lakukan hari ini. Jadi, apa yang bisa Anda lakukan hari ini, lakukanlah!!
  7. Berenang mengikuti arus. Jangan membuang waktu dengan hal yang tidak dapat Anda kendalikan. Atau dengan kata lain, konsentrasilah dengan apa yang dapat Anda kontrol. Misal: pekerjaan Anda, buku yang Anda baca, teman yang Anda peluk, kapan harus tertawa, kemana Anda pergi, apa yang Anda pikirkan atau lakukan, dsb.
Sumber: conectique

Selain langkah-langkah tersebut ada baiknya kalau ditambah dengan :

  1. Jaga kondisi kesehatan, apapun langkah yang kita tempuh dari nomor 1-7, jika badan sedang sakit, usaha tersebut tidak akan optimal, bahkan mungkin gagal
  2. kita niatkan apa yang kita lakukan semua adalah memiliki nilai ibadah. sesuatu yang dilakukan serius, tidak main-main/malas-malasan, punya potensi untuk bernilai ibadah.
Daftar pustaka:
http://mediasurviva.wordpress.com/

Progress Bar ...


spAXrrtaaann!!


There's another thing that i always forget to inform the user "Mem ... the process is still running" ... spAXrrtan!, you can use this for your looping ...

YeAH! ...this Progress Bar is very UseFul to facing your unpatience analyst/functional and your user/client also ... show them the application is still running.

Okay to all Unpatience Analyst/Functional and User/Client
please stop whining and worried the process have failed ...



check this out ... Progress Bar

Rabu, 27 Juli 2011

Parameter menjadi default Bag.2


SpAXrrrttaaaaaaaaann!! ...


Masih ingatkan dengan membuat parameter menjadi default dengan cara mengset-up Range yang ada di Datasource dan membuat Status Properties-nya menjadi Lock?! ...

Selain dengan cara demikian ... +>atus - another SpAXrtan juga mempunyai cara lain yaitu dengan cara coding, maksudnya kita bisa membuat parameter kita menjadi default dengan cara membuat method Initquery().

Penjelasan lebih lanjut ada di bawah ini
http://atus.wordpress.com/2011/07/26/method-dalam-report-yg-sering-digunakan/

Try it at Home ....
Selamat Mencoba ...

Selasa, 26 Juli 2011

SysQuery Class

SpAXrtaaaaaaann!! ...


i want to talk about SysQuery ...
Goose this class is very usefull to make Parameter value u dont have to worried about type of the paramter
its effected to String,Enum,Int,Real etc ...

n this is a sample of using SysQuery

for a range like ...range date (ex.fromdate to date)
element.query().dataSourceName('PurchLine').addRange(fieldnum(PurchLine, DeliveryDate)).value(sysQuery::range(fromdate,todate));

for one value like String,Int,Real
element.query().dataSourceName('PurchLine').addRange(fieldnum(PurchLine, DeliveryDate)).value(sysQuery::value(EmployeeId));

that's alll

you can try it at home ...

Senin, 25 Juli 2011

Sampel penggunaan Class Query


spAXrrrtaaaaaann!! ...

For this session i try to create a report without Datasource Node.
Just filled blank the Data Source node

at ClassDeclaration method you can filled it with
and at the fetch method fill it with this code

Okay ... this is the next step for you to show the data at the report.
Create a new Design Report then right click at the AutoDesignSpecs and choose 'New->Body'.
Now you have a Body node and you can set-up the properties from right click at the Body node then choose 'Properties'.
Set up the 'Table' Properties and fill it with 'Purch Line'. Dont forget to set up 'Name' properties with the same name(table's name).
Create some Field String by Right Click at the body and choose 'New Control -> String'. You can fill the properties with 'Table' = 'PurchLine' 'DataField' = 'PurchId'.

Save n Compile your Report. Drag your report to the Output Menu item. Give it a label n save it.
for some improvisation you can add Display method at that Body Node
display PurchIdBase getPurchId()
{
;
return _purchLine.PurchId;
}


and one Enum field that referred to PurchStatus.

Dont Forget to Set-up your TableGroup



spAXrrtaaaaaaaaann!! ...


Its been for a few month iv been working with Ax Standard. Usually if i make some table i don't care about this properties TableGroup. It's changed after iv got run the Sysdatabasetransdelete ...
there is some tables that iv made but when the class Sysdatabasetransdelete running n done ... my tables doesn't changed - especially for the records

After iv checked in the Sysdatabasetransdelete class... there's a some table group criteria.

Miscellaneous
Parameter
Group
Main
Transaction
Worksheetheader and
Worksheetline

n Sysdatabasetransdelete class is execute the Group of Table :
Transaction
WorkSheetHeader and
WorkSheetLine

btw ... maybe u wondering why i used Sysdatabasetransdelete class?? ...
This Class is very useful to delete all transaction that have been recorded on a tables .... so its makes our application like start from the beginning. It is deleted all transaction but not for the basic data.

So for the spAXrtan ..dont forget to set up ur TableGroup on your Tables ....

Jumat, 22 Juli 2011

Report dengan Dialog dan Method LookUp


OOOoooiII spAXrtan ... mau posting lagi nih ..

Inget dengan postingan saya yang tentang LookUp dengan parameter kan?
ya ... itu nempelnya di sebuah Form.
Dan sekarang aku menghadapi suatu report yang harus ada lookup seperti itunya.
so .. ada yang bisa Bantu ga?
Report tersebut Running dengan DialogForm dan juga extends ke RunBasebatch. DialogField yang ditampilkan
untuk parameter adalah ItemGroupId dan ItemId. Dimana ItemId meLookup berdasarkan Value dari ItemGroup.
...
Untuk disebuah fOrm aku sudah tahu bagaimana caranya tapi bagaimana jika hal ini terjadi disebuah Dialog RunBaseBatch

Akhirnya demi mengimplementasikan permintaan parameter untuk report yang menggunakan Lookup berdasarkan inputan
aku menggunakan Form untuk dialog Reportnya.
pertama aku membuat form dengan 3 buah object didalamnya
yaitu FieldString ItemGroupId
FieldString ItemId
dan terkahir Button
setelah itu di class Declaration Form itu aku tambahkan variable berupa array

dan aku buat sebuah method di form tersebut ... sebut saja namanya lemparvalue().
void lemparvalue()
{
args args;
Menufunction mnu;
;
data = new array(types::String);
data.value(1,itemgroupid.valueStr());
data.value(2,itemid.valueStr());

args = new args();
args.parmObject(data);
mnu = new Menufunction(menuitemoutputstr(Itemdeliveryreport),menuitemtype::Output);
mnu.run(args);
}

sebelumnya aku sudah membuat report dengan nama Itemdeliveryreport.

tak lupa di FieldString ItemId aku tambahkan method LookUp
public void lookup()
{

Query query = new Query();
QueryBuildDataSource queryBuildDataSource;
QueryBuildRange queryBuildRange;

SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(InventTable), This);
;

sysTableLookup.addLookupField(fieldNum(InventTable, ItemId));
sysTableLookup.addLookupField(fieldNum(InventTable, ItemGroupId));


queryBuildDataSource = query.addDataSource(tableNum(InventTable));
queryBuildRange = queryBuildDataSource.addRange(fieldNum(InventTable, ItemGroupId));

queryBuildRange.value(ItemGroupId.valueStr());
sysTableLookup.parmQuery(query);

sysTableLookup.performFormLookup();
}

terakhir di Button-method Cliked
void clicked()
{
;
super();

element.lemparvalue();
element.close();
}

Di Report ItemDeliveryreport yang sudah aku buat aku deklarasikan sebuah Variable array

public class ReportRun extends ObjectRun
{
....
....
....
Array datadata;

}
dan juga sebuah method init()
public void init()
{


;
super();

datadata = this.args().parmObject();


}

terakhir ..tentu saja di Fetch()
karena nilai yang dilempar itu ada 2 nilai pertama ItemGroupId dan ItemId, dan sudah dimasukan ke variable data yang ada di form maka aku harus memecahnya kembali dengan cara
public boolean fetch(){
boolean ret;
ItemGroupId _itemGroup;
ItemId _itemId;

//ret = super();
ret = true;

_itemgroup = datadata.value(1);
_itemId = datadata.value(2);

///selanjutnya silahkan anda manfaatkan atau daya gunakan kedua variable yang sudah berisi nilai-nilai yang diambil dari form inputan tadi.
..........
........
.........
..........
}

say thanks to dulu sebelum pamit ...thanks yak om Atus

Okay SpAXrtan ... mangga di cobian ... :)

Minggu, 10 Juli 2011

Parameter menjadi default


spAXrrtaaaaaaann!! ...

Membuat parameter yang kita inginkan menjadi default (di sebuah report)
di Report yang kita buat, kita bisa memasukan/men-set-nya di
Report
Datasources
Query
DataSource (yang kita masukan/set)
Ranges

(disini kita masukan field dari Datasource kita)
(klik kanan di field yang sudah kita masukan ke node Ranges pilih properties)
(pada properties Value isi dengan Data/record yang kita maksud)
(pada properties status isi dengan Lock)

Save & Compile

Selamat Mencoba ...

Erorr CS1963 - An expression tree may not contain a dynamic operation.

Kali ini saya mendapatkan erorr dengan code CS1963, padahal sebelumnya saya sudah mendefinisikan 'var item in Model' di @foreach(var...