18.04.2012, 10:44 | #30 |
Участник
|
Цитата:
Сообщение от zoya210489
Попробовала написать фильтр, для поля группировки по поставщику:
IF Vendor.GET("Vendor Ledger Entry"."Vendor No.") THEN BEGIN Vendor.SETRANGE("Date Filter",StartDate,EndDate); Vendor.CALCFIELDS(Vendor."Debit Amount (LCY)",Vendor."Credit Amount (LCY)"); LineAmount1[3] := Vendor."Debit Amount (LCY)"; LineAmount1[4] := Vendor."Credit Amount (LCY)"; END; Проблема возникла в том, что он рассчитал сумму для поставщика по всем учетным группам, где он участвовал, т.е. все обобщил и получилось что по счету 66 у поставшика по дебету 300, когда на самом счете 100, т.к. он еще сложил суммы и с других счетов. Затем попробывала рассчитать значение для клиента не через таблицу Vendor, а через Detailed Vendor Ledg. Entry (DVLE): DVLE.SETCURRENTKEY(DVLE."Vendor Posting Group",DVLE."Vendor No.",DVLE."Agreement No."); IF DVLE.GET(AA) and DVLE.GET(vdd) THEN BEGIN DVLE.SETRANGE(DVLE."Posting Date",StartDate,EndDate); DVLE.CALCSUMS(DVLE."Debit Amount (LCY)",DVLE."Credit Amount (LCY)"); LineAmount1[3] := DVLE."Debit Amount (LCY)"; LineAmount1[4] := DVLE."Credit Amount (LCY)"; END; У меня выдает ошибку "Выражение Code нельзя преобразовать по типу значения Integer". Подскажите как можно решить данную проблему. не знаю что в себе несут переменный АА и VDD, но вот это ад: Код: IF DVLE.GET(AA) and DVLE.GET(vdd) THEN BEGIN в подробностях нет полей договора и группы, если вы их туда не будете подставлять при учете, предварительно создав поля и поправив учетные процедуры. именно по этому нам нужна временная табличка, в нее мы подставим вычисленные поля из операций поставщика(почему он у вас фигурирует как клиент, кстати?), а так же поля по которым будем фильтровать. Похожий ф-ционал реализован в аналитических отчетах. ЗЫ Чисто ради интереса. Ваш процесс обучения кто-нибудь контролирует? Есть носители знаний поблизости? |
|