Вы находитесь на странице: 1из 50

Ë À Â À 11

Ñîçäàíèå èíòåãðèðîâàííûõ
ïðèëîæåíèé
 ýòîé ãëàâå. . .

• Èñïîëüçîâàíèå øàáëîíîâ äëÿ ñîãëàñîâàíèÿ êîìïîíåíòîâ ïðèëîæåíèé


• Ñîåäèíåíèå îðì è ñîçäàíèå èñõîäíîé îðìû
• àçìåùåíèå îðì è îò÷åòîâ íà ñåðâåðå ïðèëîæåíèé
• Ñîçäàíèå ïîëüçîâàòåëüñêèõ ìåíþ
• Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé

. àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé,


ðàáîòàþùèõ ñ áàçàìè äàííûõ

Òåïåðü, êîãäà âû çíàåòå, êàê ñîçäàâàòü îðìû è îò÷åòû, ïðèøëî âðåìÿ îáúåäèíèòü
îòäåëüíûå êîìïîíåíòû â ãîòîâîå ïðèëîæåíèå. Ïðèëîæåíèå ñîñòîèò èç íàáîðà ñîâ-
ìåñòíî ðàáîòàþùèõ îðì è îò÷åòîâ. Áîëüøèíñòâî ïðèëîæåíèé ïðåäíàçíà÷åíî äëÿ
ðåøåíèÿ êîíêðåòíûõ ïðîáëåì. Ñ òî÷êè çðåíèÿ ïîëüçîâàòåëÿ, ïðèëîæåíèå äîëæíî
ïðåäñòàâëÿòü ñîáîé åäèíîå öåëîå. Ôîðìû è îò÷åòû ïðèçâàíû ïîìî÷ü ïîëüçîâàòåëþ
âûïîëíèòü âñå íåîáõîäèìûå äåéñòâèÿ ïî ââîäó è èçâëå÷åíèþ äàííûõ. Ïîëüçîâàòåëü
íå äîëæåí íåïîñðåäñòâåííî âçàèìîäåéñòâîâàòü ñ áàçîé, â ÷àñòíîñòè ñîñòàâëÿòü çà-
ïðîñû. Áîëåå òîãî, êîíå÷íûé ïîëüçîâàòåëü ìîæåò äàæå íå çíàòü, ÷òî îñíîâîé äëÿ
ïðèëîæåíèÿ ÿâëÿåòñÿ ÑÓÁÄ.
 äîïîëíåíèå ê ñòàíäàðòíûì îðìàì, ïðåäíàçíà÷åííûì äëÿ ââîäà äàííûõ, è îò÷å-
òàì ñëåäóåò ñîçäàòü èñõîäíóþ îðìó, êîòîðàÿ âûñòóïàëà áû â ðîëè ïðîâîäíèêà äëÿ
CD74 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ïîëüçîâàòåëÿ, ðàáîòàþùåãî ñ ïðèëîæåíèåì. Ïðè ýòîì ïîëüçîâàòåëü ïîëó÷èò âîçìîæ-


íîñòü îòêðûâàòü íîâûå îðìû è îò÷åòû è ïåðåìåùàòüñÿ îò îäíîé îðìû ê äðóãîé
ïóòåì àêòèâèçàöèè êíîïîê. Òàêæå ìîæíî ñîçäàòü ìåíþ è ïàíåëè èíñòðóìåíòîâ, êîòî-
ðûå, ñ îäíîé ñòîðîíû, îãðàíè÷àò ñâîáîäó äåéñòâèÿ ïîëüçîâàòåëåé, à ñ äðóãîé ñòîðîíû,
ïðåäîñòàâÿò åìó ñòàíäàðòíûå èíñòðóìåíòàëüíûå ñðåäñòâà. Òàêæå íóæíû àéëû ñî
ñïðàâî÷íîé èíîðìàöèåé, ðàçäåëû êîòîðîé áûëè áû ñâÿçàíû ñ êîíêðåòíûìè îð-
ìàìè è äàæå äåéñòâèÿìè  ñ îðìàìè. Ïî ùåë÷êó ìûøè ïîëüçîâàòåëü ïîëó÷àë
áû ïîäñêàçêó. Âñå ýòè ýëåìåíòû ÿâëÿþòñÿ íåîòúåìëåìîé ÷àñòüþ ïðîåññèîíàëüíîãî
ïðèëîæåíèÿ.  áîëüøèíñòâå ñëó÷àåâ ñîçäàíèå ýëåìåíòîâ ïðèëîæåíèÿ íå ñîñòàâëÿåò
òðóäà, ïîñêîëüêó âûïîëíèòü äàííóþ ðàáîòó ïîìîãàþò ðàçëè÷íûå èíñòðóìåíòàëüíûå
ñðåäñòâà. Îäíàêî äëÿ ðåøåíèÿ ýòîé çàäà÷è òðåáóåòñÿ îïðåäåëåííîå âðåìÿ. îòîâîå
ïðèëîæåíèå äîëæíî áûòü òùàòåëüíî ïðîòåñòèðîâàíî. Êàê ïðàâèëî, ðàáîòà íàä áîëü-
øèì ïðèëîæåíèåì äåëèòñÿ íà ÷àñòè, è çà êàæäóþ ÷àñòü îòâå÷àåò îòäåëüíûé ñîòðóä-
íèê. Òîãäà íà äîëþ ðóêîâîäèòåëÿ ïðîåêòà îñòàþòñÿ âîïðîñû êîîðäèíàöèè äåéñòâèé
ðàáî÷åé ãðóïïû è îáåñïå÷åíèÿ ñîâìåñòíîé ðàáîòû ýëåìåíòîâ ïðèëîæåíèÿ.
Äëÿ îðãàíèçàöèè ðàáîòû ãðóïï íàä áîëüøèìè ïðèëîæåíèÿìè ðàçðàáîòàí öåëûé
ðÿä ñïîñîáîâ àíàëèçà çàäà÷ è ðàçðàáîòêè êîäà. Îðãàíèçàöèè, ñïåöèàëèçèðóþùèåñÿ
íà ñîçäàíèè ïðîãðàìì, îáû÷íî èñïîëüçóþò ðàçëè÷íûå ìåòîäîëîãèè è îáó÷àþò ñâîèõ
ñîòðóäíèêîâ ñ òåì, ÷òîáû âñå îíè äåéñòâîâàëè â ðàìêàõ îäíîãî è òîãî æå ïîäõîäà.
Íèæå ïåðå÷èñëåíû ýòàïû, òèïè÷íûå äëÿ ðàáîòû íàä ìíîãèìè ñèñòåìàìè.

1. Àíàëèç è ïðîåêòèðîâàíèå. Íà ýòîì ýòàïå îïðåäåëÿþòñÿ ïîòðåáíîñòè ïîëüçîâàòå-


ëåé, âûáèðàþòñÿ îáðàçû ðàçðàáîòêè è ñîñòàâëÿåòñÿ ïëàí ðàáîòû.
2. àçðàáîòêà ìîäóëåé. Çäåñü êàæäûé ðàçðàáîò÷èê ñîçäàåò êîíêðåòíóþ îðìó èëè
îò÷åò. Ôîðìû è îò÷åòû òåñòèðóþòñÿ ñ òåì, ÷òîáû îáåñïå÷èòü êîððåêòíóþ ðàáîòó
êàæäîé ÷àñòè ïðèëîæåíèÿ.
3. Èíòåãðàöèÿ, ò.å. îáúåäèíåíèå ðàçëè÷íûõ êîìïîíåíòîâ â åäèíîå ïðèëîæåíèå.
4. Òåñòèðîâàíèå ñèñòåìû. Íà ýòîì ýòàïå ïðîâåðÿåòñÿ, êîððåêòíî ëè ðàáîòàåò ïðèëî-
æåíèå, à òàêæå îöåíèâàþòñÿ ñðåäñòâà íàâèãàöèè, ïðàêòè÷íîñòü ñèñòåìû è ïðîèç-
âîäèòåëüíîñòü.
5. Äîñòàâêà, ò.å. çàãðóçêà áàçû äàííûõ, óñòàíîâêà ñåðâåðà ïðèëîæåíèé Ora le, ñîçäà-
íèå ó÷åòíûõ çàïèñåé è ïðàâ äîñòóïà.

Ïðèëîæåíèå äëÿ Redwood Realty

Îäèí èç ïåðâûõ ýòàïîâ ðàáîòû íàä ïðèëîæåíèåì  ýòî îðìóëèðîâêà îñíîâíûõ


çàäà÷, ñòîÿùèõ ïåðåä ïîëüçîâàòåëåì, è ïðîåêòèðîâàíèå îðì è îò÷åòîâ, êîòîðûå
äîëæíû ïîìî÷ü ðåøèòü èõ.  ñëó÷àå ïðèëîæåíèÿ äëÿ Redwood Realty áîëüøèíñòâî
òðåáóåìûõ îðì óæå áûëè ñîçäàíû â ïðåäûäóùèõ ãëàâàõ. Íà äàííîì ýòàïå íåîáõî-
äèìî îáúåäèíèòü îðìû è îò÷åòû è ïîìåñòèòü èõ â îäíó ïàïêó, ñ êîòîðîé ìû áóäåì
àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé, ðàáîòàþùèõ ñ áàçàìè äàííûõ CD75

ÒÀÁËÈÖÀ 11.1. Ôîðìû, ñîçäàííûå â ðàìêàõ ðàáîòû íàä ïðèëîæåíèåì

Redwood Realty

Ôîðìà Îïèñàíèå Òèï


AgentConta ts Ñïèñîê êîíòàêòîâ àãåíòîâ Îñíîâíàÿ/
ïîä÷èíåííàÿ
AgentListings Ñïèñêè àãåíòîâ ñ âîçìîæíîñòüþ ïîèñêà Îñíîâíàÿ/
ïîä÷èíåííàÿ
Agents Ïðîñòàÿ îðìà äëÿ îòîáðàæåíèÿ èíîðìàöèè Îòîáðàæåíèå
îá àãåíòàõ îäíîé çàïèñè
Conta tReason Àäìèíèñòðàòèâíàÿ îðìà äëÿ òàáëèöû Òàáëè÷íàÿ
Conta tReason
Customers2 Ôîðìà äëÿ îòîáðàæåíèÿ èíîðìàöèè Îòîáðàæåíèå
î ïîòðåáèòåëÿõ, ñíàáæåííàÿ ëîãîòèïîì îäíîé çàïèñè
Li enseStatus Àäìèíèñòðàòèâíàÿ îðìà äëÿ òàáëèöû Òàáëè÷íàÿ
Li enseStatus
ListingA tivity Ñïèñêè ñ ïðåäëîæåíèÿìè â âèäå Îñíîâíàÿ/
ïîä÷èíåííûõ îðì ïîä÷èíåííàÿ
Listings Îñíîâíàÿ îðìà äëÿ ñïèñêîâ ñ ïîääåðæêîé Îòîáðàæåíèå
îòîñíèìêîâ îäíîé çàïèñè
Properties Îñíîâíàÿ îðìà äëÿ ñâîéñòâ îáúåêòîâ Îòîáðàæåíèå
îäíîé çàïèñè
SaleStatus Àäìèíèñòðàòèâíàÿ îðìà äëÿ òàáëèöû Òàáëè÷íàÿ
SaleStatus
Sear h Ïîèñê ñïèñêîâ Îñíîâíàÿ/
ïîä÷èíåííàÿ
Sear h2 Âàðèàíò ïîèñêîâîé îðìû; äëÿ Properties Îñíîâíàÿ/
èñïîëüçóåòñÿ âòîðîé õîëñò ïîä÷èíåííàÿ
Sear h3 Âàðèàíò ïîèñêîâîé îðìû; äëÿ Properties Îñíîâíàÿ/
èñïîëüçóåòñÿ õîëñò â âèäå ñëîÿ ïîä÷èíåííàÿ
Sear h4 Âàðèàíò ïîèñêîâîé îðìû; äëÿ Properties Îñíîâíàÿ/
è Owners èñïîëüçóþòñÿ õîëñòû â âèäå âêëàäîê ïîä÷èíåííàÿ

ðàáîòàòü íà ïðîòÿæåíèè äàííîé ãëàâû. Êðîìå òîãî, ñëåäóåò âñïîìíèòü î íàçíà÷åíèè


îðì è èõ êîìïîíîâêå. Äàæå åñëè íå âñå íåîáõîäèìûå îðìû áûëè ñîçäàíû, âàì âñå
ðàâíî ïðèäåòñÿ îáúåäèíèòü âñå èìåþùèåñÿ ýëåìåíòû.
 òàáë. 11.1 ïåðå÷èñëåíû îðìû, ñîçäàííûå â ïðåäûäóùèõ ãëàâàõ, è ïðèâåäåíî
èõ êðàòêîå îïèñàíèå.
 òàáë. 11.2 îïèñàíû îò÷åòû, ñîçäàííûå äëÿ Redwood Realty. Ñîîòâåòñòâóþ-
ùèå àéëû ðàñïîëîæåíû â ïàïêàõ, ñ êîòîðûìè âû ðàáîòàëè â ïðåäûäóùèõ ãëà-
CD76 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ÒÀÁËÈÖÀ 11.2. Îò÷åòû, ñîçäàííûå â ðàìêàõ ðàáîòû íàä ïðèëîæåíèåì

Redwood Realty

Îò÷åò Îïèñàíèå
AgentSales Ñïèñêè àãåíòîâ ñ ïîëüçîâàòåëüñêèìè ïàðàìåòðàìè äëÿ âû-
áîðà ãîäà è ìåñÿöà
CustomerList Ïðîñòîé ñïèñîê ïîòðåáèòåëåé
Listings and Offers Îñíîâíûå äàííûå, ñíàáæåííûå îòîñíèìêàìè
SalesByCityAndAgent ðóïïîâîé îò÷åò î ãîðîäàõ è àãåíòàõ
SalesByMonthAndAgent Ìàòðè÷íûé îò÷åò äëÿ ñðàâíåíèÿ ïðîäàæ, âûïîëíåííûõ
ðàçíûìè àãåíòàìè. Ñîñòîÿíèå îáúåêòà çàäàåòñÿ ïîñðåä-
ñòâîì ïîëüçîâàòåëüñêîãî ïàðàìåòðà

âàõ. Åñëè îäíà-äâå îðìû èëè êàêîé-òî îò÷åò îòñóòñòâóþò, ýòî íå êðèòè÷íî. Ê òî-
ìó æå, çíàÿ ìàòåðèàë ïðåäûäóùèõ ãëàâ, âû ìîæåòå ñîçäàòü èõ çà íåñêîëüêî ìèíóò.
Îñíîâíûå ïîäãîòîâèòåëüíûå äåéñòâèÿ, ïðåäøåñòâóþùèå ðàáîòå íàä ïðèëîæåíèåì,
ïåðå÷èñëåíû íèæå.

1. Ñîçäàíèå íîâîé ïàïêè äëÿ ðàáîòû íàä ìàòåðèàëîì äàííîé ãëàâû.


2. Ïîèñê îðì è îò÷åòîâ è êîïèðîâàíèå èõ â íîâóþ ïàïêó.
3. Ïðîñìîòð îðì è óòî÷íåíèå êîìïîíîâêè è ñòèëÿ. Íåîáõîäèìî îòìåòèòü ñòèëè
è ýëåìåíòû, êîòîðûå óñòðàèâàþò âàñ, è òå, êîòîðûå íåîáõîäèìî èçìåíèòü.

Îáåñïå÷åíèå ñîãëàñîâàííîãî âíåøíåãî âèäà

Îáåñïå÷åíèå ñîãëàñîâàííîãî âíåøíåãî âèäà îðì è îò÷åòîâ â ñîñòàâå áîëüøîãî ïðè-


ëîæåíèÿ ÿâëÿåòñÿ äîâîëüíî ñëîæíîé çàäà÷åé. Åñëè â ïðèëîæåíèè âñå îðìû áóäóò
èìåòü ðàçíûé öâåò, îíî áóäåò âûãëÿäåòü íåïðîåññèîíàëüíî è ïîëüçîâàòåëè áóäóò
æàëîâàòüñÿ íà ïîñòîÿííûå èçìåíåíèÿ âíåøíåãî âèäà îêîí. Ýëåìåíòû ñõîäíîãî íà-
çíà÷åíèÿ â ðàçíûõ îðìàõ äîëæíû ðàñïîëàãàòüñÿ ïðèáëèçèòåëüíî â îäèíàêîâûõ ïî-
çèöèÿõ è âûãëÿäåòü ïðèìåðíî îäèíàêîâî. Íàïðèìåð, êíîïêó Close, âñòðå÷àþùóþñÿ
âî ìíîãèõ îðìàõ, ìîæíî ðàñïîëîæèòü â âåðõíåì ïðàâîì óãëó. Îáðàòèòå âíèìàíèå
íà îðìû, ñîçäàííûå âàìè ðàíåå,  âñå îíè âûãëÿäÿò ïî-ðàçíîìó. Ïðåäñòàâüòå æå
ñåáå ñèòóàöèþ, â êîòîðîé ðàçëè÷íûå îðìû ñîçäàþòñÿ ðàçíûìè ñîòðóäíèêàìè.
Äëÿ êàæäîãî ïðîåêòà íàäî ñîñòàâèòü ðóêîâîäñòâî ïî ñòèëÿì, êîòîðîå çàäàåò îá-
ùóþ ñòðóêòóðó îðì è îñíîâíûå ýëåìåíòû, ñîäåðæàùèåñÿ â íèõ. Íàïðèìåð, íà ðèñ.
11.1 ïîêàçàí ïðèìåð êîìïîíîâêè îðìû. Â íåì îïðåäåëåíî ðàñïîëîæåíèå çàãîëîâêà
è ëîãîòèïà. Íà ðèñóíêå òàêæå âèäíî, ÷òî êàæäàÿ îðìà äîëæíà ñîäåðæàòü êíîï-
êó Close è â íåé äîëæíà áûòü ïðåäóñìîòðåíà îáëàñòü äëÿ îòîáðàæåíèÿ ñîîáùåíèé.
óêîâîäñòâî ïî ñòèëÿì ìîæåò òàêæå îïðåäåëÿòü ñòàíäàðòíûé öâåò îíà, íà÷åðòàíèå
àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé, ðàáîòàþùèõ ñ áàçàìè äàííûõ CD77

Меню и панель инструментов

Заголовок формы Кнопка


Логотип Close

Элементы формы и данные

Сообщения

èñ. 11.1. Ïðèìåð êîìïîíîâêè ïðîñòîé îðìû

è ðàçìåð øðèòîâ. Âîçìîæíî, â ðóêîâîäñòâî áóäóò âêëþ÷åíû ñâîéñòâà äëÿ çàãîëîâêîâ


ñòîëáöîâ è çàäàíû ïðàâèëà âûäåëåíèÿ ïîä÷èíåííûõ îðì.
Èíîãäà ðóêîâîäñòâà îïðåäåëÿþò ïðèíöèï èìåíîâàíèÿ íîâûõ îáúåêòîâ. Ýòè ñî-
ãëàøåíèÿ íå çàòðàãèâàþò âíåøíèé âèä äîêóìåíòîâ, íî óïðîùàþò âçàèìîäåé-
ñòâèå ðàçðàáîò÷èêîâ è ìîäèèêàöèþ îðì. Íàïðèìåð, âû ìîæåòå óêàçàòü, ÷òî
âñå õîëñòû ïîìå÷àþòñÿ êàê Table_Canvas è ÷òî ãðóïïû ïåðåêëþ÷àòåëåé äîëæíû
èìåòü ïðåèêñ RADIO_.
 áîëüøèíñòâå ñëó÷àåâ ðóêîâîäñòâî ïî ñòèëÿì âûâîäèòñÿ íà áóìàæíûé íîñèòåëü.
Æåëàòåëüíî òàêæå ðàçìåñòèòü â ñåòè ýëåêòðîííóþ êîïèþ, ÷òîáû êàæäûé ðàçðàáîò-
÷èê ìîã îïåðàòèâíî îáðàòèòüñÿ ê íåé. Âîçìîæíî, âû çàõîòèòå ñîçäàòü îòäåëüíîå
ðóêîâîäñòâî ïî ñòèëÿì äëÿ îò÷åòîâ. Âåðîÿòíåå âñåãî, â íåì áóäóò ñîðìóëèðîâàíû
ðàçíûå òðåáîâàíèÿ äëÿ îò÷åòîâ, âûâîäèìûõ íà ïå÷àòü è ïóáëèêóåìûõ â Web. Îä-
íî ðóêîâîäñòâî ïî ñòèëÿì ÷àñòî èñïîëüçóåòñÿ â íåñêîëüêèõ ïðîåêòàõ, âûïîëíÿåìûõ
â ðàìêàõ êîìïàíèè, ïîýòîìó èìååò ñìûñë ïðèâëå÷ü ê åãî ñîñòàâëåíèþ ïðîåññèî-
íàëüíîãî äèçàéíåðà. Ïðèìåðû îðì è îò÷åòîâ äîëæíû áûòü ïðîâåðåíû ðàçëè÷íûìè
ïîëüçîâàòåëÿìè ñ òåì, ÷òîáû îáåñïå÷èòü èõ ïðèìåíèìîñòü.

Ñîçäàíèå øàáëîíîâ äëÿ îðì

Èìåÿ ðóêîâîäñòâî ïî ñòèëÿì, ìîæíî ñîçäàòü øàáëîí îðìû è ðåàëèçîâàòü â íåì


òðåáóåìóþ êîìïîíîâêó. Øàáëîí äîëæåí ñîäåðæàòü ñòàíäàðòíûå îáúåêòû, ãðàèêó,
ïàíåëè èíñòðóìåíòîâ, ðàçäåëû ïðîãðàìì è äðóãèå ýëåìåíòû, êîòîðûå, âîçìîæíî, ïî-
íàäîáèòñÿ âêëþ÷èòü ïî óìîë÷àíèþ âî âñå îðìû. Ïðèìåíåíèå øàáëîíîâ  èäåàëü-
íûé ñïîñîá äîáèòüñÿ ñîãëàñîâàííîãî âíåøíåãî âèäà îðì. Äëÿ ñîçäàíèÿ øàáëîíîâ
ïðèìåíÿþòñÿ òå æå èíñòðóìåíòû, ÷òî è äëÿ îðì, íî îáû÷íî â íèõ íå ïîìåùàþòñÿ
CD78 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ýëåìåíòû äàííûõ. Ñîõðàíèâ øàáëîí, íàäî îáåñïå÷èòü äîñòóï ê íåìó âñåõ ðàçðàáîò-
÷èêîâ. Ïðèñòóïàÿ ê ñîçäàíèþ íîâîé îðìû, ñîòðóäíèê íà÷íåò ñ òîãî, ÷òî îòêðîåò
øàáëîí è äîáàâèò â íåãî òðåáóåìûå ýëåìåíòû. Åäèíñòâåííûé íåäîñòàòîê øàáëîíîâ
ñîñòîèò â òîì, ÷òî èõ î÷åíü òðóäíî ïðèìåíèòü ê ñóùåñòâóþùèì îðìàì.
Êàê âû ïîìíèòå, â ãëàâàõ, ïîñâÿùåííûõ ñîçäàíèþ îò÷åòîâ, áûëî óäåëåíî âíè-
ìàíèå øàáëîíàì. Øàáëîíû îò÷åòîâ ìîùíåå øàáëîíîâ îðì, ïîñêîëüêó èõ ìîæíî
ïðèìåíÿòü ê ãîòîâûì îò÷åòàì (ïðàâäà, ïðè ýòîì ïðèäåòñÿ ïîæåðòâîâàòü èçìåíåíèÿ-
ìè, âíåñåííûìè âðó÷íóþ).
Äëÿ òîãî ÷òîáû ëó÷øå ïîíÿòü, êàê ñîñòàâëÿþòñÿ øàáëîíû, ñîçäàäèì øàáëîí,
ó÷èòûâàþùèé ðóêîâîäñòâî ñòèëåé äëÿ Redwood Realty.  ïðîöåññå ðàáîòû âû âïîëíå
ìîæåòå âíîñèòü èçìåíåíèÿ, ÷òîáû ðåàëèçîâàòü ñâîå ïðåäñòàâëåíèå î ñîçäàâàåìîì
ïðèëîæåíèè. Íà÷íåì ðàáîòó ñ íóëÿ.

1. Çàïóñòèòå Forms Builder, íî íå îòêðûâàéòå îðìó. Ïåðåèìåíóéòå ðàçäåë Module1


â Redwood_Template.
2. Äîáàâüòå íîâûé õîëñò, âûáðàâ ýëåìåíò Canvases è ùåëêíóâ íà êíîïêå Create .
Ïðèñâîéòå åìó èìÿ Template_Canvas.
3. Â ðàçäåëå Windows ïåðåèìåíóéòå Window1 â Redwood_Window. Ñ ïîìîùüþ ïà-
ëèòðû ñâîéñòâ èçìåíèòå çàãîëîâîê íà Redwood Realty è óñòàíîâèòå äëÿ Primary
Canvas çíà÷åíèå Template_Canvas.
4. Äâàæäû ùåëêíèòå íà ïèêòîãðàììå ïåðåä Template_Canvas, ÷òîáû íà÷àòü ðàáîòó
ñ õîëñòîì. Ñ ïîìîùüþ ïàëèòðû ñâîéñòâ çàäàéòå äëÿ Ba kground Color çíà÷åíèå
white.
5. Èñïîëüçóÿ ïóíêò ìåíþ Edit⇒Import⇒Image, èìïîðòèðóéòå ëîãîòèï êîìïàíèè è
ïîìåñòèòå åãî â âåðõíåì ëåâîì óãëó îðìû. Â îáúåêòíîì íàâèãàòîðå ïðèñâîéòå
ñîîòâåòñòâóþùåìó ýëåìåíòó èìÿ img_Logo.
6. Ùåëêíèòå íà êíîïêå Text , ðàñïîëîæåííîé íà ïàíåëè èíñòðóìåíòîâ, è ïîìå-
ñòèòå ñòðîêó çàãîëîâêà â âåðõíþþ ÷àñòü îðìû. Ââåäèòå òåêñò (Form Title) è
çàäàéòå øðèò Arial ðàçìåðîì 14 ïóíêòîâ. Â îáúåêòíîì íàâèãàòîðå ïðèñâîéòå
äàííîìó ïóíêòó èìÿ txt_Title.

7. Èñïîëüçóÿ èíñòðóìåíò Display Item , äîáàâüòå ñòðîêó òåêñòà â íèæíåé ÷àñòè


îðìû  òàì, ãäå áóäóò îòîáðàæàòüñÿ ñîîáùåíèÿ. Óáåäèòåñü â òîì, ÷òî ýëåìåíò
íàõîäèòñÿ â îáëàñòè, äëÿ êîòîðîé çàäàí áåëûé îí. Óñòàíîâèòå ñâîéñòâà ñëåäóþ-
ùèì îáðàçîì: Name = txt_Message, Maximum Length = 130, Database Item
= No è Bevel = None.
8. Ñ íîâîãî ýëåìåíòà Forms Builder àâòîìàòè÷åñêè ñîçäàåò íîâûé áëîê äàííûõ. Èñ-
ïîëüçóÿ îáúåêòíûé íàâèãàòîð, ïðèñâîéòå åìó èìÿ Template_Blo k.
àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé, ðàáîòàþùèõ ñ áàçàìè äàííûõ CD79

9. ×òîáû äîáàâèòü ê îðìå êíîïêó Close, ùåëêíèòå íà êíîïêå Button , çàòåì ùåëê-
íèòå îêîëî âåðõíåãî ïðàâîãî óãëà îðìû. Èñïîëüçóÿ ïàëèòðó ñâîéñòâ, óñòàíîâèòå
Name = btn_Close è Label = Close. Óìåíüøèòå ðàçìåðû êíîïêè, ïåðåòàñêè-
âàÿ îäèí èç åå óãëîâ.
10. Äîáàâüòå îáðàáîò÷èê ñîáûòèÿ, ñâÿçàííîãî ñ êíîïêîé Close. Äëÿ ýòîãî íàäî ùåëê-
íóòü ïðàâîé êíîïêîé ìûøè íà êíîïêå è âûáðàòü Smart Triggers⇒When-Button-
Pressed. Â ðåäàêòîðå PL/SQL ââåäèòå âûðàæåíèå EXIT_FORM;, çàòåì ùåëêíèòå

íà êíîïêå Compile . Çàêðîéòå ðåäàêòîð.


11. Ñîõðàíèòå øàáëîí îðìû â àéëå Redwood_Template.fmb.

Ëþáûå îáúåêòû èëè êîä, êîòîðûå âû âêëþ÷èëè â øàáëîí, áóäóò äîñòóïíû êàæäîé
îðìå, ñîðìèðîâàííîé íà áàçå ýòîãî øàáëîíà. Â ñîñòàâå øàáëîíà ñîäåðæèòñÿ êàê
êíîïêà, òàê è åå îáðàáîò÷èê.

Êëàññû ñâîéñòâ è âèçóàëüíûå àòðèáóòû

Øàáëîí îðìû âûïîëíÿåò â ïåðâóþ î÷åðåäü ðîëü îñíîâû äëÿ ïîñëåäóþùåé ðàáîòû
íàä îðìîé. Ñ åãî ïîìîùüþ óäîáíî ðàçìåùàòü îáúåêòû, ïðèìåíÿåìûå âî âñåõ îð-
ìàõ. Îäíàêî ñàì ïî ñåáå îí ïðåäîñòàâëÿåò äîâîëüíî ñëàáûå âîçìîæíîñòè ïî ðàáîòå
ñ âèçóàëüíûìè ýëåìåíòàìè. Íàïðèìåð, ðàçðàáîò÷èê äîëæåí ñàì âûáèðàòü öâåò äëÿ
ïîëåé, êíîïîê, ðåéìîâ è äðóãèõ îáúåêòîâ, ïîìåùàåìûõ â îðìó. Ïîìî÷ü âûïîëíÿòü
ýòó ðóòèííóþ ðàáîòó ìîãóò êëàññû ñâîéñòâ è èìåíîâàííûå âèçóàëüíûå àòðèáóòû.
Èìåíîâàííûé âèçóàëüíûé àòðèáóò ïðåäñòàâëÿåò ñîáîé îïðåäåëåíèå ñòèëÿ, âîç-
äåéñòâóþùåãî íà ñâîéñòâà îáúåêòà, êîòîðûå îïðåäåëÿþò åãî âèçóàëüíîå ïðåäñòàâëå-
íèå: øðèò, öâåò è îíîâûé óçîð. Ïðè ðàáîòå íàä îðìîé ìîæíî ñîçäàòü ðàçëè÷íûå
ñòèëè, ïðèñâîèòü èì èìåíà è õðàíèòü èõ â îñíîâíîì øàáëîíå. Çàòåì ðàçðàáîò÷èê ïðè-
ìåíèò èìåíîâàííûå íàáîðû ê îáúåêòàì îðìû, â ðåçóëüòàòå ÷åãî îáúåêòû ïîëó÷àò
ñîîòâåòñòâóþùèå ñòèëè.
Âòîðîå ðåøåíèå ñîñòîèò â èñïîëüçîâàíèè îáúåêòíûõ âîçìîæíîñòåé Forms Builder,
ò.å. â ñîçäàíèè êëàññîâ ñâîéñòâ. Êëàññ ñâîéñòâ  ýòî íàáîð çíà÷åíèé ñâîéñòâ.  îòëè-
÷èå îò èìåíîâàííûõ âèçóàëüíûõ àòðèáóòîâ, ñ åãî ïîìîùüþ ìîæíî îïðåäåëÿòü ëþáîå
ñâîéñòâî. Êîãäà âû ïðèìåíÿåòå êëàññ ñâîéñòâ ê îáúåêòó, ïîñëåäíèé ïîëó÷àåò òîëüêî
òå ñâîéñòâà, êîòîðûå èñïîëüçóþòñÿ â íåì. Íàïðèìåð, äëÿ òåêñòîâîé ìåòêè îòñóòñòâóåò
ñâîéñòâî Prompt, ïîýòîìó çíà÷åíèå ýòîãî ñâîéñòâà, çàäàííîå â êëàññå ñâîéñòâ, áóäåò
èãíîðèðîâàòüñÿ.
Íà ïåðâûõ ýòàïàõ ðàáîòû âàì ìîæåò áûòü íåïîíÿòíî, ÷åì æå êëàññû ñâîéñòâ
îòëè÷àþòñÿ îò èìåíîâàííûõ âèçóàëüíûõ àòðèáóòîâ è êàêîå èç ýòèõ ñðåäñòâ ëó÷øå
èñïîëüçîâàòü. Îñíîâíîå îòëè÷èå ñîñòîèò â òîì, ÷òî èìåíîâàííûå âèçóàëüíûå àò-
ðèáóòû âîçäåéñòâóþò òîëüêî íà îãðàíè÷åííûé íàáîð ñâîéñòâ, à ñ ïîìîùüþ êëàññà
ñâîéñòâ ìîæíî óñòàíîâèòü ëþáîå ñâîéñòâî. Ñóùåñòâóåò åùå îäíî, áîëåå òîíêîå îò-
CD80 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

èñ. 11.2. Äîáàâëåíèå ñâîéñòâà ê êëàññó

ëè÷èå: èìåíîâàííûé âèçóàëüíûé àòðèáóò ìîæíî ìîäèèöèðîâàòü èç ïðîãðàììû. Ýòî


ïîçâîëÿåò äèíàìè÷åñêè èçìåíÿòü âíåøíèé âèä ýëåìåíòîâ. Äàííàÿ îñîáåííîñòü, ïî-
âèäèìîìó,  åäèíñòâåííûé àðãóìåíò â ïîëüçó ïðèìåíåíèÿ èìåíîâàííûõ âèçóàëüíûõ
àòðèáóòîâ âìåñòî êëàññîâ ñâîéñòâ.  ðàáîòå òàêæå íåîáõîäèìî ó÷èòûâàòü, ÷òî åñëè
âû ñâÿæåòå ñ îäíèì è òåì æå îáúåêòîì è èìåíîâàííûé âèçóàëüíûé àòðèáóò, è êëàññ
ñâîéñòâ, òî ïðåèìóùåñòâî áóäåò èìåòü èìåíîâàííûé âèçóàëüíûé àòðèáóò.
Äëÿ ñîçäàíèÿ èìåíîâàííûõ âèçóàëüíûõ àòðèáóòîâ è êëàññîâ ñâîéñòâ èñïîëüçóåòñÿ
îäíà è òà æå ïðîöåäóðà, íî ïîñêîëüêó êëàññ ñâîéñòâ îáåñïå÷èâàåò áîëüøóþ ãèáêîñòü,
òî èìåííî åãî ìû è ñîçäàäèì ñåé÷àñ. Íà÷íåì ñ êëàññà ñâîéñòâ äëÿ òåêñòîâûõ ïîëåé.

1. Â îáúåêòîì íàâèãàòîðå âûáåðèòå óçåë Property Classes è ùåëêíèòå íà êíîïêå


Create , ÷òîáû ñîçäàòü íîâûé êëàññ. Íàçîâèòå åãî ls_Textbox.
2. Äîáàâèòü ê êëàññó íåñêîëüêî ñâîéñòâ íåñëîæíî. Äëÿ îáû÷íûõ ñèìâîëüíûõ äàí-
íûõ âàì íàäî ëèøü îïðåäåëèòü ïðàâèëà âûâîäà ïîÿñíèòåëüíîãî òåêñòà. Îòêðîéòå
äëÿ íîâîãî êëàññà ïàëèòðó ñâîéñòâ. Ùåëêíèòå íà êíîïêå Add Property ïàíåëè èí-
ñòðóìåíòîâ, ÷òîáû îòêðûòü îêíî âûáîðà ñâîéñòâ. Íàéäèòå ñâîéñòâî Property
Atta hment Offset è ùåëêíèòå íà êíîïêå OK, ÷òîáû ïðèíÿòü åãî. Íà ðèñ. 11.2
ïîêàçàíû îñíîâíûå îêíà, çàäåéñòâîâàííûå â ýòîì ïðîöåññå.
àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé, ðàáîòàþùèõ ñ áàçàìè äàííûõ CD81

3.  ïàëèòðå ñâîéñòâ óñòàíîâèòå äëÿ Prompt Atta hment Offset çíà÷åíèå 7 è çà-
êðîéòå îêíî Property Palette.
Åñëè âàì íàäî óñòàíîâèòü íåñêîëüêî ñâîéñòâ, ïðîùå ñíà÷àëà ñîçäàòü ýëåìåíò-
îáðàçåö, ïðèñâîèòü åìó âñå ñâîéñòâà îáû÷íûì ñïîñîáîì, à ïîòîì ñêîïèðîâàòü
çíà÷åíèÿ â êëàññ ñâîéñòâ. Òàê, íàïðèìåð, îòîáðàæåíèå äåíåæíûõ åäèíèö ïðåäïî-
ëàãàåò èñïîëüçîâàíèå íåñêîëüêèõ ñâîéñòâ.
4. Ñîçäàéòå êëàññ ñâîéñòâ è íàçîâèòå åãî ls_Curren y.
5. Â îêíå êîìïîíîâêè îðì ùåëêíèòå íà êíîïêå Text Item è äîáàâüòå ê îðìå
òåêñòîâîå ïîëå.
6. Îòêðîéòå äëÿ äàííîãî ýëåìåíòà Property Palette è çàäàéòå ñëåäóþùèå ñâîéñòâà,
îïðåäåëÿþùèå îòîáðàæåíèå äåíåæíûõ åäèíèö: Justifi ation = Right, Da-
ta Type = Money è Format Mask = FML9G999G999G999D00. Òåïåðü íàäî çà-
ïóñòèòü îðìó è ïðîâåðèòü ñâîéñòâà.
7. Ñêîïèðóéòå èçìåíåííûå çíà÷åíèÿ ñâîéñòâ â íîâûé êëàññ ñâîéñòâ. Óäåðæèâàÿ íà-
æàòîé êëàâèøó <Ctrl>, âûáåðèòå êàæäîå èç òðåõ èçìåíåííûõ ñâîéñòâ (Justifi-
ation, Data Type è Format Mask). Ùåëêíèòå íà êíîïêå Copy Properties ,
ðàñïîëîæåííîé íà ïàíåëè èíñòðóìåíòîâ ïàëèòðû. Ïåðåéäèòå ê êëàññó ñâîéñòâ
ls_Curren y, ùåëêíóâ íà ñîîòâåòñòâóþùåì ïóíêòå îáúåêòíîãî íàâèãàòîðà. Îê-
íî Property Palette äîëæíî îñòàâàòüñÿ îòêðûòûì, íî åñëè âû çàêðûëè åãî
ðàíåå, îòêðîéòå ñíîâà. Ùåëêíèòå íà êíîïêå Paste Properties , è òðè âûáðàííûõ
ñâîéñòâà áóäóò âêëþ÷åíû â êëàññ.
9. Òåïåðü ïðèñòóïàåì ê ñàìîìó òðóäíîìó. Îòêðîéòå ñâîéñòâî Sub lass In-
formation. Âûáåðèòå Property Class è â êà÷åñòâå èìåíè êëàññà çàäàéòå
CLS_TEXTBOX. Ýòî îçíà÷àåò, ÷òî íîâûé êëàññ ñâîéñòâ óíàñëåäóåò îò ls_Textbox
ñâîéñòâî, óïðàâëÿþùåå ñäâèãîì ïîÿñíèòåëüíîé íàäïèñè. Òåïåðü, åñëè âû çàõîòèòå
èçìåíèòü âåëè÷èíó ñäâèãà, ýòî ïðèäåòñÿ ñäåëàòü òîëüêî â îäíîì ìåñòå.
9. Óäàëèòå òåêñòîâîå ïîëå, êîòîðîå ïðåäíàçíà÷àëîñü äëÿ âðåìåííîãî èñïîëüçîâàíèÿ,
è ñîõðàíèòå îðìó.

Òàêèì æå îáðàçîì ñîçäàþòñÿ èìåíîâàííûå âèçóàëüíûå àòðèáóòû.

1. Â îáúåêòíîì íàâèãàòîðå ñîçäàéòå ïóíêò, ñîîòâåòñòâóþùèé óçëó Visual At-


tributes. Íàçîâèòå åãî vis_att_Blue.
2. Îòêðîéòå îêíî Property Palette äëÿ óñòàíîâêè îñíîâíûõ âèçóàëüíûõ ñâîéñòâ. Çà-
äàéòå Foreground Color = Blue è Font Weight = Demibold.

Ïîñëå ñîçäàíèÿ âèçóàëüíûõ àòðèáóòîâ èõ ìîæíî ñâÿçàòü ñ îáúåêòîì îðìû, óñòà-


íîâèâ åãî ñâîéñòâî Visual Attribute Property. Åñëè âû îáðàòèòå âíèìàíèå íà
ñïèñîê ñâîéñòâ äëÿ êîíêðåòíîãî ýëåìåíòà, òî óâèäèòå, ÷òî âû ìîæåòå çàäàòü äðóãóþ
CD82 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ãðóïïó: ïîÿñíèòåëüíóþ íàäïèñü, îêíî ïîäñêàçêè è òåêóùóþ çàïèñü. Òåêóùàÿ ãðóïïà


àòðèáóòîâ èñïîëüçóåòñÿ äëÿ âûäåëåíèÿ âûáðàííîé ñòðîêè äàííûõ â òàáëèöå.

Ïðèìåíåíèå øàáëîíîâ îðì è ñâîéñòâ

Øàáëîí, ñîçäàííûé âàìè, â ñî÷åòàíèè ñ ãðóïïàìè âèçóàëüíûõ àòðèáóòîâ è êëàññàìè


ñâîéñòâ ìîæíî èñïîëüçîâàòü äëÿ ðàçðàáîòêè íîâûõ îðì. Äëÿ òîãî ÷òîáû óâèäåòü
ýåêò îò ïðèìåíåíèÿ øàáëîíà, âàì íàäî ïîâòîðíî ñîçäàòü îäíó èç ñóùåñòâóþùèõ
îðì, íàïðèìåð Conta tReason. Ýòî îáû÷íàÿ òàáëè÷íàÿ îðìà, êîòîðàÿ âðåìÿ îò
âðåìåíè îáíîâëÿåòñÿ. Îíà î÷åíü ïðîñòà â ðàçðàáîòêå, è âû ìîæåòå ñðàâíèòü åå ñ òåìè
âàðèàíòàìè, êîòîðûå áûëè ñîçäàíû âàìè ðàíåå.

1. Óäàëèòå âñå ýëåìåíòû èç Forms Builder èëè ïåðåçàïóñòèòå ýòó ïðîãðàììó.


2. Âûáåðèòå ïóíêò ìåíþ File⇒New⇒Form Using Template. Âàì áóäåò ïðåäëîæåíî
íàéòè àéë øàáëîíà. Âûáåðèòå àéë Redwood_Template.fmb è ùåëêíèòå íà
êíîïêå Open. Îáðàòèâøèñü ê îáúåêòíîìó íàâèãàòîðó, âû óâèäèòå, ÷òî íîâàÿ îð-
ìà ñîçäàåòñÿ íà îñíîâå øàáëîíà, êîòîðûé âû ðàçðàáîòàëè ðàíåå. Èçìåíèòå èìÿ
îðìû íà Conta tReasonT. Âûçîâèòå ìàñòåð áëîêà äàííûõ è ñîçäàéòå ýëåìåíòû
îðìû. Âûáåðèòå òàáëèöó Conta tReason è äîáàâüòå îáà åå ñòîëáöà. Íå ïûòàé-
òåñü ñîçäàòü çàâèñèìîñòè ìåæäó ñóùåñòâóþùèìè áëîêàìè äàííûõ, ïîñêîëüêó îíè
ñîäåðæàò îòäåëüíûå ýëåìåíòû øàáëîíà.
3. Â îêíå ìàñòåðà êîìïîíîâêè ïîìåñòèòå îáà ñòîëáöà íà Template_Canvas. Óáåäè-
òåñü, ÷òî âûáðàíà òàáëè÷íàÿ îðìà ñ äåñÿòüþ îòîáðàæàåìûìè çàïèñÿìè.
4. Ïî çàâåðøåíèè ðàáîòû ìàñòåðà âû, íàâåðíîå, çàõîòèòå ïåðåìåñòèòü íîâûé ðåéì
â òåëî îðìû. Íîâûå ýëåìåíòû öåëåñîîáðàçíî ïîìåñòèòü â ñàìîì íèçó îð-
ìû. Óñòàíîâèòå ðàçìåð õîëñòà òàê, ÷òîáû îí äîñòèãàë íèæíåé ÷àñòè ïîëÿ
txt_Message. Ùåëêíèòå íà çàãîëîâêå îðìû è èçìåíèòå åãî íà Conta t Reason.
5. Â îáúåêòíîì íàâèãàòîðå íàéäèòå íîâûé áëîê äàííûõ Conta tReason. Åñëè íåîá-
õîäèìî, ïåðåòàùèòå åãî è ðàñïîëîæèòå íàä Template_Blo k. Óáåäèòåñü, ÷òî áëîê
äàííûõ Conta tReason  ïåðâûé ïðè îòêðûòèè îðìû è ÷òî êíîïêè çàïðîñà ðà-
áîòàþò òàê, êàê ñëåäóåò.
6. Îòêðîéòå ïàëèòðó ñâîéñòâ äëÿ áëîêà äàííûõ Conta tReason. Äëÿ ñâîéñòâà Cur-
rent Re ord Visual Attribute Group óñòàíîâèòå çíà÷åíèå vis_att_Blue.
7. Ñîçäàéòå íîâûé îáðàáîò÷èê ñîáûòèÿ When-New-Form-Instan e îðìû è ââåäè-
òå â íåì âûðàæåíèå EXECUTE_QUERY;.  ðåçóëüòàòå îðìà áóäåò àâòîìàòè÷åñêè
çàãðóæàòü äàííûå. Ñîõðàíèòå îðìó â àéëå Conta tReasonT.fmb. Ñêîìïèëè-
ðóéòå êîä è çàïóñòèòå îðìó äëÿ ïðîâåðêè.

Íà ðèñ. 11.3 ïîêàçàíà íîâàÿ îðìà. Çàìåòüòå, ÷òî åå àðõèòåêòóðà è öâåò ñîîòâåò-
ñòâóþò øàáëîíó.  ÷àñòíîñòè, âûáðàííàÿ ñòðîêà âûäåëÿåòñÿ ñèíèì öâåòîì è ïîëó-
àçðàáîòêà è èíòåãðàöèÿ ïðèëîæåíèé, ðàáîòàþùèõ ñ áàçàìè äàííûõ CD83

èñ. 11.3. Íîâàÿ îðìà ñîäåðæèò ýëåìåíòû è ñòèëè èç øàáëîíà

æèðíûì øðèòîì. Âîçìîæíî, âàì íå ïîòðåáóåòñÿ ïîëóæèðíûé øðèò, íî æåëàòåëü-


íî âûäåëÿòü ñòðîêó öâåòîì, ÷òîáû ïîëüçîâàòåëü, êîòîðûé ñîáèðàåòñÿ óäàëèòü çàïèñü,
âèäåë, êàêèå äàííûå áóäóò óäàëåíû.
Åñòü ñïîñîá ïðèìåíèòü øàáëîí ê ñóùåñòâóþùåé îðìå, íî ñäåëàòü ýòî äîñòàòî÷-
íî òðóäíî. Åñëè îðìà íå î÷åíü ñëîæíàÿ, ïðîùå ñîçäàòü åå ñ íóëÿ. Îäíàêî â íåêîòî-
ðûõ ñëó÷àÿõ ïåðåñòðîéêè îðìû ïî øàáëîíó íåëüçÿ èçáåæàòü, ïîýòîìó íåîáõîäèìî
ïðåäñòàâëÿòü ñåáå îñíîâíûå ýòàïû ðàáîòû.  êà÷åñòâå ïðèìåðà èçìåíèì îñíîâíóþ
è ïîä÷èíåííóþ îðìó AgentConta t. Ìû ñîçäàäèì ïóñòóþ îðìó íà áàçå øàáëîíà
è ñêîïèðóåì â íåå âñå ýëåìåíòû èç îðìû AgentConta t.

1. Óäàëèòå âñå ýëåìåíòû èç Forms Builder èëè ïåðåçàïóñòèòå äàííóþ ïðîãðàììó.


Àêòèâèçèðóéòå ïóíêò ìåíþ File⇒New⇒Form Using Template è âûáåðèòå îðìó
Redwood_Template.fmb.
2. Îòêðîéòå ñóùåñòâóþùóþ îðìó AgentConta t; äåéñòâèÿ ñ íåé è íîâîé îðìîé
áóäóò âûïîëíÿòüñÿ ïîñðåäñòâîì îáúåêòíîãî íàâèãàòîðà.
CD84 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

3. Èñïîëüçóÿ îáúåêòíûé íàâèãàòîð, ðàçâåðíèòå óçëû Canvas è Graphi s äëÿ îðìû


AgentConta t. Ñêîïèðóéòå ïóíêòû Frame5 è Frame8, ïåðåòàùèâ èõ íà óçåë
Canvas/Graphi s íîâîé îðìû.
4. Ñêîïèðóéòå äâà áëîêà äàííûõ (Agents è CustAgentList), ïåðåòàùèâ èõ èç îð-
ìû AgentConta ts â íîâûé ìîäóëü.
5. Ñäåëàéòå òî æå ñàìîå äëÿ êîïèðîâàíèÿ â íîâóþ îðìó òðåõ ïðîãðàììíûõ ìîäóëåé.
6. Ñêîïèðóéòå îáðàáîò÷èê ñîáûòèÿ On-Clear-Details â íîâóþ îðìó. Ïðè ðàáî-
òå ñ áîëåå ñëîæíûìè îðìàìè âàì òàêæå ïðèäåòñÿ ñêîïèðîâàòü LOV è ãðóïïû
çàïèñåé.
7. Íà íîâîì õîëñòå Template_Canvas ðàçâåðíèòå áëîê äàííûõ Agents è âûáåðè-
òå âñå åãî ýëåìåíòû. Îòêðîéòå Property Palette è óñòàíîâèòå ñâîéñòâî Canvas
äëÿ âñåõ ïÿòè ýëåìåíòîâ Template_Canvas. Ñäåëàéòå òî æå ñàìîå äëÿ äåâÿòè
ýëåìåíòîâ â áëîêå äàííûõ CustAgentList.
8. Â áëîêàõ äàííûõ Agents è CustAgentList óñòàíîâèòå äëÿ S roll Bar Canvas
çíà÷åíèå Template_Canvas. Òåïåðü âû ñìîæåòå îòîáðàçèòü íîâûé õîëñò.
9. Äëÿ óñòàíîâêè íîâûõ ñòèëåé âûáåðèòå âñå òåêñòîâûå ïîëÿ âî ðåéìå Agents
è ñ ïîìîùüþ ïàëèòðû ñâîéñòâ óñòàíîâèòå äëÿ Sub lass Information çíà÷åíèå
ls_Textbox.
10. Âûáåðèòå â áëîêå äàííûõ CustAgentList ýëåìåíò BidPri e è óñòàíîâèòå äëÿ
Sub lass Information çíà÷åíèå ls_Curren y. Êðîìå òîãî, óáåäèòåñü, ÷òî
çíà÷åíèå Maximum Length íå ìåíåå 15.
11. Îòêðîéòå ñâîéñòâà áëîêà äàííûõ CustAgentList è óñòàíîâèòå äëÿ Current
Re ord Visual Attribute Group çíà÷åíèå vis_att_Blue.
12. Óäàëèòå èç îáúåêòíîãî íàâèãàòîðà ñòàðûé ìîäóëü AgentConta t. Èçìåíèòå çàãî-
ëîâîê îðìû, çàòåì çàïóñòèòå îðìó íà âûïîëíåíèå äëÿ ïðîâåðêè. Ïðè íåîáõîäè-
ìîñòè óòî÷íèòå ðàñïîëîæåíèå ýëåìåíòîâ. Ñîõðàíèòå îðìó ïîä èìåíåì Agent-
Conta tT.

Êàê ìîæíî çàìåòèòü íà ðèñ. 11.4, øàáëîí îáåñïå÷èâàåò ñòàíäàðòíûé âíåøíèé âèä
âíîâü ñîçäàâàåìûõ îðì. Íàâåðíîå, ïîñëåäîâàòåëüíîñòü äåéñòâèé, êîòîðóþ òîëüêî
÷òî ïðèøëîñü âûïîëíèòü, ïîêàçàëàñü âàì ðóòèííîé, ïðè÷åì äåéñòâîâàòü íàäî áûëî
âíèìàòåëüíî, ÷òîáû íå äîïóñòèòü îøèáêó. Äàííûé ïðèìåð ðàññìàòðèâàëñÿ ñ îäíîé
öåëüþ  ïîêàçàòü âàì, ÷òî øàáëîí ìîæíî ïðèìåíèòü è ê ñóùåñòâóþùåé îðìå.
Îäíàêî ïî÷òè âñåãäà ïðîùå ñíà÷àëà ñîçäàòü øàáëîí, à çàòåì èñïîëüçîâàòü åãî ïðè
ðàáîòå íàä îðìîé.
Çàìåòüòå òàêæå, ÷òî åñëè âû èçìåíèòå øàáëîí âïîñëåäñòâèè, ýòè èçìåíåíèÿ íå
îòðàçÿòñÿ íà ñóùåñòâóþùèõ îðìàõ. Äàæå åñëè âû ìîäèèöèðóåòå êëàññ ñâîéñòâ èëè
ãðóïïó âèçóàëüíûõ àòðèáóòîâ, âàì ïðèäåòñÿ ïîâòîðèòü âñå èçìåíåíèÿ â îðìàõ. Êàê
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD85

èñ. 11.4. åçóëüòàò ïðèìåíåíèÿ øàáëîíà ê îðìå AgentConta t

âû, íàâåðíîå, ïîìíèòå, øàáëîíû äëÿ îò÷åòîâ îáåñïå÷èâàþò çíà÷èòåëüíî áîëüøóþ


ãèáêîñòü.  ëþáîì ñëó÷àå, ïåðåä òåì, êàê íà÷èíàòü ðàáîòó íàä îðìîé è îò÷åòîì,
íàäî áûòü ïîëíîñòüþ óâåðåííûì â èñïîëüçóåìîì øàáëîíå.

. Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå

Ïðàêòè÷åñêè ëþáîé ïîëüçîâàòåëü, ðàáîòàÿ ñ ïðèëîæåíèåì, âèäèò òîëüêî åãî. Îí íè-


êîãäà íå îáðàùàåòñÿ ê áàçå äàííûõ, ñîñòàâëÿþùåé îñíîâó ïðèëîæåíèÿ. Íà åãî êîì-
ïüþòåðå íå óñòàíîâëåí Forms Builder èëè Reports Builder. Áîëüøèíñòâî ïîëüçîâàòåëåé
âçàèìîäåéñòâóþò ñ âàøèì ïðèëîæåíèåì ïîñðåäñòâîì Web-áðàóçåðà. Â áîëüøèíñòâå
ñëó÷àåâ äëÿ ïðèëîæåíèÿ ïðèõîäèòñÿ ñîçäàâàòü äîïîëíèòåëüíûå îðìû, êîòîðûå îáåñ-
ïå÷èâàþò íàâèãàöèþ ïîëüçîâàòåëÿ â ïðåäåëàõ ïðèëîæåíèÿ. Ñàìàÿ âàæíàÿ èç íèõ 
èñõîäíàÿ îðìà. Ïîëüçîâàòåëü íà÷èíàåò ðàáîòó ñ ïðîñòîé îðìû, êîòîðàÿ äàåò ñàìûå
îáùèå ñâåäåíèÿ î ïðèëîæåíèè.
CD86 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Äëÿ îáúåäèíåíèÿ îðì èñïîëüçóþòñÿ êíîïêè. Ïîëüçîâàòåëü ùåëêàåò íà òîé èëè


èíîé êíîïêå, ÷òîáû îòêðûòü òðåáóåìóþ îðìó èëè îò÷åò. Âî ìíîãèõ ñëó÷àÿõ çàäà÷à
äåéñòâèòåëüíî ñâîäèòñÿ ê îòêðûòèþ îðìû è îòîáðàæåíèþ èíîðìàöèè. Èíîãäà
ïðèõîäèòñÿ ñîêðàùàòü íàáîð äàííûõ, îòîáðàæàåìûõ ïîñðåäñòâîì îðìû èëè îò÷åòà.
Ïðåäïîëîæèì, íàïðèìåð, ÷òî ïîëüçîâàòåëü ùåëêíóë íà êíîïêå, êîòîðàÿ îòêðûâàåò
îðìó äëÿ ðàáîòû ñî ñâîéñòâàìè. Ñëåäóåò ëè ïðåäîñòàâèòü ïîëüçîâàòåëþ ïîëíûé
íàáîð ñâîéñòâ èëè îãðàíè÷èòüñÿ òåìè, êîòîðûå èìåþò íåïîñðåäñòâåííîå îòíîøåíèå
ê òåêóùåé îðìå? Ýòî âîïðîñû íàâèãàöèè, êîòîðûå íåèçáåæíî ïðèõîäèòñÿ ðåøàòü
ïðè ñîçäàíèè ïðèëîæåíèÿ. Âàì íàäî â òî÷íîñòè çíàòü, êàêèå äàííûå õîòÿò óâèäåòü
ïîëüçîâàòåëè è êàê îíè ñîáèðàþòñÿ ðàáîòàòü ñ ïðèëîæåíèåì.
 ðÿäå ñëó÷àåâ áóäåò ïîëåçåí ýñêèç, ïîÿñíÿþùèé èñïîëüçîâàíèå ïðèëîæåíèÿ.
 íåì âû ìîæåòå ïðèáëèçèòåëüíî íàìåòèòü, êàê áóäóò ñîåäèíÿòüñÿ îðìû è ÷òî ñëå-
äóåò äåëàòü, åñëè ïîëüçîâàòåëü çàõî÷åò ïðîñìîòðåòü îò÷åò èëè âûâåñòè åãî íà ïå÷àòü.
Âåðíèòåñü ê òàáëèöàì 11.1 è 11.2 è åùå ðàç ïðîñìîòðèòå ñïèñêè îðì è îò÷åòîâ, äî-
ñòóïíûõ ïîëüçîâàòåëÿì èç Redwood Realty.  íèõ îòðàæåíû ðîëè è çàäà÷è ñîòðóäíè-
êîâ êîìïàíèè. Áîëüøèíñòâî çàäà÷ ìîæíî ðàçäåëèòü íà äâå ãðóïïû: ðàáîòà ñ àãåíòàìè
è ðàáîòà ñ ìåíåäæåðàìè. Àãåíòàì íàäî âèäåòü è îáíîâëÿòü ñïèñêè îáúåêòîâ è èí-
îðìàöèþ î êîíòàêòàõ, èì òàêæå íóæíû ñðåäñòâà ïîèñêà. àññìàòðèâàÿ ïðèìåð, ìû
îãðàíè÷èìñÿ îäíîé ïîèñêîâîé îðìîé. Ìåíåäæåðàì íóæåí äîñòóï ê òåì æå îðìàì
è îò÷åòàì, ïîñêîëüêó îíè ðàáîòàþò è êàê àãåíòû. Êðîìå òîãî, èì íàäî âèäåòü îò÷åòû,
â êîòîðûõ îòðàæàþòñÿ ïðîäàæè ïî êàæäîìó àãåíòó. È íàêîíåö, íåêîòîðûå îðìû,
íàïðèìåð Conta t Reason è Li ense Status, èñïîëüçóþòñÿ ðåäêî, íî îíè íóæíû
ìåíåäæåðàì è àäìèíèñòðàòîðàì â òîì ñëó÷àå, êîãäà òðåáóåòñÿ èçìåíèòü äàííûå.
 ïðèëîæåíèè äëÿ êîìïàíèè Redwood âàì ñëåäóåò ïðåäóñìîòðåòü òðè îòäåëüíûå
òî÷êè âõîäà  ïî îäíîé äëÿ êàæäîé èç îñíîâíûõ çàäà÷. Îäíàêî îáåñïå÷èòü ïîääåðæêó
ïîëüçîâàòåëåé ïðîùå â òîì ñëó÷àå, åñëè â ïðèëîæåíèè åñòü òîëüêî îäíà òî÷êà âõîäà.
Òîãäà âñå ïîëüçîâàòåëè â íà÷àëå ðàáîòû ñ ïðèëîæåíèåì ïðîõîäÿò îäíó è òó æå ïðîöå-
äóðó.  íåêîòîðûõ ñëó÷àÿõ äëÿ àäìèíèñòðèðîâàíèÿ ïðèëîæåíèÿ ïðåäóñìàòðèâàåòñÿ
îòäåëüíàÿ èñõîäíàÿ îðìà, íî òàêîé ïîäõîä íåëüçÿ ðàññìàòðèâàòü êàê íåïðåëîæíîå
ïðàâèëî. Êîíêðåòíîå ðåøåíèå ïðèíèìàåò ðàçðàáîò÷èê. Íà ðèñ. 11.5 ïîêàçàíû îðìû
è îò÷åòû, îáúåäèíåííûå â äâå ãðóïïû. Ê îäíîé îòíîñÿòñÿ îðìû îáùåãî íàçíà÷åíèÿ,
òðåáóþùèåñÿ äëÿ ïîääåðæêè ñâåäåíèé îá îáúåêòàõ è ïîòðåáèòåëÿõ, à ê äðóãîé 
îðìû è îò÷åòû, íåîáõîäèìûå äëÿ àäìèíèñòðèðîâàíèÿ Åñëè âû çàõîòèòå ïîìåñòèòü
â èñõîäíóþ îðìó êíîïêè, ïðåäíàçíà÷åííûå äëÿ âûçîâà âñåõ îðì, ïîêàçàííûõ íà
ðèñóíêå, èìåéòå â âèäó, ÷òî íå ñëåäóåò ïðåäëàãàòü ïîëüçîâàòåëþ áîëüøå äåñÿòè âà-
ðèàíòîâ âûáîðà.  ïðîòèâíîì ñëó÷àå îðìà áóäåò ïåðåãðóæåíà èíîðìàöèåé. Òàêèì
îáðàçîì, ÷àñòî ïðèõîäèòñÿ ñîçäàâàòü âòîðóþ îðìó è ïîìåùàòü â íåå ññûëêè íà
îáúåêòû, ñïåöèè÷åñêèå äëÿ çàäà÷ óïðàâëåíèÿ.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD87

Startup

Агенты и менеджеры Менеджеры

Contact
Search Agents
Reason

Agent License
Properties Listings
Contacts Status

Listing Agent Sale


Customers
Activity Listings Status

Sales By Sales By
Agent Listings Customer
City Month
Sales And Offers List
And Agent And Agent

èñ. 11.5. Ôîðìû è îò÷åòû, èñïîëüçóåìûå àãåíòàìè è ìåíåäæåðàìè

Èñõîäíàÿ îðìà

Áîëüøèíñòâî ñîâðåìåííûõ ïðèëîæåíèé èñïîëüçóþò â êà÷åñòâå òî÷êè âõîäà ñïåöè-


àëüíóþ èñõîäíóþ îðìó. Èñõîäíàÿ îðìà  ýòî îñíîâíîé ýëåìåíò, îáåñïå÷èâàþùèé
íàâèãàöèþ ïîëüçîâàòåëåé. Îáû÷íî îíà ñîäåðæèò êíîïêè, íàïðàâëÿþùèå ïîëüçîâàòå-
ëåé ê äðóãèì îðìàì è îò÷åòàì.  íåêîòîðûõ ñëó÷àÿõ èñõîäíàÿ îðìà íàñòðàèâàåòñÿ
äëÿ ðàçëè÷íûõ êàòåãîðèé ïîëüçîâàòåëåé. ×àñòî â ýòîé îðìå ïðèñóòñòâóåò ëîãîòèï
èëè äðóãîå ãðàè÷åñêîå èçîáðàæåíèå, ïðèçâàííîå îæèâèòü ïðåäñòàâëÿåìûå äàí-
íûå. Äëÿ òîãî ÷òîáû óäà÷íî ðàçðàáîòàòü èñõîäíóþ îðìó, íàäî çíàòü, êàêèå ýëåìåíòû
íàèáîëåå âàæíû äëÿ ïîëüçîâàòåëåé.
Ñîçäàòü èñõîäíóþ îðìó íå î÷åíü ñëîæíî. Íàäî íà÷àòü ñ ïóñòîé îðìû è äîáàâèòü
â íåå ëîãîòèï, çàãîëîâîê è êíîïêè äëÿ ïåðåõîäà ê äðóãèì îðìàì è îò÷åòàì. Ñâÿçè
ñ äðóãèìè îðìàìè ñîçäàþòñÿ äîñòàòî÷íî ïðîñòî, ïîýòîìó ìû â ïåðâóþ î÷åðåäü
ðåøèì èìåííî ýòó çàäà÷ó.

1. Óäàëèòå âñå ýëåìåíòû èç Forms Builder èëè ïåðåçàïóñòèòå ýòó ïðîãðàììó. Íà÷íèòå
ðàáîòó ñ íîâûì ìîäóëåì. Ïðèñâîéòå åìó èìÿ Startup.
2. Äîáàâüòå âðó÷íóþ õîëñò (Main_ anvas) è áëîê äàííûõ (Main_datablo k). Ïåðå-
èìåíóéòå Window1 â Startup è óñòàíîâèòå äëÿ ñâîéñòâà Title çíà÷åíèå Redwood
Realty.
CD88 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

3. Îòêðîéòå õîëñò â ðåäàêòîðå êîìïîíîâêè, çàäàéòå áåëûé öâåò îíà, äîáàâüòå ëî-
ãîòèï Redwood (Edit⇒Import⇒Image) è ïîìåñòèòå çàãîëîâîê (Redwood Realty
Information System) â âåðõíþþ ÷àñòü ýêðàíà.
4. Äîáàâüòå ê îðìå êíîïêó è óñòàíîâèòå äëÿ íåå ñëåäóþùèå ñâîéñòâà: Name =
btn_Listings, Label = Listings è A ess Key = L. Äîáàâüòå àíàëîãè÷íûå
êíîïêè äëÿ Properties, Customers, Agent Conta ts, Listing A tivity è
Agent Listings. Óñòàíîâèòå äëÿ âñåõ êíîïîê îäèíàêîâûå ðàçìåðû. Âûðîâíÿéòå
èõ. Óáåäèòåñü, ÷òî äëÿ êíîïîê çàäàíû ðàçíûå êîìáèíàöèè êëàâèø, ÷òîáû ïîëüçî-
âàòåëü ìîã âûïîëíèòü íóæíûå äåéñòâèÿ ñ ïîìîùüþ êëàâèàòóðû.
5. Äîáàâüòå â ñåðåäèíå îðìû êíîïêó Sear h, à â âåðõíåì ïðàâîì óãëó  êíîïêó Exit.
Äëÿ êíîïêè Sear h óñòàíîâèòå ñâîéñòâî Default Button = Yes, ÷òîáû êíîïêà
âûáèðàëàñü àâòîìàòè÷åñêè. Ñîõðàíèòå îðìó (Startup.fmb) è çàïóñòèòå åå, ÷òî-
áû îöåíèòü ðàçìåðû è ðàñïîëîæåíèå êíîïîê. Íà ðèñ. 11.6 ïîêàçàí âíåøíèé âèä
èñõîäíîé îðìû. Âû ìîæåòå âûáðàòü äðóãîå ðàñïîëîæåíèå ýëåìåíòîâ èëè äðóãîå
ñî÷åòàíèå öâåòîâ, íî íàáîð êíîïîê äîëæåí áûòü òàêèì æå.
6. Òåïåðü âàì íåîáõîäèì êîä, îáåñïå÷èâàþùèé óíêöèîíèðîâàíèå êíîïîê. Êàê çà-
ñòàâèòü ðàáîòàòü êíîïêó Exit, âû óæå çíàåòå. Íàäî ñîçäàòü îáðàáîò÷èê ñîáûòèÿ
When-Button-Pressed è âêëþ÷èòü â íåãî âûçîâ EXIT_FORM;.

Îòêðûòèå ñâÿçàííûõ îðì

Êîä, îòêðûâàþùèé îðìó, äîñòàòî÷íî ïðîñò, íî íåîáõîäèìî ñäåëàòü âûáîð èç äâóõ


âîçìîæíûõ ðåøåíèé. Âû ìîæåòå èñïîëüçîâàòü âûçîâ CALL_FORM èëè OPEN_FORM. Îáà
ýòèõ ïîäõîäà äàþò îäèíàêîâûå ðåçóëüòàòû, íî äîñòèãàþòñÿ îíè ïî-ðàçíîìó. Òàê, ïðè
âûçîâå OPEN_FORM çàäàåòñÿ ïàðàìåòð a tivate_mode, êîòîðûé ìîæíî èñïîëüçîâàòü
äëÿ òîãî, ÷òîáû ïðåäîòâðàòèòü ïåðåäà÷ó îêóñà ââîäà íîâîé îðìå. Âûçîâ CALL_FORM
ïðåäïîëàãàåò íàëè÷èå ïàðàìåòðà query_mode, óêàçûâàþùåãî íà òî, ÷òî äàííûå äîëæ-
íû âûâîäèòüñÿ íåïîñðåäñòâåííî è ïîëüçîâàòåëþ íå ïðåäîñòàâëÿåòñÿ âîçìîæíîñòü
ââåñòè çàïðîñ. Äåòàëüíóþ èíîðìàöèþ ìîæíî íàéòè â äîêóìåíòàöèè, ïðåäîñòàâ-
ëÿåìîé Ora le. Âûÿñíèòå, êàêîé ýåêò âàì íåîáõîäèìî ïîëó÷èòü, è âûçîâèòå ñî-
îòâåòñòâóþùóþ óíêöèþ.  áîëüøèíñòâå ñëó÷àåâ ðàçðàáîò÷èêè ïðèìåíÿþò óíê-
öèþ CALL_FORM. Äëÿ îòêðûòèÿ îðìû èñïîëüçóåòñÿ âûðàæåíèå CALL_FORM('form
name');.
Ñëåäóþùàÿ ïðîáëåìà èìååò îòíîøåíèå ê èìåíàì îðì. Ñèñòåìà Ora le äîëæíà
èìåòü ñâåäåíèÿ î ðàñïîëîæåíèè îðìû. Çàäàòü åãî ìîæíî äâóìÿ ñïîñîáàìè. Âî-
ïåðâûõ, ìîæíî îòðåäàêòèðîâàòü êîíèãóðàöèîííûé àéë ñåðâåðà è óêàçàòü Ora le
ïàïêó, èñïîëüçóåìóþ ïî óìîë÷àíèþ äëÿ îðì. Âî-âòîðûõ, ìîæíî óêàçàòü ïîëíûé
ïóòü ê àéëó. Çàïóñòèâ ñ ïîìîùüþ Forms Builder îðìó, ñîçäàííóþ â êà÷åñòâå ïðè-
ìåðà, îáðàòèòå âíèìàíèå íà URL â ñòðîêå àäðåñà áðàóçåðà. Âû óâèäèòå, ÷òî Ora le
èñïîëüçóåò ïîëíîå èìÿ äëÿ êàæäîãî àéëà.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD89

èñ. 11.6. Ïåðâîíà÷àëüíàÿ êîìïîíîâêà èñõîäíîé îðìû

Åñëè çàäàâàòü ïîëíîå èìÿ àéëà â îáðàáîò÷èêå êàæäîé êíîïêè, òî ìîæåò âîç-
íèêíóòü ñåðüåçíàÿ ïðîáëåìà. ×òî ïðîèçîéäåò, åñëè âàøå ïðèëîæåíèå ïðèäåòñÿ ïåðå-
íåñòè íà äðóãîé ñåðâåð èëè åñëè ñòðóêòóðà êàòàëîãîâ íà äèñêå èçìåíèòñÿ? Ñîòðóä-
íèê, çàíèìàþùèéñÿ ñîïðîâîæäåíèåì ïðîäóêòà, âûíóæäåí áóäåò íàéòè êàæäîå èìÿ
è ìîäèèöèðîâàòü åãî. Òàêèì îáðàçîì, ïðè äîñòàâêå ïðèëîæåíèÿ íà ñåðâåð ñàìûì
ëó÷øèì ðåøåíèåì áóäåò ìîäèèêàöèÿ êîíèãóðàöèîííîãî àéëà è óêàçàíèå ïàïîê,
èñïîëüçóåìûõ ïî óìîë÷àíèþ äëÿ õðàíåíèÿ îðì è îò÷åòîâ. Îäíàêî ïðè òåñòèðîâàíèè
ïðèëîæåíèÿ íà ëîêàëüíîé ìàøèíå òàêîé ïîäõîä íå âñåãäà âîçìîæíî ðåàëèçîâàòü.
Äëÿ îïèñàíèÿ ñèòóàöèè, ïðè êîòîðîé äàííûå âêëþ÷åíû â êîä ïðèëîæåíèÿ, ïðî-
ãðàììèñòû èñïîëüçóþò òåðìèí æåñòêîå êîäèðîâàíèå (hard- oded). Æåñòêî çàêîäè-
ðîâàííûå äàííûå ÷ðåçâû÷àéíî òðóäíî èçìåíèòü. Òàêèì îáðàçîì, âìåñòî òîãî, ÷òîáû
óêàçûâàòü ïóòü ê êàòàëîãó â êàæäîì îáðàáîò÷èêå ñîáûòèÿ, ëó÷øå ñîçäàòü ãëîáàëüíóþ
ïåðåìåííóþ, â êîòîðîé áóäåò õðàíèòüñÿ çíà÷åíèå ýòîãî ïóòè. Äàííàÿ ïåðåìåííàÿ áó-
äåò èñïîëüçîâàòüñÿ êàæäûì îáðàáîò÷èêîì. Ïðè ïåðåíîñå ïðèëîæåíèÿ íà äðóãóþ ìà-
øèíó äîñòàòî÷íî áóäåò èçìåíèòü çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé. Âîçìîæíî, èìååò
ñìûñë ïîäóìàòü î ñîçäàíèè òàáëèöû áàçû äàííûõ, â êîòîðîé õðàíèëèñü áû ïîäîáíûå
CD90 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ïàðàìåòðû. Òîãäà äëÿ ïåðåíîñà ïðèëîæåíèÿ äîñòàòî÷íî áóäåò îáíîâèòü íåñêîëüêî


ñòðîê òàáëèöû. Ïîñêîëüêó â áîëüøèíñòâå ñëó÷àåâ ðàçðàáîò÷èêè ïðèáåãàþò ê ìîäè-
èêàöèè êîíèãóðàöèîííûõ àéëîâ, ìû íå áóäåì ïîäðîáíî ðàññìàòðèâàòü âîïðîñû
õðàíåíèÿ ïóòè â áàçå, îäíàêî ïîëåçíî çíàòü î íàëè÷èè ïîäîáíîé âîçìîæíîñòè.

1. Ïîñêîëüêó ðàáîòà ñ ïðèëîæåíèåì âñåãäà íà÷èíàåòñÿ ñ èñõîäíîé îðìû, èìåííî


â íåé ëó÷øå âñåãî èíèöèàëèçèðîâàòü ñèñòåìíûå ïåðåìåííûå. Ñîçäàéòå â èñõîä-
íîé îðìå îáðàáîò÷èê ñîáûòèÿ When-New-Form-Instan e è âêëþ÷èòå â íåãî
ñëåäóþùèé êîä:
:GLOBAL.Appli ationPath := 'C:\MyFiles\Ch11\Forms And
Reports\RedwoodRealty\';
Óáåäèòåñü â òîì, ÷òî âû çàäàëè òî÷íûé ïóòü, îïðåäåëÿþùèé ðàñïîëîæåíèå îðì
è îò÷åòîâ. Íå çàáóäüòå òàêæå ââåñòè ïîñëåäíþþ îáðàòíóþ êîñóþ ÷åðòó. Òåïåðü
âû ãîòîâû ê íàïèñàíèþ êîäà îáðàáîò÷èêîâ äëÿ êíîïîê.
2. Îòêðîéòå Smart Trigger äëÿ ñîáûòèÿ When-Button-Pressed, ñâÿçàííîãî
ñ êíîïêîé Listings. Ââåäèòå ñëåäóþùèé êîä:
CALL_FORM(:GLOBAL.Appli ationPath | | 'Listings.fmx');

Îáðàòèòå âíèìàíèå íà èñïîëüçîâàíèå íîâîé ãëîáàëüíîé ïåðåìåííîé. Â äàííîì


ñëó÷àå èìÿ îðìû ïðèñîåäèíÿåòñÿ ê çíà÷åíèþ ïóòè, îðìèðóÿ èäåíòèèêàòîð
àéëà. Çàìåòüòå òàêæå, ÷òî èìÿ àéëà îêàí÷èâàåòñÿ ñèìâîëàìè .fmx. Forms
Builder ñîçäàåò ñêîìïèëèðîâàííóþ âåðñèþ îðìû, êîòîðàÿ îáåñïå÷èâàåò áîëåå
âûñîêóþ ïðîèçâîäèòåëüíîñòü ïî ñðàâíåíèþ ñ àéëîì .fmb, êðîìå òîãî, â ýòîì
ñëó÷àå ïîâûøàåòñÿ óðîâåíü áåçîïàñíîñòè ñèñòåìû.
3. Ñîçäàéòå àíàëîãè÷íûé êîä äëÿ îñòàëüíûõ êíîïîê, èìåþùèõñÿ â èñõîäíîé îðìå.
 êàæäîì ñëó÷àå ïðîâåðÿéòå, ïðàâèëüíî ëè çàäàíî èìÿ îðìû. Ñêîìïèëèðóéòå
âñå ìîäóëè, ÷òîáû âûÿâèòü ñèíòàêñè÷åñêèå îøèáêè.
4. Çàïóñòèòå îðìû è ïðîâåðüòå ðàáîòó êíîïîê. Óáåäèòåñü, ÷òî êàæäàÿ èç íèõ îò-
êðûâàåò èìåííî òó îðìó, êîòîðóþ íàäî.

Ñîâåò . Åñëè âû äîïóñòèëè îøèáêó ïðè ââîäå èìåíè îðìû, ñèñòåìà íå âûÿâèò
åå äî òåõ ïîð, ïîêà âû íå çàïóñòèòå îðìó è íå àêòèâèçèðóåòå êíîïêó. Ïîñëåäî-
âàòåëüíîñòè ñèìâîëîâ, ïîìåùåííûå â êàâû÷êè, ïðè êîìïèëÿöèè íå ïðîâåðÿþòñÿ.

Ïîðàáîòàâ íåêîòîðîå âðåìÿ ñ îðìàìè, âû çàìåòèòå, ÷òî èõ âíåøíèé âèä íå


ñîãëàñîâàí. Ýòî âïîëíå ïîíÿòíî  âåäü ïðè èõ ñîçäàíèè íå èñïîëüçîâàëñÿ îáùèé
øàáëîí. Îäíàêî ìèðèòüñÿ ñ ýòèì íåëüçÿ. Äàæå íåçíà÷èòåëüíûå îòëè÷èÿ öâåòà îíà
èëè îòñóòñòâèå êíîïêè Close áûñòðî óòîìëÿþò ïîëüçîâàòåëÿ. Íåîáõîäèìî âûäåëèòü
âðåìÿ íà ïðèâåäåíèå â ïîðÿäîê îðì, ïðèìåíèâ ê íèì îáùèé øàáëîí.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD91

Ñîçäàííàÿ îðìà äàåò îáùåå ïðåäñòàâëåíèå î ðàáîòå ïðèëîæåíèÿ. Ïðè íåîáõîäè-


ìîñòè âû ìîæåòå äîáàâèòü êíîïêè è â äðóãèå îðìû, îáåñïå÷èâàÿ ïåðåõîä ñ îäíîé
îðìû íà äðóãóþ, ìèíóÿ èñõîäíóþ. Òàê, íàïðèìåð, ìîæåò îêàçàòüñÿ öåëåñîîáðàçíûì
ïîìåñòèòü â îðìó Listings êíîïêó, ïðåäñòàâëÿþùóþ èíîðìàöèþ î ñîîòâåòñòâó-
þùèõ îáúåêòàõ.

1. Îòêðîéòå îðìó Listings è äîáàâüòå êíîïêó ñïðàâà îò PropertyID. Íàçîâèòå


åå btn_Property è ñîçäàéòå íà íåé íàäïèñü Property.
Ýòà êíîïêà áóäåò èñïîëüçîâàòüñÿ äëÿ îòêðûòèÿ îðìû Property, îäíàêî îíà ñó-
ùåñòâåííî îòëè÷àåòñÿ îò ñîîòâåòñòâóþùåé êíîïêè â ñîñòàâå èñõîäíîé îðìû.
Èç îðìû Listings íàäî îòêðûâàòü îðìó Property äëÿ êîíêðåòíîãî ñâîéñòâà,
îïðåäåëÿåìîãî çíà÷åíèåì PropertyID. Äðóãèìè ñëîâàìè, PropertyID íàäî ïåðå-
äàâàòü â êà÷åñòâå ïàðàìåòðà. Ora le ïðåäîñòàâëÿåò äâà ñïîñîáà ïåðåäà÷è èíîðìà-
öèè îðìå: èñïîëüçîâàíèå ñïèñêà ïàðàìåòðîâ óíêöèè CALL_FORM è ïðèñâîåíèå
òðåáóåìîãî çíà÷åíèÿ ãëîáàëüíîé ïåðåìåííîé. Èñïîëüçîâàíèå ãëîáàëüíîé ïåðå-
ìåííîé èìååò íåêîòîðûå ïðåèìóùåñòâà ïåðåä ïåðåäà÷åé ïàðàìåòðà. Ïðè íåîáõî-
äèìîñòè ãëîáàëüíîå çíà÷åíèå ìîæåò èñïîëüçîâàòüñÿ íåñêîëüêèìè îðìàìè, êðîìå
òîãî, åñòü âîçìîæíîñòü ñîñòàâèòü êîä òàê, ÷òî îðìà Properties ïî-ïðåæíåìó
áóäåò èñïîëüçîâàòüñÿ è íå òðåáîâàòü ïàðàìåòðà.
2. Îòêðîéòå îáðàáîò÷èê When-Button-Pressed äëÿ íîâîé êíîïêè. Äîáàâüòå êîä,
ïðèñâàèâàþùèé çíà÷åíèå ãëîáàëüíîé ïåðåìåííîé è îòêðûâàþùèé îðìó Prop-
erties.
:GLOBAL.PropertyID := :Listings.PropertyID;
CALL_FORM(:GLOBAL.Appli ationPath | | 'Properties.fmx');
3. Ñîõðàíèòå è çàêðîéòå îðìó Listings è îòêðîéòå îðìó Properties. Âàì íåîá-
õîäèìî äîáàâèòü êîä, êîòîðûé íàõîäèë áû íîâûé ãëîáàëüíûé ïàðàìåòð è âêëþ÷àë
âûðàæåíèå Where. Ñîçäàéòå íîâûé îáðàáîò÷èê äëÿ ñîáûòèÿ When-New-Form-
Instan e îðìû. Íàïèøèòå êîä äëÿ îïðåäåëåíèÿ âûðàæåíèÿ Where áëîêà.
DECLARE
sWHERE VARCHAR2(200);
BEGIN
If (:GLOBAL.PropertyID IS NOT NULL) Then
sWhere := 'PropertyID=' | | :GLOBAL.PropertyID;
Set_Blo k_Property('Properties', DEFAULT_WHERE, sWhere);
End If;
Go_Blo k('Properties');
Exe ute_Query;
END;
4. Äëÿ òîãî ÷òîáû èñêëþ÷èòü ïîÿâëåíèå ïðåäóïðåæäàþùèõ ñîîáùåíèé, âàì òàêæå
íàäî äîáàâèòü ñòðîêó êîäà â èñõîäíóþ îðìó. Îòêðîéòå îáðàáîò÷èê When-New-
Form-Instan e èñõîäíîé îðìû è äîáàâüòå ñëåäóþùèé êîä:
:GLOBAL.PropertyID := Null;
CD92 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Åñëè íå âêëþ÷èòü ýòó ñòðîêó, òî ïðè ïîïûòêå íåïîñðåäñòâåííî îòêðûòü îðìó


Properties âû óâèäèòå â íèæíåé ÷àñòè ýêðàíà ïðåäóïðåæäàþùåå ñîîáùåíèå
î òîì, ÷òî ãëîáàëüíàÿ ïåðåìåííàÿ íå îáúÿâëåíà. Âîçìîæíû ðàçëè÷íûå ñèòóàöèè,
â êîòîðûõ îïðàâäàí îïèñàííûé ïðèåì îòêðûòèÿ îðìû äëÿ îòîáðàæåíèÿ êîíêðåò-
íîé çàïèñè. Ïîäîáíûé ïîäõîä ìîæíî ñðàâíèòü ñ èñïîëüçîâàíèåì íåñêîëüêèõ õîë-
ñòîâ, êîòîðîå áûëî îïèñàíî â ãëàâå 9. Îäíàêî â äàííîì ñëó÷àå îðìû ñîâåðøåííî
íåçàâèñèìû äðóã îò äðóãà è ìîãóò áûòü èñïîëüçîâàíû äëÿ ðàçëè÷íûõ öåëåé.
Îòîáðàæåíèå îò÷åòîâ
Êàê ïðàâèëî, â ïðèëîæåíèÿõ ïðèõîäèòñÿ ïðåäóñìàòðèâàòü êíîïêè, ïîçâîëÿþùèå
ïîëüçîâàòåëÿì îòîáðàæàòü îò÷åòû, ñâÿçàííûå â îðìàìè èëè ïðåäîñòàâëÿþùèå äî-
ïîëíèòåëüíóþ èíîðìàöèþ. Íà ïåðâûé âçãëÿä ìîæåò ïîêàçàòüñÿ, ÷òî ýòè êíîïêè
ñîçäàþòñÿ òàê æå, êàê è êíîïêè äëÿ îðì. Îäíàêî îò÷åòû Ora le èìåþò äâå ñóùå-
ñòâåííûå îñîáåííîñòè. Âî-ïåðâûõ, äëÿ íèõ èñïîëüçóþòñÿ îòäåëüíûå îáðàáîò÷èêè,
îòëè÷íûå îò îáðàáîò÷èêîâ îðì, à âî-âòîðûõ, äèíàìè÷åñêèå îò÷åòû ãåíåðèðóþòñÿ
íåïîñðåäñòâåííî ïåðåä èõ âûâîçîì. åøèòü âîïðîñû, ñâÿçàííûå ñ ýòèìè îñîáåííî-
ñòÿìè, ïîçâîëÿåò ñåðâåð ïðèëîæåíèé (Ora le Appli ation Server  Ora leAS). Ora leAS
ñîäåðæèò ñðåäñòâà äëÿ ïîääåðæêè êàê îðì, òàê è îò÷åòîâ, à òàêæå îáåñïå÷èâàåò àâ-
òîìàòè÷åñêóþ ãåíåðàöèþ äèíàìè÷åñêèõ îò÷åòîâ. Ýòîò ñåðâåð âûïîëíÿåòñÿ â ñðåäå
Web, è âñå îðìû è îò÷åòû äîñòàâëÿþòñÿ íà áðàóçåð ïîëüçîâàòåëÿ. Ñëåäóåò îòìå-
òèòü, ÷òî îò÷åòû, ïðåäíàçíà÷åííûå äëÿ ïóáëèêàöèè â Web è äëÿ âûâîäà íà áóìàæíûé
íîñèòåëü, îáðàáàòûâàþòñÿ ñåðâåðîì ïðèëîæåíèé ïî-ðàçíîìó. Îò÷åòû äëÿ âûâîäà íà
ïå÷àòü ñîçäàþòñÿ â îðìàòå PDF. Äëÿ òîãî ÷òîáû ïðîñìàòðèâàòü èõ, íà êîìïüþòåðå
ïîëüçîâàòåëÿ äîëæåí áûòü óñòàíîâëåí Adobe A robat Reader. Íà ñåãîäíÿøíèé äåíü
äàííîå òðåáîâàíèå âûïîëíÿåòñÿ ïðàêòè÷åñêè âñåãäà, òàê êàê ïî÷òè âñå êîìïüþòåðû
ñíàáæåíû ýòèì èíñòðóìåíòîì. Åñëè A robat Reader ïî êàêèì-òî ïðè÷èíàì íåäîñòó-
ïåí, ìîæíî âûáðàòü äðóãîé îðìàò èëè ðàáîòàòü ñ Web-îò÷åòàìè.
Îðãàíèçóÿ îòîáðàæåíèå îò÷åòîâ Ora le, íåîáõîäèìî ïîìíèòü, ÷òî îíè äîëæíû âû-
ïîëíÿòüñÿ â ñðåäå Web-áðàóçåðà.  êîíå÷íîì èòîãå ïðèëîæåíèå äîëæíî áûòü ðàçìå-
ùåíî íà ñåðâåðå ïðèëîæåíèé Ora le, íî, èìåÿ OC4J, ìîæíî âûïîëíèòü íåîáõîäèìûå
ïðîâåðêè íà êîìïüþòåðå ðàçðàáîò÷èêà. OC4J, èñïîëüçóåìûé äëÿ òåñòèðîâàíèÿ îðì,
ïîääåðæèâàåò Web-ñåðâåð è èìååò âîçìîæíîñòü âçàèìîäåéñòâîâàòü ñî ñëóæáîé îò÷å-
òîâ.  ðåçóëüòàòå ïîÿâëÿåòñÿ ðåàëüíàÿ âîçìîæíîñòü îòîáðàæàòü îò÷åòû, âûçûâàåìûå
ïðè àêòèâèçàöèè êíîïîê â îðìàõ.
Ïåðåä òåì êàê ïðèñòóïàòü ê ðàññìîòðåíèþ âîïðîñîâ, êàñàþùèõñÿ îòîáðàæåíèÿ
îò÷åòîâ ñðåäñòâàìè Web, íåîáõîäèìî ñêàçàòü íåñêîëüêî ñëîâ î ñòàðîì ñïîñîáå èí-
òåãðàöèè îò÷åòîâ â ñîñòàâå ïðèëîæåíèé. Ñ ýòîé òåõíîëîãèåé âû ñòîëêíåòåñü â òîì
ñëó÷àå, åñëè âàì ïðèäåòñÿ ìîäèèöèðîâàòü ñóùåñòâóþùèå ïðîäóêòû, ïîýòîìó âàì
íàäî èìåòü õîòÿ áû îáùåå ïðåäñòàâëåíèå î äàííîì ïîäõîäå. Ïðèâåäåííûå íèæå äåé-
ñòâèÿ âûïîëíÿòü íå îáÿçàòåëüíî, íî, ïðî÷èòàâ î íèõ, âû ñìîæåòå ëó÷øå ïîíÿòü, êàê
ðàáîòàåò ñëóæáà îò÷åòîâ Ora le.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD93

1. Ñîçäàéòå, ïðîâåðüòå è ñîõðàíèòå â àéëå îò÷åò ñðåäñòâàìè Reports Builder (ñì.


ãëàâó 10). Çàêðîéòå Reports Builder.
2. Çàïóñòèòå Forms Builder è îòêðîéòå îðìó (Startup), èç êîòîðîé âû ñîáèðàåòåñü
âûçûâàòü îò÷åò. Âûáåðèòå â îáúåêòíîì íàâèãàòîðå ðàçäåë Reports, äîáàâüòå íî-
âûé îáúåêò îò÷åòà è ïðèñâîéòå åìó èìÿ.  äàííîì ñëó÷àå ñîçäàåòñÿ ëèøü ññûëêà
íà îáúåêò, à íå ðåàëüíûé îò÷åò.
3. Äîáàâüòå ê îðìå êíîïêó, ïðèñâîéòå åé èìÿ è ñîðìèðóéòå íàäïèñü. Îáðàáîò÷èê
áóäåò âûçûâàòü îò÷åò.
DECLARE
Report_ID Report_Obje t;
Report_Job_ID VARCHAR2(100);
BEGIN
Report_ID := Find_Report_Obje t('CustomerList');
Set_Report_Obje t_Property(Report_ID, REPORT_FILENAME,
:GLOBAL.Appli ationPath | | 'CustomerList.jsp');
Set_Report_Obje t_Property(Report_ID, REPORT_DESNAME,
:GLOBAL.Appli ationPath | | 'CustomerList.html');
Report_Job_ID := Run_Report_Obje t(Report_ID);
Web.Show_Do ument('file:///' | |
:GLOBAL.Appli ationPath | | 'CustomerList.html', '_blank');
END;

Äëÿ òîãî ÷òîáû ïîíÿòü, êàê ðàáîòàåò êîä îáðàáîò÷èêà, íåîáõîäèìî ïîìíèòü, ÷òî
îò÷åòû îðìèðóþòñÿ äèíàìè÷åñêè è îáúåêò îò÷åòà  ýòî âñåãî ëèøü ñâîåîáðàçíûé
çàïîëíèòåëü. Ïðè âûïîëíåíèè äàííîãî êîäà îñóùåñòâëÿåòñÿ ïîèñê óêàçàííîãî îò-
÷åòà, çàòåì åìó ïðèñâàèâàþòñÿ äâà âàæíûõ ñâîéñòâà: èìåíà èñõîäíîãî è öåëåâîãî
àéëîâ. Èñõîäíûé àéë áûë ñîçäàí ñ ïîìîùüþ Reports Builder, à öåëåâîé  ýòî
HTML-àéë, êîòîðûé ìîæíî ïåðåäàòü áðàóçåðó. Åãî ñëåäóåò ñîõðàíèòü. Ñ ïîìîùüþ
âûçîâà Run_Report_Obje t ïðîèçâîäèòñÿ îáðàùåíèå ê ñåðâåðó îò÷åòîâ, èçâëåêàåòñÿ
îïèñàíèå îò÷åòà, çàãðóæàþòñÿ äàííûå è ãåíåðèðóåòñÿ âûõîäíîé HTML-àéë. Âûçîâ
Web.Show_Do ument ëèøü ïåðåäàåò âíîâü ñãåíåðèðîâàííûé àéë â íîâîå îêíî áðà-
óçåðà. Âñòðîåííóþ óíêöèþ Web.Show_Do ument ìîæíî èñïîëüçîâàòü äëÿ ïåðåäà÷è
ïîëüçîâàòåëþ ëþáîãî HTML-àéëà.
Íîâûé ïîäõîä ê îòîáðàæåíèþ îò÷åòîâ ãîðàçäî ïðîùå, ïîñêîëüêó ñëóæáà îò÷åòîâ
âûïîëíèò çà âàñ áîëüøóþ ÷àñòü ðàáîòû. åàëüíî îíà îñóùåñòâëÿåò òå æå îñíîâíûå
äåéñòâèÿ ïî ÷òåíèþ àéëà îïðåäåëåíèÿ îò÷åòà, çàãðóçêå äàííûõ è ãåíåðàöèè âðå-
ìåííîãî àéëà. Îòëè÷èÿ ëèøü â òîì, ÷òî îíè âûïîëíÿþòñÿ àâòîìàòè÷åñêè. Äëÿ òîãî
÷òîáû ïðèìåíèòü ýòîò ñïîñîá ïðè ðàáîòå íà ñâîåì êîìïüþòåðå, íåîáõîäèìî çíàòü
íîìåð TCP-ïîðòà, ïî êîòîðîìó Web-ñåðâåð îæèäàåò îáðàùåíèÿ. Îáû÷íî ýòî 8889,
íî â íåêîòîðûõ ñëó÷àÿõ ìîæåò èñïîëüçîâàòüñÿ äðóãîé íîìåð. Ñàìûé ïðîñòîé ñïîñîá
ïîëó÷èòü íóæíûå ñâåäåíèÿ  ýòî âûïîëíèòü ïðîâåðêó ñ ïîìîùüþ îðìû.
CD94 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

1. Çàïóñòèòå Forms Builder, îòêðîéòå èñõîäíóþ îðìó Startup è âûïîëíèòå åå.


Êîãäà îòêðîåòñÿ îêíî áðàóçåðà è â íåì îòîáðàçèòñÿ îðìà, îáðàòèòå âíèìàíèå íà
ñòðîêó àäðåñà áðàóçåðà. Òàì äîëæíà áûòü ïðåäñòàâëåíà èíîðìàöèÿ íàïîäîáèå
ñëåäóþùåé: http://<èìÿ>:8889/forms90/f90servlet....  äàííîì ñëó÷àå
<èìÿ>  ýòî èìÿ âàøåãî êîìïüþòåðà; çà íèì ñëåäóåò èíòåðåñóþùèé âàñ íîìåð
TCP-ïîðòà. Çàïèøèòå èìÿ è ïîðò è çàêðîéòå áðàóçåð. OC4J íå çàêðûâàéòå.
2. Ïðîâåðüòå âàøó ñèñòåìó, ÷òîáû óáåäèòüñÿ â òîì, ÷òî ñåðâåð îò÷åòîâ ðàáîòàåò.
Íàéäèòå ïîëíûé ïóòü ê îäíîìó èç âàøèõ îò÷åòîâ, íàïðèìåð CustomerList.jsp.
Åñëè âû ðàáîòàåòå â ñèñòåìå Windows, çàïóñòèòå áðàóçåð. Â ñòðîêå àäðåñà ââå-
äèòå URL íàïîäîáèå ïðèâåäåííîãî íèæå; â íåì äîëæíû áûòü îòðàæåíû äàííûå,
ñïåöèè÷åñêèå äëÿ âàøåé ñèñòåìû.

http://postlt:8889/reports/rwservlet?destype=
a he&desformat=PDF&report=
:\books\Ora leIntro\Chapters\Ch11\Reports\RedwoodRealty
\CustomerList.jsp&userid=postdb
 äàííîì ñëó÷àå rwservlet  ýòî ïðîãðàììà Ora le, êîòîðàÿ âûïîëíÿåò âñå
íåîáõîäèìûå äåéñòâèÿ. Ïàðàìåòð destype ñîîáùàåò ýòîé ïðîãðàììå î òîì, ÷òî îò-
÷åò íåîáõîäèìî çàïèñàòü âî âðåìåííûé êýø. Ïàðàìåòð desformat óêàçûâàåò îðìàò,
êîòîðûé äîëæåí áûòü ñãåíåðèðîâàí.  äàííîì ñëó÷àå çàäàåòñÿ îðìàò PDF Adobe
A robat. Ïàðàìåòð report óêàçûâàåò ïîëíûé ïóòü ê àéëó îò÷åòà. Ïàðàìåòð userid
ñîîáùàåò ñåðâåðó îò÷åòîâ èíîðìàöèþ, íåîáõîäèìóþ äëÿ ðåãèñòðàöèè â áàçå. Çíà÷å-
íèå userid çàäàåòñÿ â ñëåäóþùåì îðìàòå: èìÿ-ïîëüçîâàòåëÿ/ïàðîëüèìÿ_ñåðâåðà.
Îäíàêî â ñîñòàâ URL íåæåëàòåëüíî âêëþ÷àòü ïàðîëü, ïðåäñòàâëåííûé îáû÷íûì òåê-
ñòîì. Ïîýòîìó, åñëè âû íå óêàæåòå èìÿ ïîëüçîâàòåëÿ è ïàðîëü, ñåðâåð îò÷åòîâ îòîáðà-
çèò îðìó, ïðåäëàãàþùóþ ïîëüçîâàòåëþ çàðåãèñòðèðîâàòüñÿ. Â íåé îí ñìîæåò ââåñòè
ðåãèñòðàöèîííîå èìÿ è ïàðîëü. Îáû÷íî ðàçðàáîò÷èêè âêëþ÷àþò â ñîñòàâ URL èìÿ
ñåðâåðà (âîçìîæíî, ýòî áóäåò èìÿ âàøåãî êîìïüþòåðà), ÷òîáû ñîêðàòèòü ðàáîòó ïîëü-
çîâàòåëÿ. Îñíîâíàÿ çàäà÷à, ðåøàåìàÿ íà äàííîì ýòàïå,  óáåäèòüñÿ, ÷òî URL çàäàí
ïðàâèëüíî è îò÷åò îòîáðàæàåòñÿ. Åñëè îò÷åò íå âûâîäèòñÿ, ïðîâåðüòå, âûïîëíÿåòñÿ
ëè OC4J. Åñëè óñòðàíèòü ïðîáëåìó íå óäàåòñÿ, âàì ñòîèò âîñïîëüçîâàòüñÿ ñåðâåðîì
ïðèëîæåíèé Ora le èëè âûïîëíèòü ïðîâåðêó íà äðóãîì êîìïüþòåðå.

Ñîâåò. Åñëè âû ïîëó÷èëè ñîîáùåíèå îá îøèáêå èëè åñëè îò÷åò íå îòîáðàæàåòñÿ,


âíèìàòåëüíî ïðîâåðüòå URL. Îáðàòèòå âíèìàíèå íà ïóòü ê àéëó îò÷åòà.

3.  äàííîì ñëó÷àå, êàê è ðàíåå, æåëàòåëüíî èçáåãàòü æåñòêîãî êîäèðîâàíèÿ. Äëÿ


òîãî ÷òîáû óïðîñòèòü ïåðåíîñ ïðèëîæåíèÿ, êîòîðûé íåèçáåæåí â äàëüíåéøåì,
ìîæíî ñîçäàòü òðè ãëîáàëüíûõ ïåðåìåííûõ. Îòêðîéòå îáðàáîò÷èê When-New-
Form-Instan e îðìû Startup. Äîáàâüòå òðè ïðèâåäåííûå íèæå ñòðîêè êîäà.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD95

Ïåðâàÿ è ïîñëåäíÿÿ, âåðîÿòíåå âñåãî, ïîäâåðãíóòñÿ èçìåíåíèÿì.


:GLOBAL.ReportServerURL := 'http://postlt:8889/reports/rwservlet';
:GLOBAL.ReportFormat := 'desformat=PDF';
:GLOBAL.DatabaseServer := 'postdb';
4. Ñîçäàéòå êíîïêó â èñõîäíîé îðìå. Íàçîâèòå åå btn_CustomerList è ñîðìè-
ðóéòå íàäïèñü Customer List.  îáðàáîò÷èêå When-Button-Pressed ââåäèòå
êîä, ïðåäíàçíà÷åííûé äëÿ îðìèðîâàíèÿ URL è îòîáðàæåíèÿ îò÷åòà. Çàìåòüòå,
÷òî êîä ðàçáèò íà íåñêîëüêî ñòðîê; ýòî óïðîùàåò åãî âîñïðèÿòèå è ïîèñê îøè-
áîê. Òàêæå îáðàòèòå âíèìàíèå íà èñïîëüçîâàíèå ãëîáàëüíûõ ïåðåìåííûõ. Òåïåðü
åäèíñòâåííûé èêñèðîâàííûé ýëåìåíò  ýòî èìÿ îò÷åòà.
DECLARE
sURL VARCHAR2(200);
BEGIN
sURL := :GLOBAL.ReportServerURL
| | '?destype= a he'
| | '&' | | :GLOBAL.ReportFormat
| | '&report=' | | :GLOBAL.Appli ationPath
| | 'CustomerList.jsp'
| | '&userid=' | | :GLOBAL.DatabaseServer;
Web.Show_Do ument(sURL, '_blank');
END;
5. Ñêîìïèëèðóéòå êîä, ñîõðàíèòå îðìó è ïðîâåðüòå åå ðàáîòó. Ïîñëå ùåë÷êà íà
êíîïêå âû äîëæíû ïîëó÷èòü íîâîå îêíî áðàóçåðà, â êîòîðîì áóäåò îòîáðàæàòüñÿ
îò÷åò â îðìàòå PDF. Äîáàâüòå òàêóþ æå êíîïêó, ïîñðåäñòâîì êîòîðîé âû áóäåòå
îòêðûâàòü îò÷åò äëÿ Listings And Offers.

Ïàðàìåòð desformat ïîçâîëÿåò îðìèðîâàòü ðàçëè÷íûå òèïû îò÷åòîâ. Ñóùåñòâó-


þò òàêæå äðóãèå ïàðàìåòðû ñ ïîìîùüþ êîòîðûõ, åñëè íåîáõîäèìî, ìîæíî ïîñûëàòü
îò÷åò íåïîñðåäñòâåííî íà ïðèíòåð. Âñå íåîáõîäèìûå ñâåäåíèÿ âû íàéäåòå â äî-
êóìåíòàöèè, ïðåäîñòàâëÿåìîé Ora le. Äîïóñòèìûå çíà÷åíèÿ desformat ïðèâåäåíû
â òàáë. 11.3. Âî ìíîãèõ ñëó÷àÿõ ðàçðàáîò÷èêîâ óñòðàèâàåò îðìàò PDF, ïîýòîìó
äàííîå çíà÷åíèå ïðèíèìàåòñÿ ïî óìîë÷àíèþ. Åñëè íåîáõîäèìî, âû ìîæåòå ñîçäàòü
îðìó, êîòîðàÿ ïîçâîëèò ïîëüçîâàòåëþ âûáðàòü òîò îðìàò, êîòîðûé åìó áîëüøå
ïîäõîäèò.
Ìíîãèå èç îò÷åòîâ, ñîçäàííûõ â ãëàâå 10, áûëè ïðåäíàçíà÷åíû äëÿ ìåíåäæåðîâ.
Àãåíòû ðåäêî ïîëüçóþòñÿ èìè. Òî÷íî òàê æå òðè àäìèíèñòðàòèâíûå îðìû îðèåí-
òèðîâàíû íå íà àãåíòîâ, à íà ìåíåäæåðîâ. Ñëåäîâàòåëüíî, ÷òîáû ïðèëîæåíèå áûëî
ëó÷øå îðãàíèçîâàíî, æåëàòåëüíî ñîçäàòü åùå îäíó îðìó, âûïîëíÿþùóþ ðîëü ìåíþ.
Îíà áóäåò ïðåäíàçíà÷åíà äëÿ àäìèíèñòðàòèâíûõ öåëåé.

1. Ñîçäàéòå íîâóþ ïóñòóþ îðìó, íàçîâèòå åå Management, äîáàâüòå ïóñòîé áëîê


äàííûõ (Main_Datablo k) è õîëñò (Main_Canvas). Äîáàâüòå ëîãîòèï è çàãîëîâîê
(Management Tasks).
CD96 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

ÒÀÁËÈÖÀ 11.3. Çíà÷åíèÿ ïàðàìåòðà desformat


Çíà÷åíèå ïàðàìåòðà Âûõîäíîé îðìàò
HTML Ñòàíäàðòíûé HTML-îðìàò ñ ìèíèìàëüíûì îðìàòèðîâà-
íèåì
HTMLCSS Ôîðìàò HTML; äëÿ îðìàòèðîâàíèÿ èñïîëüçóþòñÿ òàáëèöû
ñòèëåé
PCL ßçûê ïðèíòåðîâ Hewlett Pa kard
PDF Ôîðìàò, ïîääåðæèâàåìûé Adobe A robat
Posts ript ßçûê, ïîääåðæèâàåìûé ìíîãèìè ïðèíòåðàìè
XML ßçûê, ÷àñòî èñïîëüçóåìûé äëÿ ïåðåíîñà èíîðìàöèè ìåæäó
ðàçëè÷íûìè ñèñòåìàìè

2. Âêëþ÷èòå â îðìó êíîïêè äëÿ âûçîâà îðì Conta tReason, Li enseStatus


è SaleStatus. Ñîçäàéòå äëÿ êàæäîé êíîïêè ïðîñòîé îáðàáîò÷èê Call_Form.
Ñëåäèòå çà òåì, ÷òîáû â êàæäîì ñëó÷àå èìÿ îðìû áûëî óêàçàíî ïðàâèëüíî.
3. Äîáàâüòå êíîïêè äëÿ òðåõ îò÷åòîâ, ïðåäíàçíà÷åííûõ äëÿ ìåíåäæåðîâ (AgentSales,
SalesByCityAndAgent, SalesByMonthAndAgent). Ñêîïèðóéòå êîä, ïîñðåäñòâîì
êîòîðîãî âû îòêðûâàëè îò÷åò, è âêëþ÷èòå åãî â êàæäûé èç òðåõ îáðàáîò÷èêîâ.
Èçìåíèòü íàäî òîëüêî èìÿ îò÷åòà. Âûïîëíèòå êîìïèëÿöèþ, ÷òîáû óáåäèòüñÿ â îò-
ñóòñòâèè ñèíòàêñè÷åñêèõ îøèáîê.
4. Ñîõðàíèòå îðìó Management è çàïóñòèòå åå, ÷òîáû îíà áûëà ñêîìïèëèðîâàíà.
5. Çàêðîéòå îðìó Management è îòêðîéòå èñõîäíóþ îðìó Startup. Äîáàâüòå
êíîïêó äëÿ âûçîâà íîâîé îðìû Management. Ñêîìïèëèðóéòå, ñîõðàíèòå è çàïó-
ñòèòå îðìó Startup; ïðîâåðüòå åå ðàáîòó.
Êàê âû ïîìíèòå, äâå îðìû (AgentSales è SalesByMonthAndAgent) äîïóñêàþò
ââîä ïîëüçîâàòåëüñêèõ ïàðàìåòðîâ. ×òîáû ïàðàìåòðû ìîæíî áûëî çàäàâàòü, ñî-
îáùèòå ñåðâåðó îò÷åòîâ, ÷òî îò÷åòû ïðåäïîëàãàþò âûçîâ ñîîòâåòñòâóþùèõ îðì.
6.  îðìå Management îòêðîéòå îáðàáîò÷èê ñîáûòèÿ êíîïêè äëÿ îò÷åòà
AgentSales. Ìîäèèöèðóéòå URL, äîáàâèâ â êîíåö ñëåäóþùóþ ïîñëåäîâàòåëü-
íîñòü ñèìâîëîâ:
| | '&PARAMFORM=yes';
Íå çàáóäüòå ââåñòè òî÷êó ñ çàïÿòîé; îíà îáîçíà÷àåò êîíåö ñòðîêè URL. Óäàëèòå
ýòîò ñèìâîë èç ïðåäûäóùåé ñòðîêè. Ñêîìïèëèðóéòå è ïðîâåðüòå îò÷åò. Ñäåëàéòå
òî æå äëÿ îñòàëüíûõ îò÷åòîâ, èñïîëüçóþùèõ îðìó äëÿ ââîäà ïàðàìåòðîâ. Îò÷åò
Sales ïîêàçàí íà ðèñ. 11.7.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD97

èñ. 11.7. Îò÷åò, ñîçäàâàåìûé â ïðîöåññå ðàáîòû ïðèëîæåíèÿ

Äîñòàâêà îðì è îò÷åòîâ íà ñåðâåð ïðèëîæåíèé Ora le

Òåïåðü, êîãäà ïðèëîæåíèå âûïîëíÿåòñÿ êîððåêòíî, íàäî ïîäóìàòü î åãî äîñòàâêå, ò.å.
î ïåðåíîñå íà ñåðâåð ïðèëîæåíèé Ora le. Ora leAS  ýòî ïðîãðàììà, íå èìåþùàÿ
íåïîñðåäñòâåííîãî îòíîøåíèÿ ê ÑÓÁÄ. Îáû÷íî îíà óñòàíàâëèâàåòñÿ íà äðóãîé ìà-
øèíå. Ñåðâåð ïðèëîæåíèé ïðåäíàçíà÷åí äëÿ èíòåãðàöèè âñåõ ñðåäñòâ, òðåáóåìûõ
ïðèëîæåíèþ, âêëþ÷àÿ ïîääåðæêó îðì è îò÷åòîâ. Ora leAS ïðåäîñòàâëÿåò ìíîãî
äîïîëíèòåëüíûõ âîçìîæíîñòåé, â òîì ÷èñëå çàùèùåííûé êàòàëîã Ora le Internet Di-
re tory (OID). Îäíàêî äëÿ óñòàíîâêè è ïîääåðæêè ìíîãèõ ñðåäñòâ òðåáóåòñÿ âðåìÿ,
ïîýòîìó âû âðÿä ëè áóäåòå ïîëüçîâàòüñÿ èìè. Îäíèì èç ãëàâíûõ ïðåèìóùåñòâ OID
ÿâëÿåòñÿ âîçìîæíîñòü åäèíîé ðåãèñòðàöèè, ïðè êîòîðîé ïîëüçîâàòåëü îäèí ðàç ðåãè-
ñòðèðóåòñÿ â êàòàëîãå ïðè çàïóñêå ïðèëîæåíèÿ è ïîëó÷àåò ïðàâà íà ðàáîòó ñî âñåìè
îðìàìè è îò÷åòàìè.
Ïðîáëåìîé â âàøåé ðàáîòå ìîæåò ñòàòü îòñóòñòâèå äîñòóïà ê ñåðâåðó ïðèëîæåíèé.
Îáû÷íî îí è áàçà äàííûõ ðàñïîëàãàþòñÿ íà ðàçíûõ êîìïüþòåðàõ. Ïîäîáíûé ïîäõîä
îïðàâäûâàåò ñåáÿ ïðè ïîääåðæêå ñèñòåì äëÿ áîëüøèõ îðãàíèçàöèé, íî ñóùåñòâåí-
íî çàòðóäíÿåò îòëàäêó âòîðîñòåïåííûõ ïðèëîæåíèé. ×òîáû ïîýêñïåðèìåíòèðîâàòü
ñ Ora leAS, ñêîïèðóéòå åãî ÷àñòè÷íóþ ðåàëèçàöèþ ïîä íàçâàíèåì Ora leAS Forms
and Reports Servi es. Ýòîò âàðèàíò ñåðâåðà ìîæíî óñòàíîâèòü íà òîé æå ìàøèíå, ÷òî
è áàçà äàííûõ Ora le; íàäî ëèøü ñîçäàòü íîâûé èñõîäíûé êàòàëîã.
CD98 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Ora leAS äàåò âîçìîæíîñòü íàñòðîèòü ïðèëîæåíèå ðàçëè÷íûìè ñïîñîáàìè. Ïåð-


âûé èç íèõ î÷åíü ïðîñò, ïîñêîëüêó îí ïðàêòè÷åñêè íå îòëè÷àåòñÿ îò ïðîöåäóðû
òåñòèðîâàíèÿ ïðèëîæåíèÿ.
1. Ñîçäàéòå ïàïêó, â êîòîðîé áóäóò õðàíèòüñÿ âñå îðìû è îò÷åòû. Íàïðèìåð, âû
ìîæåòå èñïîëüçîâàòü E:\Ora leApppli ations\RedwoodRealty. Èìÿ óñòðîé-
ñòâà è ïóòü ìîãóò áûòü äðóãèìè, â çàâèñèìîñòè îò âàøåãî ñåðâåðà. Êàê ïðàâèëî,
ïàïêó äëÿ ðàçìåùåíèÿ äàííûõ ïðåäîñòàâëÿåò ñèñòåìíûé àäìèíèñòðàòîð. Ñêîïè-
ðóéòå â ýòó ïàïêó âñå îðìû (àéëû .fmx) è îò÷åòû (àéëû .jsp). Âàì òàêæå
íåîáõîäèìî çíàòü ñåòåâîå èìÿ ñåðâåðà.
2. Ñêîïèðóéòå àéë Startup.fmb â ïàïêó íà ñåðâåðå. Èñïîëüçóÿ Forms Builder,
îòêðîéòå àéë Startup.fmb íà ñåðâåðå. Îòðåäàêòèðóéòå îáðàáîò÷èê ñîáûòèÿ
When-New-Form-Instan e. Èçìåíèòå ãëîáàëüíóþ ïåðåìåííóþ òàê, ÷òîáû îíà
çàäàâàëà ðàñïîëîæåíèå àéëà íà ñåðâåðå. Èçìåíèòå Appli ationPath, Report-
ServerURL è DatabaseServer.  áîëüøèíñòâå ñëó÷àåâ ïîðò, óêàçàííûé â Re-
portServerURL, íå íóæåí. Ora leAS ïî óìîë÷àíèþ èñïîëüçóåò ñòàíäàðòíûé ïîðò
80, îäíàêî ïðè èíñòàëëÿöèè ïðîäóêòà ìîæåò áûòü çàäàíî äðóãîå çíà÷åíèå. Ñêîì-
ïèëèðóéòå îáðàáîò÷èê ñîáûòèÿ è ñîõðàíèòå àéë. Çàïóñòèòå îðìó õîòÿ áû îäèí
ðàç, ÷òîáû ñèñòåìà ïåðåêîìïèëèðîâàëà àéë Startup.fmx.
3. Òåïåðü âàì è âàøèì ïîëüçîâàòåëÿì äëÿ çàïóñêà ïðèëîæåíèÿ íóæåí òîëüêî áðàó-
çåð. Îòêðîéòå îêíî áðàóçåðà íà ñâîåì êîìïüþòåðå. Â ñòðîêå àäðåñà ââåäèòå èìÿ
ñåðâåðà Ora leAS, à òàêæå ïîëíûé ïóòü ê èñõîäíîé îðìå:
http://servername/forms90/f90servlet?form=
E:\Ora leAppli ations\RedwoodRealty\Startup.fmx
Ñèñòåìà ïðåäëîæèò âàì çàðåãèñòðèðîâàòüñÿ. Ïîñëå ýòîãî âû ñìîæåòå, ùåë-
êàÿ ìûøüþ íà êíîïêàõ, îòêðûòü ëþáóþ îðìó èëè ïðîñìîòðåòü ëþáîé îò÷åò.
Êîãäà âû â ïåðâûé ðàç ïîïûòàåòåñü îòêðûòü îò÷åò, âàì òàêæå ïðèäåòñÿ ïðîéòè
ïðîöåäóðó ðåãèñòðàöèè.
4. Ïðîâåðüòå ðàáîòó âñåõ êíîïîê. Åñëè êàêàÿ-íèáóäü èç íèõ íå ðàáîòàåò, ïðè÷èíà
ìîæåò áûòü â òîì, ÷òî âû çàáûëè óêàçàòü â ñîñòàâå îáðàáîò÷èêà äëÿ ýòîé êíîïêè
:GLOBAL.Appli ationPath. Âàì íàäî îòðåäàêòèðîâàòü îðìó íà ñâîåé ìàøèíå,
ïåðåêîìïèëèðîâàòü è çàïóñòèòü îðìó, à çàòåì ñêîïèðîâàòü åå íà ñåðâåð.

Î÷åâèäíûé íåäîñòàòîê äàííîãî ïîäõîäà ñîñòîèò â òîì, ÷òî ïîëüçîâàòåëè äîëæ-


íû çíàòü ïîëíûé ïóòü ê èñõîäíîé îðìå. Óïðîñòèòü èõ ðàáîòó ìîæíî, ïîìåñòèâ
íà ðàáî÷åì ñòîëå ÿðëûê ñ êîððåêòíûì URL. Âû òàêæå ìîæåòå ñîçäàòü íà ñåðâå-
ðå Ora le íåáîëüøîé HTML-àéë. Ñîäåðæàùèé òðåáóåìóþ ññûëêó. Åñëè âû ðåøè-
òå ñîçäàòü HTML-àéë, âàì èìååò ñìûñë âîâñå çàìåíèòü èñõîäíóþ îðìó ïðîñòîé
Web-ñòðàíèöåé. Âû òàêæå ìîæåòå âîñïîëüçîâàòüñÿ Ora le Portal è ñîðìèðîâàòü äëÿ
êàæäîãî ïîëüçîâàòåëÿ ñâîþ èñõîäíóþ ñòðàíèöó. Îäíàêî, ÷òîáû çàïóñòèòü Portal, âàì
ïîíàäîáèòñÿ ïîëíîóíêöèîíàëüíûé Ora leAS ñ Internet Dire tory.
Âêëþ÷åíèå îðì è îò÷åòîâ â ïðèëîæåíèå CD99

Ora leAS ïðåäîñòàâëÿåò òàêæå äðóãèå ìåòîäû, ïîçâîëÿþùèå óêàçàòü ðàñïîëî-


æåíèå ïî óìîë÷àíèþ îðì è îò÷åòîâ. Åñëè âû ïîìåñòèòå îðìó è îò÷åò â ïàï-
êó ïî óìîë÷àíèþ, ñîîòâåòñòâóþùèé îáúåêò ìîæíî áóäåò îòêðûòü, óêàçàâ ëèøü
èìÿ àéëà è íå çàäàâàÿ ïîëíûé ïóòü.  ýòîì ñëó÷àå âàì íàäî áóäåò çàìå-
íèòü çíà÷åíèå ïåðåìåííîé GLOBAL.Appli ationPath ïóñòîé ñòðîêîé (' '). àñ-
ïîëîæåíèå, ïðèíÿòîå èçíà÷àëüíî ïî óìîë÷àíèþ, âûÿñíèòü äîñòàòî÷íî òðóäíî.
Äëÿ îðì îáû÷íî èñïîëüçóåòñÿ ïàïêà Ora leASHome\forms90\, à äëÿ îò÷åòîâ 
Ora leASHome\j2ee\OC4J_BI_Forms\appli ations\reports\web\. Â îáîèõ ñëó-
÷àÿõ Ora leASHome  ýòî êîðíåâîé êàòàëîã, â êîòîðîì èíñòàëëèðîâàíû ñëóæáû ïîä-
äåðæêè îðì è îò÷åòîâ Ora leAS.
Âðÿä ëè âû çàõîòèòå ïîìåùàòü âñå âàøè îðìû è îò÷åòû â ïàïêó, èçíà÷àëüíî
ïðèíÿòóþ ïî óìîë÷àíèþ. Ïðîùå ñîçäàòü äëÿ ïðèëîæåíèÿ íîâûé êàòàëîã è îòðå-
äàêòèðîâàòü êîíèãóðàöèîííûå àéëû Ora le, óêàçàâ â íèõ ïóòü ê ýòîìó êàòàëîãó.
Êîíå÷íî æå, äëÿ ìîäèèêàöèè êîíèãóðàöèîííûõ àéëîâ Ora leAS íàäî îáëàäàòü
ïðàâàìè àäìèíèñòðàòîðà. Êðîìå òîãî, ñ íåäàâíåãî âðåìåíè ñïåöèàëèñòû Ora le íå
ðåêîìåíäóþò íåïîñðåäñòâåííî ðåäàêòèðîâàòü àéëû, à ïðåäëàãàþò ñîçäàâàòü òðåáóå-
ìûå óñòàíîâêè ñ ïîìîùüþ Ora leAS Enterprise Manager. Åñëè â âàøåì ðàñïîðÿæåíèè
èìååòñÿ Ora leAS, óñòàíîâèòü êîíèãóðàöèþ äëÿ îðì ñðàâíèòåëüíî ïðîñòî.

1. Çàïóñòèòå Ora leAS Enterprise Manager. Çàìåòüòå, ÷òî Ora leAS Enterprise Man-
ager è DBMS Enterprise Manager  ýòî ðàçíûå èíñòðóìåíòû. Èñïîëüçóéòå àäðåñ
http://<èìÿ_ñåðâåðà>:1810, óêàçàâ êîíêðåòíîå èìÿ ñåðâåðà è çàðåãèñòðèðóé-
òåñü ïîä èìåíåì àäìèíèñòðàòîðà; ïðè ýòîì ïðèäåòñÿ óêàçàòü ïàðîëü, êîòîðûé âû
çàäàëè ïðè èíñòàëëÿöèè ñåðâåðà.
2. Ùåëêíèòå íà ïóíêòå ñïèñêà Forms, à çàòåì íà ññûëêå Configuration.
3. Âûáåðèòå ðàçäåë default è ùåëêíèòå íà êíîïêå Dupli ate. Êîãäà âàì áóäåò ïðåä-
ëîæåíî ââåñòè èìÿ íîâîé êîíèãóðàöèè, çàäàéòå Redwood.
4. Âûáåðèòå íîâûé ðàçäåë Redwood è ùåëêíèòå íà êíîïêå Edit.
5. Íàéäèòå è èçìåíèòå òðè ñâîéñòâà. Äëÿ Working Dire tory çàäàéòå ïîëíûé ïóòü
ê ïàïêå íà ñåðâåðå, â êîòîðîé âû õðàíèòå îðìû. Äëÿ Page Title ââåäèòå çíà-
÷åíèå Redwood Realty. Äëÿ Form çàäàéòå Startup.fmx. Ùåëêíèòå íà êíîïêå
Apply, ÷òîáû ñîõðàíèòü èçìåíåíèÿ.
6. Çàïóñòèòå íà ëþáîì êîìïüþòåðå áðàóçåð. Â ñòðîêå àäðåñà ââåäèòå URL, óêàçàâ
ðåàëüíîå èìÿ ñåðâåðà.
http://<èìÿ_ñåðâåðà>/forms90/f90servlet? onfig=Redwood

 ðåçóëüòàòå âàøèõ äåéñòâèé áóäåò çàïóùåíà èñõîäíàÿ îðìà Startup. Äëÿ îðì
âàì áîëüøå íå ïîíàäîáèòñÿ ïåðåìåííàÿ Appli ationPath. Äëÿ òîãî ÷òîáû îòêðûòü
îðìó, äîñòàòî÷íî çàäàòü åå èìÿ. Îäíàêî äëÿ îò÷åòîâ Appli ationPath âñå åùå
CD100 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

íåîáõîäèìà. Èçìåíèòü ïàïêó ïî óìîë÷àíèþ äëÿ îò÷åòîâ íåñêîëüêî ñëîæíåå. Âàì íàäî
íàéòè àéë êîíèãóðàöèè îáðàáîò÷èêà îò÷åòîâ è èçìåíèòü èëè äîáàâèòü ñâîéñòâî
Sour eDir. Ïîäðîáíóþ èíîðìàöèþ ïî ýòîìó âîïðîñó ìîæíî íàéòè â äîêóìåíòàöèè
ïî Ora le. Îäíàêî, ïîñêîëüêó ïîëüçîâàòåëÿì íå÷àñòî ïðèõîäèòñÿ íåïîñðåäñòâåííî
çàïóñêàòü îò÷åòû, ïðîùå âîñïîëüçîâàòüñÿ ïåðåìåííîé Appli ationPath.
Îáû÷íîìó ïîëüçîâàòåëþ ñëèøêîì ñëîæíî çàïîìíèòü äàæå ïîñëåäíèé âàðèàíò
URL. Ïîýòîìó âàì âñå-òàêè ïîíàäîáèòñÿ ïðîñòàÿ Web-ñòðàíèöà íà ñåðâåðå, ñîäåð-
æàùàÿ òðåáóåìóþ ññûëêó.  ýòîì ñëó÷àå íå èìååò çíà÷åíèÿ, áûë ëè ñîçäàí ñïåöè-
àëüíûé êîíèãóðàöèîííûé àéë. Îäíàêî îí ïîòðåáóåòñÿ, åñëè âàì ïðèäåòñÿ áûñòðî
ïåðåíåñòè ïðèëîæåíèå, ñîçäàííîå äðóãèì ðàçðàáîò÷èêîì, êîòîðûé íå ïîçàáîòèëñÿ î
ñîçäàíèè ïåðåìåííîé, ïîäîáíîé Appli ationPath.  ýòîì ñëó÷àå îáû÷íî íå õâàòàåò
âðåìåíè ðàçáèðàòüñÿ â êîäå ïðèëîæåíèÿ è ðåäàêòèðîâàòü êàæäóþ ññûëêó.

. Ñîçäàíèå ìåíþ

Ïîñêîëüêó âû ðàáîòàåòå ñ ñèñòåìîé Windows, âàì íàâåðíÿêà çíàêîìà ñòðîêà ìåíþ,


îòîáðàæàåìàÿ â âåðõíåé ÷àñòè îêíà ìíîãèõ ïðèëîæåíèé. àáîòàÿ ñ îðìàìè Ora le,
âû, íàâåðíîå, çàìåòèëè, ÷òî ïî óìîë÷àíèþ â êàæäîé îðìå ïðèñóòñòâóåò ìåíþ. Â
ñòàíäàðòíîå ìåíþ âêëþ÷àþò èíñòðóìåíòû äëÿ âûïîëíåíèÿ ÷àñòî âñòðå÷àþùèõñÿ çà-
äà÷, íàïðèìåð, âñòàâêè èëè óäàëåíèÿ çàïèñåé. Âî ìíîãèõ ïðèëîæåíèÿõ íåîáõîäèìî
îãðàíè÷èâàòü íàáîð äåéñòâèé, êîòîðûå ìîæåò ïðåäïðèíÿòü ïîëüçîâàòåëü. Êðîìå òîãî,
â îðìû èíîãäà âêëþ÷àþò ýëåìåíòû, îáåñïå÷èâàþùèå äîñòóï ê ÷àñòî èñïîëüçóåìûì
ñðåäñòâàì. Ora le ïðåäîñòàâëÿåò âîçìîæíîñòü ñîçäàâàòü ñîáñòâåííûå ìåíþ, çàìåíÿ-
þùèå ñòàíäàðòíûå.

Íàçíà÷åíèå ìåíþ

 áîëüøèíñòâå ïðèëîæåíèé ñòðîêà ìåíþ ïðåäíàçíà÷åíà äëÿ îáåñïå÷åíèÿ äîñòóïà


ê ñðåäñòâàì ðåøåíèÿ ñòàíäàðòíûõ çàäà÷. Æåëàòåëüíî, ÷òîáû ñòðóêòóðà è âíåøíèé
âèä ìåíþ áûëè ñîãëàñîâàíû âî âñåõ îðìàõ. Îäíàêî íåîáõîäèìî òàêæå èìåòü âîç-
ìîæíîñòü ñîçäàíèÿ ìåíþ, ñïåöèàëüíî îðèåíòèðîâàííîãî íà êîíêðåòíóþ îðìó. Â
ëþáîì ñëó÷àå, ó÷èòûâàÿ, ÷òî ìåíþ ïðåäíàçíà÷åíû â îñíîâíîì äëÿ óïðîùåíèÿ ðà-
áîòû ñ ïðèëîæåíèÿìè, æåëàòåëüíî ñòàíäàðòèçîâàòü áîëüøèíñòâî åãî ïóíêòîâ. Ïîëü-
çîâàòåëü äîëæåí çíàòü, êóäà ñëåäóåò îáðàòèòüñÿ äëÿ ðåøåíèÿ òîé èëè èíîé çàäà-
÷è. Îí òàêæå äîëæåí ïðåäñòàâëÿòü ñåáå, â êàêèõ ñëó÷àÿõ åìó áóäåò ïðåäîñòàâ-
ëåí äîïîëíèòåëüíûé âûáîð.
Êàê ïðàâèëî, â ìåíþ âñåõ ïðèëîæåíèé, ïðåäíàçíà÷åííûõ äëÿ ðàáîòû ñ áàçàìè äàí-
íûõ, âñòðå÷àåòñÿ íåñêîëüêî îäèíàêîâûõ ýëåìåíòîâ. Íàïðèìåð, ñàìûé ïðàâûé ïóíêò
â ñòðîêå ìåíþ íàçûâàåòñÿ Help; îí ïðåäîñòàâëÿåò ñïðàâî÷íóþ èíîðìàöèþ, ÷àñòî
çàâèñÿùóþ îò êîíòåêñòà. Êðîìå òîãî, ïðè ðàáîòå ñ áàçîé íåîáõîäèìû ñòàíäàðòíûå
Ñîçäàíèå ìåíþ CD101

ñðåäñòâà äëÿ ðàáîòû ñ çàïèñÿìè, ïîçâîëÿþùèå, â ÷àñòíîñòè, ïåðåìåùàòüñÿ âïåðåä è


íàçàä ïî ñòðîêàì, äîáàâëÿòü èëè óäàëÿòü çàïèñè. Â íåêîòîðûõ ïðèëîæåíèÿõ öåëåñî-
îáðàçíî ïðåäóñìîòðåòü â ìåíþ ñòàíäàðòíûå ñðåäñòâà Windows. Êðîìå òîãî, ìíîãèå
ïîëüçîâàòåëè îæèäàþò íàéòè â ïðèëîæåíèè èíñòðóìåíòû äëÿ âûðåçàíèÿ è âêëþ÷åíèÿ
äàííûõ; îáû÷íî îíè ïîìåùàþòñÿ â ìåíþ Edit.
Ïîìèìî ðåøåíèÿ ñòàíäàðòíûõ çàäà÷, ïðè îðãàíèçàöèè ìåíþ íàäî ó÷èòûâàòü îñî-
áåííîñòè ðàáîòû ïîëüçîâàòåëåé ñ ïðèëîæåíèåì.  ñëó÷àå Redwood Realty âàì ïîòðå-
áóåòñÿ îäíî ìåíþ âåðõíåãî óðîâíÿ äëÿ àãåíòîâ è äðóãîå  äëÿ ìåíåäæåðîâ. Â êàæäîì
èç íèõ áóäóò ïðåäóñìîòðåíû çàäà÷è, ÷àñòî ðåøàåìûå äàííîé êîíêðåòíîé êàòåãîðèåé
ïîëüçîâàòåëåé. Ìîæíî òàêæå ðàçìåñòèòü íà âåðõíåì óðîâíå ìåíþ ññûëêè äëÿ ðå-
øåíèÿ îñíîâíûõ çàäà÷, íàïðèìåð Offers, Listings è Properties. Æåëàòåëüíî íàðèñîâàòü
íåñêîëüêî ýñêèçîâ è ïîêàçàòü ïîëüçîâàòåëÿì. Èìåííî çà íèìè ðåøàþùåå ñëîâî î òîì,
êàê ëó÷øå îðãàíèçîâàòü ðàáîòó.
Íà ðèñ. 11.8 ïîêàçàíî ñòàíäàðòíîå ìåíþ. Îòêðîéòå îðìó è ïðîàíàëèçèðóéòå åå
ýëåìåíòû, ÷òîáû ðåøèòü, êàêèå ïóíêòû ñëåäóåò âêëþ÷èòü â ìåíþ. Âåðîÿòíåå âñåãî,
âàì ïîòðåáóþòñÿ ïîäìåíþ òèïà Re ord è A tion, â êîòîðûõ áóäóò ïðèñóòñòâîâàòü
ïóíêòû Save, Insert, Remove è Clear. Ïîëüçîâàòåëÿì òàêæå íóæíî áóäåò ïîäìåíþ
Query ñ ïóíêòàìè Enter, Exe ute è Can el.

Ôîðìèðîâàíèå ìåíþ

Åñëè âû çíàåòå, êàêèå ïóíêòû äîëæíî ñîäåðæàòü ìåíþ, òî åãî ñîçäàíèå  äîñòàòî÷íî
ïðîñòàÿ îïåðàöèÿ. àñêðûâàþùååñÿ ìåíþ ñîäåðæèò íåñêîëüêî ïóíêòîâ. Â ñîñòàâ
Forms Builder âõîäèò ðåäàêòîð, óïðîùàþùèé ïðîöåññ ñîçäàíèÿ ìåíþ.
1. Çàïóñòèòå Forms Builder è îòêðîéòå èñõîäíóþ îðìó. Íàéäèòå â îáúåêòíîì íàâè-
ãàòîðå ðàçäåë Menus è ùåëêíèòå íà êíîïêå Create , ÷òîáû ñîçäàòü íîâîå ìåíþ.
Íàçîâèòå ñîîòâåòñòâóþùèé ïóíêò Redwood_Menu. Ìîäóëü ìåíþ  ýòî íàáîð,
â êîòîðûé ìîæåò âõîäèòü íåñêîëüêî ìåíþ äëÿ âñåãî ïðèëîæåíèÿ.
2. Íàéäèòå â íîâîì ðàçäåëå Redwood_Menu ïóíêò Menus è ùåëêíèòå íà êíîïêå
Create , ÷òîáû ñîçäàòü ðåàëüíîå ìåíþ. Íàçîâèòå åãî Main_Menu.
3. Â ðàçäåëå Menus ñîäåðæàòñÿ ýëåìåíòû, ñîîòâåòñòâóþùèå ïóíêòàì ðåàëüíîãî ìå-
íþ. Ïóíêòû ìîæíî ñîçäàòü íåñêîëüêèìè ñïîñîáàìè. Âûáåðèòå ïóíêò Items â ðàç-
äåëå Main_Menu è ùåëêíèòå íà êíîïêå Create , ÷òîáû äîáàâèòü íîâûé ïóíêò.
Íàçîâèòå åãî Agents. Òî÷íî òàê æå ñîçäàéòå ïóíêòû Managers, Re ords è Help.
4. Äëÿ òîãî ÷òîáû óâèäåòü ðåçóëüòàòû ðàáîòû, äâàæäû ùåëêíèòå íà ïèêòîãðàììå ðÿ-
äîì ñ ïóíêòîì Main_Menu; ýòèì âû îòêðîåòå ðåäàêòîð ìåíþ. ×åòûðå ñîçäàííûõ
ðàíåå ïóíêòà ðàñïîëàãàþòñÿ â îêíå ðåäàêòîðà ïî ãîðèçîíòàëè. Íàçâàíèÿ ïóíê-
òîâ ìîæíî çàäàòü ëèáî ñ ïîìîùüþ ïàëèòðû ñâîéñòâ, ëèáî ùåë÷êîì íà êàæäîì
ïóíêòå è ââîäîì òðåáóåìîãî òåêñòà. Íà ðèñ. 11.9 ïîêàçàíî îêíî ðåäàêòîðà ìåíþ,
â êîòîðîì èçìåíåí òåêñò îäíîãî èç ïóíêòîâ.
CD102 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Стандартное меню

èñ. 11.8. Ñòàíäàðòíîå ìåíþ

Ïóíêòû ìåíþ âåðõíåãî óðîâíÿ, êîòîðûå âû òîëüêî ÷òî ñîçäàëè, íàçûâàþòñÿ ðîäè-
òåëüñêèìè. Òåïåðü íàäî äîáàâèòü ê íèì äî÷åðíèå ïóíêòû, ÷òîáû ïîëó÷èòü ýåêò
ðàñêðûâàþùåãîñÿ ìåíþ. Âû äàæå ìîæåòå äîáàâèòü ïîä÷èíåííûå ìåíþ (îáû÷íî îíè
ðàçâîðà÷èâàþòñÿ ñî ñäâèãîì ïî ãîðèçîíòàëè).

5. Âûáåðèòå â ðåäàêòîðå ìåíþ ïóíêò Agents è ùåëêíèòå íà êíîïêå Create Down ,


÷òîáû äîáàâèòü íîâûé ïóíêò, äî÷åðíèé ïî îòíîøåíèþ ê Agents. Ââåäèòå äëÿ
íåãî òåêñò Offers. Îáðàòèòå âíèìàíèå íà îáúåêòíûé íàâèãàòîð, è âû óâèäèòå,
÷òî â Agents_Menu ñîçäàí íîâûé ïóíêò Offers. Ïîâòîðèòå òå æå äåéñòâèÿ äëÿ
âêëþ÷åíèÿ ïóíêòîâ Listings è Properties.
6. Ïîäîáíûì îáðàçîì äîáàâüòå äî÷åðíèå ïóíêòû ìåíþ Managers è íàçîâèòå èõ
Sales by Agent, Sales by City and Agent è Sales by Month and Agent.
7. Äëÿ ìåíþ Re ords äîáàâüòå äî÷åðíèå ïóíêòû Save, Insert, Remove è Clear. Íà
ðèñ. 11.10 ïîêàçàí âíåøíèé âèä íîâîãî ìåíþ.  ñëó÷àå íåîáõîäèìîñòè âû ìîæåòå
èçìåíèòü ïîðÿäîê ñëåäîâàíèÿ ïóíêòîâ.
Ñîçäàíèå ìåíþ CD103

Набор меню
Главное меню

Пункты меню

èñ. 11.9. åäàêòîð ìåíþ

Òåïåðü ïîëüçîâàòåëè ñìîãóò áåç òðóäà ðàáîòàòü ñ ìåíþ. Â åãî ñîñòàâ ìîæíî òàê-
æå âêëþ÷èòü ðàçäåëèòåëè, ÷òîáû âèçóàëüíî îòäåëèòü ãðóïïû ïóíêòîâ. Óñòàíàâëèâàÿ
ñâîéñòâà, âû ìîæåòå ñîçäàòü ïóíêòû ñïåöèàëüíîãî íàçíà÷åíèÿ. Ïðîàíàëèçèðîâàâ âîç-
ìîæíûå çíà÷åíèÿ ñâîéñòâ, âû óâèäèòå, ÷òî åñòü âîçìîæíîñòü çàäàâàòü âìåñòî òåêñòà
ïèêòîãðàììû. Ýòî ïîçâîëÿåò ñîçäàâàòü ñîáñòâåííûå ïàíåëè èíñòðóìåíòîâ.

Ñâÿçûâàíèå äåéñòâèé ñ ìåíþ

Ïîñëå òîãî êàê âû îïðåäåëèòå ïóíêòû ìåíþ, íàäî ðåàëèçîâàòü èõ îáðàáîò÷èêè, ÷òîáû
ïðè âûáîðå ïóíêòà âûïîëíÿëèñü ñîîòâåòñòâóþùèå äåéñòâèÿ. Åñëè âû ñîðìèðîâàëè
ìåíþ Edit (ïóíêòû Cut, Copy è Paste), ìîæåòå ñ ïîìîùüþ ïàëèòðû ñâîéñòâ óñòà-
íîâèòü òèï Magi è âûáðàòü ñîîòâåòñòâóþùèå äåéñòâèÿ. Ñèñòåìà ñîîáùèò âàì, ÷òî
Magi òàêæå ìîæíî èñïîëüçîâàòü äëÿ ìåíþ Help. Îäíàêî íà äàííûé ìîìåíò ýòà
êîìàíäà ðàáîòàåò íåêîððåêòíî. Âìåñòî ýòîãî ëó÷øå ïðèáåãíóòü ê ïîìîùè âñòðîåí-
íûõ ïðîöåäóð, ïåðå÷èñëåííûõ â òàáë. 11.4. Íå çàáûâàéòå, ÷òî âû åùå íå íàïèñàëè
CD104 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

èñ. 11.10. àçìåùåíèå íîâûõ ïóíêòîâ ìåíþ

ÒÀÁËÈÖÀ 11.4. Ñïåöèàëüíûå îðìàòû äëÿ ïóíêòîâ ìåíþ

Òèï Îïèñàíèå
Plain Îáû÷íûé ïóíêò ìåíþ, èäåíòèèöèðóåìûé òåêñòîâîé ñòðîêîé, ñ êî-
òîðîé ñâÿçàí îáðàáîò÷èê ñîáûòèÿ
Che k Ïåðåêëþ÷àòåëü, ïîçâîëÿþùèé óñòàíàâëèâàòü èëè ñáðàñûâàòü íåêîòî-
ðûé ïðèçíàê, íàïðèìåð, èñïîëüçîâàíèå ïîëóæèðíîãî øðèòà
Radio Íàáîð ïåðåêëþ÷àòåëåé, â êîòîðîì ïîëüçîâàòåëü ìîæåò âûáðàòü òîëüêî
îäíî çíà÷åíèå èç ãðóïïû
Separator àçäåëèòåëü ìåæäó ïóíêòàìè ìåíþ
Magi Îäèí èç ïðåäîïðåäåëåííûõ ïóíêòîâ ìåíþ: Cut, Copy, Paste, Clear,
Undo, Help, About, Quit è Window

ñïðàâî÷íûå òåêñòû, ïîýòîìó ïîëüçîâàòåëü íå ïîëó÷èò ðåàëüíîé èíîðìàöèè. Åñòü ëè


ñìûñë ðàáîòàòü ñåé÷àñ íàä ýòèì ïóíêòîì? Êàê íè ñòðàííî, äà. Ñ êàæäûì ïóíêòîì
ìåíþ äîëæíî áûòü ñâÿçàíî äåéñòâèå, â ïðîòèâíîì ñëó÷àå ìåíþ íå ñêîìïèëèðóåòñÿ.
Íà÷íåì ñ ñàìîãî ïðîñòîãî.

1. Ùåëêíèòå ïðàâîé êíîïêîé ìûøè íà ïóíêòå ìåíþ Help è îòêðîéòå ðåäàêòîð


PL/SQL. Ââåäèòå Help; è ñêîìïèëèðóéòå ìîäóëü.
àáîòàÿ íàä ìåíþ, ïîëåçíî çàäàòü êëàâèøè áûñòðîãî äîñòóïà. Êëàâèøà áûñòðî-
ãî äîñòóïà, íàæàòàÿ îäíîâðåìåííî ñ êëàâèøåé <Alt>, ïîçâîëÿåò àêòèâèçèðîâàòü
ïóíêò ìåíþ. Äëÿ òîãî ÷òîáû çàäàòü êëàâèøó áûñòðîãî äîñòóïà, íàäî óêàçàòü ïåðåä
ñîîòâåòñòâóþùåé áóêâîé ñèìâîë &. Ïî óìîë÷àíèþ â ìåíþ âåðõíåãî óðîâíÿ äëÿ
áûñòðîãî äîñòóïà íàçíà÷àåòñÿ êëàâèøà, ñîîòâåòñòâóþùàÿ ïåðâîé áóêâå ïóíêòà.
2. Èçìåíèòå òåêñò äëÿ ïóíêòà Help íà &Help.
Ñîçäàíèå ìåíþ CD105

3. Ñîõðàíèòå ìåíþ, ïðèíÿâ èìÿ, ïðåäëàãàåìîå ïî óìîë÷àíèþ (Redwood_Menu.mmb).


Êîíå÷íî æå, ñåé÷àñ íàäî íàïèñàòü êîä îáðàáîò÷èêîâ, ðåàëèçîâàâ íåîáõîäèìûå
äåéñòâèÿ äëÿ äðóãèõ ïóíêòîâ ìåíþ.
4. Ùåëêíèòå ïðàâîé êíîïêîé ìûøè íà ïóíêòå Offers ìåíþ Agents è âûáåðèòå PL/SQL
Editor. Â îêíå ðåäàêòîðà äîáàâüòå êîä äëÿ îòêðûòèÿ îðìû ListingA tivity, ïðè

ýòîì èñïîëüçóéòå ãëîáàëüíóþ ïåðåìåííóþ Appli ationPath.


CALL_FORM(:GLOBAL.Appli ationPath | |
'ListingA tivity.fmx');

5. Ïîâòîðèòå ïðåäûäóùèé ýòàï äëÿ ïóíêòîâ ìåíþ Listings è Properties.

Îòêðûòèå îò÷åòîâ íàïîìèíàåò îáðàùåíèå ê îðìàìè, íî íàäî ïîìíèòü, ÷òî ïðè


ýòîì èñïîëüçóåòñÿ êîìàíäà Web.Show_Do ument. Êàê âû ïîìíèòå, URL äîñòàòî÷íî
äëèííûé, ïîñêîëüêó âàì íåîáõîäèìî äîáàâèòü Appli ationPath è óñòàíîâèòü òèï.
Âìåñòî òîãî ÷òîáû ïîâòîðíî çàäàâàòü îäíó è òó æå êîìàíäó, æåëàòåëüíî ñîçäàòü
ïðîöåäóðó, êîòîðàÿ áóäåò âûïîëíÿòü ïîâòîðÿþùèåñÿ çàäà÷è.
1. Âûáåðèòå ðàçäåë Program Units â îáúåêòíîì íàâèãàòîðå è ùåëêíèòå íà êíîïêå
Create .
2. Âûáåðèòå Pro edure è ââåäèòå èìÿ Display_Report, çàòåì ùåëêíèòå íà êíîï-
êå OK.
3. Â îêíå ðåäàêòîðà PL/SQL âû óâèäèòå çàãîòîâêó íîâîé ïðîöåäóðû. Ïðè åå âûçîâå
íàäî óêàçàòü èìÿ îò÷åòà, ïðåäíàçíà÷åííîãî äëÿ îòîáðàæåíèÿ, ïîýòîìó äîáàâüòå
ïàðàìåòð, âêëþ÷èâ ìåæäó èìåíåì îò÷åòà è ñëîâîì IS ïîñëåäîâàòåëüíîñòü ñèìâî-
ëîâ (Report_Name IN VARCHAR2).
4. Ââåäèòå êîìàíäó Web.Show_Do ument â òåëî ïðîöåäóðû, íî âêëþ÷èòå íîâûé
ïàðàìåòð (Report_Name) â êà÷åñòâå èìåíè îò÷åòà. Âàøà ïðîöåäóðà äîëæíà âû-
ãëÿäåòü ïðèáëèçèòåëüíî ñëåäóþùèì îáðàçîì:
PROCEDURE Display_Report (Report_Name IN VARCHAR2) IS
BEGIN
Web.Show_Do ument(:GLOBAL.ReportServerURL
| | '?destype= a he'
| | '&' | | :GLOBAL.ReportFormat
| | '&report=' | | :GLOBAL.Appli ationPath | | Report_Name
| | '&userid' | | :GLOBAL.DatabaseServer, '_blank');
END;
5. Òåïåðü âû ìîæåòå âûçûâàòü ïðîöåäóðó â îáðàáîò÷èêàõ ñîáûòèé, ñâÿçàííûõ
ñ ïóíêòàìè ìåíþ. Îòêðîéòå îáðàáîò÷èê PL/SQL äëÿ ïóíêòà Sales by Agent ìåíþ
Managers. Ââåäèòå ñëåäóþùóþ ñòðîêó:

Display_Report('AgentSales.jsp');
6. Ïîâòîðèòå ïðåäûäóùèé øàã äëÿ îñòàëüíûõ äâóõ îò÷åòîâ â ìåíþ Managers. Áóäüòå
âíèìàòåëüíû ïðè ââîäå èìåí.
CD106 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Áîëüøèíñòâî äåéñòâèé, ñâÿçàííûõ ñ ïóíêòàìè ìåíþ, ñâîäÿòñÿ ê îòêðûòèþ îðì


è îò÷åòîâ. Íà äàííûé ìîìåíò âû óæå çíàåòå, êàê âûïîëíÿòü èõ. Âû òàêæå óìååòå
ïîëüçîâàòüñÿ îñíîâíûìè óíêöèÿìè Magi , âñòðîåííûìè â ñèñòåìó ìåíþ. Îäíàêî
åñëè âû îáðàòèòå âíèìàíèå íà ïóíêòû ìåíþ Re ords, òî óâèäèòå, ÷òî âàì íàäî ñêîì-
ïèëèðîâàòü ñïåöèàëüíûé êîä äëÿ äåéñòâèé Save, Insert è Remove. Íåîáõîäèìî çíàòü
êîìàíäû, ñîîòâåòñòâóþùèå ñòàíäàðòíûì ïóíêòàì ìåíþ, ÷òîáû èõ ìîæíî áûëî èñ-
ïîëüçîâàòü â ñâîèõ ðàçðàáîòêàõ. Ýòè êîìàíäû ìîæíî íàéòè â îáúåêòíîì íàâèãàòîðå
â ðàçäåëå Built-in Pa kages. Ïðîöåäóðû ïåðå÷èñëåíû â ðàçäåëå STANDARD Ex-
tensions. Ïîëó÷èòü ïîäðîáíóþ èíîðìàöèþ î êàæäîé êîìàíäå ìîæíî ñ ïîìîùüþ
ñïðàâî÷íîé ñèñòåìû.  òàáë. 11.5 ïðèâåäåíû ñâåäåíèÿ îá îñíîâíûõ ïóíêòàõ ìåíþ
è ñîîòâåòñòâóþùèõ êîìàíäàõ.

1. Âûáåðèòå ïóíêò Save ìåíþ Re ords. Îòêðîéòå ðåäàêòîð PL/SQL, ââåäèòå êîä
Commit_Form; è ñêîìïèëèðóéòå ìîäóëü.
2. Ââåäèòå êîä äëÿ ïóíêòîâ ìåíþ Insert, Remove è Clear.

3. Íà äàííîì ýòàïå ñ êàæäûì ïóíêòîì ìåíþ ñâÿçàíî äåéñòâèå. Ïåðåäàéòå îêóñ


ââîäà Menu Editor, ùåëêíóâ íà ëþáîì ïóíêòå â îêíå ðåäàêòîðà. Çàòåì ùåëêíèòå
íà êíîïêå Compile , ðàñïîëîæåííîé íà îñíîâíîé ïàíåëè èíñòðóìåíòîâ Forms
Builder, ÷òîáû ñêîìïèëèðîâàòü ìåíþ.
4. Åñëè âû ïîëó÷èòå ñîîáùåíèå îá îøèáêå, íàéäèòå ñîîòâåòñòâóþùèé ïóíêò ìåíþ,
óñòðàíèòå ïðîáëåìó è ñêîìïèëèðóéòå ìåíþ ñíîâà.  êîíå÷íîì èòîãå âû äîëæíû
ïîëó÷èòü â íèæíåé ÷àñòè îêíà Forms Builder êîðîòêîå ñîîáùåíèå î òîì, ÷òî ìîäóëü
ñêîìïèëèðîâàí óñïåøíî. Ñòîèò òàêæå ïðîâåðèòü ñîäåðæèìîå ïàïêè è óáåäèòüñÿ,
÷òî â íåé íàõîäèòñÿ ñêîìïèëèðîâàííûé àéë (.mmx).

Äîñòàâêà è èñïîëüçîâàíèå ìåíþ

Óñïåøíî ñêîìïèëèðîâàííîå ìåíþ íàäî ïðèñîåäèíèòü ê îðìàì. Åñëè ìåíþ äîáàâ-


ëÿåòñÿ ê èñõîäíîé îðìå, îíî ïî óìîë÷àíèþ ïðèñîåäèíÿåòñÿ êî âñåì îñòàëüíûì
îðìàì ïðèëîæåíèÿ. Ñòàíäàðòíûé ñïîñîá îïðåäåëåíèÿ ìåíþ ñîñòîèò â èçìåíåíèè
ñâîéñòâ ìåíþ èñõîäíîé îðìû.

1. Îòêðîéòå èñõîäíóþ îðìó. Îòêðîéòå ïàëèòðó ñâîéñòâ äëÿ ìîäóëÿ îðìû (óçåë
Startup). Ïî óìîë÷àíèþ äëÿ ñâîéñòâà Menu Module óñòàíàâëèâàåòñÿ çíà÷åíèå
DEFAULT&SMARTBAR. Çàäàéòå â êà÷åñòâå çíà÷åíèÿ ýòîãî ñâîéñòâà ïîëíûé ïóòü
ê ñêîìïèëèðîâàííîìó àéëó ìåíþ: C:\<ïóòü>\Redwood_Menu.
2.  òîì æå íàáîðå ñâîéñòâ çàäàéòå äëÿ Initial Menu çíà÷åíèå Main_Menu, ñîîò-
âåòñòâóþùåå ñîçäàííîìó âàìè ìåíþ âåðõíåãî óðîâíÿ.
3. Íà ýòîì ýòàïå ìîæíî çàïóñêàòü îðìó è ïðîâåðÿòü ìåíþ.
Ñîçäàíèå ìåíþ CD107

ÒÀÁËÈÖÀ 11.5. ×àñòî èñïîëüçóåìûå ïóíêòû ìåíþ è ñîîòâåòñòâóþùèå

êîìàíäû PL/SQL

Ñòàíäàðòíûé ïóíêò ìåíþ Êîìàíäà


A tion
Save Commit_Form;
Clear All Clear_Form;
Print Print;
Exit Exit_Form;
Edit
Cut Magi :Cut
Copy Magi :Copy
Paste Magi :Paste
Query
Enter Enter_Query;
Exe ute Exe ute_Query;
Can el Abort_Query;
Count Hits Count_Query;
Blo k
Previous Previous_Blo k;
Next Next_Blo k;
Clear Clear_Blo k;
Re ord
Previous Previous_Re ord;
Next Next_Re ord;
First First_Re ord;
Last Last_Re ord;
Insert Create_Re ord;
Remove Delete_Re ord;
Lo k Lo k_Re ord;
Dupli ate Dupli ate_Re ord;
Clear Clear_Re ord;
S roll Up S roll_Up;
S roll Down S roll_Down;

Âû óæå èìååòå äîñòàòî÷íûé îïûò ðàçðàáîòêè, ïîýòîìó, çàäàâàÿ äëèííûé ïóòü


ê àéëó, äîëæíû ïî÷óâñòâîâàòü òðåâîãó. Äåéñòâèòåëüíî, ïðè ïåðåíîñå ïðèëîæåíèÿ
íà ñåðâåð ýòî çíà÷åíèå ïðèäåòñÿ èçìåíèòü. Ìîæíî ëè áûòü óâåðåííûì, ÷òî ýòè èçìå-
íåíèÿ áóäóò âíåñåíû êîððåêòíî?
CD108 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

îðàçäî ëó÷øå çàäàòü íîâîå ìåíþ, ïðèìåíÿÿ âñòðîåííóþ óíêöèþ Re-


pla e_Menu. Äëÿ óñòàíîâêè ïîëíîãî ïóòè ìîæíî èñïîëüçîâàòü ãëîáàëüíóþ ïåðå-
ìåííóþ, ÷òî óïðîñòèò ïåðåíîñ ïðèëîæåíèÿ; äîñòàòî÷íî áóäåò èçìåíèòü çíà÷åíèå
ïåðåìåííîé â îäíîé òî÷êå êîäà.

1. Åñëè âû óæå ìîäèèöèðîâàëè ïîñëåäíèå äâà ñâîéñòâà, óäàëèòå íîâûå çíà÷åíèÿ è


âåðíèòå äëÿ Menu Module çíà÷åíèå DEFAULT&SMARTBAR.
2. Îòêðîéòå îáðàáîò÷èê ñîáûòèÿ When-New-Form-Instan e äëÿ èñõîäíîé îðìû.
Äîáàâüòå â êîíåö ìîäóëÿ ñëåäóþùóþ ñòðîêó êîäà:
Repla e_Menu(:GLOBAL.Appli ationPath | | 'Redwood_Menu',
PULL_DOWN, 'Main_Menu');
3. Ñêîìïèëèðóéòå ìîäóëü, ñîõðàíèòå îðìó è çàïóñòèòå åå. Ïðîâåðüòå äåéñòâèå
êàæäîãî ïóíêòà ìåíþ.

Ïðîâåðÿÿ ìåíþ, ïîêàçàííîå íà ðèñ. 11.11, çàìåòüòå, ÷òî îíî áóäåò äåéñòâîâàòü äëÿ
êàæäîé îðìû â ñîñòàâå ïðèëîæåíèÿ. À ÷òî åñëè âû çàõîòèòå ìîäèèöèðîâàòü åãî äëÿ
îäíîé èç îðì, íàïðèìåð âêëþ÷èòü íîâûé ïóíêò? Ìîæíî íàïèñàòü êîä, äèíàìè÷åñêè
âêëþ÷àþùèé íîâûé ïóíêò èëè çàïðåùàþùèé äîñòóï ê íåêîòîðûì èç èìåþùèõñÿ.
Ìîæíî òàêæå çàäàòü äëÿ îðìû îòäåëüíîå ìåíþ. Ïðîùå âñåãî ñäåëàòü ýòî, äîáàâèâ
â îáðàáîò÷èê ñîáûòèÿ When-New-Form-Instan e îðìû êîìàíäó Repla e_Menu.
Àëüòåðíàòèâíîå ðåøåíèå  çàäàòü ïîëíîå èìÿ ìåíþ â êà÷åñòâå çíà÷åíèÿ ñâîéñòâà è
óêàçàòü DO_REPLACE â êîìàíäå Call_Form, îòêðûâàþùåé íîâóþ îðìó. Íàïðèìåð:
Call_Form(:GLOBAL.Appli ationPath||'Agents.fmx', HIDE, DO_REPLACE);
Îïÿòü æå íåëüçÿ çàáûâàòü, ÷òî, óêàçûâàÿ ïîëíûé ïóòü, âû çàòðóäíÿåòå ïåðåíîñ
ïðèëîæåíèÿ. Åñëè âû ðåøèòå ñëåäîâàòü äàííîìó ïîäõîäó, íàäî çàäàòü òîëüêî èìÿ
àéëà, à äîñòóï ê íåìó îðãàíèçîâàòü, îòðåäàêòèðîâàâ êîíèãóðàöèîííûé àéë ñåð-
âåðà ïðèëîæåíèé Ora le. Êîíèãóðàöèîííûé àéë êîíòðîëèðóåò ðàñïîëîæåíèå âñåõ
îðì è ìåíþ.

. Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé

Ïðèëîæåíèå äîëæíî íå òîëüêî âûïîëíÿòü ïîñòàâëåííûå ïåðåä íèì çàäà÷è, íî è õî-


ðîøî âûãëÿäåòü. Âû óæå âêëþ÷èëè â ïðèëîæåíèå îðìû è îò÷åòû, à òàêæå ñîçäàëè
èñõîäíóþ îðìó, óïðîùàþùóþ ðàáîòó ïîëüçîâàòåëÿ. Âû òàêæå íà÷àëè ðàáîòó íàä
ìåíþ, îáåñïå÷èâàþùåì íàâèãàöèþ â ïðåäåëàõ ïðèëîæåíèÿ è çàïóñê îðì. Îäíàêî
åùå íå ñäåëàíà âàæíàÿ ÷àñòü ðàáîòû  íå ñîçäàíà ñïðàâî÷íàÿ ñèñòåìà. Âñïîìíèòå,
ñêîëüêî ðàç âàì ïðèõîäèëîñü îáðàùàòüñÿ ê ñïðàâî÷íîé ñèñòåìå ïðè ðàáîòå ñ òàêèìè
ïðîãðàììàìè, êàê Word, Ex el è Forms Builder. Õîðîøàÿ ñèñòåìà ïîäñêàçêè ñóùå-
ñòâåííî óïðîùàåò ðàáîòó ñ ïðèëîæåíèåì.
Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé CD109

Вновь созданное меню

èñ. 11.11. Íîâîå ìåíþ â ñîñòàâå ïðèëîæåíèÿ

Ñòàíäàðòíûå ðåøåíèÿ äëÿ ïðåäñòàâëåíèÿ ñïðàâî÷íîé èíîðìàöèè âûðàáàòûâà-


ëèñü ãîäàìè.  íàñòîÿùåå âðåìÿ, îáðàùàÿñü ê ñïðàâî÷íîé ñèñòåìå, ïîëüçîâàòåëü
îæèäàåò, âî-ïåðâûõ, óâèäåòü êîíòåêñòíóþ ïîäñêàçêó, ò.å. ïåðâàÿ ñòðàíèöà ñïðàâî÷íîé
ñèñòåìû, îòîáðàæàåìàÿ íà ýêðàíå äîëæíà áûòü íåïîñðåäñòâåííî ñâÿçàíà ñ òåêóùåé
ðåøàåìîé çàäà÷åé. Äëÿ ïðèëîæåíèÿ, îñíîâàííîãî íà áàçå äàííûõ, ýòî îçíà÷àåò, ÷òî
ïîëüçîâàòåëü, âûáèðàþùèé ïóíêò ìåíþ Help èëè íàæèìàþùèé êëàâèøó <F1>, äîë-
æåí óâèäåòü ñòðàíèöó, êîòîðàÿ îáúÿñíÿåò íàçíà÷åíèå òåêóùåé îðìû. Âî-âòîðûõ,
ñïðàâî÷íàÿ ñèñòåìà äîëæíà îòîáðàæàòü ñîäåðæàíèå, îðãàíèçóþùåå àéëû ñî ñïðà-
âî÷íîé èíîðìàöèåé â èåðàðõè÷åñêóþ ñèñòåìó. Íàçâàíèå ïóíêòîâ îòðàæàþò îáùåå
íàçíà÷åíèå ðàçäåëîâ ñïðàâî÷íîé ñèñòåìû; ðàçâîðà÷èâàÿ èõ, ïîëüçîâàòåëü ïîëó÷àåò
áîëåå ïîäðîáíóþ èíîðìàöèþ ïî êîíêðåòíîìó âîïðîñó. Â-òðåòüèõ, ñïðàâî÷íàÿ ñè-
ñòåìà äîëæíà áûòü èíäåêñèðîâàíà. Ñòðàíèöà èíäåêñîâ, èëè ïðåäìåòíûé óêàçàòåëü, 
ýòî îòñîðòèðîâàííûé ñïèñîê êëþ÷åâûõ ñëîâ. Ïî ùåë÷êó íà êîíêðåòíîì ñëîâå îòîá-
ðàæàåòñÿ ñòðàíèöà ñ èíîðìàöèåé ïî äàííîé òåìå. Â-÷åòâåðòûõ, ñïðàâî÷íàÿ ñèñòåìà
äîëæíà ïðåäîñòàâëÿòü ñòðàíèöó ïîèñêà, ãäå ïîëüçîâàòåëü ìîæåò ââåñòè ñëîâî èëè
ðàçó è ïîëó÷èòü çàãîëîâêè ðàçäåëîâ, â êîòîðûõ èìååòñÿ óêàçàííàÿ èíîðìàöèÿ.
CD110 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Ñîçäàòü ïîäîáíóþ ñèñòåìó ñ íóëÿ áûëî áû äîñòàòî÷íî ñëîæíî, îäíàêî ðàçðàáî-


òàíû ñïåöèàëèçèðîâàííûå ñðåäñòâà, óïðîùàþùèå ðåøåíèå òàêèõ çàäà÷. àçðàáîò÷èê
ìîæåò ñîñðåäîòî÷èòü âíèìàíèå íà ñîäåðæèìîì ñïðàâî÷íîé ñèñòåìû, à äåéñòâèÿ ïî
îðãàíèçàöèè äàííûõ ïî÷òè ïîëíîñòüþ àâòîìàòèçèðîâàíû. Îäíàêî íåëüçÿ çàáûâàòü,
÷òî íàïèñàíèå òåêñòîâ ñïðàâî÷íîé ñèñòåìû  ýòî öåëèêîì âàøà çàäà÷à.
Êàê âû óâèäèòå, äàæå äëÿ ïðîñòîãî ïðèëîæåíèÿ íóæíû äåñÿòêè, à òî è ñîòíè
ñòðàíèö ñïðàâî÷íîé èíîðìàöèè. Ïðè ðàáîòå íàä áîëüøèìè ïðîåêòàìè äëÿ íàïè-
ñàíèÿ, ðåäàêòèðîâàíèÿ è îðãàíèçàöèè ñïðàâî÷íûõ àéëîâ îðìèðóåòñÿ ñïåöèàëüíàÿ
ðàáî÷àÿ ãðóïïà.

Ñïðàâî÷íàÿ Web-ñèñòåìà Ora le

Ora le ïðåäîñòàâëÿåò äâå îñíîâíûå ñïðàâî÷íûå ñèñòåìû: îäíó íà áàçå Java (.OHJ),
à äðóãóþ  íà áàçå Web (.OHW). Ïîäãîòîâêà àéëîâ îñóùåñòâëÿåòñÿ îäèíàêîâî äëÿ
îáåèõ ñèñòåì, íî ïîñêîëüêó ïðèëîæåíèÿ â îñíîâíîì ñîçäàþòñÿ äëÿ ðàáîòû â Web,
ìû óäåëèì çäåñü âíèìàíèå èìåííî Web-ñèñòåìå (.OHW).
×òîáû ñîðìèðîâàòü ñïðàâî÷íóþ ñèñòåìó äëÿ ñâîåãî ïðèëîæåíèÿ, âàì ïðèäåò-
ñÿ ñîçäàòü íåñêîëüêî òèïîâ àéëîâ. Â áîëüøèõ ïðîåêòàõ, ïî-âèäèìîìó, íå óäàñòñÿ
îáîéòèñü áåç ñïåöèàëüíîãî ðåäàêòîðà ñïðàâî÷íûõ ñèñòåì, âêëþ÷àþùåãî ãåíåðàòî-
ðû âñïîìîãàòåëüíûõ àéëîâ è ñðåäñòâà îòñëåæèâàíèÿ âåðñèé îñíîâíûõ äîêóìåíòîâ.
Åñëè ïðèëîæåíèå äîñòàòî÷íî ïðîñòîå, âñå íåîáõîäèìûå àéëû ìîæíî ñîçäàòü âðó÷-
íóþ ñ ïîìîùüþ îáû÷íîãî òåêñòîâîãî ðåäàêòîðà, íàïðèìåð Wordpad. Òèïû àéëîâ,
êîòîðûå ïîíàäîáÿòñÿ âàì äëÿ ñïðàâî÷íîé ñèñòåìû, ïåðå÷èñëåíû â òàáë. 11.6.
Ïåðåä òåì êàê âïëîòíóþ ïðèñòóïèòü ê ñîçäàíèþ àéëîâ ñî ñïðàâî÷íîé èíîðìà-
öèåé, íåîáõîäèìî îáñóäèòü ðÿä âàæíûõ âîïðîñîâ. Ïîñêîëüêó ïðèëîæåíèå âûïîëíÿ-
åòñÿ â ñðåäå Web, ïî÷åìó áû íå èñïîëüçîâàòü â êà÷åñòâå ñïðàâî÷íîé ñèñòåìû íàáîð
îáû÷íûõ HTML-ñòðàíèö? Êîìàíäó Web.Show_Do ument ìîæíî èñïîëüçîâàòü äëÿ
îòêðûòèÿ ëþáîé HTML-ñòðàíèöû, ñëåäîâàòåëüíî, äàííûé ïîäõîä äîëæåí ðàáîòàòü.
Îñíîâíîé àðãóìåíò â ïîëüçó ïðèìåíåíèÿ .OHW  ýòî íàëè÷èå ïðîöåäóð äëÿ ïîääåðæ-
êè èíäåêñîâ è âûïîëíåíèÿ ïîèñêà. Îäíàêî ñóùåñòâóþò ñòàíäàðòíûå ñðåäñòâà, ïîë-
íîñòüþ îáåñïå÷èâàþùèå èíäåêñèðîâàíèå è ïîèñê íà ñòàíäàðòíûõ HTML-ñòðàíèöàõ.
 êîíå÷íîì èòîãå îòâåò äà äàííûé âîïðîñ äîëæíà äàòü îðãàíèçàöèÿ MIS. Ê ñ÷àñòüþ,
ñàìàÿ ñëîæíàÿ ðàáîòà ïî íàïèñàíèþ ñïðàâî÷íûõ äàííûõ îñóùåñòâëÿåòñÿ îäèíàêîâî
äëÿ îáîèõ ïîäõîäîâ, ïîýòîìó âû íå ïîòðàòèòå ìíîãî âðåìåíè, åñëè âïîñëåäñòâèè âàì
ïðèäåòñÿ ïåðåéòè îò îäíîé ñèñòåìû ê äðóãîé.

Ñîçäàíèå ñïðàâî÷íûõ HTML-àéëîâ

Äëÿ êàæäîé òåìû, èíîðìàöèþ î êîòîðîé âû õîòèòå ïðåäñòàâèòü ïîëüçîâàòåëþ, íà-


äî ñîçäàòü îòäåëüíóþ HTML-ñòðàíèöó. Â ðàìêàõ ðàáîòû íàä äàííûì ïðîåêòîì ìû
ñîçäàäèì òðè ñòðàíèöû è ïðîäåìîíñòðèðóåì íà èõ ïðèìåðå ðàçëè÷íûå îñîáåííîñòè
Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé CD111

ÒÀÁËÈÖÀ 11.6. Ôàéëû, íåîáõîäèìûå äëÿ ñïðàâî÷íîé ñèñòåìû

Òèï àéëà Ñòðóêòóðà è íàçíà÷åíèå


Ôàéëû ñ èíîðìàöèåé ïî òåìàì HTML-àéëû, ñîäåðæàùèå ñâåäåíèÿ, ïðåäîñòàâ-
ëÿåìûå ïîëüçîâàòåëþ. Êàæäûé àéë ñëåäóåò ïî-
ñâÿùàòü îòäåëüíîé òåìå
Ñîäåðæàíèå XML-àéëû, ïðåäîñòàâëÿþùèå èåðàðõè÷åñêèé
ñïèñîê ñòðàíèö ïî òåìàì
Èíäåêñíûå àéëû XML-àéëû, ñîäåðæàùèå êëþ÷åâûå ñëîâà è ññûë-
êè íà ñîîòâåòñòâóþùèå èì òåìû
Ïîèñêîâûå èíäåêñíûå àéëû XML-àéëû, ñîäåðæàùèå áàçó äàííûõ, èñïîëüçó-
åìóþ äëÿ ïîèñêà â òåêñòå
Ôàéëû ñâÿçåé XML-àéëû, îïðåäåëÿþùèå àññîöèàòèâíûå ñâÿçè
ìåæäó ðàçëè÷íûìè òåìàìè
Ôàéëû îòîáðàæåíèé XML-àéëû, ñâÿçûâàþùèå èäåíòèèêàòîðû òåì
ñ ñîîòâåòñòâóþùèìè àéëàìè. Â ðåçóëüòàòå ïîÿâ-
ëÿåòñÿ âîçìîæíîñòü ññûëàòüñÿ íà òåìó ïî èäåíòè-
èêàòîðó
Ôàéë helpset XML-àéë, îïðåäåëÿþùèé âíåøíèé âèä è äåé-
ñòâèÿ ñïðàâî÷íîé ñèñòåìû
Êîíèãóðàöèîííûé àéë OHW Ôàéë íà ñåðâåðå, ñîîáùàþùèé ñèñòåìå, ãäå ñëåäó-
ohw onfig.xml åò èñêàòü àéëû ñî ñïðàâî÷íîé èíîðìàöèåé

ñïðàâî÷íîé ñèñòåìû.  ðåàëüíûõ ïðîåêòàõ ÷èñëî HTML-ñòðàíèö äîñòèãàåò äåñÿòêîâ


è äàæå ñîòåí. Â ïðîöåññå ðàáîòû ìîæíî èñïîëüçîâàòü ëþáîé HTML-ðåäàêòîð, îäíàêî
íåêîòîðûå äàííûå ïðèõîäèòñÿ äîáàâëÿòü âðó÷íóþ, ïîýòîìó ïðèãîòîâüòåñü ê òîìó, ÷òî
âàì ïðèäåòñÿ íåïîñðåäñòâåííî ðåäàêòèðîâàòü HTML-êîä.

1. Ñîçäàéòå íîâóþ ïàïêó â ñîñòàâå RedwoodRealty è íàçîâèòå åå HelpFiles.


2. Ñîçäàéòå ãëàâíóþ ñïðàâî÷íóþ ñòðàíèöó è ñîõðàíèòå åå â íîâîé ïàïêå ïîä èìåíåì
Redwood.html. Åñëè âû õîòèòå âêëþ÷èòü ëîãîòèï, åãî íàäî ïîìåñòèòü â òó æå
ïàïêó. Ïðîâåðüòå ñîçäàííûé HTML-êîä, îòêðûâ àéë ñ ïîìîùüþ áðàóçåðà.
<HTML><HEAD>
<TITLE>Redwood Realty</TITLE>
</HEAD><BODY>
<H1>Redwood Realty Information System</H1>
<TABLE><TR>
<TD><IMG SRC="RedwoodLogo1.jpg" border="0" height="110"></TD>
<TD>The Redwood Realty information system olle ts all
sales and listings data for the firm.</TD>
</TR></TABLE>
<H2>Help for Primary Tasks</H2>
<UL>
CD112 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

<LI><A HREF="Agents.html">Agent Tasks</A></LI>


<LI><A HREF="Management.html">Management Tasks</A></LI>
</UL>
</BODY></HTML>
3. Ñîçäàéòå åùå äâå HTML-ñòðàíèöû: Agents.html è Management.html. Ýòè ñòðà-
íèöû î÷åíü ïðîñòû, íà òåêóùèé ìîìåíò âàæåí ëèøü ñàì àêò èõ ñóùåñòâîâàíèÿ.
Âêëþ÷èòå â êàæäûé èç HTML-àéëîâ ññûëêó íà èñõîäíóþ ñòðàíèöó.
<HTML><HEAD>
<TITLE>Agents</TITLE>
</HEAD><BODY>
<H1>Help for Agents</H1>
<P>This is the main help file for agents.
Later, we will add more items.</P>
<P><A HREF="Redwood.html">Main help</A></P>
</BODY></HTML>
4. Ïðîâåðüòå àéëû ñ ïîìîùüþ ñòàíäàðòíîãî áðàóçåðà è óáåäèòåñü, ÷òî ññûëêè
äåéñòâóþò.

Ora le òàêæå ïîçâîëÿåò îïðåäåëÿòü ññûëêè, èñïîëüçóÿ âìåñòî ðåàëüíîãî èìåíè


àéëà èäåíòèèêàòîð òåìû. Îäíàêî ïîäîáíûå ññûëêè ìîæíî ïðîâåðèòü òîëüêî â ðàì-
êàõ ñïðàâî÷íîé ñèñòåìû Ora le. Îíè èìåþò îïðåäåëåííîå ïðåèìóùåñòâî, ñîñòîÿùåå
â òîì, ÷òî âñå ññûëêè ðàçìåùàþòñÿ â îäíîì ìåñòå. Ýòî óïðîùàåò ïîèñê ðàçðóøåí-
íûõ ñâÿçåé. Äëÿ ïðîâåðêè îáû÷íûõ HTML-àéëîâ è ñîäåðæàùèõñÿ â íèõ ññûëîê
ñóùåñòâóþò ñàìûå ðàçíîîáðàçíûå ñðåäñòâà. Îíè ðàáîòàþò òîëüêî ïðè èñïîëüçîâà-
íèè ñòàíäàðòíûõ HTML-äåñêðèïòîðîâ, îðìèðóþùèõ ãèïåðòåêñòîâûå ññûëêè.
Ora le òàêæå ïîääåðæèâàåò àññîöèàòèâíûå ññûëêè. Â àññîöèàòèâíûõ ññûëêàõ
äëÿ îòîáðàæåíèÿ ñïèñêîâ òåì èñïîëüçóþòñÿ êëþ÷åâûå ñëîâà. Íàïðèìåð, âû ìîæå-
òå ïîìåñòèòü ñëåäóþùóþ ñòðîêó êàê íà ñòðàíèöó âåðõíåãî óðîâíÿ, òàê è â àéë
Agents.html:
<A HREF="alink: agent ">Topi s about agents.</A>
Êîãäà àéë ñî ñïðàâî÷íîé èíîðìàöèåé áóäåò ñîçäàí, ïîëüçîâàòåëü ñìîæåò ùåëê-
íóòü íà ññûëêå è ïîëó÷èòü ñïèñîê ñòðàíèö, ñîäåðæàùèõ óêàçàííîå êëþ÷åâîå ñëîâî.
Îäíàêî äëÿ òîãî, ÷òîáû èñïîëüçîâàòü àññîöèàòèâíûå ññûëêè, íàäî ñîçäàòü àéë ñâÿ-
çåé. Êðîìå òîãî, äëÿ îáû÷íîãî áðàóçåðà àññîöèàòèâíûå ññûëêè íå èìåþò ñìûñëà; èõ
îáðàáàòûâàåò òîëüêî ñïðàâî÷íàÿ ñèñòåìà Ora le.
Äëÿ ðàáîòû â ñèñòåìå Ora le òàêæå íàäî ñîçäàòü àéë îòîáðàæåíèé. Ñïðàâî÷íàÿ
ñèñòåìà ññûëàåòñÿ íà ñòðàíèöû ïî èäåíòèèêàòîðàì. Èäåíòèèêàòîð ìîæåò áûòü
÷èñëîâûì èëè òåêñòîâûì, íî íå äîëæåí ñîäåðæàòü ïðîáåëîâ. Êàê ïðàâèëî, èäåíòè-
èêàòîð îðìèðóåòñÿ èç èìåíè àéëà ïóòåì çàìåíû òî÷åê íà çíàêè ïîä÷åðêèâàíèÿ.

5. Äëÿ äàííîãî ïðèìåðà âàì íàäî ñîçäàòü è ñîõðàíèòü òåêñòîâûé àéë topi s.xml.
<?xml version='1.0' ?>
<map version="1.0">
Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé CD113

<mapID target="Redwood_html" url="Redwood.html" />


<mapID target="Agents_html" url="Agents.html" />
<mapID target="Management_html" url="Management.html" />
</map>
6. Âàì òàêæå íàäî ñîçäàòü àéë ñ ñîäåðæàíèåì ñèñòåìû, ïîäîáíûì òîìó, êîòîðîå
âû âèäèòå â êàæäîé êíèãå. Ñîçäàéòå è ñîõðàíèòå òåêñòîâûé àéë to .xml. Â íåì
óêàçàíû îñíîâíîé çàãîëîâîê Introdu tion è ïîä÷èíåííûå çàãîëîâêè Agents
è Managers.
<?xml version='1.0' ?>
<to version="1.0">
<to item text="Introdu tion to Redwood Realty IS">
<to item target="Redwood_html"
text="Introdu tion to Redwood Realty IS" >
<to item target="Agents_html" text="Tasks for agents." />
<to item target="Management_html"
text="Tasks for managers." />
</to item>
</to item>
</to >
7. Èíäåêñèðîâàíèå  áîëåå ñëîæíàÿ çàäà÷à, òàê êàê âàì íàäî ðåøèòü, êàê ãðóïïè-
ðîâàòü òåìû. Â ñëåäóþùåì ïðèìåðå ñîçäàåòñÿ âõîä äëÿ Introdu tion è âòî-
ðîé âõîä äëÿ çàäà÷, îáúåäèíÿþùèé ðàçëè÷íûå êàòåãîðèè ïîëüçîâàòåëåé (Agents
è Managers). Ñîçäàéòå è ñîõðàíèòå òåêñòîâûé àéë index.html.
<?xml version='1.0' ?>
<index version="1.0">
<indexitem target="Introdu tion"
text="Introdu tion to the system">
<indexentry target="Redwood_html" text="Introdu tion" />
</indexitem>
<indexitem target="Tasks by user"
text="Tasks by type of user">
<indexentry target="Agents_html" text="Agent tasks" />
<indexentry target="Management_html"
text="Management tasks" />
</index item>
</index>
8. Åñëè âàì íàäî ñîçäàòü àññîöèàòèâíûå ññûëêè, âàì òàêæå íàäî äîáàâèòü àéë,
êîòîðûé ñãðóïïèðóåò ýòè ññûëêè. Åñëè âû óêàçàëè àññîöèàòèâíóþ ññûëêó ðàíåå,
íåîáõîäèìî ñîçäàòü äâà ýëåìåíòà, ïîêàçàííûå íèæå. Ñîõðàíèòå àéë ïîä èìåíåì
links.xml.
<?xml version='1.0' ?>
<link version="1.0">
<linkitem topi ="agent">
<linkentry target="Redwood_html" text="Introdu tion" />
<linkentry target="Agents_html" text="Agent tasks" />
</linkitem>
</link>
CD114 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

9. Äëÿ ðåàëèçàöèè ñðåäñòâ ïîèñêà âàì íóæåí ïîèñêîâûé èíäåêñíûé àéë, êîòîðûé
äîëæåí èìåòü äâîè÷íûé îðìàò. Ora le ïîñòàâëÿåò ïðîãðàììó Text Sear h Indexer
â ñîñòàâå ñèñòåìû Ora le Java Help, îäíàêî â ñïðàâî÷íîé ñèñòåìå äëÿ Web ïî-
äîáíîå ñðåäñòâî îòñóòñòâóåò. Ïîýòîìó âàì íàäî ñêîïèðîâàòü è èíñòàëëèðîâàòü
ñïðàâî÷íóþ ñèñòåìó Java, ÷òîáû çàïóñòèòü ïðîãðàììó èíäåêñèðîâàíèÿ è ñîçäàòü
àéë sear h.idx. Îïèñàíèå äåòàëåé äàííîãî ïðîöåññà âûõîäèò çà ðàìêè äàííîé
êíèãè. Íåîáõîäèìóþ èíîðìàöèþ âû ïîëó÷èòå â äîêóìåíòàöèè, ïðåäîñòàâëÿåìîé
Ora le. Åñëè âû õîòèòå ñîðìèðîâàòü ñïðàâî÷íóþ ñèñòåìó, íå ñîçäàâàÿ ïîèñêîâûõ
èíäåêñîâ, ìîæåòå ñêîïèðîâàòü àéë, ïîñòàâëÿåìûé ñ ñèñòåìîé OHW, â êà÷åñòâå
ïðèìåðà. Äàííûé èíäåêñ íå áóäåò ðàáîòàòü ñ âàøèì ïðèëîæåíèåì, íî îñòàëüíûå
êîìïîíåíòû ñèñòåìû áóäóò óíêöèîíèðîâàòü íîðìàëüíî.
10. Òåïåðü, êîãäà âñå âñïîìîãàòåëüíûå àéëû ãîòîâû, âû ìîæåòå ñîçäàòü àéë
helpset. Ýòîò àéë îðìèðóåò îêíî äëÿ ñïðàâî÷íîé ñèñòåìû è ñîîáùàåò Ora le
èìåíà îñòàëüíûõ àéëîâ. Îáúåì åãî äîñòàòî÷íî âåëèê, íî åñëè âû áóäåòå èñ-
ïîëüçîâàòü ñòàíäàðòíûå èìåíà âñïîìîãàòåëüíûõ àéëîâ, òî ñìîæåòå ñêîïèðîâàòü
çàãîòîâêó àéëà helpset è ñêîððåêòèðîâàòü íåñêîëüêî èìåí. Ñîõðàíèòå àéë ïîä
èìåíåì RedwoodHelp.hs.
<?xml version='1.0'?>
<helpset version="1.1">
<title>Redwood Realty</title>
<maps>
<mapref lo ation="topi s.xml"/>
</maps>
<links>
<linkref lo ation="links.xml"/>
</links>
<view>
<label>Table of Contents</label>
<type>ora le.help.navigator.to Navigator.TOCNavigator
</type>
<data engine="ora le.help.engine.XMLTOCEngine">to .xml</data>
</view>
<view>
<label>Keyword Index</label>
<type>
ora le.help.navigator.keywordNavigator.KeywordNavigator
</type>
<data engine="ora le.help.engine.XMLIndexEngine">
index.xml</data>
</view>
<view>
<label>Sear h</label>
<title>Redwood Realty</title>
<type>ora le.help.navigator.sear hNavigator.Sear hNavigator
</type>
<data engine="ora le.help.engine.Sear hEngine">
sear h.idx</data>
</view>
</helpset>
Ñîçäàíèå àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé CD115

Äîñòàâêà è èñïîëüçîâàíèå àéëîâ


ñî ñïðàâî÷íîé èíîðìàöèåé

Òåïåðü, êîãäà ó âàñ åñòü âñå îñíîâíûå è âñïîìîãàòåëüíûå àéëû äëÿ ñïðàâî÷íîé
ñèñòåìû, èõ íàäî èíòåãðèðîâàòü â ïðèëîæåíèå. Äëÿ ýòîãî íàäî èíñòàëëèðîâàòü ïàêåò
.OWH èëè ïåðåíåñòè âñå àéëû íà Ora leAS. Ïðè íåîáõîäèìîñòè âû ìîæåòå ñêî-
ïèðîâàòü àéëû .OWH ñ Web-óçëà OTN. Äëÿ èíñòàëëÿöèè àéëîâ íàäî ðàñïàêîâàòü
àðõèâ â êîðíåâîì êàòàëîãå Ora le. Ôàéë ReadMe.txt ñîäåðæèò èíñòðóêöèè ïî íà-
ñòðîéêè è çàïóñêó ñèñòåìû. Äëÿ èíñòàëëÿöèè ñèñòåìû âàì íàäî ïåðåéòè â ðåæèì
êîìàíäíîé ñòðîêè è çàïóñòèòü Java-ïðîãðàììó.
×òîáû âûïîëíèòü äîñòàâêó àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé, íàäî â ïåðâóþ
î÷åðåäü íàéòè è ìîäèèöèðîâàòü àéë ohw onfig.xml. Ñ ïîìîùüþ Windows Ex-
plorer íàéäèòå ýòîò àéë íà ñâîåì êîìïüþòåðå. Çàòåì âàì íàäî âíåñòè â ñîäåðæèìîå
àéëà íåçíà÷èòåëüíûå èçìåíåíèÿ, ÷òîáû ñèñòåìà çíàëà, ãäå íàéòè àéë helpset.

1. Íàéäèòå àéë ohw onfig.xml è ìîäèèöèðóéòå åãî ñ ïîìîùüþ WordPad. Ïî


óìîë÷àíèþ ýòîò àéë íàõîäèòñÿ â êàòàëîãå <èíñòàëëÿöèîííûé_êàòàëîã>\ohw
\j2ee\home\appli ations\auto\ohw\ohw-demo\helpsets. Èçìåíèòå ðàçäåë
<books>, äîáàâèâ â íåãî èíîðìàöèþ î àéëå helpset. Åñëè âû õîòèòå ïðåäî-
ñòàâèòü ïîëüçîâàòåëþ äîñòóï ê äîïîëíèòåëüíîé ñïðàâî÷íîé èíîðìàöèè, ìîæåòå
îñòàâèòü â àéëå îñòàëüíûå îïðåäåëåíèÿ helpset. Åñëè âû ñ÷èòàåòå, ÷òî íàëè÷èå
äîïîëíèòåëüíûõ ñâåäåíèé íå îïðàâäàíî, óäàëèòå ëèøíèå çàïèñè.
<books ombineBooks="true"useLabelInfo="true≫
<helpSet id="Redwood"lo ation="Redwood/RedwoodHelp.hs"/>
... Îñòàâüòå ëèáî óäàëèòå îñòàëüíûå îïðåäåëåíèÿ helpset
</books>
2. Ñîçäàéòå â êàòàëîãå, ñîäåðæàùåì àéë ohw onfig.xml, ïàïêó Redwood. Ñêîïè-
ðóéòå â íåå âñå àéëû âàøåé ñïðàâî÷íîé ñèñòåìû.
3. Çàïóñòèòå OC4J, ïîñòàâëÿåìûé ñ ïðèëîæåíèåì OWH. Äëÿ ýòîãî èñïîëüçóéòå êî-
ìàíäó, îïèñàííóþ â àéëå ReadMe.txt. Òåïåðü âû ìîæåòå ïðîñìîòðåòü ñâîè
àéëû, çàïóñòèâ áðàóçåð è çàäàâ â ñòðîêå àäðåñà ñëåäóþùèé URL:
http://lo alhost:8888/ohw-demo/help/?topi =Redwood_html
Íà äàííîì ýòàïå ðàáîòû íåîáõîäèìî âûÿñíèòü, êàê ñâÿçàòü êàæäóþ ñòðàíèöó
ñî ñïðàâî÷íîé èíîðìàöèåé. Äëÿ ýòîãî íàäî ñîçäàòü â êàæäîé îðìå ñïåöèàëüíóþ
êíîïêó (èëè ïóíêò ìåíþ) è èñïîëüçîâàòü êîìàíäó Web.Show_Do ument. Ìîäè-
èöèðóéòå èäåíòèèêàòîð äëÿ êàæäîé ñòðàíèöû. Êîãäà ïîëüçîâàòåëü ùåëêíåò íà
êíîïêå, áðàóçåð âûçîâåò ñïðàâî÷íóþ ñèñòåìó è âûâåäåò ñîîòâåòñòâóþùèå ñâåäå-
íèÿ. Ïàðàìåòð _blank ïîçâîëèò îòîáðàçèòü äàííûå â íîâîì îêíå áðàóçåðà.
CD116 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

èñ. 11.12. Ââîäíàÿ èíîðìàöèÿ ñïðàâî÷íîé ñèñòåìû

4. Îòêðîéòå èñõîäíóþ îðìó è îòðåäàêòèðóéòå îáðàáîò÷èê ñîáûòèÿ When-New-


Form-Instan e. Îïðåäåëèòå íîâóþ ãëîáàëüíóþ ïåðåìåííóþ:
:GLOBAL.HelpServerURL := 'http://lo alhost:8888/ohw-demo/help/';
5. Íîâàÿ ïåðåìåííàÿ ìîæåò èñïîëüçîâàòüñÿ äëÿ îáðàùåíèÿ ê ñåðâåðó ñïðàâî÷íîé
èíîðìàöèè. Îòêðîéòå àéë Redwood_Menu, îòîáðàçèòå Main_Menu è èçìåíèòå
êîä PL/SQL äëÿ ïóíêòà Help.
Web.Show_Do ument(:GLOBAL.HelpServerURL | |
'?topi =Redwood_html', '_blank');

6. Ñîõðàíèòå è ñêîìïèëèðóéòå ìåíþ. Çàïóñòèòå èñõîäíóþ îðìó. Ïîñëå òîãî êàê


âû âûáåðåòå ïóíêò ìåíþ Help, îòîáðàçèòñÿ ñòðàíèöà ñî ââîäíîé èíîðìàöèåé,
ïîêàçàííàÿ íà ðèñ. 11.12.

Åñëè îïèñàííûå äåéñòâèÿ âûãëÿäÿò ñëèøêîì ñëîæíûìè, ó÷òèòå, ÷òî ñóùåñòâóþò


êîììåð÷åñêèå ïàêåòû, ñïåöèàëüíî ïðåäíàçíà÷åííûå äëÿ ñîçäàíèÿ ñïðàâî÷íûõ ñèñòåì.
Ìíîãèå îðãàíèçàöèè, ðàáîòàþùèå íàä áîëüøèìè ïðèëîæåíèÿìè, ïðèîáðåòàþò èõ.
åçþìå CD117

Òàêèå èíñòðóìåíòû àâòîìàòèçèðóþò ñóùåñòâåííóþ ÷àñòü ðàáîòû, ñâÿçàííóþ â îñíîâ-


íîì ñ ñîçäàíèåì âñïîìîãàòåëüíûõ àéëîâ. Îäíàêî òåêñòû ñïðàâî÷íîé ñèñòåìû â ëþ-
áîì ñëó÷àå ïðèõîäèòñÿ ïèñàòü ñàìîñòîÿòåëüíî. Êðîìå òîãî, íåëüçÿ çàáûâàòü î òîì,
÷òî ñåðâåð äîëæåí áûòü ñêîíèãóðèðîâàí äëÿ ðàáîòû ñî ñïðàâî÷íûìè àéëàìè. È íà-
êîíåö, êàê ðàçðàáîò÷èê âû îòâå÷àåòå çà ñâÿçûâàíèå ñïðàâî÷íîé ñèñòåìû ñ îðìàìè.
Åñëè âû ñîáèðàåòåñü ðàáîòàòü òîëüêî â Web, òî âàì, âîçìîæíî, èìååò ñìûñë
îãðàíè÷èòüñÿ ñîçäàíèåì íàáîðà HTML-àéëîâ. Ñóùåñòâóåò áîëüøîå êîëè÷åñòâî ðå-
äàêòîðîâ è äðóãèõ èíñòðóìåíòàëüíûõ ñðåäñòâ, êîòîðûå óïðîñòÿò ðàáîòó è ïîçâîëÿò
ïðîâåðèòü ññûëêè. Â ðàìêàõ äàííîãî ïîäõîäà âû ìîæåòå ñàìîñòîÿòåëüíî ñîñòàâèòü
ñîäåðæàíèå è èíäåêñíûé àéë, ïðè ýòîì ïîëíîñòüþ êîíòðîëèðóÿ èõ âíåøíèé âèä.
Åäèíñòâåííûì èñòî÷íèêîì ïðîáëåì ÿâëÿåòñÿ ïîëíîòåêñòîâûé ïîèñê. Îäíàêî ñóùå-
ñòâóþò ñïåöèàëèçèðîâàííûå ïîèñêîâûå ñåðâåðû. Âû ìîæåòå ïðèîáðåñòè îäèí èç íèõ
è â òå÷åíèå íåñêîëüêèõ ÷àñîâ íàñòðîèòü åãî äëÿ ðàáîòû ñ âàøåé ñèñòåìîé. Ïîèñêîâàÿ
ìàøèíà ðàáîòàåò äèíàìè÷åñêè, è ïðè èçìåíåíèè äàííûõ âàì íå ïðèäåòñÿ âðó÷íóþ
ïåðåñòðàèâàòü ðàáî÷èå àéëû.

. åçþìå

Ïðèëîæåíèå ñîçäàåòñÿ äëÿ òîãî, ÷òîáû ïðåäîñòàâèòü ïîëüçîâàòåëÿì íåîáõîäèìûå


óíêöèîíàëüíûå âîçìîæíîñòè. Ôîðìû è îò÷åòû ñîñòàâëÿþò îñíîâó ïðèëîæåíèÿ, íî
èõ íåîáõîäèìî ïðèâåñòè â ïîðÿäîê. Âàæíî, ÷òîáû âñå îíè èìåëè ñîãëàñîâàííûé
âíåøíèé âèä, ïîýòîìó æåëàòåëüíî èñïîëüçîâàòü øàáëîíû è âûðàáîòàòü ðóêîâîäñòâî
ïî ñòèëÿì. Äàëåå íåîáõîäèìî îáúåäèíèòü îðìû è îò÷åòû â åäèíîå ïðèëîæåíèå. Äî-
ñòóï ê îðìàì, îò÷åòàì è äàæå ñðåäñòâàì àäìèíèñòðèðîâàíèÿ äîëæåí îñóùåñòâëÿòüñÿ
ñ ïîìîùüþ îðì. Áîëüøèíñòâî ïðèëîæåíèé ñîäåðæàò èñõîäíóþ îðìó ñ êíîïêàìè,
êîòîðûå îáåñïå÷èâàþò ñâÿçü ñ äðóãèìè îðìàìè. Äîñòàâêà ïðèëîæåíèÿ ïî ñóòè ïðåä-
ïîëàãàåò ïåðåíîñ åãî íà ñåðâåð ïðèëîæåíèé Ora le. Îïðåäåëÿÿ ðàñïîëîæåíèå îðì,
îò÷åòîâ è ñïðàâî÷íûõ àéëîâ ñ ïîìîùüþ ãëîáàëüíûõ ïåðåìåííûõ, âû óïðîñòèòå
ïðîöåññ ïåðåíîñà ïðèëîæåíèÿ. Äëÿ òîãî ÷òîáû îãðàíè÷èòü âîçìîæíîñòè ïîëüçîâà-
òåëÿ çàðàíåå îïðåäåëåííûì íàáîðîì äåéñòâèé, ìîæíî ñîçäàòü ìåíþ, êîòîðîå ê òîìó
æå óïðîñòèò ðàáîòó ñ ïðèëîæåíèåì. È íàêîíåö, íåîáõîäèìî ñîçäàòü ñïðàâî÷íóþ ñè-
ñòåìó, êîòîðàÿ îáúÿñíÿëà áû ïîëüçîâàòåëþ, êàê ðàáîòàòü ñ ïðèëîæåíèåì è ðåøàòü
âîçíèêàþùèå ïðîáëåìû. Äëÿ ñîçäàíèÿ àéëîâ ñî ñïðàâî÷íîé èíîðìàöèåé è ðàáîòû
ñ íèìè îáû÷íî èñïîëüçóåòñÿ ñèñòåìà OHW èëè OHJ.
Äëÿ òîãî ÷òîáû ó÷åñòü ìíîæåñòâî äåòàëåé è ñîçäàòü ñîãëàñîâàííîå ïðèëîæåíèå,
ïðîñòîå â èñïîëüçîâàíèè, òðåáóåòñÿ ìíîãî âðåìåíè. Îäíàêî ýòî âðåìÿ íåîáõîäèìî
çàòðàòèòü. Ïîëüçîâàòåëÿì íóæíî ïðîåññèîíàëüíîå ïðèëîæåíèå, óäîáíîå â ðàáîòå,
âûïîëíÿþùåå âñå íåîáõîäèìûå çàäà÷è è ñîäåðæàùåå ìåíþ è ñïðàâî÷íóþ ñèñòåìó.
CD118 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

Îñíîâíûå òåðìèíû
• Êëàâèøà áûñòðîãî äîñòóïà
• Ïðèëîæåíèå
• Àññîöèàòèâíàÿ ññûëêà
• Äî÷åðíèé ïóíêò ìåíþ
• Êîíòåêñòíàÿ çàâèñèìîñòü
• Ïàðàìåòð desformat
• Ïàðàìåòð destype
• Æåñòêîå êîäèðîâàíèå
• Èíäåêñíàÿ ñòðàíèöà
• Ïóíêò ìåíþ
• Ìîäóëü ìåíþ
• Èìåíîâàííûé âèçóàëüíûé àòðèáóò
• Ora le Appli ation Server (Ora leAS).
• îäèòåëüñêèé ïóíêò ìåíþ
• Êëàññ ñâîéñòâ
• Ïîèñêîâàÿ ñòðàíèöà
• Åäèíàÿ ðåãèñòðàöèÿ
• óêîâîäñòâî ïî ñòèëÿì
• Ñîäåðæàíèå
• Øàáëîí îðìû
• Èäåíòèèêàòîð ïîëüçîâàòåëÿ

Ïîâòîðåíèå ïðîéäåííîãî ìàòåðèàëà


Èñòèíà èëè ëîæü?

1. Ïî ìåðå íåîáõîäèìîñòè âû ìîæåòå ìîäèèöèðîâàòü îðìû, è èçìåíåíèÿ îòðà-


çÿòñÿ íà ñóùåñòâóþùåé îðìå.
2. Âèçóàëüíûå àòðèáóòû, ñîçäàííûå â øàáëîíå îðìû, àâòîìàòè÷åñêè ïðèìåíÿþòñÿ
ê ýëåìåíòàì îðìû.
3. Ôîðìû è îò÷åòû îòêðûâàþòñÿ ïîñðåäñòâîì âûçîâà óíêöèè Web.Show_Do ument.
4. Âíîâü ñîçäàííîå ìåíþ óäàëÿåò ñòàíäàðòíîå ìåíþ è ïàíåëü èíñòðóìåíòîâ, ïîýòî-
ìó íåîáõîäèìî ïðåäóñìàòðèâàòü â íåì ïóíêòû äëÿ ðåøåíèÿ íåêîòîðûõ çàäà÷.
5. Ïðè êàæäîé ìîäèèêàöèè ñïðàâî÷íûõ àéëîâ íàäî ïîâòîðíî îðìèðîâàòü ïîèñ-
êîâûé èíäåêñíûé àéë.
åçþìå CD119

Çàïîëíèòü ïðîïóùåííîå

1. Åñëè âû õîòèòå, ÷òîáû ïðè ââîäå ïîëüçîâàòåëåì äàòû èñïîëüçîâàëñÿ ñòàíäàðòíûé


îðìàò, íàäî ñîçäàòü _____ è ñâÿçàòü ñî âñåìè ýëåìåíòàìè, èñïîëüçóþùèìè äàòó.
2. Ó âàñ åñòü äëèííûé ñïèñîê, è âû õîòèòå, ÷òîáû ïîñëå ââîäà ïîëüçîâàòåëåì çíà÷å-
íèÿ öâåò ïóíêòà èçìåíÿëñÿ. Âàì íàäî ñîçäàòü _____ è ïðîãðàììíûìè ñðåäñòâàìè
ñâÿçàòü åãî ñ êàæäûì ïóíêòîì.
3. Äëÿ òîãî ÷òîáû óêàçàòü, ÷òî îò÷åò äîëæåí áûòü ñãåíåðèðîâàí â îðìàòå HTML,
âàì íàäî èñïîëüçîâàòü ïðè îòêðûòèè îò÷åòà ïàðàìåòð _____.
4. Äëÿ òîãî ÷òîáû ñîçäàòü ïóíêò ìåíþ, èìèòèðóþùèé êîìàíäó Edit⇒Cut, âàì íàäî
óñòàíîâèòü ñâîéñòâà _____ .
5. Äëÿ òîãî ÷òîáû ïðåäîñòàâèòü êðàòêóþ èíîðìàöèþ î ñïðàâî÷íûõ äàííûõ, âàì
íàäî ñîçäàòü àéë _____.

Âàðèàíòû îòâåòîâ

1. Äëÿ òîãî ÷òîáû îáåñïå÷èòü ñîãëàñîâàííûé âíåøíèé âèä îðì, ñîçäàâàåìûõ ðàç-
íûìè ðàçðàáîò÷èêàìè, íàäî èñïîëüçîâàòü.
à) Øàáëîíû îò÷åòîâ
á) Øàáëîíû îðì
â) óêîâîäñòâî ïî ñòèëÿì
ã) Êëàññû ñâîéñòâ
ä) Âñå ñðåäñòâà, ïåðå÷èñëåííûå âûøå.
2. Âû ñîçäàëè êíîïêó, ïðè àêòèâèçàöèè êîòîðîé äîëæåí îòîáðàæàòüñÿ îò÷åò. Äëÿ
îòîáðàæåíèÿ îò÷åòà íàäî èñïîëüçîâàòü óíêöèþ PL/SQL.
à) Web.Show_Do ument
á) Call_Form
â) Call_Report
ã) Show_Report
ä) Run_Report
3. Äëÿ òîãî ÷òîáû óïðîñòèòü ïåðåíîñ ïðèëîæåíèÿ íà äðóãóþ ìàøèíó, âàì íàäî
ñîçäàòü _____, èñïîëüçóåìûå ïðè êàæäîì îáðàùåíèè ê îðìå èëè îò÷åòó.
à) Ïîëüçîâàòåëüñêèå ïàðàìåòðû
á) ëîáàëüíûå ïåðåìåííûå
â) Èñõîäíûå îðìû
ã) Ìåíþ
ä) Ôàéëû ñî ñïðàâî÷íîé èíîðìàöèåé.
CD120 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

4. Íåñìîòðÿ íà òî ÷òî âû ìîæåòå óñòàíîâèòü ñâîéñòâà ìåíþ îðìû, ëó÷øå èñïîëüçî-


âàòü _____, ïîñêîëüêó â ñâîéñòâàõ ìåíþ æåñòêî êîäèðóåòñÿ ðàñïîëîæåíèå àéëà.
à) Show_Menu
á) DEFAULT&SMARTBAR
â) ëîáàëüíóþ ïåðåìåííóþ
ã)Repla e_Menu
ä) Help
5. Êàêîé èç ïåðå÷èñëåííûõ íèæå àéëîâ íå íàäî ñîçäàâàòü äëÿ ñïðàâî÷íîé ñèñòåìû
Ora le?
à) Ôàéëû ñ èíîðìàöèåé ïî òåìàì
á) Èíäåêñíûé àéë
â) Ôàéë çàãîëîâêà
ã) Ñîäåðæàíèå
ä) Èíäåêñíûé àéë äëÿ ïîèñêà

Óïðàæíåíèÿ
1. Readwood Realty

Âàì íàäî óïîðÿäî÷èòü ïðèëîæåíèå Redwood è ïîäãîòîâèòü åãî ê èñïîëüçîâàíèþ.


Äåéñòâèÿ, êîòîðûå íåîáõîäèìî ïðåäïðèíÿòü, çàâèñÿò îò òîãî, ñîçäàëè ëè âû óæå âñå
îðìû è îò÷åòû. Åñëè íåò, íàäî ñîðìèðîâàòü íåäîñòàþùèå êîìïîíåíòû. Âàæíåå
âñåãî äîáèòüñÿ ñîãëàñîâàííîãî âíåøíåãî âèäà, ïîýòîìó ñëåäóåò ïðèìåíèòü êî âñåì
îðìàì øàáëîí.

1. Èñïîëüçóéòå øàáëîí, ñîçäàííûé â ýòîé ãëàâå, äîðàáîòàâ åãî â ñëó÷àå íåîáõîäè-


ìîñòè. Ñîçäàéòå íîâûå îðìû è ñêîïèðóéòå ñóùåñòâóþùèå îðìû â îðìû íà
áàçå øàáëîíîâ.
2. Äîðàáîòàéòå èñõîäíóþ îðìó òàê, ÷òîáû îíà ñîäåðæàëà âñå ññûëêè, íåîáõîäèìûå
àãåíòàì è ìåíåäæåðàì.
3. Åñëè âû óñïåøíî ñïðàâèëèñü ñ âíåñåíèåì èçìåíåíèé, òî ñàìàÿ ñëîæíàÿ ÷àñòü
îñòàâøåéñÿ ðàáîòû ñâÿçàíà ñ ìåíþ.  ÷àñòíîñòè, âàì íàäî äîáàâèòü óíêöèè,
îòíîñÿùèåñÿ ê çàïðîñàì. Èñïîëüçóéòå Forms Builder äëÿ ðåäàêòèðîâàíèÿ Red-
wood_Menu. Âêëþ÷èòå ïóíêò âåðõíåãî óðîâíÿ Query. Äîáàâüòå ïóíêòû Enter Query
è Exe ute Query.
4. Äîáàâüòå ñðåäñòâà íàâèãàöèè â ìåíþ Re ords. Âàì íóæíû êàê ìèíèìóì ïóíêòû
Previous Re ord è Next Re ord. Ïîìåñòèòå èõ â íèæíþþ ÷àñòü ñïèñêà, îòäåëèâ îò

îñòàëüíûõ ïóíêòîâ ðàçäåëèòåëåì. Ñîõðàíèòå è ñêîìïèëèðóéòå ìåíþ.


5. Âûâåäèòå íà ïå÷àòü îäíó èç íîâûõ îðì ñ ìåíþ è ïðåäúÿâèòå ïðåïîäàâàòåëþ.
åçþìå CD121

2. Coffee Mer hant

Âåðîÿòíåå âñåãî, ó âàñ íåò âðåìåíè, ÷òîáû ñîçäàâàòü ïîëíîóíêöèîíàëüíîå ïðèëîæå-


íèå ïî êàæäîé èç ïðåäëîæåííûõ òåì, íî æåëàòåëüíî õîòÿ áû îáúåäèíèòü èìåþùèåñÿ
àéëû è ñîçäàòü èñõîäíóþ îðìó.

1. Ñîçäàéòå ïàïêó äëÿ äàííîãî ïðèìåðà. Ñêîïèðóéòå â íîâóþ ïàïêó îðìû è îò÷åòû,
ñîçäàííûå âàìè ðàíåå.
2. Ñîçäàéòå âðó÷íóþ èñõîäíóþ îðìó. Äîáàâüòå áëîê äàííûõ è õîëñò; ëó÷øå âñåãî
çàäàòü áåëûé öâåò îíà. Äîáàâüòå ëîãîòèï, çàãîëîâîê è êíîïêó Exit, ñâÿçàâ ñ íåé
êîä Exit_Form;.
3. Ñêîïèðóéòå êîä, âûïîëíÿþùèé íàñòðîéêó èñõîäíîé îðìû Redwood; â íåì îïðå-
äåëÿþòñÿ ãëîáàëüíûå ïåðåìåííûå. Âêëþ÷èòå åãî â ñîñòàâ îáðàáîò÷èêà ñîáûòèÿ
When-New-Form-Instan e èñõîäíîé îðìû Coffee Mer hant. Îòðåäàêòèðóéòå ïå-
ðåìåííûå òàê, ÷òîáû îíè óêàçûâàëè íà ðåàëüíîå ðàñïîëîæåíèå îáúåêòîâ. Çàêîì-
ìåíòèðóéòå êîìàíäó Repla e_Menu.
4. Âêëþ÷èòå â èñõîäíóþ îðìó êíîïêè, ïðåäíàçíà÷åííûå äëÿ îòêðûòèÿ äðóãèõ
îðì: Consumers, Orders, Inventory, InventoryTable, Countries è Employ-
ees. Äîáàâüòå êíîïêó äëÿ îò÷åòà Quarterly Sales by State.
5. Ñîçäàéòå äëÿ êíîïîê êîä PL/SQL, ïðåäñòàâèâ åãî â ñëåäóþùåì îðìàòå:
Call_Form(:GLOBAL.Appli ationPath | | 'FormName.fmx');
6. Êîä äëÿ êíîïêè âûçîâà îò÷åòà ñêîïèðóéòå èç èñõîäíîé îðìû Redwood è èçìåíèòå
èìÿ îò÷åòà. Âûïîëíèòå êîìïèëÿöèþ è ñîõðàíèòå îðìó.
7. Ñêîìïèëèðóéòå âñå ñóùåñòâóþùèå îðìû è óáåäèòåñü, ÷òî â ðàáî÷åé ïàïêå íà-
õîäÿòñÿ èõ èñïîëíÿåìûå âàðèàíòû (.fmx). Æåëàòåëüíî äîáàâèòü ê êàæäîé îðìå
êíîïêó Close. Äîáàâüòå êîä Exe ute_Query; äëÿ îðì Countries, Inventory,
InventoryTable è Employee, ÷òîáû îáåñïå÷èòü èõ àâòîìàòè÷åñêóþ çàãðóçêó.
8. Âûâåäèòå íà ïå÷àòü èñõîäíóþ îðìó.

3. Rowing Ventures

 âàøåì ðàñïîðÿæåíèè óæå åñòü îðìû è îò÷åòû, íåîáõîäèìûå äëÿ ïðèëîæåíèÿ


Rowing Ventures. Ïîìåñòèòå èõ â íîâóþ ïàïêó è ñîçäàéòå èñõîäíóþ îðìó. Óáåäè-
òåñü, ÷òî âû ñîçäàëè èíèöèàëèçàöèîííûé êîä äëÿ óñòàíîâêè ãëîáàëüíûõ ïåðåìåííûõ.
Äîáàâüòå êíîïêè, ïîñðåäñòâîì êîòîðûõ âû áóäåòå îòêðûâàòü îñíîâíûå îðìû (Boat,
Organization, Person è Ra e). Äîáàâüòå êíîïêè äëÿ îðìû Ra e Day è îò÷åòà
Ra e Results. Ñîçäàéòå íîâîå ìåíþ äëÿ ïðèëîæåíèÿ. Óñêîðèòü ðàáîòó ìîæíî, ñêî-
ïèðîâàâ ìåíþ, êîòîðîå âû ñîçäàëè äëÿ ïðèëîæåíèÿ Redwood, è ìîäèèöèðîâàâ åãî.
Óáåäèòåñü â òîì, ÷òî â ìåíþ ó÷òåíà îðìà Startup è ïîëüçîâàòåëè ïðè æåëàíèè
ìîãóò âåðíóòüñÿ â èñõîäíóþ òî÷êó. Âûâåäèòå íà ïå÷àòü èñõîäíóþ îðìó ñ ìåíþ.
CD122 ëàâà 11. Ñîçäàíèå èíòåãðèðîâàííûõ ïðèëîæåíèé

4. Broad loth Clothing

Åñëè âû âíèìàòåëüíî ïðîñìîòðèòå ñïèñîê òàáëèö äëÿ Broad loth Clothing, òî óâèäè-
òå, ÷òî îáúåì ïðèëîæåíèÿ äîëæåí áûòü áîëüøèì. Íà äàííûé ìîìåíò ãîòîâî ëèøü
íåñêîëüêî îðì è îò÷åòîâ. Åñëè ó âàñ åñòü â çàïàñå íåñêîëüêî ÷àñîâ, âû ìîæåòå ñîð-
ìèðîâàòü îñòàëüíûå îðìû è îò÷åòû. Èñõîäíóþ îðìó íàäî ñîçäàòü îáÿçàòåëüíî.
Âàì ìîæåò ïîòðåáîâàòüñÿ íåñêîëüêî óðîâíåé îðì, âûïîëíÿþùèõ óíêöèè ìåíþ,
ïîñêîëüêó åñëè âû ðàçìåñòèòå íà èñõîäíîé îðìå 20 êíîïîê, òî îíà áóäåò ïåðåãðó-
æåíà óïðàâëÿþùèìè ýëåìåíòàìè. àçðàáîòàéòå èåðàðõè÷åñêóþ ñòðóêòóðó, â êîòîðîé
èñõîäíàÿ îðìà, â çàâèñèìîñòè îò çàäà÷è, ñòîÿùåé ïåðåä ïîëüçîâàòåëåì, àäðåñîâàëà
áû åãî ê äðóãèì îðìàì. Íàïðèìåð, âàì ìîãóò ïîíàäîáèòüñÿ âñïîìîãàòåëüíûå îðìû
äëÿ Orders, Fa tory Produ tion è Shipping. Åñëè âû õîðîøî ïîìíèòå ìàòåðèàë
ïðåäûäóùèõ ãëàâ, ìîæåòå ñîçäàòü èñõîäíóþ îðìó ñ õîëñòîì â âèäå âêëàäîê, ãäå
êàæäàÿ âêëàäêà îòâå÷àåò çà îäíó èç îñíîâíûõ çàäà÷ è ñîäåðæèò íåîáõîäèìûå äëÿ
ýòîãî êíîïêè. Âûâåäèòå íà ïå÷àòü ìåíþ, îðìû è õîëñòû.