![]() |
#8 |
Участник
|
Это какая-то мистика! Я, конечно, в аксапте новичок... Она всегда такая непредсказуемая?
Сегодня после поста _scorp_ у меня заработал скрипт, который я выкладывал в начале! Цель же - немножко посложнее. Мне необходимо вывести для каждого клиента список договоров с указанием суммарного оборота по каждому. Я создал тестовую формочку с одним единственным гридом, который цепляется к временной табличке, которая перед отображением заполняется своим методом fill(). Итак. Проблема. Объявление переменных: X++: CustTable custTable; ContactPerson contactPerson; CustGroup custGroup; RContractTable contractTable; RContractTypes contractTypes; CustTrans custTrans; ; X++: while select custTable order by AccountNum outer join contactPerson where custTable.ContactPersonId == contactPerson.ContactPersonId { this.CustInfo = custTable.AccountNum + ", " + contactPerson.Name; this.insert(); } // end while Шаг 2: X++: while select custTable order by AccountNum outer join contactPerson where custTable.ContactPersonId == contactPerson.ContactPersonId outer join custGroup where (custGroup.dataAreaId == contactPerson.dataAreaId || custGroup.dataAreaId != contactPerson.dataAreaId) && custTable.CustGroup == custGroup.CustGroup { this.CustInfo = custTable.AccountNum + ", " + contactPerson.Name; this.CustGroupName = custGroup.Name; this.insert(); } // end while ![]() Шаг 3: X++: while select custTable order by AccountNum outer join contactPerson where custTable.ContactPersonId == contactPerson.ContactPersonId outer join custGroup where (custGroup.dataAreaId == contactPerson.dataAreaId || custGroup.dataAreaId != contactPerson.dataAreaId) && custTable.CustGroup == custGroup.CustGroup outer join contractTable where (contractTable.dataAreaId == custGroup.dataAreaId || contractTable.dataAreaId != custGroup.dataAreaId) && contractTable.RContractPartnerCode == custTable.AccountNum && contractTable.RContractPartnerType == RContractPartnerType::Cust outer join contractTypes where (contractTypes.dataAreaId == contractTable.dataAreaId || contractTypes.dataAreaId != contractTable.dataAreaId) && contractTypes.ContractCode == contractTable.RContractCode { this.CustInfo = custTable.AccountNum + ", " + contactPerson.Name; this.CustGroupName = custGroup.Name; this.ContractRegNo = contractTable.RContractAccount; this.ContractNo = contractTable.RContractNumber; this.ContractGroupName = contractTypes.ContractCodeName; this.insert(); } // end while Шаг 4: X++: while select custTable order by AccountNum outer join contactPerson where custTable.ContactPersonId == contactPerson.ContactPersonId outer join custGroup where (custGroup.dataAreaId == contactPerson.dataAreaId || custGroup.dataAreaId != contactPerson.dataAreaId) && custTable.CustGroup == custGroup.CustGroup outer join contractTable where (contractTable.dataAreaId == custGroup.dataAreaId || contractTable.dataAreaId != custGroup.dataAreaId) && contractTable.RContractPartnerCode == custTable.AccountNum && contractTable.RContractPartnerType == RContractPartnerType::Cust outer join contractTypes where (contractTypes.dataAreaId == contractTable.dataAreaId || contractTypes.dataAreaId != contractTable.dataAreaId) && contractTypes.ContractCode == contractTable.RContractCode outer join AccountNum, sum(AmountMST) from custTrans group by AccountNum where (custTrans.dataAreaId == contractTypes.dataAreaId || custTrans.dataAreaId != contractTypes.dataAreaId) && custTrans.RContractAccount == contractTable.RContractAccount && custTrans.RContractCode == contractTable.RContractCode { this.CustInfo = custTable.AccountNum + ", " + contactPerson.Name; this.CustGroupName = custGroup.Name; this.ContractRegNo = contractTable.RContractAccount; this.ContractNo = contractTable.RContractNumber; this.ContractGroupName = contractTypes.ContractCodeName; this.Amount = custTrans.AmountMST; this.insert(); } // end while Хотя и реализовал задачку другим путём, мозги всё равно стремятся сломаться об эти две проблемы...
__________________
I believe! |
|