Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 5 234

/ вопрос открыт /

Здравствуйте!
есть проблема с отчётом, немогу разобрать ся почему в отчёт в excel выводиться одна и та же запись и причём несколько раз.

Приложение:
  1. procedure otch;
  2. var
  3. excel,sheet,workBook:variant;
  4. col,j,i:integer;
  5. begin
  6. Excel:=CreateOleObject('Excel.Application');
  7. Excel.Visible:=true;
  8. Excel.workbooks.add(GetCurrentDir+'\oth_kma.xls');
  9. Col:=1;
  10. j:=3;
  11. excel.application.Range['A1:G1'].Select;
  12. Excel.Selection.Merge;
  13. excel.application.cells.Item[1,Col].HorizontalAlignment:=-4108;
  14.  
  15.  
  16. excel.application.Range['A1'].ColumnWidth:=30;
  17. excel.application.Range['B1'].ColumnWidth:=15;
  18. excel.application.Range['C1'].ColumnWidth:=25;
  19. excel.application.Range['D1'].ColumnWidth:=25;
  20. excel.application.Range['E1'].ColumnWidth:=20;
  21. excel.application.Range['F1'].ColumnWidth:=20;
  22. excel.application.Range['G1'].ColumnWidth:=20;
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. for i:=1 to DM.tRazdels.RecordCount do
  33.  
  34. begin
  35. excel.application.cells.item[j,col]:=F_uchet.DBLookupComboBox_kma.text;;
  36. excel.application.cells.item[j,col+1]:=f_uchet.DBEdit2.Text;
  37. excel.application.cells.item[j,col+2]:=f_uchet.DBE_ob_infa_kma_data.Text;
  38. excel.application.cells.item[j,col+3]:=f_uchet.DBEdit6.Text;
  39. excel.application.cells.item[j,col+4]:=DM.tRazdelsOb_infa_KMA_seri_nom.value;
  40. excel.application.cells.item[j,col+5]:=DM.tRazdelsOb_infa_KMA_invent_nom.value;
  41. excel.application.cells.item[j,col+6]:=DM.tRazdelsOb_infa_KMA_servisn_nom.value;
  42.  
  43. DM.tRazdels.next;
  44. j:=j+1;
  45.  
  46. end;
  47. begin
  48. excel.range[excel.cells[1,1],excel.cells[j-1,1]].select;
  49. excel.selection.borders.linestyle:=1;
  50. end;
  51. end;


strannik23 Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: strannik23 (статус: Посетитель)
Вопрос отправлен: 27 апреля 2011, 11:06
Состояние вопроса: открыт, ответов: 1.

Ответ #1. Отвечает эксперт: Вадим К

Здравствуйте, strannik23!
Добавьте в самое начало процедуры(сразу за словом begin) такую строку
DM.tRazdels.first;

Ответ отправил: Вадим К (статус: Академик)
Время отправки: 27 апреля 2011, 11:21
Оценка за ответ: 5

Комментарий к оценке: ответ удовлетворил

Мини-форум вопроса

Всего сообщений: 6; последнее сообщение — 27 апреля 2011, 12:34; участников в обсуждении: 2.
strannik23

strannik23 (статус: Посетитель), 27 апреля 2011, 11:13 [#1]:

вот ещё что, какая запись выделена в DBGridе и именно с этой записи выводиться отчёт, а если выделена последняя запись то просто последняя запись размножается и заменяет всё количество записей
strannik23

strannik23 (статус: Посетитель), 27 апреля 2011, 11:35 [#2]:

извините за большое количество вопросов, но можно ли как нибудь сделать так что бы при выводе в отчёт пустые строки в EXCELе удалялись?
Вадим К

Вадим К (статус: Академик), 27 апреля 2011, 11:36 [#3]:

А зачем их удалять, если проще их туда просто не добавлять?
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 27 апреля 2011, 11:42 [#4]:

это получается можно прописать через if, если запись пуста то не выводить
Вадим К

Вадим К (статус: Академик), 27 апреля 2011, 11:50 [#5]:

в коде выше между 34 и 35 строкой должно быть что то вида
if запись пуста then begin
  DM.tRazdels.next;
  continue;
end;
проверка на пустоту может быть различная, например такая
(F_uchet.DBLookupComboBox_kma.text = '') and (f_uchet.DBEdit6.Text = '')
Галочка "подтверждения прочтения" - вселенское зло.
strannik23

strannik23 (статус: Посетитель), 27 апреля 2011, 12:34 [#6]:

спасибо

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:57
Выполнено за 0.03 сек.