You are on page 1of 22

Tài li u ào t o T24

PHÂN H VERSION

Bài t p 1: T o Version CUSTOMER,CUS1.NAME g m các tr ng sau 1


Bài t p 2: T o Version thu c ng d ng ACCOUNT .................................................................................... 4
Bài t p 3: T o Version ng d ng FT ............................................................................................................ 6
Bài t p 4:Bài t p v Version Routine vào Version t ng ng ................................................................... 12
Bài t p 5: Vi t ng d ng xu t d li u khi ng i dùng Authorised b n ghi trong ng d ng Version FT
c t o ra trong bài t p 3 .......................................................................................................................... 19
Bài t p 6:Vi t các ng d ng cho phép l y các d li u t màn hình ng i dùng trong các ng d ng khác
nhau c a T24 ............................................................................................................................................... 22

Trong T24, có r t nhi u module ng d ng khác nhau, tuy nhiên các ng d ng hay s
d ng Version bao g m:

- CUSTOMER
- ACCOUNT
- DATA.CATURE
- FUNDS.TRANSFER
- TELLER
M i ng d ng l i có r t nhi u Version khác nhau

Bài t p 1: T o Version CUSTOMER,CUS1.NAME g m các tr ng sau

Thu c tính Giá tr m c


STT Tên tr ng b t bu c nh

1 MNEMONIC

2 SHORT.NAME-1

3 NAME.1-1

4 STREET-1

5 LANGUAGE

Trang 1
Tài li u ào t o T24

6 RESIDENCE

7 SECTOR KO 1700

8 NATIONALITY VN

9 OVERRIDE-1 KO

10 ACCOUNT.OFFICER 1

11 INDUSTRY

12 TARGET 999

13 CUSTOMER.STATUS 1

Bài gi i
Tên Version
Tên ng d ng

Các tr ng d li u trong Version t o ra:

Trang 2
Tài li u ào t o T24

Sau khi thi t k các tr ng theo yêu c u c a Version,nh n F3 l u l i Version t ng


ng

Trang 3
Tài li u ào t o T24

Bài t p 2: T o Version thu c ng d ng ACCOUNT


T o Version ACCOUNT,TRG g m các tr ng

STT Tên tr ng Thu c tính b t bu c Giá tr m c nh


1 MNEMONIC
2 CUSTOMER
3 CURRENCY
4 CATEGORY

Bài gi i

Trang 4
Tài li u ào t o T24

Trang 5
Tài li u ào t o T24

Bài t p 3: T o Version ng d ng FT
Version FT th c bút toán chuy n ti n gi a 2 tài kho n

FUNDS.TRANSFER,MDT. ACTR g m các tr ng

STT Tên tr ng Thu c tính b t Giá tr m c nh


bu c
1 DEBIT.ACCT.NO
2 DEBIT.CURRENCY
3 DEBIT.AMOUNT
4 DEBIT.VALUE.DATE
5 CREDIT.ACCT.NO
6 CREDIT.CURRENCY
7 CREDIT.VALUE.DATE
8 PAYMENT.DETAILS-1
9 TREASURY.RATE
10 CUSTOMER.SPREAD
11 CUSTOMER.RATE
12 AMOUNT.DEBITED
13 AMOUNT.CREDITED
14 FED.FUNDS
15 RATE.FIXING.IND
16 DELIVERY.OUTREF-1
17 OVERRIDE-1

Bài gi i

Trang 6
Tài li u ào t o T24

Trang 7
Tài li u ào t o T24

Trang 8
Tài li u ào t o T24

Trang 9
Tài li u ào t o T24

Trang 10
Tài li u ào t o T24

Trang 11
Tài li u ào t o T24

Bài t p 4:Bài t p v Version Routine vào Version t ng ng


S d ng Version trong bài t p 3,hãy vi t Routine l y ra các thông tin khi ng i dùng
nh p m i m t bút toán chuy n ti n FT gi a hai tài kho n.Thông tin l y ra bao g m:

- Mã bút toán FT
- Tài kho n ghi có
- Tài kho n ghi n
- S ti n ghi có/n t ng ng

D li u u ra s c l u sang file text

Bài gi i:

B c 1: Vi t các Routine x lý

B c 2: G n Version Routine vào Version t ng ng

Trang 12
Tài li u ào t o T24

B c 3:Nh p d li u test

Các Routine c n thi t:

- Routine cho phép xu t d li u ra file text: TT.RTN.WRITE.FILE


- Routine cho phép l y d li u t màn hình ng i dùng nh p vào:
TT.RTN.FT.INFOR.I

Mã ngu n:

Routine TT.RTN.WRITE.FILE

SUBROUTINE
TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,OPTION,Y.DATA)
*SEQ.FILE.NAME:TEN THU MUC CHUA FILE
*RECORD.NAME:TEN FILE
*Y.DATA: DU LIEU CAN GHI VAO FILE
$INSERT I_COMMON
$INSERT I_EQUATE

*LOG RA FILE
* TEN THU MUC CHUA FILE
* SEQ.FILE.NAME='DONGBODULIEU.BP'
*TEN FILE

* RECORD.NAME='1.TXT'
OPENSEQ SEQ.FILE.NAME,RECORD.NAME TO SEQ.FILE.POINTER ELSE
CREATE SEQ.FILE.POINTER ELSE
*CRT "KHONG TAO DUOC CON TRO FILE TOI FILE ":SEQ.FILE.NAME
STOP
END
END
* CRT "THANH CONG"
IF OPTION=0 THEN
WRITESEQ Y.DATA APPEND TO SEQ.FILE.POINTER ELSE
* CRT "LOI GHI FILE"
END
END
ELSE
WRITESEQ Y.DATA TO SEQ.FILE.POINTER ELSE
* CRT "LOI GHI FILE"

Trang 13
Tài li u ào t o T24

END
END
CLOSESEQ SEQ.FILE.POINTER
*==============================================================
===========

RETURN
END

Routine TT.RTN.FT.INFOR.I

SUBROUTINE TT.RTN.FT.INFOR.I
* XUAT THONG TIN so du tai khoan va GIAO DICH RA SQL KHI INPUT THANH
CONG GIAO DICH FT
*CHI XUAT THONG TIN VE TAI KHOAN GHI NO, KHONG XUAT TAI KHOAN
GHI CO
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.FUNDS.TRANSFER

***********LAY VE CAC GIA TRI CAN THIET


Y.TRAN.ID=ID.NEW
Y.DB.ACCT=R.NEW(FT.DEBIT.ACCT.NO)
DB.CCY=R.NEW( FT.DEBIT.CURRENCY)
DB.AMOUNT=R.NEW(FT.DEBIT.AMOUNT)
DB.DATE=R.NEW(FT.DEBIT.VALUE.DATE)

CR.ACCT=R.NEW(FT.CREDIT.ACCT.NO)
CR.CCY=R.NEW( FT.CREDIT.CURRENCY)
CR.AMOUNT=R.NEW(FT.CREDIT.AMOUNT)
CR.DATE=R.NEW(FT.CREDIT.VALUE.DATE)
Y.NOTE=R.NEW(FT.DEBIT.THEIR.REF)
IF Y.NOTE EQ "" THEN Y.NOTE=R.NEW(FT.CREDIT.THEIR.REF)
IF Y.NOTE EQ "" THEN Y.NOTE =" "

*FOR TEST
* Y.TRAN.ID='FT123456789012'
* DB.ACCT="0020101245005"
* DB.CCY="VND"
* DB.AMOUNT=10000
* DB.DATE=R.NEW(FT.DEBIT.VALUE.DATE)

Trang 14
Tài li u ào t o T24

* CR.ACCT="0020100095007"
* CR.CCY="VND"
* CR.AMOUNT=""
* Y.NOTE="TEST"
*HET TEST

**********************************************
****KIEM TRA CAC GIA TRI
IF DB.AMOUNT EQ "" THEN DB.AMOUNT=CR.AMOUNT
IF CR.AMOUNT EQ "" THEN CR.AMOUNT=DB.AMOUNT
IF DB.CCY EQ "" THEN DB.CCY=CR.CCY
IF CR.CCY EQ "" THEN CR.CCY=DB.CCY

Y.DB=Y.DB.ACCT[1,1]
Y.DB.TYPE=Y.DB.ACCT[4,2]

CALL TT.RTN.GET.ATL.ACCT.SYN(Y.DB.ACCT,DB.ACCT)

Y.DATA.DB=TRIM(DB.ACCT:"|D|":DB.AMOUNT:"|":DB.CCY)

***********************************************

*xuat ra file
SEQ.FILE.NAME='EXPORT.DATA.BP/DATA'
RECORD.NAME=''

CALL TT.RTN.CREATE.FILE.NAME(RECORD.NAME)
RECORD.NAME=DB.ACCT:".":RECORD.NAME

*KIEM TRA NEU KHONG PHAI TAI KHOAN NOI BO THI LOG RA FILE

Y.DB.BAL=''
Y.CR.BAL=''
Y.CO.CODE=R.NEW(170)

*XUAT GIAO DICH VE NO


IF NUM(Y.DB) AND (Y.DB.TYPE EQ '01' OR Y.DB.TYPE EQ '11') THEN
CALL TT.RTN.GET.WORKING.BAL(Y.DB.ACCT)
Y.CO.CODE=Y.CO.CODE[3]
Y.DATA.DB=TRIM(Y.TRAN.ID:"|":Y.DATA.DB:"|":Y.NOTE)

Trang 15
Tài li u ào t o T24

CALL
TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,0,Y.DATA.DB)
END

RETURN

END

Routine tao file TT.RTN.CREAT.FILE.NAME


SUBROUTINE TT.RTN.CREATE.FILE.NAME(Y.FILE.NAME)
$INSERT I_COMMON
$INSERT I_EQUATE

Y.DATE=OCONV(DATE(),"D/E")
Y.DAY=LEFT(Y.DATE,2)
Y.YEAR=RIGHT(Y.DATE,4)
Y.MONTH=RIGHT(LEFT(Y.DATE,5),2)
Y.TODAY=Y.YEAR:Y.MONTH:Y.DAY

Y.TIME=OCONV(TIME(), "MTS")
Y.H.M=LEFT(Y.TIME,5)
Y.H=LEFT(Y.H.M,2)
Y.M=RIGHT(Y.H.M,2)

Y.FILE.NAME=Y.TODAY:".":Y.H:".":Y.M:".txt"
RETURN
END

Routine ghi d li u ra file Text TT.RTN.WRITE.FILE


SUBROUTINE TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,OPTION,Y.DATA)
*SEQ.FILE.NAME:TEN THU MUC CHUA FILE
*RECORD.NAME:TEN FILE
*Y.DATA: DU LIEU CAN GHI VAO FILE
$INSERT I_COMMON
$INSERT I_EQUATE

*LOG RA FILE
* TEN THU MUC CHUA FILE
* SEQ.FILE.NAME='DONGBODULIEU.BP'
*TEN FILE

* RECORD.NAME='1.TXT'
OPENSEQ SEQ.FILE.NAME,RECORD.NAME TO SEQ.FILE.POINTER ELSE
CREATE SEQ.FILE.POINTER ELSE
*CRT "KHONG TAO DUOC CON TRO FILE TOI FILE ":SEQ.FILE.NAME
STOP

Trang 16
Tài li u ào t o T24

END
END
* CRT "THANH CONG"
IF OPTION=0 THEN
WRITESEQ Y.DATA APPEND TO SEQ.FILE.POINTER ELSE
* CRT "LOI GHI FILE"
END
END
ELSE
WRITESEQ Y.DATA TO SEQ.FILE.POINTER ELSE
* CRT "LOI GHI FILE"
END
END
CLOSESEQ SEQ.FILE.POINTER
*=========================================================================

RETURN
END

G n Routine vào Version t ng ng

Khi Input d
li u

Khi duy t d
li u

Trang 17
Tài li u ào t o T24

ng ký các Routine trong PGM.FILE, v i các tr ng:

- Type=S
- Product=EB

Sau khi ã ng ký các Routine trong t p tin PGM.FILE, s d ng màn hình nh p li u c a


Version FT nh p d li u.Sau khi ng i dùng nh p d li u xong, n F3 thì d li u s
xu t ra file text theo úng thông tin mà ng i dùng ã nh p li u

Sau khi hoàn thành bài t p này,h!c viên s n m c các k" n ng:

- K" n ng l p trình v i Jbase


- Hi u rõ c Version và Version Routine

Trang 18
Tài li u ào t o T24

Bài t p 5: Vi t ng d ng xu t d li u khi ng i dùng Authorised b n ghi


trong ng d ng Version FT c t o ra trong bài t p 3
Th c hi n:

Vi t Routine l y d li u khi m t b n ghi c Authorise

Routine TT.RTN.FT.INFOR.A

SUBROUTINE TT.RTN.FT.INFOR.A

* XUAT THONG TIN SO DU VA GIAO DICH TRONG FT RA SQL KHI


AUTH BAN GHI
* CHI XUAT VE CO , KHONG XUAT VE NO

$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.FUNDS.TRANSFER

***********LAY VE CAC GIA TRI CAN THIET


Y.TRAN.ID=ID.NEW

Trang 19
Tài li u ào t o T24

DB.ACCT=R.NEW(FT.DEBIT.ACCT.NO)
DB.CCY=R.NEW( FT.DEBIT.CURRENCY)
DB.AMOUNT=R.NEW(FT.DEBIT.AMOUNT)
DB.DATE=R.NEW(FT.DEBIT.VALUE.DATE)

CR.ACCT=R.NEW(FT.CREDIT.ACCT.NO)
CR.CCY=R.NEW( FT.CREDIT.CURRENCY)
CR.AMOUNT=R.NEW(FT.CREDIT.AMOUNT)
CR.DATE=R.NEW(FT.CREDIT.VALUE.DATE)

Y.NOTE=R.NEW(FT.DEBIT.THEIR.REF)
IF Y.NOTE EQ "" THEN
Y.NOTE=R.NEW(FT.CREDIT.THEIR.REF)
IF Y.NOTE EQ "" THEN Y.NOTE =" "

**********************************************
****KIEM TRA CAC GIA TRI
IF DB.AMOUNT EQ "" THEN DB.AMOUNT=CR.AMOUNT
IF CR.AMOUNT EQ "" THEN CR.AMOUNT=DB.AMOUNT
IF DB.CCY EQ "" THEN DB.CCY=CR.CCY
IF CR.CCY EQ "" THEN CR.CCY=DB.CCY

Y.DATA.DB=TRIM(DB.ACCT:"|":DB.CCY)
Y.DATA.CR.REV=TRIM(CR.ACCT:"|":CR.CCY)
Y.DATA.CR=TRIM(CR.ACCT:"|C|":CR.AMOUNT:"|":CR.CCY)

***********************************************

*xuat ra file
SEQ.FILE.NAME='EXPORT.DATA.BP/DATA'
RECORD.NAME=''

CALL TT.RTN.CREATE.FILE.NAME(RECORD.NAME)

*KIEM TRA NEU KHONG PHAI TAI KHOAN NOI BO THI LOG RA FILE
Y.DB=LEFT(Y.DATA.DB,1)
Y.CR=LEFT(Y.DATA.CR,1)
Y.TYPE.CR=CR.ACCT[4,2]
Y.TYPE.DB=DB.ACCT[4,2]

Y.DB.BAL=''
Y.CR.BAL=''
Y.CO.CODE=R.NEW(170)

Trang 20
Tài li u ào t o T24

*XUAT GIAO DICH VE CO


*KIEM TRA LA LENH AUTH SAU INPUT HAY LA SAU REVERSAL
Y.STATUS=R.NEW(FT.RECORD.STATUS)
IF Y.STATUS EQ 'INAU' THEN
*LENH SAU INPUT, INSERT TRANS VA UPDATE BALANCE VE CO
IF NUM(Y.IS.CR) AND (Y.TYPE.CR EQ '01' OR Y.TYPE.CR
EQ '11') THEN
CALL TT.RTN.GET.WORKING.BAL(CR.ACCT)
Y.CO.CODE=Y.CO.CODE[3]
Y.DATA.BAL=CR.ACCT:"|":Y.CR.BAL:"|":CR.CCY

Y.DATA.CR=TRIM(Y.TRAN.ID:"|":Y.CO.CODE:"|":Y.DATA.CR:"|":Y.
CR.BAL:"|":Y.NOTE)
RECORD.NAME=CR.ACCT:'.':RECORD.NAME
CALL
TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,0,Y.DATA.CR)
END
END
ELSE
*LA LENH REVERSAL
*REVERSAL VE NO
IF NUM(Y.DB) AND (Y.TYPE.DB EQ '01' OR Y.TYPE.DB EQ
'11') THEN
CALL TT.RTN.GET.WORKING.BAL(DB.ACCT)
*Y.CO.CODE=Y.CO.CODE[3]
Y.DATA.DB=TRIM(Y.TRAN.ID:"|":Y.DATA.DB)
RECORD.NAME='REV':DB.ACCT:'.':RECORD.NAME
CALL
TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,0,Y.DATA.DB)

END
*REVERSAL VE CO
IF NUM(Y.CR) AND (Y.TYPE.CR EQ '01' OR Y.TYPE.CR EQ
'11' ) THEN
CALL TT.RTN.GET.WORKING.BAL(CR.ACCT)
Y.DATA.CR.REV=TRIM(Y.TRAN.ID:"|":Y.DATA.CR)
RECORD.NAME='REV':CR.ACCT:'.':RECORD.NAME
CALL
TT.RTN.WRITE.FILE(SEQ.FILE.NAME,RECORD.NAME,0,Y.DATA.CR.REV
)
END
END

RETURN
Trang 21
Tài li u ào t o T24

END

Sau ó biên d ch Routine, ng ký Routine trong t p tin PGM.FILE

Bài t p 6:Vi t các ng d ng cho phép l y các d li u t màn hình ng i dùng


trong các ng d ng khác nhau c a T24
- #ng d ng Data.Capture
- #ng d ng TELLER

Trang 22

You might also like