Script menusune otomatik query oluşturan bir kod eklemek

Merhaba
Daha önce ax editörunda bulunan script menusune nasıl ekleme yapılacağından bahsetmiştik. Ben kendi işlerimde kullanmak üzere bir çok ekleme yaptım bir tanesini sizinle paylaşacağım.
İki tablo ismi  ve join tipini soran ve bu bilgilere göre query hazırlayan kod örneğimiz şöyle:
Öncelikle EditorScripts sınıfımıza şu metodu ekliyoruz.
[sourcecode language=”csharp”]
public void FD_Query(Editor editor)
{
xppSource       xppSource       = new xppSource();
Dialog          dialog          = new Dialog(“Query oluştur”);
DialogField     dlgTablename    = dialog.addField(typeid(TableName));
DialogField     dlgTablename2   = dialog.addField(typeid(TableName));
DialogField     dlgExtTypeName  = dialog.addField(typeid(joinMode));
Source          template;
;
if (dialog.run())
{
template = xppSource.Query2Method(dlgTablename.value() ,
dlgTablename2.value(),dlgExtTypeName.value() );
editor.insertLines(template);
}
}
[/sourcecode]
Sonra xppSource sınıfımıza şu metodu ekliyoruz.

[sourcecode language=”csharp”]
Source Query2Method(
TableName         tableName,
TableName         tableName2,
JoinMode          joinmode  )
{
;
indentLevel = 4;
source +=this.indent()+ strfmt(“%1               %1;”, tableName)             +#newline;
source +=this.indent()+ strfmt(“%1               %1;”, tableName2)            +#newline+#newline;
source +=this.indent()+ strfmt(“Query                   q;”)                  +#newline;
source +=this.indent()+ strfmt(“QueryRun                qRun;”)               +#newline;
source +=this.indent()+ strfmt(“QueryBuildRange         qbr;”)                +#newline;
source +=this.indent()+ strfmt(“QueryBuildDataSource    qbds%1;”,tableName)   +#newline;
source +=this.indent()+ strfmt(“QueryBuildDataSource    qbds%1;”,tableName2)  +#newline+#newline;
source +=this.indent()+ strfmt(“;”)                                           +#newline+#newline;
source +=this.indent()+ strfmt(“q       = new Query();”)                      +#newline;
source +=this.indent()+ strfmt(“qbds%1    = q.addDataSource(TableNum(%1));”,tableName)  +#newline;
source +=this.indent()+ strfmt(“qbds%1    = qbds%2.addDataSource(TableNum(%1));”,
tableName2 ,tableName)+#newline;
source +=this.indent()+ strfmt(“qbds%1.relations(true);”,tableName2)          +#newline;
source +=this.indent()+ strfmt(“//qbds%1.addLink(tablenum(%2 , fieldname),tablenum(%1 , fieldName));”,
tableName2, tableName)+#newline;
source +=this.indent()+ strfmt(“qbds%1.joinMode(joinMode::%2);”,tableName2,joinmode) +#newline;
source +=this.indent()+ strfmt(“qRun    = new QueryRun(q);”)                  +#newline;
source +=this.indent()+ strfmt(“while(qRun.next())”)                          +#newline;
this.beginBlock();
source +=this.indent()+strfmt(”    %1 = qRun.get(TableNum(%1));”,tableName )  +#newline;
source +=this.indent()+strfmt(”    %1 = qRun.get(TableNum(%1));”,tableName2 ) +#newline;
this.endBlock();
return source;
}
[/sourcecode]
Kod editorunden script menusune tıklarsanız FD ve  Query menusunu göreceksiniz. Oluşturup bakın istediğiniz gibi değiştirebilir farklı metodlar ekleyebilirsiniz.
Selamlar.
 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Dijital Dönüşümünüzü AI İle Hızlandırın

Dynamics 365 ve AI destekli çözümlerle iş süreçlerinizi optimize edin, verinizi anlamlı içgörülere dönüştürün ve büyümenizi sürdürülebilir hale getirin.

AI-Ready Enterprise Partner

Microsoft Dynamics 365 ERP, CRM, Power Platform, Azure, Power BI ve yapay zekâ çözümlerini bir araya getirerek kurumsal sistemlerinizi güçlendirir, operasyonel karmaşıklığı azaltır ve geleceğe hazır bir dijital mimari tasarlarız.

DMR olarak Microsoft ekosisteminde Business Applications, Digital & App Innovation ve Data & AI alanlarındaki yetkinliklerimizle; ERP’den CRM’e, bulut çözümlerinden yapay zekâ uygulamalarına kadar uçtan uca dijital dönüşüm hizmetleri sunuyoruz.

Dynamics 365 Finance ve Supply Chain specialization uzmanlığımızı, Tier 1 CSP gücümüzle birleştirerek müşterilerimize danışmanlık, uygulama, lisanslama ve destek süreçlerinde bütünleşik bir hizmet modeli sağlıyoruz.

DMR Göztepe Merkez Ofis

Eğitim Mah. Hızırbey Cad. No:118/5 D:1 Kadıköy İstanbul

Marmara Üniversitesi Göztepe Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com

DMR Başıbüyük Ofis

Başıbüyük Mahallesi Süreyyapaşa Başıbüyük Yolu Sk. No: 4/7 Maltepe İstanbul

Marmara Üniversitesi Başıbüyük Kampüsü Teknopark

Tel: +90 216 470 79 49

E-posta: info@dmrbt.com