Архив форума A-Number CRM

 

Вопрос по печатным бланкам

Zheka
avatar Пользователь

Эксперт
Постов: 61
graphgraph
 
Вопрос по печатным бланкам - Вопрос такой: В закладке есть таблица значений, как указать, что бы в Excel тянуло все значения из столбца по строкам, пока берет только первое значение? Пример: в закладке поле А и поле Б, в каждом по три значения (три строки), в Excel тянет только данные из первой строки поля А и Б, а вторая строка игнорируется. Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
 
admin
avatar Администратор

Администратор
Постов: 2728
graph
 
В ответ на: Вопрос по печатным бланкам - Zheka писал(а):
как указать, что бы в Excel тянуло все значения

Речь идет о печатных бланках ? Или .. ?
 
Zheka
avatar Пользователь

Эксперт
Постов: 61
graphgraph
 
В ответ на: Вопрос по печатным бланкам - Да, о печатных бланках Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
 
Zheka
avatar Пользователь

Эксперт
Постов: 61
graphgraph
 
В ответ на: Вопрос по печатным бланкам - В каждой закладке есть кнопочка Excel, заранее подготовив файлик для выгрузки, получаем данные только из первой строки закладки. Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
 
admin
avatar Администратор

Администратор
Постов: 2728
graph
 
В ответ на: Вопрос по печатным бланкам - Все правильно, как правило одна строка, одна сущность (Счет, Договор и т.д.)

Если надо из разных строк (или закладок), то только скриптом.
 
Zheka
avatar Пользователь

Эксперт
Постов: 61
graphgraph
 
В ответ на: Вопрос по печатным бланкам - admin писал(а):
Все правильно, как правило одна строка, одна сущность (Счет, Договор и т.д.)

Если надо из разных строк (или закладок), то только скриптом.


Странно, по структуре (стандартно) мне казалось, что подразумевается в закладке несколько строк, ведь есть кнопки "добавить строку", "шаблон строки", группировки, арифметические действия над этими строками и т.д., а получается что печатный бланк редко когда можно использовать. У меня в карточке 16 закладок, и только в двух возможна одна строка.
Придется, чувствую искать книгу T-SQL
Спасибо за оперативные ответы.
Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
 
admin
avatar Администратор

Администратор
Постов: 2728
graph
 
В ответ на: Вопрос по печатным бланкам - Вы правильно думаете, действительно строк в закладке может быть сколько угодно. Ну например :

Счет№ Дата Количество Сумма Валюта
100 15.01.2013 10 1000 Руб.
101 15.01.2013 15 3000 Руб.
102 15.01.2013 25 5000 Руб.

и т.д.

Соответственно одна строка, один счет, к нему Вы и "рисуете" форму печати.

Нас просили писать скрипты, которые собирают данные из разных закладок, но чтобы из разных строк, пока не было !

Или Вы что-то другое имели ввиду ?
 
Zheka
avatar Пользователь

Эксперт
Постов: 61
graphgraph
 
В ответ на: Вопрос по печатным бланкам - Всё правильно. Просто ситуация такая: запущена CRM (сейчас в ней 14 пользователей и 4000 контактов), и первым делом мне нужно стандартными средствами сделать людям работу в ней не менее комфортной, чем в Excel, а далее можно будет уже делать более эффективную работу за счёт новых отчетов, дополнительных скриптов и т.д. Но поскольку эти 14 пользователей работали в Excel в разных по структуре таблицах, и с разым функционалом, получается что CRM (в том виде какая она есть) даёт примерно 70% функционала Excel, а 30% перекрыть нечем. В основном это касается фильтрации и арифметики. Ну к примеру: у человека по строкам в Excel считало сумму и количество непустых ячеек (т.е. где есть значения), в CRM попробовал в закладке посчитать кол-во (есть среди стандартных функций), так оно считает вместе с пустыми ячейками, т.е. просто выводит кол-во строк в столбце, а не кол-во не пустых ячеек, ну и т.д. Таким образом пытаюсь стандартными средствами CRM выкручивать хотя бы самый минимум необходимого, а появится время, тогда уже и за скрипты можно сесть. Вот такая история. Сохраняйте тонкую грань между "удержать покупателя" и "прогнуться под покупателя"
 
TIGRus
Пользователь

Эксперт
Постов: 37
graphgraph
 
В ответ на: Вопрос по печатным бланкам - admin писал(а):
Например :

Счет№ Дата Количество Сумма Валюта
100 15.01.2013 10 1000 Руб.
101 15.01.2013 15 3000 Руб.
102 1 5.01.2013 25 5000 Руб.



А не могли бы Вы нам дать образец написания скрипта (для примера приведенного выше) чтобы в "Печатный бланк" Excel выводились все строки данной закладки?

А мы бы по аналогии уже "прикрутили" к своим данным.
 
admin
avatar Администратор

Администратор
Постов: 2728
graph
 
В ответ на: Вопрос по печатным бланкам - Можно конечно, но проблема в том, что у вас несколько столбцов. В данном случае скорее подходят обычные или 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
 
© 2005 - 2015 A-Number Software. Все права защищены                          Написать письмо