IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> Отчет Excel
Atreides
сообщение 27.04.2011 13:04
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Задача - разложить данные по предприятия в закладки книги файла эксель. Т.е. одна закладка одно предприятие. + имя закладки это имя предприятия из списка. Шапка одна и так же везде должна быть, количество предприятий может меняться. Для вывода отчет использую шаблон и компоненту EXLReport. В один список все прекрасно выходит, а вот как разбить на страницы с именами предприятий и данные разложить вопрос. Не уверен, что верно написал переход по списку предприятий еще...
Вот пример моего вывода:
Код
procedure TForm5.Button1Click(Sender: TObject);
var
  col: integer;
  st: string;
  year, MonthSelected: string;
  oth: string;
  sum_03, sum_04, sum_05, sum_1_04, sum_2_04, sum_1_05, sum_2_05: string;
  provodka: string;
  data: string;
  direct: string;
  IDSOURCE, PR_MEST: string;
  priznak: string;
  NO_FAM: string;
  cods: string;
  KOD:string;
  koll:integer;

  begin

// собираем данные

  year := Form5.Edit1.Text;
  MonthSelected := FloatToStr(Form5.ComboBox1.ItemIndex + 1);
  priznak := IntToStr(Form5.ComboBox3.ItemIndex + 1);

  oth := 'получе5ние отчетного месяца' + MonthSelected + '';
  Form5.ClientDataSet1.close;
  Form5.ClientDataSet1.DataRequest(oth);
  Form5.ClientDataSet1.open;
  oth := Form5.ClientDataSet1.fieldbyname('id_otchm').asstring;


  IDSOURCE := 'выбор источника загрузки '';
  Form5.ClientDataSet1.close;
  Form5.ClientDataSet1.DataRequest(IDSOURCE);
  Form5.ClientDataSet1.open;
  IDSOURCE := Form5.ClientDataSet1.fieldbyname('ID_SOURCE').asstring;
  PR_MEST := Form5.ClientDataSet1.FieldByName('Pr_MEST').AsString;
  NO_FAM := Form5.ClientDataSet1.FieldByName('NO_ONE_FAM').AsString;

    direct := 'reestor_bez_mesta.xls';

    //получаем список кодов организации
  begin

    cods := 'выборка кодов организации  ' +

    ' order by Kodorg asc ';

    Form5.ClientDataSet1.close;
    Form5.ClientDataSet1.DataRequest(cods);
    Form5.ClientDataSet1.open;
    koll:=Form5.ClientDataSet1.RecordCount;

    Kod := Form5.ClientDataSet1.FieldByName('KODORG').AsString;
  while
   Form5.ClientDataSet1.Eof
    do

        begin
      //по одной организации
    

      st := '  запрос данных о предприятии ';

      Form5.ClientDataSet2.close;
      Form5.ClientDataSet2.DataRequest(st);
      Form5.ClientDataSet2.open;

   {   col := Form5.ClientDataSet2.RecordCount;
      begin
        if col = 0 then
        begin
          ShowMessage('Данные отсуствуют')
        end
        else  }


            Form5.ClientDataSet1.Next;
        begin
           Form5.EXLReport1.TemplSheet:='Лист 3';
          exlReport1.Template := 'H:\808.COM\Andreev\Справочники\Forms\' + direct;
          if Assigned(Form5.EXLReport1) then Form5.EXLReport1.Show; // открытие окошка эксель
        end;
      end;
    end;
  end;
//end;



Сообщение отредактировано: Atreides - 27.04.2011 13:07


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Atreides   Отчет Excel   27.04.2011 13:04
IUnknown   Сторонние компоненты не использую, идея - такая: p...   28.04.2011 1:49
Atreides   XLApp - это ExcelApplication или какой модуль надо...   28.04.2011 8:57
IUnknown   Нет. Это Uses ..., ComObj; var XLApp : Variant; ...   28.04.2011 10:05
Atreides   меня интересует вопрос в каком месте послать запро...   28.04.2011 15:20
IUnknown   Такой запрос не нужен. Его роль на себя берет ...   28.04.2011 15:44
Atreides   наверное, лучше исходник прикрепить как целостны п...   28.04.2011 16:01
IUnknown   Ну вот: Поменяешь там путь к XLT-файлу на правил...   28.04.2011 16:51
Atreides   Почему то в конце столбцов образуются символы (#Н/...   29.04.2011 11:49
IUnknown   Значит, размер области вычислил неправильно. Такое...   29.04.2011 12:32
Atreides   Data := VarArrayCreate([1, ClientDataS...   29.04.2011 12:38
IUnknown   Можно. Перенеси ActiveBook.Sheets[1].Delete; // ...   29.04.2011 12:59
Atreides   Еще вопрос такой возник – можно добавить вставку д...   2.05.2011 11:30
IUnknown   Если ячейка известна - то разумеется, можно: ToCe...   2.05.2011 13:33
Atreides   Из константы можно путь в переменную вывести?   3.05.2011 13:55
IUnknown   Из константы в переменную - можно, обратно - нельз...   3.05.2011 14:08
Atreides   Из константы в переменную - можно, обратно - нель...   3.05.2011 14:33
IUnknown   Что значит "не прокатывает"? Все прекрас...   3.05.2011 14:51
Atreides   Что значит "не прокатывает"? Все прекра...   3.05.2011 14:59
IUnknown   Ну, а какого ты сверху написал ":=", а з...   3.05.2011 15:03
Atreides   Ну, а какого ты сверху написал ":=", а ...   3.05.2011 15:55
TarasBer   Бесят уже. Сами по невнимательности всё партачат, ...   3.05.2011 15:32
Atreides   1. После завершения работы, остается висящий проце...   4.05.2011 14:21
IUnknown   Разумеется. Ты ж записываешь данные еще ДО создани...   4.05.2011 15:11
Atreides   Разумеется. Ты ж записываешь данные еще ДО создан...   4.05.2011 15:32
IUnknown   И после этого удивляешься, ??? А как ты хотел, что...   4.05.2011 15:53
Atreides   Никак не могу найти ошибку, на каждой странице не ...   6.05.2011 7:24
IUnknown   Я тебе объясню... Вот тут: ты что-то намудрил. Ес...   6.05.2011 10:08
Atreides   Поправка на поля исправила ошибку с не хватающими ...   11.05.2011 14:47
IUnknown   Надо сказать об этом: Curr.Range[ToCell5].Formula ...   11.05.2011 15:07
Atreides   С формулами разобрался, отлично подсчитал общие ит...   12.05.2011 7:44
IUnknown   Так действительно будет проще. Уже потому, что есл...   12.05.2011 9:15
Atreides   а как же исключать ячейки и определять начало новы...   12.05.2011 14:18
IUnknown   Когда ж ты сам начнешь думать? Вот идея прохода п...   12.05.2011 15:40
Atreides   Благодарю! Выходит даже не обязательно искать ...   13.05.2011 9:11
IUnknown   Это то есть как 2 критерия? Пример можно привести?...   13.05.2011 10:38
Atreides   По наименованию и по форме. Родилась идея запросом...   13.05.2011 12:02
IUnknown   Я ж просил пример привести... Еще раз: я понимаю, ...   13.05.2011 12:12
Atreides   Под данными надо подвести итоги по суммам и количе...   17.05.2011 11:10
IUnknown   А для комбинирования нескольких условий в Excel ес...   17.05.2011 12:43
Гость   В целом разобрался, но тут посидел голову поломал ...   23.05.2011 14:59
Atreides   В целом разобрался, но тут посидел голову поломал...   23.05.2011 15:01
IUnknown   Не знаю, тебе решать. Ты свой запрос видишь, а я -...   23.05.2011 17:46
Atreides   В любом случае огромное спасибо, за помощь!   24.05.2011 7:22
Atreides   А можно ячейки задать типа данных программных путе...   3.06.2011 7:39
Atreides   столкнулся с такой проблемой, когда у меня записей...   1.07.2011 16:56
Lapp   Ну неужели ТАК СЛОЖНО поставить ПРАВИЛЬНЫЙ тег?.. ...   2.07.2011 0:37
IUnknown   Попробую догадаться: значение числовое, но очень д...   2.07.2011 2:16
Atreides   А тогда как корректней и чтобы быстрей работало пр...   2.07.2011 13:19


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 12:28
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"