Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Navision
. Navision a/s
. Navision a/s
, ,
, ,
,
,
.
- .
,
Navision a/s.
.
COPYRIGHT
Copyright 2002 Navision a/s, Frydenlunds All 6, 2950 Vedbaek,
Denmark. All rights reserved.
, ,
TM
Navision a/s Navision
Development a/s. Microsoft, Windows, Windows NT, SQL
Server BackOffice
Microsoft,
.
Navision a/s Navision Development
http://trademarks.navision.com
Arial.
Microsoft Business Solutions CIS.
DocID: AT-360-SST-002-v.01.00-RURU
1.
1-1
1.1
1-2
1.2 ?
1-3
1.3
1-6
2.
ODBC NAVISION
2-1
2.1 C/ODBC
2-2
2.2 C/ODBC
2-4
2.3
C/ODBC-
2-5
2.4
2-11
2.5 Navision
2-15
2.6 C/ODBC
2-19
2.7
2-25
3.
C/FRONT NAVISION
3-1
3.1 C/FRONT
3-2
3.2 C/FRONT
3-3
3.3
DLL OCX
3-5
3-8
3-15
3.6
C/FRONT
3-16
3.7
3-17
4.
NAVISION
4-1
4.1
OCX
4-2
4.2 OCX
4-3
4.3
4-5
4.4
4-8
4.5
4-12
4.6
4-14
4.7
4-17
5.
NAVISION
5-1
5.1 Navision
5-2
5.2
5-4
5.3
5-10
5.4
5-15
5.5 5-20
5.6
5-23
5.7
5-26
A.
,
A-I
A.1
A-II
A.2
C/AL COM
A-III
A.3
COM C/AL
A-V
Navision (Navision
Programming), , ,
Navision (Navision Solution
Development).
,
.
Navision,
Navision (Navision Attain Consultant in
Programming).
Navision (
).
Navision
,
,
Navision
,
.
.
1-2
Navision
1.1
, Navision
. ,
C/SIDE , C/SIDE-.
,
,
Microsoft Word, Microsoft Excel, ODBC Microsoft
Visual Basic.
, Navision,
Navision .
:
1:
2: ODBC Navision
3: C/Front
4: OCX Navision
5: Navision C/AL
, .
,
.
, .
, .
.
1-3
1.2 ?
.
, ,
Navision. ,
,
Navision .
Navision.
,
, .
- ? ,
,
,
.
, .
1-4
Navision
VBX, OCX
ActiveX. ActiveX
OCX. , ActiveX-,
Microsoft Internet Explorer, OCX-.
OCX-,
. ,
.
OCX .
OCX,
Navision, , Borland Delphi,
Microsoft Visual C++ Visual Basic.
(Automation) OLE. OLE-
. ,
,
(automation server), ,
, ,
(automation controller, client). C/SIDE
,
OCX ( ). , Navision
.
Navision
Microsoft, Word, Excel, Outlook.
OCX, (Automation)
COM- Microsoft.
COM 16
. ,
Microsoft .
COM-
( ) C/SIDE,
COM. , ,
,
COM-. ,
COM-,
C/AL.
C/FRONT ,
Navision. C/FRONT
Navision Server,
1-5
Navision. C/FRONT
C.
,
Navision ,
.
C/Front DLL-,
, OCX-,
.
?
ODBC C/Front Navision,
Navision. OCX
Navision
/ .
1-6
Navision
1.3
ODBC?
OCX?
(Automation)?
Navision ?
C/Front?
a.
MS Access
b.
,
Navision
c.
,
C/SIDE
d.
, ODBC
COM- Navision?
C/ODBC C/Front?
1-7
ODBC?
Open DataBase Connectivity
OCX?
OLE Custom Control
(Automation)?
OLE- (OLE Automation)
Navision ?
C/Front?
,
C/SIDE
COM- Navision?
OCX Automation
C/ODBC C/Front?
C/ODBC C/Front
Navision.
1-8
Navision
2
ODBC
Navision
C/ODBC Navision. ,
C/ODBC .
.
C/ODBC
C/ODBC
C/ODBC
Navision
C/ODBC
2-2
Navision
2.1 C/ODBC
C/ODBC Navision
Open DataBase Connectivity (ODBC) Navision.
C/ODBC Navision
, ODBC.
C/ODBC ,
ODBC, Navision.
,
,
Navision C/ODBC-.
ODBC- ,
Windows 98, Windows NT, Windows 2000 UNIX (AIX).
,
- .
C/ODBC
C/ODBC .
(Application)
ODBC- SQL-
.
(Driver Manager)
. ODBC .
(Driver) ODBC-,
SQL- ,
.
,
,
.
(Data source) ,
,
, , ( ),
.
ODBC Navision
2-3
. -,
,
. -, ODBC
: ,
.
-, SPI (service provider interface).
ODBC (API) ; ..
.
2-4
Navision
2.2 C/ODBC
ODBC Navision. ODBC,
,
,
.
, ,
, C/ODBC-
Navision. -, C/ODBC-,
C/ODBC ( 1700). -,
Navision ,
. ,
, C/ODBC-
,
C/ODBC. , ,
,
. , ,
(fin.flf), ,
C/ODBC.
(Sessions) :
ODBC-;
C/Side- (.. ,
Navision).
ODBC Navision
2-5
2.3 C/ODBC-
C/ODBC,
Navision. C/ODBC-
, Navision,
C/ODBC- Windows NT, Windows 98 Windows 2000:
1
setup. Codbc
subfolder - Navision product CD.
Welcome.
Microsoft Installer.
, Next
.
windows\system
Windows 98, winnt\system32 Windows NT
Windows 2000. C/ODBC
C/ODBC . ,
Setup Completed. Finish,
.
,
DSN. DSN,
Data Sources (ODBC).
,
, .
ODBC Data Source Administrator,
, DSN .
DSN , ,
DSN.
DSN,
.
2-6
Navision
,
. , C/ODBC
, Program Folder
fin.exe.
ODBC Navision
2-7
Navision C/ODBC-
.
,
; , ,
, ,
.
, ,
. ,
, , User ID Password
C/ODBC . ,
,
Navision. ,
, .
, Navision ,
,
.
C/ODBC. Navision
Navision client,
C/ODBC.
, Navision, C/ODBC.
C/ODBC.
C/ODBC
C/ODBC,
Navision
,
.
C/ODBC, .
C/ODBC-,
.
1
2-8
Navision
Role ID ,
, CODBC.
Name , ,
C/ODBC.
Enter ,
.
,
.
1
Roles CODBC,
.
Role, Permissions.
Permissions. , .
Permissions ,
.
.
Navision, , .
Object ID AssistButton
Object List 2000000006,
Company.
5 Modify Delete.
(Read) (Execute).
Permissions
Object Type AssistButton,
System.
ODBC Navision
2-9
Object ID AssistButton
Object List 913, C/ODBC.
, .
C/ODBC-
Navision.
Navision . Installation
and System Management Navision Server Microsoft SQL
Server Option.
,
Navision C/ODBC.
C/ODBC
C/ODBC.
C/ODBC Setup Options
. C/ODBC Options.
C/ODBC-,
, C/ODBC.
, Commit Cache
.
Tmp Path.
. ,
Enable BLOB fields,
BLOB- .
Identifiers ,
( ) Navision
. ,
2-10
Navision
C/ ODBC .
ODBC Navision
2-11
2.4
, C/ODBC-,
Navision.
Customer Delinquent.
: Customer No_, Due Date, Document Type, Document No_,
Document Date, Amount, Open. ,
(Age), Age.
, .
1
Microsoft Excel
.
, ,
Next.
2-12
Navision
,
. ,
, .
, False = 0 1 = True.
5
(Filter Data),
Next.
.
, Customer No Due
Date. , ,
, Next.
ODBC Navision
2-13
;
Microsoft Query (View data or edit query in Microsoft Query),
Finish.
,
.
SQL-,
Open SELECT. SQL-,
, :
SELECT "Cust_ Ledger Entry"."Customer No_", "Cust_
Ledger Entry"."Due Date, "Cust_ Ledger
Entry"."Document Type", "Cust_ Ledger Entry"."Document
2-14
Navision
,
Age, (
,
).
ODBC Navision
2-15
2.5 NAVISION
. MS Access 97 (
) Navision.
, Microsoft
Access.
1
2-16
Navision
ODBC Navision
2-17
.
:
BLACK :
Code
Name
Address
City
Country
Post
Contact
Code
BLACK
Black
2 Late St
Atlanta
USA
30096
ware-
Joe B.
Cool
house
C/ODBC-,
Navision ,
.
, C/ODBC, .
, ,
Navision, . ,
, ,
Navision .
C/ODBC-
2-18
Navision
(holding table).
C/AL
, .
. ,
,
, - .
Navision Warehouse Management,
Setup, . ,
BLACK, . ,
.
, Country . .
BLACK:
, ,
. Country Code ( ) US.
,
. , ,
(Post Code).
, , . ,
.
,
C/ODBC.
, ,
,
C/AL-
.
ODBC Navision
2-19
2.6 C/ODBC-
C/ODBC .
, Navision C/ODBC
.
, (flow filters)
Navision
.
C/ODBC (outer
joins).
C/ODBC Navision Server.
ODBC SQL Server Option,
Microsoft SQL ODBC.
,
1700. ,
, C/ODBC
Navision. ,
, .
2-20
Navision
C/ODBC
. ,
C/ODBC-
C/ODBC Setup.
,
C/ODBC Navision.
Program
C/ODBC Setup.
(multipart database)
. , (),
, (+).
, ,
.
BLOB-,
Enable BLOB Fields C/ODBC Options
. , BLOB- .
, BLOB-
ODBC.
,
.
(company) C/ODBC. :
DSN.
,
C/ODBC .
. ,
, ,
(company). ,
, DNS,
. ,
C/Front-.
ODBC Navision
2-21
C/ODBC Microsoft Access,
.
(, "Name
2"),
Null , Variant.
Microsoft Access.
Microsoft Knowledge Base .
Microsoft Access . C/ODBC
,
Navision.
Navision
NULL .
SQL- Modify VBA- MS
Access, , .
2-22
Navision
[ODBC]
DSN=CODBC SDSN
File Data Source
CODBC SDSN. ,
File Data source,
System Data Source.
Access
, Access ,
, C/ODBC
, Access .
SQL-:
SELECT * FROM Customer
Customer. ,
Access, SQL- :
SELECT * FROM Customer WHERE Field1 = ? OR
Field2 = ? OR Field 3 = ? etc.
Access 10 ,
10 .
,
, Access
.
1,2,3,4,5,6,7,8,9,10, 10
1 .
, SQL-
, Access
10 . ,
, C/ODBC
( ).
Window.
:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\
<Version>\Engines
ODBC Navision
2-23
<Version> Jet,
(, 4.0).
2
ODBC,
.
ODBC (DWORD)
SnapshotOnly 1 in the ODBC,
.
, MS Excel MS
Word MS Query,
.
"Connection in use" (
) C/ODBC
MS-Query?
MS-Query
. , MS-Query
AutoDisconnect MSQUERY.INI,
Windows.
[Microsoft Query]
AutoDisconnect=1
C/ODBC
C/SIDE? ,
C/SIDE ,
( ,
Integer). ,
.
,
ODBC-?
CODBC.ETX NODBC.ETX ( ).
\WINDOWS\SYSTEM ( Windows 98) \WINNT\SYSTEM32 (
Windows NT/2000 ).
C/ODBC ? , .
, ,
. Option ,
2-24
Navision
Text Code .
, .
ODBC Navision
2-25
2.7
C/ODBC Navision
( ):
Microsoft ODBC;
C/ODBC;
C/ODBC;
DSN.
?
C/ODBC, Navision.
? Navision
Microsoft ADO.
? C/ODBC
(outer joins).
? ODBC
,
Navision.
2-26
Navision
C/ODBC Navision
( ):
Microsoft ODBC;
C/ODBC;
C/ODBC;
DSN.
?
C/ODBC, Navision.
, C/ODBC .
? Navision
Microsoft ADO.
, Navision ADO.
? C/ODBC
(outer joins).
.
? ODBC
,
Navision.
.
3
C/FRONT
Navision
Navision
C/FRONT.
C/FRONT.
:
C/FRONT
C/FRONT
DLL
OCX
Visual Basic
Microsoft Excel
C/FRONT
3-2
Navision
3.1 C/FRONT
C/FRONT ,
C/SIDE. C/FRONT
C/SIDE C
C/SIDE.
C/FRONT
C.
C/SIDE , .
C/FRONT
Navision, , C/FRONT
, .
,
,
C/ODBC. C/FRONT
, C/ODBC,
,
Navision. ,
C/FRONT,
, Delphi, Kylix, C++, C Visual Basic.
C/FRONT Navision:
DLL C, OCX.
Microsoft Visual Basic 6.0 OCX.
C/FRONT Navision
3-3
3.2 C/FRONT
C/FRONT HTML-,
- Navision (product CD).
-
readme.txt - Navision.
C/FRONT ,
.dll- cfront.dll cfrontsql.dll.
. ,
CfrontDllName DLL-,
. SQL Server,
cfrontsql.dll. cfront.dll.
dbm.dll
nc_netb.dll
nc_tcp.dll
slave.exe
fin.etx
fin.stx
fin.flf
3-4
Navision
C/FRONT
C/FRONT :
cfront.dll
cfrontsql.dll
cfront.ocx
C/FRONT OCX
cf.h
C/FRONT
libload.c
C,
cfront.dll
dberror.txt
cfront.chm
(C/FRONT OCX)
cfront.xls
Mfc42.dll
msvcrt.dll
Microsoft Visual C
Run-Time Library
readme.txt
, :
sample.c
C/FRONT-
sample.exe
sample.fdb
Navision
sample.fbk
Navision
sample.txt
, ,
C/FRONT C-API
C/FRONT Navision
3-5
DLL, DBL_*,
OCX DBL_.
, ,
DBL_OpenDatabase, OpenDatabase.
OCX.
,
. OCX
.
3-6
Navision
OCX Time.
Allow
AllowKeyNotFound, AllowRecordExists, AllowRecordNotFound
AllowTableNotFound.
,
, GetFieldData AssignField
Variant.
OCX:
Alpha_2_Str
BCD_2_Str
Date_2_Str
Date_2_YMD
HMST_2_Time
Str_2_Alpha
Str_2_BCD
Str_2_Date
Str_2_Time
Time_2_HMST
Time_2_Str
YMD_2_Date
OCX (. Error
Handling C/Front
),
.
, ,
,
- .
OCX:
SetExceptionHandler
SetMessageShowHandler
C/FRONT Navision
3-7
OCX
.
OCX:
Exit
Init
,
GetFieldData
, OCX,
, ,
C.
GetFieldDataAddr
GetFieldDataSize
DLL
C-Toolkit for Navision 3.XX.
OCX.
FieldDataOffset
3-8
Navision
Projects ,
(CTRL + T).
Cfront OLE Control Module, Microsoft Common Dialog SP3
Microsoft FlexGrid Control 6.0 (SP3). ,
.
C/FRONT Navision
3-9
,
. View
Code. .
(General)
(Declarations) ,
public-.
.
Tools Menu Editor,
CTRL+E. File, Open,
Exit, View Write (. ):
3-10
Navision
, Open Exit.
, (
&) .
( )
.
7
OCX Components.
OCX (CFront) .
OCX .
:
Visible = No
(Name) = Cfront
.
, .
CommonDialog Components.
CommonDialog
. CommonDialog
,
Cfront.
CommonDialog1 CommonDialog.
C/FRONT Navision
3-11
MSFlexGrid Components.
MSFlexGrid component
. :
(Name) = TableBox
Top = 520
Height = 5655
Width = 6495
Rows = 0
TabIndex = 0
10
.
, , File Open.
Code
Open_Click. Open_Click
.
SQL Server,
0 CacheSize UseCommitCache ,
Navision Server.
3-12
Navision
CommonDialog.ShowOpen
DatabaseFileName = CommonDialog.FileName
NavisionPath = Mid(CommonDialog.FileName, 1,
InStr(1, CommonDialog.FileName,
CommonDialog.FileTitle, vbTextCompare) - 2)
DatabaseFileName = CommonDialog.FileTitle
'Set the license file to be in the location where
'the database is located
LicenseFileName = NavisionPath + "\fin.flf"
CFRONT.SetNavisionPath NavisionPath
CFRONT.LoadLicenseFile LicenseFileName
CFRONT.CheckLicenseFile (9110)
Call CFRONT.ConnectServerAndOpenDatabase(DriverName,
ServerName, NetType, DatabaseFileName, CacheSize,
UseCommitCache, NTAuthentication, UserId,
Password)
CompanyName = "CRONUS International Ltd."
CFRONT.OpenCompany CompanyName
. ,
NDBCN for Navision Server
NDBCS for SQL Server.
/ ,
, . ,
-.
(company).
,
.
. ;
, ,
(handle),
, .
, .
,
,
C/Front. .
Code Exit
:
If TableHandle <> 0 Then
CFRONT.CloseTable (TableHandle)
End If
C/FRONT Navision
3-13
If Connected Then
CFRONT.DisconnectServer
End If
CFRONT.ReleaseAllObjects
MainForm.Hide
, ,
, .
TableHandle,
Error 12000 Invalid Handle (
). CompanyName,
Error 1046 No Company Selected
( ). , ,
, , ,
, , , C/Front.
11
Code
View
:
Dim CurRow As Long
TableNo = 23 'Vendor
If Not MainForm.CFRONT.OpenTable(TableHandle,
TableNo) Then
MsgBox "Unable to Open Table 23 Vendor."
Return
End If
, ,
, Error
1001 Table does not exist ( ).
GridRow = 0
NumColumns = 1
FieldNo = MainForm.CFRONT.NextField(TableHandle, 0)
While FieldNo > 0
NumColumns = NumColumns + 1
TableBox.Cols = NumColumns
TableBox.Row = GridRow
TableBox.Col = NumColumns - 1
TableBox.Text =
3-14
Navision
MainForm.CFRONT.FieldName(TableHandle, FieldNo)
FieldNo = MainForm.CFRONT.NextField(TableHandle,
FieldNo)
Wend
'load the data
hRec = MainForm.CFRONT.AllocRec(TableHandle)
If MainForm.CFRONT.FindRec(TableHandle, hRec, "-")
Then
GridRow = 1
Do
RecFields = "" & GridRow
GridRow = GridRow + 1
FieldNo = MainForm.CFRONT.NextField(TableHandle, 0)
While FieldNo > 0
RecFields = RecFields & Chr(9) &
MainForm.CFRONT.FieldToStr(TableHandle, hRec, FieldNo)
FieldNo = MainForm.CFRONT.NextField(TableHandle,
FieldNo)
Wend
TableBox.AddItem RecFields
Loop Until MainForm.CFRONT.NextRec(TableHandle, hRec,
1) = 0
End If
MainForm.CFRONT.FreeRec hRec
, ,
3009 Invalid Row Value
( ).
C/FRONT Navision
3-15
3-16
Navision
3.6 C/FRONT
Windows
, C/FRONT.
C/FRONT
.
C/FRONT
-.
, , ( ,
..) .
,
, C/FRONT
. , .
C/FRONT . Navision,
ODBC- CFRONT
SERVER, .
.
C/FRONT; C/FRONT
.
C/FRONT Navision
3-17
3.7
C/FRONT?
C/FRONT ?
C/FRONT?
? C/FRONT
Navision Attain Client.
3-18
Navision
C/FRONT?
C/FRONT ,
C/SIDE.
C/FRONT ?
C/FRONT?
? C/FRONT
Navision Attain Client.
4
OCX Navision
,
OCX Navision
C/AL.
.
OCX
OCX
4-2
Navision
4.1 OCX
(Custom Controls)
OLE
ActiveX. - , *.ocx,
OCX-. ,
DLL, OCX.
OCX
, ,
,
,
.
.
OCX Navision
4-3
4.2 OCX
,
,
.
, OCX,
. OCX,
,
OCX. ,
OCX- ,
. , OCX-
,
Navision
.
Navision Attain,
(finsamp.ocx), CD. OCX
Microsoft Visual C++ 4.2 OLE
ControlWizard ClassWizard.
.
,
. , ,
.
,
,
C/SIDE, .
1
. C/OCX,
readme.txt .
4-4
Navision
Control, Browse, :
,
Open. .
,
. OK,
Custom Controls.
,
Tools, Custom Controls.
(.
):
OCX Navision
4-5
4.3
,
( ) OCX
.
,
,
.
OCX ,
, C/OCX.
,
:
1
( FIN)
OCX .
4-6
Navision
Subtype AssistButton,
:
.
OK.
C/AL Globals ,
:
, Subtype
CLSID FinSamp.
OCX Navision
Subtype,
CLSID:
4-7
4-8
Navision
4.4
, C/AL
.
C/AL Symbol
Menu.
1
, (
),
.
,
F1,
.
OCX Navision
4-9
PVAL:
,
Paste Arguments ,
. Paste Arguments ,
4-10
Navision
.
.
,
OCX Navision.
, ,
Navision.
. ,
,
Navision, Navision
.
C++ Navision .
A.
OCX.
PVAL
FinSamp:
Amount := Fin.PVAL(Rate,NoOfPeriods,-Payment,0,0);
Error
FinSamp:
Result := Fin.Error
OCX ,
, (property
arrays).
,
.
(subscripting). , ,
OCX- MyControl.
SHORT,
COLOR.
SHORT.
Result C/AL Integer,
C/AL :
Result := MyControl.COLOR(2,3);
OCX Navision
4-11
: Error ErrorCode.
(exception handling).
, Error ( Boolean)
TRUE, .
FALSE. ,
, .
, C/OCX Samples, ,
,
,
,
.
( Error TRUE),
ErrorCode ,
, ,
(,
).
C/AL
:
IF (Fin.Error) THEN
// do error handling, for example:
ErrorHandlerFunction(Fin.ErrorCode)
ELSE
// continue processing
4-12
Navision
4.5
, , ,
OCX- .
OCX
" OCX".
,
, OCX-,
.
OCX ,
. ,
,
.
,
, .
,
.fob, Navision.
, Navision
1024 . Navision Attain 3.00
250 . ,
Navision ,
.
, ,
, OCX.
, ,
OCX. , OCX .
,
, OCX . ,
.
,
. ..
, , OCX,
,
System ID 9140 ( C/OCX).
OCX Navision
4-13
.
, C/SIDE
( ,
).
,
.
. C/SIDE
Invoke IDispatch
interface EXCEPINFO ( , , Inside
OLE). .
,
Navision (. C/SIDE
callback- OCX).
4-14
Navision
4.6
,
Windows media player. Windows
Media Player 6.0 . ,
Microsoft. ,
(project leader) Microsoft
:
.
1
(Text Box)
:
Editable = No
Focusable = No
Border = No
OCX Navision
4-15
MultiLine = Yes
SourceExpr = CaptionMsg
4
(Label)
:
AssistEdit = Yes
SourceExpr = FileName
6
OnAssistEdit ,
5, .
Caption = &Play
8
OnPush (Play)
.
WindowsMediaPlayer.AutoStart
:= TRUE;
WindowsMediaPlayer.ShowDisplay
:= TRUE;
WindowsMediaPlayer.AnimationAtStart := TRUE;
WindowsMediaPlayer.Open(FileName);
9
Caption = &Stop
10
OnPush (Stop)
.
WindowsMediaPlayer.Stop;
4-16
Navision
11
OnOpenForm
OnCloseForm
WindowsMediaPlayer.Stop;
CLEAR(WindowsMediaPlayer);
CLEAR(MSCommonDialog);
OCX Navision
4-17
4.7
OCX?
,
OCX?
OCX
?
OCX
Navision?
4-18
Navision
OCX?
,
OCX?
OCX. ,
.
OCX
?
OCX.
OCX
Navision?
5
Navision
(automation). ,
,
,
.
, .
Navision
5-2
Navision
5.1 NAVISION
.
Microsoft Word,
. ,
.
,
, .
, ,
,
(automation server).
MS Word, MS Excel, MS Outlook.
C/SIDE. ,
, C/SIDE (C/AL).
.
1
()
Automation.
()
Automation.
CREATE C/AL
, 1. CREATE
.
C/AL-
.
, CLEAR ()
.
,
.
4,
.
.
C/AL .
, ,
, . -, ,
Navision
5-3
, ,
,
. ,
,
,
, .
,
.
.
( CREATE)
.
,
, ,
( CREATE/CLEAR).
, ,
, .
5-4
Navision
5.2
,
( ) Automation
Automation Server .
,
.
,
. ,
.
(),
.
, ,
. Microsoft, ,
Visual
Basic. Tools, Macros,
Visual Basic Editor. ,
, ,
. ,
Microsoft Word, .
, Microsoft Excel,
, ,
.
, Microsoft Excel
10 .
.
,
.
Navision
Automation Server,
AssistButton, :
5-5
5-6
Navision
( ):
, C/AL
.
C/AL Symbol
Menu.
1
Navision
5-7
, (
),
.
,
F1,
.
2
,
Paste Arguments , .
Paste Arguments ,
.
.
,
5-8
Navision
OCX Navision.
, ,
Navision.
. ,
,
Navision, Navision
.
. A
" OCX
Controls Navision".
Report.
New .
Customer .
:
1
Record-,
Customer Amount. CustAmount.
Temporary Yes.
Automation- Microsoft
Excel 8.0 Object Library
Application . Excel.
Automation- Microsoft
Excel 8.0 Object Library
Workbook . Book.
Automation- Microsoft
Excel 8.0 Object Library
Range . Range.
Automation- Microsoft
Excel 8.0 Object Library
Navision
5-9
Worksheet . Sheet.
7
Automation- Microsoft
Excel 8.0 Object Library Chart
. Chart.
Text.
CustFilter 250.
CustDateFilter 30. j
30.
10
Integer.
NoOfRecordsToPrint, i.
11
Decimal MaxAmount.
C/AL Globals
:
5-10
Navision
5.3
.
, .
Date Filter.
OnPreReport.
CustFilter := Customer.GETFILTERS;
CustDateFilter := Customer.GETFILTER("Date Filter");
OnPreDataItem
:
i := 0;
CustAmount.DELETEALL;
CurrReport.CREATETOTALS("Sales (LCY)","Balance (LCY)");
Microsoft Excel. ,
CREATE NewServer,
FALSE. ,
.
NewServer TRUE, CREATE(wdApp,
TRUE) Microsoft Excel.
,
, ,
(. ,
).
CREATE(Excel);
Microsoft Excel :
Excel.Visible(TRUE);
Microsoft Excel General Protection Fault,
Excel-, Microsoft
Excel . ,
Microsoft Excel ,
. Microsoft
Excel , ,
.
Microsoft Excel:
Navision
5-11
Book:=Excel.Workbooks.Add(-4167);
Sheet:=Excel.ActiveSheet;
Sheet.Name := 'TOP 10';
Add Workbooks,
.
ActiveSheet Application,
.
.
-4167.
. COM- C/SIDE (
Application Designers' Guide).
, , .
OnAfterGetRecord
CALCFIELDS, Sales (LCY)
Balance (LCY).
CALCFIELDS("Sales (LCY)","Balance (LCY)");
, .
CustAmount,
Customer No. ,
ShowType, . ,
,
.
IF ("Sales (LCY)" = 0) AND ("Balance (LCY)" = 0) THEN
CurrReport.SKIP;
CustAmount.INIT;
CustAmount."Customer No." := "No.";
IF ShowType = ShowType::"Sales (LCY)" THEN BEGIN
CustAmount."Amount (LCY)" := -"Sales (LCY)";
CustAmount."Amount 2 (LCY)" := -"Balance (LCY)";
END ELSE BEGIN
CustAmount."Amount (LCY)" := -"Balance (LCY)";
CustAmount."Amount 2 (LCY)" := -"Sales (LCY)";
END;
. , NoOfRecordsToPrint
i , NoOfRecordsToPrint,
i 1; .
,
5-12
Navision
,
.
CustAmount.INSERT;
IF (NoOfRecordsToPrint = 0) OR (i < NoOfRecordsToPrint)
THEN
i := i + 1
ELSE BEGIN
CustAmount.FIND('+');
CustAmount.DELETE;
END;
OnPostDataItem ,
:
Sheet.Range('A2').Value := 'No.';
Sheet.Range('B2').Value := 'Name';
Sheet.Range('C2').Value := 'Sales (LCY)';
, CustAmount.
, j 3.
CustAmount.
Customer.
SETRANGE No. CustAmount.Customer No..
,
.
, . ,
Customer No., Customer Name Amount (LCY) ,
.
IF CustAmount.FIND('-') THEN BEGIN
j:='3';
REPEAT
Customer.SETRANGE("No.",CustAmount."Customer No.");
Customer.FIND('-');
Sheet.Range('A'+j).Value := CustAmount."Customer
No.";
Sheet.Range('B'+j).Value := Customer.Name;
Sheet.Range('C'+j).Value := -CustAmount."Amount
(LCY)";
j:=INCSTR(j);
UNTIL CustAmount.NEXT = 0;
END;
Navision
5-13
,
Excel.
, .
- ChartWizzard,
. ChartWizzard
.
,
Chart-(ChartArea, Legend ..).
:
Range:=Sheet.Range('B3:C12');
:
Chart:=Book.Charts.Add;
Chart.Name := 'Top 10 Customers - Graph';
, :
Chart.ChartWizard(Range,-4100,2,2,1,0,0,'Top 10
Customers','Customer','Sales (LCY)');
ChartWizard([Source], [Gallery], [Format], [PlotBy],
[CategoryLabels], [SeriesLabels], [HasLegend], [Title],
[CategoryTitle], [ValueTitle], [ExtraTitle])
8
ChartWizard:
Source
xlRange ,
xlSheet.Range(A2:C3).
-4100
Gallery
Stacked Column
. .
"
"
COM C/SIDE (
).
5-14
Navision
Format
:
Microsoft Excel
.
PlotBy
2 xlRows
XlRowCol .
CategoryLabels
,
.
SeriesLabels
,
.
HasLegend
TRUE ,
. ,
Microsoft Excel
.
Title
Top 10
Customers.
,
ValueTitle
: (X)
Customer
Extra Title
: (Z)
Sales (LCY)
Navision
5-15
5.4
C/SIDE ,
( OCX-).
Automation, ,
.
WithEvents Yes.
, ,
AL-.
, "::<_>."
,
MyEventVar, MessageReceived(...),
MyEventVar::MessageReceived(...).
.
" C/SIDE" Application Designers
Guide.
,
, .
,
Automation ,
.
,
Microsoft Word
Navision. , ,
.
( 18 Customer
21 Customer Card).
1
18 (design)
. ID = 50000, WordDoc.
Blob.
5-16
Navision
,
. :
MSWordApp
Automation
MSWordDoc
Automation
MSWordDocs
Automation
MSWordRange
Automation
FileName
Text
DocExists
Boolean
SaveChanges
Integer
250
Navision
5-17
NoPrompt
Integer
automation-, MSWordApp,
. ,
WithEvents Yes. ,
MSWordApp .
.
10
.
CreateWordDoc, ClearWordDoc.
:
CreateWordDoc()
IF ISCLEAR(MSWordApp) THEN
CREATE(MSWordApp);
ClearWordDoc()
CLEAR(MSWordRange);
CLEAR(MSWordDoc);
CLEAR(MSWordApp);
11
.
,
, ,
. ,
BLOB-, Word
. ,
. ,
,
. ,
OnPush, :
OnPush()
FileName := 'C:\TempNaviDoc.DOC';
SaveChanges := 0;
NoPrompt := 0;
DocExists := Rec.WordDoc.HASVALUE;
IF DocExists THEN BEGIN
IF EXISTS(FileName) THEN BEGIN
MESSAGE('You currently have a document open for
another customer.');
EXIT;
5-18
Navision
, Word-,
TempNaviDoc ,
,
, .
DocumentBeforeClose MSWordApp, ,
. :
MSWordApp::DocumentBeforeClose(Doc : Automation
"'Microsoft Word 9.0 Object Library'.Document";VAR
Cancel : Boolean)
Doc.Save;
13
, ,
Microsoft Word,
, ,
, BLOB-,
, , .
BLOB- ,
Calcfields :
MSWordApp::Quit()
ClearWordDoc;
WordDoc.IMPORT(FileName);
CurrForm.UPDATE(TRUE);
CALCFIELDS(WordDoc);
Navision
5-19
, ,
.
OnAfterGetCurrRecord :
CALCFIELDS(WordDoc);
, ,
. Navision CRM,
.
5-20
Navision
5.5
,
, , ,
.
, ,
. , ,
, ,
.
,
.fob, .
C/SIDE outgoing, .. ,
.
(coclass)
outgoing-, AL-
outgoing-.
39 .
1024
.
Navision
(connectable
object strategy) COM. Sink,
Navision, IDispatch ( IUnknown).
Navision
5-21
,
IDispatch.
30 .
, "::"
30 .
,
COM .
AL.
, .
AL. , , ,
Variant,
.
.
,
. ,
,
, .
(VAR-.
ByRe ) ,
.
. ,
.
float double (
C/AL Decimal)
-1E15 1E15.
.
5-22
Navision
string ( C/AL
Text) 1024
( ).
.
Navision
5-23
5.6
,
G/L Account Microsoft Excel .
,
.
:
1
, :
OnRun.
3
.
Account Types EndTotal, .
5-24
Navision
,
.
I,
, .
, .
// Make sure there are records in the GLAccount table
IF FIND('-') THEN BEGIN
CREATE(Excel);
Excel.Visible(TRUE);
Book:=Excel.Workbooks.Add(-4167);
Sheet:=Excel.ActiveSheet;
Sheet.Name := 'Account Information';
.
, ,
.
,
-. ,
, Navision
.
Sheet.Range('A1').Value := 'No.';
Sheet.Range('B1').Value := 'Name';
Sheet.Range('C1').Value := 'Balance';
RowNo :='3';
TotalRows := 0;
REPEAT
CALCFIELDS(Balance);
Sheet.Range('A'+RowNo).Value := GLAccount."No.";
Sheet.Range('B'+RowNo).Value := GLAccount.Name;
Sheet.Range('C'+RowNo).Value := GLAccount.Balance;
RowNo :=INCSTR(RowNo);
TotalRows := TotalRows + 1;
UNTIL NEXT = 0;
END;
END;
6
, ,
, ,
- .
.
Navision
5-25
5-26
Navision
5.7
Navision?
,
Navision?
, , ,
CREATE?
,
FREE?
. .
Navision
5-27
Navision?
,
Navision?
, , ,
CREATE?
,
FREE?
, CLEAR.
5-28
Navision
A.
,
,
Navision
COM,
.
:
C/AL COM
COM
C/AL.
A-II
Navision
A.1
,
COM, ,
. , Microsoft Visual C++,
.
,
,
, , Visual C++,
C/AL. COM
C/AL, ,
.
C/AL Symbol Menu ,
COM.
A-III
A.2 C/AL
COM
, C/AL
COM.
C/AL
COM
Boolean
VARIANT_BOOL
(VT_BOOL)
Option
long (VT_I4)
Integer
long (VT_I4)
Decimal
CURRENCY
CURRENCY COM
(VT_CY)
,
15
4 .
, Decimal
C/AL
18 .
,
Decimal ,
CURRENCY.
CURRENCY. ,
Decimal
:
CURRENCY
4 .
Char
BSTR (VT_BSTR)
Text
BSTR (VT_BSTR)
A-IV
Navision
C/AL
COM
Code
BSTR (VT_BSTR)
Date
DATE (VT_DATE)
Time
void (VT_VOID)
Automation
TypedObject,
UntypedObject
(VT_DISPATCH)
InStream
VT_STREAM
OutStream
VT_STREAM
Variant
VARIANT
(VT_VARIANT)
A-V
COM
C/AL
VT_UNKNOWN
InStream
OutStream
IID_IStream IID_SequentialStream.
,
.
short (VT_I2)
Integer
long (VT_I4)
Integer
float (VT_R4)
Decimal
double (VT_R8)
Decimal
CURRENCY
Decimal
(VT_CY)
CURRENCY COM
,
15 4
. ,
Decimal
18 .
DATE (VT_DATE)
Date
DATE
COM
.
C/AL (Date) (Time)
.
DATE COM,
,
DATE
COM Date
C/AL.
BSTR (VT_BSTR)
Text
A-VI
Navision
COM
C/AL
VARIANT_BOOL
Boolean
(VT_BOOL)
TypedObject/
Automation/OCX
UntypedObject
(VT_DISPATCH)
VT_EMPTY
Text
VARIANT
Variant
(VT_VARIANT)
Unsigned char
(VT_UI1), SCODE
(VT_ERROR)
SAFEARRAY
(VT_ARRAY)
(Variant) C/AL
unsigned char, SCODE SAFEARRAY
, .
C/AL.
ByRef,
C/AL . ,
, float,
C/AL Decimal.
Integer C/AL.
(: , ,
, , ,
COM
C/AL.)
COM
C/AL Symbol Menu, IDispatch. ,
COM-.
C/AL
Automation, ( )
COM-.
,
(automation server).
A-VII
,
. , Microsoft
Excel WORKBOOK. ,
USERDEF. C/SIDE USERDEF
: IDispatch Enumeration.
USERDEF IDispatch, ..
( )
GUID.
.
Automation .
, Microsoft Excel ,
WORKBOOK. ,
Automation
'Microsoft Excel 8.0 Object Library'.Workbook.
USERDEF Enumeration, ,
(, xl3DPie),
(, -4102).
Microsoft Office ,
VBA Object Browser.
A-VIII
Navision