| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			если у вас тормоза при нажатии кнопочки запросы в шапках (заказо/закупок..) то предлагаю следующее: 
		
		
		
		
		
		
			есть такой метод на карте (MAP) - CustVendInvoiceJour.factureJourSortedList_RU X++:  DIS :
        // Header markups
        while select factureJour
            join RecId from factureTrans
            join RecId from markupTrans
            where factureJour.Module                 == module                          &&
                  factureJour.CustVendInvoiceAccount == this.InvoiceAccount             &&
                  factureTrans.FactureId             == factureJour.FactureId           &&
                  factureTrans.Module                == module                          &&
                  factureTrans.FactureLineType       == FactureLineType_RU::Markup      &&
                  markupTrans.RecId                  == factureTrans.MarkupRefRecId     &&
                  markupTrans.TransTableId           == this.TableId                    &&
                  markupTrans.TransRecId             == this.RecId
        {
            if ( ! ret.find(factureJour))
            {
                ret.ins(factureJour);
            }
        }
        // Line markups
        while select factureJour
            join RecId from factureTrans
            join RecId from markupTrans
            join RecId from custVendInvoiceTrans
            where factureJour.Module                 == module                       &&
                  factureJour.CustVendInvoiceAccount == this.InvoiceAccount          &&
                  factureTrans.FactureId             == factureJour.FactureId        &&
                  factureTrans.Module                == module                       &&
                  factureTrans.FactureLineType       == FactureLineType_RU::Markup   &&
                  markupTrans.RecId                  == factureTrans.MarkupRefRecId  &&
                  markupTrans.TransTableId           == custVendInvoiceTrans.TableId &&
                  custVendInvoiceTrans.RecId         == markupTrans.TransRecId       &&
                  custVendInvoiceTrans.SalesPurchId  == this.Num                     &&
                  custVendInvoiceTrans.InvoiceNum    == this.InvoiceId               &&
                  (module == FactureModule_RU::Cust  ||
                   (module == FactureModule_RU::Vend  &&
                    custVendInvoiceTrans.PurchInternalInvoiceId == this.PurchInternalInvoiceId)) &&
                  custVendInvoiceTrans.InvoiceDate  == this.InvoiceDate             &&
                  custVendInvoiceTrans.NumberSequenceGroupId
                                                    == this.NumberSequenceGroupId
        {
            if ( ! ret.find(factureJour))
            {
                ret.ins(factureJour);
            }
        }Пришлось явно сиквелу сказать что делать: для первого запроса наилучшую селективность обеспечивает MARKUPTRANS, для второго карта CUSTINVOICETRANS - имеем: X++: // Header markups // SHiSHok.FRA_Optimize --> factureJour.clear(); while select forceselectorder forcenestedloop forceplaceholders RecId from markupTrans join RecId from factureTrans join * from factureJour index CustVendModuleIdx where markupTrans.TransTableId == this.TableId && markupTrans.TransRecId == this.RecId && factureTrans.FactureLineType == FactureLineType_RU::Markup && factureTrans.MarkupRefRecId == markupTrans.RecId && factureJour.FactureId == factureTrans.FactureId && factureJour.Module == factureTrans.Module && factureJour.Module == module && factureJour.CustVendInvoiceAccount == this.InvoiceAccount { if ( ! ret.find(factureJour)) { ret.ins(factureJour); } } // Line markups while select forceselectorder forcenestedloop forceplaceholders RecId from custVendInvoiceTrans join RecId from markupTrans join RecId from factureTrans join * from factureJour index CustVendModuleIdx where custVendInvoiceTrans.SalesPurchId == this.Num && custVendInvoiceTrans.InvoiceNum == this.InvoiceId && custVendInvoiceTrans.InvoiceDate == this.InvoiceDate && custVendInvoiceTrans.NumberSequenceGroupId == this.NumberSequenceGroupId && (module == FactureModule_RU::Cust || (module == FactureModule_RU::Vend && custVendInvoiceTrans.PurchInternalInvoiceId == this.PurchInternalInvoiceId)) && markupTrans.TransTableId == custVendInvoiceTrans.TableId && markupTrans.TransRecId == custVendInvoiceTrans.RecId && factureTrans.FactureId == factureJour.FactureId && factureTrans.Module == factureJour.Module && factureTrans.FactureLineType == FactureLineType_RU::Markup && factureTrans.MarkupRefRecId == markupTrans.RecId && factureJour.Module == module && factureJour.CustVendInvoiceAccount == this.InvoiceAccount { if ( ! ret.find(factureJour)) { ret.ins(factureJour); } } // SHiSHok.FRA_Optimize <--  
		
				__________________ 
		
		
		
		
		
			--- SHiSHok Последний раз редактировалось SHiSHok; 16.08.2007 в 18:43.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: kashperuk (3). | |
| Теги | 
| axapta, faq, запрос (query), производительность | 
| 
	
	 | 
	
		
  |