Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для son_yaa
0 / 0 / 1
Регистрация: 10.03.2018
Сообщений: 51
Delphi 6-7

Передача данных в Exel (закрывается рабочая форма при открытии Exel)

14.03.2018, 22:17. Показов 869. Ответов 1

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста. почему закрывается моя форма при открытии Exel?

Delphi
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
procedure TForm26.suiButton22Click(Sender: TObject);
const Months:array [1..12] of string[8]=('Январь', 'Февраль', 'Март', 'Апрель', 'Май', 'Июнь', 'Июль', 'Август', 'Сентябрь', 'Октябрь', 'Ноябрь', 'Декабрь');
Var y:Word;
i, s, s1:integer;
XL: variant;
data1, data2: string;
 
begin
if (Form26.QueryPoliMes.RecordCount<=0) then begin
Application.MessageBox('Извините, Заказов нет!','Предупреждение',MB_OK);
end
else if (Form26.QueryPoliMes.RecordCount>0) then begin try
if Application.MessageBox('Вы уверены?'+#13+'Сделать расчет для Бухгалтера?',
'Расчет Полиграфия',MB_OKCANCEL)=1 then
Close;
XL := CreateOleObject('Excel.Application');
XL.DisplayAlerts := false;
XL.WorkBooks.Add;
XL.Visible := true;
// XL.Selection.WrapText:=True; // перенос по словам
XL.Worksheets[1].PageSetup.Orientation := 1; // Ориентация бумаги: 1=Книжная, 2=Альбомная
XL.Worksheets[1].PageSetup.PaperSize := 9; // Указать размер бумаги. 8=А3, 9=А4, 11=А5
XL.WorkBooks[1].WorkSheets[1].PageSetup.LeftMargin := 70;
XL.WorkBooks[1].WorkSheets[1].PageSetup.RightMargin := 10;
XL.WorkBooks[1].WorkSheets[1].Name := 'Расчет' ;
XL.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleRows := '$3:$3';
XL.WorkBooks[1].WorkSheets[1].PageSetup.PrintTitleColumns := '$A:$A';
XL.WorkBooks[1].WorkSheets[1].Columns[1].ColumnWidth := 9;
XL.WorkBooks[1].WorkSheets[1].Columns[2].ColumnWidth := 25;
XL.WorkBooks[1].WorkSheets[1].Columns[3].ColumnWidth := 4;
XL.WorkBooks[1].WorkSheets[1].Columns[4].ColumnWidth := 7;
XL.WorkBooks[1].WorkSheets[1].Columns[5].ColumnWidth := 7;
XL.WorkBooks[1].WorkSheets[1].Columns[6].ColumnWidth := 7;
// XL.WorkBooks[1].WorkSheets[1].Columns[7].ColumnWidth := 6;
 
 
XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Bold := True;
// XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Bold := True;
XL.WorkBooks[1].WorkSheets[1].Rows[2].Font.Size := 14;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Color := clBlack;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Size := 13;
XL.WorkBooks[1].WorkSheets[1].Rows[1].Font.Name := 'Monotype Corsiva';
XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Underline := True;
XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Color := clBlack;
XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Size := 8;
XL.WorkBooks[1].WorkSheets[1].Rows[6].Font.Name := 'Times New Roman';
 
XL.WorkBooks[1].WorkSheets[1].Cells[1, 1] := 'Расчет '+ Months[MonthOf(Now)]+' '+IntToStr(YearOf(Now))+' года';
XL.WorkBooks[1].WorkSheets[1].Cells[2, 1] := 'ФИО/Организация';
XL.WorkBooks[1].WorkSheets[1].Cells[3, 1] := 'Контактное Лицо';
XL.WorkBooks[1].WorkSheets[1].Cells[3, 5] := 'Телефон';
XL.WorkBooks[1].WorkSheets[1].Cells[4, 1] := 'Реквизиты';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 1] := 'Дата зак.';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 2] := 'Описание';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 3] := 'Колич.';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 4] := 'Стоим.';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 5] := 'Себест.';
XL.WorkBooks[1].WorkSheets[1].Cells[6, 6] := 'Приб.';
Form26.QueryPoliMes.First;
s1:=0;
For i:=0 to Form26.QueryPoliMes.RecordCount-1 do begin
XL.WorkBooks[1].WorkSheets[1].Cells[i+2,3]:=Form26.QueryPoliMes.FieldByName('FIO').AsString; 
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,3]:=DataModule3.Tklient.FieldByName('КонтактноеЛицо' ).AsString;
XL.WorkBooks[1].WorkSheets[1].Cells[i+3,6]:=DataModule3.Tklient.FieldByName('Номертел').AsSt ring;
XL.WorkBooks[1].WorkSheets[1].Cells[i+4,4]:=DataModule3.Tklient.FieldByName('Реквизиты').AsS tring;
XL.WorkBooks[1].WorkSheets[1].Cells[i+4,4].WrapText:=True;//перенос по словам
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,1]:=Form26.QueryPoliMes.FieldByName('Data').AsString ;
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,2]:=Form26.QueryPoliMes.FieldByName('Описание').AsSt ring;
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,2].WrapText:=True;//перенос по словам
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,3]:=Form26.QueryPoliMes.FieldByName('КолВо').AsStrin g;
// XL.WorkBooks[1].WorkSheets[1].Cells[i+7,3]:=Form26.QueryPoliMes.FieldByName('КолВо').AsInteg er;
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,4]:=Form26.QueryPoliMes.FieldByName('Стоимость').AsC urrency;
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,5]:=Form26.QueryPoliMes.FieldByName('Себестоимость') .AsCurrency;
XL.WorkBooks[1].WorkSheets[1].Cells[i+7,6]:=Form26.QueryPoliMes.FieldByName('Прибыль').AsCur rency;
end;
except
end;
end;
 
end;
Добавлено через 28 минут
Все разобралась сама)) написала Close и в упор его не видела. Извиняюсь. не знаю как удалить тему чтобы не засорять
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.03.2018, 22:17
Ответы с готовыми решениями:

Перенос данных из одного файла Exel в другой файл Exel
Добрый день всем! Копался сам, но так и не нашел ответа. Вопрос следующий. Есть временный файл эксель(после работы с ним удаляется)....

Как при нажатии в Exel кнопки 'ОБНОВИТЬ ДАННЫЕ' вставить згачения времени ЮЗЕРОВ в поля книги Exel?
У меня проблема: есть текстовый файл, который валяется на ftp - сервере в каталоге pub с именем 271.txt, состоящий из 2-х полей и...

Зависает exel при открытии документа win7
Есть документы в формате xlsx, документы расшарены в сети, пользуются ими тел 5-6. На удалённых машинах документы открываются нормально...

1
Модератор
 Аватар для D1973
9929 / 6467 / 2457
Регистрация: 21.01.2014
Сообщений: 27,423
Записей в блоге: 3
15.03.2018, 10:57
Цитата Сообщение от son_yaa Посмотреть сообщение
почему закрывается моя форма при открытии Exel?
Потому, что Вы сами сказали программе сделать именно так!
Delphi
1
2
if Application.MessageBox('Вы уверены?'+#13+'Сделать расчет для Бухгалтера?', 'Расчет Полиграфия',MB_OKCANCEL)=1 
 then Close;
Функция MessageBox при таком наборе кнопок вернет 1, если пользователь согласится проводить расчет. т.е. нажал, бедолага, OK, а в программе Вашей на этот случай предусмотрена команда Close, что приводит к закрытию формы.
И вообще очень не удобно использовать числовые значения вместо именованных констант... Почему это же не записать:
Delphi
1
if Application.MessageBox('...', '...', MB_OKCANCEL) = IDOK...
сразу видно, нажатие какой кнопки обрабатывается.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.03.2018, 10:57
Помогаю со студенческими работами здесь

Передача данных из SQL в Exel
Доброго времени суток! Есть проблема - данные по полям таблицы отображаются только до определенного момента (когда бывших админов...

Передача данных из Firebird в Exel
помогите, написать программу в VB, для переноса данных из базы firebird в лист Excel. В бд ежедневно заносятся параметры, мне нужно...

Ошибка при открытии формы, картинки и вывода отчета в exel
Добрый вечер, при нажатии Run перед открытием формы всплывает окно с ошибкой(1й скрин) При выборе картинки(2й скрин), формат картинки jpg...

передача разнотипных данных из Exel в Access
Здравствуйте! помогите мне, пожалуйста! Имеется таблица в EXEL с разными типами данных. Данные нужно передать в три разные таблицы Access....

Передача всех данных из листа Exel в Access
как все данные из листа Exel передать в Access(можно в новую)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru