2013-03-11 2 views
0

Я работаю над этим отчетом, который вытягивает все наши Прогнозируемые Покупки, сгруппированные по месяцам, отображая сумму (так называемый "Monthly_Total" за месяц, а также отображает бюджет (так называемый "Monthly_Budget" за месяц). У меня также есть сводный отчет что я использую shared currencyvar "Starting_Balance".Эта общая переменная обновляется всякий раз, когда выполняется отчет. Мне нужно найти способ сделать следующие вычисления:Переменная Формула Crystal Reports, проходящая

в течение первого месяца (в этом случае отчет начинается с марта) должно быть

"Starting_Balance" + "Monthly_Total") - "Monthly_Budget" = "New_Balance" 

каждый последующий месяц будет использовать формулу

("New_Balance" + "Monthly_Total") - "Monthly_Budget" 

я могу заставить его работать на первую сноску группы, но затем каждый месяц после того, ссылается обратно к "Starting_Balance", а не "New_Balance"

любых идей?

ответ

0

Попробуйте использовать переменную флага, указывающую, был ли еще сообщен первый месяц. Первоначально я использовал использование New_Balance как 0, но это могло бы произойти естественным образом.

Так, что-то вроде

Initializer в заголовке отчета:

WhilePrintingRecords; 
Global BooleanVar First_Month_Done := false; // have we printed the first month? 
""; // print nothing on screen 

Ежемесячная формула

WhilePrintingRecords; // Optional when using shared variables 
Global BooleanVar First_Month_Done; 
Global CurrencyVar New_Balance; //or whatever it is 
Shared CurrencyVar Starting_Balance; 
// Assuming "Monthly_Total" and "Monthly_Budget" are formulas, not variables 

If First_Month_Done 
    Then New_Balance := New_Balance + {@Monthly_Total} - {@Monthly_Budget} 
    Else New_Balance := Starting_Balance + {@Monthly_Total} - {@Monthly_Budget}; 

First_Month_Done := true; 
New_Balance 
+0

Это именно то, что я искал. Спасибо, что закончили мою двухнедельную головную боль! –

Смежные вопросы