powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отчет в excel
12 сообщений из 12, страница 1 из 1
отчет в excel
    #39725741
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте! никак не могу решить такую проблему, надеюсь на помощь! в ecxel формирую отчет, в котором тех.процесс(тп) выводится со своим набором
отчет такого плана:
наименование тех. процесса
Материал| Наим. мат.| Марка| .........
Здесь материалы по тех. процессу
Итого:
(пропуск 2 строки)
наименование тех. процесса
Материал| Наим. мат.| Марка| .........
Здесь материалы по тех. процессу
Итого:
(пропуск 2 строки)
и так далее для каждого тех. процесса свой набор материалов.
для одного тех. процесса сделала отчет, а для всего набора - не получается...
sql-запрос
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
for i:=0 to PechatUdNormForm.TehProcessComboBox.items.count-1 do begin
    with PechatUdNormForm.ADOQuery1 do begin
     Close;
     SQL.Clear;
     SQL.Add('select unr.obm, n051s.nam, n051s.mar, n051s.ram, n051s.gsm, ');
     sql.Add('n051s.gss, unr.unr1, unr.kets, unr.ets, n051s.cenp, unr.unr1*n051s.cenp as cen ');
     sql.Add('from unr INNER join [O:\dbf\n051s.DBF] on n051s.obm=unr.obm ');
     sql.add('where tpr='+QuotedStr(PechatUdNormForm.TehProcessComboBox.items.Strings[i]));
     Open;
    end;
     end;


процедура отчета
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
index:=2;
  for i:=0 to PechatUdNormForm.TehProcessComboBox.items.count-1 do begin
      excl.ActiveSheet.Cells(index,1):='Технологическая операция'+' '+PechatUdNormForm.TehProcessComboBox.items.Strings[i]+' '+PechatUdNormForm.ListBox1.Items.Strings[i];
      excl.cells[index,1].WrapText:=false;
      index:=index+PechatUdNormForm.ADOQuery1.RecordCount+3;
  end;

  index:=3 ;
.......

   FData:=VarArrayCreate([1,PechatUdNormForm.ADOQuery1.RecordCount,1,PechatUdNormForm.ADOQuery1.Fields.Count],varVariant);
  // Заполняем массив
   PechatUdNormForm.ADOQuery1.First;
   k:=1;
   while not PechatUdNormForm.ADOQuery1.Eof do
    begin
       for j:=1 to PechatUdNormForm.ADOQuery1.Fields.Count do begin
       FData[k,j]:=PechatUdNormForm.ADOQuery1.Fields[j-1].Value;
       end;
       k:=k+1;
        PechatUdNormForm.ADOQuery1.Next;
    end;

    index:=4;
    for i := 0 to PechatUdNormForm.TehProcessComboBox.items.count-1 do begin
    Excl.Range[Excl.ActiveSheet.Cells[4, 1], Excl.Cells[PechatUdNormForm.ADOQuery1.RecordCount+3, PechatUdNormForm.ADOQuery1.Fields.Count]].Value:=FData;
    end;


мой код выводит только набор материалов для последнего ТП в списке.
...
Рейтинг: 0 / 0
отчет в excel
    #39725752
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

Выведи это в TCxGrid
И экспортируй в Эксель.
Код: pascal
1.
2.
3.
uses cxExportGrid4Link;
....
ExportGrid4ToExcel(SaveDialog1.FileName, Grid, True);
...
Рейтинг: 0 / 0
отчет в excel
    #39725774
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_B,

боюсь, что пока это не выход, т.к. компонент нужно изучить (не пользовалась им), а отчет нужен срочно.
...
Рейтинг: 0 / 0
отчет в excel
    #39725785
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterina,

1. Изучить компонент TcxGrid минут 10. Более того, если ты разрабатываешь в Delphi, это неизбежно.
2. Можно создать отчёт FastReport и экспортировать его в Excel/Pdf
3. Это точно быстрее, чем писать самопал с выгрузкой в Excel.
4. Это будет понятно всем.

Если у тебя стоит задача изучить тонкости работы с Excel через Delphi, то я тут вряд ли могу помочь. Я не знаю, сколько времени это займёт.
Если же задача просто выгрузить, то лучше делать именно так. Ну или искать другие компоненты.
...
Рейтинг: 0 / 0
отчет в excel
    #39725786
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_B,

спасибо!
...
Рейтинг: 0 / 0
отчет в excel
    #39725797
goldmi45
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве не по этой проблеме вами была создана тема ?
...
Рейтинг: 0 / 0
отчет в excel
    #39725807
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
goldmi45,

по этой, но она так и осталась нерешенной.
...
Рейтинг: 0 / 0
отчет в excel
    #39725830
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinagoldmi45,

по этой, но она так и осталась нерешенной.

автормой код выводит только набор материалов для последнего ТП в списке.
Использование index видно только в первом цикле.
Учитывая характер проблемы, можно предположить, что вы каждый раз начинаете заполнять страницу Excel с одной и той-же позиции.
Пошаговая отладка поможет вам понять причину вашей беды...
...
Рейтинг: 0 / 0
отчет в excel
    #39725834
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изучайте FastReport.
...
Рейтинг: 0 / 0
отчет в excel
    #39725885
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

неправда. индекс меняется
...
Рейтинг: 0 / 0
отчет в excel
    #39725902
Gerasimenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TsYekaterinaGerasimenko,

неправда. индекс меняется
я не говорил, что он не меняется.
Меняется и Используется - это две очень разные веСЧи
...
Рейтинг: 0 / 0
отчет в excel
    #39725907
TsYekaterina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gerasimenko,

согласна с Вами. понимаю, что он должен использоваться, где index=4, но никак не соображу, что должно быть в index:=index+....
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / отчет в excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]