You are on page 1of 218

.......................................................................................................

2
1 .......................................................................... 7
A. .............................................................................................. 8
A.1 (Tabs) .................................................................................................................................................8
A.2 - ............................................................................................................................................9
A.3 Grids ............................................................................................................................................ 10
A.4 Hyperlinks .................................................................................................................................................... 11
A.5 ......................................................................................................................................... 11
A.6 SoftOne Spreadsheet .................................................................................................................................. 12

B. ..................................................................................................................... 13
B.1 .................................................................................................................................... 14
B.2 Pop Up Forms .............................................................................................................................................. 16
B.3 Buttons Hyperlink Commands .................................................................................................................. 20
B.4 Editors .......................................................................................................................................................... 24

2 .......................................................................................................... 26
A. ..................................................................................................................... 27
B. ........................................................................................................ 28
.1 ....................................................................................................................................... 28
B.2 ......................................................................................................................................... 29
B.3 ................................................................................................................................... 30
B.4 ................................................................................................................................... 31
B.5 ............................................................................................................................ 31
B.6 ................................................................................................................................ 31

C. ............................................................................................ 32
C.1 Bands .................................................................................................................. 32
C.2 ............................................................................................................... 34

3 ......................................................................................... 37
. ........................................................................................................ 38
.1 .................................................................................................................................... 38
.2 ....................................................................................................................... 39
.3 ......................................................................................................................... 39

B. ..................................................................................................................... 40
B.1 .............................................................................................................................................. 40
B.2 ...................................................................................................................................... 41
B.3 ........................................................................................................................ 42
B.4 ...................................................................................................................................... 43
B.5 (Fonts) ............................................................................................................................... 44
B.6 ........................................................................................................................... 45
B.7 ........................................................................................................................... 45

C. Word ................................................................................................................................ 46
C.1 ....................................................................................................................................... 46
C.2 ........................................................................................................................................ 46
C.3 ............................................................................................................................................. 47
C.4 .......................................................................................................................................... 48
C.5 Report Footer............................................................................................................................................... 49
C.6 .............................................................................................................................................. 50
C.7 memo ......................................................................................................................... 51

D. Excel ................................................................................................................................ 52
D.1 ....................................................................................................................................... 52
D.2 ........................................................................................................................................ 52

E. ......................................................................................................................................... 53
E.1 ....................................................................................................................................... 53
E.2 ........................................................................................................................................ 53
E.2 ..................................................................................................................................... 53

F. Crystal Reports ............................................................................................................... 54


F.1 ............................................................................................................................................ 54
F.2 Crystal ....................................................................................................................... 54
F.3 Crystal SoftOne .................................................................................................................... 58

G. & ................................................................................. 59
G.1 .............................................................................................................................. 59
G.2 .............................................................................................................................. 61

4 Alerts ................................................................................................................. 62
A. (Events) & .................................................................................................... 63
.1 Events ............................................................................................................................................. 63
A.2 Events ........................................................................................................................................... 64
.3 Events ......................................................................................................................................... 65
.4 ........................................................................................................... 66

B. (Actions) ...................................................................................................................... 67
B.1 ................................................................................................................................. 67
B.2 (Warning Message) ................................................................................................. 67
B.3 (Exception Message) ..................................................................................................... 67
B.4 ...................................................................................................................................................... 67

5 Database Designer Basic ................................................................................ 68


. Resource Editor ....................................................................................... 69
B. ..................................................................................................... 71
B.1 ............................................................................................................................ 71
B.2 ( ) ..................................................................................................... 72

C. M ...................................................................................................................... 73
C.1 ....................................................................................................................... 73
C.2 ....................................................................................................................... 74

D. Detail ............................................................................................................................... 75
D.1 Detail ............................................................................................................................... 75
D.2 .................................................................................................................... 76

E. String Lists .......................................................................................................... 78

6 Database Designer Advanced ......................................................................... 79


A. Database Views ............................................................................................................................ 80
A.1 Database View ............................................................................................................................. 80
A.2 Database Views ................................................................................................................... 80

. Objects .......................................................................................................................................... 83
.1 Object ........................................................................................................... 83
B.2 Object Database View .............................................................................................. 84
B.3 Object ........................................................................................................................ 84
B.4 Object ................................................................................... 85
B.5 Object ................................................................................................................................... 86

C. Virtual Tables................................................................................................................................ 90
C.1 Virtual Table ............................................................................................................................. 90
C.2 Virtual Table ............................................................................................................... 90

D. Report Objects ............................................................................................................................. 92


D.1 Report Object............................................................................................................................... 92
D.2 Report Object ...................................................................................... 93

7 Extra Tools ....................................................................................................... 95


A. Auto Login Windows Shortcut ............................................................................................ 96
A.1 Windows Shortcut ..................................................................................................................... 96
A.2 XCO ................................................................................................ 97
A.3 Extra Commands ........................................................................................................... 97
A.4 ........................................................................................................................ 97
A.5 Command Line Params ............................................................................................................................... 97

B. Maximum (Select Top).......................................................................... 98


.1 ...................................................................................................................................... 98
.2 ............................................................................................. 99

C. Menu Jobs ................................................................................................... 100


C.1 ................................................................................................................................. 100
C.2 ......................................................................................................................................... 101
C.3 Menu Commands ................................................................................... 102
C.4 ................................................................................................................ 103

8 ............................................................. 104
A. Remote Server ............................................................................................................................ 105
A.1 ............................................................................................................................................ 106
A.2 Remote Server ............................................................................................................................. 107
A.3 SMS Email ............................................................................................................................. 108

B. Soft1 Windows Scheduler ................................................................ 110


B.1 Soft1 Scheduler ........................................................................................................ 110
B.2 Windows Scheduler Task ......................................................................................................... 111
B.3 XCO .............................................................................................. 114

C. Scheduler .................................................................................................................................... 115


C.1 ................................................................................................................................. 116
C.2 Scheduler ..................................................................................................................................... 117

D. ......................................................................................................... 118

9 Scripts - Javascript ......................................................................... 119


A. Object .......................................................................................................................................... 120
A.1 Methods ..................................................................................................................................................... 120
A.2 Functions ................................................................................................................................................... 124

B. Dataset ........................................................................................................................................ 128


.1 Methods ..................................................................................................................................................... 128
.2 Functions ................................................................................................................................................... 130

C. Events ......................................................................................................................................... 132


C.1 Field Events ............................................................................................................................................... 132
C.2 Dataset Events .......................................................................................................................................... 132
C.3 Object Events ............................................................................................................................................ 133
C.3 Sub Form Events ....................................................................................................................................... 133
C.4 Line Printing Events ................................................................................................................................... 134

D. Case Studies............................................................................................................................... 135


Case Study 1 .................................................................................................................................................... 135
Case Study 2 .................................................................................................................................................... 137
Case Study 3 .................................................................................................................................................... 138
Case Study 4 .................................................................................................................................................... 139
Case Study 5 .................................................................................................................................................... 141
Case Study 6 .................................................................................................................................................... 143
Case Study 7 .................................................................................................................................................... 145

10 Data Flow ...................................................................... 149


A. ................................................................................................................... 150
. ...................................................................................................................... 151
.1 ......................................................................................................................................... 151
.2 .......................................................................................................................................... 152
.3 .................................................................................................................................. 154

C. ............................................................................................................................. 155
D. Script ......................................................................................................... 156
E. Case Studies ............................................................................................................................... 157
Case Study 1 .................................................................................................................................................... 157
Case Study 2 .................................................................................................................................................... 158
Case Study 3 .................................................................................................................................................... 159
Case Study 4 .................................................................................................................................................... 161
Case Study 5 .................................................................................................................................................... 162
Case Study 6 .................................................................................................................................................... 163

11 SoftOne Batch Script Language (SBSL) .................................................... 164


A. ......................................................................................................................... 165
B. SBSL ................................................................................................................ 166
.1 Case Insensitive ........................................................................................................................................ 166
B.2 Semicolons ................................................................................................................................................ 166
B.3 Comments.................................................................................................................................................. 166
B.4 Variables .................................................................................................................................................... 166
B.5 Libraries References .................................................................................................................................. 166
B.6 Execute Functions ..................................................................................................................................... 166

C. (interface) ................................................................................. 167


C.1 Section TABLES ........................................................................................................................................ 167
C.2 Section CACHETABLES ........................................................................................................................... 169
C.3 Section PANELS ....................................................................................................................................... 170
C.4 Section STRINGS ...................................................................................................................................... 172
C.5 Section FIELDEXEC .................................................................................................................................. 173

D. Main Code ................................................................................................................................... 175


D.1 Converters & Functions ............................................................................................................................. 175
D.2 Connections ............................................................................................................................................... 176
D.3 Variables .................................................................................................................................................... 177
D.4 ................................................................................................................................... 177

E. / SBSL Script .................................................................................................. 178


E.1 Menu .................................................................................................................................. 178
E.2 Browser .............................................................................................................................. 179
.3 ............................................................................................................................. 181
E.4 .............................................................................................................................. 182

F. SBSL Internal Functions ............................................................................................................ 183


G. SoftOne Libraries ....................................................................................................................... 188
G.1 ModuleIntf .................................................................................................................................................. 188
G.2 PiLib ........................................................................................................................................................... 193
G.3 SysRequest ............................................................................................................................................... 196

. Case Studies............................................................................................................................... 198


Case Study 1 .................................................................................................................................................... 198
Case Study 2 .................................................................................................................................................... 199
Case Study 3 .................................................................................................................................................... 201

....................................................................................... 202
A. Sodtype ........................................................................................................................ 203
B. Sosource ...................................................................................................................... 204
C. (X.SYS) .............................................................................................. 205
D. (acCommands) ...................................................... 206
E. Editor Commands....................................................................................................................... 208
F. Editors ..................................................................................................................... 209
G. Origin ( ) ............................................................................... 211
H. Commands Object ............................................................................ 212
I. Commands rowser Object................................................................................ 215
J. ................................................................................................. 218

A.
A.1 (Tabs)
A.2 -
A.3 - Grids
A.4 Hyperlinks
A.5
.6 SoftOne Spreadsheet

B.
B.1
B.2 Pop Up Forms
B.3 Buttons Hyperlink Commands
B.4 Editors

A.
(Views) .
, Database Views Virtual Tables.
default
. , . , ,
Tabs, Grids Buttons.
T , (.
, A, T ) .

A.1 (Tabs)
(Tabs) /
.

( 1). Form
drag n drop ( 2).
,
(E
).

A1

A2

A.2 -
, .
Object. 3
(Fast entry, , , .) .

(E Z , Z ).
drag n drop.
( , , Horizontal / Vertical Tab Order, )
( 4).

Caption

Floating .

Vertical Order Tab order,


Tab

, .
.

A3

A4

A.3 Grids
Grids , detail objects( 5).
grids ( 6).

Caption grid

AA Size
. 2
99.
100 , ,
( 7).

Floating grid .

drag n drop .

Grid 5.

A5

A6

A7

10

A.4 Hyperlinks
hyperlink (). To
hyperlink .
hypelinks :

( )
(. Z, N ).

e-mail internet hyperlinks email internet .

. E A
, .
ABC Costing hyperlinks.
O hyperlinks .
H hyperlinks
. O
-
.

A8

A.5
,
.
( List Box).

5.

11

A.6 SoftOne Spreadsheet


To SoftOne Spreadsheet Alt+S
.
spreadsheet ( )
( 9).
spreadsheet .
default spreadsheets .
spreadsheet
htm (Object_.htm).
Barcode
ITEM_CODE1.htm 10
spreadsheet Alt+S BARCODE .

A9

A10

12

B.
(), (. , , )
,
Design( 1).
.
( B2 & B3).

.
""
, ( B2).

B1

B2

B3

13

B.1
( 4) , grids
.

(Pop Up Forms, Buttons Editors).

B4

Grid



grid.

()

grid ()

grid

grid



grid


grid

Grid

14

1
.1.1

button 5. Tab
, .
. Caption
, Forced Value Default Value
. Display Size grids.

B5

.1.2 Form
button Form
(.buttons) .
drag and drop.
, ,
.
Form 4,
.
.
.

15

B.2 Pop Up Forms


Pop Up Forms
(. Grids Button ). pop up form
.

B.2.1
object Form
. ,
.
Panels, , Tabs Grids , ,
.

B.2.2
Grid pop up form (
), pop up , Pop Up Form
Grid. 6 MYPOP grid
.

B6

16

1
B.2.3
1
/ custom pop up .

,
.

Form

(. MyPopUp) . ( B7)

(Panels)
Panel.( B8)

grids memo( )

Grid ,
Grid PopUp form ( B9).
,
( B10).

B7

B8

17

B9

B10

18

1
2
custom pop up button .

, Button,
Header .

Button, (. Num01) ,
Editor xcmd:20001. (. 1 - Buttons)

Javascript B5.
H OPENSUBFORM MYPOPUP.
: sub form NUM01,
Editor , XCMD:MYPOPUP ( B6).

B5

B6

19

B.3 Buttons Hyperlink Commands


commands
() Buttons Hyperlinks( 7 & 8) Javascript VBscript.
commands XCMD:cmd ( cmd
command). 15000,
conflict custom commands commands . commands
H, I.
event ON_Click commands EXECCOMMAND(cmd).

B7 Buttons

B8 Hyperlinks

B.3.1
commands :

pop up , (. .2.4)

object , . XCMD:SALDOC ( ) (. 1)

objects.
H, I.

custom script (Javascript VBscript) (. 2)

custom SBSL (Softone Script), S1 Scripts

B.3.2
command :

, integer
o
o , editor
XCMD:cmd (cmd command)
o command button Decimals 1
( B7).
o command hyperlink Decimals ( B8).

integer virtual table ()


o ,
virtual Table

RUNB ()
o .
:
RUN_cmd=Caption - Hyperlink
RUNB_cmd=Caption - Button
B9

20

B9 RUN & RUNB

B.3.3
1

buttons . 1 button 2
.

FINDOC virtual table (


database designer).


( 9)

virtual table ( ) Editor


XCMD:15102 , XCMD:15103 ( ) ( 11)

commands button Decimals 1 ( B7).

commands hyperlink Decimals ( B8).

tab Script
commands.

H function EXECCOMMAND(cmd) commands (


cmd) . ( B12)
o command 15102 X.EXEC('button:SAVE');
object ( ).
o command 15103
X.EXEC('XCMD:CUSTOMER[AUTOLOCATE='+SALDOC.TRDR+',FORM=
]'); object
(SALDOC.TRDR) .

B10

21

B11

B12

B13 Buttons

22

1
2
button , .

MTRL
virtual table.

Editor ,
XCMD:20001( ) Decimals 1( B14).

Script Javascript,
click Button .
function EXECCOMMAND(cmd)
{
if (cmd==20001)
{
X.WARNING(Button Clicked);
}
}

B14

23

B.4 Editors
Editors Objects,
. Editor $
Boolean ( / ) .

B.4.1 Editor Commands


Editors
, .

Editor Commands

$DT

&

$TIME

( /)

$PASSWORD

Password ( )

$Y

Boolean ( checkbox)

$YN

Boolean Grids ( combobox)

$WEBPAGE

Web Page Link to Internet Browser

$EMAIL

Email Link to Email Program

$PRINTERS

Windows

$DATERANGE

$TIMERANGE

$COLOR

Softone

$ONECOLOR

Windows
=256^2Red * 256^1Green * 256^0Blue

$FILENAME

$MASKEDIT

$RECURRENCE

(Scheduler) Softone

$MEMOEDIT

Grid memo

$LIST:OBJECT

(),
( SOLIST
SOLISTLNS)

$XRUN(D[Par1,Par2,Par3])
Par1=<visible>,
Par2=<exefilename>,
Par3=<file params>


:
( 1 extra
) :
$XRUN(D[0,C:\Xplorer.exe,"/"+CUSEXTRA.VARCHAR01])
server,
softone server.

24

1
B.4.2 Editor Attributes
Editors, , Views Strings( ITEM),
, , . ,
.
.

Editor Attributes

Extra Where

SALDOC(W[COMPANY=:X.SYS.COMPANY])

Login

Filter

MTRMARK(F[CCCMYFIELD;SODTYPE=1;51])

CCCMYFIELD=1 SODTYPE=51

CUSTOMER(W[CCCS1=1],M,R[CODE])
CCC
.
( Editor
)


Selector

SERIES(U[FPRMS;BUSUNITS;=FPRMS;BUSUNITS@]

FPRMS BUSUNITS
FPRMS BUSUNITS . @
,
. @,
.

Link Object (Hyperlink


caption )

CCCMYTABLE(H[CCCMYOBJECT])
CCCMYTABLE Link Object
CCCMYOBJECT.


Where Login Company

SALDOC(W[CCCField in (1,2,3)],C)

String List

$CCCMYSTR (W[1,2,3])
string CCCMYSTR 1,2,3

SALDOC(J[A.FINDOC])

M,R

W[]

25

A.
B.
B.1
B.2
B.3
B.4
B.5
B.6

C.
C.1 Bands
C.2

26

2 -

A.
(Browsers) .
(Runtime) ,
.
button Design
( 1).
.

1
buttons ,
. " "
. . ,
, "" , ( )
.

.
2 object .
, (Tab
) .

27

2 -

B.
.1
tab ( 1) drag-and-drop
.
.
,
SQL, .
Object View (. 5.2).
2.

28

2 -

B.2

,
3.

3
:

.
, , , .

, : ,
.

Editable,
.

, :
o
o .
o (. )
o (.
, ).
4
.

29

2 -

B.3
5 :

:
. , ( :2)

:
,

Auto fit columns size:


( ).

Quick View: ,
. , Quick View
, .
,
.

Force Pivot: Pivot Analysis.

: .
,
3 .

:
.

:
, .
: <Drive letter>:\Documents and Settings\ <Windows user >\Application Data\SoftOne\Temp

Fast entry: .

.

30

2 -

B.4
, ,
( 6).
:

B.5
Tab
( 7). , :

.
.

,
.

(.
),
.

,
.

, Excel,
Excel.

: ,
.

B.6
tab
, .

31

2 -

C.
C.1 Bands
(Bands). tab
. C1
detail .

2 band (detail ) button ( C2).


,
button . C3 (
header). .
tab
drop down list, .
( C4)
C5 .

C1

C2

C3

32

2 -

C4

C5

33

2 -

C.2

2 band (detail) .
query .
:

button * SQL ( C5).

,
query SQL ( C6).

:Object.ID, Object
(.SALDOC) ID (.FINDOC).

button
SQL, tab ( C7).

editors button

(C.1).

C5

C6

C7

34

2 -

2 band
.

sql query C8.

Tab editors
FISCPRD PERIOD , ( C9).

Tab 2 ,
.

C10.

C8

C9

35

2 -

C10

36

3

A.
A.1
A.2
A.3

.
B.1 , B.2
B.3 , B.4
.5 (Fonts), .6
.7 -

C. Word
C.1 , C.2
C.3 , C.4 , C.5 Report Footer
C.6 , C.7 memo

D. Excel
D.1 , D.2

E.
E.1 , E.2
E.3

F. Crystal Reports
F.1 , F.2 Crystal

G. &
G.1 , G.2
37

.
,
( , , , .)
. .

.1
(Image Draft) (
1). ( ) Image Draft.
Draft .
button Dot Matrix ,
button Defaul values ( 2).
Xplorer.cfg
Softone User Profile Directory, button .
Xplorer.cfg
directories.

2
38

.2

Excel: Microsoft Excel ' .


Excel
client .

Word: Microsoft Word ' .


Word
client .

E-mail: format
e-mail (attachment)
"" . e-mail
client .

Spreadsheet File: xls.


Microsoft Excel, .

Document File: doc.


Microsoft Excel, .

Ascii file Windows: (text)


character set Windows 1253.

Ascii file DOS: (text)


character set 437.

Html format: html.


format.

SoftOne MetaFile: format SoftOne (xpr). T


SoftOne Soft1
(' Windows Explorer < >).
, .
Soft1 < > .xpr , (
), (login)
. Soft1 "viewer mode"
.

.3
, :

: Dot Matrix(Draft) Laser, Inkjet (Image).

(Word): MS Word

(Excel): MS Excel

: POS

Crystal Report: Crystal Report.

39

B.
:

Draft: dot matrix .


draft Printer commands . .1

Image: laser, inkjet .


.
printer commands .

B.1
( B1.1):

Header ( ): header
(. , )

():
(. ).

Footer ( ): footer
(. , ).

B1.1

40

B.2
, :

: .
drag and drop( B1).

: () ( B2)

: (
). B3 / .

Printer command: Printer commands . ( B4)

: . " " - "


" ( B5).

B1

B2

B3

B4

B5

41

B.3
( 6):

Zoom In / Out: Zoom

: / .

: , , .

: , , .
button .

: .

: .

: .

background: background ( jpg bmp).

background:

background :

: .
footer .

: . footer.

. :

Save to file: ptf,


Notepad Windows

Load from file: ptf

B6

42

B.4

( ) ( 7).
( ),
, (footer) .
footer ,
.
,
( 8).

Laser: : 85, : 137

Draft: : 66, : 137


:
font image , draft printer
commands .

B7
B8

43

B.5 (Fonts)

Draft
draft printer commands.
printer commands,
. printer command button
( ).
( 9). printer command
. , printer command 12CPI ,
.
draft .

. 12CPI 96 .
,
.

B9
Image
image button .
. , (fonts)
( 5).
Font font .
( )
.
Font
.
font . , font
.
font font
.
: , default (Lucida
Console 8pt).

44

B.6
,
. ( ) button
10.
.
:

,
.


.
10, : MTRLINES.QTY1>10

.
. 11
.

pack .
.

B10

B11

B.7
,
( 11).
.
, $MTRLINES.MTRL;0
$MTRLINES.MTRL;

B11

45

C. Word
C.1
Word Microsoft Word,
.
Word .( C1.1)
, Word button .( C1.2)

C1.1

C1.2

C.2
Word header, footer.
header Word.
Word
{@ @}( C2.1). SoftOne
{@
(hypelink) Table: .
C2.2
(MTRLINES).
@} .

C2.1

C2.2
.

(textbox) Word, .
46

C.3
Word .
hyperlink {@ .
:
TABLE:< >,< 1> AND < 2> OR < 3>,
:

{@ - Edit Hyperlink.

Address
.. 807:
TABLE:MTRLINES,MTRCATEGORY=807, ( C3.1).

, .
,
.


, (.
).
.

AND
OR. C3.2 807
SODTYPE 52( ).

C3.1

C3.2

47

C.4

. :
FIELD:<.> ; n ( n )

(MTRLINES.PRICE) .

- Edit Hyperlink. ( C4.1)

Address, (;)
. ( C4.2)

C4.1

C4.2

48

C.5 Report Footer


(Report Footer)
:

(text box) ( )
.

. ( C5.1)

(hyperlink)
XTR:LP_FOOTER (Address). ( C5.2)

C5.1

C5.2

49

C.6
Word
:

(Insert Shape Rectangle)( C6.1).

(hyperlink) (Address)
IMAGE:$MTRLINES.MTRL;0 ( C6.2)
:. .
, (
C6.3).

C6.1

C6.2

C6.3

50

C.7 memo
word memo ( ),
(enters line breaks), word ,
enter( ). , line break ,
( C7.1)

line break char(13)&char(10) char(11).
REPLACE . REPLACE(REPLACE(A.REMARKS,char(13),''),char(10),char(11)) ( C7.2)
C7.3.

C7.1

C7.2

C7.3

51

7 Extra Tools

D. Excel
D.1
Excel Microsoft Excel,
.
Excel .( D1)
, Excel button .( D2)

D1

D2

D.2
Excel ,
. Word.
Excel
{> <}.

{> (hypelink)
Table: .
D3 (MTRLINES).
<} .

D3

52

7 Extra Tools

E.
E.1

SoftOne.
.( 1)

E1

E.2
.
.

( 2).
button .
,
fonts( Fonts).

E2

E.2
object SoftOne(. )

1.
.

E1

53

F. Crystal Reports

7 Extra Tools

F.1
Crystal Reports Crystal Reports.
crystal pdf file.
Crystal Crystal
Crystal Reports Runtime, SoftOne.
Crystal Report .( F1)
, Crystal button .( F2)

F1
F2
Crystal :

(primary keys)

SoftOne on premise Azure. crystal


Windows Azure command.

SoftOne Crystal
.
Crystal Reports
commands, queries
( ).

F.2 Crystal
report File New Standard report
OLE DB(ADO) Microsoft OLE DB Provider for SQL
Server, SQL Server ( F1). ( F2) credentials
Server .

F1

F2

54

7 Extra Tools

F.2.1

Tab Data
panel
( F3). primary keys( F4).
crystal,
.

F3

F4

(Design)
( F5).

F5

55

7 Extra Tools
SoftOne(. FINDOC) Parameter
field, SoftOne.
iFINDOC FINDOC
( F6).
Parameter field .
FINDOC Number.

F6
Parameter field.
Report Selection Formulas Record
iFindoc FINDOC.FINDOC F7.
SoftOne F3.

F7

56

7 Extra Tools

F.2.2 command

command(
AZure) Add command query.
(Command Parameter),
crystal SoftOne.
F8 query ,
(iFINDOC) FINDOC.

Parameter Field command records, query records
( F9).
SoftOne
.

F8

F9

57

7 Extra Tools

F.3 Crystal SoftOne

Crystal
SoftOne.
, Crystal Reports
.
rpt F10,
Parameter fields section
( F11).

F10

F11

crystal , o
section iFINDOC
SALDOC.FINDOC , F12.

F12
Parameter fields Crystal SoftOne
crystal, crystal
SoftOne,
.

58

G. &

7 Extra Tools

email
pdf .
.
: email
txt .

G.1
( email) Tab
.
, . ( G1)

G1
email :

Formula To: Email. email


email .

Formula CC: . Formula To

Formula BCC: . Formula To

Formula Subject: email. .

Formula Body: email. email. M


html , ( G2).

: .

59

7 Extra Tools

G3.
email
(SALDOC.TRDR_CUSTOMER_EMAIL) ' '
(SALDOC.FINCODE). XBODY,
.

G2

G3

60

7 Extra Tools

G.2
( ) Tab
.
.
Formula for path Formula for file
name.

Formula for path: . quotes


. , ( G4).

Formula for file name: . quotes .


.

G4

61

4
Alerts

A. (Events) &
A.1 Events
A.2 Events
A.3 Events
A.4

B. (Actions)
B.1
B.2
B.3
B.4

62

4 - Alerts

A. (Events) &
Alerts
.
interface,
.
(Events) (Actions),
, ..
. ,
.

.1 Events
. (Event)
(On Change).
1 alert ( ITEM.PRICEW)
(ITEM.PRICER) 0,7.
SETVALUE. .
, .
ITEM.PRICER<10
10.
: AND OR,
.

A1

63

4 - Alerts

A.2 Events
.
events Grids :

(On Insert)

(Before Post, After Post)

(Before Delete, After Delete)


Alert 2 :
(On Insert) (CUSBRANCH)
SETVALUE('CUSBRANCH.SALESMAN',CUSTOMER.SALESMAN) default
.

A2

64

4 - Alerts

.3 Events

. events :

(Before DB insert, After DB Insert)

(Before DB update, After DB Update)

(Before DB post, After DB Post)

(Before DB Delete, After DB Delete)

, (On Locate)

, (On Insert)
Alert ( 3)
, (
4). ,
(SALDOC.TFPRMS<>201).

A3

A4

65

4 - Alerts

.4
.

. , SQL
Text SQL , .
5 504
. ,
504( 6).

A5

A6

66

4 - Alerts

B. (Actions)
Alerts ,
, .
:

B.1
(formula) Text.
, .
( log in )
.
E-mail (formula).
E-mail , SoftOne Remote Server,
.

(event) .

B.2 (Warning Message)


, (formula) (
) Text . .

B.3 (Exception Message)


, (formula) (
) Text . .

B.4
, Alerts .
O , Alerts, :

SQL
SQL (formula) Text.

VB Script
VB script (formula) Text.

Java Script
Java script (formula) Text.

, ,
(formula) Text.

SQL (formula) Text.



. (before)
. (after) .
,
.

67

5
Database Designer Basic

A. Resource Editor
B.
B.1
B.2 ( )

C.
C.1
C.2

D. Detail
D.1 Detail
C.2

E. String Lists

68

5 Database Designer Basic

. Resource Editor
, ,
, database views, virtual tables, objects string lists.
Resource Editor,
Report Tools Tools S1 Designer.
, , objects, database views, strings ,
. Resource Editor Design
, version, . 1
designs, , .
, design ,
Designs
( 2).
Resource Editor, (
, , views) .
version design ( 3).
Resource Editor, login ,
versions designs. ( 4)
Log Program Profile Directory,
button , ( XCO)
( S1_Training_ 20110426-132848.log).
, database views constraints .
: designs Custom
Administration cst . designs cst
(, , ) Solution,
, ,
(Demo), Serial Number password.
Solution copyright ( 5).

A1 Resource Editor

A2 Design Used Projects


69

5 Database Designer Basic

A3 Design

A4

A5 custom
70

5 Database Designer Basic

B.
design .
( PRSN),
.
CCC. 1
.

( 2).

B1

B2

B.1

.
(Editors) .
Editors Editors 1 .

(Editor)

- ( A1)

&

$DT

$TIME

Boolean ( A2)

$Y

71

5 Database Designer Basic

B.2 ( )
, links
.
,

. ,
(Editor). 3 CCCFAMLSTAT
FAMLSTAT .
, .
.
Editor 1 , Editors Attributes.
B4,
, B5.

B3

B4

B5

72

5 Database Designer Basic

C. M
designs
.
CCC,
custom .
,
.

C.1

(selectors).
.
:

.
(;).

Tab .. XP_keycolumn.
XP_keycolumn1_ keycolumn2_keycolumnn.

,
Editor ( C1 & C2).
:
selector ,
.

C1

C2

73

5 Database Designer Basic

C.2

( C2)

/ : $


classic menu.

C2

74

5 Database Designer Basic

D. Detail
grids detail
Object.
,
detail Object .

D.1 Detail
.
ID PRSN(),
header .
PRSN . ( D1)

CCCCOMPSPL (), Editor
. ( C3)

D1

75

5 Database Designer Basic

D.2
detail object

object( ), .

button
( D2)

D2
button
( ).
Panel
( D3). Locate statement
locate( PRSN )

D3

. D4 forced
value( ) login ,
:X.SYS.COMPANY.
.

D4
76

5 Database Designer Basic

PRSN detail ID locate.



header .
header PRSN detail. ( D5)

D5

grid .
grid drag and drop ( D6)

D6

77

5 Database Designer Basic

E. String Lists
String Lists ( / / ), editors
. string list
, , , ,....
String List,
Editor NUM01 Object .

String List Database Designer.

CCCWEEKDAYS String List( E1).

Key , Value
( E1).

NUM01 Editor
$CCCWEEKDAYS ( E2).

E3.

E1

E2

E3

78

6
Database Designer Advanced

A. Database Views
A.1 Database View
A.2 Database Views

B. Objects
B.1 Object
B.2 Object Database View
B.3 Object
B.4 Object
B.5 Object

C. Virtual Tables
C.1 Virtual Table
C.2 Virtual Table

D. Report Objects
D.1 Report Object
D.2 Report Object

79

6 Database Designer Advanced

A. Database Views
Database Views :

Editors ( ,
)

Grids .

Objects ( ).

A.1 Database View

Database View Database Designer

Tab SQL query Create Fields,


.

Database View
Locate Object.

, editors .

, Tab
view .

Database View .

A.2 Database Views


A.2.1 Editor
editor ,

TRDFINADATA.

Database View CCCViewCustomer TRDR.

query :
SELECT A1.TRDR, A1.CODE, A1.NAME, A1.COMPANY, $NVL(A2.LBAL,0) AS LBAL,
$NVL(A2.LTURNOVR,0) AS LTURNOVR, A1.ISPROSP, A1.ISACTIVE FROM TRDR A1,TRDFINDATA A2
WHERE A1.TRDR=A2.TRDR AND A1.COMPANY=A2.COMPANY AND A1.SODTYPE=13
Create Fields ( A1)

E A2.

,
Editor Database View CCCViewCustomer. ( A3)

A4.

A1

A2

80

6 Database Designer Advanced

A3

A4

A.2.2 Grids
. grid
object .

View CCCTRDRSOACTION TRDR.

query :
SELECT A.SOACTION, B.TRDR FROM SOACTION A LEFT OUTER JOIN TRDR B ON A.TRDR=B.TRDR
Create Fields ( A5)

view,
A6.

, SOACTION editor
( A7).

grid .

Grid A8.

A5

A6

81

6 Database Designer Advanced

A7

A8

A.2.3 Objects
database views objects, Database View,
(Objects),
object. Objects.

82

6 Database Designer Advanced

. Objects
Objects (--
). , Alerts .
Object CCC CCC Views.

.1 Object

Object Database Designer ( 1.1)

Object ID ,
object ( ( 1.2).

Ref.Obj.ID. SOSOURCE SODTYPE object ,


object , button .
51 .

object drag and drop Panel Object Properties

Default Form Add Panel.

Panel , drag and


drop, Toolbar (Lock Tree).

Default , Report Add Band.

Primary Band Table


Band Tab Band Fields.

1.1

1.2
83

6 Database Designer Advanced


Parameters,
objects.

Object Parameters Commands

EDITOPTIONS = NOINSERT

EDITOPTIONS = NODELETE

EDITOPTIONS = NOINSERT,NODELETE

&

EDITOPTIONS = READONLY

object

EDITOPTIONS = NOBROWSER

menu button

EDITOPTIONS = ONEROW

object

BROWSERONLY = 1

object ( .)

AUTOLOCATE = xxx

locate id=xxx

READONLY

edit controls object

B.2 Object Database View

Object B1

Object Properties drag and drop Database Views


.

Default object
B1.
: Object, ,
object ,
Database View :
#. , BrowserOnly=1 Parameters.

B.3 Object

Database Designer.

Object .

/
Object. ( 3.1)

3.1
84

6 Database Designer Advanced

B.4 Object

/ : TEMPLATES.ObjectID , ObjectID
Object ( 4.1)

button ,
object ( 4.2)

4.1

4.2

85

6 Database Designer Advanced

B.5 Object
B.5.1 Object CCC
Object CCCVehicles.

Object Database Designer


CCCVEHICLES panel(Object Properties).

Object Name CCCOBJVEHICLES, Object ID 20001 Caption


( B1).

Band Report B2,


CCCVEHICLES Primary Band Table.

Form Panel , B3.


( Memo)

, , object ( B4)

B1

86

B2

6 Database Designer Advanced

B3

B4

87

6 Database Designer Advanced


B.5.2 Object Database View
Object View CCCViewCustomer, A2.

Object CCCOBJCUSTFINDATA, View CCCViewCustomer


Parameters BROWSERONLY=1 ( B5).

object.

Locate object (. object ),


Database View #SODTYPE;TRDR
( B6).

SODTYPE query Tab SQL


( B7).

,
. query
( AND A1.SODTYPE=13) object
TRDR, SODTYPE .
: SODTYPE
( ).
SELECT Database View Database Designer.

B5

B6

88

6 Database Designer Advanced

B7

89

7 Database Designer Advanced

C. Virtual Tables
Virtual Tables
Grids, Report Objects Dialog Objects. Database Views
Virtual Tables Editable ,
Database Views .

C.1 Virtual Table

Virtual Table Database Designer.

, CCC . (
Editors .)

Virtual Table Grid object.

Javascript Virtual Table Grid.

C.2 Virtual Table


Virtual Table , Set
, .

Virtual Table Database Designer

, C1

MTRL Editor (), .

QTY PRICE set


.

Grid
Virtual Table, C2.

Javascript C3, virtual table


set X.SETPROPERTY('MERGECHANGELOG', 'True');
.
: set
Virtual Table, C4, Locate Object Set,
Set Virtual Table .

C1
90

7 Database Designer Advanced

C2

C3

C4

91

7 Database Designer Advanced

D. Report Objects
Report Objects .
, , captions .
(Runtime) .

D.1 Report Object


Report Object 2 Virtual Tables,
.
Softone Script, .
Report Object Database Designer, 2 Virtual
Tables, Dialog( D1) Function,
ReportFunction Function Name( D2).
Report Object Forms , Report
.

D1

D2
function SetBandXProperty CallPublished attributes grid
:

function SetBandXProperty(Params1,Params2,Params3,Params4)
Params1: Band
Params2: Band Caption
Params3: Property Type (1=Caption, 2=Width.Decimals, 4=Visible, 7=HasSums, 8=DebCred, 9=Transfer)
Params4: Property Value

92

7 Database Designer Advanced

D.2 Report Object


, queries
. , Sodtype() ,
, captions .

Virtual Table CCCVTFILTERS, .


, (SODTYPE)
, Editor $SODTYPE(W[13,51])
( D3).

Virtual Table CCCVTDISPLAY,


( D4).

Report Object : CODE=SoScriptCodeClt


SCRIPTSOURCE=SOIMPORT SOIMPORT=SOIMPORT,CODE,SOIMPORT
SCRIPTNAME=CCCMTRLTRDR Parameters. CCCMTRLTRDR
script ( D5)

script ( D6),
SQL queries, .

D3

D4

93

7 Database Designer Advanced

D5

D6

94

7
Extra Tools

A. Auto Login Windows Shortcut


A.1 Windows Shortcut
A.2 XCO
A.3 Extra Commands
A.4
A.5 Command Line Params

B. Maximum (Select Top)


B.1
B.2

C. Menu Jobs
C.1
C.2
C.3
C.4

95

7 Extra Tools

A. Auto Login Windows Shortcut


,
, shortcut Windows.

A.1 Windows Shortcut


Windows Shortcut Xplorer.Exe. shortcut, arget()
XCO( ).
XCO Softone
( 1). C:\Soft1\Xplorer.exe /xco:"C:\Soft1\MyCompany.XCO"

A1

96

7 Extra Tools

A.2 XCO
XCO
, .
[LOGIN]
USERNAME=Admin
PASSWORD=test
COMPANY=2
BRANCH=3

A.3 Extra Commands


XCO commands,
.
HIDEBAR = 1
( - - menu )
HIDEMENU =1
. object
( EXEC=RETAILDOC)
HIDEXPLORER =1 tray Windows. object
Login, ( EXEC=SALDOC)

A.4
( , , )
EXEC= .
EXEC , Fullscreen,

EXEC=RETAILDOC[FORM=RETAIL, AUTOEXEC=2, MAXIMIZE=1, RELJOBS=0, NOTOOLBAR=0]

A.5 Command Line Params



object, EXEC.

Command Line Params

FORM = FormName

FormName

LIST = ListName

ListName

CUSTOM = 0

Toolbar object

RELJOBS = 0

object

AUTOEXEC = 1

AUTOEXEC = 2

object

NOTOOLBAR = 1

Toolbar object

STYLE:MODELESS

Object Tab ( Modal)

FORCEFILTERS =
filedname1:fieldvalue1;
filedname2:fieldvalue2;


: CUSTOMER[LIST=MyList,AUTOEXEC=1, FORCEFILTERS=CODE=000-

FORCEVALUES =
filedname1:fieldvalue1;
filedname2:fieldvalue2;

00*? DISTRICT=]

CUSTOMER[AUTOEXEC=2,FORCEVALUES=TRDCATEGORY=3000?TRDBUSINESS=1]

97

7 Extra Tools

B. Maximum (Select Top)


Select Top .
,
( 200 ) .
SQL SELECT TOP,
TOP. queries ,
Select Top , .

.1
Select Top , ,
ACMD:ACSELECTTOP ( B1).
, ,
Select Top,
( B2).
,
. Select
Top. Sql Monitor.

98

7 Extra Tools

.2
T Select Top (, , Selectors).
Y ( ),
. ,
,
.
SELECTTOP,
( B3).
B4.
, Max .
3 & 4
, B5 sql query,
200(E 200 ).
: SELECTTOP
Select Top, .1.

5
99

7 Extra Tools

C. Menu Jobs
,
( , , ) , , photo .
.
.
(
, photos).

C.1

drag n drop Tab ,
panel .
, :

( C1).

objects .

object( ITEM)


$ ( $DISTRICT).
: , ,
. ( C2)

C1

C2

100

7 Extra Tools

C.2
, ( C3):

: Object , SALDOC

: , $DISTRICT
( , photo)

:
REPORTGEN [LIST=MYREPORT] : MYREPORT

Batch Job: Softone Script


FORMIMPORT,SCRIPTNAME:MYSCRIPT : import script myscript

Web :

: Softone
ACMD:ACSELECTTOP : SELECTTOP

Qlik View: Qlik View

Dll Form: dll


.Mydll.dll;MyMainForm ( MyMainForm Mydll.dll
)

C3

101

7 Extra Tools

C.3 Menu Commands


commands
, Objects , :

Menu Commands

FORM = FormName

FormName

LIST = ListName

ListName

CUSTOM = 0

Toolbar object

RELJOBS = 0

object

AUTOEXEC = 1

AUTOEXEC = 2

object

NOTOOLBAR = 1

Toolbar object

STYLE : MODELESS

Object Tab ( Modal)

PHOTO = MyPhoto

Object prototype

BROWSERONLY = 1

Object

FORCEFILTERS =
filedname1:fieldvalue1;
filedname2:fieldvalue2;

FORCEVALUES =
filedname1:fieldvalue1;
filedname2:fieldvalue2;

CUSTOMER[LIST=MyList,AUTOEXEC=1,FORCEFILTERS=CODE=000-00*?DISTRICT=]

CUSTOMER[AUTOEXEC=2,FORCEVALUES=TRDCATEGORY=3000?TRDBUSINESS=1]

102

7 Extra Tools

C.4
extra commands .

ToolBar

Photo


Toolbar


Toolbar


Toolbar

object
( buttons)

103

A. Remote Server
A.1
A.2 Remote Server
A.3 SMS Email

B. Soft1 Windows Scheduler


B.1 Soft1 Scheduler
B.2 Windows Scheduler Task
B.3 XCO

C. Scheduler
C.1
C.2 Scheduler

D.

104

A. Remote Server
Remote Server (Batch, Reports ,
). , :

-mails

TCP/IP port (future)

(future)

format
(
)

, email .

batch .
: Remote Server Softone
.

A1

105

A.1
Remote Server menu Remote Server
button Add device Database Remote Server
. Database
( A2). Save config
( A3).
Remote Server email, button Add
Device .

A2

A3

106

A.2 Remote Server



Remote Server, .

Remote Server Commands

TYPE

REPORT, BATCH, DIALOG, DESIGN,


ANSWER, REPORTLIST, BATCHLIST,
PRINTERLIST, COMPANYLIST, BRANCHLIST

OBJECT

(. CUSTOMER)

JOBNAME

PHOTO

photo Object

AUTOEXECUTE

0,1

OUTPUT

928, 437, EXCEL, WORD, METAFILE, PDF


File, PrinterName

FILENAME

SENDTO

MAIL, GSM

Email

MAILADDR

Email

GSMNUM

107

A.3 SMS Email


,
Windows(drivers) Remote
Server.
Remote Server, Com port Gsm Port.
Number SMS. ,
, ( 4).
,
.
SMS( 5). button
.1
.
. ,
. , .

Remote Server ( 7).
, ( 8).
Remote Server Alerts
email . ,
Remote Server, Alert email .

A4

A5

108

A6

A7

A8

109

B. Soft1 Windows Scheduler


Scheduler Softone
Windows Scheduler. Notepad,
Soft1 Softone Scheduler, Windows Scheduler
XCO, AutoLogin.
, , ,
log XECUTOR.LOG
C:\Documents and Settings\All Users\Application Data\SoftOne\Log
Windows Scheduler
Scheduler Softone ( B1).

B1

B.1 Soft1 Scheduler


Notepad Softone Scheduler
XCO( B2).
( Entoles.txt) .

JOBNAME ( )
TYPE=BATCH .
OBJECT T path import script
XCOFILENAME T xco ( )

B2

110

B.2 Windows Scheduler Task


Windows :

B.2.1 Windows XP

Windows Scheduler: Control panel Scheduled task

(Task) Windows Scheduler (Add Scheduled Task) ( B3)

Browse Xplorer.exe ( B4)

( B5).

( B6).

check advanced ( B7)

finish B8. Run


Xplorer.exe, /EXECUTE:C:\TEST\ENTOLES.TXT

B3

B4

B5

B6

111

B7

B8

B.2.2 Windows 7

Windows Scheduler: Control panel Administrative Tools Task Scheduler( 9)

pane Actions Create Basic Task.. ( 10)

( B11).

( B12).

( 13)

Browse Xplorer.exe ( B14)

/EXECUTE:C:\TEST\ENTOLES.TXT
( B13)

Task.

B9

B10

112

B11

B12

B13

B14

B15

113

B.3 XCO
XCO .
( B16),
Login ,
Windows Scheduler ( A.2 - Auto Login Windows Shortcut).
XCO Notepad Windows.

B16

114

C. Scheduler
Scheduler (, .),
,
.
Scheduler , Softone,
( C1).
Scheduler, ( C2).

C1

C2

115

C.1
C3, :

: .

: Login User.

: .

: ( C4).

() : .

: , .

. . : .

: .

: ,
.

: , ( C5).

: ( C6).
3
.
: SoftOne object.
(. prototype(photo),
PHOTO={} ).

C3

C4

116

C5

C6

C.2 Scheduler
extra Scheduler.
,
Remote Server.

Scheduler Commands

TYPE

REPORT, BATCH, DIALOG, DESIGN,


ANSWER, REPORTLIST, BATCHLIST,
PRINTERLIST, COMPANYLIST, BRANCHLIST

OBJECT

(. CUSTOMER)

JOBNAME

PHOTO

photo Object

AUTOEXECUTE

0,1

OUTPUT

928, 437, EXCEL, WORD, METAFILE, PDF


File, PrinterName

FILENAME

SENDTO

MAIL, GSM

Email

MAILADDR

Email

GSMNUM

117

D.
To ,
. Scheduler.
- .
D1 ,
( ), test1.
button
( D2).

D1

D2

118

9
Scripts - Javascript

A. Object
A.1 Methods
A.2 Functions

B. Dataset
B.1 Methods
B.2 Functions

C. Events
C.1 Field Events
C.2 Dataset Events
C.3 Object Events
C.4 Sub Form Events
C.5 Line Printing Events

D. Case Studies
Case Study 1
Case Study 2
Case Study 3
Case Study 4
Case Study 5
Case Study 6

119

9 Javascript

A. Object
Objects

A.1 Methods
BATCHEXECUTE
Batch Object
. Case Study 4

BEEP

CANCELEDITS
Object ( ). before
DBPost.

.
function ON_POST()
{
if(X.USER == 901)
X.CANCELEDITS;
X.WARNING('ALL CHANGES WERE CANCELLED!!! ');
}

CLOSEFORM
Object.

X.CLOSEFORM();

CLOSEAPPLICATION
.

X.CLOSEAPPLICATION();

DBDELETE
Object, SoftOne

. Case Study 2

DBLOCATE(KeyData: variant)
Locate Object KeyData.

. Case Study 2

DBINSERT
Object insert mode .

. Case Study 4

DBPOST
Object, SoftOne.

120

9 Javascript
EXCEPTION (Message: string)

Example
X.EXCEPTION(' . !!!');

FIELDCOLOR (FieldName: string, UserColor: integer)


UserColor FieldName

function ON_CUSTOMER_COUNTRY()
{
if(CUSTOMER.COUNTRY == 999)
X.FIELDCOLOR('CUSTOMER.COUNTRY',15000);
else
X.FIELDCOLOR('CUSTOMER.COUNTRY',255);
}

FOCUSFIELD (FieldName: string)


Focus FieldName

focus
function ON_ITELINES_NEW()
{
if( (SALDOC.SERIES == 7003) || (SALDOC.SERIES == 7023) )
X.FOCUSFIELD('ITELINES.SRCHCODE');
else
X.FOCUSFIELD('ITELINES.X_CODE');
}

FREE
object.

1)
2)
3)

. Case Study 1
. Case Study 2
. Case Study 4

INVALIDATEFIELD ()
(repaint) . REFRESH(
) , .

MTRMANFCTR
.
function ON_ITEM_NAME()
{
X.RUNSQL('UPDATE MTRMANFCTR SET ISACTIVE=0 where COMPANY=1 AND MTRMANFCTR=1', null);
X.MTRMANFCTR.REFRESH;
X.INVALIDATEFIELD('ITEM.MTRMANFCTR');
}

INCLUDE (filename)
include (script) filename .

OPENSUBFORM (SubFormName: string)


Sub form SubFormName

sub form Vat Analysis button


function EXECCOMMAND(cmd)
{
if (cmd == 100001)
{
X.OPENSUBFORM('SFVAT');
}
}

121

9 Javascript
QUICKVIEW (ObjectName: string, List: string, Keydata: string)
Quickview List bject ObjectName Keydata
quickview .

1) Quick View BROWSER1 ( )


button
function EXECCOMMAND(cmd)
{
if (cmd == 100001)
X.QUICKVIEW('CUSTOMER','BROWSER1','SALDOC.TRDR');
}
2) Quick View button

function EXECCOMMAND(cmd)
{
if (cmd == 100002)
X.QUICKVIEW('ITEM','','ITELINES.MTRL');
}

PRINTFORM (FormCode: integer, PrinterName: string, FileName: string)


FormCode PrinterName. ,
FileName.
FormCode:
PrinterName: Printer . T: a) ASCII, b) 928, c) 437, d) WORD, e) EXCEL, f) PDF FILE
FileName: , PrinterName ASCII, Word, Excel, .

. Case Study 1

REFRESH ()
memory table.

MTRMANFCTR
.
function ON_ITEM_NAME()
{
X.RUNSQL('UPDATE MTRMANFCTR SET ISACTIVE=0 where COMPANY=1 AND MTRMANFCTR=1', null);
X.MTRMANFCTR.REFRESH;
X.INVALIDATEFIELD('ITEM.MTRMANFCTR');
}

RUNSQL (ASQL: string, AParams: Variant)


ASQL query.
ASQL : SQL Query
AParams : ASQL (:1,:2, )

custom
X.RUNSQL('UPDATE CCCMYTABLE SET CCCMYFIELD=1 WHERE COMPANY='+X.SYS.COMPANY)

SETDECIMALS (FieldName: string, Decimals: integer)


FieldName

SETDOCPRINT (PrintNum, Mode, TemplD: integer, PrinterName, Caption: string)


TempID. Event
ON_DOCPRINT
PrintNum:
Mode: (1=, 2= )
TemplD:
Printer Name:
Caption:

122

9 Javascript
SETFIELDVALUE (FieldName: string, Value: Variant)
Value FieldName

SETPROPERTY ('MERCHANGELOG', 'True or False')


.
.

X.SETPROPERTY('MERGECHANGELOG', 'True');

SETPROPERTY ('FIELD', FieldName', 'CAPTION', 'NewCaption')


FieldName

X.SETPROPERTY('FIELD','SALDOC.TRDR','CAPTION','Cust');.

SETPROPERTY ('FIELD / PANEL / PAGE', Name', 'VISIBLE', 'True or False')


property visible ,

1)
2)
3)

X.SETPROPERTY('FIELD','SALDOC.TRDR','VISIBLE','FALSE');
X.SETPROPERTY('PANEL','PANEL14','VISIBLE','TRUE');
X.SETPROPERTY('PAGE','MYPAGE','VISIBLE','TRUE');

SETFIELDEDITOR (FieldName: string, Editor: String)


Editor

editor MTRDOC.WHOUSE
function ON_SALDOC_SERIES()
{
if( (SALDOC.SERIES == 7001) || (SALDOC.SERIES == 7002) )
X.SETFIELDEDITOR('MTRDOC.WHOUSE','WHOUSE(F[WHOUSE=1001])');
else
X.SETFIELDEDITOR('MTRDOC.WHOUSE','WHOUSE');
}

TOFILE (FileName, AMessage: string)


AMessage FileName. .

WARNING (Message: string)


.

X.WARNING('Hello')

123

9 Javascript

A.2 Functions
ASK (ACaption, AMessage: string): integer
(Yes, No, Cancel) . index button . (6=Yes, 7=No, 2=Cancel)
ACaption: ,
AMessage:

.
function ON_POST()
{
var ans;
ans = X.ASK(' ', ' ? '); // 6=Yes, 7=No, 2=Cancel
if ((ans == 7) || (ans == 2))
{
X.EXCEPTION(' ');
}
else
{
X.WARNING(' Yes');
}
}

CASE (IfCase, ThenCase, ElseCase: variant): Variant;


ThenCase IfCase .
ElseCase

CHECKMODULE(ModuleNum): Boolean;
Module

CONNECTIONSTATUS: string;
. :
0 = csStandalone
1 = csClient
2 = csServer
3 = csSleepClient
4 = csOffLine
5 = csSaaS
6 = csESupport

CREATEOBJ (ObjectName: string,ViewName:string): OBJECT (IDispatch)


Object ObjectName IDispatch interface. object
: CreateObj('ObjectName;View1')

1)
2)
3)
4)

object MySales:
SalObj = X.CreateObj('SALDOC;MySales');
. Case Study 1
. Case Study 2
. Case Study 4

DOUBLE (StrNum: string): real


StrNum .

DIR(Name: string): string


directory Name. Names :
Soft1Data : SoftOne Profile Directory (%AllUsersProfile%\SoftOne)
UserData : User Profile Directory (%UserData%\SoftOne)
EXE
: directory SoftOne
HTML
: root directory Soft1 Web Server
SDK
: directory SDK files SoftOne

124

9 Javascript
FROMFILE(FileName:string): string
FileName.

USERVALIDATE(UserName:string, Password:string): Boolean


UserName Password TRUE .

PASSWORDVALIDATE(StringtoValidate:string, Password:string): Boolean


StringtoValidate, encrypted Password encypted
TRUE FALSE. textbox
SOPASSWORD USERS encrypted.

EVAL (Formula: string): Variant


Formula .
Softone.

1)
2)
3)

DateforSQLQuery = X.EVAL('SQLDATE(SALDOC.TRNDATE)')
EasterDate = X.EVAL('DateToStr(GetPasxaDate('+X.SYS.FISCPRD+'))');
. Case Study 3

EXEC (Command: string, Params: variant): variant;


Command .
1)

Command :
a. . ( module )
b. (. button), function EXECCOMMAND(Javascript, VBscript, dll)

2)

Command button: button toolbar


Toolbar Buttons : Browse, View, New, Copy, Save, Cancel, Delete, Prior, Next, Print.


X.EXEC('button:Save')
3)

Command script: script function .


: X.EXEC('script:Myfunction')

4)

Command xcmd: softone explorer command function .

1:


X.EXEC('XCMD:CUSTOMER')

2:


X.EXEC('XCMD:SALDOC,N["SET FINDOC.TRDR='+CUSTOMER.TRDR+'"]')

3:

import script myscript.


X.EXEC ('XCMD: FormImport, ScriptName: myscript)
5)

Command code: application function (


module ).

. Case Study 6

FINDTABLE (TableName: string): variant


DataSet (IDispatch interface) TableName.

. Case Study 4

FILTERSUM (FieldName, Filter: string): real


FieldName DataSet Filter

function ON_LOCATE()
{ msg = X.FILTERSUM('ITELINES.QTY1','MTRUNIT=1');
X.WARNING(msg);
}

125

9 Javascript
FORM: string

FORMATFLOAT (Value: float, format: string): string


float Value format

FORMATDATE (format: string, Date: TDateTime): string


Date format

TRNDATE sqldate .
str = X.FORMATDATE ('yyyymmdd',SALDOC.TRNDATE)

GETYEARPERIOD (ADate: TDateTime): Variant


Adate

GETLASTERROR: string

. Case Study 1

GETSQLDATASET (ASQL: string, AParams: Variant): TDataSet


the DataSet string ASQL.
ASQL: SQL Query
AParams: ASQL

1)

2)


X.GETSQLDATASET('SELECT ISNULL(QTY1,0) AS YPOL FROM MTRDATA WHERE MTRL='+ITEM.MTRL'+ AND
FISCPRD='+X.FISCPRD, '');
. Case Study 3

ID (TableName: string, code: string): integer


TableName code.

ID 001
X.WARNING(X.ID('CUSTOMER', '001'));

INPUTBOX (Prompt: string, DefaultValue: string): string


.

INPUTQUERY (ACaption: string, APrompt: string, Value:Variant, vPassword:integer) : Variant


.
, OK. Cancel Esc.
ACaption : ,
APrompt : ( ),
Value
: ,
vPassword : (1=Asterisk Text, 0=Normal Text)

1) . Case Study 1
2) . Case Study 4

ISVALIDCONTRACT: boolean

LIST: string

126

9 Javascript
LOCALE: integer
Current Locale ID (LCID)

X.WARNING(X.LOCALE); 1032

LOCALESTRING (value: string): string


Login value. .

LOGINDATE: TDateTime

X.WARNING('LoginDate is ' + X.LOGINDATE);

NEWID: integer
ID . after post event.

ID ( )
function ON_AFTERPOST()
{
if (SALDOC.FINDOC < 0)
FINDOCID = X.NEWID;
else
FINDOCID = SALDOC.FINDOC;
}

PLAY (SoundFileName: string): Boolean


SoundFileName True.

SPELL (Num: Real): string


spelling Num

SQL (ASQL: string, AParams: Variant): string


string ASQL (;)
ASQL: SQL Query
AParams: ASQL Parameters

SUM (FieldName: string): real


value FieldName DataSet

TIME: string
hh:mm

X.WARNING(' : ' + X.TIME);

USER: integer
Login

X.WARNING(' Login : ' + X.SYS.USER);

127

9 Javascript

B. Dataset
Dataset

.1 Methods
APPEND
DataSet Insert Mode.

DELETE
DataSet

DISABLECONTROLS
Window controls DataSet

Window Controls Dataset ITELINES


ITELINES.DISABLECONTROLS();

ENABLECONTROLS
Window controls DataSet

Window Controls Dataset ITELINES


ITELINES.ENABLECONTROLS();

EDIT
DataSet Edit Mode

FIRST
DataSet

. Case Study 2

INSERT
DataSet Insert Mode. .

LAST
DataSet

MERGECHANGELOG
Merges and saves all changes.

X.SETPROPERTY('MERGECHANGELOG', 'True');

NEXT
DataSet

. Case Study 2

128

9 Javascript
POST
DataSet

. Case Study 6

PRIOR
DataSet

REFRESH ()
memory table.

MTRMANFCTR
.
function ON_ITEM_NAME()
{
X.RUNSQL('UPDATE MTRMANFCTR SET ISACTIVE=0 where COMPANY=1 AND MTRMANFCTR=1', null);
X.MTRMANFCTR.REFRESH;
X.INVALIDATEFIELD('ITEM.MTRMANFCTR');
}

SETREADONLY (FieldName: string, Value: True/False)


FieldName Read Only. grid, read only .

CUSTOMER.TRDCATEGORY ReadOnly
CUSTOMER.SETREADONLY('TRDCATEGORY', 'TRUE');

SETDATALINKS ()
/ queries Hyperlinks
dataset( virtual table). datasets queries
, query .
0=, 1=
: X.EXEC('CODE:ModuleIntf.SetDataSetLinks', X.MODULE, modulename, 0);

. Case Study 6

129

.2 Functions

9 Javascript

ACTIVE: boolean
TRUE DataSet

EOF: boolean
TRUE Dataset

. Case Study 2

FIELDBYNAME (FieldName: string): variant


FieldName

FIELDCOUNT: integer
Dataset

FIELDNAME (index: integer): string


index

FIELDS (index: integer): variant


index

FILTER: string
Dataset.

. Case Study 5

FILTERED: boolean
Filtered DataSet.

. Case Study 5

ISNULL (FieldName: string): boolean


True FieldName null

Locate
function ON_LOCATE()
{
testfield( 'ZIP');
testfield( 'CITY');
}
function testfield( fldn )
{
if ( CUSTOMER.ISNULL( fldn ) )
X.WARNING( fldn+' IS NULL!' );
else
X.WARNING( fldn+' IS NOT NULL!' );
}

130

9 Javascript
GETGRAPH (LabelFieldName: string, ValueFieldName: string): string
Chart Image Filename Dataset LabelFieldName ValueFieldName.

GETHTML (FieldNames: string): string


FieldNames HTML format

GETXML (writemetadata: Boolean): string


Dataset XML format

LOCATE (FieldNames: string, FieldValues: variant): boolean


TRUE FieldNames FieldValues.

LOOKUP (KeyFields: string, KeyValues: Variant, ResultFields: string): Variant;


ResultFields FieldNames FieldValues.

RECNO: integer
Dataset.

RECORDCOUNT: integer
Dataset

. Case Study 2

STATE: integer
State Dataset. :

Dataset States
Value

State

Description

Inactive

DataSet closed. Its data is unavailable.

Browse

Dataset open. The default state when a dataset is opened.


Records can be viewed but not changed or inserted.

Edit

Dataset open. Enables the current row to be edited

Insert

Dataset open. Enables a new row to be inserted or appended.


A call to Post inserts a new row

SetKey

Dataset open. Enables GotoKey operations.

CalcFields

Dataset open. Mode when the OnCalcFields event is executed.


Prevents any changes to fields other than calculated fields.

Filter

Dataset open. Indicates that a filter operation is under way. A restricted set of data
can be viewed, and no data can be changed.

NewValue

DataSet open. Indicates that the NewValue property of fields is being fetched for an
event handler that responds to errors in applying cached updates.

OldValue

DataSet open. Indicates that the OldValue property of fields is being fetched for an
event handler that responds to errors in applying cached updates.

CurValue

DataSet open. Indicates that the CurValue property of fields is being fetched for an
event handler that responds to errors in applying cached updates.

10

BlockRead

DataSet open. Data-aware controls are not updated and events are not triggered
when the current record changes.

11

InternalCalc

DataSet open. An OnCalcFields event is underway for calculated values that are
stored with the record. (client datasets only)

12

Opening

DataSet is in the process of opening but has not finished.


This state occurs when the dataset is opened for asynchronous fetching.

131

9 Javascript

C. Events
Events , datasets objects.

C.1 Field Events


events object.

Dataset Events
Event

Description (Occurs)

ON_<TableName>_<FieldName>_VALIDATE


record buffer (Before Change)

ON_<TableName>_<FieldName>

(After
Change)

1) SERIES
function ON_SALDOC_SERIES_VALIDATE() //Before Change of field Series
{
X.WARNING('BEFORE CHANGE');
}
2) SERIES
function ON_SALDOC_SERIES() //On Change of field Series
{
X.WARNING('AFTER CHANGE');
}

C.2 Dataset Events


events datasets.

Dataset Events
Event

Description (Occurs)

ON_<TableName>_POST

post .

post.

ON_<TableName>_AFTERPOST

post .

ON_<TableName>_NEW

.
default .

ON_<TableName>_BEFOREDELETE

ON_<TableName>_AFTERDELETE


50%.
function ON_ITELINES_POST()
{
if(ITELINES.DISC1PRC > 0.5)
X.EXCEPTION(' 50%.');
}
2) .
1)

132

9 Javascript

C.3 Object Events


events object.

Object Events
Event

Description (Occurs)

ON_CREATE

Create Object

ON_DESTROY

Destroy Object

ON_CANCEL

Before Cancel

ON_LOCATE

After Locate

ON_POST

Before Post

ON_AFTERPOST

After Post

ON_DELETE

Before Delete

ON_AFTERDELETE

After Delete

ON_INSERT

After Insert

ON_DOCPRINT

Before print document form

ON_OPENREPORT

Before execute report

EXECCOMMAND(cmd)

Command execute( button)

ON_RESTOREEVENTS

Conversion of object()

ON_EDIT

Record edit / change (Edit object)

EXECCOMMAND(cmd) cmd = -1

Before copy from buffer

EXECCOMMAND(cmd) cmd = -2

After copy from buffer

C.3 Sub Form Events


events pop up .

Sub Form Events


Event

Description (Occurs)

ON_<Sub form name>_SHOW

pop up .

ON_<Sub form name>_ACCEPT

button OK pop up

ON_<Sub form name>_CANCEL

button Cancel pop up

133

9 Javascript

C.4 Line Printing Events


events Bands Report Objects.

Line Printing Events


Event

Description (Occurs)

ON_BANDSTART(BandName)

Start Band Print.

ON_BANDEND(BandName)

End Band Print

ON_BANDLINE(BandName)

Line Band Print

ON_BANDTRANSFER(BandName)

Print Transfer Values

function ON_OPENREPORT()
{
X.SETPARAM('STARTPAGEFIELD', USR.FPAGEL);
return true;
}
function ON_BANDTRANSFER(BandName)
{
X.SETTRANSFERVALUE(BandName,'MYACNTRN.X1', 1);
X.SETTRANSFERVALUE(BandName,'MYACNTRN.P1', 2);
return true;
}
function ON_BANDEND(BandName)
{
if ( BandName=='MYACNTRN' )
{
X.SETPRINTPARAM(BandName, "CAPTIONFIELDNAME", "THECAPTION");
ds=X.GETENDBANDDATASET('MYACNTRN');
ds.APPEND;
for (i=0; i<ds.FIELDCOUNT; i++) ds.FIELDS(i)= i;
ds.THECAPTION = "MyCaption";
ds.POST;
}
return true;
}
function ON_BANDLINE(BandName)
{
if ( BandName=='MYACNTRN' )
{
MYACNTRN.EDIT;
if ( MYACNTRN.FINCODE == 'Sum' )
{
MYACNTRN.FINCODE = 'NewName';
}
}
return true;
}

134

9 Javascript

D. Case Studies
Case Study 1
.
button .
function EXECCOMMAND(cmd) //Controls Commands
{
if(cmd == 100001) // ID button
{
iCopies = X.INPUTQUERY(' ',' : ',ITELINES.QTY1,0);
// dialog box,
. .
if(iCopies!='') //Not Cancel
{
var ObjItem;
i = 1;
ObjItem = X.Createobj('ITEM'); // Object
try
{
ObjItem.DBLocate(ITELINES.MTRL); //Locate ITEM ID
while(i <= iCopies)
{
ObjItem.PRINTFORM(100,'HP LaserJet 4100 Series PCL','');
i++;
}
}
catch(e)
{
X.WARNING(ObjItem.GETLASTERROR);
}
finally
{
ObjItem.FREE;
ObjItem = null;
}
}
}
}

D1.1

135

9 Javascript

D1.2 button

D1.3 button Print Labels

136

9 Javascript

Case Study 2
,
button .
function EXECCOMMAND(cmd) //Controls Commands
{
if(cmd == 100002) // ID button
{
DelConvertedDocs();
}
}
function DelConvertedDocs() //--- .
{
//Query
strqry='SELECT DISTINCT FINDOC AS FINDOC FROM MTRLINES WHERE SOSOURCE=1351
+ AND COMPANY='+X.SYS.COMPANY+' AND FINDOCS=' + SALDOC.FINDOC;
ds=X.GETSQLDATASET(strqry,null);
ds.FIRST;
while(!ds.EOF()) //Loop
{
ObjConv = X.CreateObj('SALDOC'); // Object
try
{
ObjConv.DBLocate(ds.FINDOC); //Locate
ObjConv.DBDelete; //
}
finally
{
ObjConv.FREE;
ObjConv =null;
}
ds.NEXT;
}
}

137

9 Javascript

Case Study 3
compressed SOVAL (FPRMS) ()
(ACNMSK).
function GetACNMSK()
{
dsFPRMS = X.GETSQLDATASET('SELECT SOVAL FROM FPRMS WHERE SOSOURCE=1351 '
+' AND COMPANY='+X.SYS.COMPANY+' AND FPRMS='+SALDOC.FPRMS,'');
strSOVAL = dsFPRMS.SOVAL;
sVal = X.EVAL('GETQUERYVALUE('+String.fromCharCode(39)+strSOVAL+String.fromCharCode(39)+',0,25)');
// 1 26 SOVAL ( 0,25)
X.WARNING(' : ' + sVal);
}

D3.1 (FPRMS),

D3.2 SQL Query SOVAL Field( ACNMSK)

138

9 Javascript

Case Study 4
button .
,
.
function ChangePrices()
{
ObjIteCost = X.CreateObj('IteCalcMarkUp');
try
{
ObjIteCost.DBInsert;
TblIteCost = ObjIteCost.FindTable('MTRDIALOG');
TblIteCost.Edit;
TblIteCost.FROMCODE = ITEM.CODE;
TblIteCost.TOCODE = ITEM.CODE;
iSODOUBLE1 = X.INPUTQUERY(' ', '',0,0);
if(iSODOUBLE1!='') //Not Cancel
{
TblIteCost.SODTYPE = 1; //
TblIteCost.SODOUBLE1 = iSODOUBLE1;
ObjIteCost.BatchExecute;
X.EXEC('button:Save'); //
X.WARNING(' ! ');
}
}
finally
{
ObjIteCost.FREE;
ObjIteCost = null;
}
}

D4.1 Button ( Virtual Table)

D4.2 Javascript

139

9 Javascript

D4.3 , Button

D4.4 ( 20%)

140

9 Javascript

Case Study 5
, (V1) virtual
. .
function ON_SALDOC_V1()
{
vFilterString='{ITELINES.MTRL_ITEM_NAME}='+String.fromCharCode(39)+SALDOC.V1+String.fromCharCode(39)
if(SALDOC.V1=='')
{
ITELINES.FILTERED = 0; // ITELINES
}
else
{
ITELINES.FILTER = '(' + vFilterString + ')'; //
ITELINES.FILTERED = 1; //
}
}
function ON_POST()
{
ITELINES.FILTERED = 0; // ITELINES
}
function ON_CANCEL()
{
ITELINES.FILTERED = 0; // ITELINES
}

D5.1

141

9 Javascript

D5.2

D5.3 FINDOC

142

Case Study 6
, ,
. pop up window
(.40%)
button.

virtual table database designer CCCITEMPURDOC


D6.1.

button grid virtual table ( D6.2).

script
pop up window grid.

D6.3
var vIncrement; //
function ON_MYPOPUPFORM_SHOW()
{
vIncrement = 40;
GetItemPurdoc(); //
CCCVTITEMPUR.FIRST;
}
function InsPRCtoMTRLINES(vTable) //Insert Price to Mtrlines
{
ITELINES.PRICE = vTable.PRICE;
}
function GetItemPurdoc() // 20
{
strqry='SELECT TOP 20 A2.TRDR, A1.MTRLINES, A1.FINDOC,'
+' (A1.LINEVAL/case A1.QTY1 when 0 then 1 else A1.QTY1 end) AS LINEVAL, A1.QTY1'
+' FROM MTRLINES A1 INNER JOIN FINDOC A2 ON A1.FINDOC=A2.FINDOC AND A1.COMPANY=A2.COMPANY'
+' WHERE '
+' A2.SOSOURCE=1251 '
+' AND A2.TFPRMS IN(102,103) '
+' AND A1.COMPANY='+X.SYS.COMPANY
+' AND A1.MTRL='+ITELINES.MTRL
+' ORDER BY A2.TRNDATE DESC';
ds=X.GETSQLDATASET(strqry,'');
CCCVTITEMPUR.FIRST;
while (!CCCVTITEMPUR.EOF()) {
CCCVTITEMPUR.DELETE; }
if (ds.RECORDCOUNT>0)
{
try {
dsLink = X.EXEC('CODE:ModuleIntf.GetDataSet', X.MODULE, 'CCCVTITEMPUR');
X.EXEC('CODE:ModuleIntf.SetDataSetLinks', X.MODULE, dsLink, 0); //Disables Links - Sends at the end 1 query for all
while (!ds.EOF())
{
CCCVTITEMPUR.APPEND;
CCCVTITEMPUR.TRDR = ds.TRDR;
CCCVTITEMPUR.FINDOC
= ds.FINDOC;
CCCVTITEMPUR.MTRLINES = ds.MTRLINES;
CCCVTITEMPUR.PRICESTART = ds.LINEVAL;
CCCVTITEMPUR.INCREMENT = vIncrement;
CCCVTITEMPUR.QTY
= ds.QTY1;
CCCVTITEMPUR.POST;
ds.NEXT;
}
}
finally {
X.EXEC('CODE:ModuleIntf.SetDataSetLinks', X.MODULE, dsLink, 1); //Disables Links - Sends at the end 1 query for all
}
}
}
function ON_CCCVTITEMPUR_INCREMENT() // () - .
{
CCCVTITEMPUR.PRICE = CCCVTITEMPUR.PRICESTART + (CCCVTITEMPUR.PRICESTART *
CCCVTITEMPUR.Increment /100);
}

143

D6.1 Virtual Table

D6.2 Virtual Table

D6.3 Pop up Window

144

Case Study 7
Google maps.

.

.
/,
.

D7.1 :
o Button Calc Trans Cost , Google Maps.
virtual RUNB_700001=Calc Trans Cost
o Distance(Km), Duration(min) Google Maps.
SALDOC.NUM01 SALDOC.NUM02
o Cost/Km , Total Cost Distance.
SALDOC.NUM03 SALDOC.NUM04
o Button Add to Expenses, Total Cost.
virtual RUNB_700002=Add to Expenses


Form . ( D7.2)

script (Javascript) D7.3

button Calc Trans Cost :


o : .
. ,
.
o : (MTRDOC.SHIPPINGADDS) TK(MTRDOC.SHPZIP) .

Distance(km) Duration(min) Google Maps


Cost/km 0,10 50 0,20
. Total Cost Distance Cost/km.

button Add to Expenses 101


( ) Total Cost.

D7.1
145

D7.2

146

function distancematrix(from, to) // google maps


{
this.from
= from || "";
this.to
= to || "";
this.onSuccess = function(){};
this.onNoReply = function(){};
this.onError = function(){};
this.request = null;
var me
= this,
url;
this.execute =
function()
{
from = encodeURIComponent(from);
to = encodeURIComponent(to);
url = 'http://maps.googleapis.com/maps/api/distancematrix/json?sensor=false&origins='
+ from + '&destinations=' + to;
this.request = new ActiveXObject("MSXML2.XMLHTTP");
this.request.open('GET', url, true);
this.request.onreadystatechange=
function()
{
if (me.request.readyState==4)
{
if (me.request.status==200)
me.onSuccess(me.request.responseText);
else
me.onNoReply();
}
}
try
{
this.request.send();
}
catch(e)
{
this.onError(e);
}
}
}
function GetDirections()
{
var distance=0;
var duration=0;
str = ' SELECT ADDRESS, ZIP, (SELECT NAME FROM COUNTRY '
+'
WHERE COUNTRY=(SELECT COUNTRY FROM BRANCH '
+'
WHERE COMPANY='+SALDOC.COMPANY
+'
AND BRANCH='+SALDOC.BRANCH+') ) AS COUNTRY'
+' FROM WHOUSE WHERE COMPANY='+SALDOC.COMPANY+' AND WHOUSE='+MTRDOC.WHOUSE;
ds = X.GETSQLDATASET(str,null);
var from = ds.ADDRESS + ',' + ds.ZIP + ',' + ds.COUNTRY,
to = MTRDOC.SHIPPINGADDR + ',' + MTRDOC.SHPZIP + ',' + ds.COUNTRY;
dm = new distancematrix(from,to);
dm.onSuccess =
function(reply)
{
eval('var data = ' + reply);
if (data.status === 'OK')
distance = roundNumber((data.rows[0].elements[0].distance.value / 1000),2);
duration = roundNumber((data.rows[0].elements[0].duration.value / 60),2);
SALDOC.NUM01 = distance;
SALDOC.NUM02 = duration;
};
dm.execute();
}
function roundNumber(num, dec)
{
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
return result;
}

147

function EXECCOMMAND(cmd)
{
if (cmd=='700001')
{
GetDirections();
}
if (cmd=='700002')
{
X.FOCUSFIELD('SALDOC.NUM01');
AddtoExpenses();
}
}
function AddtoExpenses()
{
if(SALDOC.NUM04 != '')
{
EXPANAL.APPEND;
EXPANAL.EXPN = 101;
EXPANAL.EXPVAL = SALDOC.NUM04;
EXPANAL.POST;
}
}
function ON_SALDOC_NUM01()
{
CalculateTransCost();
}
function CalculateTransCost()
{
if(SALDOC.NUM01 <= 50)
{ SALDOC.NUM03 = 0.10; }
else
{ SALDOC.NUM03 = 0.20; }
SALDOC.NUM04 = SALDOC.NUM03 * SALDOC.NUM01;
}

D7.3 Javascript

D7.4

148

10
Data Flow

A.
B.
B.1
B.2
.3

C.
D. Script
E. Case Studies
Case Study 1
Case Study 2
Case Study 3
Case Study 4
Case Study 5

149

10 Data Flow

A.

SoftOne.
SoftOne script,
.
TRNFTRC.
1 ,
draft entries. object
SODRAFT (1) object CUSTOMER (2),
(3). Draft entry
(4) .
browser draft entries ( 2).
3 browser draft entries.

A1

150

10 Data Flow

.

. .

.1
object, , SALDOC
( ). .
object,
object (Tab ).
Tab ,
( 1).
( 3).
Tab object
( 2). Object
object . object query .

151

10 Data Flow

.2

object, ,
PRDDOC( ). .

.
.
Tab ( 4).
(Tab)
.
.
.
.
(. IF, RUNSQL ) ( 5).

.
,
( 6).

152

10 Data Flow

153

10 Data Flow

.3
Tab ,
.
checkbox
, checkbox
.
( 7).
. .
( )
( 8).
checkbox .
,
. login
.

154

10 Data Flow

C.

. C1
( SALDOC).

( C2).
scripts
pop up .
scripts( C3).
: ,
, .

C1

C2

C3
155

10 Data Flow

D. Script
scripts , X.EVAL.
:

SOTRANSFORM.RULEBYID (CSTINFO: integer, IDs: STRING)


CSTINFO: ID
IDs: IDs (,) (?)

SOTRANSFORM.RULEBYNAME (CSTNAME:STRING, IDs: STRING)


CSTNAME: H
IDs: IDs (,) (?)

SOTRANSFORM.MODELBYID (CSTINFO: integer, IDs: STRING)


CSTINFO: ID
IDs: IDs (,) (?)

SOTRANSFORM.MODELBYNAME (CSTNAME:STRING, IDs: STRING)


CSTINFO:
IDs: IDs (,) (?)

3118, draft entry ,


script draft entries. button 10001( D1)
( D2).
function EXECCOMMAND(cmd)
{
if(cmd == 10001)
Transfertocustomer();
}
function Transfertocustomer()
{
var A;
if(SODRAFT.SODRAFT>0)
A = X.EVAL('SOTRANSFORM.RULEBYID(3118,'+SODRAFT.SODRAFT+')');
}

D1

D2

156

10 Data Flow

E. Case Studies
Case Study 1
.
object SALDOC.
( .1.1).
Tab . (
), (Data type), (Display size), Editor
( .1.2).
object PURDOC.
(. )
(Tab) .
( .1.3).
,
.

E1.1

E1.2

E1.3

157

10 Data Flow

Case Study 2
login .
SALDOC.

( 2.1). ( 2.2)
( 2.3) .
ID. sql RUNSQL.
.
Tab ,
1001, 1000 ( 2.4).

( 2.5).

E2.1

E2.2

E2.3

E2.4

E2.5
158

10 Data Flow

Case Study 3

.
. 1 .
object ITEM.
MTRL.MTRSUP ( 3.1).

( 3.2).
object PURDOC ( )
. ,
( ).
3.3, if .

E3.1

E3.2

E3.3

159

10 Data Flow

,
,
.
, (
3.4) ( 3.5).
3.6 9 , 3 .
4 (3 1
) ( 3.7).

E3.4

E3.5

E3.6

E3.7

160

10 Data Flow

Case Study 4
.
. .
object PRDDOC( ) object PURDOC.
( 4.1)
.

( 4.2).
( 4.2).

4.4.

E4.1

E4.2

E4.3

E4.4
161

10 Data Flow

Case Study 5
Tasks
Tasks.
object PRJC( ) object SOTASK.
default values ,
.
Tasks() 5.1.
( 5.2) Tasks (
5.3).

E5.1

E5.2

E5.3
162

10 Data Flow

Case Study 6
backorder.
.
object SALDOC,
. (
1. 7. .
Tab ()
()
.
backorder( )
CONVMODE( ) 1 ( 6.1).
Tab
FINDOCS MTRLINESS, FINDOC MTRLINES ( 6.2).

E6.1

E6.2

163

11
SoftOne Batch Script Language (SBSL)

A.
B. SBSL
C.
D. Main Code
E. / SBSL Script
F. SBSL Internal Functions
G. SoftOne Libaries
H. Case Studies
Case Study 1
Case Study 2
Case Study 3

164

11 SoftOne Scripts

A.
H S1 Batch Script Language (SBSL)
SoftOne data import .

batch .
developers batch
import.
SBSL ( SQL )
SQL
. business oriented
( RDBMS) .
SBSL batch SoftOne. H
batch ()
.
SBSL SoftOne (S1 scripts)
imp ( text).
SBSL :

/ object SoftOne

ASCII

SQL, Oracle, Access

XXF object SoftOne

objects (. )
:

script
batch .

A1

165

11 SoftOne Scripts

B. SBSL
.1 Case Insensitive
(. var, function) .
case insensitive.

B.2 Semicolons
SBSL semicolon (;).

B.3 Comments
//.
:
// my comments

B.4 Variables
var, variant.
:
var x, y, temp;

B.5 Libraries References


softone custom scripts include.
:
include 'PILib';
include 'ModuleIntf';
include 'SysRequest';
include 'myscript';

B.6 Execute Functions


functions .
:
1)

SoftOne function

x = RAISEEXCEPTION(Stopped!!!);
2)

custom function

function PrintOnScreen(fMess) // function PrintOnScreen


{
x=SendResponse(ReplaceStr(fMess,'...',''), 'ImpTable.vMess');
}
// function PrintOnScreen
x = PrintOnScreen(' ');

166

11 SoftOne Scripts

C. (interface)
script .
(
).
, , panels grids block
Form, sections.
Form {
[TABLES]

[CACHETABLES]

[PANELS]

[STRINGS]

C.1 Section TABLES


o section .
(
script) caption , .
TableName = ;;;;TableCaption;3;0
(Ex C.1)
[TABLES]
HeaderTable1 = ;;;;MyHeader;3;0
GridTable1
= ;;;;MyGrid;3;0
CacheTable1 = ;;;;MyCache;3;0

C.1.1 Table Fields


sections TableName
section Tables. .
FieldName = DataType; DisplaySize; Require; Visible; ReadOnly; Caption; Editor; TblEditor; Forced; Default
DataType : 1=String, 2=Smallint, 3=Integer, 4=Word, 6=Float, 11=DateTime, 16=Memo
DisplaySize :
Require
: 0= , 1=
Visible
: 0= , 1=
ReadOnly : 0= , 1=
Caption
:
Editor
: Editor ( Editors)
Forced
:
Default
:

1)

/ Caption .

[HeaderTable1]
vImpOk=2;15;1;1;0; ;$Y;;;1
2)

, 7021.

3)

login date.

4)

memo .

5)

vSalSeries=3;30;1;1;0; ;SERIES(F[SOSOURCE=1351]);;;7021
vDate=11;25;1;1;0; / ;;;;:X.SYS.LOGINDATE
vImpMess=16;64000;0;1;1; ...;;;;

vItemCategory=2;25;1;1;0; ;ITECATEGORY;;;

167

11 SoftOne Scripts

6)

7)

. .

vItemCode=1;25;0;1;0; ;ITEM(M,R[CODE]);;;
vFile=1;256;1;1;0;Pick File;$Filename;;;

8)

button, .

vButton=2;15;0;1;0;Button;XCMD:DAYRATES;;;
9)

vWhouse=1;15;0;1;0;..;WHOUSE(W[EXISTS(SELECT 1 FROM BRANCH B WHERE B.COMPANY=


A.COMPANY AND B.BRANCH=:ImpTable.vBranch AND CHARINDEX(:ImpTable.vFilter+CAST(A.WHOUSE
AS VARCHAR)+:ImpTable.vFilter,:ImpTable.vFilter+B.WHOUSES+:ImpTable.vFilter)>0)],Z,M,R[WHOUSE]);

10) .

vMtrunit1Init=1;40;0;1;1;.. ;MTRUNIT(U[vMtrunit1=MTRUNIT@]);;
vMtrunit1=1;40;0;1;1;..1 ;MTRUNIT;;

C.1.2 Browser Selected Records


scripts ,
SELRECS section [TABLES].
vWhere=16;80000;0;1;0; Browser;;;&SELRECS;&SELRECS
sql queries
$REMOVEQUOTES(:$ImpTable.vWhere)
sql query ids header object
. .
(Ex C.2)
X sql query

Form {
[TABLES]
ImpTable=;;;;;3;0
[ImpTable]
vWhere=16;80000;0;1;0; Browser;;;&SELRECS;&SELRECS
}
Connect Xplorer SoftoneCon

{
connect();
sDoc = SELECT FINDOC.FINDOC,....
FROM FINDOC
WHERE ( $REMOVEQUOTES(:$ImpTable.vWhere) )
}

168

11 SoftOne Scripts

C.2 Section CACHETABLES


section , script
queries SQL
editors
.
(Ex C.3)
cachetable editor where.
sodtype ( ) 2 .

Form {
[TABLES]
ImpTable=;;;;;3;0
TblPAYMENT=;;;;TblPAYMENT;3;0
[ImpTable]
vSodtype=2;25;1;1;0; SODTYPE;$SODTYPE(W[12,13]);;
vPayment=2;25;1;1;0;;PAYMENT(W[SODTYPE=:ImpTable.vSodtype AND
COMPANY=:X.SYS.COMPANY]) ;;;
[TblPAYMENT]
PAYMENT=2;5;0;1;0;;;;;
NAME=1;30;0;1;0;;;;;
COMPANY=2;5;0;0;0;;;;;
SODTYPE=2;5;0;0;0;;;;;
[CACHETABLES]
TblPAYMENT=SELECT PAYMENT,NAME,COMPANY,SODTYPE AS SODTYPE FROM PAYMENT
[PANELS]
PANEL11=0;;0;50
[PANEL11]
ImpTable.vSodtype
ImpTable.vPayment
}

C1

169

11 SoftOne Scripts

C.3 Section PANELS


section panels panels script,
:
PanelName = PanelType; Caption; Level; Info
PanelType
Caption
Level
Info

:
:
:
:

panel: 0=Area, 1=Page, 2=Grid, 4=Memo


panel
panel ( panels pages split panels panels)
panel: , G=, N=Bottom Line, H= (. 50, 50, 0, 0, G10, N, H20)

: Panel Page (), Info F


(. PANEL11 = 1;'Page1-Areas';0;F )
(Ex C.4)
3 pages. 1 2 , 2
2 split (50-50) 3 grid.

Form {
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vImpOk =2;15;1;1;0; ;$Y;;0;
vSeries =3;30;1;1;0; ;SERIES(F[SOSOURCE=1351]);;;7021
vJOB = 2;15;1;1;0;;JOB;;;&JOB
vDate =11;25;1;1;0;;;;;:X.SYS.LOGINDATE
vFile = 1;4000;1;1;0;;$Filename;;;C:\MyFiles
vIteCat =2;25;1;1;0; ;ITECATEGORY;;;
vMess = 16;64000;0;1;0;;;;;
[PANELS]
PANEL11 = 1;'Page1-Areas';0;F
PANEL112 = 0;'Area1';1;50,50,0,0,N,H10
PANEL113 = 0;'Area2';1; 40,0,0,0,H20
PANEL114 = 4;'Memo';1;H70
PANEL12 = 1;'Page2-AreaSplit';0;F
PANEL121 = 0;'AreaSplit';1;50,50,0,0
PANEL1211 = 0;'AreaSplit 1';2;100,0,0,0,H100
PANEL1212 = 0;'AreaSplit 2';2;100,0,0,0,H100
PANEL13 = 1;'Page3-Grid';0;F
PANEL131 = 2;'Grid';1;
[PANEL112]
ImpTable.vImpOk
ImpTable.vFile
[PANEL113]
ImpTable.vSeries
[PANEL114]
ImpTable.vMess
[PANEL1211]
ImpTable.vIteCat
[PANEL1212]
ImpTable.vDate
[STRINGS]
JOB=JOB
[JOB]
1=
2=
}

170

11 SoftOne Scripts

C2, C3 C4.

C2

C3

C4

171

11 SoftOne Scripts

C.4 Section STRINGS


section strings string lists
string list . string lists
Database Designer. H string list .
StringName = StringName
(Ex C.5)
3 string lists. string list
([SQLOrder]) sql query .

Form {
[TABLES]
ImpTable
[ImpTable]
vMyString1
vJob
vSQLOrder

= ;;;;Master;3;0
= 2;15;1;1;0;StringList1;MyString1;;;&MyString1
= 2;15;1;1;0;StringList2;Job;;;&Job
= 1;15;1;1;0;StringList3;SQLOrder;;;&SQLOrder

[STRINGS]
MyString1 = MyString1
Job
= Job
SQLOrder = SQLOrder
[MyString1]
1=
2=
3=
4=
[Job]
1= (1 )
2=
[SQLOrder]
T.MTRMANFCTR =
ML.LINENUM =
[PANELS]
PANEL1 = 0;'Area1';0;30,30,30,0,N,H100
[PANEL1]
ImpTable.vMyString1
ImpTable.vJob
ImpTable.vSQLOrder
}
Connect Xplorer SoftoneCon {
connect();
sIteLines = SELECT ML.MTRL,ISNULL(ML.QTY1,0), ML.PRICE,
FROM MTRLINES ML, MTRL MT
WHERE ML.FINDOC = :$sDoc.FINDOC AND ML.MTRL = MT.MTRL
ORDER BY $REMOVEQUOTES(:$ImpTable.vOrder);
}

C5
172

11 SoftOne Scripts

C.5 Section FIELDEXEC


section [FIELDEXEC] script
. string list section,
.
if
, . grid
panels.
(Ex C.6)
/ panels o caption
. : script ClientImport.

Form
{
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vImpOk = 2;15 ;0;1;0; ;$Y;;0;
vJob = 2;10 ;0;1;0;;JOB;;;
vSeries = 1;1024;0;1;0; ;#SERIES(W[SOSOURCE=1251 AND (TFPRMS=102 OR
TFPRMS=103 OR TFPRMS=151 OR TFPRMS=152)]);;;
vItemCode=1;25;0;1;0; ;ITEM(M,R[CODE]);;;
vFile=1;256;0;1;0;Pick File;$Filename;;;
[FIELDEXEC]
ImpTable.vJob
[PANELS]
PANEL1=0;;0;100,G10
PANEL2=0;;0;100,G10
PANEL3=0;;0;100,G10
PANEL4=0; ;0;100,G10
PANEL5=0; ;0;100,G10
[PANEL1]
ImpTable.vJob
[PANEL2]
ImpTable.vSeries
[PANEL3]
ImpTable.vItemCode
[PANEL4]
ImpTable.vFile
[PANEL5]
ImpTable.vImpOk
[STRINGS]
JOB=JOB
[JOB]
1=
2=
}
include 'ModuleIntf';
Connect Xplorer Export
{
connect();
}
{
Var x, vImpTable, vJob, vImpOk;
vImpTable=GetDataSet(xModule,'ImpTable');
vJob =GetFieldValue(vImpTable,'vJob');
173

11 SoftOne Scripts
vImpOk =GetFieldValue(vImpTable,'vImpOk');
if (vJob=1) // - Panel
{
x=SetProperty(xModule, 'PANEL', 'USR_PANEL2', 'VISIBLE', 'TRUE');
x=SetProperty(xModule, 'PANEL', 'USR_PANEL3', 'VISIBLE', 'FALSE');
x=SetProperty(xModule, 'PANEL', 'USR_PANEL4', 'VISIBLE', 'TRUE');
x=SetProperty(xModule, 'FIELD', 'ImpTable.vFile', 'CAPTION', ' ');
}
else if (vJob=2)
{
x=SetProperty(xModule, 'PANEL', 'USR_PANEL3', 'VISIBLE', 'TRUE');
x=SetProperty(xModule, 'PANEL', 'USR_PANEL2', 'VISIBLE', 'FALSE');
x=SetProperty(xModule, 'PANEL', 'USR_PANEL4', 'VISIBLE', 'TRUE');
x=SetProperty(xModule, 'FIELD', 'ImpTable.vFile', 'CAPTION', ' ');
}
if (vImpOk=1) //
{
if (vJob=1)
{
x=RAISEEXCEPTION('JOB=1');
}
else
{
x=RAISEEXCEPTION('JOB=2');
}
}
}

C6

C7
174

11 SoftOne Scripts

D. Main Code
D.1 Converters & Functions
Converter
. Converter :
Converter funcname (TableName:String, Variables:String, FieldName:String)
:
1)

Converter

Converter GetCompanyName (COMPANY, 'COMPANY', NAME);


GetCompanyName(1);
2)

Converter id

Converter ConvItem (MTRL, 'COMPANY;SODTYPE=51;CODE', MTRL);


MTRL = ConvItem(:X.SYS.COMPANY,'100-01');
3)

Converter id

Converter ConvCustomer (TRDR, 'COMPANY;SODTYPE=13;CODE', TRDR);


TRDR = ConvCustomer(:X.SYS.COMPANY,sSalDoc.CUSTOMERCODE);

script .
:
1)

function ShowMessage(fMess)
{
x = CallPublished('SysRequest.ExecuteXScript', VarArray(XModule, 1, 'function RUN() {
X.WARNING('+#39+VarToStr(fMess)+#39+');}', 'RUN', 4));
}

x = ShowMessage(' ...');
2)

memo (vMess)

function PrintOnScreen(fMess)
{
x = SendResponse(ReplaceStr(fMess,'...',''), 'ImpTable.vMess');
}

x = PrintOnScreen('!'+#13+#10);
3)

string ascii
delimited

function AddStrLine(mystr, icount)


{
if (mystr = null)
{
mystr = '';
}
mystr = Copy(mystr,1, icount);
return (mystr + Space(icount - Len(mystr)));
}

vTextWrite = CallPublished('PILib.CreateText', :ImpTable.vPath3);


vLine = '';
vLine = vLine + AddStrLine('',1);
vLine = vLine + AddStrLine('', 3);
vLine = vLine + AddStrLine('23,00', 5);
vLine = vLine + AddStrLine('', 3);
vLine = vLine + AddStrLine(FormatFloat('0.000',HEADER.VAT3), 5);
vLine = vLine + AddStrLine(VarToStr(HEADER.VATVAL3), 14);
x = CallPublished('PILib.WriteLine', VarArray(vTextWrite, vLine, 2));
175

4)

sql

11 SoftOne Scripts

function getSQLDate(v1,conName)
{
var sql,x, newd;
newd = FormatSqlText(conName, ':1',v1);
sql = 'Select convert(VARCHAR(8), '+newd+' , 112)';
x = GetQueryResults(conName, sql, '');
return x;
}

newvMesDate = VarToStr(getSQLDate(:ImpTable.vMesDate,'S1Con'));

D.2 Connections
connections SoftOne .
connection (. ConS1), script.
Connection Types
SoftOne
login SoftOne ( )

Connect Xplorer ConS1{


connect();
dsfin = Select * from findoc where. ; }
SQL SERVER
SQL

Connect DBDriver DocData


{
//
Driver, DBase, ServerDB, User, Password, DataBaseName
connect ('XADODrv.bpl', 'MSSQL', 'SERVER\MYSRV', 'sa', '123456', 'DBNAME');
}
ORACLE
ORACLE

Connect DBDriver SRSData


{
//
Driver, DBase, ServerDB, User, Password, DataBaseName
connect( 'XADODrv.bpl', 'oracle', 'SERVER', 'srvn1', ' srvn1', ' srvn1' );
ds1 = select * from MYTABLE where WHOUSE=1;
}
ODBC
ODBC (Excel, Access, .) connection string

Connect DBDriver XlsData


{
connect( 'XADODrv.bpl', 'CUSTOM', 'Provider=MSDASQL.1;Persist Security Info=False;Data
Source=XlsMtrl' );
XlsMtrl = select * from [mtrl$];
}

176

11 SoftOne Scripts

D.3 Variables
script .
Var , .
var .
Var
vTot, vLabelText, vRow, vRowCancel, UserResp, x;

D.4
script
SoftOne script.
include. SoftOne
.
:
include 'PILib';
include 'ModuleIntf';
include 'SysRequest';
script(. MyLib)
.
:
include 'MyLib';

177

11 SoftOne Scripts

E. / SBSL Script
scripts SBSL :

FORMIMPORT : script server client

CLIENTIMPORT : script client


( server) client / server .
clientimport script
(, , , file system).
script(.
) clientimport.
script CLIENTIMPORT2,
client, (
).

E.1 Menu
SBSL script BatchJob
FORMIMPORT CLIENTIMPORT ( 1).
FORMIMPORT,SCRIPTNAME:NameOfScript
CLIENTIMPORT,SCRIPTNAME:NameOfScript
script NameOfScript
( 2).

178

11 SoftOne Scripts

E.2 Browser
SBSL script browser object ,
OBJINFOS.CFG .

.2.1 OBJINFOS.CFG
OBJINFOS.CFG
client. scripts pop up
( 4).
OBJINFOS.CFG( 3) objects scripts
, .
[OBJECTNAME_BRMENU]
1; = FORMIMPORT,SCRIPTNAME:nameofscript
1; = CLIENTIMPORT,SCRIPTNAME:nameofscript

179

11 SoftOne Scripts
.2.2
SBSL script ( E5)
( script)
.
script OBJINFOS.CFG
,
( 6).
(Ex E.1)
script test1
...

Report Tools.

object

grid Import script script


test1 FORMIMPORT,SCRIPTNAME:test1 ( 5)


6.

180

11 SoftOne Scripts

.3
SBSL script script EXEC.
X.EXEC ('XCMD: FormImport, ScriptName: NameOfScript)
(Ex E.2)
script UpdateItem button locate.

button (100001).

script 7.

SBSL script 8. id
vItemId default value :ITEM.MTRL.
.

181

E.4

11 SoftOne Scripts

H SBSL
script. &
( &JOB).
script
( FORMIMPORT,SCRIPTNAME:myscript,JOB:1).
(Ex E.3)
script Ex C.3 SODTYPE . script
cache1.

script Ex C.3 vSodtype.


( &mySodtype) default value,
script.
Form {
[TABLES]
ImpTable=;;;;;3;0
TblPAYMENT=;;;;TblPAYMENT;3;0
[ImpTable]
vSodtype=2;25;1;1;0; SODTYPE;$SODTYPE(W[12,13]);;&mySodtype
vPayment=2;25;1;1;0;;PAYMENT(W[SODTYPE=:ImpTable.vSodtype AND
COMPANY=:X.SYS.COMPANY]) ;;;
[TblPAYMENT]
PAYMENT=2;5;0;1;0;;;;;
NAME=1;30;0;1;0;;;;;
COMPANY=2;5;0;0;0;;;;;
SODTYPE=2;5;0;0;0;;;;;
[CACHETABLES]
TblPAYMENT=SELECT PAYMENT,NAME,COMPANY,SODTYPE AS SODTYPE FROM PAYMENT
[PANELS]
PANEL11=0;;0;50
[PANEL11]
ImpTable.vSodtype
ImpTable.vPayment
}
script script Sodtype=13 :
X.EXEC ('XCMD: FormImport, ScriptName:cache1,mySodtype:13)
script SODTYPE(. 12) :
FormImport, ScriptName:cache1,mySodtype:12

182

11 SoftOne Scripts

F. SBSL Internal Functions


SBSL script.

Abs(Number: numeric): numeric;


Number.

AddMessage();
link .

hyperlink
Object='SALDOC';
vMess=' <' + sDoc.FINCODE + '$' + vObject + ';' + VarToStr(sDoc.FINDOC) +
'> <' + vFincode + '$' + vObject + ';' + VarToStr(resultnum) + '> !' + #10;
x=AddMessage(vMess);

CallPublished(FunctionName:string, Params:VarArray);
FuntionName .
Libraries .

1. ( query)
PAYMENT.
. Case Study 1
2. Excel (vExcelFile) sql
CCCIMPORTEXCEL( Evaluate Library SysRequest).
x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),
'ExcelImport('+#39+:ImpTable.vExcelFile+#39+','+#39+'CCCIMPORTEXCEL'+#39+',1,2)', 2));

CharToOem (var:char);
character OEM.

x = CallPublished('PILib.WriteLine', VarArray(vFileWrite, CharToOEM(vLine), 2));

Commit(Connectionstring:string);
commit connentionstring. FORMIMPORT

x = Commit('SoftOne');

Copy(Source:string, Start:integer, Count:integer);


Source Start Count .

DateOfDateTime(DateTime:TDateTime);
TDATETIME.

TRNDATE = DateOfDateTime(sSalDoc.TRNDATE);

DayOfDate(DateTime:TDateTime): integer;
.

fTmp = :X.SYS.SYSDATE;
if (DayOfDate(fTmp) < 10) fSystemDate = fSystemDate + '0';
fSystemDate = fSystemDate + VarToStr(DayOfDate(fTmp)) + '_';

DayOfWeek(): integer;
index. (1=, 2=,, 7=)

DaysinMonth(DateTime:TDateTime): integer;
.

183

11 SoftOne Scripts
Delay(Time:Integer);
msec.

2 sec
x = Delay(2*1000);

deQuotedStr (text:string);
text .

EncodeTime(Hours:integer, Minutes:integer, sec:integer, ms:integer): TDateTime;


TDateTime Hours, minutes, seconds, milliseconds.

ExecPrg(File:string, Params:string);
filename params

vExecPrg = '/c';
x = ExecPrg('c:\windows\system32\cmd.exe', vExecPrg);

ExecSQL(Connection:string, Query:string, Params:VarArray);


Query Connection.

x = ExecSql('SoftOne', 'Update TEMP Set Updated = 1 Where CUSCODE=' + QuotedStr(sCustomer.CUSTOMERCODE) , Null);

FormatSQLText(Connection:string, StringToBeFormatted:string, Params:VarArray);


SQL string .

SQL vDateL
FormatSqlText('SoftOne', ':1 ', :ImpTable.vDateL)

GetIndexVar (Array:VarArray, index:integer);


index Array. (zerobased Array)

if (VarArrayDimCount(fVar) > 0) fVar = GetIndexVar(fVar,0);

GetTimeHour(DateTime:TDateTime): integer;
DateTime.

fTmp = :X.SYS.SYSDATE;
if (GetTimeHour(fTmp) < 10) fSystemDate = fSystemDate + '0';

GetTimeMin(DateTime:TDateTime): integer;
DateTime.

fTmp = :X.SYS.SYSDATE;
if (GetTimeMin(fTmp) < 10) fSystemDate = fSystemDate + '0';
fSystemDate = fSystemDate + VarToStr(GetTimeMin(Time)) + '_';

GetTimeSec(DateTime:TDateTime): integer;
seconds DateTime.

fTmp = :X.SYS.SYSDATE;
if (GetTimeSec(fTmp) < 10) fSystemDate = fSystemDate + '0';
fSystemDate = fSystemDate + VarToStr(GetTimeSec(Time));

GetTimems(DateTime:TDateTime): integer;
ms DateTime.

184

11 SoftOne Scripts
GetQueryDataset(Datasetname:string, ConnectionString:string, Query:string, Params:VarArray);
querystring grid interface dataset script.
query order grid/dataset.
CLIENTIMPORT

x=GetQueryDataSet('TblSID', 'Export', 'SELECT FR, FV FROM SID', null);

GetQueryResults(Connection:string, Query:string, Params:VarArray);


Query. record Array.

fVat = GetQueryResults('SoftOne', 'SELECT TOP 1 VAT FROM VAT WHERE ISACTIVE=1', null);

GetWhere(XModule, ParamWhere:string, Param3(0=and,1=where));


sql sqlwhere ParamWhere and where
Param3. To sqlwhere runtime
.

vFilters = GetWhere(XModule, 'F.TRNDATE=:ImpTable.vDateL;:ImpTable.vDateH' +#13+#10+


'F.SERIES=#:ImpTable.vSeries', 0);

GrConvert(text:string): string;
text converted .

FINCODE = GrConvert(Trim(sSalDoc.FINCODE));

ImportModule(Module:string);
pointer Module import.

Excel (vExcelFile) sql CCCIMPORTEXCEL


x=CallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),
'ExcelImport('+#39+:ImpTable.vExcelFile+#39+','+#39+'CCCIMPORTEXCEL'+#39+',1,2)', 2));

Len(text:string): integer;
text.

ModuleCommand (Module, S1code, Params:String);


SoftOne command S1code Params.

x=CallPublished('ProgLibIntf.ModuleCommand',VarArray(vModule,1032,VartoStr(resultnum),3));

MonthOfDate(DateTime:TDateTime): integer;
.

Now():TDateTime;
.

OemToChar (var:oem);
oem char.

QuotedStr (text:string);
text .

x = GetQueryResults('SoftOne','SELECT COUNT(*) FROM TRDR WHERE COMPANY='+VarToStr(:X.SYS.COMPANY)+' AND


SODTYPE=13 AND CODE='+QuotedStr(VarToStr(fAdd)+VarToStr(fCounter)), null);

Pos(Source:string, text:string): integer;


text source.

185

11 SoftOne Scripts
RaiseException(Message:string);
Message .

flag vImpOK
if (:ImpTable.vImpOk=0) x = RaiseException(' !!!');

RefreshMemoryTable(MemoryTable:string);
refresh memory Table pointer.

Ds = RefreshMemoryTable('SERIES');

ReplaceStr (text:string, String1:string, String2:string);


text String1 String2.

vWhere = ReplaceStr(vWhere, 'AND AND', 'AND');

RollBack(Connectionstring:string);
rollback connentionstring. FORMIMPORT

x = RollBack('SoftOne');

SafeCallPublished(FunctionName:string, Params:VarArray);
FuntionName . error exception .
ImportError.
Libraries .

Excel (vExcelFile) sql CCCIMPORTEXCEL


x = SafeCallPublished('SysRequest.Evaluate', VarArray(ImportModule('Imp'),
'ExcelImport('+#39+:ImpTable.vExcelFile+#39+','+#39+'CCCIMPORTEXCEL'+#39+',1,2)', 2));

SafeExecSQL(Connection:string, Query:string, Params:VarArray);


Query. exception .

SID ( ).
x = SafeExecSQL('Export', 'TRUNCATE TABLE SID', Null);

SendResponse(Values, Fields:string);
Interface script.

Interface: (CurRec), (CanRec), (TotRec), (LabelText)


x = SendResponse( vRow, vRowCancel, vTot, vLabelText,
'RESULTS.CURREC;RESULTS.CANREC;RESULTS.TOTREC;RESULTS.LABELTEXT');

Space (num:integer);
num .

vLine= VarToStr(Exp.TRNDATE) + Space(1);

StartTrans(Connectionstring:string);
Transaction connectionstring. FORMIMPORT

x = StartTrans('SoftOne');

StrToDate(text:string):TDateTime;
string Date format.

StrToFloat (var:string);
float string.

186

11 SoftOne Scripts
StrToInt (var:string);
string integer.

TableExists(Connection:string,TableName:string);
TableName True False

SID
if (TableExists('Export', 'SID') = 'False') x = ExecSQL('Export', 'CREATE TABLE SID (FR INT, FV INT)', Null);

Trim(text:string): string;
text.

Time():TDateTime;
.

VarArray(Var1, Var2, , Varn, n);


array variants, variants.

VarArrayDimCount (Array:VarArray);
Array.

if (VarArrayDimCount(fVar)>0) fVar=GetIndexVar(fVar,0);

VarArrayHighBound(Array:VarArray, Dim:integer);
Array Dim.

vCaptions = VarArray(VarArray('', '', '',3),


VarArray('Code',
'Name',
'Category' , 3), 2);

vCaptions = GetIndexVar(vCaptions,1); // 1 VarArray


vSQLCaptions = VarArray('cCODE', 'cNAME', 'cMTRCATEGORY', 3)
while (i <= VarArrayHighBound(vCaptions,1)) // i vCaptions(3 )
{
vLang=vLang+', '+QuotedStr(GetIndexVar(vCaptions,i))+' AS '+GetIndexVar(vSQLCaptions,i);
i=i+1;
}

VarToStr(Param:Variant);
Param string.

vRow = 100;
vMess=vMess + ' ' + VarToStr(vRow) + ' ...'

XModule();
pointer module.

XSupport();
pointer Connection.

YearOfDate(DateTime:TDateTime): integer;
.

fTmp = :X.SYS.SYSDATE;
fSystemDate = VarToStr(YearOfDate(fTmp));

187

11 SoftOne Scripts

G. SoftOne Libraries
Libraries SoftOne
SBSL script. Callpublished
include.

G.1 ModuleIntf
G.1.1 Object Methods Functions
CreateSupport(XCOName, UserName, Password, Company, Branch, LoginDate);
Connection Soft1. Login .
3 Login .

fCompany=:X.SYS.COMPANY;
fDefaultBranch=CallPublished('ProgLibIntf.GetDefaultBranch', VarArray(:X.SYS.USER, fCompany, 2));
CreateSupport ('', '', '', fCompany, fDefaultBranch, :X.SYS.LOGINDATE);

DestroySupport(SupportHandle);
Connection Soft1. CreateSupport.

x=DestroySupport(fSupport);

CreateSupportModule(SupportHandle, ModuleName);
Module Connection CreateSupport.

Module=CreateSupportModule(vSupport,'FiFoFinpayTerms');

GetTextValue(TextName);
Resources pre

vData=GetTextValue('CheckImportData');

OpenSubForm(ModuleHandle, SubFormName, OpenMode);


sub form SubFormName. modal.
OpenMode :
1: event before show form, -1: OK, -2: Cancel.

CreateModule(ModuleName);
Module Connection

fModule=CreateModule('CUSTOMER,WARNINGS:OFF');

DestroyModule(ModuleHandle);
Module CreateModule CreateSupportModule

x=DestroyModule(fModule);

InsertModule(ModuleHandle);
Module Insert

x=InsertModule(fModule);

188

11 SoftOne Scripts
LocateModule(ModuleHandle, RecordID);
RecordID Locate.

fFinDoc = 11999;
x=LocateModule(fModule, fFinDoc);

DeleteModule(ModuleHandle);
Module Locate

x = DeleteModule(fModule);

PostModule(ModuleHandle);
Module

x = PostModule(fModule)

GetParentModule(ModuleHandle);
ParentModule Module

GetChildModule(ModuleHandle, Name);
ChildModule Module

GetDataSet(ModuleHandle, Name);
Dataset Module

fCustomer=GetDataSet(fModule,'CUSTOMER');

GetParamValue(ModuleHandle, PrmName);
PrmName

vFile = GetParamValue(XModule,'FILE');

SetParamValue(ModuleHandle, PrmName, PrmValue);


Module

fDataSet=GetDataSet(vModule,'SERIES');
x=SetFieldValue(fDataSet,'CSERIES', fCSeries);

189

11 SoftOne Scripts
G.1.2 DataSet Field Functions
CreateDataSet(ModuleHandle, Name);
Dataset Name

DataSetLocate(DataSetHandle, FieldNames, FieldValues);


True DataSet

vFISCPRD = RefreshMemoryTable('FISCPRD');
x = DataSetLocate(vFISCPRD, 'FISCPRD', GetFieldValue(vQUESTIONS,'FISCPRD'));

DataSetEdit(DataSetHandle);
DataSet Edit

fCustomer=GetDataSet(fModule,'CUSTOMER');
x=DataSetEdit(fCustomer);

DataSetInsert(DataSetHandle);
Insert DataSet

fIteLines = GetDataSet(fModule,'ITELINES');
x = DataSetInsert(fIteLines);

DataSetAppend(DataSetHandle);
Append DataSet

fModule=CreateModule('SALDOC,WARNINGS:OFF');
x = InsertModule(fModule);
fSalDoc = GetDataSet(fModule,'SALDOC');
fIteLines = GetDataSet(fModule,'ITELINES');
x = DataSetAppend(fIteLines);

DataSetEof(DataSetHandle);
DataSet End-Of-File

Ds=GetSQLDataSet(0, 'SELECT FINDOC FROM FINDOC WHERE..', null)


while (DataSetEof(Ds)=0)
{

x = DataSetNext(Ds);
}

DataSetPrior(DataSetHandle);
DataSet

vMyTable = GetDataSet(XModule,'CCCMYTABLE');
x=DataSetPrior(vMyTable);

DataSetFirst(DataSetHandle);
DataSet

x=DataSetFirst(vMyTable);

DataSetLast(DataSetHandle);
DataSet

x=DataSetLast(vMyTable);

190

11 SoftOne Scripts
DataSetNext(DataSetHandle);
DataSet

x=DataSetNext(vMyTable);

DataSetPost(DataSetHandle);
DataSet

x=DataSetPost(vMyTable);

DataSetDelete(DataSetHandle);
DataSet

x=DataSetDelete(vMyTable);

DataSetState(DataSetHandle);
state dataset (. ).

DataSetSetFilter(DataSetHandle, Filterstring);
Filterstring Dataset

SetDataSetLinks(ModuleHandle, DataSetHandle, Value);


/ queries Hyperlinks dataset.
Javascript.

fModule=CreateModule('INST,WARNINGS:OFF');
x = InsertModule(fModule);
fDsInst = GetDataSet(fModule,'INST');
x = SetDataSetLinks(fModule, fDsInst, 0);

GetFieldType(DataSetHandle, FieldName);

(1=String, 2=Smallint, 3=Integer, 4=Word, 6=Float, 11=DateTime, 16=Memo)

fField = DataSetFieldName(fDs, fFieldsCounter);


fFieldType = GetFieldType(fDs, fField);

GetFieldValue(DataSetHandle, FieldName);
DataSet

SetFieldValue(DataSetHandle, FieldName, FieldValue);


DataSet

SetValueFromFile(DataSetHandle, FieldName, FileName);


Blob DataSet.

DataSetRecordCount(DataSetHandle);
DataSet

DataSetOpen(DataSetHandle);
DataSet Open mode

DataSetClose(DataSetHandle);
close DataSet

DataSetRecNo(DataSetHandle);
DataSet

191

11 SoftOne Scripts
DataSetSetRecNo(DataSetHandle,RecNo);
DataSet

DataSetDisableControls(DataSetHandle);
Windows Controls DataSet

DataSetEnableControls(DataSetHandle);
Windows Controls DataSet

DataSetFieldCount(DataSetHandle);
Dataset

DataSetFieldName(DataSetHandle, FieldIndex);
Dataset index

GetSQLDataSet(SupportHandle, SQLStatement, Params);


dataset SQLStatement.

Ds=GetSQLDataSet(0, 'SELECT DISTINCT CODE, NAME FROM CCCMYTABLE ORDER BY CODE, NAME', null);

GetBand(ModuleHandle, BandName);
Band Module

SetBandXProperty(BandHandle, FieldName, PropIndex, PropValue);


Band

GetBandXProperty(BandHandle, FieldName, PropIndex);


Band

AddBandField(BandHandle, FieldName);
Band

DeleteBandField(BandHandle, FieldName);
Band

GetField(DataSetHandle, FieldName);
DataSet

AddFieldToDataSet(DataSetHandle, FieldName, Type, Size, Label);


dataset

ResolveEditors(ModuleHandle, TableName);
SetFieldEditor Editor

SetFieldEditor(ModuleHandle, FieldName, Editor, ClearOld);


Editor

SetProperty(ModuleHandle, ControlType, ControlName, Property, Value);


Module Module 1,2,3(. PANEL,PANELNAME,VISIBLE,TRUE)

DebugString(text:string) published 'ModuleIntf.DebugString';


EventLog text.

192

11 SoftOne Scripts

G.2 PiLib
G.2.1 General File Functions
AsciiImport(Params1,Params2);
Param1 = , Param2 =
ascii file

CreateDir(Directory:string);
Directory.

x = CallPublished('PILib.CreateDir', Directory);

DeleteFile(FileName:string);
FileName.

vFileDel = DeleteFile(FileName);

DirectoryExists(Directory:string);
Directory True False.

x = CallPublished('PILib.DirectoryExists', Directory);

FileExists(FileName:string);
.

if (FileExists(FileName)='True')
{
.
}

ForceDirectories(Path:string);
Path . .

x = CallPublished('PILib.ForceDirectories', Path);

RemoveDir(Directory:string);
Directory .

x = CallPublished('PILib.RemoveDir', Directory);

193

11 SoftOne Scripts
G.2.2 Text File Functions
CreateText(FileName:string);
FileName.

vFileName='.\folder1 '+'Myname.log';
vFile=CreateText(vFileName);

OpenText(FileName:string);
FileName Read Write.

vFile=OpenText(:ImpTable.vFile);

ReadLine(FileName:string);
FileName.

while (Eof(vFile)=0)
{
vLine=ReadLine(vFile);
}

WriteLine(FileName:string, Text:string);
Text FileName.

x=WriteLine(vFile, ' ');

EOF(FileName:string);
FileName End Of File.

while (Eof(vFile)=0)
{
vLine=ReadLine(vFile);
}

CloseText(FileName:string);
FileName, OpenText.

x=CloseText(vFile);

WriteTextToFile(FileName:string, Text:string);
Text FileName, .

x = WriteTextToFile(vPath+'PL-'+VarToStr(sDoc.FINDOC)+'.TXT', vText);

ReadTextFromFile(FileName:string);
FileName .

x = ReadTextFromFile(vFile);

ReadFile(FileName:string);
FileName Stream.

x = ReadFile(vFile);

AnsiToUTF8(Text:string);
Text ANSI UTF8.

x = AnsiToUtf8(vLine);

194

11 SoftOne Scripts
UTF8ToAnsi (Text:string);
Text UTF8 ANSI.

x = Utf8ToAnsi(vLine);

GetSupportQueryResults(Support:Handle, Query:string, Params:VarArray);


Query Handle . record Array.

GetSupportQueryData(Support:Handle, Query:string, Params:VarArray);


Query Handle compressed .
| |~

FindFirst(FileName:string, Attr:integer);
attributes.
File Attributes: faReadOnly = 1, faHidden = 2, faSysFile = 4, faVolumeID = 8, faDirectory = 16, faArchive = 32, faAnyFile = 63

vFind = FindFirst ('C:\*.*', 63);

FindNext(FileHandle:FindFirstResult);
attributes.

vFind = FindNext(vFind);

FindClose (FileHandle:FindFirstResult);
FindFirst, FindNext.

x = FindClose(vFind);

TStringsCreate();
Name=Value (. CODE=Test1).
string lists .

TStringsClear(TStringsHandle);
.

TStringsGetValue(TStringsHandle, Name:string);
record Name.

TStringsSetValue(TStringsHandle, Name:string, Value:Variant);


Value record Name .

TStringsGetItem(TStringsHandle, Index:integer);
record record Index.

TStringsSetItem(TStringsHandle, Index:integer, Value:Variant);


Value record Index.

TStringsAdd(TStringsHandle, DataStr:string);
DataStr: Value = Name
DateStr record .

TStringsCount(TStringsHandle);
records .

GetXStrings(Name);
Name.

195

11 SoftOne Scripts

G.3 SysRequest
RequestEdit(Command:string);
command. client.

Evaluate(Module, Formula:string);
.

ShowInTheMap(Params1, Params2, Params3);


Params1: , Params2: , Params3: Web Form .
web form .

ShowHtmlMessageForm(TStringsHandle);
Web form . script.

fText = 'mytext';
fStrings = TStringsCreate;
x = TStringsSetText(fStrings, fText);
x = ShowHtmlMessageForm( fStrings);

ShowWebPage(URL:string);
HTML .

x = ShowWebPage('www.softone.gr')

PrintForm(Module, Form, Printer, FileName);


Form Printer Module. FileName.

vModule=CallPublished('ModuleIntf.CreateModule','SALDOC,WARNINGS:OFF');
vPrinter=CallPublished('ModuleIntf.GetFieldValue',VarArray(vImptable,'vPrinter',2));
x = PrintForm((vModule,1000,vPrinter,'');

GetTableFieldNames(TableName);
TableName.

ExecuteXScript(Module, Language, File, Function);


Language: 1 = Javascript, VBScript
Function script File.

1. function . function File.


x=ExecuteXScript(XModule, 1, 'function RUN() { X.WARNING('+#39+' !'+#39+');}', 'RUN');
2. function Convert script myfunctions
vScript=GetQueryResults('SoftOne', 'SELECT SOIMPORT FROM SOIMPORT WHERE CODE='+QuotedStr('myfunctions'),Null);
x= ExecuteXScript(vModule, 1, vScript, 'Convert');

DestroyObject(ObjecHandle);
object.

x = DestroyObject( fStrings);

196

11 SoftOne Scripts
GetTableMoreInfo(TableName);
text .

GetTableFieldInfos(TableName);
text .

GetXplorerDataDir(Params);
directory softone.

GetXplorerLogDir(Params);
directory log files.

GetXplorerTempDir(Params);
directory temp files.

GetXplorerOffLineDir(Params);
directory offline files.

197

11 SoftOne Scripts

. Case Studies
Case Study 1
( Sql statement)
PAYMENT. interface.
form
{
}
connect Xplorer xData
{
connect();
findoc=select findoc, sosource, fincode, trndate, sumamnt
from findoc
where company=:$X.SYS.COMPANY
and fiscprd=:$X.SYS.FISCPRD
and sosource = 1351
and fprms in (7061,7062,7063,7064,7066,7067,7071,7072,7073,7076,7082,7127,7128)
--and trndate = '20020110'
order by 1 desc;
}
var
x, Module, DsFinDoc, Dslines, vFieldVal, vFieldVal1, Count;
{
Module = CallPublished('ModuleIntf.CreateModule','SALDOC,WARNINGS:OFF,NOMESSAGES:1');
DsFinDoc = CallPublished('ModuleIntf.GetDataSet',VarArray(Module,'FINDOC',2));
Count = 0;
fetch FinDoc
{
Count = Count + 1;
}
x = SendResponse(Count, 'RESULTS.TOTREC');
Count = 0;
fetch findoc
{
x = CallPublished('ModuleIntf.LocateModule',VarArray(Module,findoc.findoc,2));
Count = Count + 1;
x = SendResponse(Count, 'RESULTS.CURREC');
x = CallPublished('ModuleIntf.DataSetEdit',DsFinDoc);
x = CallPublished('ModuleIntf.SetFieldValue',VarArray(DsFinDoc, 'PAYMENT', 1000, 3));
x = CallPublished('ModuleIntf.PostModule', Module );
}
x=SendResponse(Count, 'RESULTS.CURREC');
}

198

11 SoftOne Scripts

Case Study 2
Excel temp .
Excel (Line, , , , , ..)
Form {
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vMess=16;64000;0;1;1; ...;;;;
vExcelFile=1;4000;1;1;0;Excel file;$Filename;;'C:\test1.xlsx';
vDBTable=1;64;1;0;0;TableName;;;;CCCEXCEL_CUST
vDrop=2;15;1;0;0;Drop and Create Table;$Y;;1;
vInsRec=2;15;1;0;0;Insert Records;$Y;;1;
[PANELS]
PANEL10=0;;0;50,G10,N
PANEL13=4; ...;0;100,G10,N,L3
[PANEL10]
ImpTable.vExcelFile
ImpTable.vDBTable
ImpTable.vDrop
ImpTable.vInsRec
[PANEL13]
ImpTable.vMess
}
Import ImpCUSTOMER(sCus,sCusBranch) into 'CUSTOMER,WARNINGS:OFF,NOMESSAGES:1'
{
CUSTOMER sCus {
CODE
= '*';
NAME
= sCus.cNAME;
AFM
= sCus.cAFM;
CITY
= sCus.cCITY;
ADDRESS
= sCus.cADDRESS;
}
CUSBRANCH sCusBranch {
CODE = sCusBranch.bCODE+'.01';
NAME = sCusBranch.bNAME;
ISCENTER = sCusBranch.bISCENTER;
ADDRESS = sCusBranch.bADDRESS;
CITY = sCusBranch.bCITY;
}
}
Connect Xplorer SoftOne {
connect();
sCus = SELECT
[Line]
AS Line
,[] AS cNAME
,[]
AS cAFM
,[]
AS cCITY
,[] AS cADDRESS
FROM $REMOVEQUOTES(:$ImpTable.vDBTable);
sCusBranch = SELECT
[.] AS bCODE
,[] AS bNAME
,1
AS bISCENTER
,[] AS bADDRESS
,[]
AS bCITY
FROM $REMOVEQUOTES(:$ImpTable.vDBTable)
WHERE [Line] = :$sCus.Line ;
}

199

11 SoftOne Scripts
var
Jstr, objExcel, vscript, x, vTot, vRow, vRowCancel, vMess, Ds, vError, str1, vModule, ifin, vTask, vSalesman, newCusCode,
vMessErrors, vMessTask, vCurRec;
{
vError=0;
vMess='';
if (vError=0)
{
vMess = '============== =============='+#13+#10+#13+#10;
x=SendResponse( vTot, vRow, vRowCancel, ' ...', vMess,
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT;ImpTable.vMess');
//>>>======= Excel SQL Table - =======
if(:ImpTable.vDrop=1)
{
x = SafeExecSQL('SoftOne','DROP TABLE ' + :ImpTable.vDBTable, Null );
x = CallPublished('SysRequest.Evaluate', VarArray(ImportModule('ImpCUSTOMER'),
'ExcelImport('+#39+:ImpTable.vExcelFile+#39+','+#39+:ImpTable.vDBTable+#39+',1,2)', 2));
}
//<<<======= Excel SQL Table - =======
//>>>============ CUSTOMER () ================
vCurRec = 0;
vTot = 0;
vRowCancel = 0;
fetch sCus vTot = vTot + 1;
x = SendResponse( vTot, 0, 0, 'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC' );
vMess = vMess + 'A. ... '+#13+#10;
x = SendResponse( vMess, ' ...','ImpTable.vMess;RESULTS.LABELTEXT' );
fetch sCus {
if(:ImpTable.vInsRec = 1)
{
ImpCUSTOMER(sCus,sCusBranch);
vCurRec = vCurRec + 1;
if (ImportError = 0)
{
newCusCode = GETQUERYRESULTS('SoftOne','SELECT CODE FROM TRDR WHERE
TRDR='+VarToStr(resultnum),NULL);
vMess = vMess + ' ' + VartoStr(vCurRec) + '. : '+VartoStr(sCus.cName)
+' ...OK - : '+VartoStr(newCusCode)+#13+#10;
x=SafeExecSQL('SoftOne','UPDATE ' + :ImpTable.vDBTable + ' SET [..]='+VartoStr(newCusCode)+'
,[..]='+QUOTEDSTR('01')+' WHERE LINE='+VartoStr(vCurRec), Null );
}
else
{
vRowCancel = vRowCancel+1;
vMess = vMess + ' ' + VartoStr(vCurRec) + '. : '
+VartoStr(sCus.cName)+ ' ...ERROR - '+ ErrorMessage+#13+#10;
x=SafeExecSQL('SoftOne','UPDATE ' + :ImpTable.vDBTable + ' SET
[..]='+QUOTEDSTR('error')+',[..]='+QUOTEDSTR('error')+' WHERE LINE='+VartoStr(vCurRec), Null );
}
vSalesman = sCus.cSalesman;
x = SendResponse(vTot, vCurRec, vRowCancel, vMess,
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;ImpTable.vMess' );
}
}
vMess = vMess + '- '+#13+#10+#13+#10;
x = SendResponse(vTot, vCurRec, vRowCancel, vMess,
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;ImpTable.vMess' );
//<<<============ CUSTOMER () ================
vMess = vMess +#13+#10+ '============== ================'+#13+#10;
x=SendResponse(vCurRec, vRowCancel, vMess, ' ...',
'RESULTS.CURREC;RESULTS.CANREC;ImpTable.vMess;RESULTS.LABELTEXT');
}
}

200

11 SoftOne Scripts

Case Study 3
( sql query)
Form {
[TABLES]
ImpTable=;;;;Master;3;0
[ImpTable]
vMess=16;64000;0;1;1; ...;;;;
[PANELS]
PANEL13=4; ...;0;100,G10,N,L3
[PANEL13]
ImpTable.vMess
}
Import ImpCFNCUSDOC(sDoc) into 'CFNCUSDOC,WARNINGS:OFF,NOMESSAGES:1'
{
FinDoc sDoc {
SERIES = 3800;
TRNDATE = sDoc.TRNDATE;
TRDR = sDoc.TRDR;
FINDOCS = sDoc.FINDOC;
COMMENTS = ' Import Script';
}
CashLines sDoc {
SOPAYTYPE = 1;
LINEVAL = sDoc.sumamnt;
}
}

connect Xplorer xData


{
connect();
sDoc = select findoc, trdr, sosource, fincode, trndate, sumamnt
from findoc
where company=:$X.SYS.COMPANY
and fiscprd=:$X.SYS.FISCPRD
and sosource = 1351
and fprms in (7061,7062,7063,7064,7066,7067,7071,7072,7073,7076,7082,7127,7128)
and trndate = '20030110'
order by 1 desc;
}
var
x, Module, DsFinDoc, Dslines, vFieldVal, vFieldVal1, Count, vMess, vRow, vRowCancel, vTot;
{
vTot = 0;
fetch sDoc vTot = vTot + 1;
vMess = ' .....'+#13+#10;
x = SendResponse( vTot, 0, 0, ' ...', vMess,
'RESULTS.TOTREC;RESULTS.CURREC;RESULTS.CANREC;RESULTS.LABELTEXT;ImpTable.vMess' );
fetch sDoc {
ImpCFNCUSDOC(sDoc);
if (ImportError = 0) vRow = vRow + 1;
else
vRowCancel = vRowCancel + 1;
x=SendResponse(vRow, vRowCancel, 'RESULTS.CURREC;RESULTS.CANREC');
}
vMess=vMess+' ...'+#13+#10;
x=SendResponse(vRow, vRowCancel, vMess, ' ...',
'RESULTS.CURREC;RESULTS.CANREC;ImpTable.vMess;RESULTS.LABELTEXT');
}

201

A. Sosource
B. Sodtype
C. (X.SYS)
D. (acCommands)
. Editor Commands
F. Editors
G. Origin ( )
H. Commands Object
I. Commands Browser Object
J.

202

A. Sodtype
O sodtype.

SODTYPE

10
11
12
13
14
15
16
20
21
22
25
30
31
32
33
40
41
42
43
44
51
52
53
54
61
70
71
72
73
81
82
83
84
89
90
91
95
96
97

Internal use only



Draft Entry

/
Set

Set
Set

Bonus


ABCosting

203

B. Sosource
O sosource.

SOSOURCE

1010 1019
1054
1089
1090
1096
1097
1098
1099
1100
1120
11351
1140
1151
1154
1171
1181
1212
1251
1253
1261
1281
1282
1312
1313
1351



..
..


()
....

1352
1353
1361
1381
1382
1412
1413
1414
1415
1416
1453
1481
1553
1581
1653
1681
1717
2021
2052
2095
5151
7151
8100
9500

...

204

C. (X.SYS)
, , Java & VB script custom ,
import script alerts. :X.SYS.CName, CName
(. login X.SYS.COMPANY).

(:X.SYS.CName)
(CName)

ACNSCHEMA

Small Int

BRANCH
CMPCURR

Small Int
VarChar(5)

COMPANY

Small Int

COUNTRY
DBTYPE

(1=ORACLE,3=MSSQL,5=MYSQL)

Small Int
Small Int

FISCPRD
FISCPRDPAY

()

Small Int
Small Int

FOLDER
FPDATE

Small Int
Date

FPERIOD

Small Int

FYDATE
GROUPS

Date
Small Int

ISADMIN
LANGEXT

Administrator
Login

Small Int
VarChar(5)

LOCKFISCPRD

Small Int

LOGINDATE
LPDATE

Date
Date

LPERIOD
LYDATE

Small Int
Date

NFISCPRD
PAYCPDATE


/ .

Small Int
Date

PAYFPDATE

Date

PAYLPDATE
PAYPERIOD

./

Date
Small Int

PAYPRDTYPE
PERIOD


()

Small Int
Small Int

PFISCPRD

Small Int

PFYDATE
PLYDATE

.
./

Date
Date

SOCASH
SOCASHUSER

Small Int
Small Int

SOCURRENCY
SYSDATE

Small Int
Date

USER

Login

Small Int

USERBRANCHES
USERNAME

VarChar(30)
VarChar(1024)

WHOUSES
WRKSTN

VarChar(4000)
Small Int

205

D. (acCommands)
SoftOne
.
/ ACMD:xxx, : xxx .

acCommands

acAbout
acBackup
acBuildHtmlDoc
acBuildOfflineFile
acCalcErrors
acChangePWD
acChat
acCheckCS
acCheckDB
acCheckForUpdates
acComputerSoft1Address
acConnections
acCreateDB
acCutCompanyData
acDesktop
acEditAccess
acEditFavorites
acEditUserMenu
acExpBarClose
acExport
acFavorites
acFullTextSearch
acHelpContents
acHistory
acImpFromClipBoard
acImpFromFile
acImport
acKnowBase
acLicUse
acMainMenu2
acMemory
acmMind
acModifMenu
acMP3Player
acMySoft1
acNewLicense







password

Client/Server


View computer soft1 address



softone


menu



Full Text Search
Help Contents and index

XXF Clipboard
XXF

Program knowledge base

Game Master mind


/
MP3 Player

N

206

acCommands

acNewSynchOffline
acProgramNews
acRelogin
acReminder
acRemoteCommands
acRemoteConfig
acRemoteServer
acReportGen
acRestore
acSaaSServerLogin
acScheduler
acSDKFiles
acSELECTTOP
acSendCustomerMessage
acSendMsg
acSettings
acSetupOffline
acSetupPrinters
acSQLMonitor
acSrvAccess
acStandard
acStartupSQL
acStatusBar
acSupAnswers
acSupQuery
acSyncDB
acSynchOffLine
acSynchOnline
acTetris
acToggleMnu
acUpgradeLicense
acUserMenu
acWebPage
acZReportSignB


( . 3.12.508 )
Program news


Remote Server
Remote
Remote Server


Saas Login
Scheduler
Custom SDK Code Files
Select Top Object

Off-Line

SQL monitor
Server
()
SQL Queries Login
Status Bar
E.Y.
E.Y.



Game Tetris



SoftOne
Z Report

207

E. Editor Commands
Editors
, .

Editor Commands

$DT

&

$TIME

( /)

$PASSWORD

Password ( )

$Y

Boolean ( checkbox)

$YN

Boolean Grids ( combobox)

$WEBPAGE

Web Page Link to Internet Browser

$EMAIL

Email Link to Email Program

$PRINTERS

Windows

$DATERANGE

$TIMERANGE

$COLOR

Softone

$ONECOLOR

Windows
=256^2*Red + 256^1Green + 256^0*Blue

$FILENAME

$MASKEDIT

$RECURRENCE

(Scheduler) Softone

$MEMOEDIT

Grid memo

$LIST:OBJECT

(),
( SOLIST
SOLISTLNS)

$XRUN(D[Par1,Par2,Par3])
Par1=<visible>,
Par2=<exefilename>,
Par3=<file params>


:
( 1 extra
) :
$XRUN(D[0,C:\Xplorer.exe,"/"+CUSEXTRA.VARCHAR01])
server,
softone server.

208

F. Editors
O editors .

Editors

Editor

@ACN

ACNT(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;:CSEL.SODTYPE])

@ACNAL

ACNTAL(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;90])

@ACNALM

ACNTAL(M,R[CODE],F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;90],H[ACNTAL])

@ACNCTGR

ACNCATEGORY(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;:CSEL.SODTYPE])

@ACNGL

ACNTGL(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;89])

@ACNGLM

ACNTGL(M,R[CODE],F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;89],H[ACNTGL])

@ACNGRP

ACNGROUP(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;:CSEL.SODTYPE])

@ACNM

ACNT(M,R[CODE],F[ACNSCHEMA=:X.SYS.ACNSCHEMA],H[ACNTGL])

@ACNMDL

ACNMODEL(F[ACNSCHEMA=:X.SYS.ACNSCHEMA])

@ACNMDLAL

ACNMODELAL(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;90])

@ACNMDLGL

ACNMODELGL(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;89])

@ACNSLG

ACNISOLOG(F[ACNSCHEMA;SODTYPE=:X.SYS.ACNSCHEMA;:CSEL.SODTYPE])

@ACNT

ACNT(F[ACNSCHEMA=:X.SYS.ACNSCHEMA])

@ALLCLSFLDR

FINDOC(M,R[FINCODE],W[SOSOURCE IN (1282, 1382) AND EXISTS (SELECT 1 FROM CSTFLDR


CS WHERE CS.CSTFLDR=A.FINDOC AND CS.CFOCLOSEOK<>1)])

@ARS

AREAS(F[SODTYPE=:CSEL.SODTYPE])

@CKAD

KAD(W[EXISTS (SELECT 1 FROM COMPANYKAD WHERE COMPANY=:X.SYS.COMPANY AND


A.KAD=COMPANYKAD.KAD UNION SELECT 1 FROM COMPANY WHERE
COMPANY=:X.SYS.COMPANY AND A.KAD=COMPANY.KAD)])

@CLSFLDR

FINDOC(M,R[FINCODE],W[SOSOURCE=&SOSOURCE AND EXISTS (SELECT 1 FROM CSTFLDR


CS WHERE CS.CSTFLDR=A.FINDOC AND CS.CFOCLOSEOK<>1)])

@COL

PRSNIN(W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.COMPANY=:X.SYS.COMPANY AND PRSEXT.SODTYPE=31 AND PRSEXT.ISACTIVE=1)])

@COLM

PRSNIN(M,R[CODE],W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=31 AND PRSEXT.COMPANY=:X.SYS.COMPANY AND PRSEXT.ISACTIVE=1)])

@COMM

COMMENTS(M,R[NAME],F[SOSOURCE=:CSEL.SOSOURCE])

@CRCNTRL

CRCONTROL(F[SODTYPE=:CSEL.SODTYPE])

@DSCPLC

VCRDRULE(F[SODTYPE;SOTYPE=:CSEL.SODTYPE;2])

@IRSM

IRSDATA(M,R[NAME])

@JOB

JOBTYPE(F[SODTYPE=:CSEL.SODTYPE])

@MATEXP

EXPN(F[USEBYITEM=1])

@MATOMD

MTRGROUP(F[SODTYPE=:CSEL.SODTYPE])

@PAYT

PAYMENT(F[SODTYPE=:CSEL.SODTYPE])

@PERIODACN

PERIOD(W[COMPANY = :X.SYS.COMPANY AND FISCPRD = :X.SYS.FISCPRD])

@PERIODMTR

PERIOD(W[COMPANY = :X.SYS.COMPANY AND FISCPRD = :X.SYS.FISCPRD AND


PERIOD<1000])

@PERIODPAY

PAYPRD(W[COMPANY = :X.SYS.COMPANY AND FISCPRDPAY = :X.SYS.FISCPRDPAY])

@PERIODTRD

PERIOD(W[COMPANY = :X.SYS.COMPANY AND FISCPRD = :X.SYS.FISCPRD AND PERIOD>0


AND PERIOD<1000])

209

Editors

Editor

@PUR

PRSNIN(W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=32 AND PRSEXT.COMPANY=:X.SYS.COMPANY AND PRSEXT.ISACTIVE=1)])

@PURM

PRSNIN(M,R[CODE],W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=32 AND PRSEXT.COMPANY=:X.SYS.COMPANY AND PRSEXT.ISACTIVE=1)])

@RPCPLC

PRCPOLICY(F[SODTYPE;SOTYPE=:CSEL.SODTYPE;1])

@SAL

PRSNIN(W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=30 AND PRSEXT.ISACTIVE=1)])

@SALM

PRSNIN(M,R[CODE],W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=30 AND PRSEXT.ISACTIVE=1)])

@SXACNTM

SXACNT(M,R[CODE],H[SXACNT])

@SXACNTSM

SXACNT(W[A.MTRTYPE IN (1,3)],M,R[CODE],H[SXACNT])

@SXACNTXM

SXACNT(W[A.MTRTYPE IN (2,4)],M,R[CODE],H[SXACNT])

@TEC

PRSNIN(W[ EXISTS (SELECT 1 FROM PRSEXT WHERE A.PRSN=PRSEXT.PRSN AND


PRSEXT.SODTYPE=33 AND PRSEXT.COMPANY=:X.SYS.COMPANY AND PRSEXT.ISACTIVE=1)])

@TEMPLATESABC

TEMPLATESABC(F[SOSOURCE;GLTEMPLATESMD=:SOSOURCE;2])

@TEMPLATESGL

TEMPLATESGL(F[SOSOURCE;GLTEMPLATESMD=:SOSOURCE;1])

@TEMPLATESSX

TEMPLATESSX(F[SOSOURCE;GLTEMPLATESMD=:SOSOURCE;3])

@TFPRMS

TFPRMS(F[SOSOURCE=:CSEL.SOSOURCE])

@TRDBRN

TRDBRANCH(F[TRDR=:CSEL.TRDR])

@TRDBSN

TRDBUSINESS(F[SODTYPE=:CSEL.SODTYPE])

@TRDCTGR

TRDCATEGORY(F[SODTYPE=:CSEL.SODTYPE])

@TRDRS

TRDR(W[SODTYPE IN (12,13,15,16)])

@UAT1

UATBL01(F[ACNSCHEMA;SODTYPE=:CSEL.ACNSCHEMA;:CSEL.SODTYPE])

@UAT2

UATBL02(F[ACNSCHEMA;SODTYPE=:CSEL.ACNSCHEMA;:CSEL.SODTYPE])

@UAT3

UATBL03(F[ACNSCHEMA;SODTYPE=:CSEL.ACNSCHEMA;:CSEL.SODTYPE])

@UAT4

UATBL04(F[ACNSCHEMA;SODTYPE=:CSEL.ACNSCHEMA;:CSEL.SODTYPE])

@UAT5

UATBL05(F[ACNSCHEMA;SODTYPE=:CSEL.ACNSCHEMA;:CSEL.SODTYPE])

@UCT1

UCTBL01(F[SODTYPE=:CSEL.SODTYPE])

@UCT2

UCTBL02(F[SODTYPE=:CSEL.SODTYPE])

@UCT3

UCTBL03(F[SODTYPE=:CSEL.SODTYPE])

@UCT4

UCTBL04(F[SODTYPE=:CSEL.SODTYPE])

@UCT5

UCTBL05(F[SODTYPE=:CSEL.SODTYPE])

@UT1

UTBL01(F[SODTYPE=:CSEL.SODTYPE])

@UT2

UTBL02(F[SODTYPE=:CSEL.SODTYPE])

@UT3

UTBL03(F[SODTYPE=:CSEL.SODTYPE])

@UT4

UTBL04(F[SODTYPE=:CSEL.SODTYPE])

@UT5

UTBL05(F[SODTYPE=:CSEL.SODTYPE])

@ZIPM

VZIPADDRESS(M,R[CODE])

210

G. Origin ( )
O ORIGIN FINDOC.

ORIGIN

(Service)

(Service)

10

11

(Service)

12

./

14

. -

15

. --

16

17

18

19

20

21

Import

22

23

24

25

26

27

28

29

30

31

32

33

34

35

bonus points

36

()

37

()

211

H. Commands Object
(SoftOne commands)
objects. object.

(FINDOC)








/
Activity Based
Costing


--
--

--
---
--..--
--..--

--..-
----

--
---
--..--
--..--
--..--
--..---

Softone command
XCMD:SFPAYTERMS
XCMD:1031
XCMD:CFNCUSDOC,EKSOFL:1,S
XCMD:CFNSUPDOC,EKSOFL:1,S
XCMD:CSTFINLNS,S;FINDOC.FINDOC
XCMD:10006
XCMD:SFFINFROM

XCMD:SFFINTO
XCMD:10112
XCMD:SFFINPRCRULE
XCMD:SFCNTR
XCMD:SFPRCPOLICY
XCMD:10113
XCMD:ABCTRNLINES,S[ABCTABLE=FINDOC];F
INDOC.FINDOC
XCMD:10110

XCMD:XTRDOCDATA,S

XCMD:10107

XCMD:SFADVANCE

XCMD:908


()

XCMD:CSTPRDLNS,S;FINDOC.FINDOC

XCMD:&EKSOFL

XCMD:&CMDOBJ

(APPMNT)

XCMD:SFFINTO

212

(TRDR)


Softone command

- -

XCMD:SFCMPREM

XCMD:GsisCmpAfmData

(MTRL)

Softone command
XCMD:SFCMPREM

(ACNT)

Softone command

XCMD:10009

XCMD:XTRDOCDATA,S

(SRVC)


(CNTR)

Softone command
XCMD:1001

(BUDGETS)

Softone command
XCMD:InitBudgetData,s,BUDGET.BUDGET
XCMD:CalcBadgetData;BUDGET.BUDGET
XCMD:DELETEBUDGETDATA;BUDGET.BUDGET
XCMD:COPYBUDGETDATA;BUDGET.BUDGET

213

CRM

Softone command

- . - - Email
- . - - Email
- . - - Email
- . - - Email
- . - - Email
- . - - Email Draft
Email

Email

XCMD:1000

Email

XCMD:1003

Email

XCMD:1004

Email

XCMD:1005

Email

XCMD:1006

Draft entry

Draft entries

XCMD:1001

Draft entries

XCMD:GsisCmpAfmData

XCMD:FOLLOWUPDLG
XCMD:ACTHISTDLG
XCMD:ACTREPEATDLG
XCMD:1002
XCMD:SFPREVSTEP
XCMD:XTRDOCDATA,S
XCMD:1001

(XDOCS)

Softone command

Open file

XCMD:10003

Save to file

XCMD:10004

Save file to DB

XCMD:10011

Delete file from DB

XCMD:10012

Upload file to Azure

XCMD:11011

Delete file from Azure

XCMD:11012

Download from URL

XCMD:11013

214

I. Commands rowser Object


(SoftOne commands)
browsers objects. object.

Browsers (FINDOC)

Softone command

XCMD:CONVERTDLG,SOSOURCE:1351

XCMD:CONVERTDLG,SOSOURCE:1151

XCMD:CONVERTDLG,SOSOURCE:1251

XCMD:ASSDOC,N,CNV:1

XCMD: CONVERTDLG,SOSOURCE:1351,LN:1


.
.
.

, , ,
..
, , ,
..
, , ,
..
, , ,
..

XCMD:REMOVERESTMODE
XCMD:UNDOREMOVEREST
XCMD:REMOVERESTMODE,LN:1
XCMD:UNDOREMOVEREST,LN:1

XCMD:PROCESSDLG,SOSOURCE:1351

XCMD:PROCESSDLG,SOSOURCE:1151

XCMD:PROCESSDLG,SOSOURCE:1251

XCMD:SALDOC,N,CNV:3

XCMD:RETAILDOC,N,CNV:3

XCMD:PURDOC,N,CNV:3

XCMD:ITEDOC,N,CNV:3

XCMD:ASSDOC,N,CNV:3


, ,
,.-
, . ,
..

XCMD:PURDOC,N,CNV:100

XCMD:ITEDOC,N,CNV:100

XCMD:1003

XCMD:10016

XCMD:1001
XCMD:SALDOC,N,CNV:100

215

Browsers (FINDOC)

Softone command

.Factoring

XCMD:Docspmcash

.Factoring

XCMD:Docsmcash

.Factoring

XCMD:Docsrcash

.Factoring

XCMD:DocsPayExpences

.Factoring

XCMD:DocsExpences

XCMD:CreditDoc

Browsers (TRDR-PRJC-PRSN)


, ,
, , ,

, ,
, ,
, ,
, ,


email

Softone command
XCMD:CRTACTIONDLG
XCMD:SENDEMAILDLG
XCMD:CreateXDoc

Export Outlook

XCMD:EXPOUTCONTACTS

Export Google

XCMD:EXPGCONTACTS

Browsers (MTRL)

Softone command

XCMD:IteCalcMarkUp

..

XCMD:IteWhouseRest

XCMD:IteOrdersServ

, ,

XCMD:CreateXDoc

XCMD:IteToWeb

XCMD:IteToRetail

.
Web
. .
Touch

Browsers (ACNT)

Softone command

XCMD:1001

XCMD:ACCGLHEADER,N,CNV:100

XCMD:1001

XCMD:ACCALHEADER,N,CNV:100

216

Browsers (CHEQUE)

Softone command

XCMD:ChqCfnDoc

XCMD:CreateXDoc

Browsers (SRVC)

Softone command

XCMD:100001

XCMD:100002

XCMD:1001

XCMD:1002

XCMD:SALDOC,N,FROMSRVCARD:1

XCMD:SALDOC,N,FROMSRVCARD:2

/ -.

XCMD:SALDOC,N,FROMSRVCARD:0

XCMD:SALDOC,N,SENDSRVCARD:1

XCMD:CreateXDoc

Browsers (XDOC)

Softone command

XCMD:10003

XCMD:10004

e-mail

XCMD:SendDocWithMail

Browsers CRM




- . - Email
- . - Email
- . - Email

Softone command
XCMD:FOLLOWUPDLG,BROWSER:1

XCMD:ACTHISTDLG,BROWSER:1

XCMD:ACTREPEATDLG,BROWSER:1

Draft

XCMD:1100

email

Draft Entries

XCMD:SENDEMAILDLG

Export Google

Draft Entries

XCMD:EXPGCONTACTS

217

J.

O Tabs
. / Database Designer.

.. /
Command

XP

primary key
Tab

.

XU

unique, non-clustered index key.




.

XI

non-unique, non-clustered index


key.
index key
.

/
XP_KEYNAME ( KEYNAME
)

XU_KEYNAME = FIELDNAME1, FIELDNAME2,


: /

XU_TRDBRANCH_CODE=TRDR,CODE
XI_KEYNAME = FIELDNAME1, FIELDNAME2,

XF_TABLE_FOREIGNKEY = REFERENCETABLE
foreign key .

: TRDR()
Command: XF_TRDR_SALESMAN = PRSN
ConstraintName: XF_TRDR_SALESMAN
Foreign Key: SALESMAN
Reference Table: PRSN
XC_KEYNAME = (FIELDNAME>=value)

XC

(Field Validation).

.

XD

Cascade Delete.
detail


header .

XT

:
links .
linked objects
.

XR

:
foreign key object

XR

:
Cascade Delete object

XF

: FIELD1
100 500.
XC_KEYNAME =(FIELD1>100) AND (FIELD1<500)
XD_DETAILTABLE_HEADERTABLE
:
.
XD_TRDBRANCH_TRDR
XT_TABLEFIELD_OBJECT
: EXTRA (Link )
XT_MTRL_ITEEXTRA
XR_TABLE_FIELDNAME = OBJECT
: .
XR_MTRL_RELITEM = ITEM
XR_DETAILTABLE_HEADERTABLE
:
XR_MTRLINES_FINDOC

218

You might also like