Salı, Haziran 29, 2010

Invent Menu Item Create with X++

static void CreateInventMenu(AGC_InventParameters _inventParameters)
{

#AOT
TreeNode treeMenuItem;
TreeNode treeDisplayMenu;
TreeNode treeCreatedMenu;
TreeNode treeMenus;
TreeNode treeMenu;
str myMenuItem;

;
// myMenuItem = _inventParameters.Kodu + "Form_Agc";
// treeMenuItem = TreeNode::findNode(#MenuItemsDisplayPath);
//treeNode = TreeNode::findNode('\\Menus\\Invent\\setup');
treeDisplayMenu = TreeNode::findNode(#MenuItemsDisplayPath + "\\" + "InventParameters");
treeCreatedMenu = TreeNode::findNode(#MenuItemsDisplayPath+"\\"+_inventParameters.Kodu + "Form_Agc");

if (treeDisplayMenu)
{
//treeMenuItem.AOTadd(_inventParameters.Kodu+"Form_Agc");
treedisplayMenu.AOTinsert(treeCreatedMenu);
//treeDisplayMenu.AOTaddSubNode(str2int(myMenuItem));
//treeDisplayMenu = treeMenuItem.AOTfindChild(_inventParameters.Kodu+"Form_Agc");
treeDisplayMenu.AOTsave();
info ("Menuitem" + myMenuItem+ "Form_AGC" + "sub menu eklendi");
}


}

Create Form with X++

static void CreateForm()
{
Form form = new Form();
FormBuildDataSource fbds;
FormBuildDesign fbd;
FormBuildGridControl fgc;
FormBuildStringControl fsc;

FormRun fr;
str FormName;
args args = new ARgs();
;
//create design
fbd = form.addDesign("mydesign");
fbd.caption("AGC_InventParameters");
//info("Create Design");

//create datasource
fbds = form.addDataSource("myTable");
fbds.table(tablenum(AGC_InventParameters));
//info ("Create Design");


//add GridControl
fgc = fbd.addControl(FormControlType::Grid, "mygrid");
fgc.dataSource(fbds.name());
//info ("Add grid Control");

//add StringControl to Grid

//Kodu
fsc = fgc.addControl(FormControlType::String,"StringEdit1");
fsc.dataSource('AGC_InventParameters' );
fsc.dataField(fieldnuM(AGC_InventParameters, Kodu));
fsc.label("Kodu");
//Adi
fsc = fgc.addControl(FormControlType::String,"StringEdit2");
fsc.dataSource('AGC_InventParameters' );
fsc.dataField(fieldnuM(AGC_InventParameters, Adi));
fsc.label("Adi");
//EDT_Tipi
fsc = fgc.addControl(FormControlType::String,"StringEdit3");
fsc.dataSource('AGC_InventParameters' );
fsc.dataField(fieldnuM(AGC_InventParameters, EDT_tipi));
fsc.label("EDT_tipi");
//Yeni_EDT
fsc = fgc.addControl(FormControlType::String,"StringEdit4");
fsc.dataSource('AGC_InventParameters' );
fsc.dataField(fieldnuM(AGC_InventParameters, Yeni_EDT));
fsc.label("Yeni_EDT");
//Genişlik
fsc = fgc.addControl(FormControlType::String,"StringEdit5");
fsc.dataSource('AGC_InventParameters' );
fsc.dataField(fieldnuM(AGC_InventParameters, Genislik));
fsc.label("Genislik");


FormName = fsc.name("NEW");
//info (" Form " +FormName+ "olusturuldu");


//Open Form
args.object(form);
fr = new FormRun(args);
fr.run();
fr.wait();

}

Create MenuItem with X++

static void CreateMenuItem(AGC_InventParameters _inventParameters)
{
#AOT
TreeNode treeMenuItem;
TreeNode treeDisplayMenu;
TreeNode treeMenus;
TreeNode treeMenu;

;

treeMenuItem = TreeNode::findNode(#MenuItemsDisplayPath);
treeDisplaymenu = TreeNode::findNode(#MenuItemsDisplayPath + "\\" + "AGC_InventParameters");

if (treeDisplayMenu)
{
treeMenuItem.AOTadd(_inventParameters.Kodu+"Form_Agc");
treeDisplayMenu = treeMenuItem.AOTfindChild(_inventParameters.Kodu+"Form_Agc");
treeDisplayMenu.AOTsave();
}
//info ("Menuitem" + _inventParameters.Kodu+ "Form_AGC" + "olusturuldu.");

}

AXapta & X++

x++ kullanarak yaptıgım ilk gelıştırmeyı blogumda yayınlamaktan gurur ve de onur duyarım =)
Başlangıç konumunda olanlar için (benim gibi=)) faydalı olacagına emınım..


//Class declaration kısmında çalışacagımız tablonun aşağıda goruldugu gıbı nesnesını yaratıyoruz.
class FeatureManagement
{
AGC_InventParameters aGC_InventParameters;
}
//new kısmına çalışacagımız tabloyu parametre alacak şekılde ,atama yapıyoruz
void new(AGC_InventParameters _AGC_InventParameters)
{
;
aGC_InventParameters = _AGC_InventParameters;
}

//run methodu klasik olarak .net ortamında da kullanılan bir method,bu kodda kendı oluşturdugumuz methodları çağırabılıyoruz

public void run()
{
#OCCRetryCount

try
{
ttsbegin;

FeatureManagement::CreateEdt(aGC_InventParameters);
FeatureManagement::SetExtendDataType(aGC_InventParameters);
FeatureManagement::CreateTable(aGC_InventParameters);
FeatureManagement::AddNameField(aGC_InventParameters);
FeatureManagement::AddCodeField(aGC_InventParameters);
FeatureManagement::ChangeNameFieldExtend(aGC_InventParameters);
ttscommit;
}
catch (Exception::Deadlock)
{
retry;
}
catch (Exception::UpdateConflict)
{
if (appl.ttsLevel() == 0)
{
if (xSession::currentRetryCount() >= #RetryNum)
{
throw Exception::UpdateConflictNotRecovered;
}
else
{
retry;
}
}
else
{
throw Exception::UpdateConflict;
}
}

}
//Aşağıdaki kod x++ ile tablo oluşturmayı sağlıyor
static void CreateTable(AGC_InventParameters _inventParameters)
{
#AOT
#TreeNodeSysNodeType
TreeNode treenode;
TreeNode fieldsnode,field;
AOTTableFieldList FList,Flist1;
str props,prop;
str tablename,fieldname;

;


treenode=TreeNode::findNode(#TablesPath);
treenode.AOTadd(_inventParameters.Kodu + "Table_AGC").applObjectType();

treenode.AOTsave();
treenode=null;

//Add Code and Name Field
/* Flist=TreeNode::findNode("Data Dictionary\\Tables\\" + _inventParameters.Kodu+"Table_AGC" +"\\Fields");
Flist.AOTaddExtendedDataType("Code",typeof(_inventParameters.Kodu+"EDT_AGC"));
Flist.AOTaddExtendedDataType("Name",typeof(_inventParameters.EDT_Tipi));
//Flist.addString('Code');
//Flist.addString('Name');
Flist.AOTsave();*/
/*
//Code --< ExtendedDataType--<
tablename= _inventParameters.Kodu+"Table_AGC";
//info (tablename);
fieldsnode=TreeNode::findNode(@'\DataDictionary\Tables\tablename\Fields');
fieldname="Code";
field=fieldsnode.AOTfindChild(fieldname);
prop=field.AOTgetProperties(false,false);
prop=Global::setProperty(prop,'ExtendedDataType',_inventParameters.Kodu+"EDT_AGC");
field.AOTsetProperties(prop);
field.AOTsave();
field=null;
fieldsnode=null;
*/


}
//Aşağıdaki kod belırlı ozellıkleri taşıyan name isimli alanın oluşturulan tabloya eklenmesını sağlıyor
static void AddNameField(AGC_InventParameters _inventParameters)
{
TreeNode fieldNode;
TreeNode fieldNodeId;
TreeNode fieldNodename;
TreeNode treeNode;
TreeNode treeNode1;
Name fieldName =_inventParameters.Kodu+"EDT_AGC";

#Properties
#AOT
str properties,prop2, strAllowEdit,extend ;
;
treeNode = TreeNode::findNode("Data Dictionary\\Tables\\" +_inventParameters.Kodu+"Table_AGC" );
treeNode1 = treenode.AOTfindChild("fields");
fieldNode= treeNode1.AOTfindChild(fieldName);


if(!fieldNode)
{
fieldNode = TreeNode::findNode(#ExtendedDataTypesPath+"\\"+fieldName);
if(fieldNode)
treeNode1.AOTDrop(fieldNode);
fieldNode= treeNode1.AOTfindChild(fieldName);
properties =fieldNode.AOTgetProperties();
properties = SetProperty(properties, 'Name', 'Name');
fieldNode.AOTsetProperties(properties);
fieldNode = TreeNode::findNode("Data Dictionary\\Tables\\" + _inventParameters.Kodu+"Table_AGC" );
fieldNode.AOTsave();
treeNode.AOTsave();

}

treeNode.AOTsave();
}
//Eklenen name alanının ExtendedDataType özelliğinin değiştirilmesini sağlıyor
static void ChangeNameFieldExtend(AGC_InventParameters _inventParameters)
{
#AOT
#TreeNodeSysNodeType
#Properties;

TreeNode treeNode;
Name fieldName="Name";
str props;

;

treeNode = TreeNode::findNode("Data Dictionary\\Tables\\" +_inventParameters.Kodu+"Table_AGC" );
treeNode = treeNode.AOTfindChild("fields");
treeNode= treeNode.AOTfindChild(fieldName);
props = treenode.AOTgetProperties(false,false);
props = Global::setProperty(Props,'ExtendedDataType',_inventParameters.EDT_Tipi);
treenode.AOTsetProperties(props);
treenode.AOTsave();
}
//Aşağıdaki kod Code isimli alanın tabloya eklenmesını sağlıyor
static void AddCodeField(AGC_InventParameters _inventParameters)
{
TreeNode fieldNode;
TreeNode fieldNodeId;
TreeNode fieldNodename;
TreeNode treeNode;
TreeNode treeNode1;
Name fieldName =_inventParameters.Kodu+"EDT_AGC";

#Properties
#AOT
str properties,properties2, strAllowEdit ;
;
treeNode = TreeNode::findNode("Data Dictionary\\Tables\\" +_inventParameters.Kodu+"Table_AGC" );
treeNode1 = treenode.AOTfindChild("fields");
fieldNode= treeNode1.AOTfindChild(fieldName);


if(!fieldNode)
{
fieldNode = TreeNode::findNode(#ExtendedDataTypesPath+"\\"+fieldName);
if(fieldNode)
treeNode1.AOTDrop(fieldNode);
fieldNode= treeNode1.AOTfindChild(fieldName);
properties =fieldNode.AOTgetProperties();
if (hasProperty(properties, #PropertyAllowedit) == true)
{
properties="PROPERTIES\n" +
" Name #Code\n" +
"ENDPROPERTIES\n " ;
fieldNode.AOTsetProperties(properties);
}
treeNode.AOTsave();
}

treeNode.AOTsave();
}
//Aşağıdaki kod X++ ile EDT yaratmayı sağlıyor(Bu class client ortamında çalışmalı)
static void CreateEdt(AGC_InventParameters _inventParameters)
{
#AOT
#TreeNodeSysNodeType
treenode treenode;
xInfo xInfo= new xinfo();

;
treeNode = xInfo.rootNode();
treeNode = treeNode.AOTfindChild('Data Dictionary');
treeNode = treeNode.AOTfindChild('Extended Data Types');
treeNode=treeNode.AOTaddExtendedDataType(_inventParameters.Kodu+"EDT_AGC",Types::String);
treeNode.AOTsave();

}
//Aşağıdaki kod oluşturulan EDT nın belırlı ozellıklerının degıştırılmesını sağlıyor
static void SetExtendDataType(AGC_InventParameters _inventParameters)
{
#AOT
#TreeNodeSysNodeType
#Properties;

TreeNode treenode;
AOTTableFieldList FList;
str props,props2;

;

treenode=TreeNode::findNode(#ExtendedDataTypesPath).AOTfindChild(_inventParameters.Kodu+ "EDT_AGC");
Props = treenode.AOTgetProperties(false,false);
if (_inventParameters.EDT_Tipi)
{
Props = Global::setProperty(Props,'Extends',_inventParameters.EDT_Tipi);
}
else
{ if (_inventParameters.Yeni_EDT && _inventParameters.EDT_Tipi=="")
Props = Global::setProperty(Props,'Extends',_inventParameters.Yeni_EDT);
}
treenode.AOTsetProperties(props);
treenode.AOTsave();
treenode=null;


//label
treenode=TreeNode::findNode(#ExtendedDataTypesPath).AOTfindChild(_inventParameters.Kodu + "EDT_AGC");
props2=treenode.AOTgetProperties();
props2 = SetProperty(props2, "Label", _inventParameters.Adi);
treenode.AOTsetProperties(props2);
treenode.AOTsave();
treenode=null;


}
//

Pazartesi, Haziran 28, 2010

Pazar, Haziran 13, 2010

Yüzün

Benim kaderim bu,
öylece karşına oturup seyrediyorum
yüzünden geçen zamanları...

Küçük bir çocuk olan yüzün
annesinin kalbinin kapılarında kalmış...
Kırgın düşlerinde sakladığın...
İlk gençlik oluyor sonra yüzün
öyle eksik, öyle yarım kalmış büyümelerden durgun...

Sevdayla ışıyan,
çaresiz aşkların şiirlerinde mısra mısra yaşlanan yüzün...

Benim kaderim bu
öylece karşına oturup
seyrediyorum zamanın içinden geçen yüzlerini...

Bana sevdalı bir yüzün vardı eskiden
o şimdi yalnız içimde saklı...

CEZMİ ERSÖZ

ŞİMDİ BURADA DEĞİLSİN

şimdi burda değilsin....
ama beni duyuyosun...biliyorum...
kapat gözlerini benim için ve dinle n'olur...
bak yoksun...
bunun anlamını biliyomusunn....
yokluğun
yüreğimmdeki bu yıldızsız,
bu dipsiz, karanlık gece...
yokluğun, odamın duvarlarına astığım suretlerine bakarken,
unuttuğum dalgın gözlerim....
yokluğun yastığımda bıraktığın bu kimsesiz saç telleri...
sırf kalemini değdirdiğin için atmaya kıyamadığım bu kağıtlar...
her an gözümün önünde sakladığım mektupların,
peçetelere yazdığın şiirlerin,
hediyelerini sardığın paket kağıtların...
sen gidince,
hala sen kokuyodur, diye üzerime giydiğim
ve derinn derinn
soluduğumm giysilerin....
bu yarı deli...
bu hayattan kopuk ruhum...
kapat gözlerini ve bana baak....
ben ne diye varsa gördüğün, işte o senin yokluğun....
söyle.!
sana neyi anlatayımm...
sabaha karşı çalan telefonumun ucunda,
n'luuur bana hayattan kötü davranma diyen...sayıklayan..
o kırgın, o kendine çarpan sesini mi..! !

CEZMİ ERSÖZ

Cumartesi, Haziran 12, 2010

Şimdi biz neyiz biliyor musun?
Akıp giden zamana göz kırpan yorgun yıldızlar gibiyiz.
Birbirine uzanamayan
Boşlukta iki yalnız yıldız gibi
Acı çekiyor ve kendimize gömülüyoruz
Bir zaman sonra batık bir aşktan geriye kalan iki enkaz olacağız yalnızca
Kendi denizlerimizde sessiz sedasız boğulacağız
Ne kalacak bizden?
Bir mektup, bir kart, birkaç satır ve benim şu kırık dökük şiirim
Sessizce alacak yerini nesnelerin dünyasında
Ne kalacak geriye savrulmuş günlerimizden
Bizden diyorum, ikimizden
Ne kalacak?