Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 19:08   #1
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию компонент progressbar и экспорт в excel

Значит как сделать чтобы во время экспорта в excel, чтобы пользователь не видел как формируется страничка. Красовалась форма с progressbar и шла загрузка. Может кто сталкивался с подобным подскажите или еще скиньте исходник если есть. плиз.
Hobbit_88 вне форума Ответить с цитированием
Старый 27.04.2009, 19:24   #2
Minotavr_x86
Пользователь
 
Аватар для Minotavr_x86
 
Регистрация: 22.03.2007
Сообщений: 24
По умолчанию

Я себе представляю это примерно так
1.Visable в true после формирования отчета
2.Если мне не изменяет память у тебя отчет формирорвался в цикле. Ну так вот рачитываешь количество шагов и сообщаешь progressbar'у сколько уже прошло.
Не всё получается так, как придумал,
Но разве за это должно быть стыдно!?!
Minotavr_x86 вне форума Ответить с цитированием
Старый 27.04.2009, 19:54   #3
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию

а у кого-нибудь исходник есть, а то самому долго разбираться
Hobbit_88 вне форума Ответить с цитированием
Старый 05.05.2009, 18:20   #4
vario_rus
Пользователь
 
Регистрация: 05.05.2009
Сообщений: 10
По умолчанию

Цитата:
Сообщение от Hobbit_88 Посмотреть сообщение
а у кого-нибудь исходник есть, а то самому долго разбираться
Код:
pb1.Min:= номер первой строки;
pb1.Max:=номер последней строки;
pb1.Position:=0;
и там где переход на следующую строку добавь

Код:
pb1.StepBy(1);
vario_rus вне форума Ответить с цитированием
Старый 23.05.2009, 14:37   #5
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию

Еще люди подскажите. Как можно сделать, чтобы первые два поля не экспортировались в excel, а экспорт шел с 3 поля.
Hobbit_88 вне форума Ответить с цитированием
Старый 23.05.2009, 15:34   #6
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Начинать экспорт с 3 поля. Имеется в виду поля таблицы или что то другое. Экспорт через цикл? Кусочек кода поможет лучше разобраться в чем проблема.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 23.05.2009, 15:59   #7
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию

Код:
procedure TForm5.SpeedButton3Click(Sender: TObject);
var
ExcelApp : variant;
row :integer;
col:integer;
begin
progressbar1.Visible:=true;
RZLabel1.Visible:=true;
dbgrid1.DataSource.DataSet.First;
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'OtchetPokyp.xls');
ExcelApp.Visible := false;
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет1';
ProgressBar1.Max := DBGrid1.DataSource.DataSet.RecordCount-1;
ProgressBar1.Position := 0;
ProgressBar1.Step := 1;
for row :=0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
for col :=0 to DBGrid1.Columns.Count-1 do
begin
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,col+2].value:=dbgrid1.DataSource.DataSet.Fields[col].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+7,1]:=row+1;
end;
ProgressBar1.StepIt;
Application.ProcessMessages;
DBGrid1.DataSource.DataSet.Next;
ExcelApp.Range[excelapp.cells[7,1],excelapp.cells[7+DBGrid1.DataSource.DataSet.RecordCount-1,9]].select;
ExcelApp.Selection.Borders.LineStyle:= xlContinuous;
end;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col-6].value:='м.п.';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col].value:='Подпись';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+8,col+1].value:='_________';
ExcelApp.Visible := True;
RZLabel1.Visible:=false;
progressbar1.Visible:=false;
end;
Hobbit_88 вне форума Ответить с цитированием
Старый 23.05.2009, 16:01   #8
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию

Вот код который отправил, он экспортирует все, что есть в dbgrid, а мне надо начиная с третьего поля
Hobbit_88 вне форума Ответить с цитированием
Старый 23.05.2009, 22:13   #9
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Если смотреть по логике то надо изменять начальные значения row или col
Код:
for row :=0 to DBGrid1.DataSource.DataSet.RecordCount-1 do
begin
for col :=0 to DBGrid1.Columns.Count-1 do
Так вот если под полем подразумевается колонка в DBGrid, то col:=2 Если имеется ввиду запись (по количеству записей в сетке ) то row:=2

Следует учитывать что в данном случае обращение происходит к сетке(DbGrid), поэтому информация будет заносится только из полей сетки, а не из полей таблицы базы данных.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума Ответить с цитированием
Старый 23.05.2009, 22:23   #10
Hobbit_88
Пользователь
 
Аватар для Hobbit_88
 
Регистрация: 08.04.2009
Сообщений: 41
По умолчанию

Спасибо за помощь. Но я все таки сам разобрался. Решил обращаться к adotable, а не как ранне к dbgrid, и оттуда по по одному полю экспортировать данные.
Код:
procedure TForm1.BitBtn14Click(Sender: TObject);
var
ExcelApp, sheet, colum : variant;
row, index, i :integer;
col:integer;
begin
dbgrid5.DataSource.DataSet.First;
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.workbooks.open(ExtractFilePath(ParamStr(0))+'Prihod_tovara.xls');
ExcelApp.Visible := false;
ExcelApp.WorkBooks[1].WorkSheets[1].Name := 'Отчет';
for row :=0 to DataModule2.Postavka.RecordCount-1 do
begin
for col :=0 to DataModule2.Postavka.RecordCount-1 do
begin
ExcelApp.WorkBooks[1].WorkSheets[1].cells[2,3].value:=DataModule2.Delivery.Fields.Fields[3].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[1,3].value:=DataModule2.Postavka.Fields.Fields[1].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[5,4].value:=DataModule2.Postavka.Fields.Fields[0].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,2].value:=DataModule2.Postavka.Fields.Fields[2].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,3].value:=DataModule2.Postavka.Fields.Fields[3].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,4].value:=DataModule2.Postavka.Fields.Fields[4].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,5].value:=DataModule2.Postavka.Fields.Fields[5].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,6].value:=DataModule2.Postavka.Fields.Fields[6].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,7].value:=DataModule2.Postavka.Fields.Fields[7].AsString;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+9,1]:=row+1;
end;
Application.ProcessMessages;
DataModule2.Postavka.Next;
ExcelApp.Range[excelapp.cells[9,1],excelapp.cells[9+DataModule2.Postavka.RecordCount-1,7]].select;
ExcelApp.Selection.Borders.LineStyle:= xlContinuous;
end;
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+10,2].value:='Принято ценностей на сумму:';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+11,1].value:='______________________________________________________________________________';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+12,3].value:='прописью';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+13,2].value:='Принял';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+13,3].value:='___________________';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+13,5].value:='Сдал';
ExcelApp.WorkBooks[1].WorkSheets[1].cells[row+13,6].value:='___________________';
ExcelApp.Visible := True;
end;
Hobbit_88 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Экспорт в Excel Hobbit_88 БД в Delphi 5 24.04.2009 10:15
экспорт из Excel в БД Tanuska___:) БД в Delphi 7 27.08.2008 15:31
Экспорт из Access в Excel, Экспорт из отчётов в таблицу Excel Kissedbythegod Microsoft Office Access 1 31.05.2008 22:15
Экспорт из Excel Nemo333 БД в Delphi 3 04.04.2007 15:53
Экспорт из Delphi в Excel micaell Общие вопросы Delphi 0 14.12.2006 01:24