|
Вопрос # 5 234/ вопрос открыт / |
|
Здравствуйте!
есть проблема с отчётом, немогу разобрать ся почему в отчёт в excel выводиться одна и та же запись и причём несколько раз.
Приложение: Переключить в обычный режим- procedure otch;
- var
- excel,sheet,workBook:variant;
- col,j,i:integer;
- begin
- Excel:=CreateOleObject('Excel.Application');
- Excel.Visible:=true;
- Excel.workbooks.add(GetCurrentDir+'\oth_kma.xls');
- Col:=1;
- j:=3;
- excel.application.Range['A1:G1'].Select;
- Excel.Selection.Merge;
- excel.application.cells.Item[1,Col].HorizontalAlignment:=-4108;
-
-
- excel.application.Range['A1'].ColumnWidth:=30;
- excel.application.Range['B1'].ColumnWidth:=15;
- excel.application.Range['C1'].ColumnWidth:=25;
- excel.application.Range['D1'].ColumnWidth:=25;
- excel.application.Range['E1'].ColumnWidth:=20;
- excel.application.Range['F1'].ColumnWidth:=20;
- excel.application.Range['G1'].ColumnWidth:=20;
-
-
-
-
-
-
-
-
-
- for i:=1 to DM.tRazdels.RecordCount do
-
- begin
- excel.application.cells.item[j,col]:=F_uchet.DBLookupComboBox_kma.text;;
- excel.application.cells.item[j,col+1]:=f_uchet.DBEdit2.Text;
- excel.application.cells.item[j,col+2]:=f_uchet.DBE_ob_infa_kma_data.Text;
- excel.application.cells.item[j,col+3]:=f_uchet.DBEdit6.Text;
- excel.application.cells.item[j,col+4]:=DM.tRazdelsOb_infa_KMA_seri_nom.value;
- excel.application.cells.item[j,col+5]:=DM.tRazdelsOb_infa_KMA_invent_nom.value;
- excel.application.cells.item[j,col+6]:=DM.tRazdelsOb_infa_KMA_servisn_nom.value;
-
- DM.tRazdels.next;
- j:=j+1;
-
- end;
- begin
- excel.range[excel.cells[1,1],excel.cells[j-1,1]].select;
- excel.selection.borders.linestyle:=1;
- end;
- end;
 |
Вопрос задал: strannik23 (статус: Посетитель)
Вопрос отправлен: 27 апреля 2011, 11:06
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: Вадим К
Здравствуйте, strannik23!
Добавьте в самое начало процедуры(сразу за словом begin) такую строку
DM.tRazdels.first;
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 27 апреля 2011, 11:21
Оценка за ответ: 5
Комментарий к оценке: ответ удовлетворил
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 27 апреля 2011, 12:34; участников в обсуждении: 2.
|
strannik23 (статус: Посетитель), 27 апреля 2011, 11:13 [#1]:
вот ещё что, какая запись выделена в DBGridе и именно с этой записи выводиться отчёт, а если выделена последняя запись то просто последняя запись размножается и заменяет всё количество записей
|
|
strannik23 (статус: Посетитель), 27 апреля 2011, 11:35 [#2]:
извините за большое количество вопросов, но можно ли как нибудь сделать так что бы при выводе в отчёт пустые строки в EXCELе удалялись?
|
|
Вадим К (статус: Академик), 27 апреля 2011, 11:36 [#3]:
А зачем их удалять, если проще их туда просто не добавлять?
Галочка "подтверждения прочтения" - вселенское зло.
|
|
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 (статус: Посетитель), 27 апреля 2011, 12:34 [#6]:
спасибо
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|