Jerry Merrill--------------------------------AIP4020: Business Information Server (MAPPER) and DDE in Action
Agenda
• What Is DDE ?• BIS Support for DDE• Using DDE with:
- Excel - Word - Visual Basic
• DDE at Expanets• Questions and Answers
What is DDE?
Definition
• Dynamic Data Exchange
• An early Windows™ API that allows one DDE enhanced application to share data with or drive another DDE enhanced application
• Still supported but not being enhanced
• Replaced by OLE and other API’s
What is DDE?
Elements• Conversation - Windows assigns a handle - Can have more than one open
• Application - Name of main form (see manual)
• Topic - Document, worksheet or form
• Item - Bookmark, cell or field
What is DDE?
What can DDE do?• Read data
• Write data
• Link data items between applications
• Execute commands or macros
BIS Support for DDE
Requirements• BIS Hosts: - 2200, UNIX, NT, PC
• Workstations: - DW, PCE, MPC, GI
• Session: - foreground
Support• Outbound DDE only
BIS Support for DDE
@DDE: a function withmany command options
• (i) initiate a conversation
• (r) read data
• (p) poke data
• (e) execute command(s)
• (a) set an advise
• (u) clear an advise
@CLS close a conversation
BIS Support for DDE
Initiate:@DDE,”applctn”,,I,[topic],TEXT,,lbl <HDL>I6 .
Read, Poke, Advise, Unadvise:@DDE,””,<HDL>,R,item,TEXT .@DDE,”value(s)”,<HDL>,P,item,TEXT .@DDE,c,d,r,l,file,<HDL>,P,item,TEXT[,T] .@DDE,””,<HDL>,A,item,TEXT .@DDE,””,<HDL>,U,item,TEXT .
Execute:@DDE,”command_string”,<HDL>,E,,TEXT .
Using DDE with Excel
@ DDE,"EXCEL",,I,,TEXT,,LIN1 <XL>I6 ; GTO 34 . @ PC,B <XDIR>'EXCEL.EXE '<DDIR>WBS.XLS GTO 35 .@34:DDE,"[OPEN('"'<CDIR>WBS.XLS'"')]",<XL>,E,,TEXT @35:CLS,<XL> DDE,"EXCEL",,I,SHEET1,TEXT <WS>I6 . ...
Application excel
Topics system worksheet name
Items system: sysitems , topics sheet cell: R1C1 sheet range: R1C1:R3C7
Using DDE with Excel
@DDE,"[OPEN('"’STDWBS.XLS'"')]",<XL>,E,,TEXT . Excel@DDE,"[CALCULATION(3)]",<XL>,E,,TEXT,,LIN1 . off@CLS,<XL> DDE,"EXCEL",,I,SHEET1,TEXT <WS>I6 . sheet ... @DDE,"[CALCULATE.NOW]",<WS>,E,,TEXT . do now@DDE,"[CALCULATION(1)]",<WS>,E,,TEXT . on@DDE,"[SAVE.AS('"’NEWWBS.XLS'"')]",<WS>,E,,TEXT .@CLS,<WS> . sheet
Execute:
• Command set in Excel 4.0 Function Reference and/or XLMACR8.HLP file• Open/save/close• Calculation on/off
Using DDE with Excel
@DDE,”3.14159",<WS>,P,R4C6,TEXT . single cell
@DDE,”Able|Baker|Charlie",<WS>,P,R3C1:R3C3,TEXT . 1,280 character limit range of cells@DDE,-0,2,DDETEMP,<WS>,P,R1C1:R3C3,TEXT,T . 64,000 character limit range of cells
@PCW,-2,2,0199 <PTH><FIL>'.txt' . large data @PC,B <XDIR>'EXCEL.EXE '<PTH><FIL>'.txt' .
Poke:
• Single cell• Range of cells• Large amounts of data
Using DDE with Excel
@DDE,"[Select('"'R3C1:R3C2'"')]",<XL>,e,,TEXT . the *=== row@DDE,"[Column.Width(,,,3)]",<XL>,e,,TEXT . set column width@. @DDE,"[Select('"'R1C1:R2C2'"')]",<XL>,e,,TEXT . the headers@DDE,"[Format.Font('"'Arial'"',10,True)]",<XL>,e,,TEXT . Bold@DDE,"[Alignment(3)]",<XL>,e,,TEXT . center @. @DDE,"[Select('"'R3C2:R14C2'"')]",<XL>,e,,TEXT . the numbers@DDE,"[Format.Number('"'$#,##0.00'"')]",<XL>,e,,TEXT . dollar
Format:
• Column width• Font and alignment• Number format
Using DDE with Excel
@DDE,”",<WS>,R,R4C6,TEXT . single cell@CHG INPUT$ <CELLVALUE>H12 .
@DDE,”",<WS>,P,R3C1:R3C3,TEXT . range of cells@CHG INPUT$ <CELL1>H10,<CELL2>I6,<CELL3>F8.2 . 6,000 character limit
@DDE,””,<WS>,R,R1C1:R2C3,TEXT . @RDL,-0,2 1-80 <TABBED_DATA1>S . medium data@RDL,-0,3 1-80 <TABBED_DATA2>S . 6,000 character limit
Read:
• Single cell• Range of cells• Medium amounts of data
Using DDE with Excel
@DDE,"[RUN('"’MACRO1'"')]",<XL>,E,,TEXT .
@DDE,"[RUN('"’OTHER.XLS!MACRO2'"')]",<XL>,E,,TEXT .
Execute a Macro:
• Build with “Record a Macro” or Visual Basic for Applications• Store in current or external worksheet • Execute from BIS
Using DDE with Excel
D E M O
Using DDE with Word
@DDE,"WINWORD",,I,,TEXT,,LIN1 <WD>I6 ; GTO LIN2 .@PC,B <WDIR>'WINWORD.EXE' GTO LIN -1 .@DDE,"[FILEOPEN .NAME='"'<SKEL>'"']",<WD>,E,,TEXT . @DDE,"[FILESAVEAS .NAME='"'<NEW>'"', .ADDTOMRU=1]",\ <WD>,E,,TEXT .@DDE,"WINWORD",,I,<NEW>,TEXT <DOC>I6 . ...
Application winword
Topics system document filename
Items system: sysitems, topics document: bookmark
Using DDE with Word
@DDE,"",<WD>,R,Topics,TEXT . what files are open? @CHG INPUT$ <SYS>H6,<OPEN1>H18,<OPEN2>H18 .@IF <OPEN2> NE '’ \ . DDE,"[FileCloseAll]",<WD>,E,,TEXT . close them
@DDE,"[FileOpen .NAME='"'<INPDOC>'"']",<WD>,E,,TEXT .
Getting a Clean Start:
• Find out if any documents are open
• Close previously opened documents
• Open your own document
Using DDE with Word
@DDE,"[StartOfDocument]",<DOC>,e,,text . @DDE,"[EditFind .Find='"'!target!'"']",<DOC>,e,,text @DDE,”[Font ‘”’Courier New’”’],<DOC>,e,,text . @DDE,”[FontSize 10],<DOC>,e,,text .@DDE,”[LineDown 3],<DOC>,e,,text .@DDE,”[SelectCurSentence],<DOC>,e,,text .@DDE,”[EditCut],<DOC>,e,,text .@DDE,"[EndOfDocument]",<DOC>,e,,text . @DDE,”[EditPaste],<DOC>,e,,text .
Execute:
• Edit using the document’s conversation
• Command set in the WordBasic manual and/or WRDBASIC.HLP file
Using DDE with Word
@DDE,”NT",<DOC>,p,BkMrk,text . pre-existing
@DDE,"[EditFind .Find='"'!terms!'"']",<DOC>,e,,text .@DDE,"[EditBookMark .Name='"'Terms'"', .Add]",\ . <DOC>,e,,text . created @DDE,”cash only",<DOC>,p,Terms,text .
@RDL,-2,<LN>,20 ‘FI’,’VA’ <FLD>H,<VAL>S LDV,P <VAL> .@DDE,"[EditReplace .Find='"'<FLD>'"', \ . .Replace='"'<VAL>'"', .ReplaceOne]", <DOC>,E,,TEXT .@INC <LN> GTO LIN -3 .
Poke:
• Bookmark• Edit/Replace• Table driven
*OC FIELD VALUE *==.============.==============| 2|!name! |XYZ Corp |12|!appl! |RQS | 1|!runcount! |1,036 | 1|!runlines! |104,455 | 1|!drwcnt! |36 | 1|!ridcnt! |15,239 | 1|!lincnt! |10,685,449 | 1|!dbsize! |2.7090
Using DDE with Word
@DDE,"[ViewHeader]",<DOC>,e,,text .@DDE,”[ShowNextHeaderFooter]",<DOC>,e,,text . @DDE,”[EditFind .Find = ‘”’!cust!’”’]", <DOC>,e,,text@DDE,”[Insert ‘”’<cust>’”’]",<DOC>,e,,text .@DDE,"[ViewHeader]",<DOC>,e,,text .
Headers and Footers:
• Separate from body of text• Enter, edit and exit
Using DDE with Word
@DDE,"[EditFind .Find='"'!freq!'"']",<DOC>,e,,text . @DDE,"[EditBookMark .Name = '"'CmdFreq'"',\ . .Add]",<DC>,e,,text .@DDE,-3,6,ddetemp,<DOC>,p,CmdFreq,text,t .@. @RSR,ECAB$,H,26 0010 . formatting commands@LDV <LN8>I2=2 . get command@RDL,-8,<LN8>,LIN3 1-132 <MAC>S LDV,P <MAC> . @DDE,"[<MAC>]",<DOC>,e,,TEXT . execute command @INC <LN8> GTO LIN -2 . next command
Poke and Format Tables:
• Create a bookmark• Poke in table data• Reformat table
Using DDE with Word@10:brk,ecab$,b . EditBookmark .Name = ”CmdFreq", .Goto TextToTable .ConvertFrom = "1", .NumColumns = ”3",¬ .NumRows = "4", .InitialColWidth = "Auto",¬ .Format = "0", .Apply = "167" BorderOutside 1 TableRowHeight .LeftIndent = ”0.81" StartOfRow TableSelectColumn TableColumnWidth .ColumnWidth = ”0.80", .NextColumnTableColumnWidth .ColumnWidth = ”2.59", .NextColumnTableColumnWidth .ColumnWidth = "0.69" StartOfColumn StartOfRow TableSelectRow BorderOutside 1 @ brk rnm -8 esr .
• Reformatting commands
Using DDE with Word • Get indent and column size from
Table > Cell Height and Width...
Using DDE with Word
D E M O
Using DDE with Visual Basic
Begin VB.Form frmMAPZIP Caption = "MAPZIP" LinkMode = 1 'Source LinkTopic = "frmMAPZIP"
Application .EXE name
Topics form
Items text fields only
@DDE,"MAPZIP",,I,frmMAPZIP,TEXT,,LIN1 <MZ>I6 ;GTO 5 .@PC,B <PCME>MAPZIP.EXE ; GTO LIN -1 .@5:. ...
Using DDE with Visual Basic
VB Side:
Using DDE with Visual BasicBIS Side:
@DDE,"<ARCHIVE>",<MZ>,p,txtArchive,text . SET ARCHIVE@DDE,"<PCME>",<MZ>,p,txtDirectory,text . SET DIRECTORY@DDE,"Y",<MZ>,p,txtDeleteAfter,text . SET DELETE AFTER@.@PCW,<c>,<d>,<r>,2 <PCME><FILE> . EXPORT RID@DDE,"<FILE>",<MZ>,p,txtFileMask,text . SET FILE NAME@DDE,"A",<MZ>,p,txtStatus,text . FORCE THE ADD@.@DDE,"",<MZ>,r,txtStatus,text . CHECK STATUS@CHG INPUT$ <STAT>H1 IF <STAT> NE C,(LIN-1) ; . @.@DDE,"E",<MZ>,p,txtStatus,text . END MAPZIP.EXE@CLS,<MZ> .
Using DDE with Visual Basic
D E M O
DDE at Expanets
BITS (Business Info Tracking Sys)• VSS-RADS shell for managing ESS
• Uses DDE for proposals, contracts, memos
VSS-MAPPORT• VSS-RADS shell for portation proposals
• Highly automated “Inventory Report and Portation Proposal”
DDE at Expanets
wbs.xls invtrpt.doc
GenReport
SizeProject
Load &Analyze
portation rid
InventoryRids
VSS-MAPPORT Process
Questions and Answers
•What is DDE?
•BIS support for DDE
•Using DDE with:- Excel- Word- Visual Basic
•DDE at Expanets??
For more information contact:Jerry MerrillDirector of Migration ServicesExpanets15941 No 77th StreetScottsdale, AZ 85260e-mail: [email protected]: www.expanets-az.com
Top Related