Вопрос по печатным бланкам -
Вопрос такой: В закладке есть таблица значений, как указать, что бы в Excel тянуло все значения из столбца по строкам, пока берет только первое значение? Пример: в закладке поле А и поле Б, в каждом по три значения (три строки), в Excel тянет только данные из первой строки поля А и Б, а вторая строка игнорируется.Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
В ответ на: Вопрос по печатным бланкам -
В каждой закладке есть кнопочка Excel, заранее подготовив файлик для выгрузки, получаем данные только из первой строки закладки.Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
Если надо из разных строк (или закладок), то только скриптом.
Странно, по структуре (стандартно) мне казалось, что подразумевается в закладке несколько строк, ведь есть кнопки "добавить строку", "шаблон строки", группировки, арифметические действия над этими строками и т.д., а получается что печатный бланк редко когда можно использовать. У меня в карточке 16 закладок, и только в двух возможна одна строка. Придется, чувствую искать книгу T-SQL Спасибо за оперативные ответы.Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
Счет№ Дата Количество Сумма Валюта 100 15.01.2013 10 1000 Руб. 101 15.01.2013 15 3000 Руб. 102 15.01.2013 25 5000 Руб.
и т.д.
Соответственно одна строка, один счет, к нему Вы и "рисуете" форму печати.
Нас просили писать скрипты, которые собирают данные из разных закладок, но чтобы из разных строк, пока не было !
Или Вы что-то другое имели ввиду ?
Zheka
Пользователь
Эксперт
Постов: 61
В ответ на: Вопрос по печатным бланкам -
Всё правильно. Просто ситуация такая: запущена CRM (сейчас в ней 14 пользователей и 4000 контактов), и первым делом мне нужно стандартными средствами сделать людям работу в ней не менее комфортной, чем в Excel, а далее можно будет уже делать более эффективную работу за счёт новых отчетов, дополнительных скриптов и т.д. Но поскольку эти 14 пользователей работали в Excel в разных по структуре таблицах, и с разым функционалом, получается что CRM (в том виде какая она есть) даёт примерно 70% функционала Excel, а 30% перекрыть нечем. В основном это касается фильтрации и арифметики. Ну к примеру: у человека по строкам в Excel считало сумму и количество непустых ячеек (т.е. где есть значения), в CRM попробовал в закладке посчитать кол-во (есть среди стандартных функций), так оно считает вместе с пустыми ячейками, т.е. просто выводит кол-во строк в столбце, а не кол-во не пустых ячеек, ну и т.д. Таким образом пытаюсь стандартными средствами CRM выкручивать хотя бы самый минимум необходимого, а появится время, тогда уже и за скрипты можно сесть. Вот такая история.Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
Счет№ Дата Количество Сумма Валюта 100 15.01.2013 10 1000 Руб. 101 15.01.2013 15 3000 Руб. 102 1 5.01.2013 25 5000 Руб.
А не могли бы Вы нам дать образец написания скрипта (для примера приведенного выше) чтобы в "Печатный бланк" Excel выводились все строки данной закладки?
А мы бы по аналогии уже "прикрутили" к своим данным.
admin
Администратор
Администратор
Постов: 2728
В ответ на: Вопрос по печатным бланкам -
Можно конечно, но проблема в том, что у вас несколько столбцов. В данном случае скорее подходят обычные или SQL-отчеты. Зачем использовать для этого механизм печатных бланков не совсем ясно, так как они больше заточены на некие данные по той строке на которой стоим в данный момент, одиночные итоговые данные типа “сумма всех заказов данного контакта одной строкой”и т.п. результирующие выжимки. При этом каждая клетка в отчете из закладки при выводе в Эксель должна быть указана по номеру с X и Y. В бланке отчета должны быть указаны названия строк, столбцов и так далее.
Предположим, у вас закладка Счета которая имеет в базе имя PageForCont5 Вы делаете шаблон Excel, в котором указываете имена столбцов.
Ваш SQL-скрипт должен создавать таблицу, в которой: первый столбец имеет имя [id] – это номер по порядку типа 1,2,3,4…. и так далее Второй и третий это X и Y будущего значения, их имена [X] и [Y] Четвертый – это вносимое значение [Value] Пятый [New] для простоты ставьте 0 (false).
Пример скрипта из одного столбца, который в одну колонку выводит какие-то суммы. К сожалению при нескольких столбцах (то есть таблице) придется описывать через XY каждую клетку, так как для каждого значения нужно указать его положение в отчете.
--это временная табл в которой будут результаты if object_id('tempdb..#Prom_PageReportWizard') is not null drop table #Prom_PageReportWizard create table #Prom_PageReportWizard ([id] int identity (1,1) primary key, X int, Y int, [Value] varchar(250), New bit)
--это в нее заносим результаты insert #Prom_PageReportWizard (X, Y, [Value], New) select 1,1, sum(isnull([11],0)) as 'Некая сумма' , cast(0 as bit) from PageForCont5 group by id_contacts
--пробегаю по таблице чтобы задать X и Y – в данном случае всего лишь увеличиваем Y на 1 при каждой итерации в цикле declare @i int, @Count int set @i=1 set @Count=(select max([id]) from #Prom_PageReportWizard) while @i<=@Count begin update #Prom_PageReportWizard set Y=@i from #Prom_PageReportWizard where [id]=@i set @i=@i+1 end
--а это получаем итоговый результат select [id], X,Y, [Value], New from #Prom_PageReportWizard