Показать сообщение отдельно
Старый 18.04.2012, 21:15    | »»» |  #14
SK
Администратор
 
Аватар для SK
 
Регистрация: 27.05.2010
Сообщений: 29,989
SK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud ofSK has much to be proud of
Отправить сообщение для SK с помощью Skype™
По умолчанию

Пример. Машинки берутся из таблицы ТС.

Код:
Процедура ОтчетПоПолям()
 ТабТС.ВыбратьСтроки();
 ПроцВсе=0;
 ВсегоТС=0;
 ОбработаноТС=0;
 Ширина = 8;
 ФайлВыгрузки = "D:\!\FIELDS.DBF";
 ТабТС.ВыбратьСтроки();
 Пока ТабТС.ПолучитьСтроку() = 1 Цикл
  Если ТабТС.Метка = "+" Тогда ВсегоТС = ВсегоТС + 1; КонецЕсли;
 КонецЦикла;
 ТабТС.ВыбратьСтроки();
 Пока ТабТС.ПолучитьСтроку() > 0 Цикл
  Если ТабТС.Метка = "" Тогда Продолжить; КонецЕсли;
  ТСПериодНач=Формат(ДатаЧисло(ВыбНачПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбНачПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбНачПериода))+" 00:00:00";
  ТСПериодКон=Формат(ДатаЧисло(ВыбКонПериода),"Ч(0)2.0")+"."+Формат(ДатаМесяц(ВыбКонПериода),"Ч(0)2.0")+"."+Строка(ДатаГод(ВыбКонПериода))+" 23:59:59";
  // AG.SetGroupIndexByFileName(ТабТС.ГрФайл);
  //AG.SetCarIndexByDevice(ТабТС.СерНом);
  //AG.WaitForComputing(ТабТС.ГрФайл,ТабТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",1);
  AG.WaitForFieldsComputing(ТабТС.ГрФайл,ТабТС.СерНом,ТСПериодНач,ТСПериодКон,"GSM",Ширина,0);
  AG.TripIndex = 1;
        AG.ExportListToFile(ФайлВыгрузки,"fields","",1,1);
  ОбработаноТС=ОбработаноТС+1;
  Форма.Проц.Заголовок(Строка(Окр(100/ВсегоТС*ОбработаноТС,0))+" %");
 КонецЦикла;
 Предупреждение("ГОТОВО");
КонецПроцедуры //ОтчетПоПолям()
Код:
Процедура ЗаполнитьТаблицуТС()
 // Инициализируем таблицу групп ТС
 ТабГрупп.УдалитьСтроки();
 // Инициализируем таблицу ТС
 ТабТС.УдалитьСтроки();
 ЧислоГрупп=AG.GroupsNum; //Определяем число групп ТС
 Если ЧислоГрупп>0 Тогда
  Для х = 1 По ЧислоГрупп Цикл
   AG.GroupIndex = х; //Передаем индекс (номер) группы в АГ 
   ГрЧислоТС = AG.GroupCarsNum; //Определяем число ТС в группе
   Если ГрЧислоТС > 0 Тогда  //Если кол-во ТС в текущей группе > 0 тогда выводим ТС группы, пустую группу - не выводим
    ТабГрупп.НоваяСтрока();
    ТабГрупп.Группа  = AG.GroupName;      //Название группы ТС
    Для хх = 1 По ГрЧислоТС Цикл
     AG.CarIndex = хх;                 //Передаем индекс (номер) ТС внутри группы в АГ
     ТабТС.НоваяСтрока();
     ТабТС.Метка   = "";               //Метка выбора - снята
     ТабТС.Группа  = AG.GroupName;     //Название группы ТС
     ТабТС.СерНом  = AG.CarDevice;     //Сер. номер контроллера
     ТабТС.Марка   = AG.CarModel;      //Марка ТС
     ТабТС.НомерТС = AG.CarNumber;     //Гос. номер ТС
     ТабТС.ГрФайл  = AG.GroupFileName; //Файл группы ТС (нужен для расчета)
    КонецЦикла;
   КонецЕсли;
  КонецЦикла;
 КонецЕсли;
КонецПроцедуры // ЗаполнитьТаблицуТС()
//****************************************************************************************************************************
// Предопределенная процедура ПриОткрытии()
// Инициализируем форму, таблицы и начальные значения переменных, создаем COM-объект
//****************************************************************************************************************************
Процедура ПриОткрытии()
 ОчиститьОкноСообщений();
 Форма.ИспользоватьСлой("Основной");
 //Сообщить(AG.CurrentVersion); // Текущая версия ПО «АвтоГРАФ»
 Форма.ИспользоватьЗакладки(1);
 AG=СоздатьОбъект("AutoGRAPH.AutoGRAPHAutomation"); // Создаем COM-объект
 ddd=AG.WaitForInitializing();                      // Ждем окончания инициализации объекта
 НепройденныеКТ = 1;                                // Устанавливаем чекбокс "Показывать отчет с непройденными КТ" в положение "Да"
 ВыбНачПериода  = ТекущаяДата();                    // Устанавливаем начальную дату отчета на начало текущего дня
 ВыбКонПериода  = ТекущаяДата();                    // Устанавливаем конечную дату отчета на конец текущего дня
 // Инициализируем таблицу групп ТС
 ТабГрупп.УдалитьСтроки();
 ТабГрупп.НоваяКолонка("Группа",,,,"Группа (+/-)",20,,1);
 // Инициализируем таблицу ТС
 ТабТС.УдалитьСтроки();
 ТабТС.НоваяКолонка("Метка",,,,"Х",3,,1);
 ТабТС.НоваяКолонка("Группа",,,,"Группа",20,,1);
 ТабТС.НоваяКолонка("СерНом",,,,"№ АГ",8,,1);
 ТабТС.НоваяКолонка("Марка",,,,"Марка/Модель",30,,1);
 ТабТС.НоваяКолонка("НомерТС",,,,"Рег. № ТС",20,,1);
 ТабТС.НоваяКолонка("ГрФайл",,,,"Файл группы",20,,1);
 ЗаполнитьТаблицуТС(); // Заполняем таблицу ТС и групп ТС
КонецПроцедуры //ПриОткрытии

ООО «ТехноКом», г. Челябинск
Самцов Константин Юрьевич - зам. директора по коммерческой деятельности
SK вне форума   Ответить с цитированием