Mainmenümde Arşivle>Dönem arşivi al diye bir bölüm var ve dönem arşivi alırken dataların bir kopyasını üretiyorum.
Kod: Tümünü seç
var
a:integer;
b:string;
OpStruc: TSHFileOpStruct; ///shellapi usese ekle
frombuf, tobuf: Array [0..128] of Char;
begin
b :=form2.QRY_OKULSABIT.fieldbyname('EGITIM_YILI').asstring+'_'+form2.QRY_OKULSABIT.fieldbyname('DONEMI').asstring+' Arşivlemesi yapılacak devam etmek istiyormusunuz.';
a:=application.MessageBox (PChar(b),'Arşiv Uyarı',mb_yesno+mb_iconinformation);
if a=idyes then
begin
fillChar( OpStruc, Sizeof(OpStruc), 0 );
FillChar( frombuf, Sizeof(frombuf), 0 );
FillChar( tobuf, Sizeof(tobuf), 0 );
StrPCopy( frombuf, 'C:\KursKayıt\Data\*.fdb' );
StrPCopy( tobuf, 'C:\KursKayıt\Arşiv\'+form2.QRY_OKULSABIT.fieldbyname('EGITIM_YILI').asstring+'_'+form2.QRY_OKULSABIT.fieldbyname('DONEMI').value);
With OpStruc DO Begin
Wnd:= Handle;
wFunc:= FO_COPY;
pFrom:= @frombuf;
pTo:=@tobuf;
fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
end;
ShFileOperation( OpStruc );//db dataları aktarılıyor
b:='C:\KursKayıt\Arşiv\..'+form2.QRY_OKULSABIT.fieldbyname('EGITIM_YILI').asstring+'_'+form2.QRY_OKULSABIT.fieldbyname('DONEMI').asstring+' altına arşivleme yapıldı..' ;
a:=application.MessageBox (PChar(b),'Arşivleme Tamam',+mb_iconinformation);
end;
Şimdi bundan sonra şunu nasıl yapabiliriz oluşturulan bu yoldan C:\KursKayıt\Arşiv\2006-2007_1.Dönem ) mainmenüde açtığım Arşivle bölümünün altında 2006-2007_1.Dönem klasörünün adı gelecek tabi 2006-2007_2.Dönem,2007-2008_1.Dönem gibi kaçtane arşiv alınmış ise
kısacası C:\KursKayıt\Arşiv\ altındaki tüm klasörleri main menüde görmek istiyorum ve gördüğüm klasörü örneğin 2006-2007_1.Dönem (mainmenüde) tıkladığımda arşiv deki dataları IBDatabase yolu olarak alacakyani araşivi yükleyecek.Ben sadece kafamdan geçenleri yazdım yanlış bir yöntem de düşünüyo olabiliri. Amacım datalarımı istediğimde Arşivlemek yine istediğimde arşivden bilgi almak.Şimdiden yol yöntem kod akıl fikir basit bir proje örneği verebileceklere teşekkür ediyorum