Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577

ProgressBar / Передача данных / Длительная подгрузка

05.03.2014, 17:39. Показов 905. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый вечер, у меня такая проблемка вылезла, не могу правильно реализовать, перепробовал много способов.
Знающие люди, выручите)))
имеется код, который выводит данные о сотруднике в Excel, но подрузка идет очень долго, как сделать так чтобы появлялся ProgressBar (и шел (отображался) процесс передачи)
//кнопка для выдачи данных в EXCEL
C++
1
2
3
4
5
6
//открытие шаблона Excel
dobav(ExtractFilePath(Application->ExeName)+"\\1.xlt");
//передача данных
toExcel(7, 6, ADOQuery1->FieldByName("fam")->AsString);  //фамилия
toExcel(7, 9, ADOQuery1->FieldByName("name_s")->AsString);  //имя
toExcel(7, 11, ADOQuery1->FieldByName("otch")->AsString);  //отчество
//функция открытия шаблона Excel
C++
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
void __fastcall TForm1::[I]dobav[/I](String File)
{
 try
   {
     //Создаём объект Excel
     vVarApp=CreateOleObject("Excel.Application");
     fStart=true;
   }
 catch(...)
   {
     try
        {
          //Активизируем объект Excel
          vVarApp=Variant::GetActiveObject("Excel.Application");
        }
     catch (...)
        {
          Application->MessageBox("Невозможно открыть Microsoft Excel!\nВозможно этого приложения на компьютере не установлено.","Ошибка",MB_OK+MB_ICONERROR);
        }
    }
  try
   {
      if(File!="")
      {
          //Открываем файл шаблона
          vVarApp.OlePropertyGet("WorkBooks").OleProcedure("Open",File.c_str());
          vVarSheets=vVarApp.OlePropertyGet("WorkSheets",1);
      }
      else
      {
          //Если нет, создаём книгу
          vVarApp.OlePropertyGet("WorkBooks").OleProcedure("add");
          //Активизируем первый лист
          vVarSheets=vVarApp.OlePropertyGet("WorkSheets",1);
      }
   }
 catch(...)
   {
      Application->MessageBox("Ошибка открытия книги Microsoft Excel!","Ошибка",MB_OK+MB_ICONERROR);
   }
 vVarApp.OlePropertySet("Visible",true);  //делаем Excel видимым
}
//координаты выбора ячейки (для того чтобы передать информацию)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
void __fastcall TForm1::toExcel(int Row, int Column, AnsiString data)
{
  try
    {
      vVarCells=vVarSheets.OlePropertyGet("Cells");
      vVarCell=vVarCells.OlePropertyGet("Item", Row, Column);   //выбираем ячейку
      vVarCell.OlePropertySet("Value", WideString(data));  //...и пишем туда что-нибудь
    }
  catch(...)
       {
         ShowMessage("Не возможно выгрузить данные");
       }
}
ПОМОГИТЕ ПОЖАЛУЙСТА)))
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.03.2014, 17:39
Ответы с готовыми решениями:

Подгрузка данных из базы mysql с последующей генерацией html и подстановкой извлеченных данных
на сайте есть форма подачи заявки. после подачи , на главной странице должно отображаться фото и свойства заявленного. данные из формы...

Длительная загрузка Win7
Доброго времени суток. В общем вопрос в следующем: недавно стал замечать как долго загружается win7, сначала подумал что операционку...

Длительная загрузка проводника
Открываю через проводник лок. диск где стоит ХР, при этом зеленая полоска так медленно идет, приходится минут 20 ждать пока она дойдет до...

3
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
05.03.2014, 17:57
Не понял, что именно является длительной операцией? Поиск нужной ячейки? Долго создается объект Excel.Application? К чему ты хочешь цеплять ProgressBar?

P.S. Тебе не кажется, что надо наоборот, сначала попробовать GetActiveObject, если не получилось - то нет работающего экземпляра => пытаешься через CreateOleObject, а если уже тут не получилось - то делать выводы о невозможности запуска? Может, так долго работает, потому что много копий в памяти?
0
 Аватар для Within_t
34 / 21 / 11
Регистрация: 20.10.2013
Сообщений: 577
05.03.2014, 18:08  [ТС]
Цитата Сообщение от UI Посмотреть сообщение
Не понял, что именно является длительной операцией? Поиск нужной ячейки? Долго создается объект Excel.Application? К чему ты хочешь цеплять ProgressBar?
процесс передачи долго идет, что можете посоветовать, как реализовать?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
05.03.2014, 18:17
"Процесс передачи" - это
C++
1
2
3
4
// ...
      vVarCells=vVarSheets.OlePropertyGet("Cells");
      vVarCell=vVarCells.OlePropertyGet("Item", Row, Column);   //выбираем ячейку
      vVarCell.OlePropertySet("Value", WideString(data));  //...и пишем туда что-нибудь
? Вот эти вот три простейших действия? Ничего не могу посоветовать, никак сюда не прилепишь ProgressBar.

Интересно, что значит "долго"? Насколько долго? Что в этом не устраивает (виснет интерфейс, или что)?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.03.2014, 18:17
Помогаю со студенческими работами здесь

Подгрузка данных
Есть файл .php, в нём блок poems-list, в который должны грузиться данные из таблицы. <div class="poems-list" > ...

Подгрузка данных
Здравствуйте) у меня появился вопрос, как можно сделать и через что было бы лучше сделать подгрузку данных из БД? Например, ввожу фио и...

Подгрузка данных
Здравствуйте. Подскажите самый просто вариант для подгрузки данных, в моем случае 3х новостей. Вот вывожу новости: <?php $resultat =...

Подгрузка данных из бд
Добрый день. Мне нужно, чтобы при нажатии на кнопку подгружалось еще 10 строк в таблицу Бьюсь третий день, не выходит. <?php ...

Зависания компьютера и длительная загрузка системы
Здравствуйте. Недавно появились зависания компьютера. Затем стали подвисать игры, например, в WoT это выражалось постоянными скачками...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
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, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru