Tepe Menü

Ana Menü

Alt Menüler Kategoriler

İçerik

Özel Arama

HOŞGELDİNİZ , Toplam : 1527

 

Problem : ASP'de oldugu gibi COM nesneleri kullanarak Microsoft
Excel,Word gibi programlarin avantajlarindan yararlanmak istiyorsunuz.
Cozum: PHP4 ile beraber ASP'de oldugu gibi onceden hazirlanmis COM objelerini
programlarimiz icinde argumentler yardimiyla kullanabiliyoruz.


Bir ornek vermek gerekirse:

PHP:

  1.   
  2.  <?php 
  3.   
  4.  $word = new COM("word.application") or die("Word baslatilamiyor");
  5.  print "Word uygulamasi basarili sekilde yuklendi,Bu bilgisayardaki word versiyonu
  6.  {$word->Version}\n";
  7.   
  8.  $word->visible = 0;
  9.  $word->Documents->Add();
  10.  $word->Selection->TypeText("Test yapiliyor,Bu bir test mesajidir... 1,2,3");
  11.  $Documents[1]->SaveAs("ornek_dosya.doc");
  12.  $word->Quit();
  13.  ?>


Tartisma : Cok uzun bir sure ASP'nin programcilara verdigi bu cok guclu ozellik
ile cok fazla programlama bilmeden guclu web uygulamalarinin yaratilmasi
saglandi.Bu sekilde C,C++ veya Visual Basic ile uygulamalar yazip bunlari ASP
arayuzu ile web ortamina aktarmak mumkun oluyordu.Simdi PHP de bu ozelligi
desteklemektedir.

Aslinda ASP kullanmak icin hic bir neden yoktur.Birazdan sizlere durumun ne
boyutta oldugunu gosterecegiz ve karari size birakacagiz.PHP ile gelen kolayliklar
simdiye kadar hic bir dilde olmadigi kadar gelismistir.

Simdi de biraz daha gelismis bir uygulama yapalim ve ayni kodun birde ASP deki
yazilimina bakalim.

Bu ornegimiz de Excel ve Mssql programlarini kullanarak bir uygulama
yaratacagiz.Anlatimda kolaylik olmasi acisinda veritabani modulunu(class veya
sinif olarak tabir ediliyor.) uygulamaya "require ()" komutunu kullanarak
eklyecegim.Boylece cok fazla karisikliga yol acmadan anlatmak istedigimizi
anlatmis olacagiz.

Zannedersem bir problem olmadan anlayacaksiniz...Bu sinifi veya dahja gelismis
veritabani siniflarini internetten kolayca bulabilirsiniz.Sonucta konumuz COM
objelerini kullanarak Excel,Word gibi uygulamalara baglanmak.

Kodlarimizi yazmaya baslayalim,

PHP:

  1.   
  2.  <?php 
  3.   
  4.  require("DB.php");
  5.   
  6.  $excel_baglantisi = new COM("excel.application");
  7.  $excel_baglantisi->Visible = false;
  8.   
  9.  $CalismaKitabi = $excel_baglantisi->workbooks->add();
  10.  $CalismaKitabi->Cells(1,1)->value = "Isim";
  11.  $CalismaKitabi->Cells(1,2)->value = "Ucret";
  12.  $CalismaKitabi->Cells(1,3)->value = "Calisma Suresi";
  13.   
  14.  $dbh = new DB; //Burada mssql veritabanina baglaniyoruz.
  15.   
  16.  $dbh->connect("mssql://kullaniciadim:sifrem@localhost/calisanraporlari");
  17.  $sth = $dbh->query("SELECT * FROM calisanisimleri WHERE ucret='ucret'");
  18.   
  19.  $idx = 2;
  20.  while ($satir = $dbh->fetchRow($sth, DB_GETMODE_ASSOC)) {
  21.  $CalismaKitabi->Cells(idx, 1)->value = $satir["isim"];
  22.  $CalismaKitabi->Cells(idx, 2)->value = $satir["Ucret"];
  23.  $CalismaKitabi->Cells(idx, 3)->value = $satir["CS"];//Calisma Suresi CS
  24.  }
  25.   
  26.  $dbh->disconnect();
  27.  $CalismaKitabi->SaveAs("cal_raporlari-$ucret.xls");
  28.  $excel_baglantisi->quit();
  29.  ?>

Tekrar ediyorum burada "DB.php" dosyasi programimiza en basta goreceginiz gibi
"require()" komutuyla birlestirildi.Bu class dosyasini uygulamanizi kayit ettiginiz
klasore yerlestirmeniz halinde uygulama problemsiz calisacaktir. Veya hangi
veritabani class'ini kullaniyrosaniz onu ekleyin.Sonucta bu tamamen size kalmis.

Evet buraya kadar herhalde anlasilmayan bir sey yok.Simdide ornek olmasi ve
size fikir vermesi acisindan bu uygulamanin ASP versiyonunu yazalim.

KOD:

  1.   
  2.  <%
  3.  Dim excel_baglantisi, calisma_kitabi, DosyaAdi 'XLS dosyasi ile ilgili ayrintilar
  4.  Dim dbh, sth, stmt 'Veritabani ile ilgili 
  5.  Dim i, x 'Dongulerle ilgili 
  6.  Dim Ucret 'Kullanicin girecegi girdi degiskeni
  7.   
  8.  set ucret = request.queryString("ucret")
  9.   
  10.  set excel_baglantisi = server.createObject("excel.application") 'COM Nesnesi
  11.  excel_baglantisi.visible = False 
  12.  excel_baglantisi.workbooks.Add 
  13.  set calisma_kitabi = excel_baglantisi.Worksheets(1) 'VERITABANI BAGLANTISINI BASLAT VE VERIYI EKLE
  14.   
  15.  set dbh = server.createObject("ADODB.Connection")
  16.  dbh.Open "DSN=calisanraporlari;uid=kullaniciadim;pwd=sifrem" 
  17.  set stmt = "SELECT * FROM calisanisimleri WHERE ucret='" 
  18.  stmt = stmt & Ucret & "'"
  19.   
  20.  set x=2 For i=0 to sth.eof
  21.   
  22.  Worksheet.Cells(x,1) = sth(i).isim Worksheet.Cells(x,2) = sth(i).ucret
  23.  Worksheet.Cells(x++,3) = sth(i).CS sth.movenext next
  24.   
  25.  dbh.close
  26.   
  27.  calisma_kitabi.SaveAs "cal_raporlari-" & Ucret & ".xls" excel_baglantisi.quit
  28.   
  29.  set calisma_kitabi = Nothing 
  30.  set excel_baglantisi = Nothing 
  31.  %>


Karar Sizin :)




Sizden önce 767 kişi okudu.

 
YORUMLAR

İlk yorumu yazan siz olmak ister misiniz?

 
SENDE YORUM EKLE

İsim(Rumuz)

:

Email

:

Yorum

:

Yan Bloklar

Footer