18.04.2012, 11:38 | #41 |
Участник
|
Цитата:
Сообщение от zoya210489
В таблице Detailed Vendor Ledg. Entry, есть поля и поставщик, и учетная группа и договор может попробывать как нибудь на нее настроить фильтр??
Код: DVLE.SETCURRENTKEY(DVLE."Vendor Posting Group",DVLE."Vendor No.",DVLE."Agreement No."); IF DVLE.GET("Vendor Ledger Entry"."Vendor Posting Group") and DVLE.GET("Vendor Ledger Entry"."Vendor No.") 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; Можно почти забыть про временную табличку, правда отсутствие счета может подпортить картину. Вы так и не ответили что за смысл в этой строке Код: IF DVLE.GET("Vendor Ledger Entry"."Vendor Posting Group") and DVLE.GET("Vendor Ledger Entry"."Vendor No.") THEN BEGIN Если вы хотите поставить фильтры, то используйте setrange или setfilter, что вы и делаете для даты, а вот для группы и договора делаете почему-то по другому. |
|
18.04.2012, 11:53 | #42 |
Участник
|
Цитата:
Сообщение от InTacto
Цитата:
Сообщение от zoya210489
В таблице Detailed Vendor Ledg. Entry, есть поля и поставщик, и учетная группа и договор может попробывать как нибудь на нее настроить фильтр??
Код: DVLE.SETCURRENTKEY(DVLE."Vendor Posting Group",DVLE."Vendor No.",DVLE."Agreement No."); IF DVLE.GET("Vendor Ledger Entry"."Vendor Posting Group") and DVLE.GET("Vendor Ledger Entry"."Vendor No.") 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; Можно почти забыть про временную табличку, правда отсутствие счета может подпортить картину. Вы так и не ответили что за смысл в этой строке Код: IF DVLE.GET("Vendor Ledger Entry"."Vendor Posting Group") and DVLE.GET("Vendor Ledger Entry"."Vendor No.") THEN BEGIN Если вы хотите поставить фильтры, то используйте setrange или setfilter, что вы и делаете для даты, а вот для группы и договора делаете почему-то по другому. Просто я написала код для счета поставщика (учетная группа): IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN GL:=GLA.Name; IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN BEGIN GLA.SETRANGE("Date Filter",StartDate,EndDate); GLA.CALCFIELDS(GLA."Debit Amount",GLA."Credit Amount"); LineAmount1[1] := GLA."Debit Amount"; LineAmount1[2] := GLA."Credit Amount"; END; Где GLA - это Record G/L Account. GL - это Text (100) LineAmount1 - это Decimal. У меня в отчете есть раздел groupheader в который я вывожу счета (по учетным группам поставщиков). В этом разделе я разместила 4 textbox: 1)"Vendor Ledger Entry"."Vendor Posting Group"; 2)GL (выводит наименования счета) 3)LineAmount1[1] (выводит сумму по дебету для конкретного счета) 4) LineAmount1[2] (выводит сумму по кредиту для конкретного счета). И у меня это получилось правильно вывести, вот я и подумала по аналогии сделать с поставщиками. Я думала что функция GET позволит вычислить значание дебета и кредита для нужной комбинации свое. |
|
18.04.2012, 12:59 | #43 |
Участник
|
Цитата:
Сообщение от zoya210489
Просто я написала код для счета поставщика (учетная группа): IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN GL:=GLA.Name; IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN BEGIN GLA.SETRANGE("Date Filter",StartDate,EndDate); GLA.CALCFIELDS(GLA."Debit Amount",GLA."Credit Amount"); LineAmount1[1] := GLA."Debit Amount"; LineAmount1[2] := GLA."Credit Amount"; END; Где GLA - это Record G/L Account. GL - это Text (100) LineAmount1 - это Decimal. Наверное у вас одинаковые кода учетной группы и счета, по этому показывате правильно. На самом деле вам нужно что-то такое: Код: if "Vendor Posting group".get("Vendor Ledger Entry"."Vendor Posting Group") then begin IF GLA.GET("Vendor Ledger Entry".Payables Account) THEN BEGIN GLA.SETRANGE("Date Filter",StartDate,EndDate); GLA.CALCFIELDS(GLA."Debit Amount",GLA."Credit Amount"); LineAmount1[1] := GLA."Debit Amount"; LineAmount1[2] := GLA."Credit Amount"; END; end |
|
19.04.2012, 03:25 | #44 |
Участник
|
Цитата:
Сообщение от InTacto
Цитата:
Сообщение от zoya210489
Просто я написала код для счета поставщика (учетная группа): IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN GL:=GLA.Name; IF GLA.GET("Vendor Ledger Entry"."Vendor Posting Group") THEN BEGIN GLA.SETRANGE("Date Filter",StartDate,EndDate); GLA.CALCFIELDS(GLA."Debit Amount",GLA."Credit Amount"); LineAmount1[1] := GLA."Debit Amount"; LineAmount1[2] := GLA."Credit Amount"; END; Где GLA - это Record G/L Account. GL - это Text (100) LineAmount1 - это Decimal. Наверное у вас одинаковые кода учетной группы и счета, по этому показывате правильно. На самом деле вам нужно что-то такое: Код: if "Vendor Posting group".get("Vendor Ledger Entry"."Vendor Posting Group") then begin IF GLA.GET("Vendor Ledger Entry".Payables Account) THEN BEGIN GLA.SETRANGE("Date Filter",StartDate,EndDate); GLA.CALCFIELDS(GLA."Debit Amount",GLA."Credit Amount"); LineAmount1[1] := GLA."Debit Amount"; LineAmount1[2] := GLA."Credit Amount"; END; end Что такое Payables Account?? |
|
19.04.2012, 03:36 | #45 |
Участник
|
Наверное вы вместо "Vendor Ledger Entry".Payables Account имели ввиду "Vendor Posting group"."Payables Account".
|
|
19.04.2012, 10:57 | #46 |
Участник
|
|
|
20.04.2012, 08:25 | #47 |
Участник
|
|
|