Выделение кода SQL

Обсуждение Stimulsoft Reports.NET
Ответить
jonyk
Сообщения: 41
Зарегистрирован: 19 апр 2010, 12:41

Выделение кода SQL

Сообщение jonyk »

Добрый день! Планируется ли добавить в Построитель запросов (при большом количестве SQL кода) возможность выделения части кода, если запрос состоит из множества подзапросов (при переходе на данный подзапрос). Было бы очень удобно. Высылаю пример кода. Спасибо

Код: Выделить всё

SELECT V_S_1_2_3.ID_Klient, V_S_1_2_3.KlientName, V_S_1_2_3.CityName,
  V_S_1_2_3.ID_Country, V_S_1_2_3.Saldo0, V_S_1_2_3.OborOtgr, V_S_1_2_3.OborOpl,
  V_S_1_2_3.Saldo1, V_S_1_2_3.Saldo0Kt, V_S_1_2_3.Saldo0Dt, V_S_1_2_3.Saldo1Kt,
  V_S_1_2_3.Saldo1Dt, V_S_1_2_3.CountryName, V_S_1_2_3.ID_Region,
  V_S_1_2_3.RegionName, V_S_1_2_3.Val, V_S_1_2_3.UIN
FROM (SELECT Klient.ID_Klient, Klient.KlientName, City.CityName,
      City.ID_Country, ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3,
      0) AS Saldo0, CASE WHEN ISNULL(V_S2_Otgr.CodePlat, 0) = 0 THEN 0
        ELSE V_S2_Otgr.SumNak END AS OborOtgr, CASE
        WHEN ISNULL(V_S2_Opl.KodPolOpl, 0) = 0 THEN 0 ELSE V_S2_Opl.SumOpl2
      END AS OborOpl, (ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3,
      0)) - (CASE WHEN ISNULL(V_S2_Otgr.CodePlat, 0) = 0 THEN 0
        ELSE V_S2_Otgr.SumNak END) + (CASE
        WHEN ISNULL(V_S2_Opl.KodPolOpl, 0) = 0 THEN 0 ELSE V_S2_Opl.SumOpl2
      END) AS Saldo1, CASE
        WHEN ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3, 0) >
        0 THEN ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3, 0) ELSE 0
      END AS Saldo0Kt, CASE
        WHEN ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3, 0)  0 THEN (ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3,
        0)) - (CASE WHEN ISNULL(V_S2_Otgr.CodePlat, 0) = 0 THEN 0
          ELSE V_S2_Otgr.SumNak END) + (CASE
          WHEN ISNULL(V_S2_Opl.KodPolOpl, 0) = 0 THEN 0 ELSE V_S2_Opl.SumOpl2
        END) ELSE 0 END AS Saldo1Kt, CASE
        WHEN (ISNULL(V_S1_Opl.SumOpl1, 0) - ISNULL(V_S3_Otgr.SumNak3, 0)) -
        (CASE WHEN ISNULL(V_S2_Otgr.CodePlat, 0) = 0 THEN 0
          ELSE V_S2_Otgr.SumNak END) + (CASE
          WHEN ISNULL(V_S2_Opl.KodPolOpl, 0) = 0 THEN 0 ELSE V_S2_Opl.SumOpl2
        END)  0 AND odOplata.Flag >= 0 AND
                  odOplata.KodVal = 840) V_S1_Opl1_1 INNER JOIN
              sprVal ON V_S1_Opl1_1.KodVal = sprVal.KodVal
            WHERE V_S1_Opl1_1.DateOpl  0 AND ProductRef.KodVal =
                    840) V_S2_Otgr1_1 INNER JOIN
                sprVal ON V_S2_Otgr1_1.KodVal = sprVal.KodVal
              WHERE V_S2_Otgr1_1.DateOtgr >= @DateBeg AND
                V_S2_Otgr1_1.DateOtgr = 0 AND odOplata.KodVal =
                      840) V_S2_Opl2_2 INNER JOIN
                  sprVal ON V_S2_Opl2_2.KodVal = sprVal.KodVal
                WHERE V_S2_Opl2_2.DateOpl >= @DateBeg AND V_S2_Opl2_2.DateOpl  0 AND ProductRef.KodVal =
                        840) V_S3_Otgr3_1 INNER JOIN
                    sprVal ON V_S3_Otgr3_1.KodVal = sprVal.KodVal
                  WHERE V_S3_Otgr3_1.DateOtgr  0) V_S_1_2_3
      WHERE V_S_1_2_3.Saldo0  0 OR
        V_S_1_2_3.OborOtgr  0 OR
        V_S_1_2_3.OborOpl  0 OR
        V_S_1_2_3.Saldo1  0
Aleksey
Сообщения: 3006
Зарегистрирован: 22 апр 2010, 06:57

Выделение кода SQL

Сообщение Aleksey »

Здравствуйте,

Извините, возможно не совсем поняли ваш вопрос.
Не могли бы более детально описать данную возможность, а так же привести пример, где данное реализовано.

Спасибо.
jonyk
Сообщения: 41
Зарегистрирован: 19 апр 2010, 12:41

Выделение кода SQL

Сообщение jonyk »

Понял. Неудачная затея. :hugging:
Леонид
Сообщения: 329
Зарегистрирован: 23 июл 2009, 09:53
Откуда: Moscow

Выделение кода SQL

Сообщение Леонид »

Да, человек просто хотел спросить, будет ли реализована в редакторе отчётов (конкретно в SQL-builder'е) возможность подсветки синтаксиса. Более простой пример для наглядности.

SELECT *
FROM clients c
WHERE c.client_code = 777

Это будет особенно актуально для таких SQL-запросов как у него.

А вообще, jonyk, порекомендую Вам такие запросы "оборачивать" в хранимые процедуры, т.к. последние можно легко вызывать не думая о подсветке синтаксиса.
Aleksey
Сообщения: 3006
Зарегистрирован: 22 апр 2010, 06:57

Выделение кода SQL

Сообщение Aleksey »

Здравствуйте,

Если вы имеете ввиду подсветку конца блока (как пример, если становитесь на открывающую скобку, то подсвечивается закрывающая), то на данный момент это очень сложно реализуемо и в планах пока реализации данной возможности нет.
По поводу подсветки(выделение цветом) то она присутствует.

Спасибо.
Вложения
Capture.PNG
Capture.PNG (53.36 КБ) 3203 просмотра
Аватара пользователя
Андрей Сорокин
Сообщения: 107
Зарегистрирован: 02 июл 2009, 11:31
Откуда: Bryansk, Russia
Контактная информация:

Выделение кода SQL

Сообщение Андрей Сорокин »

leon писал(а):А вообще, jonyk, порекомендую Вам такие запросы "оборачивать" в хранимые процедуры, т.к. последние можно легко вызывать не думая о подсветке синтаксиса.
И к тому же сетевой трафик уменьшится! :feelgood:
Ответить