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.

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 ve yapay zekâ çözümleriyle kurumsal sistemlerinizi güçlendirir, operasyonel karmaşıklığı azaltır ve geleceğe hazır bir mimari tasarlarız.

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