public void dropFile(str _FileName)
{
BinData p = new BinData();
;
super(_FileName);
p.loadFile(_FileName);
PRTSecondHandTractorStock.Picture = p.getData();
element.redraw();
}
Blog Listem
28 Kasım 2013 Perşembe
21 Kasım 2013 Perşembe
AXAPTA - Bir tablo alanını cross-company çalışacak hale getirmek
Bir forumdan öğrendiğim bu yöntemle tüm yapmanız gereken yukarıdaki gibi bir relation ve extended data tipine dikkat etmek. Bundan sonra formlarda lookup veya validation method yazmadan ilgili alanınız cross-company çalışacak. Bu özellik AX 2009 ile çalışıyor, 2012 ile deneme şansım olmadı.
AXAP - Cross company lookup
public void lookup(FormControl _formControl, str _filterStr)
{
CustTable custTable;
Query Query = new Query();
QueryBuildDataSource qbds;
SysTableLookup SysTableLookup =
SysTableLookup::newParameters(TableNum(CustTable), _formControl);
;
super(_formcontrol,_filterstr);
Query.allowCrossCompany(true);
Query.addCompanyRange(myTable.Company);
qbds = Query.addDataSource(TableNum(CustTable));
SysTableLookup.addLookupfield(FieldNum(CustTable, AccountNum), true);
SysTableLookup.addLookupfield(FieldNum(CustTable, Name));
SysTableLookup.parmQuery(Query)
SysTableLookup.performFormLookup();
}
Kontrolün validate metodunu ezmeyi unutmayın!..
{
CustTable custTable;
Query Query = new Query();
QueryBuildDataSource qbds;
SysTableLookup SysTableLookup =
SysTableLookup::newParameters(TableNum(CustTable), _formControl);
;
super(_formcontrol,_filterstr);
Query.allowCrossCompany(true);
Query.addCompanyRange(myTable.Company);
qbds = Query.addDataSource(TableNum(CustTable));
SysTableLookup.addLookupfield(FieldNum(CustTable, AccountNum), true);
SysTableLookup.addLookupfield(FieldNum(CustTable, Name));
SysTableLookup.parmQuery(Query)
SysTableLookup.performFormLookup();
}
Kontrolün validate metodunu ezmeyi unutmayın!..
18 Kasım 2013 Pazartesi
AXAPTA - Combobox enum kullanırken bazı elementleri atlamak
Çözümünü bir forumda buldum:
Form kontrolünün Enter metodunun super sonrasına yazılacak:
this.delete(enum2str(DTSSHOperationLineType::Part));
this.delete(enum2str(DTSSHOperationLineType::ExternalPart));
Eğer kontrol bir grup altındaysa AutoDataGroup = No yapmayı unutmayın.
Form kontrolünün Enter metodunun super sonrasına yazılacak:
this.delete(enum2str(DTSSHOperationLineType::Part));
this.delete(enum2str(DTSSHOperationLineType::ExternalPart));
Eğer kontrol bir grup altındaysa AutoDataGroup = No yapmayı unutmayın.
14 Kasım 2013 Perşembe
AXAPTA - Gridde hızlı kayıt bulma
Bu işi için sakın find metodunu kullanmayın, büyük tablolarda çok yavaş çalışır. Axapta'nın kendi formlarında kullandığı yöntem bu:
element.args().lookupField(fieldnum(SMAServiceOrderTable, ServiceOrderId));
element.args().lookupValue(_myServiceOrderId);
SMAServiceOrderTable_ds.executeQuery();
element.args().lookupField(fieldnum(SMAServiceOrderTable, ServiceOrderId));
element.args().lookupValue(_myServiceOrderId);
SMAServiceOrderTable_ds.executeQuery();
5 Kasım 2013 Salı
AXAPTA - Tabloda password field
Bu konuyu yazarken Greg on Dynamics AX blogundan yararlandım.
Öncelikle tablomuzda tipi container olan bir password field açıyor ve extended data tipini CryptoBlob olarak seçiyoruz.
Password alanı için edit metodumuz:
edit Password edtPassword(boolean _set = false, Password _pwd = '')
{
CryptoBlob cryptoBlob = connull();
;
if (_set)
{
this.Password = WinapiServer::cryptProtectData(str2cryptoblob(_pwd));
}
return (this.Password == connull()) ? '' : 'xxxxxxxx';
}
Kodla passwordü okumak için metodumuz:
Password getPassword()
{
CryptoBlob cryptoBlob;
;
cryptoBlob = this.Password;
return (cryptoBlob == connull()) ? '' :
cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
}
Kodla passwordü yazmak için metodumuz:
void setPassword(Password _pwd = '')
{
CryptoBlob cryptoBlob = connull();
;
this.Password = WinapiServer::cryptProtectData(str2cryptoblob(_pwd));
}
Ekranda okuturken ilgili kontrolün PasswordStyle değerini Yes yapmayı unutmayın.
Öncelikle tablomuzda tipi container olan bir password field açıyor ve extended data tipini CryptoBlob olarak seçiyoruz.
Password alanı için edit metodumuz:
edit Password edtPassword(boolean _set = false, Password _pwd = '')
{
CryptoBlob cryptoBlob = connull();
;
if (_set)
{
this.Password = WinapiServer::cryptProtectData(str2cryptoblob(_pwd));
}
return (this.Password == connull()) ? '' : 'xxxxxxxx';
}
Kodla passwordü okumak için metodumuz:
Password getPassword()
{
CryptoBlob cryptoBlob;
;
cryptoBlob = this.Password;
return (cryptoBlob == connull()) ? '' :
cryptoblob2str(WinapiServer::cryptUnProtectData(cryptoBlob));
}
Kodla passwordü yazmak için metodumuz:
void setPassword(Password _pwd = '')
{
CryptoBlob cryptoBlob = connull();
;
this.Password = WinapiServer::cryptProtectData(str2cryptoblob(_pwd));
}
Ekranda okuturken ilgili kontrolün PasswordStyle değerini Yes yapmayı unutmayın.
Kaydol:
Kayıtlar (Atom)