===== Създаване на дименсии по формула от други дименсии ===== Освен [[spravki_new:analizi:nova_dimensia|дименсии на база поле от източника на данни]], имате възможност да създавате и такива, които са резултат от **формула между други дименсии**, тъй като не винаги може да задавате изчисляването на дименсия на ниво ред от SQL кода. Например в анализ **"Оборот по обекти"**, при заложени агрегатни дименсии **"Стойност без ДДС**" и **"Количество"**, ценен показател за ефективност (KPI) би бил, колко е **средната стойност на броя продавана стока** (деление между "Стойност без ДДС" и "Количество"). Друг пример: {{:spravki_new:analizi:primer_za_dimensii_za_formuli.png?450|}} Първоначално с избор на бутон {{:spravki_new:analizi:buton_dobavi_dimensia.png?70|}} от панела с [[spravki_new:analizi:expertni_nastrojki|Експертни настройки]], отваряте прозореца за създаване на **нова дименсия**. {{:spravki_new:analizi:dobaviane_na_dimensia.png?550|}} Задавате **име на дименсията** и избирате опцията **"Формула между няколко дименсии"**. При тази ситуация прозорецът придобива следния изглед: {{:spravki_new:analizi:redakcia_na_dimensia_s_formula.png?600|}} В дясно е списъка на всички дименсии от конкретния анализ, като имената им са представени, освен на кирилица, така и на латиница с физическите им имена, с които реално ще участват във формулите. С избор на бутон {{:spravki_new:analizi:buton_dobavi_kam_formula.png|}} или двойно кликване върху дадена дименсия, я добавяте в полето за съставяне на формули. В името на всяка една дименсия се съдържа информация по какво е обобщена - по **сума, брой, минимум, максимум, средно аритметично, отклонение, разлика или по конкретно желание на потребителя**. **Преди да добавите** дименсия към формула, трябва да посочите по какво да се **обобщава**. \\ Например, при обобщаване по **сума** името се записва във формулата в следния вид "DataSourcePivotVALUE_WITH_VAT.stSum". {{:spravki_new:analizi:obobstavane_na_dimensia.png|}} След избор на дименсиите, задавате съответните аритметични действия, като с бутон {{:spravki_new:analizi:buton_proverka.png|}} винаги може да проверите, дали записаната формула е **синтактично вярна** (дали има непознати знаци, символи и т.н.). {{:spravki_new:analizi:saobstenie_za_viarna_formula.png|}} {{:spravki_new:analizi:saobstenie_za_greshna_formula.png|}} В съобщението за грешка, освен **формулата**, се показва и **израза**, заради който става грешката (със заместени стойности). За да се избегне **конфликт между формула и данни**, ако във формулата участва **отрицателно число**, то програмата го слага автоматично в **скоби**. След потвърждаване дименсията е създадена и може да настроите нейните **свойства**. {{:spravki_new:analizi:primer_sled_dobavena_dimensia_s_formula.png?400|}} Задължително **дименсиите**, които участват **във формулата**, трябва да са **в областта на данните**. Направена е защита, ако **дименсия**, резултат **от формула**, **е в областта на данните**, то да **не може да премествате извън тази област дименсиите**, които участват във формулата. Ограничението отпада, само когато преместите от там резултатната дименсия. Едва тогава може да размествате и дименсиите от формулата. В случай, че в областта на "page" филтрите стоят, както **резултатната дименсия**, така и една или всички **съставляващи, формулата дименсии**, то при **преместване на резултатната дименсия в областта на данните**, **дименсиите участващи във формулата**, автоматично и те се **прехвърлят** там. За да проверите **формула за преглед и/или редакция**, посочвате съответната дименсия като елемент в експертните настройки и да избирате бутон {{:spravki_new:analizi:buton_redakcia_na_formula.png|}}, който отваря прозореца за редакция на дименсия. {{:spravki_new:analizi:primer_za_redakcia_na_formula.png|}} /*Тъй като е възможно да възникне **конфликт между формула и данни**, Ви препоръчваме, във **формулите** да използвате **скоби**. Например, ако имате **отрицателни количества**, при поставяне на дименсията в областта на данните, може да излезне грешка - напр. 100 /-10 или ако напишете "X-Y" и Y е отрицателно число, би се получило "X - - Y".*/ При зададено действие **"деление"** във формулата е възможно да се получи и ситуация **"деление на 0"**. За да се избегне това, във формулите може да задавате **условия**. //**Пример за условие**// - ако **сумата на количеството е различно от 0**, то се изпълнява зададената формула, в противен случай, резултата е 0: {{:spravki_new:analizi:primerna_formula_s_uslovie.png|}} Условията могат да бъдат доста сложни, да се използват междинни променливи, цикли, да се направят функции и т.н.. За **дименсията по формула** няма попълнено поле **FieldName** в **DataBinding**-а и нейното свойство **SummaryType** е винаги **stCustom**, тъй като зад дименсията стои формула, написана от потребителя. \\ В случай, че за дименсията във FieldName посочите поле от източника на данни и зададете за SummaryType друга настройка, то дименсията се държи като стандартна, без да се взима предвид формулата за нея. Едва когато за **SummaryType** посочите **stCustom**, формулата започва да действа и данните за дименсията се преизчисляват. /* От [[vavedenie:kakvo_novo|релийз 2017.06]], */ Ако в Анализ има **дименсия**, която е **изчислена на база формула от други дименсии** и се сортира по нея, **сортировката** може да бъде **запомнена**. \\ /* Досега това беше възможно само при сортиране по дименсии, в които резултатът не е на база формула.*/ -------------------- **[[spravki_new:analizi:osnovni_nastrojki|Анализ - Основни настройки и начин на работа]]**\\ **[[spravki_new:analizi:tablichna_chast|Таблична част и работа с филтри]]** \\ **[[spravki_new:analizi:expertni_nastrojki|Експертни настройки]]** \\ **[[spravki_new:analizi:nova_dimensia|Създаване на дименсии]]** \\ **[[spravki_new:analizi:svojstva_na_dimensii|Свойства на елементите (дименсиите)]]**\\ **[[spravki_new:analizi:svojstva_na_analiz_iztochnik_diagrama|Основни свойства на Анализ, Диаграма&Входни данни]]**