Generowanie aplikacji Borland Delphi w oparciu o repozytoriu

background image

Generowanie aplikacji Borland Delphi w oparciu

o repozytorium CASE – Oracle Designer

®

-DQXV]3HUHN0LFKDá:LQLHZVNL

&RP$UFK±3R]QD6S]RR

e–mail:

Janusz.Perek@ComArch.pl

,

Michal.Wisniewski@ComArch.pl

Abstrakt

$UW\NXáSRZLFRQ\MHVW]DSUH]HQWRZDQLXQDU]G]LDÄGandalf” do generowania aplikacji Borland

'HOSKL Z RSDUFLX R GHILQLFM PRGXáX ]DSDPLWDQ Z UHSR]\WRULXP &$6( Borland Delphi 5.0 jest
zaawansowanym pakietem do tworzenia klienckich aplikacji bazodanowych. Nie wspiera on jednak etapu
SURMHNWRZDQLDDSOLNDFMLQDSRGVWDZLHDQDOL]\Z\PDJDX*\WNRZQLNyZ:DUW\NXOHRSLVDQRVSRVyELQWHJUDFML

URGRZLVND Borland 'HOSKL ] UHSR]\WRULXP 2UDFOH 'HVLJQHU RUD] DUFKLWHNWXU V\VWHPX

Z\NRU]\VWXMFHJR Z\JHQHURZDQH DSOLNDFMH 1D ]DNRF]HQLH SU]HGVWDZLRQR SURFHV EXGRZ\ SU]\NáDGRZHM

DSOLNDFML]Z\NRU]\VWDQLHPSUH]HQWRZDQHJRUR]ZL]DQLD

1. Wprowadzenie

3RP\Vá ]EXGRZDQLD QDU]G]LD GR JHQHUDFML DSOLNDFML Borland Delphi w oparciu o informacje

]DSLVDQHZUHSR]\WRULXPSRMDZLáVLSRGF]DVZ\NRQ\ZDQLDSUDFSURMHNWRZ\FK]áR*RQHJRV\VWHPX
informatycznego.

= MHGQHM VWURQ\ PDP\ QDU]G]LH 2UDFOH 'HVLJQHU SRVLDGDMFH PR*OLZRü JHQHURZDQLD

PRGXáyZ QD SRGVWDZLH SURMHNWX ]DSDPLWDQHJR Z UHSR]\WRULXP -HGQDN GRFHORZH URGRZLVNR

Z\JHQHURZDQ\FK PRGXáyZ 2UDFOH )RUPV SRVLDGD W\ONR SURVW\ LQWHUIHMV X*\WNRZQLND L QLH

SR]ZDOD QD áDWZH GRGDZDQLH QRZ\FK NRPSRQHQWyZ PRJF\FK JR UR]V]HU]\ü

1

. Poza tym nie

LVWQLHMH*DGQDPHWRGDUR]V]HU]HQLDIXQNFMRQDOQRFLVDPHJRURGRZLVNDSURJUDPLVW\F]QHJR

= GUXJLHM VWURQ\ PDP\ QDU]G]LH Borland 'HOSKL EGFH ]DDZDQVRZDQ\P SDNLHWHP

do tworzenia klienckich aplikacji

ED]RGDQRZ\FK FKDUDNWHU\]XMFH VL RWZDUWRFL DOH QLH

SRVLDGDMFH PR*OLZRFL JHQHUDFML PRGXáyZ &R SUDZGD LVWQLHM JHQHUDWRU\ DSOLNDFML GOD Delphi
(np.: Rational Rose 2000, Microgold

:LWK&ODVVDOHQLHVRQH]LQWHJURZDQH]SURGXNWDPLILUP\

2UDFOH 1D V]F]FLH RWZDUWRü 'HOSKL SR]ZDOD QD áDWZ LPSOHPHQWDFMH JHQHUDWRUD GOD WHJR

URGRZLVND

.RPSLODFM SRZ\*V]\FK IDNWyZ MHVW Ä*DQGDOI´ QDU]G]LH SR]ZDODMFH QD JHQHURZDQLH

PRGXáyZDelphi w oparciu o repozytorium Oracle Designer.

3U]HJOGLQWHUIHMVyZ

2.1. Oracle Designer API

2UDFOH 'HVLJQHU XGRVWSQLD LQWHUIHMV SURJUDPRZ\ $3, XPR*OLZLDMF\ GRVWS ]HZQWU]Q\P

QDU]G]LRP GR UHSR]\WRULXP ,QWHUIHMV WHQ MHVW ]ELRUHP SHUVSHNW\Z L SDNLHWyZ PL/SQL’owych

]QDMGXMF\FKVLZVFKHPDFLHZáDFLFLHODUHSR]\WRULXPL]DSHZQLDEH]SLHF]QHPHWRG\GRVWSXGR
metadanych.

0HWDGDQH V SU]HFKRZ\ZDQH Z QLHZLHONLHM OLF]ELH WDEHO SRPLG]\ NWyU\PL LVWQLHMH

ZLHOH]áR*RQ\FKSRZL]DNWyUHQLHVXGRNXPHQWRZDQH2UDFOHQLHZVSLHUDEH]SRUHGQLFKPHWRG

GRVWSXGRW\FKWDEHO]DSRPRFLQVWUXNFML'0/,QIRUPDFMH]DZDUWHZWDEHODFKVSUH]HQWRZDQH

SRSU]H]SHUVSHNW\Z\NWyUHVWDQRZLEDUG]RZD*Q\HOHPHQWLQWHUIHMVX

1

Oracle Forms Developer i Oracle Forms

6HUYHU SR]ZDOD QD WZRU]HQLH UR]V]HU]H SU]\ X*\FLX

JavaBeans i Pluggable Java Components (PJCs) oraz zastosowaniu komponentów OCX.

background image

48

Janusz

3HUHN0LFKDá:LQLHZVNL

Kolejnym elementem, z którego zbudowany jest interfejs to pakiety PL/SQL’owe,

NWyUHXPR*OLZLDMZVSRVyEEH]SLHF]Q\GRNRQ\ZDQLHPRG\ILNDFMLZ]DZDUWRFLWDEHOUHSR]\WRULXP

SU]H] QDU]G]LD ]HZQWU]QH -HGQ ] QDMLVWRWQLHMV]\FK U]HF]\ MHVW WR L* 2UDFOH 'HVLJQHU X*\ZD

GRNáDGQLH WHJR VDPHJR LQWHUIHMVX SU]\ ZVWDZLDQLX PRG\ILNDFML XVXZDQLX L SRELHUDQLX GDQ\FK ]

UHSR]\WRULXP 5\VXQHN SRND]XMH Z MDNL VSRVyE QDU]G]LD ]HZQWU]QH PRJ SU]HFKRZ\ZDü L

SRELHUDüLQIRUPDFMH]UHSR]\WRULXP

5\V'RVWSGRUHSR]\WRULXP]X*\FLHPLQWHUIHMVXSURJUDPRZHJR2UDFOH

Designer’a

7DEHOH]QDMGXMFHVLZUHSR]\WRULXPPDMQD]Z\UR]SRF]\QDMFHVLRG6''BOXE&',B

QS 6''B(/(0(176 &',B7(;7 =DZLHUDM RQH LQIRUPDFMH R ZLHOX Uy*Q\FK W\SDFK

HOHPHQWyZZ\VWSXMF\FKZ2UDFOH'HVLJQHU¶]H'ODSU]\NáDGXGHILQLFMHWDEHOVSU]HFKRZ\ZDQH

Z WDEHOL 6''B(/(0(176 SU]\ F]\P DWU\EXW (/B7<3(B2) PD ZDUWRü µ7$%¶ D DWU\EXW

(/B2&&85B7<3(ZDUWRüµ7$%/(¶

1D]Z\ SHUVSHNW\Z VWDQRZLF\FK LQWHUIHMV SURJUDPRZ\ ]DF]\QDM VL RG &,B L ]DZLHUDM

OLF]E PQRJ QD]Z\ HOHPHQWX 1S SHUVSHNW\ZD SRND]XMFD GHILQLFMH HQFML PD QD]Z

&,B(17,7,(6DSHUVSHNW\ZDSUH]HQWXMFDGHILQLFMHPRGXáyZDSOLNDF\MQ\FK&,B02'8/(6

2UDFOH 'HVLJQHU ]DZLHUD V\VWHP DSOLNDFML Z NWyU\P ]QDMGXM VL GHILQLFMH ZV]\VWNLFK

SHUVSHNW\Z ZUD] ] SRZL]DQLDPL SRPLG]\ QLPL 6\VWHP DSOLNDFML PR*QD ]DáDGRZDü GR

UHSR]\WRULXP]SOLNX25$&/(B+20('(6B02'(/02'(/B'$7OXE]DLPSRUWRZDü]
pliku ORACLE_HOME/DES2_71/MODEL/MODEL_60.DMP (dla wersji Oracle Designer 6.0).
Informacje na temat interfejsu programowego Oracle

'HVLJQHU¶D ]QDMGXM VL Z NDWDORJX

ORACLE_HOME/CDOC70/api.

%DUG]LHMV]F]HJyáRZHLQIRUPDFMHQDWHPDWNRU]\VWDQLD]2UDFOH'HVLJQHU$3,]QDMGXMVLZ>@

2.2. Biblioteka Open Tools API (Borland Delphi)

Biblioteka Open

7RROV $3, 27$ XPR*OLZLD GRGDZDQLH QRZHM IXQNFMRQDOQRFL

GR ]LQWHJURZDQHJR URGRZLVND SURJUDPLVW\F]QHJR DQJ ,'( ± Integrated Development
Environment) Borland Delphi oraz Borland C++ Builder. OTA definiuje zbiór interfejsów COM (
Common

2EMHFW 0RGHO XGRVWSQLDMF\FK X*\WNRZQLNRZL LQIRUPDFMH RUD] PHFKDQL]P\ ]H

URGRZLVND,'(SR]ZDODMFHQDZ\NRQDQLHQDVWSXMF\FKF]\QQRFL

tworzenie kreatorów form i projektów,

tworzenie aplikacji pomocniczych,

background image

Generowanie aplikacji Borland Delphi w oparciu o repozytorium CASE – Oracle Designer

®

49

UR]V]HU]DQLHPHQXOLVWDNFMLSDVNyZQDU]G]LRZ\FKHG\WRUD

tworzenie nowych skrótów klawiszowych oraz makr,

manipulowanie zasobami projektu,

PDQLSXORZDQLHPRGXáDPLSURMHNWX±WZRU]HQLHRWZLHUDQLH]DP\NDQLHGRGDZDQLHQRZ\FK

PRGXáyZGRSURMHNWXLLFKXVXZDQLH

5R]V]HU]HQLH URGRZLVND SURJUDPLVW\F]QHJR Z\NRU]\VWXMF LQWHUIHMV\ 27$ VSURZDG]D VL

GRLPSOHPHQWDFMLSRWU]HEQ\FKLQWHUIHMVyZ5R]V]HU]HQLDWDNLHPDMSRVWDüELEOLRWHNG\QDPLF]QLH

áDGRZDQ\FK0RJWRE\ü]DUyZQRELEOLRWHNLW\SX'//MDNL%3/

2

.

6]F]HJyáRZHLQIRUPDFMH]QDMGXMVLZ>@

5R]ZL]DQLH

1DU]G]LH Ä*DQGDOI´ ]RVWDáR ]DLPSOHPHQWRZDQH MDNR ELEOLRWHND %3/ L ]LQWHJURZDQH

]H URGRZLVNLHP Borland 'HOSKL Z\NRU]\VWXMF LQWHUIHMV 27$ 3RELHUDQLH LQIRUPDFML ]

UHSR]\WRULXP ]RVWDáR ]UHDOL]RZDQH ] Z\NRU]\VWDQLHP 2UDFOH 'HVLJQHU $3, : FHOX ]DSHZQLHQLD

GX*HMHODVW\F]QRFLUR]ZL]DQLDPRGXá\JHQHURZDQHVZRSDUFLXRV]DEORQ\']LNL]DVWRVRZDQLX
komponentu firmy Dream Company – Dream

6FULSWHU GR V]DEORQyZ ]RVWDáD GRGDQD PR*OLZRü

umieszczania kodu wykonywalnego w postaci skryptowej.

3URFHVJHQHUDFMLPRGXáXSRG]LHORQ\MHVWQDQDVWSXMFHHWDS\

1.

8*\WNRZQLNRNUHODSDUDPHWU\SURFHVXJHQHUDFMLZ\ELHUDQDMHVWGHILQLFMDPRGXáX]DSDPLWDQD

Z UHSR]\WRULXP RUD] V]DEORQ JáyZQ\ QD SRGVWDZLH NWyUHJR WZRU]RQH V ZV]\VWNLH SOLNL
projektu Delphi.

2.

*HQHUDWRU SRELHUD RGSRZLHGQLH LQIRUPDFMH ] UHSR]\WRULXP RUD] ZF]\WXMH ZVND]DQ\ JáyZQ\

szablon projektu.

3.

1DSRGVWDZLHLQIRUPDFML]JáyZQHJRV]DEORQXSURMHNWXRGF]\W\ZDQHVV]DEORQyZGRJHQHUDFML

plików DFM i PAS.

4.

*HQHUDFMDNRGXSOLNL')0L3$6GODEORNXQDGU]GQHJRLEORNyZGHWDOL

3RZ\JHQHURZDQLXSOLNyZ]DZLHUDMF\FKNRG\(UyGáRZHPRGXáXPR*QDSU]\X*\FLXURGRZLVND

'HOSKLZSURZDG]LüNRQLHF]QHPRG\ILNDFMHQS]PLDQDSRáR*HQLDNRQWUROHNNROHMQRüQDZLJDFML

GRGDQLHQRZHMIXQNFMRQDOQRFLGRPRGXáXDQDVWSQLHXWZRU]\üELEOLRWHN%3/

2

BPL ( Borland Package

/LEUDU\MHVWVSHF\ILF]QLHVNRPSLORZDQELEOLRWHN'//

background image

50

Janusz

3HUHN0LFKDá:LQLHZVNL

5\V3URFHVJHQHUDFMLPRGXáX

3.1 Struktury danych

8*\WH VWUXNWXU\ GDQ\FK VWDQRZL RG]ZLHUFLHGOHQLH FHFK L SRZL]D MDNLH Z\VWSXM

SRPLG]\HOHPHQWDPLGHILQLXMF\PLPRGXáZUHSR]\WRULXP2UDFOH'HVLJQHU=HZ]JOGXQDIDNW

*HDNWXDOQLHÄ*DQGDOI´JHQHUXMHSRMHG\QF]HPRGXá\QLH]RVWDáDVWZRU]RQDNODVDRGSRZLDGDMFD

PRGXáRZL

Klasa

7JQG:LQGRZ UHSUH]HQWXMH RNQD MDNLH ]QDMGXM VL Z JHQHURZDQ\P PRGXOH .ODVD

7JQG%ORFNVWDQRZLUHSUH]HQWDFMHEORNXGODNWyUHJRRNUHORQHVGR]ZRORQHRSHUDFMHRUD]OLF]ED

Z\ZLHWODQ\FK UHNRUGyZ .ODVD 7JQG/D\RXW ]DZLHUD LQIRUPDFMH QD WHPDW SRáR*HQLD L UR]PLDUX

ND*GHJR EORNX RUD] SRZL]DQLH ] RNQHP 7JQG:LQGRZ Z NWyU\P PD VL ]QDOH(ü JHQHURZDQ\

EORN=ND*G\PEORNLHP SRZL]DQH V (UyGáD GDQ\FK 7JQG6RXUFH NWyUH SRG]LHORQH V QD GZD

W\S\ (UyGáD SRGVWDZRZH DQJ EDVH RUD] (UyGáD GRF]\W\ZDQH DQJ ORRNXS .D*GH ]H (UyGHá
posiada kolumny (

7JQG&ROXPQ3RZL]DQLHáF]FHNROXPQ]H(UyGáHPGDQ\FKForeignSource)

]DZLHUDLQIRUPDFMRUHODFMDFKW\SX0DVWHU'HWDLO=DOH*QRFLSRPLG]\(UyGáDPLGRF]\W\ZDQ\PL

V ]GHILQLRZDQH SU]\ X*\FLX NODV\ TgndArch. Klasa TgndConstraint zawiera informacje na

SRGVWDZLHNWyU\FKZID]LHJHQHUDFMLPR*H]RVWDüXWZRU]RQ\SOLNGHILQLXMF\NRPXQLNDW\REVáXJL

EáGyZZSU]\SDGNXQDUXV]HQLDRJUDQLF]HLQWHJUDOQRFLRZ\FK

background image

Generowanie aplikacji Borland Delphi w oparciu o repozytorium CASE – Oracle Designer

®

51

Rys. 3. Diagram klas

3.2 Struktura projektu w Delphi

.D*GDIRUPDWNDVWZRU]RQDZURGRZLVNX'HOSKLVNáDGDVL]GZyFKSOLNyZ

SOLNX]UR]V]HU]HQLHP3$6]DZLHUDMF\NRGZ\NRQ\ZDOQ\LGHNODUDFMNODV\

SOLNX ] UR]V]HU]HQLHP ')0 ]DZLHUDMF\P XVWDZLHQLD ZáDVQRFL ZV]\VWNLFK NRPSRQHQWyZ
umieszczonych na formatce.

Od wersji 5 Borland

'HOSKL]DSLVXMHSOLNL')0MDNR]Z\NáHSOLNLWHNVWRZHZHZF]HQLHMV]\FK

ZHUVMDFKE\á\WRSOLNLELQDUQH']LNLWHPXJHQHUDFMDPRGXáXVSURZDG]DVLGRVWZRU]HQLDGZyFK

SOLNyZWHNVWRZ\FKRRGSRZLHGQLHMVWUXNWXU]HL]DZDUWRFL

background image

52

Janusz

3HUHN0LFKDá:LQLHZVNL

'RGDWNRZR Z\PDJDQH MHVW SRVLDGDQLH SOLNX SURMHNWX NWyU\ RNUHOD Z MDNL VSRVyE PD ]RVWDü

XWZRU]RQ\SOLNZ\QLNRZ\LMDNLHIRUPDWNLPD]DZLHUDü0R*HWRE\üSOLNZ\NRQ\ZDOQ\ELEOLRWHND

%3/ELEOLRWHND'//OXERELHNW&205yZQLH*SOLNSURMHNWXMHVWSOLNLHPWHNVWRZ\P3HáHQSURFHV

JHQHUDFML PR*QD ZLF VSURZDG]Lü GR Z\JHQHURZDQLD SDU SOLNyZ 3$6 L ')0 GOD ND*GHJR

3

PRGXáXRUD]SOLNXSURMHNWX

3.3 Komponent Dream Scripter

Komponent Dream

6FULSWHUMHVWSURGXNWHPNWyU\SR]ZDODZEXGRZ\ZDüZDSOLNDFMHIUDJPHQW\

VNU\SWyZX*\ZDMFGRWHJRFHOXVBScript, JScript, Perl’a, 3\WKRQ¶DDWDN*HDelphi Script. Skrypty

Z\NRQ\ZDQH ]D SRPRF WHJR NRPSRQHQWX PDM GRVWS GR ZV]\VWNLFK ]DUHMHVWURZDQ\FK NODV

]GDU]H SURFHGXU IXQNFML L VWDá\FK 3U]\NáDGRZR PR*QD QDSLVDü SURFHGXU REVáXJL ]GDU]HQLD
w

-6FULSWZNWyUHMPDP\GRVWSGRZV]\VWNLFKNRPSRQHQWyZ]NWyU\FK]EXGRZDQ\MHVWPRGXá

napisany w

'HOSKL 0R*QD UyZQLH* Z\NRU]\VWXMF QS 9%6FULSW G\QDPLF]QLH PRG\ILNRZDü WDNL

IRUPXODU]±QS]PLHQLüSHZQHZáDVQRFLSyO

Zastosowanie komponentu Dream Scripter pozwala na zdefiniowanie szablonów, na podstawie

NWyU\FK JHQHURZDQH V Z\QLNRZH PRGXá\ 6]DEORQ WDNL MHVW SOLNLHP WHNVWRZ\P ]DZLHUDMF\P

RSUyF]VWDá\FKLQIRUPDFML]QDMGXMF\FKVLZSOLNDFK'HOSKLUyZQLH* IUDJPHQW\ NRGX R]QDF]RQH

VSHFMDOQ\PL]QDF]QLNDPLNWyUHVáDGRZDQHLSU]HWZDU]DQHSU]H]NRPSRQHQWDream Scripter. Te

IUDJPHQW\ NRGX QD SRGVWDZLH LQIRUPDFML SREUDQHM ] UHSR]\WRULXP ZVWDZLDM GR SOLNyZ
wynikowych kod w

'HOSKLRGSRZLHG]LDOQ\]DSRVWDüJHQHURZDQHJRPRGXáX

3.4 Szablony

:QDU]G]LXÄ*DQGDOI´V]DEORQ\VSOLNDPLWHNVWRZ\PL:FHOXZ\Uy*QLHQLDIUDJPHQWyZNWyUH

PDM ]RVWDü Z\NRQDQH ]RVWDá\ ZSURZDG]RQH GZD ]QDF]QLNL ^ SRF]WHN VNU\SWX RUD] ` ±

NRQLHFVNU\SWX3RPLG]\W\PL]QDF]QLNDPLPR*QDXPLHFLüNRGQDSLVDQ\ZDelphi Script. Oprócz

WHJR ]RVWDá\ ZSURZDG]RQH GZLH ]PLHQQH GR NWyU\FK PR*QD VL RGZRá\ZDü SR]D IUDJPHQWDPL

VNU\SWyZ SRSU]H] ]QDF]QLNL 02'8/(B1$0( QD]ZD JHQHURZDQHJR PRGXáX RUD]
%UNIT_NAME% - nazwa aktualnego pliku wynikowego.

3URFHV JHQHUDFML Z RSDUFLX R V]DEORQ RGE\ZD VL GZXHWDSRZR : SLHUZV]\P HWDSLH

SRGPLHQLDQH V ZV]\VWNLH Z\VWSLHQLD ]PLHQQ\FK : GUXJLP HWDSLH ZV]\VWNLH OLQLH WHNVWX QLH

EGFH VNU\SWHP NRSLRZDQH V GR SOLNX Z\QLNRZHJR =DPLDVW VNU\SWX GR SOLNX Z\QLNRZHJR

NRSLRZDQHVOLQLHWHNVWX±DUJXPHQW\Z\ZRáDQLDSURFHGXU\Print.

: QDU]G]LX Ä*DQGDOI´ ]RVWDá\ Z\Uy*QLRQH GZD W\S\ V]DEORQyZ V]DEORQ JáyZQ\ R QD]ZLH

]JRGQHM ] QD]Z NDWDORJX Z NWyU\P MHVW XPLHV]F]RQ\ ± ]DZLHUDMF\ LQIRUPDFMH R SURFHVLH

JHQHUDFML RUD] V]DEORQ\ JHQHUXMFH ± ]DZLHUDMFH LQIRUPDFM SRWU]HE GR Z\JHQHURZDQLD

NRQNUHWQHJRIUDJPHQWXPRGXáX

:WUDNFLHJHQHUDFMLRGF]\W\ZDQ\MHVWV]DEORQJáyZQ\=DSRPRFVNU\SWXRSLVDQHMHVWZQLP

MDNLHSOLNLLQDSRGVWDZLHMDNLFKV]DEORQyZSRZLQQ\VLZ\JHQHURZDü']LNLWDNLHPXUR]ZL]DQLX

PR*OLZH MHVW Z\JHQHURZDQLH RSUyF] GHILQLFML IRUPDWNL WDN*H SOLNX SURMHNWX L GRZROQHM OLF]E\

SOLNyZ SRPRFQLF]\FK QS SOLNX ] NRPXQLNDWDPL REVáXJL EáGyZ Z SU]\SDGNX QDUXV]HQLD

RJUDQLF]HLQWHJUDOQRFLRZ\FK6]DEORQJáyZQ\]DZLHUDW\ONRF]üVNU\SWRZQLHMHVWWZRU]RQ\

GODQLHJR*DGHQSOLNZ\QLNRZ\

3U]\NáDGRZ\V]DEORQJáyZQ\

3

W obecnej wersji „

*DQGDOI´XPR*OLZLDJHQHUDFMW\ONRMHGQHJRPRGXáX

background image

Generowanie aplikacji Borland Delphi w oparciu o repozytorium CASE – Oracle Designer

®

53

{#

const

DETAIL_PAS_TEMPLATE = 'DETAIL_PAS.tpl'; // szablon dla bloków detali

DETAIL_DFM_TEMPLATE = 'DETAIL_DFM.tpl';

MASTER_PAS_TEMPLATE = '

0$,1B3$6WSOV]DEORQGODEORNXJáyZQHJR

MASTER_DFM_TEMPLATE = 'MAIN_DFM.tpl';

PROJECT_TEMPLATE = 'PROJECT.tpl'; // szablon projektu

CONSTRAINTS_TEMPLATE = 'CONSTRAINTS.tpl'; // szablon dla komunikatów

var

i:integer;

begin
JHQHUDFMDEORNXJáyZQHJR
Gen(0,MASTER_PAS_TEMPLATE,TgndBlock(ModuleBlocks.Items[0]).Name+'_m.pas');

Gen(0,MASTER_DFM_TEMPLATE,TgndBlock(ModuleBlocks.Items[0]).Name+'_m.dfm');

// generacja bloków detali

i := 1;

while (i < blocks.count) do begin

Gen(i,DETAIL_PAS_TEMPLATE,TgndBlock(ModuleBlocks.Items[0]).Name+'_u.pas');

Gen(i,DETAIL_DFM_TEMPLATE,TgndBlock(ModuleBlocks.Items[0]).Name+'_u.pas');

Inc(i);

end;

//generacja projektu

Gen(0,PROJECT_TEMPLATE,ModuleName+'.dpk');

// generacja komunikatów

Gen(0,CONSTRAINTS_TEMPLATE,'Messages.sql');

end

;

#}

6]DEORQ\ JHQHUXMFH V V]DEORQDPL Z RSDUFLX R NWyUH WZRU]RQH V ZáDFLZH SOLNL RSLVXMFH

IRUPDWNLSURMHNW,FK]DZDUWRüMHVWFLOH]DOH*QDRGSU]\MW\FKVWDQGDUGyZRUD]RGW\SXSURMHNWX

SOLNZ\NRQ\ZDOQ\ELEOLRWHND%3/LWG']LNLPR*OLZRFLXPLHV]F]DQLDVNU\SWyZZV]DEORQDFK

PR*QDGRVWRVRZDüZ\QLNJHQHUDFMLGRZáDVQ\FKSRWU]HE

)UDJPHQW\VNU\SWXJHQHUXMFHJRPROJECT.tpl):

package

%MODULE_NAME%;

{$R *.RES}
^$/,*121`UHV]WD]RVWDáDXVXQLWDGODFHOyZSU]\NáDGX
requires

vcl50,

&RP$UFKSUHV]WD]RVWDáDXVXQLWDGODFHOyZSU]\NáDGX

contains

{#

var

i:integer;

s:string;

begin

for i := 0 to ModuleBlocks.count-1 do begin

s := TgndBlock(ModuleBlocks[i]).Name;

s := s+' in '''+s+'.pas'' {'+s+'}';

if i = ModuleBlocks.count-1 then

print(s+';')

else

print(s+',');

end

;

#}

background image

54

Janusz

3HUHN0LFKDá:LQLHZVNL

end

.

4. Zastosowanie

Proces przygotowywania „

*DQGDOID´ GR JHQHUDFML IRUPDWHN QDOH*\ UR]SRF]ü RG VWZRU]HQLD

V]DEORQyZJHQHUDFML:]DOH*QRFLRGDUFKLWHNWXU\UHDOL]RZDQHMDSOLNDFMLUy*QDEG]LH]DZDUWRü

V]DEORQX JáyZQHJR RUD] V]DEORQX JHQHUXMFHJR SURMHNW =DZDUWRü V]DEORQyZ JHQHUXMF\FK

IRUPDWNL Z ZLNV]RFL SU]\SDGNyZ EG]LH QLH]DOH*QD OXE EDUG]R PDáR ]DOH*QD RG SU]\MWHM
architektury.

$UFKLWHNWXUDV\VWHPXGRNWyUHMJHQHURZDQHVIRUPDWNL]Z\NRU]\VWDQLHPÄGandalfa” oparta

MHVWR]DáR*HQLH*HND*G\PRGXáMHVWRVREQELEOLRWHN%3/7DNLH]DáR*HQLHGDMHGX*HODVW\F]QRü

Z UHDOL]DFML SURMHNWX ± áDWZRü G]LHOHQLD ]DGD QD SRV]F]HJyOQ\FK Z\NRQDZFyZ MDN UyZQLH* Z

UR]V]HU]DQLXDSOLNDFML±ZV]\VWNLHPRGXá\áDGRZDQHVG\QDPLF]QLHDOLVWDGRVWSQ\FKPRGXáyZ

MHVW ]DSDPLWDQD Z ED]LH (IHNWHP WDNLHJR ]DáR*HQLD MHVW RGSRZLHGQL V]DEORQ JHQHUXMF\ SOLN

SURMHNWXSU]\NáDG±SDWU]UR]G]LDá

: ND*G\ PRGXOH SU]HJOGDQLH GDQ\FK RGE\ZD VL Z EORNX ZLHORUHNRUGRZ\P D PRG\ILNDFMH

L ZVWDZLDQLH Z EORNX MHGQRUHNRUGRZ\P EORN V]F]HJyáyZ NWyU\ ]QDMGXMH VL SRQL*HM EORNX
wielorekordowego.

5\V6WUXNWXUDZL]XDOQDJHQHURZDQ\FKPRGXáyZ

&]VWR ]GDU]D VL WDN *H EORN V]F]HJyáyZ MHVW ]DJQLH*G*RQ GUXJ IRUPDWN RVDG]RQ Z

IRUPDWFHJáyZQHM-H*HOLIRUPDWNDSRVLDGDGX*RV]F]HJyáyZQLHPLHV]F]VLQDMHGQHMIRUPDWFH

DOERSRVLDGDGHWDOHWRVRQHGRGDZDQHQDNROHMQ\FK]DNáDGNDFKEORNX

3URFHV SURMHNWRZDQLD PRGXáX Z 2UDFOH Designer’ze wymaga zwrócenia uwagi na fakt,

*HVWDQGDUGPRGXáXZ\PDJDDE\PLHFLáVLRQZMHGQ\PRNQLH

:QLRVNLLSODQ\QDSU]\V]áRü

Zastosowanie „Gandalfa” w procesie tworzenia systemu informatycznego spowoduje skrócenie

F]DVX SRWU]HEQHJR GR Z\NRQ\ZDQLD QRZ\FK PRGXáyZ RUD] XáDWZL ]DFKRZDQLH ZHZQWU]Q\FK

VWDQGDUGyZ 3RáF]HQLH NRU]\FL MDNLH Z\QLNDM ] OHSV]HM GRNXPHQWDFML SURFHVX SURGXNFML

RSURJUDPRZDQLDZRSDUFLXRUHSR]\WRULXP]PR*OLZRFLDPLQDU]G]LDMDNLPMHVWBorland Delphi
pozwoli na stworzenie lepszego produktu.

*HQHUDFMDPRGXáyZ'HOSKLQDED]LHUHSR]\WRULXP2UDFOH'HVLJQHUMHVWGRSLHURSRF]WNRZ\P

HWDSHP WZRU]HQLD ]DDZDQVRZDQHJR URGRZLVND SURJUDPLVW\F]QHJR : SU]\V]áRFL SODQXMH VL

background image

Generowanie aplikacji Borland Delphi w oparciu o repozytorium CASE – Oracle Designer

®

55

UR]EXGRZDQLH PR*OLZRFL Ä*DQGDOID´ R JHQHURZDQLH ZLHOX PRGXáyZ QD UD] Z\NRU]\VWXMF

GRGDWNRZH LQIRUPDFMH ] UHSR]\WRULXP R SRZL]DQLDFK SRPLG]\ PRGXáDPL Z\NRQDQLH GDOV]HM

LQWHJUDFMLQDU]G]LXPR*OLZLDMFGRVWSSU]HJOGDQLHLPRG\ILNDFMHGRGLDJUDPyZ]DSLVDQ\FKZ

UHSR]\WRULXP EH]SRUHGQLR ]H URGRZLVND Borland Delphi, oraz rozszerzenie zestawu danych

SRELHUDQ\FK]UHSR]\WRULXP]ZL]DQ\FK]GHILQLFMPRGXáX

5R]ZD*DQDMHVWWDN*HZVSyáSUDFD]F]FLRELHNWRZ2UDFOHDesigner’a – tworzenia diagramów

80/ GOD Z\JHQHURZDQ\FK PRGXáyZ 5R]SDWUXMHP\ UyZQLH* PR*OLZRü LQWHJUDFML 2UDFOH

'HVLJQHUD]LQQ\PLQDU]G]LDPLSURJUDPLVW\F]Q\PLILUP\Inprise np.: JBuilder.

Bibliografia

1.

Scherer D., Koletzke P.: Oracle Designer API: Multiline Text and Other Secrets, IOUG-A Conf.,1999
Paper#705

2.

Kinas R. : Open

7RROV$3,±UR]EXGRZDQLHPR*OLZRFL

Delphi, Borland Developer’s Days, Warszawa,

16 - 17 maj 2000

3.

www.dreamcompany.com


Wyszukiwarka

Podobne podstrony:
generowanie aplikacji borland delphi w oparciu o repozytoriu DNROMA5ZOBSMCLU3G53A2H6WNJ7SETGX5RBSYTI
Borland Delphi 4 in 21 Days
systemy informatyczne instrukcja, Studia WIT - Informatyka, MGB(GAB) - Modelowanie i Generowanie Apl
Borland Delphi Magazine Getting Started With Sql Part 2
2007 07 Programowanie aplikacji wielowątkowych w języku C w oparciu o wzorce projektowe [Inzynieria
(eBook) Borland Delphi SQL User Guide
Borland Delphi 4 in 21 Days
Borland Delphi 2006 Datasheet
Borland Delphi 7 Tutorial Creating a CLX Database Application
Borland C Delphi Vcl Object Hierarchy Poster
Borland Delphi 2005 Migration To Using Vcl For
Ebook Borland Delphi 7 Delphi Quickstart
Ebook Borland Delphi Component Writer Guide
Zestaw narzedzi programistycznych do generowania mobilnych aplikacji (2)
aplikacje w delphi przyklady Y Nieznany
Aplikacje w Delphi Przykłady
Android Tworzenie aplikacji w oparciu o HTML CSS i JavaScript andrta
Aplikacje w Delphi Przyklady 3
Aplikacje w Delphi Przyklady Wydanie II apdel2

więcej podobnych podstron