Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Delphi, Excel] Экспорт данных из Delphi в Excel 
V
    Опции темы
Asia
Дата 15.9.2006, 07:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.9.2006

Репутация: нет
Всего: нет



Здравствуйте, уважаемые программисты Дельфи!

У меня вот такая проблема:
я создала проект в Дельфи, состоящий из табличек, запроса к ним (который высвечивает по заданному конкретному полю необходимые данные с этой таблички), данные запроса отображаются на отдельной форме, но затем результаты запроса надо отобразить в виде отчета, чтобы можно было их распечатать, я умею подсоединять результаты данного запроса к QuickReport, но преподаватель требует, чтобы их (результаты запроса с формы)можно было отобразить (экспортировать) в Microsoft Excel, с чем я ни разу не сталкивалась.

Навыки в Дельфи у меня на уровне начинающего программиста - могу установить необходимые компоненты, прописать в них код.

Не могли бы вы более подробно проинструктировть как можно экспортировать результаты запроса с Дельфи в Microsoft Excel.

Могу выслать свой проект и форму отчета в Microsoft Excel.

Заранее благодарна.
Жду ваших ответов (e-mail:  [email protected]).


Это сообщение отредактировал(а) Asia - 15.9.2006, 07:09
PM MAIL   Вверх
Fedia
Дата 15.9.2006, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: нет
Всего: 13



Asia, по работе с Excel есть статья здесь.
Если же тебе необходимо работать с Excel, как с таблицей БД, то такой вопрос сформулируй в разделе "Базы данных".


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Akella
Дата 15.9.2006, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 3
Всего: 329



полность рабочий код
Код

uses
  ShellApi, ComObj, ExcelXP,

procedure TfmMain.actNaklsToExcelExecute(Sender: TObject);
Var
 UsedRange, Range, Sheets:Variant;
 iColForRekv, iColCount, iBegRow, iBegRowTitle, vRow:Integer;
 s:String;
 FirstAddress: string;
 iColSum:Integer;
 dDate:TDate;
begin
if not VarIsEmpty(NaklsToExcel) then begin
  NaklsToExcel.Quit;
  NaklsToExcel := Unassigned;
end;//if
with fmNakls do begin
  try
    Screen.Cursor:=crHourGlass;
    tNakls.DisableControls;
    tNaklsDet.DisableControls;
    Try//открываем Excel и создаем раб.книгу
      NaklsToExcel:=CreateOleObject('Excel.Application');
      NaklsToExcel.SheetsInNewWorkbook:=1;
      NaklsToExcel.WorkBooks.Add;
      Sheets:=NaklsToExcel.Workbooks[1].Sheets[1];
    Except
      SysUtils.beep;
      Screen.Cursor:=crDefault;
      ShowMessage('Не могу открыть Excel!');
      Exit;
    end;//try-except
    //Название заявки
    tRekv.Open;
    iBegRowTitle:=1;

    //рисуем border
//    Range:=Sheets.Range['A1'];
//    Range.Borders[4].LineStyle := 1;
    //название поставщика
//    Sheets.Cells[iBegRowTitle,1]:=lcbApt.Text;
//    Range:=Sheets.Cells[iBegRowTitle,1];
//    Range.HorizontalAlignment := xlCenter;
//    Range.VerticalAlignment := xlCenter;
//    Inc(iBegRowTitle);
    //подписывает под название поставщика
//    Sheets.Cells[iBegRowTitle,1]:='/поставщик/';
//    Range:=Sheets.Cells[iBegRowTitle,1];
//    Range.HorizontalAlignment := xlCenter;
//    Range.VerticalAlignment := xlCenter;
    iColForRekv:=1;
    if tRekvRNameUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:=tRekvRName.AsString;
    end;
    Sheets.Cells[iBegRowTitle,4]:='Сертификаты качества находятся';
    Sheets.Cells[iBegRowTitle+1,4]:='по адресу: '+tRekvRAddress.AsString;

    if tRekvRAddressUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:=tRekvRAddress.AsString;
    end;
    if tRekvRTelUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='Тел/Факс: '+tRekvRTel.AsString;
    end;
    if tRekvREMailUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='e-mail: '+tRekvREMail.AsString;
    end;
    if tRekvROKPOUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='ОКПО: '+tRekvROKPO.AsString;
    end;
    if tRekvRINNUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='ИНН: '+tRekvRINN.AsString;
    end;
    if tRekvRSvidNdsUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='№ свид плат. НДС: '+tRekvRSvidNds.AsString;
    end;
    if tRekvRBankUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='Банк: '+tRekvRBank.AsString;
    end;
    if tRekvRGorBankUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='Город банка: '+tRekvRGorBank.AsString;
    end;
    if tRekvRMFOUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='МФО: '+tRekvRMFO.AsString;
    end;

    if tRekvRRSUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='Р/счет: '+tRekvRRS.AsString;
    end;
    if tRekvRLicenzeUse.AsBoolean = true then begin
      Inc(iBegRowTitle);
      Sheets.Cells[iBegRowTitle,iColForRekv]:='Лицензия: '+tRekvRLicenze.AsString;
    end;
    Inc(iBegRowTitle,2);

    Sheets.Cells[iBegRowTitle,3]:='НАКЛАДНАЯ № '+tNaklsNNumber.AsString;
    Range:=Sheets.Cells[iBegRowTitle,3];
    Range.HorizontalAlignment := xlCenter;
    Range.VerticalAlignment := xlCenter;

    Range:=Sheets.Cells[iBegRowTitle,3];
    Range.Font.Bold:=True;
    Inc(iBegRowTitle);
    Sheets.Cells[iBegRowTitle,3]:='от '+ tNaklsNDate.AsString;
    Range:=Sheets.Cells[iBegRowTitle,3];
    Range.HorizontalAlignment := xlCenter;
    Range.VerticalAlignment := xlCenter;

    Inc(iBegRowTitle);
    Sheets.Cells[iBegRowTitle,1]:='Филиал: '+ tNaklsNFilial2.AsString;
    Inc(iBegRowTitle,2);

    Inc(iBegRowTitle);
    Sheets.Cells[iBegRowTitle,1]:='Через кого ____________________';
    Inc(iBegRowTitle,2);

    //заголовки столбцов
    iBegRow:=iBegRowTitle;//начальная строка для преператов
    vRow:=iBegRow+1;
    tNaklsDet.First;
    For iColCount:=0 to dbGridNaklsDet.Columns.Count-1 do begin
      Sheets.Cells[iBegRow,iColCount+1]:=dbGridNaklsDet.Columns[iColCount].Title.Caption;
      Sheets.Cells[iBegRow,iColCount+1].ColumnWidth:=dbGridNaklsDet.Columns[iColCount].Width div 6;
      Range:=Sheets.Cells[iBegRow,iColCount+1];
      Range.Font.Bold:=True;
      //рисуем border
      Range.Borders[1].LineStyle := 1;
      Range.Borders[2].LineStyle := 1;
      Range.Borders[3].LineStyle := 1;
      Range.Borders[4].LineStyle := 1;
    end;
    //заполнение таблицы
    while not tNaklsDet.Eof do begin
      For iColCount:=0 to dbGridNaklsDet.Columns.Count-1 do begin
        Range:=Sheets.Cells[vRow,iColCount+1];

        Case tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).DataType of
          ftFloat   : begin
                        Range.NumberFormat := '0,000';
                        Sheets.Cells[vRow,iColCount+1]:=
                        tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsFloat
                      end;
          ftString  : begin
                        Range.NumberFormat := '@';
                        Sheets.Cells[vRow,iColCount+1]:=
                        tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsString;
                      end;
          ftInteger : begin
                        Range.NumberFormat := '0';
                        Sheets.Cells[vRow,iColCount+1]:=
                        tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsInteger;
                      end;
          ftDate    : begin
                        Range.NumberFormat := '@';
                        dDate:=tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsDateTime;
                        Sheets.Cells[vRow,iColCount+1]:=FormatDateTime('dd.mm.yyyy',dDate);
                      end
        else
          Range.NumberFormat := '@';
          Sheets.Cells[vRow,iColCount+1]:=
          tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsString;
        end;//case-else
        try
        if tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).DataType = ftFloat then
         if tNaklsDet.FieldByName(dbGridNaklsDet.Columns[iColCount].FieldName).AsFloat = 0 then
            Sheets.Cells[vRow,iColCount+1]:=' ';
        except
        end;

        //рисуем border
        Range.Borders[1].LineStyle := 1;
        Range.Borders[2].LineStyle := 1;
        Range.Borders[3].LineStyle := 1;
        Range.Borders[4].LineStyle := 1;
      end;// FOR
      Inc(vRow);
      tNaklsDet.Next;
    end;//WHILE
    //отпарвляем итоги
    if (StrToFloatDef(dbGridNaklsDet.Columns[6].Footer.Value,0)<>0) AND
    (dbGridNaklsDet.Columns[6].Visible)  then begin
      iColSum:=dbGridNaklsDet.Columns[6].Index+1;//колонка для суммы
      Sheets.Cells[vRow,3]:='ИТОГО:';
      Range:=Sheets.Cells[vRow,iColSum];
      Range.HorizontalAlignment := xlRight;
      Range.VerticalAlignment := xlCenter;
      Range.NumberFormat := '0,000';
      try
       Sheets.Cells[vRow,iColSum]:=StrToFloatDef(dbGridNaklsDet.Columns[6].Footer.Value,0);
      except
       Range.NumberFormat := '@';
       Sheets.Cells[vRow,iColSum]:=dbGridNaklsDet.Columns[6].Footer.Value;
      end;
    end;
    Inc(vRow,2);
    Sheets.Cells[vRow,1]:='Отпустил ______________';
    Inc(vRow,2);
    Sheets.Cells[vRow,1]:='Получил _______________';
    //удаляем лишние столбцы (по умолчанию со сдвигом влево)
    For iColCount:= dbGridNaklsDet.Columns.Count-1 downto 0 do begin
      if dbGridNaklsDet.Columns[iColCount].Visible=False then begin
        UsedRange := Sheets.Range['A1','Z100'];//диапазон поиска
        Range := UsedRange.Find(What:=dbGridNaklsDet.Columns[iColCount].Title.Caption, LookIn := xlValues, LookAt := xlWhole,SearchDirection := xlNext);
        if not VarIsEmpty(Range)then begin
          try
            FirstAddress := Range.Address;
            s:=StringReplace(FirstAddress,'$','',[rfReplaceAll]);
            Range:=Sheets.Range[s+':'+Copy(s,1,1)+IntToStr(vRow)];
            Range.Delete;
          except

          end;//try-except
        end;//if not VarIsEmpty(Range)then begin
      end;//if dbGridZay.Columns[iColCount].Visible=False then begin
    end;//for delete

   finally
    tNakls.EnableControls;
    tNaklsDet.EnableControls;
    Screen.Cursor:=crDefault;
    tRekv.Close;
    NaklsToExcel.Visible:=True;
   end;//finally
 end;//with
end;

PM MAIL   Вверх
Mu57Di3
Дата 15.9.2006, 11:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 20.11.2005
Где: Калуга

Репутация: нет
Всего: нет



Вот код работчий конечно не идеальный но попроще предыдущего.
Код

...
var
...
Excel: TExcelApplication;

...
procedure TfCalcBay.FormCreate(Sender: TObject);
begin
 Excel.AutoQuit:= true;
end;

procedure TfCalcBay.Button5Click(Sender: TObject);
var
 row: Integer;
begin
 Excel.Connect; //Соединяемся с экселем
 Excel.SheetsInNewWorkbook[LOCALE_USER_DEFAULT]:=1; //Создаем книгу
 Excel.Workbooks.Add( EmptyParam, LOCALE_USER_DEFAULT); // Создаем лист и делаем его активным
 row:= 0;
 // Свойство Excell.Cell - ячейки листа
 repeat
  Excel.Cells.Item[row+1,1]:= sgDisp.Cells[0,row];
  Excel.Cells.Item[row+1,2]:= sgDisp.Cells[1,row];
  Excel.Cells.Item[row+1,3]:= sgDisp.Cells[2,row];
  Excel.Cells.Item[row+1,4]:= sgDisp.Cells[3,row];
  Excel.Cells.Item[row+1,5]:= sgDisp.Cells[4,row];
  Excel.Cells.Item[row+1,6]:= sgDisp.Cells[5,row];
  Excel.Cells.Item[row+1,7]:= sgDisp.Cells[6,row];
  Excel.Cells.Item[row+1,8]:= sgDisp.Cells[7,row];
  Inc(row);
 until sgDisp.RowCount = Row+1;
 Excel.Visible[LOCALE_USER_DEFAULT]:= true;// Показать эксель
 Excel.Disconnect;
end;

Можно еще сделать самомохранение но я это отдаю на совесть пользователя показывая лист Экселя

Это сообщение отредактировал(а) Mu57Di3 - 15.9.2006, 11:04
PM MAIL ICQ   Вверх
Albinos_x
Дата 15.9.2006, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 2
Всего: 108



вот ещё пример :
Код
...
procedure TForm4.SpeedButton1Click(Sender: TObject);
var OleMas:OleVariant;
      i,j : Integer;
      AC,AR:Integer;
      lcid:Integer;
      s:string;
begin
lcid:=LOCALE_USER_DEFAULT;
// узнаём количество столбцов и строк в выбранной таблице на одной из закладок TabbedNotebook1
AC:=TabChart[TabbedNotebook1.PageIndex].mtcGrid.ColCount;
AR:=TabChart[TabbedNotebook1.PageIndex].mtcGrid.RowCount;
// создаём массив данных 
OleMas:=VarArrayCreate([0,(AR-1),0,(AC-1)], varVariant);
//заполняем его
for i:=0 to (AC-1) do
   for j:=0 to (AR-1) do
      begin
      OleMas[j,i]:=TabChart[TabbedNotebook1.PageIndex].mtcGrid.Cells[i,j];
      Application.ProcessMessages;
      end;
// запускаем эксель
// запускается новый сервер
Form1.ExcelApplication1.ConnectKind:=ckNewInstance;
// не видимый
Form1.ExcelApplication1.Visible[lcid]:=false;
// автозакрытие отключаем
Form1.ExcelApplication1.AutoQuit:=false;
// непосредственно запуск
Form1.ExcelApplication1.AutoConnect:=true;
// количество страниц в новой книге по умолчанию =1
Form1.ExcelApplication1.SheetsInNewWorkbook[lcid]:=1;
// создаём новую книгу и соединяем её с компонентой ExcelWorkbook1
Form1.ExcelWorkbook1.ConnectTo(Form1.ExcelApplication1.Workbooks.Add(EmptyParam,lcid));
// вычисляю буквенное значение адреса последнего столбца, функция из моей статьи
s:=AddresColExcel(AC-1)+inttostr(AR);
// формат ячеек текстовый
Form1.ExcelApplication1.Range['A1',s].NumberFormat:='@';
// Горизонтальное выравнивание по центру    
Form1.ExcelApplication1.Range['A1',s].HorizontalAlignment := xlCenter;
// Вертикальное выравнивание по центру    
Form1.ExcelApplication1.Range['A1',s].VerticalAlignment:=xlCenter;
// сетка таблицы    
Form1.ExcelApplication1.Range['A1',s].Borders.LineStyle:=xlContinuous;
// перенос текста в ячейках по словам    
Form1.ExcelApplication1.Range['A1',s].WrapText:=true;
// заношу данные в Эксель
Form1.ExcelApplication1.Range['A1',s].Value:=OleMas;
// делаю видимым
Form1.ExcelApplication1.Visible[lcid]:=True;
// закрываю соединение
Form1.ExcelApplication1.AutoConnect:=false;
Form1.ExcelApplication1.Disconnect;
end;
...


отличие от ранее приведённых примеров в том, что запрос к серверу по заносу данных, только 1, в результате чего занесение данных происходит быстрее...



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
Fedia
Дата 18.9.2006, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: нет
Всего: 13



Милая Ася !

Как я уже писал тебе в ответном письме, на vingrad не принято решать проблемы посредством электронной почты. Уверен, что большинство вопросов по сохранению отчетов в Excel ты сможешь решить непосредственно в этой ветке форума. Отправляю тебе пример сохранения данных таблицы БД в документ Excel. Если будут еще вопросы, то не стесняйся задавать их здесь. Возможно, в ответ ты будишь получать довольно резкие и не всегда понятные ответы, но не стесняйся переспрашивать, подробно формулируя свой вопрос. И еще просьба: не нужно ждать готовых решений твоей задачи, ведь получив их, ты не затратишь никаких усилий на повышение своего профессионального уровня.

Удачи.

Присоединённый файл ( Кол-во скачиваний: 91 )
Присоединённый файл  Table_to_Excel.zip 6,26 Kb


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Asia
Дата 18.9.2006, 06:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 15.9.2006

Репутация: нет
Всего: нет



Дорогой Федя!

Благодарю за статьи!

Но мне все равно пока не понятно, что именно надо делать!

Было бы конечно лучше, если бы я вам выслала проект и отчет, а Вы бы меня проконсультировали, с чего надо начать и что именно мне надо делать?!

Меня очень интересует сам процесс экспортировки из Дельфи в Ексел, а не готовый результат и я готова с Вами беседовать и переспрашивать непонятные моменты в форуме Винград, но я думаю, что пока вы не увидите мой проект и все его составляющие, и отчет, который надо получить - мы не поймем друг друга.

Жду вашего ответа, уважаемый Федя. 

С уважением, Ася.

Это сообщение отредактировал(а) Asia - 18.9.2006, 07:04
PM MAIL   Вверх
Fedia
Дата 18.9.2006, 07:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 465
Регистрация: 2.8.2006
Где: первым встречаю р ассвет

Репутация: нет
Всего: 13



Asia, если мы в таком тоне продолжим, то весело будет всем  smile 

Неужели твоя задача настолько особенная ? Посмотри все же хотя бы мой пример. Если не поможет, то высылай проект с комментариями.


--------------------
Накануне решающей битвы
Я иду, и надеждою зыбкой
Озаряется эта дорога,
Я мечтаю увидеть улыбку
На лице победившего Бога…
PM MAIL ICQ   Вверх
Albinos_x
Дата 18.9.2006, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

Репутация: 2
Всего: 108



Цитата(Fedia @  18.9.2006,  07:21 Найти цитируемый пост)
то весело будет всем 

я уже готов... smile 


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0801 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.