Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 25.11.2024 10:17

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
СообщениеДобавлено: 30.12.2017 22:32 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
MS SQL

Есть работающий отчет HTML по выражению SQL
SELECT
Field1 AS Текущий_месяц,
Field2 AS Прошлый_месяц,
FROM tblTable
Соответственно заголовки колонок "Текущий_месяц" и "Прошлый_месяц"

Вопрос:
Как сделать чтобы названия колонок определялись бы программно ("Январь" и "Декабрь")

Field1 AS FORMAT(GetDate(), 'MMMM')
Не работает.

Если бы отчет был xls, то написал бы макрос изменяющий заголовки запускаемый при загрузке документа.
А так идей нет.
Можно в принципе делать предварительно UPDATE в таблице tblSettings, но это неправильный и плохой способ.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14.04.2018 13:28 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Создать отдельное представление qdf специально для отчета и прописать в свойствах каждого поле Наименование поля.

Можно записывать новое наименование поля напрямую в tblSettings и потом переоткрывать таблицу с помощью команды ReOpenTable.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 02.05.2018 23:16 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Ivan писал(а):
Можно записывать новое наименование поля напрямую в tblSettings и потом переоткрывать таблицу с помощью команды ReOpenTable.

Напрямую в tblSettings это как бы не документированная возможность.
Я с опаской к такому отношусь.
Сейчас будет работать. В другой версии может не будет...

Жаль что это единственный вариант :(

Ivan писал(а):
Создать отдельное представление qdf специально для отчета и прописать в свойствах каждого поле Наименование поля.

Это вообще не подходит.
Мне это в отчетах надо. Я их "Источник данных" -> "Выражение SQL" делаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 03.05.2018 16:44 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
>"Источник данных" -> "Выражение SQL"

В выражениях SQL можно применять AS, например:
SELECT Field1 AS [Мое поле 1], Field2 AS [Мое поле 2] FROM ...

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04.05.2018 11:29 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Ivan писал(а):
>"Источник данных" -> "Выражение SQL"

В выражениях SQL можно применять AS, например:
SELECT Field1 AS [Мое поле 1], Field2 AS [Мое поле 2] FROM ...

К сожалению не так всё хорошо как хотелось бы.
Код:
SELECT ID AS ывврпао FROM tblMain
SELECT FORMAT(GetDate(), 'MMMM')

Работают.
Код:
SELECT ID AS FORMAT(GetDate(), 'MMMM') FROM tblMain

А вот эта не работает (я приводил её в первом сообщении). Ни в среде SQL Management ни в программе.

SQL не допускает ни выражений ни переменных после AS. По крайней мере в SQL EXpress 2012.

Была слабая надежда скобки
SELECT ID AS <FORMAT(GetDate(), 'MMMM')> FROM tblMain
Но не сработала.

На форуме задал вопрос с целью может в программе что придумано для этого или кто знает как это обойти кривым (или не кривым) путем каким.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 04.05.2018 23:51 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Доработали. Можно обновиться.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05.05.2018 13:30 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Ivan писал(а):
Доработали. Можно обновиться.

версия 2.732 (скачана в 12:20 05.05.18), Access, DemoBase.
Код:
SELECT ID AS <FORMAT(GetDate(), 'MMMM')> FROM tblMain
SELECT ID AS FORMAT(GetDate(), 'MMMM') FROM tblMain

Не работают.
Код:
SELECT ID AS [FORMAT(GetDate(), 'MMMM')] FROM tblMain

Выводит в заголовке FORMAT(GetDate(), 'MMMM'). В смысле сам текст FORMAT... а не дату.

Как надо запускать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05.05.2018 16:28 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Код:
SELECT ID AS FORMAT(GetDate(), 'MMMM') FROM tblMain

Должно работать.
Версия 2.732 от 05.05.2018

И БД на MS SQL Server надо снова перенести из программы с .mdb файлом, чтобы функция FORMAT создалась более актуальная.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05.05.2018 23:09 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Ivan писал(а):
Код:
SELECT ID AS FORMAT(GetDate(), 'MMMM') FROM tblMain

Должно работать.
Версия 2.732 от 05.05.2018

И БД на MS SQL Server надо снова перенести из программы с .mdb файлом, чтобы функция FORMAT создалась более актуальная.

Версия 2.732 скачана с сайта в 21:47 05.05.2018.

В SQL Manager код
SELECT FORMAT(GetDate(), 'MMMM')
выдает Май (как надо)

А вот в отчете проблема. См. картинку.
Перед тем как нажать кнопку "Просмотр" как и обычно нажимал в поле "Показывать поля" что бы увидеть список полей с галочками.
Там ничего не появлялось.
Нажал "Просмотр" и прогнозируемо выскочило сообщение.
Я что то не так делаю или на сайте старая версия лежит?

Вообще на мой взгляд с точки зрения общего построения вашей программы я ожидал что Вы исправите так что правильной конструкцией будет конструкция с угловыми скобками.
Код:
SELECT ID AS <FORMAT(GetDate(), 'MMMM')> FROM tblMain

Ведь везде то что в угловых скобках сначала определяется программой и затем подставляется в SQL или VBScript.

Ну и такое пожелание. Если Вы это решили делать, то было бы хорошо что бы любое выражение работало, а не только FORMAT(GetDate(), 'MMMM').
По крайней мере пользовательские функции должны работать.


Вложения:
Error_AS.jpg
Error_AS.jpg [ 219.66 КБ | Просмотров: 53230 ]
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07.05.2018 08:46 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Обновитесь до версии 2.733

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 07.05.2018 10:25 
Не в сети

Зарегистрирован: 06.10.2014 18:30
Сообщения: 279
Откуда: Орел
Ivan писал(а):
Обновитесь до версии 2.733

Сделали, то что не доделали в Microsoft-е. :)
Работает в скобках
Код:
SELECT ID AS <FORMAT(GetDate(), 'MMMM')> FROM tblMain

AS <dbo.MyFun('qwwqwqw')>
тоже работатет!
Отлично!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB