7.7 Диаграмма в отчете по выборке мужчин и женщин

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем kompac, 9 май 2011.

  1. TopicStarter Overlay
    kompac
    Offline

    kompac

    Регистрация:
    30 дек 2008
    Сообщения:
    15
    Симпатии:
    0
    Баллы:
    1
    Есть отчет который выводит, количество мужчин и женщин. Мне нужно сделать диаграмму. Я пытался разобраться в описани языка но ничего хорошего не получилось.((( Кароче в диаграммах я полный не бум-бум, хочу разобраться.

    Вот код, который уже сделан, тут циклы по выборке мужчин и женщин и по выводу количества.
    Код:
    Процедура Сформировать(КолМуж,КолЖен)
    спр1=СоздатьОбъект("Справочник.Сотрудники");
    спр2=СоздатьОбъект("Справочник.Сотрудники");
    Таб=СоздатьОбъект("Таблица");
    Таб.исходнаятаблица("Таблица");	
    КолМуж=0;  
    КолЖен=0;                                                  
    Таб.ВывестиСекцию("заголовок");
    спр1.ВыбратьЭлементыПореквизиту("Пол",Перечисление.Пол.Мужской);
    спр2.ВыбратьЭлементыПореквизиту("Пол",Перечисление.Пол.Женский);
    пока  (спр1.получитьЭлемент()=1) или (спр2.получитьЭлемент()=1) Цикл
    Если спр1.получитьЭлемент()=1 Тогда
    Мужик=спр1.наименование;
    КолМуж=КолМуж+1;
    КонецЕсли;
    Если спр2.получитьЭлемент()=1 Тогда                        
    Жен=спр2.наименование;
    КолЖен=КолЖен+1;
    КонецЕсли;
    Если КолМуж=КолЖен	Тогда	
    Таб.ВывестиСекцию("выборка");
    ИначеЕсли (КолМуж>КолЖен) и ((спр1.получитьЭлемент()=1) или (спр2.получитьЭлемент()=1)) Тогда
    Жен="";
    Таб.ВывестиСекцию("выборка");
    ИначеЕсли (КолМуж<КолЖен) и ((спр1.получитьЭлемент()=1) или (спр2.получитьЭлемент()=1)) Тогда
    Мужик="";
    Таб.ВывестиСекцию("выборка");
    КонецЕсли;
    КонецЦикла;                      
    Таб.ВывестиСекцию("Количество");
    Таб.ВывестиСекцию("Диаграмма");
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
    КонецПроцедуры
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Вот приблизительный код процедуры вывода диаграммы который обычно использую я.

    Параметры: Диаграмми и ТаблицаЗначений содержащая данные которые нужно выводить.

    Код:
    Процедура СформироватьДиаграмму(Диаграмма, ТЗ) 
    
    Диаграмма.Обновление(0); 
    
    // Устанавливаем количество точек оси X и Y  
    КолСтрок = ТЗ.КоличествоСтрок(); 
    КолКолонок = ТЗ.КоличествоКолонок(); 
    
    Диаграмма.КоличествоСерий(КолСтрок); 
    Диаграмма.КоличествоТочек(КолКолонок-1); 
    
    Для Сч = 1 По КолСтрок Цикл 
    Диаграмма.УстановитьИмяСерии(Сч, СокрЛП(ТЗ.ПолучитьЗначение(Сч, 1))); 
    Для Сч2 = 2 По КолКолонок Цикл 
    Если Сч = 1 Тогда 
    НаименованиеТочки = ""; 
    // Наименование точки это заголовок колонки 
    ТЗ.ПолучитьПараметрыКолонки(Сч2, , , , НаименованиеТочки); 
    Диаграмма.УстановитьИмяТочки(Сч2 - 1, НаименованиеТочки); 
    КонецЕсли; 
    Диаграмма.УстановитьЗначение(Сч2 - 1, Сч, ТЗ.ПолучитьЗначение(Сч, Сч2)); 
    КонецЦикла; 
    КонецЦикла; 
    
    Диаграмма.Обновление(1); 
    
    КонецПроцедуры
    
    
    
    используйте пример для написания своего кода или примените мой (сформируйте ТЗ и вызовите процедуру)

    Довольно интересный у вас подход к подсчету... За ОДИН цикл для ОДНОГО объекта выбрать всех мужчин и женщин не комильфо?

Поделиться этой страницей