|
|
|
|
#1 |
|
Участник
|
Цитата:
Сообщение от ViV
Вопрос про блок X++: where factureJour.FactureId == factureTrans.FactureId
&& factureJour.Module == module
&& factureJour.CustVendInvoiceAccount == this.InvoiceAccountСледует ли отсюда, что условие "&& factureJour.CustVendInvoiceAccount == this.InvoiceAccount" лишнее? Цитата:
Цитата:
Сообщение от mazzy
Т.е. нужно делать примерно такX++: // Header markups // SHiSHok.FRA_Optimize --> factureJour.clear(); while select RecId from markupTrans where markupTrans.TransRecId == this.RecId && markupTrans.TransTableId == this.TableId join RecId from factureTrans where factureTrans.MarkupRefRecId == markupTrans.RecId && factureTrans.Module == module && factureTrans.FactureLineType == FactureLineType_RU::Markup join * from factureJour index CustVendModuleIdx where factureJour.FactureId == factureTrans.FactureId && factureJour.Module == module && factureJour.CustVendInvoiceAccount == this.InvoiceAccount Цитата:
Сообщение от SHiSHok
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);
}
}P.S. Мне не понятно - другое, в варианте после оптимизации : Цитата:
Сообщение от SHiSHok
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); } } // SHiSHok.FRA_Optimize <-- X++: join * from factureJour index CustVendModuleIdx
__________________
Sergey Nefedov |
|
|
| Теги |
| axapta, faq, запрос (query), производительность |
|
|
|