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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.04.2009, 16:56   #1
Танюшаа
 
Регистрация: 02.04.2009
Сообщений: 7
Вопрос Помогите разобраться с фрагментом кода!

Здравствуйте! Пожалуйста, напишите комментарии (где помечено знаком вопроса)!

procedure TFOtzetXLS.Button3Click(Sender: TObject);
var
Layout: array[0..KL_NAMELENGTH] of char; ????????
begin
LoadKeyboardLayout(StrCopy(Layout, '00000419'), KLF_ACTIVATE); ???????
try
ExportDBGrid(True);
except
ShowMessage('Ошибка экспортёра');
end;
end;

procedure TFOtzetXLS.ExportDBGrid(toExcel: Boolean);
var bm: TBookmark;
col, row: Integer;
sline: string;
mem: TMemo;
ExcelApp: Variant;
begin
Screen.Cursor := crHourglass;
DBGrid1.DataSource.DataSet.DisableC ontrols; ????????
bm := DBGrid1.DataSource.DataSet.GetBookm ark; ????????
DBGrid1.DataSource.DataSet.First; ?????????
// создаём объект Excel
if toExcel then
begin
ExcelApp := CreateOleObject('Excel.Application' );
ExcelApp.WorkBooks.Add(xlWBatWorkSh eet); ?????????
ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Grid Data'; ???????
end;
// Сперва отправляем данные в memo
// работает быстрее, чем отправлять их напрямую в Excel
mem := TMemo.Create(Self);
mem.Visible := false;
mem.Parent := FOtzetXLS;
mem.Clear;
sline := '';

for col := 0 to DBGrid1.FieldCount - 1 do ????????????
sline := sline + DBGrid1.Fields[col].DisplayLabel + #9; ???????????
mem.Lines.Add(sline);
// получаем данные из memo
for row := 0 to DBGrid1.DataSource.DataSet.RecordCo unt - 1 do ??????
begin
sline := '';
for col := 0 to DBGrid1.FieldCount - 1 do sline := sline + DBGrid1.Fields[col].AsString + #9; mem.Lines.Add(sline); ????????????????????????
DBGrid1.DataSource.DataSet.Next; ???????????????????
end;
// Копируем в clipboard
mem.SelectAll;
mem.CopyToClipboard;
// если необходимо, то отправляем их в Excel

if toExcel then
begin
ExcelApp.Workbooks[1].WorkSheets['Grid Data'].Paste; ?????????
ExcelApp.Visible := true; ????????????
end;
ExcelApp := Unassigned; ????????????
DBGrid1.DataSource.DataSet.GotoBook mark(bm); ???????????
DBGrid1.DataSource.DataSet.FreeBook mark(bm); ???????????
DBGrid1.DataSource.DataSet.EnableCo ntrols; ?????????
Screen.Cursor := crDefault;
end;

end.
Танюшаа вне форума Ответить с цитированием
Старый 02.04.2009, 17:00   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Вы ошиблись с разделом - это код Delphi, а не VBA

Обратитесь в этот раздел форума
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с обьяснением кода Alex1991 Помощь студентам 4 31.03.2009 18:21
Помогите с оптимизированием кода nikzntu Общие вопросы C/C++ 3 25.03.2009 17:37
Помогите в написании кода... sobol556 Паскаль, Turbo Pascal, PascalABC.NET 0 23.03.2009 19:49
Выдернуть куски кода из html-кода trafbite Помощь студентам 7 18.08.2007 13:51