Инструмент OLE

CONTEST:


      1.Task for the laboratory work.


      2.Theory part.

           Build-in FoxProw commands
OLE


Practical usage of data of data transfer.

Technical facilities & literature used.

Applications



                      1. Task for the laboratory work.

The aim of this  work  is  to  show  our  ability  to  work  with  different
Microsoft applications & to produce the data exchange  between  them,  using
build-in commands, OLE instruments & other possible facilities.

In the practical examples we will show the data transfer process  using  the
following Microsoft Applications: FoxPro, Excel & Word.

Also it is necessary to present the theory about the data  transfer  for  it
is impossible to use all of them in the examples.

                               2. Theory part.
There are several different ways to transfer data from FoxPro to different
Microsoft Applications & vice versa.



                        1. Built-in FoxPro commands.

      Operator can use several built-in commands of FoxPro such as Export,
Import, Copy and Append from.

      Now we would like to present  some  helpful  information  about  these
operands.

      The format of EXPORT is:

EXPORT TO <file>
      [FIELDS <field list>]
      [<scope>]
      [FOR <expL1>]
      [WHILE <expL2>]
      [NOOPTIMIZE]
      [[TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1 | WRK | XLS]]

Remarks

Use EXPORT to use FoxPro data in other software packages.
If the table/.DBF you are exporting from is indexed, the  new  file  created
is created in the indexed order.

Clauses

<file>

Include the name of the file to which FoxPro exports data.  If  you  do  not
include an extension with the file  name,  the  default  extension  for  the
specified file type is assigned.

FIELDS <field list>

Include FIELDS <field list> to specify which fields are copied  to  the  new
file.  If the FIELDS clause is omitted, all fields are  copied  to  the  new
file.  Memo and general fields are not copied to the new file even if  their
names are included in the field list.

<scope>

The scope clauses are:  ALL, NEXT <expN>, RECORD <expN>,  and  REST.   These
are explained in the Overview of the FoxPro Language chapter in  the  FoxPro
Language Reference.  Commands which include  <scope>  operate  only  on  the
table/.DBF in the active work area.
You can specify a scope of records to  copy  to  the  new  file.   Only  the
records that fall within the range of records specified  by  the  scope  are
copied to the new file.
The default scope for EXPORT is ALL records.

FOR <expL1>

If the FOR clause  is  included,  only  records  that  satisfy  the  logical
condition <expL1> are copied to the new  file.   Including  the  FOR  clause
lets you conditionally copy records, filtering out undesired records.
Rushmore optimizes an EXPORT ...  FOR  <expL1>  command  if  <expL1>  is  an
optimizable  expression.   For  best   performance,   use   an   optimizable
expression  in  the  FOR  clause.   A  discussion  of  Rushmore  optimizable
expressions appears in  the  Optimizing  Your  Application  chapter  in  the
FoxPro Developer's Guide.

WHILE <expL2>

If the WHILE clause is included, records are copied to the new file  for  as
long as the logical expression <expL2> evaluates to true (.T.).

NOOPTIMIZE

To cause Rushmore not to optimize  EXPORT,  include  NOOPTIMIZE.   For  more
information, see SET OPTIMIZE and the Rushmore discussion in the  Optimizing
Your Application chapter of the FoxPro Developer's Guide
.

TYPE

You must specify the type of file to be  created.   The  TYPE  key  word  is
optional, but you must specify one of the following file types.

DIF

When you specify DIF, each field from a FoxPro table/.DBF becomes  a  vector
(column) and each record becomes a tuple (row) in a  DIF  (Data  Interchange
Format) file, used by VisiCalc.  The  new  file  name  is  assigned  a  .DIF
extension if an extension isn't included in <file>.

MOD

Use the MOD clause to export to a file in Microsoft Multiplan  version  4.01
MOD format. The new file name is assigned an .MOD  extension  if  you  don't
include an extension in <file>.

SYLK

A SYLK file is  a  Symbolic  Link  interchange  format  (used  by  Microsoft
Multiplan) in which each field from a FoxPro table/.DBF becomes a column  in
the spreadsheet and each record becomes a row.  By default, SYLK file  names
have no extension.

WK1

Include this option to create  a  Lotus  1-2-3  spreadsheet  from  a  FoxPro
table/.DBF.  A .WK1 extension is assigned to the spreadsheet file  name  for
use with Lotus 1-2-3 revision 2.x.  Each field from the  table/.DBF  becomes
a column in the new spreadsheet, and each record in the  table/.DBF  becomes
a spreadsheet row.

WKS

A Lotus 1-2-3 spreadsheet can be created from a FoxPro table/.DBF with  this
option.  A .WKS extension is assigned to the spreadsheet file name  for  use
with Lotus 1-2-3 revision 1-A.  Each field from  the  table/.DBF  becomes  a
column in the new  spreadsheet,  and  each  record  becomes  a  row  in  the
spreadsheet.

WR1

Include this option to create a Lotus Symphony  spreadsheet  from  a  FoxPro
table/.DBF.  A .WR1 extension is assigned to the spreadsheet  for  use  with
Symphony version 1.01.  Each field from the table/.DBF becomes a  column  in
the new spreadsheet, and each record in the table/.DBF becomes a row in  the
spreadsheet.

WRK

A Lotus Symphony spreadsheet can be created from a  FoxPro  table/.DBF  with
this option.  A .WRK extension is assigned to the spreadsheet file name  for
use with Symphony version 1.10.  Each field from the  table/.DBF  becomes  a
column in the new spreadsheet, and each record in the table/.DBF  becomes  a
row in the spreadsheet.

XLS

Include XLS to create a spreadsheet you can use in  Microsoft  Excel.   Each
field in the +selected table/.DBF becomes a column in the spreadsheet;  each
table/.DBF record becomes a row in  the  spreadsheet.   An  .XLS  file  name
extension is assigned to the  newly  created  spreadsheet  file  unless  you
specify a different extension.

      The format of IMPORT is:
IMPORT FROM <file>
      [TYPE]
FW2 | MOD | PDOX | RPD | WK1 | WK3 | WKS | WR1 | WRK | XLS

      As it shown  in  format  (TYPE)  there  are  many  possible  Microsoft
applications to import from to FoxPro but the meaning of  these  properties,
description of which you can see in the previous chapter,  that’s  why  it’s
not necessary to list all of them again.  So  we  will  mention  those  most
common used.

Remarks

Most software packages store their data in a  file  format  that  cannot  be
opened directly in FoxPro.  IMPORT creates  a  new  FoxPro  table/.DBF  from
data stored in file formats that FoxPro cannot read.
A new table/.DBF is created with the same name  as  the  file  the  data  is
imported  from.   A  .DBF  extension  is  assigned  to  the  newly   created
table/.DBF.

Clauses

<file>

<file> is the name of the file to import data from.  If  you  don't  include
an extension with the file name, the default  extension  for  the  specified
file type is assumed.

TYPE

The key word TYPE is optional, but you must include  one  of  the  following
file types described below.

PDOX

Include PDOX to import Paradox files.  Database files  in  Paradox  versions
3.5 and 4.0 by Borland can be imported by including the PDOX option.

XLS

Include XLS to import data from Microsoft Excel spreadsheets  versions  2.0,
3.0 and 4.0.  Columns from the spreadsheet become fields in the  table/.DBF,
and the spreadsheet rows become  records  in  the  table/.DBF.   Spreadsheet
files created in Microsoft Excel have an .XLS extension.

The format of COPY is:

COPY TO <file>
      [FIELDS <field list>]
      [<scope>]
      [FOR <expL1>]
      [WHILE <expL2>]
      [[WITH] CDX] | [[WITH] PRODUCTION]
      [NOOPTIMIZE]
      [[TYPE] [FOXPLUS | DIF | MOD | SDF | SYLK| WK1 | WKS |  WR1  |  WRK  |
XLS |
DELIMITED [WITH <delimiter> WITH BLANK | WITH TAB]]]

Remarks

If an index order is set, records are copied in master index order.

Clauses

<file>

The name of the new file to which COPY TO  copies  data  is  specified  with
<file>.  If you do not include an extension with the file name, the  default
extension for the specified file type is assigned.  If you do not specify  a
file type, COPY TO creates a new table/.DBF and assigns the table/.DBF  file
name the default extension .DBF.

FIELDS <field list>

If you include FIELDS and a field list, you can  specify  which  fields  are
copied to the new file.  If the FIELDS clause is  omitted,  all  fields  are
copied to the file.  If the file you are creating is not  a  database,  memo
fields aren't copied to the new file even if memo field names  are  included
in the field list.

<scope>

The scope clauses are:  ALL, NEXT <expN>, RECORD <expN>,  and  REST.   These
are explained in the Overview of the FoxPro Language chapter in  the  FoxPro
Language Reference.  Commands which include  <scope>  operate  only  on  the
table/.DBF in the active work area.
You can specify a scope of records copied to a file.  Only the records  that
fall within the range of records specified by the scope are copied.
The default scope for COPY TO is ALL records.

FOR <expL1>

If the FOR <expL1> clause is  included,  only  the  records  for  which  the
logical condition <expL1> evaluates to true (.T.) are copied  to  the  file.
Include FOR <expL1> to conditionally copy records, filtering  out  undesired
records.
Rushmore optimizes COPY TO with a  FOR  <expL1>  clause  if  <expL1>  is  an
optimizable  expression.   For  best   performance,   use   an   optimizable
expression in the FOR <expL1> clause.  A discussion of Rushmore  optimizable
expressions appears in  the  Optimizing  Your  Application  chapter  in  the
FoxPro Developer's Guide.

WHILE <expL2>

If WHILE <expL2> is included, records are copied  as  long  as  the  logical
expression <expL2> evaluates to true (.T.).

[WITH] CDX | [WITH] PRODUCTION

If the table/.DBF you copy from has a structural index file, you can  create
a  structural  index  file  for  the  new  table/.DBF.   Including  CDX   or
PRODUCTION  creates  an  identical  structural  index  file  for   the   new
table/.DBF.  The tags and index expressions  from  the  original  structural
index file are copied to  the  new  structural  index  file.   The  CDX  and
PRODUCTION clauses have the same effect.
Do not include CDX or PRODUCTION if you are copying to a file other  than  a
new FoxPro table/.DBF.

NOOPTIMIZE

Include NOOPTIMIZE to cause Rushmore to not  optimize  COPY  TO.   For  more
information,  see  SET  OPTIMIZE  or  consult  the  discussion  of  Rushmore
optimization in the  Optimizing  Your  Application  chapter  in  the  FoxPro
Developer's Guide.

TYPE

If the file you are creating isn't a FoxPro  table/.DBF,  you  must  specify
its file type.  Although you must specify a file type, you need not  include
the key word TYPE.  You can create a wide variety of  different  file  types
including DELIMITED ASCII text files  in  which  you  can  specify  a  field
delimiter.

FOXPLUS

FoxPro memo files have a different structure than FoxBASE+ memo  files.   If
your source FoxPro table/.DBF contains a memo  field,  include  the  FOXPLUS
clause to create a table/.DBF that can be  used  in  FoxBASE+.   The  FoxPro
memo field cannot contain binary data  because  FoxBASE+  does  not  support
binary data in memo fields.

SDF

An SDF (System Data Format) file is an ASCII  text  file  in  which  records
have a fixed length and end with a carriage return and  line  feed.   Fields
aren't delimited.  The SDF file name is assigned a .TXT  file  extension  if
you do not include an extension.

SYLK

A SYLK file is  a  Symbolic  Link  interchange  format  (used  in  Microsoft
MultiPlan) in which fields from the FoxPro table/.DBF become columns in  the
spreadsheet and records become rows.  SYLK file names have no extension.

DELIMITED [WITH <delimiter> | WITH BLANK | WITH TAB]

A DELIMITED file is an ASCII text file in which  each  record  ends  with  a
carriage return and line feed.  The default  field  separator  is  a  comma.
Since character data may include commas, character fields  are  additionally
delimited with double quotation marks.
In  the  following  example  there  are  2  character  fields  ("Smith"  and
"TELEPHONE") delimited with double quotation marks.  There  is  one  numeric
field which is not delimited since numeric data  does  not  contain  commas.
The 3 fields are separated with commas.

"Smith", 9999999, "TELEPHONE"

The DELIMITED WITH <delimiter> option can be  used  to  replace  the  double
quotation marks with one of your choice.
The comma is not truly a delimiter.  However, the DELIMITED  WITH  BLANK  or
DELIMITED WITH TAB clauses allow you to replace the  comma  field  separator
with either a space or a tab.  The data should not contain  embedded  spaces
or tabs.
You cannot combine the WITH <delimiter> clause with either  the  WITH  BLANK
or WITH TAB clauses.
Unless you specify otherwise, a .TXT extension  is  assigned  to  all  newly
created DELIMITED files.


The format of APPEND is:

APPEND FROM <file> | ?
      [FIELDS <field list>]
      [FOR <expL>]
      [[TYPE]    [DELIMITED [WITH TAB | WITH <delimiter> | WITH BLANK] |
DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS |
WR1 | WRK | XLS]]

Remarks

The file you are appending from is assumed to be a FoxPro table with a  .DBF
extension.  If the file you want to  append  from  is  a  FoxPro  table  and
doesn't have a .DBF extension, you must specify its extension.  If the  file
is a not a FoxPro table, you must specify the type of file you append  from.

Before you can append from a table created in dBASE IV that contains a  memo
field, you must first open the table in FoxPro with USE.  You  are  prompted
with "Convert MEMO file to FoxPro Format?"  Choose Yes.
If you append from a FoxPro table, the table you append from can be open  in
another work area.  You can also append from a table that isn't open but  is
available on disk and a shared table  opened  when  SET  EXCLUSIVE  is  OFF.
When the table you append from contains records  marked  for  deletion,  the
records are not marked for deletion after they are appended.

If you include the ? clause instead of including  a  table  name,  the  Open
dialog appears so you can choose a table to append from.

Clauses

<file>

Specify the name of the file to append  from  with  <file>.   If  you  don't
include a file name extension, the default extension .DBF is assumed.

FIELDS <field list>

APPEND FROM supports an optional <field list>.  Data  is  only  appended  to
the fields specified in the field list.

FOR <expL>

The entire source file is appended to the table unless you include  the  FOR
clause.  If the FOR clause is included, a new record is  appended  for  each
record in the file source for which  <expL>  evaluates  to  a  logical  true
(.T.).  Records are appended until the end of the file is reached.

TYPE

If the file you are appending from isn't a FoxPro table,  you  must  specify
the file TYPE.  Although you must  specify  the  file  type,  you  need  not
include the key word TYPE.  You can append from a wide variety of  different
file types including DELIMITED ASCII text files in which you can  specify  a
field delimiter.
If the file you are appending from  doesn't  have  the  usual  default  file
extension for that type of file, the  source  file  name  must  include  the
file's extension.  For example, Microsoft Excel spreadsheets  normally  have
an .XLS file name extension.  If the spreadsheet you are appending from  has
an  extension  other  than  the  expected  .XLS,  be  sure  to  specify  the
extension.

Caution   When appending from a spreadsheet, the  data  in  the  spreadsheet
must be stored in a row major order rather than a column major order.   This
allows the appended spreadsheet data to match the table structure.

DELIMITED [WITH TAB | WITH <delimiter> | WITH BLANK]

A DELIMITED file is an ASCII text file in which  each  record  ends  with  a
carriage return and line feed.  Field contents are by default assumed to  be
separated from each other by  commas,  and  character  field  values  to  be
additionally delimited by double quotation marks.  For example:

"Smith", 9999999, "TELEPHONE"

The DELIMITED WITH TAB option can be used to  specify  files  which  contain
fields separated from each other by tabs rather than commas.  The  DELIMITED
WITH <delimiter> option can be used to indicate that  character  fields  are
delimited by a character other than the quotation mark.  The DELIMITED  WITH
BLANK option can be used to specify files which contain fields separated  by
spaces instead of commas.  The file extension is assumed to be .TXT for  all
delimited files.
You can import dates from delimited files if the dates are  in  proper  date
format.  The date format defaults  to  'mm/dd/yy'.   Including  the  century
portion of a date is optional. FoxPro will import a date that  includes  the
century.  If the century isn't included in a date (for example  '12/25/92'),
the Twentieth century is assumed.  Date delimiters can  be  any  non-numeric
character except the delimiter that separates the fields  in  the  delimited
file.

Dates in other formats can be  imported  if  their  format  matches  a  date
format available in SET DATE.  To import dates that are not in  the  default
format, issue SET DATE with the  proper  date  format  before  using  APPEND
FROM.  To test if a date format can be successfully imported,  use  it  with
CTOD( ).  If the date is  acceptable  to  CTOD(  ),  the  date  will  import
properly.

FW2

FW2 files are created by Framework II.  FW2 file names are assumed  to  have
a .FW2 extension.


RPD

RPD files are created by RapidFile version 1.2.  RPD file names are  assumed
to have an RPD extension.

SDF

An SDF (System Data Format) file is an ASCII  text  file  in  which  records
have a fixed length and end with a carriage return and a line feed.   Fields
are not delimited.  The file name extension is assumed to be  .TXT  for  SDF
files.

WK3

Data from a Lotus 1-2-3  spreadsheet.   Each  column  from  the  spreadsheet
becomes a field in the table; each spreadsheet row becomes a record  in  the
table.  A .WK3 file name extension is assigned to a spreadsheet  created  in
Lotus 1-2-3 revision 3.x.



                                  2.2. OLE.

Another method of data exchange between not  only  FoxPro  but  between  all
Windows based applications is OLE (OBJECT LINKING AND EMBEDDING)

First you can use a FoxPro built in command Append General.


APPEND GENERAL <general field> FROM <file>
      [LINK]
      [CLASS <ole class>]

APPEND GENERAL is supported in FoxPro for Windows only.
If an OLE object already exists in the general field, it  is  replaced  with
the OLE object from the file.

Clauses

<general field>

Include <general field> to specify the name of the  general  field  the  OLE
object is placed in.  You can specify a general field in a table open  in  a
noncurrent work area by including the table alias with the field name.

<file>

Include <file> to specify the file containing  the  OLE  object.   You  must
include the entire file name, including  its  extension.   If  the  file  is
located in a directory other than the  current  default  directory,  include
the path with the file name.

LINK

If LINK is included, a link is created between the OLE object and  the  file
that contains the object.  The OLE object appears in the general  field  but
the object's definition remains in the file.  If LINK is  omitted,  the  OLE
object is embedded in the general field.

CLASS <ole class>

Include the CLASS clause to specify an OLE class for  an  OLE  object  other
than the default class.

Tip   To determine the class for an OLE  object,  run  REGEDIT  and  double-
click on the OLE object.  The class name is listed under Identifier.

You can  specify  a  class  name  when  the  file  extension  for  the  file
containing the OLE object is different than the default  extension  and  you
want to force the behavior for the class.  If the default extension  can  be
used by multiple OLE servers, include the  class  to  specify  a  particular
server.



                    3. Practical usage of data transfer.

In applications you can find the examples of the  above  mentioned  commands
usage and their results in different Microsoft Applications (FoxPro, Word  &
Excel).



Technical facilities & literature used.

During creating this program the following equipment & software was used:

Pentium 100 MHz PC with 8 Mb RAM
Microsoft Windows’95
Microsoft Visual FoxPro 3.0
Microsoft Word 7.0
Microsoft Excel 7.0
Printer Hewlett Packard LaserJet5L

No special literature but build-in HELP of Visual FoxPro 3.0, Word 7.0,
Excel 7.0 & useful advices was used to create this laboratory work.



5. Applications.



Application 1 “Transfering data form FoxPro to Word & Excel”



[pic]



Application2  “FoxPro database converted to Excel (.xls) file”



[pic]



Application 3 “FoxPro database converted to Word (.sdf) file”



[pic]



Application 4 “FoxPro base converted in Word file - in Excel”



[pic]



Application 5 “Excel file in Word”



[pic]