Skip links

Axapta’da arama metodu örneği


Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 117

Notice: Trying to access array offset on value of type bool in /var/www/vhosts/dmrbt.com/httpdocs/wp-content/themes/boo/rella/extensions/aq_resizer/aq_resizer.php on line 118
Axapta’da arama metodu örneği

Merhaba
8 arama sahası ve 5 farklı tablo içeren bir arama formu istendiğinde nasıl bir metod yazabileceğinizin bir örneğini paylaşıyorum.
Hangi sahanın dolu olacağı belli olmayan ve kombinasyonun çok fazla olduğu bu durumda öncelikle en çok kriter girilebilecek
olan ana tabloyu alıp döngü içinde diğerlerinin varlığı kontrol etmek mantıklı.
Kriterlere uyan bir kayıt olursa bunun bir container a dolduruyoruz.
public Container simpleSearch(  BorAXEmplId  _boraxEmplId
,EMplId _emplId
,HRMIdentificationNumber _number
,EmplName _name
,HrmLastName _lastName
,Birthdate _birthDate
,NameTwenty _birthPlace
,Email _email)
{

BorAXEmplTable boraxEmplTable;
EmplTable emplTable;
HrmEmplIdentification hrmEmplIdentification;
BorAxTCpersonalIdentity boraxTCPersonalIdentity;
DirEcommunicationAddress dirEcommunicationAddress;
int indexCounter = 1;
;
retCont = conNull();
if(!_boraxEmplId && !_emplId && !_number && !_name && !_lastName && !_birthdate && !_birthPlace && !_email)
{
return conNull();
}
while Select emplTable
where   (( emplTable.EmplId == _emplid && _emplid ) || (!_emplid))
&&      (( emplTable.Name == _name && _name ) || (!_name))
&&      (( emplTable.lastName == _lastName && _lastName ) || (!_lastName))
&&      (( emplTable.BirthDate == _birthDate && _birthDate ) || (!_birthDate))
&&      (( emplTable.BirthDate == _birthDate && _birthDate ) || (!_birthDate))
{
Select firstonly boraxEmplTable where boraxEmplTable.OldEmplId == emplTable.EmplId
&& ((boraxEmplTable.EmplId == _boraxEmplId) || (!_boraxEmplId));
if(!boraxEmplTable)
continue;
Select firstonly hrmEmplIdentification where hrmEmplIdentification.EmplId == emplTable.EmplId
&& ((hrmEmplIdentification.Number == _number) || (!_number));
if(!hrmEmplIdentification)
continue;
Select firstonly boraxTCPersonalIdentity where boraxTCPersonalIdentity.EmplId == emplTable.EmplId
&& ((boraxTCPersonalIdentity.BirthPlace == _birthPlace) || (!_birthPlace));
if(!boraxTCPersonalIdentity)
continue;
While Select dirEcommunicationAddress
where dirEcommunicationAddress.RecId == DirpartyECommunicationRelationShip::findPartyId(emplTable.PartyId).ValuesRecId
&& ((dirEcommunicationAddress.Email ==_email) ||(!_email))
{
}
if(!dirEcommunicationAddress)
continue;
line = conNull();
line = conins(line, 1, emplTable.EmplId); // personel no
//TC KİMLİK NO
line = conins(line, 2, BorAXTCPersonalIdentity.TCIDNumber);
line = conins(line, 3, HrmEMplIdentification.Number);
//Kullanıcı Adı        line = conins(line, 4,
line = conins(line, 5, emplTable.Name);
line = conins(line, 6, emplTable.lastName);
line = conins(line, 7, emplTable.BirthDate);
line = conins(line, 8, BorAXTCPersonalIdentity.BirthPlace);
line = conins(line, 9, DirEcommunicationAddress.Email);
//Satırı Container’a ekle
retCont = conins(retCont, indexCounter, line);
indexCounter++;
}
return retCont;
}
Muammer Yığıt arkadaşımıza metodu bizimle paylaştığı için teşekkürler.
Selamlar.

Join the Discussion