1

Konu: SET tanımlarını unutuyor

Main programda tanımladığım SET komutlarının çağrılan her formda hatırlanması için ne yapabilirim. örneğin SET DATE TO DMY ile Türkçe Tarih formatı kullanacağımı Ana Programda belirtmeme rağmen çağrılan her formda Amerikan tarih sistemi geliyor. Her formda tekrar tanım yapmaktan nasıl kurtulurum ?
Kısacası Ana Programda yaptığım tüm SET değerlerinin programdan çıkıncaya kadar her yerde geçerli olmasını nasıl sağlarım ?

2

Re: SET tanımlarını unutuyor

form init e main.prg en de bulunan set_commands procedurunu cagirabilirsin

Visual Fox Pro
&& form init

set proc to main.prg additive
 
&& main.prg
proc set_commands
set date to dmy
set cent on
endproc
....

3

Re: SET tanımlarını unutuyor

soykan bu arada formda 2-private datasession seçildiği için set leri unutuyor yanlış bilmiyorsam değilmi?

4

Re: SET tanımlarını unutuyor

erdalyalcin yazdı:

soykan bu arada formda 2-private datasession seçildiği için set leri unutuyor yanlış bilmiyorsam değilmi?


o yonden bakmadim hic bak sad haklı olabilirsin test etmedim

5 Son düzenleyen, ercan (28.09.2007 03:14:14)

Re: SET tanımlarını unutuyor

http://www.fox4um.com/viewtopic.php?id=501


linkine bakmanı tavsiye ederim. faydalı kodlar var.

6

Re: SET tanımlarını unutuyor

Hepinize teşekkürler.
Erdal Kardeş test ettim, dediğin gibi private data session kullanıldığında Main Programın setlerini devralmıyor.

7

Re: SET tanımlarını unutuyor

Set'lerin unutkanlik adeti yok:) Ancak bircok set komutunun gorus alani "data session"a ozel. Dokumantasyonda bunlar "... is scoped to the current data session" seklinde belirtiliyor. Base form classinin load eventine:

do setups

gibi bir kod yazabilirsin (ya da dataenvironment kullaniyorsan BeforeOpenTables'a). Benim formlarin DE.BeforeOpenTables kodu:

UpdateDE(this)

UpdateDE'nin de ilk satiri:

Do setups

*Setups.prg

Visual Fox Pro
SET EXCLUSIVE OFF 

SET DELETED ON
SET ESCAPE OFF
SET REPROCESS TO AUTOMATIC
SET TALK OFF
SET CENTURY on
SET CENTURY TO 19 ROLLOVER 60
SET SECONDS OFF
SET DEBUG OFF
SET HOURS TO 12
set multilocks on
Set Nulldisplay To ""
Set Safety off

Dikkat et benimkiler US icin.

8

Re: SET tanımlarını unutuyor

Ben de private datasession için şunları kullanıyorum. Türkiye için smile

Visual Fox Pro
Set SysFormats On

Set Talk Off
Set Decimals To 6
Set Deleted On
Set Exclusive Off
Set Reprocess To 3 Automatic
Set MultiLocks On
Try
    Set Collate To "TURKISH"
Catch
EndTry
/o---------------------o\
     www.haser.com
\o---------------------o/

9

Re: SET tanımlarını unutuyor

Benim bir zamanlar yazdığım SETLER Prosedürü aşağıdaki şekilde. Her SET komutunun yanına hatırlamak amacıyla (kendi anlayacağım şekilde) kısa açıklamalar yazmıştım. Kullanmadıklarımı açıklama satırı haline getirmiştim. Alfabetik sırada tüm setler yazılı durumda.

Visual Fox Pro
*****************

PROCEDURE SETLER
    * SET ALTERNATE OFF        && Default=OFF        ON Olursa Çıkışları      text file'a gönderir. TO filename ile text adı belirtilebilir.
    SET ANSI ON                && Default=OFF        OFF iken karşılaştırma kısa string sonuna kadardır, Tom=Tommy olur. Uzunun boyu kadar space eklenmez. ON olursa kısanın sonuna space eklenerek karşılaştırma yapılır. 'Tom'='Tommy' false olur çünkü 'Tom  '='Tommy' olarak bakar.
    * SET ASSERT OFF        && Default=OFF        Koşula bağlı olarak Debug Penceresine istediğimiz mesajı yazsın.
    * SET AUTOINCERROR OFF    && Default=ON        APPEND FROM ve INSERT INTO gibi komutlarda otomatik artan alanların değerleri hata vermesin.
    SET AUTOSAVE ON            && Default=OFF        ON iken Read sonrası diske yazılır. OFF iken 5 dakikada bir Read sonrası yazılır.
    * SET BELL OFF            && Default=ON        Alan sonuna gelindiğinde ses çıkarır.
    * SET BLOCKSIZE TO n    && Default=64        Memo alanların diskte kaç byte'lık yerlerde tutulacağı
    * SET BROWSEIME            && ON: Çince Windows, OFF: Kore Windows. Bizi ilgilendirmiyor.
    * SET CARRY OFF            && Default=OFF        Append ve Insert gibi komutlarda bilgileri yeni kayıtlara taşımasın.
    SET CENTURY ON            && Default=OFF        Tarihlerin yüzyıl hanesi görülsün.
    * SET CLASSLIB TO c        && CREATEOBJECT(), ADD OBJECT, DEFINE CLASS gibi komutlarda sınıf tanımlamalarında kullanılacak CLASSLIB adı.
    SET CLOCK STATUS        && Default=OFF        Saat bilgisini Ana ekranda göstermesin. (Status Barda gösterecek.)
    SET COLLATE TO "TURKISH"&& Default=MACHINE    Sıralama tipini belirtir.
    * SET COLOR OF SCHEME n TO    && 1-24 arası renk şemasını uygular.
    * SET COLOR SET TO c    && Yüklenecek Renk setini belirtir.
    * SET COMPATIBLE OFF    && Default=OFF        Eski bazı komutlarla uyum şeklini belirtir.
    SET CONFIRM OFF            && Default=OFF        Alan dolduğunda Enter'a basmaya gerek olmasın.
    * SET CONSOLE ON        && Default=ON        Ana VFP Pencereye output'lar yazılmasın.
    * SET COVERAGE TO c        && Belirtilen log/txt dosyasına çalışan tüm kodları ve sürelerini loglayarak Test aşamasını kolaylaştırır.
    SET CPCOMPILE TO 1254    && Derlenen programin CodePage belirtilir.
    SET CPDIALOG OFF        && Default=ON         Eski DBF'ler için CodePage seçim diyalogu çıkmasın.
    SET CURRENCY TO " YTL."    && Para Sembolü olarak ne gözüksün. ? 1234.50 FUNC "999,999" : 1234.50 YTL
    SET CURRENCY RIGHT        && Default=LEFT        Para Sembolü rakamın sağında olsun.
    * SET CURSOR ON            && Default=ON        Cursor bilgi girişi sırasında gözüksün.
    * SET DATABASE TO [dbc]    && Aktif olarak hangi Database'in kullanılacağını gösterir.
    * SET DATASESSION TO n    && boş=1=Global Data Session, Formun DataSession property=2 ise o forma özel tanımlanan data session açılır.
    SET DATE TO DMY            && Tarihi dd/mm/yy formatında gösterir
    * SET DEBUGOUT TO c        && Debug sonuçlarının uazılacağı kütüğü belirtir. SET ASSERT ve SET EVENLIST ve track listesindeki sonuçları yazar.
    * SET DECIMALS TO n        && Default=2        Virgülden sonra kaç basamak göstersin. Min:0  Max:18
    * SET DEFAULT TO c        && Belirtilen Path'i default directory yapar.
    SET DELETED ON            && Default=OFF        Silinen kayıtlar işleme girmesin=ON
    IF _VFP.StartMode = 0
        SET DEVELOPMENT ON
    ELSE
        SET DEVELOPMENT OFF        && Default=ON        Programın yazıldığı ve derlendiği tarihi kontrol eder, ON durumundayken eğer değişiklik yapılmışsa yeniden derler ve hata olursa Trace penceresini getirir. Performansin program bittiğinde OFF olmalı.
    ENDIF
    SET DEVICE TO SCREE        && @ çıkışlarını ekrana/printere/file'a gönderir.
    * SET ECHO OFF            && Default=OFF        Debugin Trace penceresini açar. Eskiye uyum için olan bir komut.
    * SET ENGINEBEHAVIOR n    && Default=90        Visual FoxPro'nun Hangi versiyonundaki SQL komutları gibi davransın. 70: VFP 7, 80: VFP 8, 90: VFP 9.
    SET ESCA OFF            && Default=ON        ESC tuşuna basmak programın çalışmasını kesmez.
    * SET EVENTLIST TO c    && Debug penceresinde track edilmek istenen eventlerin isim listesi.
    * SET EVENTTRACKING OFF    && Debug penceresinde event track edilsinmi, TO Filename ile event'ların debug sonuçları belirtilen kütüğe yazılır.
    SET EXACT ON            && Default=OFF        ON:Farklı uzunluklarda karşılaştırma yapılırken tam eşitlik olsun. Kısa olanın sonuna uzun kadar space eklensin. OFF:Sağdaki operatörün son harfine kadar eşitlik sağlansın.
    SET EXCLUSIVE OFF        && MULTI USER için OFF olmalı. Insert, Insert Blank, Pack, Zap, Reindexin ON olmalı.
    * SET FDOW TO n            && Default=1 Sunday. Haftanın ilk günü olarak hangi gün alınsın. 1: Sunday, 2: Monday...
    * SET FIELDS OFF        && Default=OFF        ON: sadece set fields to listesindeki field'lara erişilebilsin. OFF: Tüm fieldlere erişilebilsin.       
    * SET FILTER TO c        && Şarta uyan kayıtlara ulaşılabilir.
    * SET FIXED OFF            && Default=OFF        Tanımlı değişken, field, sabit.. yapısına göre virgülden sonraki basamak sayısını gösterir. ON: SET DECIMALS komutundaki kadar basamak gösterir.
    * SET FULLPATH ON        && Default=ON        DBF(),CDX(),... gibi komutların sonucunda Full path gözükür. veya sadece drive ve file adı gözükür.
    * SET FUNCTION n TO        && Fonksiyon tuşlarına text ataması yapar.
    * SET FWEEK TO 1        && Default=1        Yılın ilk haftası Ocağın 1'i hangi haftaya denk geliyorsa o olsun. 2:Haftanın çoğu (4nü) ne zaman başlıyorsa. 3: Haftanın 7nü de ne zaman yeni yılı içeriyorsa.
    * SET HEADINGS ON        && Default=ON        Field isimleri gözüksün.
    SET HELP OFF            && Default=ON        F1'e basıldığında Help çıksın. SET HELP TO ile DBF, HLP, CHM tipinde helpe yönlendirilebilir.
    SET HOURS TO 24            && Default=12        Saat 24 saat olarak gözüksün.
    * SET INDEX TO TO c        && Kullanılacak idx ve cdx file listesini belirtir.
    * SET KEY TO e            && Aktif index alanına göre şarta uyan kayıtlara erişilir. USE CAMLI07 - SET ORDER TO 3 - SET KEY TO RANGE "B","D" : Soyadı B,C,D ile başlayanları getirir.
    * SET KEYCOMP TO WINDOWS&& Default=WINDOWS    DOS veya Windows tuş özelliğini çalıştırır. Enter veya Tab ile alan değiştirmek gibi...
    * SET LIBRARY TO c        && Belirtilen Harici .fll extensionlu API Library kullanır, açar.
    * SET LOCK OFF            && Default=OFF        ON:Şu komutlar kullanıldığında kütüğü kilitler ve başkaları sadece okuyabilir. AVERAGE, CALCULATE, COPY TO, COUNT, INDEX, LIST, SUM...
    * SET LOGERRORS ON        && Default=ON        Compile sırasında .err soyadlı hataların yazıldığı bir dosya oluşsun.
    * SET MACKEY TO c        && Makro için tuş tanımı yapılır.
    * SET MARGIN TO 0        && Default=0        Yazıcı başlangıç kolonu belirtilir. Report ve Labelin geçerli değildir.
    * SET MARK OF MENU c TO l    && .T. ise Menüdeki işareti gösterir. SET MARK OF POPUP c TO l ve SET MARK OF BAR c TO l komutları da popup ve barin işaret oku gösterir. İşaret=checkmark
    * SET MARK TO c            && Tarih formatında gösterilecek ayıraç belirtilir. '/' gibi.
    SET MEMOWIDTH TO 1024    && Default=50        Memo alanındaki gösterilecek satırların uzunluğu belirtilir. Max:8192 ?,LIST,DISPLAY 254'den uzun gösteremez.
    * SET MESSAGE TO c        && Yazılan Text'i Status Bar'da gösterir. SET MESSAGE TO n: Belirtilen satıra mesajı yazar. SET MESSAGE TO WINDOW windowname: Mesajı adı verilen pencereye yazar.
    SET MULTILOCK ON        && Default=OFF        Birden fazla kaydı aynı anda LOCK() ve RLOCK() komutlarıyla kilitlenebilsin mi. Data Buffering enable ise ON olmalı.
    * SET NEAR OFF            && Default=OFF        Find ve Seek kayıtı bulamazsa en yakını bulsun mu.
    * SET NOCPTRANS TO c    && listesi verilen fieldlerin başka codepage'e çevrilmesini engeller.
    SET NOTIFY OFF            && Default=ON        Sistem mesajları gözükmesin.
    SET NULL OFF            && Default=OFF        ALTER TABLE, CREATE TABLE ve INSERT-SQL komutlarını etkiler. ON:Bu set komutundan sonra 3 komuttan biri kullanılırsa NULL value Replace etmeye izin vermesin, OFF:Null value girilsin.
    SET NULLDISPLAY TO ""    && Default=.NULL.    Null bilgi için hangi string gözüksün.
    * SET ODOMETER TO n        && Default=100        Record işlemlerinde kaçar tane kayıtta bir işlem gördüğünü gösterir. Set talk off göstermez.
    * SET OLEOBJECT OFF        && Default=ON        Createobject veya Getobject ile bir object arandığında bulunamazsa Registry de aransın. Program COM kullanmıyorsa off kalabilir.
    * SET OPTIMIZE ON        && Default=ON        Rushmore teknolojisini kullanır.
    * SET ORDER TO n        && İndex kütüğünü seçer.
    * SET PALETTE ON        &&Default=ON        VFP default renk paletini yükler.
    IF _VFP.STARTMODE = 0
        SET PATH TO ("Data\;Forms\;Help\;Images\;Libs\;Menus\;Progs\;Reports\")
    ELSE
        SET PATH TO ("
Data\;Help\;Images\")
    ENDIF
    * SET PDSETUP TO c        && Belirtilen Printer setup ayarlarını yükler.
    * SET POINT TO "
."        && Virgülden sonraki basamakları ayıracak işareti belirtir.
    * SET PRINTER OFF        && Default=OFF Çıkışları yazıcıya yönlendirir.
    * SET PRINTER FONT c    && Belirtilen fontu yazıcı için yükler.
    * SET PRINTER TO c        && File adıysa kütüğe yazar. Printer adıysa printere yazar. TO NAME \\... network yazıcısına gönderir. SET PRINTER TO NAME GETPRINTER() yazıcı seçtirir.
    * SET PROCEDURE TO c    && ismi verilen procedure file'larını açar.
    SET READBORDER ON        && Default=OFF        @..GET komutunda okunacak lanın etrafına çerçeve çizer.
    SET REFRESH TO 5,5        && Default=0        Networkte değiştirilen bilgiler browse penceresine kaç saniyede bir update edilsin. 0-3600 0:update etmez. 2. parametre memory'deki bilgileri kaç saniyede bir asıl kütükten yenileyeceğidir.
    * SET RELATION TO c        && Parent ve Child table'lar arasında aynı anda hareket etmek için kullanılır. TO relation_adı bölümünde child table'ın index ismi verilir.
    SET REPROCESS TO AUTOMATIC && MULTI USER
    SET SECONDS OFF && Specifies that seconds are not displayed in the time portion of a DateTime value
    SET STATUS BAR ON && Displays the graphical status bar at the bottom of the _screen
 
    *SET RESOURCE TO FOXDOS
    *SET RESOURCE OFF            &&OFF
    SET SAFETY OFF
    SET SYSMENU OFF             &&OFF
    SET TALK OFF
    *SET TEXTMERGE ON
    SET TYPE TO 50
ENDPROC
***************

10

Re: SET tanımlarını unutuyor

taRKan yazdı:

Ben de private datasession için şunları kullanıyorum. Türkiye için smile

Visual Fox Pro
Set SysFormats On

Set Talk Off
Set Decimals To 6
Set Deleted On
Set Exclusive Off
Set Reprocess To 3 Automatic
Set MultiLocks On
Try
    Set Collate To "TURKISH"
Catch
EndTry


Tarkan hocam ;
Set Collate To "TURKISH"
setini neden Try Catch bloğunun içine aldın ?

11

Re: SET tanımlarını unutuyor

erdalyalcin yazdı:
taRKan yazdı:

Ben de private datasession için şunları kullanıyorum. Türkiye için smile

Visual Fox Pro
Set SysFormats On

Set Talk Off
Set Decimals To 6
Set Deleted On
Set Exclusive Off
Set Reprocess To 3 Automatic
Set MultiLocks On
Try
    Set Collate To "TURKISH"
Catch
EndTry


Tarkan hocam ;
Set Collate To "TURKISH"
setini neden Try Catch bloğunun içine aldın ?


Türkçe dil paketi kurulmamış Windows'larda hata vermemesi için

/o---------------------o\
     www.haser.com
\o---------------------o/