Polska MicrosoftSzukajPomocProduktySklepNapisz Do Nas   Microsoft
 
Najlepiej przegl╣daµ z

Microsoft Internet Explorer


Powr≤t


 

Za│╣cznik A
Zakresy dat przechowywanych w programach Microsoftu

Za│╣cznik B
Zasady okre£lania lat przestΩpnych

Za│╣cznik C
Rozwi╣zanie problem≤w z BIOS-em

Za│╣cznik D
Zalecane zasady postΩpowania odno£nie roku 2000 dla projektant≤w aplikacji, programist≤w i os≤b testuj╣cych

Za│╣cznik E
Jak przygotowaµ aplikacjΩ na rok 2000 w Visual Basicu lub Visual FoxPro.

Jak przygotowaµ aplikacje w FoxPro na rok 2000

Za│╣cznik F
Zasady konwersji roku dwucyfrowego na rok czterocyfrowy

Rok 2000: problemy i rozwi╣zania

Problem roku 2000 û czΩsto zadawane pytania

Microsoft a rok 2000


Za│╣cznik E: jak przygotowaµ aplikacje w FoxPro na rok 2000

Nr artyku│u: Q162388

Data utworzenia: 20 stycznia 1997 r.

Data ostatniego przegl╣du: 21 stycznia 1997 r.

Artyku│ zawiera informacje o programach:

  • Microsoft Visual FoxPro dla Windows, wersje 3.0, 3.0b, 5.0.
  • Microsoft FoxPro dla MS-DOS, wersje 2.0, 2.5, 2.5a, 2.5b, 2.6, 2.6a.
  • Microsoft Visual FoxPro dla Macintosha, wersja 3.0b.
  • Microsoft FoxPro dla UNIX-a, wersja 2.6.
  • Microsoft FoxPro dla Windows, wersje 2.5, 2.5a, 2.5b, 2.6, 2.6a.
  • Microsoft FoxPro dla Macintosha, wersje 2.5b, 2.5c, 2.6a.

 

STRESZCZENIE

Im bli┐ej roku 2000, tym bardziej u┐ytkownicy i programi£ci musz╣ wzi╣µ pod uwagΩ wp│yw dat w tym roku (oraz w latach p≤ƒniejszych) na zapisywanie, przechowywanie, reprezentowanie i obliczanie dat w aplikacjach ù zar≤wno ju┐ istniej╣cych, jak i zupe│nie nowych. W artykule tym omawiamy problemy zwi╣zane z danymi typu ôdataö w tabelach oraz przedstawiamy dzia│ania, jakie s╣ wskazane przy przygotowywaniu aplikacji do roku 2000. Opr≤cz tego wyja£niamy, jak nale┐y u┐ywaµ warto£ci ôSet Century Toö i frazy ôRolloverö w Visual FoxPro 5.0, a tak┐e omawiamy zagadnienie u┐ywania klasy do kontroli nad wszystkimi zmiennymi £rodowiskowymi w projekcie.

 

BLI»SZE INFORMACJE

W tabelach FoxPro przechowywana jest warto£µ p≤l typu ôdataö z zachowaniem czterech cyfr roku. Dotychczasowe daty s╣ przechowywane jako 19xx (gdzie xx jest dwucyfrow╣ reprezentacj╣ roku), chyba ┐e aplikacja explicite zapisa│a inne stulecie daty. Obliczenia na datach dokonywane s╣ z u┐yciem czterocyfrowych warto£ci roku. Natomiast spos≤b reprezentacji roku na ekranie, formularzu lub w raporcie zale┐y od ustawienia opcji Century. Domnieman╣ warto£ci╣ tej opcji jest Off, co oznacza u┐ycie roku dwucyfrowego. Aby w│╣czyµ pe│n╣ reprezentacjΩ roku (czterocyfrow╣), aplikacja musi wykonaµ instrukcjΩ Set Century On albo £rodowisko powinno w│╣czyµ tΩ opcjΩ za pomoc╣ analogicznej instrukcji wydanej w innym miejscu.

Dla przyk│adu wprowadƒmy do okna polece± (w dowolnej wersji FoxPro lub Visual FoxPro) nastΩpuj╣ce instrukcje:

CREATE TABLE testyear (year d)
APPEND BLANK

BROWSE

Pojawi siΩ puste pole. W polu tym wpiszmy datΩ w formacie mmddyy, na przyk│ad 040197. Data pojawi siΩ jako 01.0497.

Teraz w oknie polece± wpiszmy nastΩpuj╣c╣ instrukcjΩ:

SET CENTURY ON

Po klikniΩciu paska tytu│owego zauwa┐ymy, ┐e w oknie BROWSE reprezentacja daty zmieni│a siΩ na 01.04.1997.

Teraz wpiszmy nastΩpuj╣c╣ instrukcjΩ:

SET CENTURY OFF

Po klikniΩciu paska tytu│owego zauwa┐ymy, ┐e w oknie BROWSE reprezentacja daty zmieni│a siΩ na 01.04.97.

Spos≤b reprezentacji dat w tabelach FoxPro mo┐e byµ zatem wykorzystywany w nastΩpnym stuleciu. Jednak je£li ekrany (w aplikacjach opracowanych w FoxPro) albo formularze (w aplikacjach opracowanych w Visual FoxPro) zosta│y utworzone przy opcji £rodowiskowej Century ustawionej na Off, w≤wczas pola wprowadzania danych sterowane przez @...GET i Textbox przyjmuj╣ tylko dwie ostatnie cyfry roku. Gdy osoba wprowadzaj╣ca dane zacznie wpisywaµ rok jako 19xx, 19 zostanie zinterpretowane jako rok 1919. Kod programu powinien rozpoznawaµ tego rodzaju przypadki w procedurze obs│ugi zdarzenia Valid albo zdarzenia Lostfocus.

Aby przygotowaµ siΩ do poprawnego wprowadzania dat roku 2000 i lat p≤ƒniejszych, prawdopodobnie trzeba bΩdzie zmieniµ istniej╣ce aplikacje tak, aby przy wprowadzaniu danych wpisywany by│ rok czterocyfrowy.

W zwi╣zku z tym konieczne mog╣ staµ siΩ nastΩpuj╣ce dzia│ania:

  1. Dostosowanie szeroko£ci p≤l (formant≤w) @...GET lub Textbox do wprowadzania i wy£wietlania roku czterocyfrowego.
  2. Zmodyfikowanie reprezentacji dat w raportach.

Trzeba te┐ bΩdzie ustawiµ opcjΩ Century na On (w procedurze Setup dla ekranu w FoxPro, w zdarzeniu Init dla formularza, w programie g│≤wnym projektu, b╣dƒ w innym miejscu, gdzie opcjΩ Century mo┐na ustawiµ przed jej u┐yciem).

Wielu programist≤w na pocz╣tku programu zapamiΩtuje wszystkie ustawienia £rodowiskowe, nastΩpnie ustawia je zgodnie z wymaganiami danej aplikacji, a gdy ko±czy z niej korzystaµ, przywraca ich pocz╣tkowe warto£ci.

Ustawienia £rodowiskowe s╣ przechowywane w tabeli Foxuser.dbf, ale tabela ta mo┐e ulec zniszczeniu lub zostaµ utracona z innego powodu. Dlatego dobrze zaprojektowana aplikacja we w│a£ciwy spos≤b kontroluje ustawienie opcji Century oraz inne wa┐ne ustawienia £rodowiskowe.

Warto£µ ôSet Century Toö i fraza Rollover w Visual FoxPro 5.0

W Visual FoxPro dla Windows, wersja 5.0, wprowadzono do instrukcji Set Century nowe frazy: "To" i "Rollover".

Dzia│anie frazy ôToö ilustruje poni┐szy przyk│ad, zaczerpniΩty z Pliku Pomocy:

SET CENTURY ON
SET CENTURY TO 19    && zakres warto£ci od 1 do 99
? {02/16/56}         && wy£wietla 02/16/1956

SET CENTURY TO 20
? {02/16/56}         && wy£wietla 02/16/2056

 

Fraza Rollover okre£la rok, pocz╣wszy od kt≤rego liczy siΩ bie┐╣ce stulecie, a przed kt≤rym liczy siΩ nastΩpne stulecie. U┐ycie tej frazy ilustruje nastΩpuj╣cy przyk│ad:

SET CENTURY ON
SET CENTURY TO 19 ROLLOVER 60
? {02/16/96}         && Wy£wietla 02/16/1996

? {02/16/56} && Wy£wietla 02/16/2056

R≤wnie┐ w tym przypadku temat pomocy informuje, ┐e ustawienie Set Century obowi╣zuje tylko dla bie┐╣cej sesji. Oznacza to, ┐e programista jest odpowiedzialny za w│a£ciwe kontrolowanie ustawie± Century na pocz╣tku wykonywania swojego programu. W Visual FoxPro istnieje bardzo wygodny spos≤b ustalenia po┐╣danych ustawie± przez u┐ycie klasy, kt≤r╣ mo┐na w│╣czyµ do ka┐dego projektu.

 

U┐ycie klasy do kontroli wszystkich zmiennych £rodowiskowych

Mo┐na u┐yµ biblioteki klas tsgen.vcx, do│╣czonej jako klasa Environment w przyk│adowej aplikacji Tastrade (nie trzeba wprowadzaµ ┐adnych zmian).

Klasa ta zawiera kod obs│uguj╣cy zdarzenia init, set i reset, natomiast nie zawiera ustawienia Century. Nale┐y je zatem dodaµ do trzech metod obs│uguj╣cych zdarzenia, w wyniku czego zostanie ono w│╣czone do klasy. NastΩpuj╣ce dzia│ania pozwol╣ obejrzeµ kod tej klasy w Visual FoxPro 5.0:

  1. W menu Help klikn╣µ Sample Applications.
  2. Klikn╣µ Open dla przyk│adowej aplikacji Tasmanian Traders, w wyniku czego otworzy siΩ projekt Tastrade.
  3. W okienku dialogowym Project Manager klikn╣µ zak│adkΩ Classes i wybraµ bibliotekΩ tsgen. Pod£wietliµ klasΩ Environment i klikn╣µ Modify.
  4. Kiedy klasa pojawi siΩ w oknie Class Designer, klikn╣µ j╣ prawym przyciskiem i z menu kontekstowego wybraµ Code.

Ta sama klasa znajduje siΩ w Visual FoxPro 3.0 i 3.0b, w bibliotece Vfp\Samples\Mainsamp\Libs\Tsgen.vcx. KlasΩ Environment mo┐na obejrzeµ po wprowadzeniu nastΩpuj╣cego polecenia:

MODIFY CLASS environment OF

SYS(2004)+"\SAMPLES\MAINSAMP\LIBS\TSGEN.VCX"

W menu View nale┐y klikn╣µ Code.

WiΩcej informacji o u┐yciu dat w obliczeniach mo┐na znaleƒµ w innym artykule, kt≤ry znajduje siΩ w bazie wiedzy Microsoftu:

Nr artyku│u: Q130444

Tytu│: How to Calculate the Years, Months, and Days Between Two Dates

(c) Microsoft Corporation 1997. Wszelkie prawa zastrze┐one. Wsp≤│autor: Chris Jensen, Microsoft Corporation.


Microsoft Corporation⌐ Wszelkie prawa zastrze┐one