Najlepiej
przegl╣daµ z
Za│╣cznik A Za│╣cznik B Za│╣cznik C Za│╣cznik D Za│╣cznik E Jak przygotowaµ aplikacje w FoxPro na rok 2000 Za│╣cznik F |
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:
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 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Ω:
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Ω:
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:
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 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:
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. |