Usunięcie kolumny z tabeli

W celu opisania modyfikacji wykorzystany zostanie raport Ranking kontrahentów kupujących towar, w którym to usunięte zostaną dwie kolumny z tabeli: Marża (kwotowo) i Marża (procentowo).

 

Standardowy raport: Ranking kontrahentów kupujących towar

 

W tym celu należy wyedytować definicję raportu o nazwie 38#CustomersPurchasingItems#pol.xml znajdującą się w domyślnej lokalizacji C:\Program Files (x86)\Comarch Mobile\Serwer synchronizacji\Reports\.

Wskazówka
Poprawność modyfikowanych zapytań SQL można zweryfikować wykonując je na bazie mobilnej (plik data.db na urządzeniu mobilnym) np. za pomocą narzędzia SQLite Studio.

 

Z pliku należy usunąć część zapytania SQL dla elementu o id = 2, która odpowiada za zwrócenie wartości danych kolumn Marża (kwotowo) i Marża (procentowo). Będzie to poniższy fragment, który dla tego elementu występuje dwa razy:

CASE
  WHEN SUBSTR(ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2), LENGTH(ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2))-1,1) = "."
  THEN ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2) || "0" || "<br/>" || (Select Value From Configuration Where Key == 'Currency')
  ELSE ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2) || "<br/>" || (Select Value From Configuration Where Key == 'Currency')
END AS '[c]Marża<br/>(kwotowo)',
					      					
CASE
  WHEN (Select Value From Configuration Where Key == 'MarginCountType') == 1            
  THEN IFNULL(ROUND(ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2)/SUM(dp.EndNetPriceInSystemCurrency * dp.Quantity)*100, 2), 0.00) || " %"               
  ELSE IFNULL(ROUND(ROUND(SUM(Case when d.IsVatFromNetValue == 1 THEN dp.MarginValueInSystemCurrency ELSE dp.MarginValueInSystemCurrency*100/(100+dp.VatRateValue) END), 2)/SUM(dp.BaseNetPriceInSystemCurrency * dp.Quantity)*100, 2), 0.00) || " %"               
END AS '[c]Marża<br/>(procentowo)'

 

Dodatkowo należy usunąć możliwość wyboru sortowania danych po usuniętych kolumnach. W tym celu dla argumentu o id = 4 z sekcji posibleSQL należy usunąć następujące wartości:

UNION ALL
SELECT 3, 'Marża(kwotowo)'
UNION ALL
SELECT 4, 'Marża(procentowo)'

 

Po wykonaniu powyższych kroków raport powinien wyglądać następująco:

Raport: Ranking kontrahentów kupujących towar po modyfikacji

Czy ten artykuł był pomocny?