Professional Documents
Culture Documents
TIPTOP GP HB 1.00.03 繁
TIPTOP GP HB 1.00.03 繁
TIPTOP
TIPTOP GP
TIPTOP
2447
222
tiptop-tsc@dsc.com.tw
2004 07 15
1.00.03
2004-2005
Printed in Taiwan
=====================================================
Chap 01TIPTOP GP
1.1
1.2
1.2.1
1.2.2
1.3
1.4
1.5
1.6
1.7
1-1
1-3
1-3
1-4
1-5
1-6
1-8
1-9
1-10
Chap 02TIPTOP GP
2.1
2.1.1
2.1.2
2.1.3
2.2
2.2.1
2.2.2
2.2.3
2.2.4
2.2.5
2.2.6
2.2.7
2-1
2-1
2-2
2-7
2-9
2-9
2-11
2-15
2-17
2-20
2-22
2-23
Chap 03TIPTOP GP
3.1
3.2
3.3
3.4
3.5
3.5.1
3.5.2
3.5.3
3.5.4
3.6
3-1
3-3
3-4
3-5
AZZ 3-6
3-7
3-8
3-13
3-14
3-17
=====================================================
Chap 04
4.1
4.2
4.3
4.4
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.4.7
4.4.8
4.4.9
4.4.10
4-1
4-2
4-3
4-5
4-5
4-8
4-14
4-21
4-30
4-32
4-34
4-36
4-40
4-44
Chap 05
5.1
5.2
5.3
5.4
5.4.1
5.4.2
5.4.3
5.4.4
5.4.5
5.4.6
5-1
5-2
5-5
5-7
5-7
5-9
5-16
5-24
5-49
5-59
Chap 06
6.1
6.2
6.3
6.4
6.4.1
6.4.2
6.4.3
6.4.4
6.4.5
6-1
6-2
6-4
6-6
6-7
6-8
6-9
6-12
6-16
=====================================================
Debugger 7-1
7-3
Appdenix ATIPTOP GP
A.1
A-1
Chapter 1
TIPTOP GP
DataSystem
1.1
A
G
C
X
AXX
XX
ASMSystem ManagermentASM
AXM
TIPTOP
aap
abg
Budget Management
abm
BOM
BOM Management
abx
aco
acs
adm
Deformed Management
aec
afa
TIPTOP GP 1-1
TIPTOP GP
agl
aim
Inventory Management
amd
amm
Module Management
amr
MRP
MRP Management
ams
MPS
anm
Notes Management
aoo
apm
Purchase Management
apj
Project Management
aps
apy
aqc
arm
Rejection/Maintains Manage
asd
asf
asm
aws
EasyFlow
axc
axd
axm
Order Management II
axr
Accounts Receivable
axs
azz
TIPTOP GP
TIPTOP GP Management
gap
ggl
gis
gnm
Notes Management
gpm
Purchase Management
gpy
gxr
Accounts Receivable
lib
sub
qry
TIPTOP GP 1-2
DataSystem
1.2
1.2.1
_
SSSQ999
z SSS
z Q
I
z 999
0
1
AZZ
AZZ
p_zzzz_file
p_perlangPERLanguage
TIPTOP GP 1-3
TIPTOP GP
1.2.2.
4gl
4gl
4gl
42m
42r
per
42f
sch
TIPTOP GP 1-4
DataSystem
1.3
TIPTOP GP
cl_xxxxxxx
cl_Common Library
xxxxxxx 1 17 p_link
_
cl_err
cl_opmsg
function
p_linklib
TIPTOP GP $top/lib
42m
42f
TIPTOP GP 1-5
TIPTOP GP
1.4
s_xxxxxxx
s_Subfunction
xxxxxxx 17 1
s_tlf
s_upimg img
TIPTOP GP $TOP/sub
42m42f
z
z
z cl_xxx
z s_xxx
TIPTOP GP 1-6
DataSystem
q_xxxxxxx
q_Query
xxxxxxx 17 1
table name
q_ima
q_gef
TIPTOP GP $TOP/qry
42m42f
p_qry
AZZ p_qry
TIPTOP GP 1-7
TIPTOP GP
1.5
Function
xxxx_yy
xxxx_
yy
i100_a i100
_a
_r
_b
_rep
_copy
_show
_fetch
_u
_i
_out
_menu
_bp:
_q
_ima01
_set_entry:
_set_no_entry:
TIPTOP GP 1-8
DataSystem
1.6
Global Varibles
g_xxxxxxx
g_ Global
xxxxxxx
g_gui_type gui
g_style_list window Window Style
$top/config/top.global
Local Varibles
l_xxxxxxx
l_Local Function
xxxxxxx
(PARAMETER VARLABLES)
p_xxxxxxx
p_(PARAMETER)
xxxxxxx
SCREEN VARIABLES
s_xxxxxxx
s_
xxxxxxx
TIPTOP GP 1-9
TIPTOP GP
1.7
3 4
Table Name
xxx_file xxx 2 4
_file
ima_file gef_file
p_zta
Field Name
xxx99
xxx
99 2 3 4
zz32 zz_file gaz03
p_zta
TIPTOP GP 1-10
Chapter 2
TIPTOP GP
DataSystem
2.1
2.1.1
2.1.1.1
TIPTOP GP
TIPTOP GP 2-1
TIPTOP GP
2.1.1.2
2.1.2
TIPTOP GP 2-2
DataSystem
2.1.2.1
TIPTOP GP 2-3
TIPTOP GP
2.1.2.2
(1)
TIPTOP GP 2-4
DataSystem
(2)
[ENTER]
(3)
[ENTER]
z
z
TIPTOP GP 2-5
TIPTOP GP
(4)
TIPTOP GP 2-6
DataSystem
2.1.2.3
TIPTOP GP
2.1.3
2.1.3.1
F1
F2
TIPTOP GP 2-7
TIPTOP GP
2.1.3.2
TIPTOP GP 2-8
DataSystem
2.2
2.2.1
TIPTOP GP 2-9
TIPTOP GP
2.2.1.1
(1)
(2)
(3)
(4)
TIPTOP GP 2-10
DataSystem
2.2.2
2.2.2.1
(1)
(2)[ENTER][TAB]
(3)
(4)
TIPTOP GP 2-11
TIPTOP GP
(5)
(6)
2.2.2.2
(1)
(2)
(3)
2.2.2.3
(1)
(2)
TIPTOP GP 2-12
DataSystem
2.2.2.4
(1)
(2)
(3)
2.2.2.5
(1)
(2)
(3)
TIPTOP GP 2-13
TIPTOP GP
2.2.2.6
(1)
2.2.2.7
(1)
()
(2)
*A* A
?A? A
=
>n n>100
<n n<100
<>n<>100<>A001
n:m n m 100:200
x|y x yA|B50|60
[a-z]* a z
(3)
(4)
TIPTOP GP 2-14
DataSystem
2.2.3
2.2.3.1
A.
B.
F1
C.
F2
TIPTOP GP 2-15
TIPTOP GP
D.
E.
PageUp
PageDown
2.2.3.2
(1)
2.2.3.3
(1)
TIPTOP GP 2-16
DataSystem
2.2.4
2.2.4.1
A.
B.
C.
TIPTOP GP 2-17
TIPTOP GP
2.2.4.2
A.
2.2.4.3
A.
B.
2.2.4.4
A.
B.
TIPTOP GP 2-18
DataSystem
2.2.4.5
A.
B.
2.2.4.6
A.
2.2.4.7
A.
()
B.
C.
D.
TIPTOP GP 2-19
TIPTOP GP
2.2.5
*A* A
?A? A
=
>n n>100
<n n<100
<>n<>100<>A001
n:m n m 100:200
x|y x yA|B50|60
[a-z]* a z
TIPTOP GP 2-20
DataSystem
[ENTER]
[ENTER]
TIPTOP GP 2-21
TIPTOP GP
2.2.6
2.2.6.1
2.2.6.2
A.
B.
TIPTOP GP 2-22
DataSystem
2.2.7
(QBE )
*A* A
?A? A
TIPTOP GP 2-23
TIPTOP GP
=
>n n>100
<n n<100
<>n<>100<>A001
n:m n m 100:200
x|y x yA|B50|60
[a-z]* a z
[ENTER]
TIPTOP GP 2-24
DataSystem
z
(QBE )
z
z
[ENTER]
1.
2.
1.
L.
TIPTOP GP 2-25
3.
TIPTOP GP
4.
5.
J:JavaMail
Java Java Mail
E-mail Address
TIPTOP GP 2-26
DataSystem
6.
C:
7.
z 66 66 33
z
z
12
34
TIPTOP GP 2-27
8.
H:
9.
TIPTOP GP
TIPTOP GP 2-28
Chapter 3
TIPTOP GP
DataSystem
3.1
tiptop tiptop
tiptop
config
aap,abx,azz...
sub,lib,qry
4ad
4gl
4gl
4tm
42m
42m
4sm
42r
per
4tb
per
42f
4st
42f
top.global
sch
rep
release
demo
schema
doc
tool
log
ds4gl2
out
bin
tmp
tiptop.key
trigger
TIPTOP GP
z bin
z config
z demo
z ds4gl2
z tmp
z aim
z libcl_xxx
z subs_xxx
z qryq_xxx
TIPTOP GP 3-1
TIPTOP GP
config
TOOLBAR
Window StyleAction Default
z top.global g_user
g_plant
z 4ad Action
z 4tm TopMenu
4gl
per
sql42m42r42f
z
z
z
z
z
z
4gl
42m
42r
42m
per
42f
sch
TIPTOP GP 3-2
DataSystem
3.2
TIPTOP GP DB Genero
TIPTOP GP
.profile
ORACLE_HOME
ORACLE ORACLE
ORACLE_SID
ORACLEORACLE
NLS_LANG
ORACLE
INFORMIXDIR
INFORMIX Informix
INFORMIXSERVER
INFORMIXInformix ON-line
DBLANG
INFORMIX
DBPATH
ORACLE
DBDATE
DBDELIMITER
FGL $FGLDIR/envcomp$FGLASDIR/envas
FGLDIR
FGLASDIR
Web Server
FGLASIP
Web Server
FGLDBPATH
FGLPROFILE
LANG
FGL
TIPTOP GP $TOP/bin/tiptop_sys
TOP
TIPTOP GP
Axx
Axxi
VI
LPX
TIPTOP GP 3-3
TIPTOP GP
3.3
TIPTOP GP
shell script
SHELL Script
r.c2
4gl 42m
r.l2
42m 42r
r.l2 lib sub qry r.gx
42x
r.r2
42r
r.d2
Debugger
r.d2+
Debugger
r.f2
per 42f
r.gf
42f
r.gx
sublibqry 42x
exe2
42r
SHELL Script
r.s2
db SCHEMA
loaddb
db
unloaddb
db
TIPTOP GP 3-4
DataSystem
3.4
TIPTOP GP
instance informix
on-line
TIPTOP GP
TIPTOP GP
topprod
topcust
tiptop
toptest
topcust
tiptop
TIPTOP GP 3-5
TIPTOP GP
3.5 AZZ
TIPTOP GP Genero
ERP
TIPTOP
GP
GP
4GL
1.
2.
3.
4.
udm7
GP p_zz
p_zta
p_zxp_zyp_zxwp_zxy
TIPTOP GP 3-6
DataSystem
3.5.1
udm7
udm7
TIPTOP GP aoo
TIPTOP GP 3-7
TIPTOP GP
3.5.2 GP
p_zz
AZZ
p_zz
p_linkAction p_base_actPER
p_base_perp_help
TIPTOP GP 3-8
DataSystem
p_link
TIPTOP GP p_link
42m
TIPTOP GP 3-9
TIPTOP GP
p_base_act
4ad 4ad
TIPTOP GP Action
Action
TIPTOP GP 3-10
DataSystem
p_base_per
p_help
TIPTOP GP 3-11
TIPTOP GP
p_help
html
html
html
$TOP/doc/help
html
client
TIPTOP GP 3-12
DataSystem
3.5.3
p_zta
sqlplus informix dbaccess
p_zta
TIPTOP GP 3-13
TIPTOP GP
3.5.4
TIPTOP GP
p_zx
p_zx
Web
user ActiveX
TIPTOP GP 3-14
DataSystem
p_zxy
p_base_act
1.
2.
3.
p_zz
p_zx p_zy
p_zxw
p_zz
p_zy
p_zxw
TIPTOP GP 3-15
TIPTOP GP
p_zy
p_zy
Action
p_zz
AZZ
TIPTOP GP 3-16
DataSystem
3.6
(p_tabname)
Table
(p_zta)
(p_feldname)
(Table)
schema ,
Create Table ( Alter),
(p_zs)
PER file,
r.f2 .per ,
.42f
UI
(r.gf)
Per ,
r.gf ,
UI (gae_file)
UI
(p_perlang)
UI,
Combox..
UI
(p_per)
(p_za)
Key,
za_file
(4gl),
r.c2 compile .42m
TIPTOP GP 3-17
TIPTOP GP
(p_zz)
Table
(p_link)
ACTION
(p_base_act)
(link)(.42m) ,
r.l2
(.42m-> .42r)
ACTION,
Button Label Hot Key,
ACTION
p_link
ACTION ,
(p_zz)
(p_zy)
ACTION
(p_zm)
zm_file ,
,
start menu
TIPTOP GP
TIPTOP GP 3-18
Chapter 4
DataSystem
4.1
MAIN
menu( )
q( )
F/N/P/L
a( )
u( )
r( )
x( )
copy( )
out( )
cs( )
fetch( )
i( )
show( )
show( )
show( )
u( )
rep( )
i( )
delh( )
fetch( )
show( )
TIPTOP GP 4-1
TIPTOP GP
4.2
gen_file
:
gen01
VARCHAR2(8)
gen02
VARCHAR2(8)
gen03
VARCHAR2(6)
gen04
VARCHAR2(20)
gen05
VARCHAR2(5)
gen06
VARCHAR2(30)
genacti
VARCHAR2(1)
genuser
VARCHAR2(10)
gengrup
VARCHAR2(6)
genmodu
VARCHAR2(10)
gendate
DATE
gen_01
unique
(gen01)
TIPTOP GP 4-2
DataSystem
TIPTOP GP
4.3
aooi010
aooi010
Genero TIPTOP GP
per
TIPTOP GP 4-3
TIPTOP GP
PER Example
SCHEMA ds
LAYOUT
VBOX
FOLDER
PAGE page01 (TEXT="Main")
GRID
{
Employee No.
[azb1
Name
[gen02
Password
[azb02
Department No.
[gen03
][gem02
Position
[gen04
Amount
[azb06
}
END --GRID
END --PAGE
PAGE info (TEXT="Info")
GRID
{
Record Owner [azbuser
] Last Modified by
Department
[grup
}
END --GRID
END --PAGE
END --FOLDER
GRID
{
----------Rows [cnt
] ----------
}
END --GRID
END --VBOX
END LAYOUT
TABLES azb_file
TIPTOP GP 4-4
[azbmodu
DataSystem
TIPTOP GP
ATTRIBUTES
BUTTONEDIT azb1
azb02
= azb02;
gen02
= FORMONLY.gen02, NOENTRY;
gem02
= FORMONLY.gem02, NOENTRY;
gen03
= FORMONLY.gen03, NOENTRY;
gen04
= FORMONLY.gen04, NOENTRY;
azb06
= azb06;
cnt
= azbgrup, NOENTRY;
END
TIPTOP GP 4-5
TIPTOP GP
4.4
4.4.1
Program Memo
1 # Prog. Version..: '1.00.01-04.05.17'
2 # Pattern name...: aooi010.4gl
3 # Descriptions...:
: 92/05/05 By David
6 # Note
Global Setting
8 DATABASE ds
9
10 GLOBALS "../../config/top.global"
config/top.global TIPTOP GP
top.global
g_prog
g_user
g_clas
g_lang
g_privX
g_qryparam
g_action_choice cl_chk_act_auth
TIPTOP GP 4-6
DataSystem
TIPTOP GP
TIPTOP GP
12 DEFINE g_azb
13
g_azb_t
14
g_azb01_t
LIKE azb_file.azb01,
15
g_x
16
g_wc
STRING,
# user
17
g_sql
STRING,
# sql
18
g_azb_rowid INTEGER
# Key
# ROWID
19
20 DEFINE g_forupd_sql
STRING
21 DEFINE g_before_input_done
SMALLINT
# Before Input
22 DEFINE g_chr
VARCHAR(1)
23 DEFINE g_cnt
INTEGER
24 DEFINE g_dash
VARCHAR(400)
25 DEFINE g_i
SMALLINT
# FOR
26 DEFINE g_len
SMALLINT
# (79/132/136)
27 DEFINE g_msg
VARCHAR(72)
28 DEFINE g_curs_index
INTEGER
# TOOLBAR
29 DEFINE g_row_count
INTEGER
30 DEFINE g_jump
INTEGER
31 DEFINE g_no_ask
SMALLINT
TIPTOP GP 4-7
TIPTOP GP
4.4.2
Main Outline
33 MAIN
45
48
67
68
70
CALL cl_ui_init()
# Window
72
CALL i010_menu()
# Menu
74
75
76 END MAIN
MENU ""
BEFORE MENU
# icon
131
ON ACTION insert
132
LET g_action_choice="insert"
133
IF cl_chk_act_auth() THEN
134
CALL i010_a()
135
END IF
213
END MENU
214
CLOSE i010_cs
TIPTOP GP 4-8
# g_action_choice
DataSystem
TIPTOP GP
Main Example
33 MAIN
34
DEFINE
35
p_row,p_col
SMALLINT,
36
l_time
VARCHAR(8)
37
38
OPTIONS
39
FORM LINE
FIRST + 2,
40
MESSAGE LINE
LAST,
41
PROMPT LINE
LAST,
42
INPUT NO WRAP
#:
43
DEFER INTERRUPT
45
46
48
49
50
END IF
52
cl_user()
TIPTOP GP
cl_err_msg_log
54
55
56
# AOO
cl_setup(arg) arg
TIPTOP GP 4-9
TIPTOP GP
58
60
62
63
cl_used()
# LOCK CURSOR
DB
65
67
68
g_win_style
70
CALL cl_ui_init()
# Window
cl_ui_init()
72
CALL i010_menu()
# Menu
74
76
cl_used()
76 END MAIN
TIPTOP GP 4-10
DataSystem
TIPTOP GP
Menu Example
125 FUNCTION i010_menu()
127
128
129
MENU ""
BEFORE MENU
# icon
cl_navigator_setting()
TOOLBAR
131
ON ACTION insert
132
LET g_action_choice="insert"
133
IF cl_chk_act_auth() THEN
134
CALL i010_a()
135
END IF
137
ON ACTION query
138
LET g_action_choice="query"
139
IF cl_chk_act_auth() THEN
140
END IF
143
ON ACTION first
146
147
149
150
152
153
155
156
cl_chk_act_auth()
g_action_choice action ID
CALL i010_q()
141
144
# g_action_choice
CALL i010_fetch('F')
ON ACTION previous
CALL i010_fetch('P')
ON ACTION jump
CALL i010_fetch('/')
ON ACTION next
CALL i010_fetch('N')
ON ACTION last
CALL i010_fetch('L')
TIPTOP GP ACTION
ACTION
ID
Action ID
Action ID
accept
first
cancel
previous
insert
jump
query
next
delete
lase
modify
invalid
output
export
reproduce
controlp
help
controlt
locale
controlz
detail
controln
exit
controlg
TIPTOP GP 4-11
158
TIPTOP GP
ON ACTION modify
159
LET g_action_choice="modify"
160
IF cl_chk_act_auth() THEN
161
162
164
TIPTOP GP action ID
CALL i010_u()
END IF
ON ACTION invalid
165
LET g_action_choice="invalid"
166
IF cl_chk_act_auth() THEN
167
168
170
CALL i010_x()
END IF
ON ACTION delete
171
LET g_action_choice="delete"
172
IF cl_chk_act_auth() THEN
173
174
176
CALL i010_r()
END IF
ON ACTION reproduce
177
LET g_action_choice="reproduce"
178
IF cl_chk_act_auth() THEN
179
CALL i010_copy()
180
END IF
182
ON ACTION output
183
LET g_action_choice="output"
184
IF cl_chk_act_auth()
185
186
188
189
ON ACTION help
CALL cl_show_help()
# Browser
Help cl_show_help()
client g_prog htm
191
ON ACTION exit
192
193
EXIT MENU
TIPTOP GP 4-12
DataSystem
TIPTOP GP
195
ON ACTION cancel
196
197
EXIT MENU
199
ON ACTION controlg
200
202
CALL cl_cmdask()
cl_cmdask()
zz08 UNIX
#, zz08
ON ACTION locale
203
CALL cl_dynamic_locale()
cl_dynamic_locale()
205
ON IDLE g_idle_seconds
206
CALL cl_on_idle()
207
CONTINUE MENU
# IDLE
# IDLE
cl_on_idle()
ON IDLE g_idle_seconds
g_idle_seconds
INPUTDISPLAYMENUPROMPT
209
COMMAND KEY(INTERRUPT)
210
211
EXIT MENU
COMMAND KEY(INTERRUPT)
Genero MENU COMMAND KEY
Windows X INTERRUPT
TIPTOP GP
213
END MENU
214
CLOSE i010_cs
TIPTOP GP 4-13
TIPTOP GP
4.4.3
Cursor
119
120
LET g_sql=
"SELECT COUNT(*) FROM azb_file WHERE ",g_wc CLIPPED
121
122
410
OPEN i010_count
411
cursor
LOCK CURSOR
LOCK CURSOR PREPARE
CURSOR OPEN
Lock Cursor
62
LET g_forupd_sql = "SELECT * FROM azb_file WHERE ROWID = ? FOR UPDATE NOWAIT"
63
# LOCK CURSOR
493
494
IF STATUS THEN
495
496
CLOSE i010_cl
497
ROLLBACK WORK
498
RETURN
499
END IF
500
501
IF SQLCA.sqlcode THEN
# DB
502
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,1)
503
RETURN
504
END IF
Lock cursor
LOCK CURSOR ORACLE
LOCK CURSOR FOR UPDATE NOWAIT INFORMIX NOWAIT
TIPTOP GP OPENFETCH error
TIPTOP GP 4-14
DataSystem
TIPTOP GP
Dynamic Query
88
CALL cl_init_qry_var()
# g_qryparam
89
#g_qryparam.form
90
#g_qryparam.state
91
#g_qryparam.default
92
93
94
cl_create_qry
TIPTOP GP
p_qry
p_qry
TIPTOP GP 4-15
TIPTOP GP
GLOBAL varibleg_qryparam.*
CALL cl_init_qry_var()
# g_qryparam
# ( INPUT/INPUT ARRAY)
where
arg
# 9
arg
CONSTRUCT INPUT
CONSTRUCT STRING
TIPTOP GP g_qryparam STRING
CALL cl_create_qry() RETURNING g_qryparam.multiret #
CONSTRUCT p_qry
default1
LET g_qryparam.multiret_index = 2
TIPTOP GP
cl_create_qry
TIPTOP GP 4-16
DataSystem
TIPTOP GP
Query Example
394 FUNCTION i010_q()
395
396
LET g_row_count = 0
397
LET g_curs_index = 0
398
CALL cl_navigator_setting(g_curs_index,g_row_count)
400
MESSAGE ""
401
CALL cl_opmsg('q')
402
DISPLAY '
403
CALL i010_curs()
404
IF INT_FLAG THEN
TOOLBAR
' TO FORMONLY.cnt
405
LET INT_FLAG = 0
406
CLEAR FORM
407
RETURN
408
END IF
410
OPEN i010_count
411
412
413
OPEN i010_cs
414
IF SQLCA.sqlcode THEN
# SCROLL CURSOR
_curs QBE
CURSOR MENU
# DB TEMP(0-30 )
415
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,1)
416
417
418
419
ELSE
CALL i010_fetch('F')
# TEMP
END IF
Curs Example
78 FUNCTION i010_curs()
79
80
CLEAR FORM
81
82
azb01,azb02,azb06,
83
azbuser,azbgrup,azbmodu,azbdate,azbacti
85
ON ACTION controlp
TIPTOP GP 4-17
86
TIPTOP GP
CASE
87
WHEN INFIELD(azb01)
88
CALL cl_init_qry_var()
89
90
91
92
93
94
95
96
OTHERWISE
97
EXIT CASE
98
END CASE
100
ON IDLE g_idle_seconds
101
CALL cl_on_idle()
102
CONTINUE CONSTRUCT
104
END CONSTRUCT
106
107
IF g_priv2='4' THEN
108
g_priv2g_priv3 SQL
#
109
END IF
110
IF g_priv3='4' THEN
111
# idle
112
g_grup CLIPPED,"*'"
113
END IF
114
115
116
117
DECLARE i010_cs
118
119
120
# SCROLL CURSOR
121
122
TIPTOP GP 4-18
DataSystem
TIPTOP GP
Fetch Example
422 FUNCTION i010_fetch(p_flazb)
423
424
DEFINE
p_flazb
CHAR(1)
425
426
FETCH KEY
CASE p_flazb
427
428
429
430
431
WHEN '/'
432
433
434
435
436
ON IDLE g_idle_seconds
437
CALL cl_on_idle()
438
END PROMPT
439
IF INT_FLAG THEN
440
LET INT_FLAG = 0
441
EXIT CASE
442
END IF
g_no_ask
g_no_ask=FALSE
g_jump
443
END IF
444
445
446
END CASE
448
IF SQLCA.sqlcode THEN
449
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,0)
450
RETURN
451
ELSE
KEY
TOOL
BAR Enable Disable
TIPTOP GP 4-19
452
CASE p_flazb
TIPTOP GP
#,
453
454
455
456
457
458
END CASE
g_curs_index
g_row_count
460
461
cl_navigator_setting(,)
TOOLBar
463
464
465
466
467
468
469
# DB, TEMP
END IF
Show Example
472 FUNCTION i010_show()
473
474
475
CALL i010_azb01('d')
TIPTOP GP 4-20
_show() display
DataSystem
TIPTOP GP
4.4.4
INPUT
Input Outline
267
273
275
276
CALL i010_set_entry(p_cmd)
277
CALL i010_set_no_entry(p_cmd)
278
280
302
306
AFTER INPUT
314
ON ACTION controlo
321
ON ACTION controlp
336
337
ON ACTION controlz
CALL cl_show_req_fields()
TIPTOP GP A,B,C
A C
AfterField ABeforeField BAfterField BBeforeField C
NEXT FIELD
Next Field
339
340
ON ACTION controlg
CALL cl_cmdask()
342
343
344
ON ACTION controlf
ON ACTION TIPTOP GP
# MENU
CASE
WHEN INFIELD(azb01) CALL cl_fldhlp('azb01')
348
END CASE
350
ON IDLE g_idle_seconds
351
CALL cl_on_idle()
352
CONTINUE INPUT
354
# IDLE
INPUT
END INPUT
TIPTOP GP 4-21
TIPTOP GP
Insert Example
218 FUNCTION i010_a()
219
MESSAGE ""
220
CLEAR FORM
221
222
223
224
CALL cl_opmsg('a')
225
WHILE TRUE
_a()
226
227
228
229
230
CALL i010_i("a")
231
IF INT_FLAG THEN
#(DEL)
232
233
LET INT_FLAG = 0
234
CALL cl_err('',9001,0)
235
CLEAR FORM
236
EXIT WHILE
237
END IF
238
239
#KEY
CONTINUE WHILE
240
END IF
241
242
IF SQLCA.sqlcode THEN
#DISK WRITE
243
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,0)
244
CONTINUE WHILE
245
ELSE
246
247
248
END IF
249
EXIT WHILE
250
END WHILE
TIPTOP GP 4-22
Rowid
row id
DataSystem
TIPTOP GP
Input Example
253 FUNCTION i010_i(p_cmd)
254
p_cmd
CHAR(1),
255
l_gen02
LIKE gen_file.gen02,
256
l_gen03
LIKE gen_file.gen03,
257
l_gen04
LIKE gen_file.gen04,
258
l_gem02
LIKE gem_file.gem02,
259
l_input
CHAR(1),
260
l_n
SMALLINT
262
DEFINE
DISPLAY BY NAME
263
g_azb.azb01,g_azb.azb02,g_azb.azb06,
264
g_azb.azbuser,g_azb.azbgrup,g_azb.azbmodu,
265
g_azb.azbdate,g_azb.azbacti
A B
NEXT FIELD B
TIPTOP GP
z
z
z BEFORE INPUT
z AFTER FIELD A A
z BEFORE INPUT
z BEFORE FIELD A
A BEFORE FIELD AFTER
FIELD
BEFORE FIELD AFTER FIELD
TIPTOP 6.5
TIPTOP GP 4-23
TIPTOP GP
g_sma.sma12
BEFORE INPUT
TIPTOP GP
z
z
_set_no_entry()Noentry
_set_entry()Entry
aimi110 SD
------------g_sma.sma12
-----------------------imz36,imz27,imz28,imz71,
imz25,imz17,imz19,imz21,
imz106,imz903
NOENTRY
------------------------------------g_sma.sma12 MATCHES '[nN]'
imz37
imz38,imz99
g_imz.imz37 != '0'
_set_no_entry()_set_entry()
z
z
BEFORE FIELD_set_entry()
Entry
AFTER FIELD_set_no_entry()
Noentry
INFIELD
BEFORE INPUT
g_before_input_done
BEFORE INPUT
TIPTOP GP 4-24
DataSystem
TIPTOP GP
------------- -----------------------p_cmd,g_chkey
aza01
NOENTRY
------------------------------------p_cmd = 'u' AND g_chkey = 'N'
z
z
z
_set_no_entry() aza01
Noentry
_set_entry() aza01 Entry
BEFORE INPUT
2
267
INPUT BY NAME
268
g_azb.azb01,g_azb.azb02,g_azb.azb06,
269
g_azb.azbuser,g_azb.azbgrup,g_azb.azbmodu,
270
g_azb.azbdate,g_azb.azbacti
271
WITHOUT DEFAULTS
BEFORE INPUT
274
LET l_input='N'
275
276
CALL i010_set_entry(p_cmd)
277
CALL i010_set_no_entry(p_cmd)
278
g_before_input_done
TIPTOP GP 4-25
280
282
TIPTOP GP
TIPTOP GP
283
IF p_cmd = "a" OR
# KEY
284
285
286
# Duplicated
287
CALL cl_err(g_azb.azb01,-239,1)
288
289
290
291
END IF
292
CALL i010_azb01('a')
_azb01()
293
294
CALL cl_err('azb01:',g_errno,1)
295
296
297
298
299
END IF
END IF
300
END IF
302
AFTER INPUT
303
IF INT_FLAG THEN
304
EXIT INPUT
305
END IF
AFTER INPUT
TIPTOP GP 4-26
DataSystem
TIPTOP GP
306
307
308
LET l_input='Y'
309
END IF
310
IF l_input='Y' THEN
311
312
END IF
314
ON ACTION CONTROLO
315
IF INFIELD(azb01) THEN
316
317
CALL i010_show()
318
319
321
322
323
TIPTOP GP controlo
END IF
ON ACTION controlp
TIPTOP GP controlp
CASE
WHEN INFIELD(azb01)
324
CALL cl_init_qry_var()
325
326
327
328
#UNBUFFER
329
330
332
333
OTHERWISE
EXIT CASE
334
END CASE
336
ON ACTION CONTROLZ
337
CALL cl_show_req_fields()
# g_qryparam
CONSTRUCT
status input
CONSTRUCT
g_qryparam.multiret
TIPTOP #
GP controlz REQUIRED
TOOLBAR
cl_show_req_fields()
REQUIRED
TIPTOP GP 4-27
339
TIPTOP GP
ON ACTION CONTROLG
340
CALL cl_cmdask()
# MENU
342
ON ACTION CONTROLF
343
CASE
344
345
346
347
OTHERWISE
348
CALL cl_fldhlp('
')
END CASE
TIPTOP GP controlf
350
ON IDLE g_idle_seconds
351
CALL cl_on_idle()
352
CONTINUE INPUT
# IDLE
USER
354
END INPUT
MEMO
TIPTOP GP 4-28
DataSystem
TIPTOP GP
Entry Example
825 FUNCTION i010_set_entry(p_cmd)
826
DEFINE
828
p_cmd
CHAR(1)
829
CALL cl_set_comp_entry("azb01",TRUE)
830
END IF
_set_entry()
Entry
cl_set_comp_entry()
cl_set_comp_required() REQUIRED
NoEntry Example
834 FUNCTION i010_set_no_entry(p_cmd)
835
DEFINE
837
838
839
p_cmd
CHAR(1)
_no_set_entry()
Noentry
MEMO
TIPTOP GP 4-29
TIPTOP GP
4.4.5.
Modify Example
478 FUNCTION i010_u()
479
480
CALL cl_err('',-400,0)
481
RETURN
482
END IF
483
484
485
CALL cl_err('',9027,0)
486
RETURN
487
END IF
488
MESSAGE ""
489
CALL cl_opmsg('u')
490
491
BEGIN WORK
493
494
IF STATUS THEN
acti
495
496
CLOSE i010_cl
497
ROLLBACK WORK
498
RETURN
499
END IF
500
501
IF SQLCA.sqlcode THEN
OPEN FETCH
# DB
502
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,1)
503
RETURN
504
END IF
505
LET g_azb.azbmodu=g_user
506
507
CALL i010_show()
TIPTOP GP 4-30
table modu
date
DataSystem
TIPTOP GP
508
WHILE TRUE
509
CALL i010_i("u")
510
IF INT_FLAG THEN
511
LET INT_FLAG = 0
512
LET g_azb.*=g_azb_t.*
513
CALL i010_show()
514
CALL cl_err('',9001,0)
515
EXIT WHILE
_i()
516
END IF
517
518
519
# DB
520
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,0)
521
CONTINUE WHILE
522
END IF
523
EXIT WHILE
524
END WHILE
525
CLOSE i010_cl
526
COMMIT WORK
MEMO
TIPTOP GP
TIPTOP GP 4-31
TIPTOP GP
4.4.6.
Delete Example
571
CALL cl_err('',-400,0)
572
RETURN
573
END IF
574
BEGIN WORK
576
577
IF STATUS THEN
578
579
CLOSE i010_cl
580
ROLLBACK WORK
581
RETURN
582
END IF
583
584
IF SQLCA.sqlcode THEN
585
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,0)
586
RETURN
587
END IF
588
CALL i010_show()
589
IF cl_delete() THEN
cl_delete()
590
591
CLEAR FORM
592
OPEN i010_count
593
594
TIPTOP GP 4-32
DataSystem
TIPTOP GP
595
OPEN i010_cs
596
597
598
CALL i010_fetch('L')
599
ELSE
600
601
602
CALL i010_fetch('/')
603
END IF
604
END IF
605
CLOSE i010_cl
606
COMMIT WORK
g_row_count
g_curs_index
_fetch(L)
g_jump
g_no_ask=TRUE
TIPTOP GP 4-33
TIPTOP GP
4.4.7.
Invalid Example
529 FUNCTION i010_x()
530
531
CALL cl_err('',-400,0)
532
RETURN
533
END IF
534
BEGIN WORK
536
537
IF STATUS THEN
538
539
CLOSE i010_cl
540
ROLLBACK WORK
541
RETURN
542
END IF
543
544
IF SQLCA.sqlcode THEN
545
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,1)
546
RETURN
547
END IF
548
CALL i010_show()
549
IF cl_exp(0,0,g_azb.azbacti) THEN
550
LET g_chr=g_azb.azbacti
551
IF g_azb.azbacti='Y' THEN
552
LET g_azb.azbacti='N'
553
554
ELSE
LET g_azb.azbacti='Y'
555
END IF
556
UPDATE azb_file
557
SET azbacti=g_azb.azbacti
558
WHERE ROWID=g_azb_rowid
TIPTOP GP 4-34
DataSystem
TIPTOP GP
559
IF SQLCA.SQLERRD[3]=0 THEN
560
CALL cl_err(g_azb.azb01,SQLCA.sqlcode,0)
561
LET g_azb.azbacti=g_chr
562
END IF
563
564
END IF
565
CLOSE i010_cl
566
COMMIT WORK
TIPTOP GP 4-35
TIPTOP GP
4.4.8.
Reproduce Example
609 FUNCTION i010_copy()
610
DEFINE
611
l_newno
LIKE azb_file.azb01,
612
l_oldno
LIKE azb_file.azb01,
613
p_cmd
CHAR(1),
614
l_input
CHAR(1)
616
617
CALL cl_err('',-400,0)
618
RETURN
619
END IF
621
LET l_input='N'
622
623
CALL i010_set_entry('a')
624
Entry
Key
625
627
628
629
630
TIPTOP GP 4-36
DataSystem
TIPTOP GP
631
632
CALL cl_err(l_newno,-239,0)
633
634
END IF
KEY
635
636
SELECT gen01
FROM gen_file
637
638
IF SQLCA.sqlcode THEN
639
640
641
642
643
645
646
END IF
END IF
ON ACTION controlp
_i() controlp
#
IF INFIELD(azb01) THEN
647
CALL cl_init_qry_var()
648
649
650
651
652
653
SELECT gen01
654
FROM gen_file
655
656
IF SQLCA.sqlcode THEN
657
658
659
660
END IF
661
662
END IF
TIPTOP GP 4-37
TIPTOP GP
663
ON IDLE g_idle_seconds
664
CALL cl_on_idle()
665
CONTINUE INPUT
667
END INPUT
668
IF INT_FLAG THEN
INPUT
669
LET INT_FLAG = 0
670
671
RETURN
672
END IF
673
DROP TABLE x
674
675
WHERE ROWID=g_azb_rowid
676
INTO TEMP x
677
678
temp table
KEY
UPDATE x
SET azb01=l_newno,
679
azbacti='Y',
680
azbuser=g_user,
681
azbgrup=g_grup,
682
azbmodu=NULL,
683
azbdate=g_today
684
685
686
687
688
689
690
691
692
693
694
_u()
TIPTOP GP 4-38
DataSystem
TIPTOP GP
695
696
697
END IF
698
699
CALL i010_show()
TIPTOP GP 4-39
TIPTOP GP
4.4.9.
TIPTOP GP
Report Example
702 FUNCTION i010_out()
703
DEFINE
704
l_i
SMALLINT,
705
l_azb
706
l_gen
707
l_name
CHAR(20),
708
sr RECORD
709
710
711
712
713
714
715
716
END RECORD,
717
l_za05
CHAR(40)
720
723
CALL cl_wait()
724
725
726
727
728
729
730
TIPTOP GP 4-40
za_file g_x[i]
DataSystem
TIPTOP GP
731
732
zz_file.zz17
733
734
735
736
737
"
746
# RUNTIME
747
DECLARE i010_curo
# SCROLL CURSOR
748
750
751
753
754
755
CALL cl_err('foreach:',SQLCA.sqlcode,1)
756
EXIT FOREACH
757
END IF
758
759
END FOREACH
761
FOREACH
FETCH
OUTPUT TO REPORT report_name
763
CLOSE i010_curo
764
ERROR ""
765
cl_prt()
cl_prt()
TIPTOP GP 4-41
TIPTOP GP
Format Example
REPORT report_name()
DEFINE
770
l_trailer_sw
771
sr RECORD
CHAR(1),
772
773
774
775
776
777
778
779
END RECORD
780
OUTPUT
781
TOP MARGIN 0
782
LEFT MARGIN 0
783
BOTTOM MARGIN 6
784
PAGE LENGTH 66
786
ORDER BY sr.azb01
788
FORMAT
789
PAGE HEADER
790
791
792
793
794
795
796
PRINT g_dash[1,g_len]
797
798
799
800
TIPTOP GP 4-42
DataSystem
TIPTOP GP
802
ON EVERY ROW
803
804
COLUMN 10,sr.gen02,
805
COLUMN 19,sr.gen03,
806
COLUMN 25,sr.gen04,
807
809
ON LAST ROW
810
PRINT g_dash[1,g_len]
811
812
g_x[7] CLIPPED
813
815
PAGE TRAILER
816
817
PRINT g_dash[1,g_len]
818
819
820
821
822
g_x[6] CLIPPED
ELSE
SKIP 2 LINE
END IF
TIPTOP GP 4-43
TIPTOP GP
4.4.10.
Other Example
CHAR(01),
360
l_gen02
LIKE gen_file.gen02,
361
l_gen03
LIKE gen_file.gen03,
362
l_gen04
LIKE gen_file.gen04,
363
364
l_gem02
366
LET g_errno=''
368
SELECT gen02,gen03,gen04,genacti
LIKE gem_file.gem02
369
INTO l_gen02,l_gen03,l_gen04,l_genacti
370
FROM gen_file
371
373
374
WHERE gen01=g_azb.azb01
CASE
WHEN SQLCA.sqlcode=100
LET g_errno='aoo-070'
375
LET l_gen02=NULL
376
LET l_gen03=NULL
377
LET l_gen04=NULL
378
WHEN l_genacti='N'
379
OTHERWISE
380
LET g_errno='9028'
381
END CASE
383
IF p_cmd='d' OR cl_null(g_errno)THEN
384
385
386
387
388
WHERE gem01=l_gen03
389
390
391
END IF
TIPTOP GP 4-44
Chapter 5
DataSystem
5.1
MAIN
menu()
bp()
a()
u()
q()
i()
show()
cs()
b()
i()
b()
N/P
copy()
r()
x()
fetch()
u()
show() show()
fetch()
b()
delh()
show()
show()
out()
rep()
b_fill()
TIPTOP GP 5-1
TIPTOP GP
5.2
SCHEMA ds
LAYOUT
VBOX
FOLDER
PAGE page01(TEXT="Main")
GRID
{
Inquiry List#
[pmw01
] [smydesc
Inquiry Date
[pmw06
]
Vender No.
[pmw03
] [pmc03
Trans.Currency
[mw04
]
[azi02
}
END --GRID
END --PAGE
PAGE info (TEXT="Info")
GRID
{
Record Owner [pmwuser
] Last Modified by
Department [grup
] Create/Modify Date
}
END --GRID
END --PAGE
END FOLDER
TIPTOP GP 5-2
]
]
]
[pmwmodu
[pmwdat
DataSystem
TIPTOP GP
TABLE
{
Line# Item No. Part Name Specification Inquiry Unit Effective Date Expiry Date Min.Qty
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
[pmx2 |pmx08
|pmx081
|pmx082
|pmx9
|pmx04
|pmx05
|pmx03
}
END --TABLE
GRID
{
---------- Rows [cnt
] / [cn2
] ---------}
END --GRID
END --VBOX
END --LAYOUT
Unit Price
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
|pmx06
Discount Rate%
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
|pmx7
]
TABLES pmw_file,pmx_file
ATTRIBUTES
BUTTONEDIT pmw01
pmc03
BUTTONEDIT mw04
azi02
DATEEDIT
pmw06
pmx2
BUTTONEDIT pmx08
pmx081
pmx082
BUTTONEDIT pmx9
DATEEDIT
pmx04
DATEEDIT
pmx05
pmx03
pmx06
pmx7
pmwuser
grup
pmwmodu
DATEEDIT
pmwdat
z
cnt
cn2
END
TIPTOP GP
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
=
FORMONLY.pmc03 ,NOENTRY;
pmw04, NOT NULL, REQUIRED, ACTION=CONTROLP, IMAGE="zoom", COMMENTS='<^P>Qry Currency';
FORMONLY.azi02 ,NOENTRY;
pmw06;
pmx02,NOT NULL,REQUIRED;
pmx08, ACTION=CONTROLP, IMAGE="zoom", COMMENTS='<^P>Qry Item Master <^Y>Create Item ';
pmx081,NOENTRY;
pmx082,NOENTRY;
pmx09, ACTION=CONTROLP, IMAGE="zoom",COMMENTS='<^P>Qry Unit
';
pmx04;
pmx05;
pmx03;
pmx06,NOT NULL,REQUIRED;
pmx07;
pmwuser, NOENTRY;
pmwgrup, NOENTRY;
pmwmodu, NOENTRY;
pmwdate, NOENTRY;
pmwacti, NOENTRY, UPSHIFT;
FORMONLY.cnt TYPE SMALLINT, NOENTRY ;
FORMONLY.cn2 TYPE SMALLINT, NOENTRY ;
INSTRUCTIONS
SCREEN RECORD
s_pmx[10](pmx02,pmx08,pmx081,pmx082,pmx09,pmx04,pmx05,pmx03,pmx06,pmx07)
END
TIPTOP GP 5-4
DataSystem
5.3
pmw_file
:
pmw_01
unique
(pmw01)
pmw01
CHAR(10)
pmw03
CHAR(10)
pmw04
CHAR(4)
pmw06
DATE
pmwacti
CHAR(1)
pmwdate
DATE
pmwgrup
CHAR(6)
pmwmodu
CHAR(10)
pmwuser
CHAR(10)
TIPTOP GP 5-5
TIPTOP GP
pmx_file
:
pmx_01
unique
(pmx01,pmx02)
pmx01
CHAR(10)
pmx02
SINT
pmx03
DEC(15,3)
pmx04
DATE
pmx05
DATE
pmx06
DEC(15,6)
pmx07
DEC(7,3)
pmx08
CHAR(20)
pmx081
CHAR(30)
pmx082
CHAR(30)
pmx09
CHAR(4)
TIPTOP GP 5-6
DataSystem
5.4
5.4.1
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
DATABASE ds
GLOBALS "../../config/top.global"
#(Module Variables)
DEFINE
g_pmw
RECORD LIKE pmw_file.*,
g_pmw_t
RECORD LIKE pmw_file.*,
g_pmw_o
RECORD LIKE pmw_file.*,
g_pmw01_t
LIKE pmw_file.pmw01,
g_pmw_rowid
CHAR(18),
g_t1
VARCHAR(03),
g_sheet
VARCHAR(3),
g_ydate
DATE,
g_pmx
DYNAMIC ARRAY OF RECORD
pmx02
LIKE pmx_file.pmx02,
pmx08
LIKE pmx_file.pmx08,
pmx081
LIKE pmx_file.pmx081,
pmx082
LIKE pmx_file.pmx082,
pmx09
LIKE pmx_file.pmx09,
pmx04
LIKE pmx_file.pmx04,
pmx05
LIKE pmx_file.pmx05,
pmx03
LIKE pmx_file.pmx03,
pmx06
LIKE pmx_file.pmx06,
pmx07
LIKE pmx_file.pmx07
END RECORD,
g_pmx_t
RECORD
pmx02
LIKE pmx_file.pmx02,
pmx08
LIKE pmx_file.pmx08,
pmx081
LIKE pmx_file.pmx081,
pmx082
LIKE pmx_file.pmx082,
pmx09
LIKE pmx_file.pmx09,
pmx04
LIKE pmx_file.pmx04,
pmx05
LIKE pmx_file.pmx05,
pmx03
LIKE pmx_file.pmx03,
pmx06
LIKE pmx_file.pmx06,
pmx07
LIKE pmx_file.pmx07
END RECORD,
#
#
#
#
#ROWID
()
()
()
()
#
()
#()
#(Program Variables)
#
#
#
#
#
#
#
#
#
#
# ()
#
#
#
#
#
#
#
#
#
#
TIPTOP GP 5-7
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
TIPTOP GP
g_pmx_o
pmx02
pmx08
pmx081
pmx082
pmx09
pmx04
pmx05
pmx03
pmx06
pmx07
RECORD
LIKE pmx_file.pmx02,
LIKE pmx_file.pmx08,
LIKE pmx_file.pmx081,
LIKE pmx_file.pmx082,
LIKE pmx_file.pmx09,
LIKE pmx_file.pmx04,
LIKE pmx_file.pmx05,
LIKE pmx_file.pmx03,
LIKE pmx_file.pmx06,
LIKE pmx_file.pmx07
END RECORD,
g_x ARRAY[20] OF
VARCHAR(40),
g_wc,g_wc2,g_sql
VARCHAR(300),
g_rec_b
SMALLINT,
l_ac
SMALLINT
DEFINE p_row,p_col SMALLINT
DEFINE g_azi03
SMALLINT
# ()
#
#
#
#
#
#
#
#
#
#
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
g_forupd_sql STRING
g_before_input_done SMALLINT
g_chr
VARCHAR(1)
g_cnt
INTEGER
g_dash
VARCHAR(400)
g_i
SMALLINT
g_len
SMALLINT
g_msg
VARCHAR(72)
g_zz05
VARCHAR(1)
g_curs_index
INTEGER
g_row_count
INTEGER
g_jump
INTEGER
g_no_ask
SMALLINT
TIPTOP GP 5-8
#
# ARRAY CNT
#Dash line
#count/index for any purpose
#Report width(79/132/136)
#Print tm.wc ?(Y/N)
#
#
#
DataSystem
5.4.2
Open Window
111
112
113
114
CALL cl_ui_init()
117
CALL i252_menu()
call cl_ui_init()
toolbaraction
Display Array
1490 FUNCTION i252_bp(p_ud)
1501
DISPLAY ARRAY g_pmx TO s_pmx.* ATTRIBUTE(COUNT=g_rec_b,UNBUFFERED)
1512
ON ACTION insert
Display array
1513
LET g_action_choice="insert"
function menu
1514
EXIT DISPLAY
Display array
1578
END DISPLAY
Menu
212
213
214
215
216
217
218
WHILE TRUE
menu action
CALL i252_bp("G")
function
CASE g_action_choice
WHEN "insert"
IF cl_chk_act_auth() THEN
CALL i252_a()
END IF
TIPTOP GP 5-9
TIPTOP GP
TIPTOP GP 5-10
DataSystem
5.4.2.2 Display Array xxxx_bp() function
1490 FUNCTION i252_bp(p_ud)
1491
DEFINE p_ud
VARCHAR(1)
# action function
1492
1493
1494
IF p_ud <> "G" OR g_action_choice = "detail" THEN
1495
RETURN
#
1496
END IF
#
1497
1498
LET g_action_choice = " "
# g_action_choice action
1499
#
1500
CALL cl_set_act_visible("accept,cancel", FALSE)
# action
1501
DISPLAY ARRAY g_pmx TO s_pmx.* ATTRIBUTE(COUNT=g_rec_b,UNBUFFERED)
1502
# unbuffered show
1503
BEFORE DISPLAY
1504
CALL cl_navigator_setting( g_curs_index, g_row_count )
1505
#
1506
BEFORE ROW
1507
LET l_ac = ARR_CURR()
# l_ac
1508
1509
##################################################################
1510
# Standard 4ad ACTION
1511
##################################################################
1512
ON ACTION insert
# action
1513
LET g_action_choice="insert"
# on action g_action_choice
1514
EXIT DISPLAY
# display array menu
1515
ON ACTION query
# g_action_choice function
1516
LET g_action_choice="query"
1517
EXIT DISPLAY
1518
ON ACTION delete
1519
LET g_action_choice="delete"
1520
EXIT DISPLAY
1521
ON ACTION modify
1522
LET g_action_choice="modify"
1523
EXIT DISPLAY
#
1524
ON ACTION first
1525
CALL i252_fetch('F')
#
1526
CALL cl_navigator_setting(g_curs_index, g_row_count)
1527
CALL fgl_set_arr_curr(1)
1528
ON ACTION previous
1529
CALL i252_fetch('P')
1530
CALL cl_navigator_setting(g_curs_index, g_row_count)
1531
CALL fgl_set_arr_curr(1)
TIPTOP GP 5-11
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
TIPTOP GP
ON ACTION jump
CALL i252_fetch('/')
CALL cl_navigator_setting(g_curs_index, g_row_count)
CALL fgl_set_arr_curr(1)
ON ACTION next
CALL i252_fetch('N')
CALL cl_navigator_setting(g_curs_index, g_row_count)
CALL fgl_set_arr_curr(1)
ON ACTION last
CALL i252_fetch('L')
CALL cl_navigator_setting(g_curs_index, g_row_count)
CALL fgl_set_arr_curr(1)
ON ACTION invalid
LET g_action_choice="invalid"
EXIT DISPLAY
ON ACTION reproduce
LET g_action_choice="reproduce"
EXIT DISPLAY
ON ACTION detail
#
LET g_action_choice="detail"
LET l_ac = 1
EXIT DISPLAY
ON ACTION output
LET g_action_choice="output"
EXIT DISPLAY
ON ACTION help
LET g_action_choice="help"
EXIT DISPLAY
ON ACTION locale
#
CALL cl_dynamic_locale()
ON ACTION exit
LET g_action_choice="exit"
EXIT DISPLAY
ON ACTION controlg
LET g_action_choice="controlg"
EXIT DISPLAY
ON ACTION accept
# DISPLAY ARRAY accept array
LET g_action_choice="detail"
# g_action_choice detail
LET l_ac = ARR_CURR()
#
EXIT DISPLAY
#
ON ACTION cancel
LET g_action_choice="exit"
EXIT DISPLAY
TIPTOP GP 5-12
DataSystem
1575
ON IDLE g_idle_seconds
# g_idle_seconds idle
1576
CALL cl_on_idle()
1577
CONTINUE DISPLAY
1578
END DISPLAY
1579
CALL cl_set_act_visible("accept,cancel", TRUE) # accept cancel DISPLAY ARRAY
1580 END FUNCTION
#
1581
# display array
# display array
TIPTOP GP 5-13
TIPTOP GP
TIPTOP GP 5-14
DataSystem
251
WHEN "exit"
252
EXIT WHILE
253
WHEN "controlg"
254
CALL cl_cmdask()
255
END CASE
256
END WHILE
257 END FUNCTION
TIPTOP GP 5-15
TIPTOP GP
5.4.3
695
CALL i252_cs()
712
CALL i252_fetch('F')
763
CALL i252_show()
key key
779
CALL i252_b_fill(g_wc2)
1471
FOREACH pmx_cs INTO g_pmx[g_cnt].*
menu display
1501 DISPLAY ARRAY g_pmx TO s_pmx.* ATTRIBUTE(COUNT=g_rec_b,UNBUFFERED)
TIPTOP GP 5-16
DataSystem
5.4.3.1 xxxx_q() function
684 FUNCTION i252_q()
685
686
LET g_row_count = 0
# 0
687
LET g_curs_index = 0
#
688
CALL cl_navigator_setting( g_curs_index, g_row_count )
689
MESSAGE ""
690
CALL cl_opmsg('q')
691
CLEAR FORM
#
692
CALL g_pmx.clear()
# CLEAR FORM.clear()
693
DISPLAY ' ' TO FORMONLY.cnt
694
695
CALL i252_cs()
#
696
697
IF INT_FLAG THEN
698
LET INT_FLAG = 0
699
INITIALIZE g_pmw.* TO NULL
700
RETURN
701
END IF
702
703
OPEN i252_cs
# DB TEMP(0-30 )
704
IF SQLCA.sqlcode THEN
705
CALL cl_err('',SQLCA.sqlcode,0)
706
INITIALIZE g_pmw.* TO NULL
707
ELSE
# cursor g_row_count
708
OPEN i252_count
709
FETCH i252_count INTO g_row_count
710
DISPLAY g_row_count TO FORMONLY.cnt
711
712
CALL i252_fetch('F')
# TEMP
713
END IF
714
715 END FUNCTION
TIPTOP GP 5-17
TIPTOP GP
TIPTOP GP 5-18
DataSystem
164
IF g_priv3='4' THEN
#
165
LET g_wc = g_wc clipped," AND pmwgrup MATCHES '",g_grup CLIPPED,"*'"
166
END IF
167
168
CONSTRUCT g_wc2 ON pmx02,pmx08,pmx09,pmx04,
#
169
pmx05,pmx03,pmx06,pmx07,pmx082
170
FROM s_pmx[1].pmx02,s_pmx[1].pmx08,s_pmx[1].pmx09,
171
s_pmx[1].pmx04,s_pmx[1].pmx05,s_pmx[1].pmx03,
172
s_pmx[1].pmx06,s_pmx[1].pmx07,s_pmx[1].pmx082
173
ON IDLE g_idle_seconds
174
CALL cl_on_idle()
175
CONTINUE CONSTRUCT
176
177
END CONSTRUCT
178
179
IF INT_FLAG THEN
180
RETURN
181
END IF
182
183
IF g_wc2 = " 1=1" THEN
#
184
LET g_sql = "SELECT ROWID, pmw01 FROM pmw_file ",
185
" WHERE ", g_wc CLIPPED,
186
" ORDER BY 2"
187
ELSE
#
188
LET g_sql = "SELECT UNIQUE pmw_file.ROWID, pmw01 ",
189
" FROM pmw_file, pmx_file ",
190
" WHERE pmw01 = pmx01",
191
" AND ", g_wc CLIPPED, " AND ",g_wc2 CLIPPED,
192
" ORDER BY 2"
193
END IF
194
195
PREPARE i252_prepare FROM g_sql
196
DECLARE i252_cs
# SCROLL CURSOR
197
SCROLL CURSOR WITH HOLD FOR i252_prepare
198
199
IF g_wc2 = " 1=1" THEN
#
200
LET g_sql="SELECT COUNT(*) FROM pmw_file WHERE ",g_wc CLIPPED
201
ELSE
202
LET g_sql="SELECT COUNT(DISTINCT pmw01) FROM pmw_file,pmx_file WHERE ",
203
"pmx01=pmw01 AND ",g_wc CLIPPED," AND ",g_wc2 CLIPPED
204
END IF
205
PREPARE i252_precount FROM g_sql
206
DECLARE i252_count CURSOR FOR i252_precount
207
208 END FUNCTION
TIPTOP GP 5-19
TIPTOP GP
DataSystem
759
INITIALIZE g_pmw.* TO NULL
760
RETURN
761
END IF
762
763
CALL i252_show()
764
765 END FUNCTION
TIPTOP GP 5-21
TIPTOP GP
TIPTOP GP 5-22
DataSystem
5.4.3.5 xxxx_b_fill() function
1456 FUNCTION i252_b_fill(p_wc2)
#
1457
DEFINE p_wc2
VARCHAR(200)
1458
1459
LET g_sql = "SELECT pmx02,pmx08,pmx081,pmx082,pmx09,pmx04,pmx05,pmx03,",
1460
" pmx06,pmx07 FROM pmx_file",
1461
" WHERE pmx01 ='",g_pmw.pmw01,"' ",
#
1462
"
AND ", p_wc2 CLIPPED,
#
1463
" ORDER BY 2,1,7"
1464
PREPARE i252_pb FROM g_sql
1465
DECLARE pmx_cs
# CURSOR
1466
CURSOR FOR i252_pb
1467
1468
CALL g_pmx.clear()
# array
1469
LET g_cnt = 1
# array
1470
1471
FOREACH pmx_cs INTO g_pmx[g_cnt].*
# ARRAY
1472
IF SQLCA.sqlcode THEN
1473
CALL cl_err('foreach:',SQLCA.sqlcode,1)
1474
EXIT FOREACH
1475
END IF
1476
LET g_cnt = g_cnt + 1
1477
IF g_cnt > g_max_rec THEN
#
1478
CALL cl_err( '', 9035, 0 )
1479
EXIT FOREACH
1480
END IF
1481
END FOREACH
# array
1482
CALL g_pmx.deleteElement(g_cnt)
# array
1483
#
1484
LET g_rec_b=g_cnt-1
1485
DISPLAY g_rec_b TO FORMONLY.cn2
1486
LET g_cnt = 0
1487
1488 END FUNCTION
TIPTOP GP 5-23
TIPTOP GP
5.4.4
269
INITIALIZE g_pmw.* LIKE pmw_file.*
285
WHILE TRUE
function function
291
CALL i252_i("a")
335
CALL i252_b()
337
END WHILE
437
INPUT BY NAME g_pmw.pmw01,g_pmw.pmw06,g_pmw.pmw03,g_pmw.pmw04
438
WITHOUT DEFAULTS
314
_a
948
INPUT ARRAY g_pmx WITHOUT DEFAULTS FROM s_pmx.*
949
ATTRIBUTE(COUNT=g_rec_b,MAXCOUNT=g_max_rec,UNBUFFERED,
950
INSERT ROW=l_allow_insert,DELETE ROW=l_allow_delete,
951
APPEND ROW=l_allow_insert)
TIPTOP GP 5-24
DataSystem
5.4.4.1 xxxx_a() function
259 FUNCTION i252_a()
260
261
MESSAGE ""
262
CLEAR FORM
263
CALL g_pmx.clear()
264
265
IF s_shut(0) THEN
266
RETURN
267
END IF
268
269
INITIALIZE g_pmw.* LIKE pmw_file.*
270
LET g_pmw01_t = NULL
271
272
IF g_ydate IS NULL THEN
273
LET g_pmw.pmw01 = NULL
274
LET g_pmw.pmw06 = g_today
275
ELSE
276
LET g_pmw.pmw01 = g_sheet
277
LET g_pmw.pmw06 = g_ydate
278
END IF
279
280
#
281
LET g_pmw_t.* = g_pmw.*
282
LET g_pmw_o.* = g_pmw.*
283
CALL cl_opmsg('a')
284
285
WHILE TRUE
286
287
288
289
290
291
292
293
294
295
296
297
298
299
LET
LET
LET
LET
g_pmw.pmwuser=g_user
g_pmw.pmwgrup=g_grup
g_pmw.pmwdate=g_today
g_pmw.pmwacti='Y'
# DEFAULT
#
#
#
# WHILE
CALL i252_i("a")
IF INT_FLAG THEN
INITIALIZE g_pmw.* TO NULL
LET INT_FLAG = 0
CALL cl_err('',9001,0)
EXIT WHILE
END IF
TIPTOP GP 5-25
TIPTOP GP
300
IF cl_null(g_pmw.pmw01) THEN
# KEY
301
CONTINUE WHILE
302
END IF
303
304
#, , ,
305
BEGIN WORK
306
IF g_smy.smyauno='Y' THEN
#
307
CALL s_smyauno(g_pmw.pmw01,g_pmw.pmw06) RETURNING g_i,g_pmw.pmw01
308
IF g_i THEN
309
CONTINUE WHILE
310
END IF
311
DISPLAY BY NAME g_pmw.pmw01
312
END IF
313
314
INSERT INTO pmw_file VALUES (g_pmw.*)
315
316
LET g_ydate = g_pmw.pmw06
#
317
LET g_sheet = g_pmw.pmw01[1,3]
#
318
319
IF SQLCA.sqlcode THEN
#
320
ROLLBACK WORK
321
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,1)
322
CONTINUE WHILE
323
ELSE
324
COMMIT WORK
#
325
CALL cl_flow_notify(g_pmw.pmw01,'I') #
326
END IF
327
328
SELECT ROWID INTO g_pmw_rowid FROM pmw_file
329
WHERE pmw01 = g_pmw.pmw01
330
LET g_pmw01_t = g_pmw.pmw01
#
331
LET g_pmw_t.* = g_pmw.*
332
LET g_pmw_o.* = g_pmw.*
333
CALL g_pmx.clear()
334
335
CALL i252_b()
#
336
EXIT WHILE
337
END WHILE
338
339 END FUNCTION
TIPTOP GP 5-26
DataSystem
5.4.4.2 xxxx_i() function
424 FUNCTION i252_i(p_cmd)
#
425
DEFINE l_pmc05 LIKE pmc_file.pmc05, #
426
l_pmc30 LIKE pmc_file.pmc30, # (p_cmd)
427
l_n
SMALLINT,
428
p_cmd
VARCHAR(1)
# a: u:
429
430
IF s_shut(0) THEN
431
RETURN
432
END IF
433
434
DISPLAY BY NAME g_pmw.pmwuser,g_pmw.pmwmodu, #
435
g_pmw.pmwgrup,g_pmw.pmwdate,g_pmw.pmwacti
436
437
INPUT BY NAME g_pmw.pmw01,g_pmw.pmw06,g_pmw.pmw03,g_pmw.pmw04
438
WITHOUT DEFAULTS
# input
439
440
BEFORE INPUT
441
LET g_before_input_done = FALSE
# BEFORE INPUT
442
CALL i252_set_entry(p_cmd)
#
443
CALL i252_set_no_entry(p_cmd)
#
444
LET g_before_input_done = TRUE
#
445
446
AFTER FIELD pmw01
447
#:
448
#, ;
449
#, ,
450
#, , ,
451
IF NOT cl_null(g_pmw.pmw01) THEN
452
LET g_t1=g_pmw.pmw01[1,3]
453
CALL s_mfgslip(g_t1,'apm','6')
#
454
IF NOT cl_null(g_errno) THEN
#,
455
CALL cl_err(g_t1,g_errno,0)
456
LET g_pmw.pmw01=g_pmw_o.pmw01
457
NEXT FIELD pmw01
458
END IF
459
DISPLAY g_smy.smydesc TO smydesc
#
460
IF p_cmd = 'a' THEN
461
IF g_pmw.pmw01[1,3] IS NOT NULL AND
#,
462
cl_null(g_pmw.pmw01[5,10]) THEN
#
463
IF g_smy.smyauno = 'N' THEN
#
464
NEXT FIELD pmw01
465
ELSE
#,
TIPTOP GP 5-27
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
TIPTOP GP
NEXT FIELD pmw03
#
END IF
END IF
IF g_pmw.pmw01[1,3] IS NOT NULL AND
NOT cl_null(g_pmw.pmw01[5,10]) THEN
IF NOT cl_chk_data_continue(g_pmw.pmw01[5,10]) THEN
CALL cl_err('','9056',0)
NEXT FIELD pmw01
END IF
END IF
END IF
IF g_pmw.pmw01 != g_pmw01_t OR g_pmw01_t IS NULL THEN
#
CALL s_mfgchno(g_pmw.pmw01) RETURNING g_i,g_pmw.pmw01
DISPLAY BY NAME g_pmw.pmw01
IF NOT g_i THEN
NEXT FIELD pmw01
END IF
SELECT count(*) INTO l_n FROM pmw_file
WHERE pmw01 = g_pmw.pmw01
IF l_n > 0 THEN
#
CALL cl_err(g_pmw.pmw01,-239,0)
LET g_pmw.pmw01 = g_pmw01_t
DISPLAY BY NAME g_pmw.pmw01
NEXT FIELD pmw01
END IF
END IF
END IF
TIPTOP GP 5-28
DataSystem
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
CALL cl_err('','mfg3288',1)
END IF
IF l_pmc05 = "2" THEN
CALL cl_err('','mfg3289',0)
NEXT FIELD pmw03
END IF
IF l_pmc30 = "2" THEN
CALL cl_err('','mfg3290',0)
NEXT FIELD pmw03
END IF
LET g_pmw_o.pmw03 = g_pmw.pmw03
END IF
AFTER FIELD pmw04
IF NOT cl_null(g_pmw.pmw04) THEN
IF g_pmw_o.pmw04 IS NULL OR
(g_pmw_o.pmw04 != g_pmw.pmw04 ) THEN
CALL i252_pmw04(p_cmd)
IF NOT cl_null(g_errno) THEN
CALL cl_err(g_pmw.pmw04,g_errno,0)
LET g_pmw.pmw04 = g_pmw_o.pmw04
DISPLAY BY NAME g_pmw.pmw04
NEXT FIELD pmw04
END IF
END IF
LET g_pmw_o.pmw04 = g_pmw.pmw04
END IF
ON ACTION CONTROLZ
CALL cl_show_req_fields()
ON ACTION CONTROLG
CALL cl_cmdask()
ON ACTION CONTROLF
CASE
WHEN INFIELD(pmw01)
WHEN INFIELD(pmw03)
WHEN INFIELD(pmw04)
WHEN INFIELD(pmw06)
WHEN INFIELD(pmx02)
WHEN INFIELD(pmx08)
WHEN INFIELD(pmx09)
WHEN INFIELD(pmx04)
#
CALL
CALL
CALL
CALL
CALL
CALL
CALL
CALL
cl_fldhlp('pmw01')
cl_fldhlp('pmw03')
cl_fldhlp('pmw04')
cl_fldhlp('pmw06')
cl_fldhlp('pmx02')
cl_fldhlp('pmx08')
cl_fldhlp('pmx09')
cl_fldhlp('pmx04')
TIPTOP GP 5-29
TIPTOP GP
554
WHEN INFIELD(pmx05) CALL cl_fldhlp('pmx05')
555
WHEN INFIELD(pmx03) CALL cl_fldhlp('pmx03')
556
WHEN INFIELD(pmx06) CALL cl_fldhlp('pmx06')
557
WHEN INFIELD(pmx07) CALL cl_fldhlp('pmx07')
558
OTHERWISE
CALL cl_fldhlp('
')
559
END CASE
560
561
ON ACTION controlp
#
562
CASE
#
563
WHEN INFIELD(pmw01)
#
564
LET g_t1=g_pmw.pmw01[1,3]
#
565
CALL q_smy(FALSE,FALSE,g_t1,'apm','6') RETURNING g_t1
566
LET g_pmw.pmw01[1,3]=g_t1
567
DISPLAY BY NAME g_pmw.pmw01
568
CALL i252_pmw01('d')
569
NEXT FIELD pmw01
570
WHEN INFIELD(pmw03)
#
571
CALL cl_init_qry_var()
#
572
LET g_qryparam.form ="q_pmc1"
573
LET g_qryparam.default1 = g_pmw.pmw03
574
CALL cl_create_qry() RETURNING g_pmw.pmw03
575
CALL FGL_DIALOG_SETBUFFER( g_pmw.pmw03 )
576
DISPLAY BY NAME g_pmw.pmw03
577
CALL i252_pmw03('d')
578
NEXT FIELD pmw03
579
WHEN INFIELD(pmw04)
#
580
CALL cl_init_qry_var()
581
LET g_qryparam.form ="q_azi"
582
LET g_qryparam.default1 = g_pmw.pmw04
583
CALL cl_create_qry() RETURNING g_pmw.pmw04
584
CALL FGL_DIALOG_SETBUFFER( g_pmw.pmw04 )
585
DISPLAY BY NAME g_pmw.pmw04
586
CALL i252_pmw04('d')
587
NEXT FIELD pmw04
588
OTHERWISE EXIT CASE
589
END CASE
590
ON IDLE g_idle_seconds
591
CALL cl_on_idle()
592
CONTINUE INPUT
593
594
END INPUT
595
596 END FUNCTION
597
TIPTOP GP 5-30
DataSystem
598 FUNCTION i252_pmw01(p_cmd)
599
DEFINE l_smydesc LIKE smy_file.smydesc,
600
l_smyacti LIKE smy_file.smyacti,
601
l_t1
VARCHAR(3),
602
p_cmd
VARCHAR(1)
603
604
605
LET g_errno = ' '
606
LET l_t1 = g_pmw.pmw01[1,3]
607
IF g_pmw.pmw01 IS NULL THEN
608
LET g_errno = 'E'
609
LET l_smydesc=NULL
610
ELSE
611
SELECT smydesc,smyacti
612
INTO l_smydesc,l_smyacti
613
FROM smy_file WHERE smyslip = l_t1
614
IF SQLCA.sqlcode THEN
615
LET g_errno = 'E'
616
LET l_smydesc = NULL
617
ELSE
618
IF l_smyacti matches'[nN]' THEN
619
LET g_errno = 'E'
620
END IF
621
END IF
622
END IF
623
624
IF cl_null(g_errno) OR p_cmd = 'd' THEN
625
DISPLAY l_smydesc TO FORMONLY.smydesc
626
END IF
627
628 END FUNCTION
629
630 FUNCTION i252_pmw03(p_cmd)
631
DEFINE l_pmc03
LIKE pmc_file.pmc03,
632
l_pmc22
LIKE pmc_file.pmc22,
633
l_pmcacti LIKE pmc_file.pmcacti,
634
p_cmd
VARCHAR(1)
635
636
637
LET g_errno = " "
638
SELECT pmc03,pmc22,pmcacti
639
INTO l_pmc03,l_pmc22,l_pmcacti
640
FROM pmc_file WHERE pmc01 = g_pmw.pmw03
641
TIPTOP GP 5-31
TIPTOP GP
642
CASE WHEN SQLCA.SQLCODE = 100 LET g_errno = 'mfg3001'
643
LET l_pmc03 = NULL
644
LET l_pmc22 = NULL
645
WHEN l_pmcacti='N' LET g_errno = '9028'
646
OTHERWISE
LET g_errno = SQLCA.SQLCODE USING '-------'
647
END CASE
648
649
IF p_cmd = 'a' THEN
650
LET g_pmw.pmw04 = l_pmc22
651
END IF
652
653
IF cl_null(g_errno) OR p_cmd = 'd' THEN
654
DISPLAY l_pmc03 TO FORMONLY.pmc03
655
DISPLAY BY NAME g_pmw.pmw04
656
END IF
657
658 END FUNCTION
659
660 FUNCTION i252_pmw04(p_cmd)
#
661
DEFINE l_azi02
LIKE azi_file.azi02,
662
l_aziacti LIKE azi_file.aziacti,
663
p_cmd
CHAR(1)
664
665
666
LET g_errno = ' '
667
LET g_azi03 = 0
668
SELECT azi02,aziacti,azi03
669
INTO l_azi02,l_aziacti,g_azi03
670
FROM azi_file WHERE azi01 = g_pmw.pmw04
671
672
CASE WHEN SQLCA.SQLCODE = 100 LET g_errno = 'mfg3008'
673
LET l_azi02 = NULL
674
WHEN l_aziacti='N' LET g_errno = '9028'
675
OTHERWISE
LET g_errno = SQLCA.SQLCODE USING '-------'
676
END CASE
677
678
IF cl_null(g_errno) OR p_cmd = 'd' THEN
679
DISPLAY l_azi02 TO FORMONLY.azi02
680
END IF
681
END FUNCTION
TIPTOP GP 5-32
DataSystem
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
FUNCTION i252_set_entry(p_cmd)
DEFINE p_cmd
VARchar(01)
# :
# :
TIPTOP GP 5-33
TIPTOP GP
945
946
947
948
949
950
951
detail
INPUT ARRAY
960
961
962
963
964
BEFORE ROW
INSERT BEFORE
1001
BEFORE INSERT
ROW
1002
LET l_n = ARR_COUNT()
BEFORE ROW update
1003
LET p_cmd='a'
INPUT ARRAY table array
1052
AFTER FIELD ...
BEFORE FIELDAFTER FIELD
accept
1017
AFTER INSERT
AFTER INSERT insert
1023
INSERT INTO pmx_file(pmx01,pmx02,pmx03,pmx04,pmx05,pmx06,
1024
pmx07,pmx08,pmx09,pmx081,pmx082)
1286
AFTER ROW
TIPTOP GP 5-34
DataSystem
960
984
988
1041
1052
1252
1265
1286
BEFORE ROW
ON ROW CHANGE
AFTER FIELD ...
ON ROW
ON ROW CHANGE
CHANGE
AFTER ROW
960
BEFORE ROW
BEFORE DELETE
1230
BEFORE DELETE
1239
DELETE FROM pmx_file
1240
WHERE pmx01 = g_pmw.pmw01
1241
AND pmx02 = g_pmx_t.pmx02
1286
AFTER ROW
TIPTOP GP 5-35
TIPTOP GP
909 #
910 FUNCTION i252_b()
911
DEFINE l_ac_t
SMALLINT,
# ARRAY CNT
912
l_n
SMALLINT,
#
913
l_cnt
SMALLINT,
#
914
l_lock_sw
VARCHAR(1),
#
915
p_cmd
VARCHAR(1),
#
916
l_misc
VARCHAR(04),
#
917
l_allow_insert SMALLINT,
#
918
l_allow_delete SMALLINT
#
919
# g_action_choice
920
LET g_action_choice = ""
921
922
IF s_shut(0) THEN
923
RETURN
924
END IF
925
926
IF g_pmw.pmw01 IS NULL THEN
927
RETURN
928
END IF
929
930
SELECT * INTO g_pmw.* FROM pmw_file
931
WHERE pmw01=g_pmw.pmw01
932
933
IF g_pmw.pmwacti ='N' THEN
#
934
CALL cl_err(g_pmw.pmw01,'mfg1000',0)
935
RETURN
936
END IF
937
938
CALL cl_opmsg('b')
939
940
LET g_forupd_sql = "SELECT pmx02,pmx08,pmx081,pmx082,pmx09,pmx04,",
941
"
pmx05,pmx03,pmx06,pmx07 FROM pmx_file",
942
" WHERE pmx01=? AND pmx02=? FOR UPDATE NOWAIT"
943
DECLARE i252_bcl CURSOR FROM g_forupd_sql
# LOCK CURSOR
944
945
LET l_allow_insert = cl_detail_input_auth("insert") #
946
LET l_allow_delete = cl_detail_input_auth("delete")
947
948
INPUT ARRAY g_pmx WITHOUT DEFAULTS FROM s_pmx.*
949
ATTRIBUTE(COUNT=g_rec_b,MAXCOUNT=g_max_rec,UNBUFFERED,
950
INSERT ROW=l_allow_insert,DELETE ROW=l_allow_delete,
951
APPEND ROW=l_allow_insert)
# UNBUFFERED
952
# Display
TIPTOP GP 5-36
DataSystem
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
# MAXCOUNT
BEFORE INPUT
IF g_rec_b != 0 THEN
CALL fgl_set_arr_curr(l_ac)
END IF
# update
#
BEFORE
LET
LET
LET
LET
#
#
#
#
#
ROW
p_cmd = ''
l_ac = ARR_CURR()
l_lock_sw = 'N'
l_n = ARR_COUNT()
( hot-key)
BEFORE ROW
BEGIN WORK
OPEN i252_cl USING g_pmw_rowid
IF STATUS THEN
CALL cl_err("OPEN i252_cl:", STATUS, 1)
CLOSE i252_cl
ROLLBACK WORK
RETURN
END IF
FETCH i252_cl INTO g_pmw.*
#
IF SQLCA.sqlcode THEN
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
# LOCK
CLOSE i252_cl
ROLLBACK WORK
RETURN
END IF
IF g_rec_b >= l_ac THEN
#
LET p_cmd='u'
LET g_pmx_t.* = g_pmx[l_ac].*
# BACKUP
LET g_pmx_o.* = g_pmx[l_ac].*
# BACKUP
#
OPEN i252_bcl USING g_pmw.pmw01,g_pmx_t.pmx02
IF STATUS THEN
CALL cl_err("OPEN i252_bcl:", STATUS, 1)
LET l_lock_sw = "Y"
ELSE
FETCH i252_bcl INTO g_pmx[l_ac].*
IF SQLCA.sqlcode THEN
CALL cl_err(g_pmx_t.pmx02,SQLCA.sqlcode,1)
LET l_lock_sw = "Y"
TIPTOP GP 5-37
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
TIPTOP GP
END IF
END IF
END IF
BEFORE INSERT
#
LET l_n = ARR_COUNT()
LET p_cmd='a'
INITIALIZE g_pmx[l_ac].* TO NULL
LET g_pmx[l_ac].pmx03 = 0
# Body default
LET g_pmx[l_ac].pmx06 = 0
# Body default
LET g_pmx[l_ac].pmx07 = 0
# Body default
LET g_pmx_t.* = g_pmx[l_ac].*
#
LET g_pmx_o.* = g_pmx[l_ac].*
#
IF l_ac > 1 THEN
LET g_pmx[l_ac].pmx04 = g_pmx[l_ac-1].pmx04
ELSE
LET g_pmx[l_ac].pmx04 = g_pmw.pmw06
END IF
NEXT FIELD pmx02
AFTER INSERT
#
IF INT_FLAG THEN
CALL cl_err('',9001,0)
LET INT_FLAG = 0
#
CANCEL INSERT
#
END IF
#
INSERT INTO pmx_file(pmx01,pmx02,pmx03,pmx04,pmx05,pmx06,
pmx07,pmx08,pmx09,pmx081,pmx082)
VALUES(g_pmw.pmw01,g_pmx[l_ac].pmx02,
g_pmx[l_ac].pmx03,g_pmx[l_ac].pmx04,
g_pmx[l_ac].pmx05,g_pmx[l_ac].pmx06,
g_pmx[l_ac].pmx07,g_pmx[l_ac].pmx08,
g_pmx[l_ac].pmx09,g_pmx[l_ac].pmx081,
g_pmx[l_ac].pmx082)
IF SQLCA.sqlcode THEN
CALL cl_err(g_pmx[l_ac].pmx02,SQLCA.sqlcode,0)
CANCEL INSERT
ELSE
MESSAGE 'INSERT O.K'
COMMIT WORK
LET g_rec_b=g_rec_b+1
#
DISPLAY g_rec_b TO FORMONLY.cn2
END IF
TIPTOP GP 5-38
DataSystem
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
# call
# function
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
TIPTOP GP
TIPTOP GP 5-40
DataSystem
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
CALL cl_err(g_pmx[l_ac].pmx05,'mfg3009',0)
NEXT FIELD pmx05
END IF
END IF
AFTER FIELD pmx03
#
IF NOT cl_null(g_pmx[l_ac].pmx03) THEN
IF g_pmx[l_ac].pmx03 < 0 THEN
CALL cl_err(g_pmx[l_ac].pmx03,'mfg5034',0)
LET g_pmx[l_ac].pmx03 = g_pmx_o.pmx03
NEXT FIELD pmx03
END IF
IF p_cmd = 'a' THEN
IF NOT cl_null(g_pmx[l_ac].pmx05) THEN
SELECT COUNT(*) INTO l_cnt FROM pmx_file
WHERE( (g_pmx[l_ac].pmx04 <= pmx04
AND g_pmx[l_ac].pmx05 >= pmx04)
OR (g_pmx[l_ac].pmx04 <= pmx05
AND g_pmx[l_ac].pmx05 >= pmx05)
OR (g_pmx[l_ac].pmx04 >= pmx04
AND g_pmx[l_ac].pmx05 <= pmx05)
OR (g_pmx[l_ac].pmx04 <= pmx04
AND g_pmx[l_ac].pmx05 >= pmx05)
OR (pmx05 IS NULL AND pmx04 <= g_pmx[l_ac].pmx05))
AND pmx08 = g_pmx[l_ac].pmx08
AND pmx09 = g_pmx[l_ac].pmx09
AND pmx03 = g_pmx[l_ac].pmx03
AND pmx01 = g_pmw.pmw01
AND pmx03[1,4] <> 'MISC'
END IF
IF g_pmx[l_ac].pmx05 IS NULL THEN
SELECT COUNT(*) INTO l_cnt FROM pmx_file
WHERE ((g_pmx[l_ac].pmx04 <= pmx05)
OR (pmx05 IS NULL))
AND pmx08 = g_pmx[l_ac].pmx08
AND pmx09 = g_pmx[l_ac].pmx09
AND pmx03 = g_pmx[l_ac].pmx03
AND pmx01 = g_pmw.pmw01
AND pmx03[1,4] <> 'MISC' #NO:7276
END IF
IF l_cnt > 0 THEN
CALL cl_err('','mfg3287',0)
NEXT FIELD pmx04
END IF
TIPTOP GP 5-41
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
TIPTOP GP
END IF
IF p_cmd = 'u' THEN
IF g_pmx[l_ac].pmx05 IS NOT NULL THEN
SELECT COUNT(*) INTO l_cnt FROM pmx_file
WHERE( (g_pmx[l_ac].pmx04 <= pmx04
AND g_pmx[l_ac].pmx05 >= pmx04)
OR (g_pmx[l_ac].pmx04 <= pmx05
AND g_pmx[l_ac].pmx05 >= pmx05)
OR (g_pmx[l_ac].pmx04 >= pmx04
AND g_pmx[l_ac].pmx05 <= pmx05)
OR (g_pmx[l_ac].pmx04 <= pmx04
AND g_pmx[l_ac].pmx05 >= pmx05)
OR (pmx05 IS NULL AND pmx04 <= g_pmx[l_ac].pmx05))
AND pmx08 = g_pmx[l_ac].pmx08
AND pmx09 = g_pmx[l_ac].pmx09
AND pmx03 = g_pmx[l_ac].pmx03
AND pmx02 != g_pmx[l_ac].pmx02
AND pmx01 = g_pmw.pmw01
END IF
IF g_pmx[l_ac].pmx05 IS NULL THEN
SELECT COUNT(*) INTO l_cnt FROM pmx_file
WHERE ((g_pmx[l_ac].pmx04 <= pmx05)
OR (pmx05 IS NULL))
AND pmx08 = g_pmx[l_ac].pmx08
AND pmx09 = g_pmx[l_ac].pmx09
AND pmx03 = g_pmx[l_ac].pmx03
AND pmx02 != g_pmx[l_ac].pmx02
AND pmx01 = g_pmw.pmw01
END IF
IF l_cnt > 0 THEN
CALL cl_err('','mfg3287',0)
NEXT FIELD pmx04
END IF
END IF
LET g_pmx_o.pmx03 = g_pmx[l_ac].pmx03
END IF
TIPTOP GP 5-42
DataSystem
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
#
#
#
# cursor transaction
TIPTOP GP 5-43
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
TIPTOP GP
IF l_lock_sw = 'Y' THEN
#
CALL cl_err(g_pmx[l_ac].pmx02,-263,1)# update
LET g_pmx[l_ac].* = g_pmx_t.*
ELSE
UPDATE pmx_file SET pmx02=g_pmx[l_ac].pmx02,
pmx03=g_pmx[l_ac].pmx03,
pmx04=g_pmx[l_ac].pmx04,
pmx05=g_pmx[l_ac].pmx05,
pmx06=g_pmx[l_ac].pmx06,
pmx07=g_pmx[l_ac].pmx07,
pmx08=g_pmx[l_ac].pmx08,
pmx09=g_pmx[l_ac].pmx09,
pmx081=g_pmx[l_ac].pmx081,
pmx082=g_pmx[l_ac].pmx082
WHERE pmx01=g_pmw.pmw01
AND pmx02=g_pmx_t.pmx02
IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
CALL cl_err(g_pmx[l_ac].pmx02,SQLCA.sqlcode,0)
LET g_pmx[l_ac].* = g_pmx_t.*
ELSE
MESSAGE 'UPDATE O.K'
COMMIT WORK
END IF
END IF
AFTER ROW
LET l_ac = ARR_CURR()
LET l_ac_t = l_ac
IF INT_FLAG THEN
CALL cl_err('',9001,0)
LET INT_FLAG = 0
IF p_cmd = 'u' THEN
LET g_pmx[l_ac].* = g_pmx_t.*
END IF
CLOSE i252_bcl
ROLLBACK WORK
EXIT INPUT
END IF
CLOSE i252_bcl
COMMIT WORK
TIPTOP GP 5-44
#
#
#
#
# cursor
# transaction after
# row before delete
#
#
# whenever error continue
#
DataSystem
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
ON ACTION CONTROLN
CALL i252_b_askkey()
EXIT INPUT
ON ACTION CONTROLO
IF INFIELD(pmx02) AND l_ac > 1 THEN
LET g_pmx[l_ac].* = g_pmx[l_ac-1].*
LET g_pmx[l_ac].pmx02 = g_rec_b + 1
NEXT FIELD pmx02
END IF
ON ACTION CONTROLZ
CALL cl_show_req_fields()
ON ACTION CONTROLG
CALL cl_cmdask()
ON ACTION itemno
IF g_sma.sma38 matches'[Yy]' THEN
# input
CALL cl_cmdrun("aimi109 ")
ELSE
CALL cl_err(g_sma.sma38,'mfg0035',1)
END IF
ON ACTION controlp
CASE
WHEN INFIELD(pmx08) #
CALL cl_init_qry_var()
LET g_qryparam.form ="q_ima"
LET g_qryparam.default1 = g_pmx[l_ac].pmx08
CALL cl_create_qry() RETURNING g_pmx[l_ac].pmx08
CALL FGL_DIALOG_SETBUFFER( g_pmx[l_ac].pmx08 )
IF NOT cl_null(g_pmx[l_ac].pmx08) AND
g_pmx[l_ac].pmx08[1,4] !='MISC' THEN
CALL i252_pmx08('d')
END IF
NEXT FIELD pmx08
WHEN INFIELD(pmx09) #
CALL cl_init_qry_var()
LET g_qryparam.form ="q_gfe"
LET g_qryparam.default1 = g_pmx[l_ac].pmx09
CALL cl_create_qry() RETURNING g_pmx[l_ac].pmx09
CALL FGL_DIALOG_SETBUFFER( g_pmx[l_ac].pmx09 )
TIPTOP GP 5-45
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
TIPTOP GP
DISPLAY BY NAME g_pmx[l_ac].pmx09
NEXT FIELD pmx09
OTHERWISE EXIT CASE
END CASE
ON ACTION CONTROLF
CASE
WHEN INFIELD(pmx02) CALL cl_fldhlp('pmx02')
WHEN INFIELD(pmx03) CALL cl_fldhlp('pmx03')
WHEN INFIELD(pmx04) CALL cl_fldhlp('pmx04')
WHEN INFIELD(pmx05) CALL cl_fldhlp('pmx05')
WHEN INFIELD(pmx06) CALL cl_fldhlp('pmx06')
WHEN INFIELD(pmx07) CALL cl_fldhlp('pmx07')
WHEN INFIELD(pmx08) CALL cl_fldhlp('pmx08')
WHEN INFIELD(pmx09) CALL cl_fldhlp('pmx09')
OTHERWISE
CALL cl_fldhlp('
')
END CASE
ON IDLE g_idle_seconds
CALL cl_on_idle()
CONTINUE INPUT
END INPUT
CLOSE i252_bcl
COMMIT WORK
CALL i252_delall()
END FUNCTION
FUNCTION i252_delall()
SELECT COUNT(*) INTO g_cnt FROM pmx_file
WHERE pmx01 = g_pmw.pmw01
IF g_cnt = 0 THEN
#
CALL cl_getmsg('9044',g_lang) RETURNING g_msg
ERROR g_msg CLIPPED
DELETE FROM pmw_file WHERE pmw01 = g_pmw.pmw01
END IF
END FUNCTION
FUNCTION i252_pmx08(p_cmd) #
DEFINE l_ima02
LIKE ima_file.ima02,
TIPTOP GP 5-46
DataSystem
1393
l_ima44
LIKE ima_file.ima44,
1394
l_ima021
LIKE ima_file.ima021,
1395
l_imaacti LIKE ima_file.imaacti,
1396
p_cmd
VARCHAR(1)
1397
1398
LET g_errno = ' '
1399
SELECT ima02,ima021,ima44,imaacti INTO l_ima02,l_ima021,l_ima44,l_imaacti
1400
FROM ima_file WHERE ima01 = g_pmx[l_ac].pmx08
1401
1402
CASE WHEN SQLCA.SQLCODE = 100 LET g_errno = 'mfg3006'
1403
LET l_ima02 = NULL
1404
LET l_ima44 = NULL
1405
WHEN l_imaacti='N' LET g_errno = '9028'
1406
OTHERWISE
LET g_errno = SQLCA.SQLCODE USING '-------'
1407
END CASE
1408
1409
IF p_cmd = 'a' THEN
1410
LET g_pmx[l_ac].pmx09 = l_ima44
1411
END IF
1412
1413
IF cl_null(g_errno) OR p_cmd = 'd' OR g_pmx[l_ac].pmx08[1,4]='MISC' THEN #6808
1414
LET g_pmx[l_ac].pmx081 = l_ima02
1415
LET g_pmx[l_ac].pmx082 = l_ima021
1416
END IF
1417
1418 END FUNCTION
1419
1420 FUNCTION i252_pmx09() #
1421
DEFINE
l_gfeacti LIKE gfe_file.gfeacti
1422
1423
LET g_errno = " "
1424
SELECT gfeacti INTO l_gfeacti FROM gfe_file
1425
WHERE gfe01 = g_pmx[l_ac].pmx09
1426
CASE WHEN SQLCA.SQLCODE = 100 LET g_errno = 'mfg3098'
1427
LET l_gfeacti = NULL
1428
WHEN l_gfeacti='N' LET g_errno = '9028'
1429
OTHERWISE
LET g_errno = SQLCA.SQLCODE USING '-------'
1430
END CASE
1431
END FUNCTION
1886 FUNCTION i252_set_entry_b(p_cmd)
1887
DEFINE p_cmd
VARchar(01)
1888
# :
TIPTOP GP 5-47
TIPTOP GP
1889
IF INFIELD(pmx08) THEN
#
1890
CALL cl_set_comp_entry("pmx081,pmx082",TRUE)#
1891
END IF
1892
1893 END FUNCTION
1894
1895 FUNCTION i252_set_no_entry_b(p_cmd)
# :
1896
DEFINE p_cmd
VARchar(01)
1897
1898
IF INFIELD(pmx08) THEN
#
1899
IF g_pmx[l_ac].pmx08[1,4] <> 'MISC' THEN
#
1900
CALL cl_set_comp_entry("pmx081,pmx082",FALSE)
1901
END IF
1902
END IF
1903
END FUNCTION
TIPTOP GP 5-48
DataSystem
5.4.5
5.4.5.1 xxxx_b_askkey() function
1434 FUNCTION i252_b_askkey()
1435
DEFINE l_wc2
CHAR(200)
1436
1437
CONSTRUCT l_wc2 ON pmx02,pmx08,pmx09,pmx04,
1438
pmx05,pmx03,pmx06,pmx07,pmx082 #
1439
FROM s_pmx[1].pmx02,s_pmx[1].pmx08,s_pmx[1].pmx09,
1440
s_pmx[1].pmx04,s_pmx[1].pmx05,s_pmx[1].pmx03,
1441
s_pmx[1].pmx06,s_pmx[1].pmx07,s_pmx[1].pmx082
1442
ON IDLE g_idle_seconds
1443
CALL cl_on_idle()
1444
CONTINUE CONSTRUCT
1445
1446
END CONSTRUCT
1447
IF INT_FLAG THEN
1448
LET INT_FLAG = 0
1449
RETURN
1450
END IF
1451
1452
CALL i252_b_fill(l_wc2)
# array
1453
1454
END FUNCTION
TIPTOP GP 5-49
TIPTOP GP
#
# LOCK
DataSystem
383
WHILE TRUE
384
LET g_pmw01_t = g_pmw.pmw01
385
LET g_pmw_o.* = g_pmw.*
386
LET g_pmw.pmwmodu=g_user
387
LET g_pmw.pmwdate=g_today
388
389
CALL i252_i("u")
#
390
391
IF INT_FLAG THEN
392
LET INT_FLAG = 0
393
LET g_pmw.*=g_pmw_t.*
394
CALL i252_show()
395
CALL cl_err('','9001',0)
396
EXIT WHILE
397
END IF
398
399
IF g_pmw.pmw01 != g_pmw01_t THEN
#
400
UPDATE pmx_file SET pmx01 = g_pmw.pmw01 # key
401
WHERE pmx01 = g_pmw01_t
402
IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
403
CALL cl_err('pmx',SQLCA.sqlcode,0)
404
CONTINUE WHILE
405
END IF
406
END IF
407
408
UPDATE pmw_file SET pmw_file.* = g_pmw.*
409
WHERE ROWID = g_pmw_rowid
410
411
IF SQLCA.sqlcode OR SQLCA.sqlerrd[3] = 0 THEN
412
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
413
CONTINUE WHILE
414
END IF
415
EXIT WHILE
416
END WHILE
417
418
CLOSE i252_cl
419
COMMIT WORK
420
CALL cl_flow_notify(g_pmw.pmw01,'U')
421
END FUNCTION
TIPTOP GP 5-51
TIPTOP GP
DataSystem
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
# temp table
UPDATE y
SET pmw01=l_newno,
pmw06=l_newdate,
pmwuser=g_user,
#
#
#
#
temp
TIPTOP GP 5-53
TIPTOP GP
1668
pmwgrup=g_grup,
#
1669
pmwmodu=NULL,
#
1670
pmwdate=g_today,
#
1671
pmwacti='Y'
#
1672
# temp table insert table
1673
INSERT INTO pmw_file
1674
SELECT * FROM y
1675
1676
DROP TABLE x
# temp table
1677
1678
SELECT * FROM pmx_file
#
1679
WHERE pmx01=g_pmw.pmw01
1680
INTO TEMP x
1681
IF SQLCA.sqlcode THEN
1682
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
1683
RETURN
1684
END IF
1685
1686
UPDATE x
# temp table
1687
SET pmx01=l_newno
1688
1689
INSERT INTO pmx_file
# temp table table
1690
SELECT * FROM x
1691
IF SQLCA.sqlcode THEN
1692
ROLLBACK WORK
1693
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
1694
RETURN
1695
ELSE
1696
COMMIT WORK
1697
END IF
1698
LET g_cnt=SQLCA.SQLERRD[3]
1699
MESSAGE '(',g_cnt USING '##&',') ROW of (',l_newno,') O.K'
1700
1701
LET l_oldno = g_pmw.pmw01
1702
SELECT ROWID,* INTO g_pmw_rowid,g_pmw.* FROM pmw_file WHERE pmw01 = l_newno
1703
CALL i252_u()
#
1704
CALL i252_b()
#
1705
SELECT ROWID,* INTO g_pmw_rowid,g_pmw.* FROM pmw_file WHERE pmw01 = l_oldno
1706
CALL i252_show()
#
1707
1708 END FUNCTION
TIPTOP GP 5-54
DataSystem
5.4.5.4 xxxx_r() function
849 FUNCTION i252_r()
850
851
IF s_shut(0) THEN
852
RETURN
853
END IF
854
855
IF g_pmw.pmw01 IS NULL THEN
856
CALL cl_err("",-400,0)
857
RETURN
858
END IF
859
860
SELECT * INTO g_pmw.* FROM pmw_file
861
WHERE pmw01=g_pmw.pmw01
862
IF g_pmw.pmwacti ='N' THEN
#
863
CALL cl_err(g_pmw.pmw01,'mfg1000',0)
864
RETURN
865
END IF
866
BEGIN WORK
867
868
OPEN i252_cl USING g_pmw_rowid
869
IF STATUS THEN
870
CALL cl_err("OPEN i252_cl:", STATUS, 1)
871
CLOSE i252_cl
872
ROLLBACK WORK
873
RETURN
874
END IF
875
876
FETCH i252_cl INTO g_pmw.*
#
877
IF SQLCA.sqlcode THEN
878
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
# LOCK
879
ROLLBACK WORK
880
RETURN
881
END IF
882
883
CALL i252_show()
884
885
IF cl_delh(0,0) THEN
#
886
DELETE FROM pmw_file WHERE pmw01 = g_pmw.pmw01
887
DELETE FROM pmx_file WHERE pmx01 = g_pmw.pmw01
888
CLEAR FORM
#
889
CALL g_pmx.clear()
890
OPEN i252_count
#
TIPTOP GP 5-55
TIPTOP GP
891
FETCH i252_count INTO mi_row_count
892
DISPLAY mi_row_count TO FORMONLY.cnt
893
OPEN i252_cs
894
IF mi_curs_index = mi_row_count + 1 THEN #
895
LET mi_jump = mi_row_count
# _fetch
896
CALL i252_fetch('L')
897
ELSE
#
898
LET mi_jump = mi_curs_index
899
LET mi_no_ask = TRUE
#
900
CALL i252_fetch('/')
#
901
END IF
#
902
END IF
903
904
CLOSE i252_cl
905
COMMIT WORK
906
CALL cl_flow_notify(g_pmw.pmw01,'D')
907 END FUNCTION
TIPTOP GP 5-56
DataSystem
5.4.5.5 xxxx_x() function
783 FUNCTION i252_x()
784
785
IF s_shut(0) THEN
786
RETURN
787
END IF
788
789
IF g_pmw.pmw01 IS NULL THEN
790
CALL cl_err("",-400,0)
791
RETURN
792
END IF
793
794
BEGIN WORK
795
796
OPEN i252_cl USING g_pmw_rowid
797
IF STATUS THEN
798
CALL cl_err("OPEN i252_cl:", STATUS, 1)
799
CLOSE i252_cl
800
ROLLBACK WORK
801
RETURN
802
END IF
803
804
FETCH i252_cl INTO g_pmw.*
#
805
IF SQLCA.sqlcode THEN
806
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
# LOCK
807
ROLLBACK WORK
808
RETURN
809
END IF
810
811
LET g_success = 'Y'
812
813
CALL i252_show()
814
815
IF cl_exp(0,0,g_pmw.pmwacti) THEN
#
816
LET g_chr=g_pmw.pmwacti
#
817
IF g_pmw.pmwacti='Y' THEN
818
LET g_pmw.pmwacti='N'
#
819
ELSE
820
LET g_pmw.pmwacti='Y'
821
END IF
822
823
UPDATE pmw_file SET pmwacti=g_pmw.pmwacti,
824
pmwmodu=g_user,
TIPTOP GP 5-57
TIPTOP GP
825
pmwdate=g_today
826
WHERE pmw01=g_pmw.pmw01
827
IF SQLCA.sqlcode OR SQLCA.SQLERRD[3]=0 THEN
828
CALL cl_err(g_pmw.pmw01,SQLCA.sqlcode,0)
829
LET g_pmw.pmwacti=g_chr
830
END IF
831
END IF
832
833
CLOSE i252_cl
834
#
835
IF g_success = 'Y' THEN
836
COMMIT WORK
837
CALL cl_flow_notify(g_pmw.pmw01,'V')
838
ELSE
839
ROLLBACK WORK
#
840
END IF
841
842
SELECT pmwacti,pmwmodu,pmwdate
843
INTO g_pmw.pmwacti,g_pmw.pmwmodu,g_pmw.pmwdate FROM pmw_file
844
WHERE pmw01=g_pmw.pmw01
845
DISPLAY BY NAME g_pmw.pmwacti,g_pmw.pmwmodu,g_pmw.pmwdate
846
847 END FUNCTION
TIPTOP GP 5-58
DataSystem
5.4.6
5.4.6.1 xxxx_out() function
1710 FUNCTION i252_out()
1711
DEFINE l_i
SMALLINT,
1712
sr
RECORD
1713
pmw01
LIKE pmw_file.pmw01,
#
1714
pmw03
LIKE pmw_file.pmw03,
#
1715
pmc03
LIKE pmc_file.pmc03,
#
1716
pmw04
LIKE pmw_file.pmw04,
#
1717
pmw06
LIKE pmw_file.pmw06,
#
1718
pmwacti
LIKE pmw_file.pmwacti, #
1719
pmx02
LIKE pmx_file.pmx02,
#
1720
pmx08
LIKE pmx_file.pmx08,
#
1721
pmx081
LIKE pmx_file.pmx081, #
1722
pmx09
LIKE pmx_file.pmx09,
#
1723
pmx06
LIKE pmx_file.pmx06,
#
1724
pmx03
LIKE pmx_file.pmx03,
#
1725
pmx07
LIKE pmx_file.pmx07,
#
1726
pmx04
LIKE pmx_file.pmx04,
#
1727
pmx05
LIKE pmx_file.pmx05
#
1728
END RECORD,
1729
l_name
VARCHAR(20),
#External(Disk) file name
1730
l_za05
VARCHAR(40)
#
1731
1732
IF g_wc IS NULL THEN
1733
CALL cl_err('','9057',0) RETURN
1734
END IF
1735
CALL cl_wait()
#
1736
CALL cl_outnam('apmi252') RETURNING l_name
# : apmi252.10r
1737
SELECT zo02 INTO g_company FROM zo_file WHERE zo01 = g_lang
1738
DECLARE i252_za_cur CURSOR FOR
1739
SELECT za02,za05 FROM za_file
1740
WHERE za01 = "apmi252" AND za03 = g_lang
1741
FOREACH i252_za_cur INTO g_i,l_za05
1742
LET g_x[g_i] = l_za05
1743
END FOREACH
# g_x array
1744
SELECT zz17,zz05 INTO g_len,g_zz05 FROM zz_file WHERE zz01 = 'apmi252'
1745
IF g_len = 0 OR g_len IS NULL THEN LET g_len = 80 END IF
1746
FOR g_i = 1 TO g_len LET g_dash[g_i,g_i] = '=' END FOR
1747
LET g_sql="SELECT pmw01,pmw03,pmc03,pmw04,pmw06,pmwacti,",
1748
" pmx02,pmx08,pmx081,pmx09,pmx06,pmx03,pmx07,pmx04,pmx05 ",
TIPTOP GP 5-59
TIPTOP GP
1749
" FROM pmw_file,pmx_file,OUTER pmc_file",
1750
" WHERE pmx01 = pmw01 AND pmw03=pmc_file.pmc01 AND ",g_wc CLIPPED,
1751
" AND ",g_wc2 CLIPPED
1752
PREPARE i252_p1 FROM g_sql
# RUNTIME
1753
DECLARE i252_co
# CURSOR
1754
CURSOR FOR i252_p1
1755
1756
START REPORT i252_rep TO l_name
1757
1758
FOREACH i252_co INTO sr.*
#
1759
IF SQLCA.sqlcode THEN
1760
CALL cl_err('foreach:',SQLCA.sqlcode,1)
1761
EXIT FOREACH
1762
END IF
1763
OUTPUT TO REPORT i252_rep(sr.*)
#
1764
END FOREACH
1765
1766
FINISH REPORT i252_rep
1767
1768
CLOSE i252_co
1769
ERROR ""
1770
CALL cl_prt(l_name,' ','1',g_len)
#
1771 END FUNCTION
TIPTOP GP 5-60
DataSystem
5.4.6.2 xxxx_rep() function
1773 REPORT i252_rep(sr)
1774
DEFINE l_trailer_sw CHAR(1),
1775
l_i
SMALLINT,
1776
sr
RECORD
1777
pmw01
LIKE pmw_file.pmw01,
#
1778
pmw03
LIKE pmw_file.pmw03,
#
1779
pmc03
LIKE pmc_file.pmc03,
#
1780
pmw04
LIKE pmw_file.pmw04,
#
1781
pmw06
LIKE pmw_file.pmw06,
#
1782
pmwacti
LIKE pmw_file.pmwacti, #
1783
pmx02
LIKE pmx_file.pmx02,
#
1784
pmx08
LIKE pmx_file.pmx08,
#
1785
pmx081
LIKE pmx_file.pmx081, #
1786
pmx09
LIKE pmx_file.pmx09,
#
1787
pmx06
LIKE pmx_file.pmx06,
#
1788
pmx03
LIKE pmx_file.pmx03,
#
1789
pmx07
LIKE pmx_file.pmx07,
#
1790
pmx04
LIKE pmx_file.pmx04,
#
1791
pmx05
LIKE pmx_file.pmx05
#
1792
END RECORD
1793
1794
OUTPUT
1795
TOP MARGIN 0
1796
LEFT MARGIN 0
1797
BOTTOM MARGIN 6
1798
PAGE LENGTH 66
1799
1800
ORDER BY sr.pmw01,sr.pmx02
1801
FORMAT
1802
PAGE HEADER
1803
PRINT (g_len-length(g_company))/2 SPACES,g_company
1804
PRINT COLUMN (g_len-length(g_user)-5),'FROM:',g_user CLIPPED
1805
PRINT (g_len-length(g_x[1]))/2 SPACES,g_x[1]
1806
PRINT ' '
1807
PRINT g_x[2] CLIPPED,g_today ,' ',TIME,
1808
COLUMN g_len-10,g_x[3] CLIPPED,PAGENO USING '<<<'
1809
PRINT g_dash[1,g_len]
1810
LET l_trailer_sw = 'y'
1811
1812
BEFORE GROUP OF sr.pmw01 #
1813
IF (PAGENO > 1 OR LINENO > 9)
1814
THEN SKIP TO TOP OF PAGE
TIPTOP GP 5-61
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
TIPTOP GP
END IF
PRINT g_x[11],COLUMN 41,g_x[12]
PRINT ' ---------- -------- ---------- ---------- ----'
IF sr.pmwacti MATCHES'[Nn]' THEN
PRINT '*';
END IF
PRINT COLUMN 02,sr.pmw01,
COLUMN 13,sr.pmw06, #,
COLUMN 22,sr.pmw03,
COLUMN 34,sr.pmc03, #
COLUMN 45,sr.pmw04
#
PRINT
PRINT g_x[13],COLUMN 41,g_x[14]
PRINT g_x[15],COLUMN 41,g_x[16]
PRINT '---- -------------------- -----------------',
' -------- --------------'
ON EVERY ROW
PRINT COLUMN 01,sr.pmx02 USING '####',
COLUMN 06,sr.pmx08,
COLUMN 27,sr.pmx09,
COLUMN 35,sr.pmx06 USING '#########&.&&&',
COLUMN 51,sr.pmx07,
COLUMN 61,sr.pmx03 USING '#########&.&&&'
PRINT COLUMN 06,sr.pmx081,
COLUMN 51,sr.pmx04,
COLUMN 61,sr.pmx05
ON LAST ROW
PRINT g_dash[1,g_len]
IF g_zz05 = 'Y'
# 80:70,140,210
132:120,240
THEN IF g_wc[001,080] > ' ' THEN
PRINT g_x[8] CLIPPED,g_wc[001,070] CLIPPED END IF
IF g_wc[071,140] > ' ' THEN
PRINT COLUMN 10,
g_wc[071,140] CLIPPED END IF
IF g_wc[141,210] > ' ' THEN
PRINT COLUMN 10,
g_wc[141,210] CLIPPED END IF
PRINT g_dash[1,g_len]
END IF
LET l_trailer_sw = 'n'
PRINT g_x[4],g_x[5] CLIPPED, COLUMN (g_len-9), g_x[7] CLIPPED
AFTER GROUP OF sr.pmw01 #
PRINT ' '
TIPTOP GP 5-62
DataSystem
1859
PAGE TRAILER
1860
IF l_trailer_sw = 'y' THEN
1861
PRINT g_dash[1,g_len]
1862
PRINT g_x[4],g_x[5] CLIPPED, COLUMN (g_len-9), g_x[6] CLIPPED
1863
ELSE
1864
SKIP 2 LINE
1865
END IF
1866 END REPORT
TIPTOP GP 5-63
TIPTOP GP 5-64
TIPTOP GP
Chapter 6
DataSystem
6.1
MAIN
tm()
xxxx()
xxxx()
rep()
rep()
TIPTOP GP 6-1
TIPTOP GP
6.2
SCHEMA FORMONLY
LAYOUT
VBOX
GRID
{
<G group01
Order No.
Order Dt
Ac.Cust
Shp.Cust
[oea01
[oea02
[oea03
[oea04
}
END --GRID
GROUP g01 (TEXT="INPUT")
VBOX
GRID
{
<G group02
[s1
[t1
[u1
<G group03
[a
}
END --GRID
GRID
{
[c
}
END --GRID
END --VBOX
END --GROUP
GRID
{
[m
}
END --GRID
END --VBOX
END --LAYOUT
TIPTOP GP 6-2
]
]
]
]
Empl No.
Dept No.
Curr
Cont.No.
On-Hd No.
>
]
]
]
]
]
[oea14
[oea15
[ea23
[oea12
[hold
>
] [s2
] [t2
] [u2
] [s3
] [t3
] [u3
> <G group04
[b
]
]
]
>
]
DataSystem
ATTRIBUTES
GROUP
GROUP
GROUP
GROUP
COMBOBOX
group01
group02
group03
group04
oea01
oea02
oea03
oea04
oea14
oea15
ea23
oea12
hold
s1
:
:
:
:
=
=
=
=
=
=
=
=
=
=
COMBOBOX
s2
COMBOBOX
s3
CHECKBOX
t1
CHECKBOX
t2
CHECKBOX
t3
CHECKBOX
u1
CHECKBOX
u2
CHECKBOX
u3
DATEEDIT
RADIOGROUP a
RADIOGROUP b
CHECKBOX c
=
=
CHECKBOX
group01, TEXT="QBE";
group02, TEXT="Sequence";
group03, TEXT="Data Option 1";
group04, TEXT="Data Option 2";
FORMONLY.oea01 TYPE CHAR;
FORMONLY.oea02 TYPE DATE;
FORMONLY.oea03 TYPE CHAR;
FORMONLY.oea04 TYPE CHAR;
FORMONLY.oea14 TYPE CHAR;
FORMONLY.oea15 TYPE CHAR;
FORMONLY.oea23 TYPE CHAR;
FORMONLY.oea12 TYPE CHAR;
FORMONLY.oeahold TYPE CHAR;
FORMONLY.s1, QUERYEDITABLE,
ITEMS=((1,"Order No."),(2,"Order Dt"),(3,"Ac. Cust"),(4,"Shp. Cust"),
(5,"Empl No."),(6,"Dept No."),(7,"Curr"),(8,"Cont. No."),
(9,"On-Hd No."));
FORMONLY.s2, QUERYEDITABLE,
ITEMS=((1,"Order No."),(2,"Order Dt"),(3,"Ac. Cust"),(4,"Shp. Cust"),
(5,"Empl No."),(6,"Dept No."),(7,"Curr"),(8,"Cont. No."),
(9,"On-Hd No."));
FORMONLY.s3, QUERYEDITABLE,
ITEMS=((1,"Order No."),(2,"Order Dt"),(3,"Ac. Cust"),(4,"Shp. Cust"),
(5,"Empl No."),(6,"Dept No."),(7,"Curr"),(8,"Cont. No."),
(9,"On-Hd No."));
FORMONLY.t1, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Next Page";
FORMONLY.t2, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Next Page";
FORMONLY.t3, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Next Page";
FORMONLY.u1, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Subtotal";
FORMONLY.u2, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Subtotal";
FORMONLY.u3, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Subtotal";
FORMONLY.a TYPE CHAR,
ITEMS=((1,"Confirmed"),(2,"UnConfirmed"),(3,"All"));
FORMONLY.b TYPE CHAR,ITEMS=((1,"Held"),(2,"Unheld"),(3,"All"));
FORMONLY.c TYPE CHAR, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Print total qty";
FORMONLY.more TYPE CHAR, NOT NULL,
VALUECHECKED="Y", VALUEUNCHECKED="N", TEXT="Other codition to print";
END
TIPTOP GP 6-3
TIPTOP GP
6.3
(dstest)(bvi)
FROM:saki
:04/06/09 20:12:35
:-+
+
:1
========================================================================================================================================
---------- ------ -------- -------- ---- ---------- ------ ---- -- -------------------- ---- ----------- ---------- ----------- -------111-5A0001 C00001 tiptop TWD 111-5A0001 A
11
1 SM01
10.00 50,000.00
500,000 02/08/15
02/08/15 B01
S301
003
Y
586 Computer
:
111-5A0002 B01
95/10/07 B01
TWD 111-5A0002 A
T000
003
1 101
101-test
2 MISC
.
10.00
KG
1.00
21.00
21 95/10/07
SET
.00
0.00
0 95/10/07
:
111-5A0003 B01
95/10/07 B01
TWD 111-5A0003 A
T000
001
1.00
1 A-FGC-M11
SET
- 286
2 A-FGC-M11
SET
- 286
:
111-5A0004 C00001
95/10/13 C00001
TIPTOP GP 6-4
TWD 111-5A0004 A
S301
002
1 A-RMC-P10-02
CHIP SET (-286-16)
3 rereorie
500,000
21
100.00
105.00
10,500 95/10/07
100.00
105.00
10,500 95/10/07
200.00
21,000
PCS
50.00
10.00
500 95/10/30
SET
1.00
0.00
0 95/10/30
DataSystem
TIPTOP GP
2 wang
101 Keyb 10k
150K
1.2 MB
:
111-5A0005 C00001
95/10/13 C00001
TWD 111-5A0005 A
T301
001
12
Y
2 P12
P12
1 P11
P11
TWD 111-5A0008 A
T301
001
1 P11
P11
2 P12
P12
TWD 111-5A0009 A
T000
001
1 P11
P11
2 P12
P12
:
0 95/10/30
500
PCS
100.00
77.00
7,700 95/10/30
PCS
100.00
23.00
2,300 95/10/30
200.00
10,000
PCS
100.00
33.33
3,333 95/10/30
PCS
100.00
66.67
6,667 95/10/30
:
111-5A0009 C00001
95/10/13 C00001
0.00
51.00
:
111-5A0008 C00001
95/10/13 C00001
.00
200.00
10,000
PCS
100.00
33.33
3,333 95/10/30
PCS
100.00
66.67
6,667 95/10/30
200.00
10,000
111-5A0010 C00001
TWD
A
1 1111
SET
100.00
10.00
1,000 95/10/13
========================================================================================================================================
:____________ :____________ :____________ :____________
()
TIPTOP GP 6-5
TIPTOP GP
6.4
44
LET tm.wc
= ARG_VAL(7)
63
IF NOT cl_null(tm.wc) THEN
64
CALL r410()
65
ELSE
66
CALL r410_tm(0,0)
67
END IF
function
70 FUNCTION r410_tm(p_row,p_col)
76
OPEN WINDOW r410_w AT p_row,p_col WITH FORM "axm/42f/axmr410"
102
CONSTRUCT BY NAME tm.wc ON oea01,oea02,oea03,oea04,
282
START REPORT r410_rep TO l_name
332
FINISH REPORT r410_rep
381
PAGE HEADER
529
PAGE TRAILER
TIPTOP GP 6-6
DataSystem
TIPTOP GP
6.4.1
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
DATABASE ds
GLOBALS "../../config/top.global"
DEFINE
tm
DEFINE
DEFINE
RECORD
wc
VARCHAR(500),
s
VARCHAR(03),
t
VARCHAR(03),
u
VARCHAR(03),
a
VARCHAR(01),
b
VARCHAR(01),
c
VARCHAR(01),
more
VARCHAR(01)
END RECORD
g_x
ARRAY[38] OF VARCHAR(40)
g_orderA
ARRAY[3] OF VARCHAR(10)
DEFINE
DEFINE
DEFINE
DEFINE
DEFINE
g_dash
g_i
g_len
g_zz05
g_pageno
VARCHAR(400)
SMALLINT
SMALLINT
VARCHAR(1)
SMALLINT
#
#
#
#
QBE
(INPUT )
(INPUT )
(INPUT )
#
# za Array
#
#
#
#
#
#
Dash line
count/index for any purpose
Report width(79/132/136)
Print tm.wc ?(Y/N)
Report page no
TIPTOP GP 6-7
TIPTOP GP
6.4.2
29 MAIN
30
OPTIONS
31
FORM LINE
FIRST + 2,
32
MESSAGE LINE LAST,
33
PROMPT LINE LAST,
34
INPUT NO WRAP
35
DEFER INTERRUPT
36
37
#-- Background Job --#
38
LET g_pdate = ARG_VAL(1)
# cl_user
39
LET g_towhom = ARG_VAL(2)
# cl_user global ex:g_bgjob
40
LET g_rlang = ARG_VAL(3)
41
LET g_bgjob = ARG_VAL(4)
42
LET g_prtway = ARG_VAL(5)
43
LET g_copies = ARG_VAL(6)
44
LET tm.wc
= ARG_VAL(7)
45
LET tm.s
= ARG_VAL(8)
46
LET tm.t
= ARG_VAL(9)
47
LET tm.u
= ARG_VAL(10)
48
LET tm.a
= ARG_VAL(11)
49
LET tm.b
= ARG_VAL(12)
50
LET tm.c
= ARG_VAL(13)
51
LET tm.more = ARG_VAL(14)
52
53
IF (NOT cl_user()) THEN
54
EXIT PROGRAM
55
END IF
56
57
WHENEVER ERROR CALL cl_err_msg_log
58
59
IF (NOT cl_setup("AXM")) THEN
60
EXIT PROGRAM
61
END IF
62
63
IF NOT cl_null(tm.wc) THEN
#
64
CALL r410()
# run r410()
65
ELSE
#
66
CALL r410_tm(0,0)
#
67
END IF
68 END MAIN
TIPTOP GP 6-8
TIPTOP GP
DataSystem
6.4.3
70 FUNCTION r410_tm(p_row,p_col)
71
DEFINE p_row,p_col
SMALLINT
72
DEFINE l_cmd
VARCHAR(1000)
73
74
#
75
LET p_row = 3 LET p_col = 11
76
OPEN WINDOW r410_w AT p_row,p_col WITH FORM "axm/42f/axmr410"
77
ATTRIBUTE (STYLE = g_win_style)
78
CALL cl_ui_init()
79
CALL cl_opmsg('p')
80
81
#
82
INITIALIZE tm.* TO NULL
83
LET tm2.s1 = '1'
84
LET tm2.u1 = 'Y'
85
LET tm2.u2 = 'N'
86
LET tm2.u3 = 'N'
87
LET tm2.t1 = 'N'
88
LET tm2.t2 = 'N'
89
LET tm2.t3 = 'N'
90
LET tm.a
= '3'
91
LET tm.b
= '3'
92
LET tm.c
= 'N'
93
LET tm.more = 'N'
94
LET g_pdate = g_today
95
LET g_rlang = g_lang
96
LET g_bgjob = 'N'
97
LET g_copies = '1'
98
99
WHILE TRUE
100
101
# QBE
102
CONSTRUCT BY NAME tm.wc ON oea01,oea02,oea03,oea04,
103
oea14,oea15,oea23,oea12,oeahold
104
ON ACTION locale
105
LET g_action_choice = "locale"
#
106
EXIT CONSTRUCT
#
107
# action CONSTRUCT
108
ON IDLE g_idle_seconds
109
CALL cl_on_idle()
110
CONTINUE CONSTRUCT
111
TIPTOP GP 6-9
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
TIPTOP GP
ON ACTION exit
LET INT_FLAG = 1
EXIT CONSTRUCT
END CONSTRUCT
IF g_action_choice = "locale" THEN
#
LET g_action_choice = ""
#
CALL cl_dynamic_locale()
CONTINUE WHILE
END IF
IF INT_FLAG THEN
#
LET INT_FLAG = 0
CLOSE WINDOW r410_w
EXIT PROGRAM
END IF
IF tm.wc = ' 1=1' THEN
CALL cl_err('','9046',0) CONTINUE WHILE
END IF
# INPUT
INPUT BY NAME tm2.s1,tm2.s2,tm2.s3,
#
tm2.t1,tm2.t2,tm2.t3,
#
tm2.u1,tm2.u2,tm2.u3,
#
tm.a,tm.b,tm.c,tm.more
WITHOUT DEFAULTS
AFTER FIELD more
#
IF tm.more = 'Y' THEN
CALL cl_repcon(0,0,g_pdate,g_towhom,g_rlang,
g_bgjob,g_time,g_prtway,g_copies)
RETURNING g_pdate,g_towhom,g_rlang,
g_bgjob,g_time,g_prtway,g_copies
END IF
ON ACTION CONTROLZ
CALL cl_show_req_fields()
ON ACTION CONTROLG
CALL cl_cmdask()
AFTER INPUT
LET tm.s = tm2.s1[1,1],tm2.s2[1,1],tm2.s3[1,1]
LET tm.t = tm2.t1,tm2.t2,tm2.t3
LET tm.u = tm2.u1,tm2.u2,tm2.u3
ON IDLE g_idle_seconds
CALL cl_on_idle()
TIPTOP GP 6-10
TIPTOP GP
DataSystem
156
CONTINUE INPUT
157
158
ON ACTION exit
159
LET INT_FLAG = 1
160
EXIT INPUT
161
END INPUT
162
IF INT_FLAG THEN
163
LET INT_FLAG = 0
164
CLOSE WINDOW r410_w
165
EXIT PROGRAM
166
END IF
167
168
# ( Background Job )
169
IF g_bgjob = 'Y' THEN
170
SELECT zz08 INTO l_cmd FROM zz_file
# p_zz
171
WHERE zz01='axmr410'
# UNIX
172
IF SQLCA.sqlcode OR l_cmd IS NULL THEN
173
CALL cl_err('axmr410','9031',1)
174
ELSE
175
LET tm.wc=cl_replace_str(tm.wc, "'", "\"")
176
LET l_cmd = l_cmd CLIPPED,
# UNIX
177
" '",g_pdate CLIPPED,"'",
178
" '",g_towhom CLIPPED,"'",
179
" '",g_lang CLIPPED,"'",
180
" '",g_bgjob CLIPPED,"'",
181
" '",g_prtway CLIPPED,"'",
182
" '",g_copies CLIPPED,"'",
183
" '",tm.wc CLIPPED,"'",
184
" '",tm.s CLIPPED,"'",
185
" '",tm.t CLIPPED,"'",
186
" '",tm.u CLIPPED,"'"
187
CALL cl_cmdat('axmr410',g_time,l_cmd) # UNIX
188
END IF
189
CLOSE WINDOW r410_w
190
EXIT PROGRAM
191
END IF
192
193
CALL cl_wait()
#
194
#
195
CALL r410()
196
ERROR ""
197
END WHILE
198
CLOSE WINDOW r410_w
199 END FUNCTION
TIPTOP GP 6-11
TIPTOP GP
6.4.4
201 FUNCTION r410()
202
DEFINE l_name
VARCHAR(20)
# External(Disk) file name
203
DEFINE l_time
VARCHAR(8)
# Used time for running the job
204
DEFINE l_sql
VARCHAR(1000)
# SQL STATEMENT
205
DEFINE l_za05
VARCHAR(40)
206
DEFINE l_order
ARRAY[5] OF VARCHAR(10)
207
DEFINE sr
RECORD
208
order1 VARCHAR(20),
209
order2 VARCHAR(20),
210
order3 VARCHAR(20),
211
oea01
LIKE oea_file.oea01,
212
oea02
LIKE oea_file.oea02,
213
oea03
LIKE oea_file.oea03,
214
oea032 LIKE oea_file.oea032, #
215
oea04
LIKE oea_file.oea04,
#
216
occ02
LIKE occ_file.occ02,
#
217
gen02
LIKE gen_file.gen02,
218
gem02
LIKE gem_file.gem02,
219
oea23
LIKE oea_file.oea23,
220
oea21
LIKE oea_file.oea21,
221
oea12
LIKE oea_file.oea12,
222
oea25
LIKE oea_file.oea25,
223
oea32
LIKE oea_file.oea32,
224
oeahold LIKE oea_file.oeahold,
225
oeaconf LIKE oea_file.oeaconf,
226
oeb03
LIKE oeb_file.oeb03,
227
oeb04
LIKE oeb_file.oeb04,
228
oeb06
LIKE oeb_file.oeb06,
229
oeb05
LIKE oeb_file.oeb05,
230
oeb12
LIKE oeb_file.oeb12,
231
oeb13
LIKE oeb_file.oeb13,
232
oeb14
LIKE oeb_file.oeb14,
233
oeb15
LIKE oeb_file.oeb15
234
END RECORD
235
236
CALL cl_used('axmr410',l_time,1) RETURNING l_time
237
#
238
SELECT zo02 INTO g_company FROM zo_file WHERE zo01 = g_rlang
239
# (za_file)
240
DECLARE r410_za_cur CURSOR FOR
241
SELECT za02,za05
242
FROM za_file
TIPTOP GP 6-12
DataSystem
TIPTOP GP
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
azi03,azi04,azi05
g_azi03,g_azi04,g_azi05
azi_file
azi01=g_aza.aza17
#
LET l_sql = "SELECT '','','',
",
"
oea01, oea02, oea03, A.occ02, oea04, B.occ02, ",
"
gen02, gem02, oea23, oea21, oea12, oea25, ",
"
oea32, oeahold,oeaconf,oeb03, oeb04, oeb06,",
"
oeb05, oeb12, oeb13,oeb14, oeb15 ",
" FROM oea_file, OUTER occ_file A,OUTER occ_file B,",
"
OUTER gen_file, OUTER gem_file, oeb_file ",
" WHERE oea03 = A.occ01 AND B.occ01 = oea04 ",
" AND gen_file.gen01 = oea14 ",
" AND gem_file.gem01 = oea15 AND oea01=oeb_file.oeb01 ",
" AND oeaconf!='X' ",
" AND ", tm.wc CLIPPED
PREPARE r410_prepare1 FROM l_sql
IF SQLCA.sqlcode != 0 THEN
CALL cl_err('prepare:',SQLCA.sqlcode,1)
EXIT PROGRAM
END IF
DECLARE r410_curs1 CURSOR FOR r410_prepare1
CALL cl_outnam('axmr410') RETURNING l_name # , zz06
START REPORT r410_rep TO l_name
#
LET g_pageno = 0
FOREACH r410_curs1 INTO sr.*
IF SQLCA.sqlcode != 0 THEN
TIPTOP GP 6-13
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
TIPTOP GP
CALL cl_err('foreach:',SQLCA.sqlcode,1) EXIT FOREACH
END IF
IF tm.a = '1' AND sr.oeaconf = 'N' THEN #
CONTINUE FOREACH
#
END IF
IF tm.a = '2' AND sr.oeaconf = 'Y' THEN #
CONTINUE FOREACH
#
END IF
IF tm.b = '1' AND cl_null(sr.oeahold) THEN # check
CONTINUE FOREACH
END IF
IF tm.b = '2' AND NOT cl_null(sr.oeahold) THEN
CONTINUE FOREACH
END IF
#
FOR g_i = 1 TO 3
CASE WHEN tm.s[g_i,g_i] = '1' LET l_order[g_i] = sr.oea01
LET g_orderA[g_i]= g_x[30] #
WHEN tm.s[g_i,g_i] = '2' LET l_order[g_i] = sr.oea02
USING 'yyyymmdd'
LET g_orderA[g_i]= g_x[31] #
WHEN tm.s[g_i,g_i] = '3' LET l_order[g_i] = sr.oea03
LET g_orderA[g_i]= g_x[32] #
WHEN tm.s[g_i,g_i] = '4' LET l_order[g_i] = sr.oea04
LET g_orderA[g_i]= g_x[33] #
WHEN tm.s[g_i,g_i] = '5' LET l_order[g_i] = sr.gen02
LET g_orderA[g_i]= g_x[34] #
WHEN tm.s[g_i,g_i] = '6' LET l_order[g_i] = sr.gem02
LET g_orderA[g_i]= g_x[35] #
WHEN tm.s[g_i,g_i] = '7' LET l_order[g_i] = sr.oea23
LET g_orderA[g_i]= g_x[36] #
WHEN tm.s[g_i,g_i] = '8' LET l_order[g_i] = sr.oea12
LET g_orderA[g_i]= g_x[37] #
WHEN tm.s[g_i,g_i] = '9' LET l_order[g_i]=sr.oeahold
LET g_orderA[g_i]= g_x[38] #
OTHERWISE LET l_order[g_i] = '-'
LET g_orderA[g_i] = ' '
#
END CASE
END FOR
LET sr.order1 = l_order[1]
LET sr.order2 = l_order[2]
LET sr.order3 = l_order[3]
OUTPUT TO REPORT r410_rep(sr.*)
#
TIPTOP GP 6-14
TIPTOP GP
331
END FOREACH
332
333
FINISH REPORT r410_rep
334
335
CALL cl_prt(l_name,g_prtway,g_copies,g_len)
336
CALL cl_used('axmr410',l_time,2) RETURNING l_time
END FUNCTION
DataSystem
#
#
TIPTOP GP 6-15
6.4.5
339 REPORT r410_rep(sr)
340
DEFINE l_last_sw
VARCHAR(1)
341
DEFINE sr
RECORD
342
order1
VARCHAR(20),
343
order2
VARCHAR(20),
344
order3
VARCHAR(20),
345
oea01
LIKE oea_file.oea01,
346
oea02
LIKE oea_file.oea02,
347
oea03
LIKE oea_file.oea03,
348
oea032
LIKE oea_file.oea032,
#
349
oea04
LIKE oea_file.oea04,
#
350
occ02
LIKE occ_file.occ02,
#
351
gen02
LIKE gen_file.gen02,
352
gem02
LIKE gem_file.gem02,
353
oea23
LIKE oea_file.oea23,
354
oea21
LIKE oea_file.oea21,
355
oea12
LIKE oea_file.oea12,
356
oea25
LIKE oea_file.oea25,
357
oea32
LIKE oea_file.oea32,
358
oeahold
LIKE oea_file.oeahold,
359
oeaconf
LIKE oea_file.oeaconf,
360
oeb03
LIKE oeb_file.oeb03,
361
oeb04
LIKE oeb_file.oeb04,
362
oeb06
LIKE oeb_file.oeb06,
363
oeb05
LIKE oeb_file.oeb05,
364
oeb12
LIKE oeb_file.oeb12,
365
oeb13
LIKE oeb_file.oeb13,
366
oeb14
LIKE oeb_file.oeb14,
367
oeb15
LIKE oeb_file.oeb15
368
END RECORD,
369
l_rowno
SMALLINT,
370
l_amt_1
DECIMAL(17,5),
371
l_amt_2
DECIMAL(17,5)
372
373
#
374
OUTPUT TOP MARGIN 0
375
LEFT MARGIN 0
376
BOTTOM MARGIN 5
377
PAGE LENGTH 66
378
ORDER BY sr.order1,sr.order2,sr.order3
#
379
#
380
FORMAT
TIPTOP GP 6-16
TIPTOP GP
DataSystem
TIPTOP GP
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
#
PAGE HEADER
PRINT (g_len-length(g_company))/2 SPACES,g_company #
IF g_towhom IS NULL OR g_towhom = ' '
#
THEN PRINT '';
ELSE PRINT 'TO:',g_towhom;
END IF
PRINT COLUMN (g_len-length(g_user)-5),'FROM:',g_user CLIPPED #
PRINT (g_len-length(g_x[1]))/2 SPACES,g_x[1]
#
PRINT ' '
LET g_pageno = g_pageno + 1
#
PRINT g_x[2] CLIPPED,g_pdate ,' ',TIME,
#
COLUMN 40,g_x[23] CLIPPED,
#
g_orderA[1] CLIPPED,'-',g_orderA[2] CLIPPED,'-',
g_orderA[3] CLIPPED;
CASE tm.a
#
WHEN '1' PRINT '
',g_x[24] CLIPPED;
WHEN '2' PRINT '
',g_x[25] CLIPPED;
WHEN '3' PRINT '
',g_x[26] CLIPPED;
END CASE
CASE tm.b
WHEN '1' PRINT '
',g_x[27] CLIPPED;
WHEN '2' PRINT '
',g_x[28] CLIPPED;
WHEN '3' PRINT '
',g_x[29] CLIPPED;
END CASE
PRINT COLUMN g_len-7,g_x[3] CLIPPED,PAGENO USING '<<<' #
PRINT g_dash[1,g_len]
#
PRINT g_x[11],COLUMN 41,g_x[12],COLUMN 81,g_x[13],
# title
COLUMN 121,g_x[14] CLIPPED
PRINT g_x[15],COLUMN 41,g_x[16] CLIPPED
PRINT g_x[17] CLIPPED, g_x[18] CLIPPED,
g_x[19] CLIPPED, g_x[20] CLIPPED
LET l_last_sw = 'n'
BEFORE GROUP OF sr.order1
IF tm.t[1,1] = 'Y'
THEN SKIP TO TOP OF PAGE
END IF
BEFORE GROUP OF sr.order2
IF tm.t[2,2] = 'Y'
THEN SKIP TO TOP OF PAGE
END IF
TIPTOP GP 6-17
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
TIPTOP GP
# PRINT
# PRINT
# ';'
ON EVERY ROW
PRINT COLUMN 65,sr.oeb03 USING '##',
COLUMN 68,sr.oeb04 CLIPPED,
COLUMN 89,sr.oeb05 CLIPPED,
COLUMN 94,sr.oeb12 USING '########.##',
COLUMN 106,cl_numfor(sr.oeb13,9,g_azi03),
COLUMN 117,cl_numfor(sr.oeb14,10,g_azi04),
COLUMN 129,sr.oeb15
IF l_rowno = 1 THEN
PRINT COLUMN 1 ,sr.oea02 CLIPPED,
COLUMN 12,sr.oea04 CLIPPED,
COLUMN 19,sr.occ02 CLIPPED,
COLUMN 28,sr.gem02 CLIPPED,
COLUMN 37,sr.oea21 CLIPPED,
COLUMN 53,sr.oea32 CLIPPED,
COLUMN 60,sr.oeaconf CLIPPED;
LET l_rowno = l_rowno + 1
END IF
PRINT COLUMN 68,sr.oeb06 CLIPPED
AFTER GROUP OF sr.order1
IF tm.u[1,1] = 'Y' THEN
TIPTOP GP 6-18
DataSystem
TIPTOP GP
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
CALL cl_wcchp(tm.wc,'oea01,oea02,oea03,oea04,oea05')
514
RETURNING tm.wc
515
PRINT g_dash[1,g_len]
516
IF tm.wc[001,070] > ' ' THEN
# for 80
517
PRINT g_x[8] CLIPPED,tm.wc[001,070] CLIPPED END IF
518
IF tm.wc[071,140] > ' ' THEN
519
PRINT COLUMN 10,
tm.wc[071,140] CLIPPED END IF
520
IF tm.wc[141,210] > ' ' THEN
521
PRINT COLUMN 10,
tm.wc[141,210] CLIPPED END IF
522
IF tm.wc[211,280] > ' ' THEN
523
PRINT COLUMN 10,
tm.wc[211,280] CLIPPED END IF
524
END IF
525
PRINT g_dash[1,g_len]
526
LET l_last_sw = 'y'
527
PRINT g_x[4],g_x[5] CLIPPED,
528
COLUMN (g_len-9), g_x[7] CLIPPED
529
530
#
531
PAGE TRAILER
#
532
IF l_last_sw = 'n'
533
THEN PRINT g_dash[1,g_len]
534
PRINT g_x[4],g_x[5] CLIPPED,
535
COLUMN (g_len-9), g_x[6] CLIPPED
536
ELSE SKIP 2 LINE
537
END IF
538 END REPORT
TIPTOP GP 6-20
TIPTOP GP
Chapter 7
Genero Debugger
DataSystem
7.1 Debugger
Genero debuggerr.d2
r.d2+
7.1.1
unix r.d2+
r.d2+
apmi252
7.1.2 Debugger
Genero Debugger
TIPTOP GP 7-1
TIPTOP GP DEBUGGER
7.1.3
TopMenu
ToolBar
Auto Variables
Watched Variables Inspect
Current Function function
Current Line
Status
Hide Auto Auto Variables
Hide Watches Watched Variables
TIPTOP GP 7-2
DataSystem
7.2
debugger
7.2.4 Run/Cont F5
Run/Cont
TIPTOP GP 7-3
TIPTOP GP DEBUGGER
TIPTOP GP 7-4
DataSystem
7.2.11 Execute Debugger CommandCtrl+D
TopMenu Run
debug Show all commands
TIPTOP GP 7-5
TIPTOP GP DEBUGGER
Breakpoint
-Delete breakpointDelete All
Jump ToHighlight
TIPTOP GP 7-6
DataSystem
7.2.14 ModulesCtrl+M
TopMenu Modules 4gl
7.2.15 FunctionsCtrl+U
TopMenu Functions
Function name
TIPTOP GP 7-7
TIPTOP GP DEBUGGER
7.2.18 WatchesCtrl+W
TopMenu Watches
0
TIPTOP GP 7-8
Appendix
TIPTOP GP
DataSystem
A.1
cl_act_del_tmp_path
cl_load_act_list.4gl
ActionList
None
None
CALL cl_act_del_tmp_path()
cl_anykey
cl_anykey.4gl
p_sw
None
CALL cl_anykey()
Not used
cl_arful
cl_arful.4gl
buffer size too small
p_row,p_col
p_arrno :
TRUE / FALSE
IF cl_arful(p_row,p_col) THEN
cl_batch_proc
cl_batch_proc.4gl
ps_headers
None
Table Header
TIPTOP GP A-1
TIPTOP GP
cl_browse_dir
cl_transfer_file.4gl
Windows
None
STRING
NULL
cl_browse_file
cl_transfer_file.4gl
Windows
None
STRING
NULL
cl_chg_win_title
cl_chg_win_title.4gl
Window Title
ps_code
None
cl_chk_act_auth
cl_chk_act_auth.4gl
g_action_choice ACTION
None
g_action_choice Action ID
TRUE/FALSE
LET g_action_choice=accept
IF cl_chk_act_auth() THEN
TIPTOP GP A-2
DataSystem
cl_chk_data_continue
cl_chk_data_continue.4gl
ps_source
TRUE/FALSE
cl_chk_err_setting
cl_err_msg.4gl
None
None
CALL cl_chk_err_setting()
cl_chkabf
cl_chkabf.4gl
p_priv
TRUE / FALSE
cl_choice
cl_choice.4gl
l_msg
l_choice
cl_close
cl_close.4gl
"(Y/N):"
"(Y/N):"
p_row,p_col,p_old_acticode
TRUE / FALSE
IF cl_close(p_row,p_col,p_old_acticode) THEN
TIPTOP GP A-3
TIPTOP GP
cl_cmdask
cl_cmdask.4gl
None
None
CALL cl_cmdask()
cl_cmdat
cl_cmdat.4gl
UNIX
p_time
p_cmd
None
CALL cl_cmdat(p_code,p_time,p_cmd)
UNIX
cl_cmdrun
cl_cmdrun.4gl
UNIX
ps_cmd
None
CALL cl_cmdrun('axmq450')
cl_cmdrun_wait
cl_cmdrun.4gl
UNIX
ps_cmd
None
CALL cl_cmdrun_wait('axmq450')
cl_cmmsg
cl_cmmsg.4gl
COMMIT WORK
p_code
None
CALL cl_cmmsg(1)
TIPTOP GP A-4
DataSystem
cl_conf
cl_conf.4gl
MESSAGE CODE ,
"......(Y/N):", 60 Byte
p_row,p_col,p_msgcode
TRUE / FALSE
IF cl_conf(p_row,p_col,p_msgcode) THEN
cl_conf2
cl_conf2.4gl
MESSAGE CODE
"......(1/2/3/4):", 60 Byte
p_row,p_col,p_msgcode,p_velue
TRUE / FALSE
IF cl_conf2(p_row,p_col,p_msgcode) THEN
cl_conf3
cl_conf3.4gl
MESSAGE CODE ,
p_row,p_col,p_msgcode
TRUE / FALSE
IF cl_conf(p_row,p_col,p_msgcode) THEN
cl_confirm
cl_confirm.4gl
ps_msg
TRUE / FALSE
IF (cl_confirm("agl-021")) THEN
cl_cont
cl_cont.4gl
"(Y/N):"
p_row,p_col
TRUE / FALSE
IF cl_cont(p_row,p_col) THEN
TIPTOP GP A-5
TIPTOP GP
cl_create_4sm
cl_create_4sm.4gl
udmtree StartMenu
pc_menu_root
pi_rebuild
None
StartMenu
4sm
cl_create_qry
cl_create_qry.4gl
None
g_parameter.*
iINPUT
g_qryparam.state
cCONSTRUCT
g_qryparam.form
gab
CONSTRUCT
g_qryparam.construct
YN
g_qryparam.where
g_qryparam.pagecount
3
g_qryparam.default1
9
g_qryparam.arg1
g_qryparam.multiret_index
1
g_qryparam.multiret
ORDER BY ( DESC)
g_qryparam.ordercons
ms_ret1,ms_ret2,ms_ret3
cl_days
cl_days.4gl
p_year
p_month
l_days
LET l_days=cl_days(p_yy,p_mm)
TIPTOP GP A-6
DataSystem
cl_del_data
cl_prt.4gl
TEMP table
None
CALL cl_del_data(l_table)
cl_delb
cl_delb.4gl
"(Y/N):"
p_row,p_col
TRUE / FALSE
IF cl_delb(p_row,p_col) THEN
cl_delete
cl_delete.4gl
None
TRUE / FALSE
IF (cl_delete()) THEN
cl_delh
cl_delh.4gl
"(Y/N):"
(for )
p_row,p_col
TRUE / FALSE
IF cl_delh(p_row,p_col) THEN
cl_delh1
cl_delh1.4gl
"(Y/N):"
(for )
p_row,p_col
TRUE / FALSE
IF cl_delh1(p_row,p_col) THEN
TIPTOP GP A-7
TIPTOP GP
cl_detail_input_auth
cl_detail_input_auth.4gl
insert delete
Insert Delete
TRUE / FALSE
cl_digcut
cl_digcut.4gl
.
p_value
p_digit
p_value
LET a = cl_digcut(p_value,p_digit)
cl_doc
cl_doc
None
None
CALL cl_doc()
cl_dynamic_locale
cl_dynamic_locale.4gl
None
None
CALL cl_dynamic_locale()
cl_end
cl_end.4gl
",:"
p_row,p_col
None
CALL cl_end(p_row,p_col)
TIPTOP GP A-8
DataSystem
cl_end2
cl_end2.4gl
p_code
TRUE / FALSE
1 2
cl_err
cl_err.4gl
24
p_msg
err_code
()
p_n
(CR)
0 :(CR) 1:(CR)
> 1 :
-1 : TEXT MODE '0'
GUI MODE '1'
None
CALL cl_err(p_msg,err_code,p_n)
cl_err_msg
cl_err_msg.4gl
ps_title
ps_err_code
ps_replace_arg
pi_idle_sec
None
CALL cl_err_msg("Warning","1000",NULL,g_aza.aza37)
cl_err_msg_log
cl_err_msg.4gl
title
|
idle
None
None
TIPTOP GP A-9
TIPTOP GP
cl_exp
cl_exp.4gl
"(Y/N):"
"(Y/N):"
(for )
p_row,p_col,p_old_acticode
TRUE / FALSE
IF cl_exp(p_row,p_col,p_old_acticode) THEN
cl_export_to_excel
cl_export_to_excel.4gl
MS Excel
ui.Interface.getRootNode(),
om.DomNode
base.TypeInfo.create( object_id ) om.DomNode
t1
om.DomNode
t2
om.DomNode
None
CALL cl_export_to_excel(ui.Interface.getRootNode(),
base.TypeInfo.create(g_gem),'','')
cl_facfor
cl_facfor.4gl
INPUT DECLIAM(16,8) 9 .
12345678 , '^12345678'
1234567 , '1234567.0'
123456
, '123456.00'
12345.67 , '12345.670'
1.234567 , '1.2345670'
.1234567 , '.12345670'
p_fac
l_str
TIPTOP GP A-10
DataSystem
cl_fglgui
cl_user.4gl
None
li_gui_type
cl_file_2_module
cl_file_2_module.4gl
4gl Module
ms_prog
mc_type S: D:
mc_module /
SELECT zz011
cl_fldhlp
cl_fldhlp.4gl
( 4 WINDOW )
p_field_name
None
CALL cl_fldhlp(p_field_name)
cl_flow_mail
cl_flow_notify.4gl
JavaMail
ps_pre_subject
pr_mail_info
None
Mail
Mail
TIPTOP GP A-11
TIPTOP GP
cl_flow_notify
cl_flow_notify.4gl
ps_doc_no
pc_state
None
I.U.D.Y.
cl_forupd_sql
cl_forupd_sql.4gl
SELECT ... FOR UPDATE
ps_forupd_sql
SQL
ps_forupd_sql
SQL
cl_get_act_path
cl_load_act_list.4gl
ActionList
ps_prog
ls_path
ActionList
cl_getClientIP
cl_transfer_file.4gl
Client IP
None
ls_client
IP
cl_getmsg
cl_getmsg.4gl
(ze_file).
p_code
p_lang
l_msg .
TIPTOP GP A-12
DataSystem
cl_init_batch_var
cl_batch_proc.4gl
None
None
CALL cl_init_batch_var()
cl_init_qry_var
cl_create_qry.4gl
None
None
CALL cl_init_qry_var()
cl_jmail
cl_jmail.4gl
javamail function mail
None g_xml.*
Javamail
XML (
g_xml.file
$TEMPDIR )
g_xml.mailserver MAIL SERVER IP()
g_xml.serverport MAIL SERVER Port()
MAIL SERVER User()
g_xml.user
MAIL SERVER User Password()
g_xml.passwd
()
g_xml.subject
g_xml.body
g_xml.attach
(
g_xml.recipient
)
g_xml.cc
g_xml.bcc
g_xml.sender
None
CALL cl_jmail()
TIPTOP GP A-13
TIPTOP GP
cl_jmaillist
cl_jmail.4gl
mail address CALL cl_jmaillist()
None
g_str
mail-address
cl_load_act_list
cl_load_act_list.4gl
ActionList
ps_prog
None
CALL cl_load_act_sys("axmt410")
cl_load_style_list
cl_load_style_list.4gl
StyleList
ps_prog
None
CALL cl_load_style_list(NULL)
cl_mail
cl_mail.4gl
sma106
mail Y
MAIL
p_azo
None
CALL cl_mail(l_azo.*)
azo_file.*
cl_msgany
cl_msgany.4gl
, .
p_row,p_col,p_msg
None
CALL cl_prompt(p_row,p_col,l_msg)
TIPTOP GP A-14
DataSystem
cl_navigator_setting
cl_navigator_setting.4gl
ToolBar
pi_curr_index Cursor
pi_row_count
None
cl_null
cl_null.4gl
Null
ps_source
TRUE / FALSE
cl_numchk
cl_numchk.4gl
'p_str'
p_str
p_len
TRUE / FALSE
IF cl_numchk(p_str,p_len) THEN
cl_numfor
cl_numfor.4gl
FORMAT, .
0 , 0.00, .
p_value
p_len
l_str
TIPTOP GP A-15
TIPTOP GP
cl_numfor3
cl_numfor3.4gl
p_value
l_str
cl_on_idle
cl_on_idle.4gl
ON IDLE
None
None
CALL cl_on_idle()
cl_opmsg
cl_opmsg.4gl
,
FUNCTION
p_op_type ,a:,u:,q:
b:,w:,
p:,
None
CALL cl_opmsg('q')
cl_open_doc
cl_client_app.4gl
, client
doc STRING
TRUE / FALSE,
TIPTOP GP A-16
DataSystem
cl_open_prog
cl_client_app.4gl
(optional)
cl_open_url
cl_client_app.4gl
URL client (IE)
url STRING
TRUE / FALSE,
cl_outnam
cl_outnam.4gl
(Disk File Name)
p_code
p_name
cl_pause
cl_pause.4gl
,
None
None
IF cl_pause() THEN
cl_progress_bar
cl_progress_bar.4gl
pi_total_count
None
CALL cl_progress_bar(3)
TIPTOP GP A-17
TIPTOP GP
cl_progressing
cl_progress_bar.4gl
ps_log
None
cl_prompt
cl_prompt.4gl
l_msg
p_row,p_col,l_msg
TRUE / FALSE
IF cl_prompt(p_row,p_col,l_msg) THEN
cl_prt
cl_prt.4gl
(V) View-320
(J) Java Mail
(H)
p_name
p_prtway
p_copies
p_len
None
(80/132)
cl_prt_browser
cl_prt.4gl
Java Client
None
None
CALL cl_prt_browser()
TIPTOP GP A-18
DataSystem
cl_prt_c
cl_prt.4gl
cut-page
p_name
None
CALL cl_prt_c(p_name)
cl_prt_chkbrowser
cl_prt.4gl
None
TRUE / FALSE
IF cl_prt_chkbrowser() THEN
cl_prt_cs1
cl_prt.4gl
4GL construct sql crystal report
p_rptname ID
p_sql
SQL
p_title2
TRUE / FALSE
cl_prt_cs2
cl_prt.4gl
report file temptable crystal report
p_rptname ID
p_sql
SQL
p_title2
TRUE / FALSE
CALL cl_prt_cs2()
TIPTOP GP A-19
TIPTOP GP
cl_prt_cs3
cl_prt.4gl
4GL report temptable crystal report
p_rptname ID
p_sql
SQL
p_title2
TRUE / FALSE
cl_prt_temptable
cl_prt.4gl
Temp Table
p_prog
p_sql
SQL
l_table
cl_prt_p
cl_prt.4gl
pdf
p_name ID
None
CALL cl_prt_p(p_name)
cl_prt_webp
cl_prt.4gl
Java Client Web Printer
None
None
CALL cl_prt_webp()
TIPTOP GP A-20
DataSystem
cl_prt_url
cl_prt.4gl
Java Client
p_url
None
CALL cl_prt_url(l_url)
cl_prtmsg
cl_prtmsg.4gl
p_row,p_col,p_code,p_lang
TRUE / FALSE
cl_qzx
cl_qzx.4gl
g_user .
p_row p_col
p_key
p_key
cl_qzz
cl_qzz.4gl
pi_multi_sel
pi_need_cons
ps_default1
construct
ms_ret1
CALL cl_qzz(FALSE,TRUE, )
cl_rbmsg
cl_rbmsg.4gl
ROLLBACK WORK
p_code
None
CALL cl_rbmsg(1)
TIPTOP GP A-21
TIPTOP GP
cl_say
cl_say.4gl
SAY TOTAL
CALL cl_say(p_amt,p_len)
RETURNING l_say1,l_say2
cl_set_act_lang
cl_load_act_list.4gl
ActionList
pc_lang
None
CALL cl_set_act_lang(NULL)
cl_set_act_visible
cl_set_act_visible.4gl
/ Action
ps_act_names
pi_visible
None
TRUEFALSE
cl_set_combo_items
cl_set_combo_items.4gl
ComboBox Item
ps_field_name
ps_values
ps_items
None
TIPTOP GP A-22
ComboBox
Item
Item
DataSystem
cl_set_combo_lang
cl_set_combo_lang.4gl
ComboBox
ps_field_name
None
CALL cl_set_combo_lang("oea08")
ComboBox
cl_set_combo_module
cl_set_combo_module.4gl
ComboBox
ps_field_name
pi_type
None
CALL cl_set_combo_module("oea08",0)
ComboBox
pi_type = 1
cl_set_comp_att_text
cl_set_comp_att_text.4gl
Label text
ps_fields
ps_att_value
None
cl_set_comp_entry
cl_set_comp_entry.4gl
ps_fields
pi_entry
None
TRUEFALSE
TIPTOP GP A-23
TIPTOP GP
cl_set_comp_font_color
cl_set_comp_font_color.4gl
ps_fields
ps_color
None
black,blue,cyan,...
cl_set_comp_required
cl_set_comp_required.4gl
ps_fields
pi_required
None
TRUEFALSE
cl_set_comp_visible
cl_set_comp_visible.4gl
/
ps_fields
pi_visible
None
TRUEFALSE
cl_set_config_path
cl_ui_init.4gl
config
None
None
CALL cl_set_config_path()
cl_set_detail_auth_string
cl_detail_input_auth.4gl
detail insert/delete
ps_detail_auth lib
None
TIPTOP GP A-24
DataSystem
cl_set_field_pic
cl_set_field_pic.4gl
ps_confirm
ps_approve
ps_post
ps_close
ps_void
ps_valid
None
CALL cl_set_field_pic(g_oea.oeaconf,g_approve,"","",g_void,"")
cl_set_focus_form
cl_set_focus_form.4gl
ui.Interface.getRootNode(),
fld_name
frm_name
CALL cl_set_focus_form(ui.Interface.getRootNode())
RETURNING fld_name, frm_name
cl_set_locale_frm_name
cl_ui_init.4gl
om.DomNode
ps_frm_name
None
CALL cl_set_locale_frm_name("aimt370")
cl_set_proc_result
cl_batch_proc.4gl
pr_curr_proc
pi_success
None
TIPTOP GP A-25
TIPTOP GP
cl_set_win_title
cl_set_win_title.4gl
OPEN WINDOW FORM title
lc_frm_name
None
CALL cl_set_win_title(aimt370)
cl_setup
cl_setup.4gl
ps_module
TRUE / FALSE
CALL cl_setup("AXM")
cl_show_help
cl_show_help.4gl
None
None
CALL cl_show_help()
cl_softscore
cl_softscore.4gl
Dump AUI tree and convert to .sco file format for SoftScore
None
None
CALL cl_softscore()
cl_softscore_check
cl_softscore.4gl
None
None
CALL cl_softscore_check()
TIPTOP GP A-26
DataSystem
cl_show_req_fields
cl_show_req_fields.4gl
None
None
CALL cl_show_req_fields()
cl_show_success_win
cl_batch_proc.4gl
ps_headers
None
CALL cl_show_success_win(ls_headers)
TableHeader
cl_smuchk
cl_smuchk.4gl
g_user p_slip p_priv
None
TRUE / FALSE
cl_startRcpDaemon
cl_transfer_file.4gl
frontCall Rcp
None
TRUE / FALSE
cl_stopRcpDaemon
cl_transfer_file.4gl
frontCall Rcp
None
TRUE / FALSE
TIPTOP GP A-27
TIPTOP GP
cl_sure
cl_sure.4gl
"(Y/N):"
p_row,p_col
TRUE / FALSE
IF cl_sure(p_row,p_col) THEN
cl_sure3
cl_sure3.4gl
"(Y/N)?"
p_row,p_col
TRUE / FALSE
IF cl_sure3(p_row,p_col) THEN
cl_transferPrepare
cl_transfer_file.4gl
None
None
CALL cl_transferPrepare()
cl_ui_init
cl_ui_init.4gl
None
None
CALL cl_ui_init()
cl_ui_locale
cl_ui_locale.4gl
pc_frm_name
None
CALL cl_ui_locale()
TIPTOP GP A-28
NULL:g_prog
DataSystem
cl_upload_file
cl_transfer_file.4gl
Client Server
TRUE/FALSE
cl_upsw
cl_upsw.4gl
" (Y/N)? "
" (Y/N)? "
p_row,p_col
p_upsw N:
Y:
TRUE / FALSE
IF cl_upsw(p_row,p_col,p_upsw) THEN
cl_used
cl_used.4gl
p_code -
time1 -
sw
- 1:, RETURN TIME
2., INSERT () TO zu_file
time
CALL cl_used(p_code,time1,sw)
CALL cl_used('aom2020','09:30','1')
CALL cl_used('aom2020','09:40','2')
TIPTOP GP A-29
TIPTOP GP
cl_user
cl_user.4gl
None
TRUE / FALSE
CALL cl_user()
cl_void
cl_void.4gl
"(Y/N):"
"(Y/N):"
p_row,p_col,p_old_acticode
TRUE / FALSE
IF cl_void(p_row,p_col,p_old_acticode) THEN
cl_wait
cl_wait.4gl
None
None
CALL cl_wait()
cl_wcchp
cl_wcchp.4gl
WC (Changing pattern in p_wc)
p_wc VARCHAR(300)
p_oldp VARCHAR(60)
TIPTOP GP A-30
Where condition
Pattern (column list) to be changed
DataSystem
cl_wcshow
cl_wcshow.4gl
RDSQL 20,21,22,23
None
CALL cl_wcshow(p_wc)
cl_wcsub
cl_wcsub.4gl
1.TEXT
mode:p_str "'
2.GUI/WEB mode:p_str '"
p_str
l_str
TIPTOP GP A-31
TIPTOP GP A-32
TIPTOP GP