You are on page 1of 26

TI LIU ENQUIRY

I.

Enquiry desktop

1. Gii thiu v ENQUIRY


Enquiry l mt cng c pht trin trong T24 cho php ly ra cc thng
tin c trong T24 xy dng cc bo.
2. To ENQUIRY n gin
to mt vn tin ta dung mt trong 2 cch sau:
+ Ti dng lnh, g ENQUIRY,DESIGNER

+ Click vo tool/Enquiry Designer

ngha mt s trng chnh :


+ ID : Tn Enquiry
+ File Name: Tn bng cn ly d liu ra
+Predfined Selection: iu kin tm kim c nh
+ Predefined Sort: Sp xp theo trng
+ Selection field : Danh sch cc trng dung cho iu kin lc
+ Name: tn ct do bn t nh ngha, c th trng vi tn
trng
+ Headding: tiu cho ct, Nu trng ny trng th h
thng ly trng Name lm tiu
+ operation: Tn trng hoc cc lnh tnh ton
+ Col: Dng v ct th hin d liu.
+ Attributes:Gm cc gi tr
trng: D liu hin th dng li v theo tng trang ( c
th xut ra file excel )
ALL DATA: D liu hin th theo dng li v load lun
ton b d liu( c th xut ra file excel )
PAGE : d liu hin th theo dng trang ( khng th xut
ra file excel )
+ Header: Dng cho tiu ca vn tin hoc tiu ca ct.
nh dng: @(cot,hang) text.
V d 1: Vit mt vn tin hin th cc thng tin sau: M khch hng, tn
khch hng, a ch, Thng tin hin th di dng li.
2

LG:

V d 2: Pht trin thm v d 1, thm yu cu phi lc d lieu


theo m khch hng vi hai ton t l EQ v NE
LG:
3

V d 3: Tng t v d 1 nhng hin th d liu di dng sau:


NGAN HANG THUONG MAI CO PHAN AN BINH
M khch hng
Xxxxxxxxxxxx
.
.
.
Xxxxxxxxxxxxx

tn khch hng
xxxxxxxxxxxxx

a ch
xxxxxx

xxxxxxxxxxxxx

.
.
.
xxxxxxx

.
.
.

LG:

Kt qu hin th :

3. Ly d liu t ng dng khc


ly c d liu th bng chnh phi cha trng lm ID ca
ng dng cn lin kt ly d liu.
Ci t:
Trng operation t l trng trn bng chnh m l ID
ca ng dng cn lin kt ly d liu
Trng conversion: nh dng LINK ( hoc L) X Y vi X
l tn bng cn lin kt ly d liu, Y l tn trng hoc s
hiu ca trng cn ly d liu ra trn bng X.
V d 4: Vit vn tin ly ra cc thng tin sau: S ti khon khch hng, m
khch hng, s chng minh th nhn dn, s d working.balance.
LG:

4. Lin kt (DrillDown)
D liu ca mt vn tin c th c s dng nh iu kin lc
cho vn tin khc. Bng cch click p vo trng c chn, bn c
th gi c vn tin con lin kt vi vn tin thng qua trng lin
kt.
Ci t:
V d 5: To mt vn tin hin th cc thng tin sau: s ti khon,m khch
hng,s d working.balance sao cho khi click p vo m khch hng th h
thng gi vn tin v d 1.
8

LG:

10

5. Ngt trang, nhm v Tnh ton


- Ngt trang: Vn tin c th ngt trang vi mi ln gi tr ca trng
thay i ( v d mi khi ng ngoi t thay i )
c th ngt trang th ta cn nh ngha cc trng sau:
+ Trng d liu s ngt ti ( cn phi c sp xp ). V d
CURRENCY
+ Trng ngt trang lin kt vi trng d liu B C
CURRENCY
+ Trng hin th gi tr ngt
- Tnh ton : Enquiry cho php s dng hm sau trong trng
operation
CALC X + ( -,*,/,: ) Y : tr v kt qu cng ( tr, nhn, chia,
ni ) X vi
Y. Vi X v Y l tn trng do ngi dng nh ngha.
IF X EQ ( NE,LE,GT,) Y A B: Nu tha mn iu kin X
bng Y (hoc khc hoc ln hn) th tr v A, ngc li th tr
v B.
- Nhm: nhm mt trng ta dng cu trc B C XXX (vi XXX
l tn trng ) trong trng operation . V d nhm tt cc cc
trng c cng currency trong bng Account : B C CURRENCY
- Tnh tng: tnh tng trc ht ta cn nhm cc trng cn tnh
tng vo mt nhm sau dng cu trc TOTAL XXX ( vi XXX
l trng cn tnh tng )

11

V d 6: Vit mt vn tin th hin cc thng tin sau: s ti khon,


working.balance,loi ngoi t. Sau tnh tng ca tng loi ngoi t mt.
LG:

12

II.

Enquiry Routine

Bao gm 2 loi : CONVERSION ROUTINES V BUILD ROUTINES


1. CONVERSION ROUTINES
- Loi ny gip thao tc d liu trc khi tr v cho mt trng.
- Mi trng c th gn vi mt ROUTINE
Th vin v cc bin quan trng:
- Th vin I_ENQUIRY.COMMON
- Bin O.DATA: Bin ny c nh ngha trong
I_ENQUIRY.COMMON, bin ny nhn gi tr ca trng c
13

gn ROUTINE khi bt u triu gi v tr v gi tr cho trng


khi kt thc ROUTINE.
- Bin R.RECORD: Bin ny c nh ngha trong
I_ENQUIRY.COMMON, bin ny l mng lu tr d liu ca bn
ghi gn lin vi ID c tr v. Nh vy, c bao nhiu bn ghi
c tr v th gi tr ca mng s thay i by nhiu ln.
Cch ly d liu: Gi n l s hiu trng, m l s hiu trng
multi value, l l s hiu trng subvalue, cch truy nhp nh sau
+ R.RECORD<n>
+ R.RECORD<n,m>
+ R.RECORD<n,m,l>
Cch gn ROUTINE vo ENQUIRY:
- Gn vo ENQ: trng CONVERSION, nh dng:@ tn routine
V d 7: To mt vn tin lit k ra cc gi tr sau:
- M khch hng
- S ti khon
- Tn khch hng
- Working balance
- Type ( type=TAI KHOAN THANH TOAN nu category=1001,
category=6001 th type=TAI KHOAN TIET KIEM ngc li th
hin th TAI KHOAN KHAC
LG: Cc thng tin yu cu nm trong bng ACCOUNT.
Vit Routine gn vo ct Type vi ni dung nh sau:
SUBROUTINE AC.RTN.TYPE
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.ACCOUNT
Y.CATE=R.RECORD<AC.CATEGORY>
BEGIN CASE
CASE Y.CATE EQ 1001
O.DATA='TAI KHOAN THANH TOAN'
CASE Y.CATE EQ 6001
O.DATA='TAI KHOAN TIET KIEM'
14

CASE 1
O.DATA='TAI KHOAN KHAC'
END CASE
RETURN
END
Thit k Enquiry nh hnh di

V d 8: Vit mt vn tin ly ra cc thng tin sau: S ti khon, tn khch


hng, loaij tin t, s tin Working Balance,s tin chuyn i nu l ngoi t
15

( vi nhng ti khon ngoi t th chuyn i v s tin ni t sau hin th


ra, vi ng ni t th gi nguyn )
LG:
Phn tch: Bng ACCOUNT c trng CURRENCY th hin loi tin t. T
c th xc inh c l ni t hay ngoi t. Nu l ngoi t th link n
bng CURRENCY ly ra t gi.
Vit v bin dch ROUTINE sau:
SUBROUTINE AC.RTN.BALANCE
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.ACCOUNT
$INSERT I_F.CURRENCY
FN.CCY='F.CURRENCY'
F.CCY=''
CALL OPF(FN.CCY,F.CCY)
Y.CCY=R.RECORD<AC.CURRENCY>
IF Y.CCY NE 'VND' THEN
CALL F.READ(FN.CCY,Y.CCY,R.CCY,F.CCY,ERR.CCY)
Y.MID.RATE=R.CCY<EB.CUR.MID.REVAL.RATE,1>
O.DATA=R.RECORD<AC.WORKING.BALANCE>*Y.MID.RATE
END
RETURN
END
Thit k ENQ

16

2. BUILD ROUTINE
- Dng can thip vo iu kin tm kim
- Routine c gi sau khi iu kin tm kim c nh c thc hin
v trc khi iu kin tm kim ng c gi n.

17

( Bng iu kin tm kim)


- ROUTINE phi c mt tham s truyn vo l ENQ.DATA, y l
mt mng ng c khai bo trong I_ENQUIRY.COMMON. Cc
gi tr ca bin ny c ngha nh sau:
ENQ.DATA<1,i> : Tn ca Enq
ENQ.DATA<2,i> : Trng c la chn tm kim
ENQ.DATA<3,i> : Ton t tm kim
ENQ.DATA<4,i> : gi tr tm kim
(i=1,2,3 tng ng vi th t hng trong bng iu kin )
- Nh vy, khi iu kin tm kim c ngi dng nhp vo v pht
lnh thc hin th cc gi tr nhp vo s c truyn vo mng
ENQ.DATA. Trong ROUTINE ta s thc hin lnh gn iu kin
ng vo tip sau hng cc iu kin tnh.
- ROUTINE c gn vo trng 12.1
V d 9: To mt vn tin hin th thng tin s ti khon, category v s d
thc tng ng , sau khi ngi s dng nhp category vo
Vi category 1001- Lc cc ti khon c s d ln hn 0 v nh hn 100
triu
Vi category 6001 Lc cc ti khon c s d ln hn 200 triu
18

Vi cc category khc- Lc ly cc ti khon c s d nh hn 0


LG:
Vit v bin dch ROUTINE sau:
SUBROUTINE AC.RTN.BUILD.1(ENQ.DATA)
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
LOCATE "CATEGORY" IN ENQ.DATA<2> SETTING Y.CAT.POS
Y.CATEGORY = ENQ.DATA<4,Y.CAT.POS>
Y.FIELDS.COUNT = DCOUNT(ENQ.DATA<2>,VM) +1
ENQ.DATA<2,Y.FIELDS.COUNT> = "WORKING.BALANCE"
BEGIN CASE
CASE Y.CATEGORY = 1001
ENQ.DATA<3,Y.FIELDS.COUNT> = "RG"
ENQ.DATA<4,Y.FIELDS.COUNT> = "0 100000000"
CASE Y.CATEGORY = 6001
ENQ.DATA<3,Y.FIELDS.COUNT> = "GT"
ENQ.DATA<4,Y.FIELDS.COUNT> = "200000000"
CASE 1
ENQ.DATA<3,Y.FIELDS.COUNT> = "LE"
ENQ.DATA<4,Y.FIELDS.COUNT> = "0"
END CASE
RETURN
END
Thit k ENQ:

19

20

III.
Enquiry nofile
- S dng NOFILE to vn tin phc tp yu cu phi ly d liu t
nhiu bng m c th khng c cc trng lin kt vi nhau.
- Tt c d liu cn hin th u ly ra t ROUTINES
Cc bc thc hin:
- Vit ROUTINES :
+ ROUTINE cn c mt bin tr v, bin ny l mt mng ng.
Mng tr v ny s lu tr cc thng tin cn hin th trn
ENQUIRY.
+ Mi phn t ca mt mng s tng ng vi mt hng trn
ENQUIRY, thng tin gia cc ct cn phn tch nhau vi mt k t (Hoc
mt chui) no m kh c kh nng trng lp d liu ( v d : #, *,$,|)
+ them d liu vo mt mng ng ta c th dng cu trc:
ARR_VAR<-1>=data. Khi data s c chn vo phn t tip theo ca
mng ARR_VAR.
+ Bin D.FIELDS l mng lu tr tn cc trng chn trong truy
vn
+ Bin D.RANGE.AND.VALUE l mng lu tr gi tr c
gn cho trng la chn.
- ng k trong STANDAR.SELECTION:
21

ID ca bn ghi phi c dng NOFILE.XXXXX


S dng cc trng sau:
15 - Usr Field Name :Tn trng ROUTINE hoc trng la
chn.
16- Usr Type: R nu l ROUTINE, S nu l trng chn
trong hp iu kin
17- Usr Field No: Tn ca ROUTINE nu l trng loi R,
trng nu l trng loi S.
20- Usr Display Fmt: nh dng d liu hin th
24- Usr Single Mult: S- trng single value, M- trng Multi
value
V d:

- Thit k ENQUIRY
+ Trng File Name: Tn ng k trong
STANDAR.SELECTION
+ Predfined Selection: Tn trng ROUTINE trong
STANDAR.SELECTION ( trng 15.1 )
+ Selection field: Cc trng cn lc d liu ( cc trng
15.1,15.2, trong STANDAR.SELECTION)
+ Operation: 0
+ Conversion: c dng F limitStr,colNum,numCol
limitStr: k t phn cch gia cc trng (thng l #,*,)
colNum:phn t th colNum
22

numCol: ly numCol phn t tnh t phn t colNum( thng


l 1)
V d 10: Vit mt vn tin ly ra tt c giao dch ca mt ti khon trong
ngy hm nay v ngy hm qua, Cc thng tin a ra bao gm: S ti khon,
s giao dch, s tin, ngy hch ton. Bit cc thng tin sau:
Cc giao dch ca ngy hm nay c lu trong bng ACCT.ENT.TODAY,
cn cc giao dch ca ngy hm qua c lu trong bng
ACCT.ENT.LWORK.DAY
LG:
Vit ROUTINE:
SUBROUTINE AC.RTN.NOFILE.1(Y.DATA)
$INSERT I_COMMON
$INSERT I_EQUATE
$INSERT I_ENQUIRY.COMMON
$INSERT I_F.STMT.ENTRY
FN.ACCT.TODAY='F.ACCT.ENT.TODAY'
F.ACCT.TODAY=''
CALL OPF(FN.ACCT.TODAY,F.ACCT.TODAY)
FN.ACCT.LAST='F.ACCT.ENT.LWORK.DAY'
F.ACCT.LAST=''
CALL OPF(FN.ACCT.LAST,F.ACCT.LAST)
FN.STMT='F.STMT.ENTRY'
F.STMT=''
CALL OPF(FN.STMT,F.STMT)
Y.ACCT.ID=''
LOCATE "ACCOUNT" IN D.FIELDS SETTING CUS.POS THEN
Y.ACCT.ID = D.RANGE.AND.VALUE<CUS.POS>
END

23

CALL
F.READ(FN.ACCT.TODAY,Y.ACCT.ID,R.ACCT.TODAY,F.ACCT.TOD
AY,ERR.TODAY)
LOOP
REMOVE Y.STMT.ID FROM R.ACCT.TODAY SETTING POS1
WHILE Y.STMT.ID:POS1
GOSUB LOAD.DATA
REPEAT
CALL
F.READ(FN.ACCT.LAST,Y.ACCT.ID,R.ACCT.LAST,F.ACCT.LAST,ER
R.LAST)
LOOP
REMOVE Y.STMT.ID FROM R.ACCT.LAST SETTING POS2
WHILE Y.STMT.ID:POS2
GOSUB LOAD.DATA
REPEAT
RETURN
LOAD.DATA:
CALL F.READ(FN.STMT,Y.STMT.ID,R.STMT,F.STMT,ERR.STMT)
Y.AC=R.STMT<AC.STE.ACCOUNT.NUMBER>
Y.TRAN.REF=R.STMT<AC.STE.OUR.REFERENCE>
Y.AMT=R.STMT<AC.STE.AMOUNT.LCY>
Y.DATE=R.STMT<AC.STE.BOOKING.DATE>
Y.DATA<-1>=Y.AC:'#':Y.TRAN.REF:'#':Y.AMT:'#':Y.DATE
RETURN
END
ng k trong STANDAR.SELECTION

24

Thit k trong ENQUIRY:

25

26

You might also like