Мы предполагаем, что вам понравилась эта презентация. Чтобы скачать ее, порекомендуйте, пожалуйста, эту презентацию своим друзьям в любой соц. сети. Кнопочки находятся чуть ниже. Спасибо.
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована
2 года назад
Where OO meets the GUI for.NET Its new, its different, its still just ABL Session 135 Peter Judge Principal Software Engineer OpenEdge Development
© 2009 Progress Software Corporation. All rights reserved. What is the GUI for.NET? ABL Code Classes Procedures Built-in objects OE Architect Visual Designer WinForms Controls & components Microsoft UltraControls 3 rd -party 2
© 2009 Progress Software Corporation. All rights reserved. Who does what? OpenEdge Built-in Progress.* classes do the ABL-to-.NET talking All ABL classes inherit Progress.Lang.Object -All.NET classes inherit System.Object … which also inherits Progress.Lang.Object You Composition of UI UI logic Business logic procedures or classes (on AppServer) 3
© 2009 Progress Software Corporation. All rights reserved. Building blocks used by Demo OOABL Classes MainForm ItemUserControl DepartmentDataObject CustomerDataObject SalesrepDataObject.NET Controls OpenEdge built-ins Progress.Windows.Form Progress.Windows.UserControl Progress.Data.BindingSource Microsoft System.Windows.Forms TextBox & Label DataGridView TreeView SplitContainer Panel GroupBox Sports2000 4
© 2009 Progress Software Corporation. All rights reserved. If you can read this, we survived the demo 5
© 2009 Progress Software Corporation. All rights reserved. Form design Start with static nodes Easy resizing & layout Multiple UI elements share ABL data Compose complex controls: ABL User Controls 6
© 2009 Progress Software Corporation. All rights reserved. ProBindingSource: Binding UI controls to ProDataSet data Set DataSource, DataMember on dataGridOrder Set BindingSourceProp on Item detail UserControl edtItemNum:DataBindings:Add(new Binding( "Text", BindingSourceProp, "eOrder.eOrderLine.eItem.ItemNum")). dataGridOrder:DataMember = "eOrder". dataGridOrder:DataSource = bsCustomer. ucItems1:BindingSourceProp = bsCustomer. eCustomer eOrder eOrderLine eItem ItemNum ProDataSet 7
© 2009 Progress Software Corporation. All rights reserved. Interacting with the.NET UI: Handling UI events 8 method private InitializeComponent(): /* lotsa stuff */ treeView1:NodeMouseClick:subscribe(treeView1_NodeMouseClick). method private void treeview1_NodeMouseClick( sender as System.Object, e as TreeNodeMouseClickEventArgs ): System.EventArgs System.Windows.Forms. MouseEventArgs System.Windows.Forms. TreeNodeMouseClickEventArgs Empty : System.EventArgs Button : MouseButtons Clicks : integer Node : TreeNode
© 2009 Progress Software Corporation. All rights reserved. Interacting with the.NET UI: tree node click event handler Everythings an object e:Node - Just Like Any Other Node Object Chained calls Call ABL node creation method Using USING Makes Life Easier! using System.Windows.Forms.*. method private void tree1_NodeMouseClick( sender as System.Object, e as TreeNodeMouseClickEventArgs ): /* Deal with top level (zero-based) */ if e:Node:Level eq 0 then do: cNodeName = e:Node:Name. /* only create the children once. */ if e:Node:Nodes:Count eq 0 then case cNodeName: when 'CustomerNode' then do: CreateCustomerNodes(). DecorateCustomerNodes(). end./* customer */ 8
© 2009 Progress Software Corporation. All rights reserved. CreateCustomerNodes() method oData contains filled ProDataSet DatasetHandle property same as handle variable BindingSource uses ProDataSet Nodes property collection of Node objects Query stuff is all standard ABL Can work on new node def var oParent, oNode as TreeNode. oData = GetCustomerData(). hBuffer = oData:DatasetHandle :get-buffer-handle('eCustomer'). bsCustomer:Handle = oData:DatasetHandle. oParent = treeView1:Nodes:Item['CustomerNode']. /* create ABL query, set buffers */ hQuery:query-prepare ('preselect each eCustomer by Name'). hQuery:query-open(). hQuery:get-first(). do while hBuffer:available: cKey = hBuffer::CustNum. cText = hBuffer::Name. oNode = oParent:Nodes:Add(cKey, cText). oNode:Tag = 'Some extra info'. 10
© 2009 Progress Software Corporation. All rights reserved. DecorateCustomerNodes() method Get node by name or by index Zero-based counting Standard ABL query finds data to manipulate.NET UI Node colour based on business rules def var oCustomerNodes as TreeNodeCollection. oCustomerNodes = treeView1:Nodes['CustomerNode']:Nodes. do iLoop = 0 to oCustomerNodes:Count - 1: oNode = oCustomerNodes[iLoop]. /* hBuffer from oData, as earlier */ hBuffer:find-unique( ' where CustNum = ' + quoter(oNode:Name)). dPercent = hBuffer::Balance / hBuffer::CreditLimit * 100. if dPercent > 90 then oNode:BackColor = System.Drawing.Color:Red. 11
© 2009 Progress Software Corporation. All rights reserved. Customer data binding One BindingSource binds to one ProDataSet providing multi-level data to UI controls Automaticlinked navigation via ProDataSet data-relations WICKED cool, no? Customer BindingSource Orders OrderLines Items 12
© 2009 Progress Software Corporation. All rights reserved. ProBindingSource: Binding UI controls to an ABL query Not using ProDataSets? Use a query instead Can even query PDS data Always single- level to UI Provides data to multiple controls Salesrep BindingSource create query hQuery. hQuery:query-prepare('for each eSalesrep'). bsSalesrep:Handle = hQuery. create query hQuery. hQuery:query-prepare('for each eSalesrep'). bsSalesrep:Handle = hQuery. 13
© 2009 Progress Software Corporation. All rights reserved. Sorting the DataGridView Standard event handler signature Sorting location depends on control, could be on grid or BindingSource Identity is not equality Build standard ABL query off event args Easily make this generic method void BindingSource_SortRequest( sender as System.Object, e as Progress.Data.SortRequestEventArgs): if sender:Equals(bsSalesrep) then do: hQuery = bsSalesrep:Handle. cSortBy = ' by ' + e:FieldName. if not e:Ascending then cSortBy = cSortBy + ' desc '. hQuery:query-prepare ('for each eSalesrep ' + cSortBy). hQuery:query-open(). end. end method. method void BindingSource_SortRequest( sender as System.Object, e as Progress.Data.SortRequestEventArgs): if sender:Equals(bsSalesrep) then do: hQuery = bsSalesrep:Handle. cSortBy = ' by ' + e:FieldName. if not e:Ascending then cSortBy = cSortBy + ' desc '. hQuery:query-prepare ('for each eSalesrep ' + cSortBy). hQuery:query-open(). end. end method. 14
© 2009 Progress Software Corporation. All rights reserved. Alternate controls: same data, same business logic, much prettier, different & more features Microsoft controls do the basics Vendor-specific functionality Grouping, multi-column sorting, multi-level browsing Filters, aggregates Themes / skins 15 Presentation layer design opportunity: OERA, MVP et al
© 2009 Progress Software Corporation. All rights reserved. What you see is.NET, what you get is ABL.NET … Paints stuff on screen Fires UI events : Click, Resize, Sort ABL … Works with data -Temp-tables, queries, ProDataSets -Built-in ProBindingSource talks both ways Handles UI events Invokes methods & classes, set properties -Same on all types: OO ABL and.NET 16
© 2009 Progress Software Corporation. All rights reserved. Where can I learn more? Right here at ExchangeOnlineOhNine Shelley Chases Introducing OpenEdge GUI for.NET Alex Herbstritts Advanced OO Techniques Niels Bredegaards Tales from the Trenches: Using the GUI for.NET OpenEdge Documentations Getting Started books Object Oriented Programming Introducing the OpenEdge Architect Visual Designer GUI for.NET Mapping Reference GUI for.NET Programming OpenEdge Architect : Class browser, help files, etc Progress Communities discussions (forums) 3 rd party control vendors documentation, support, forums MSDN 17
© 2009 Progress Software Corporation. All rights reserved. Conclusion Pretty easy, right? Its Just ABL … and youre all experts in ABL From the ABL, you dont care if its.NET 18
© 2009 Progress Software Corporation. All rights reserved. Peter Judge Principal Software Engineer, OpenEdge Development 19
OpenEdge ® GUI for.NET Modernize your user interface with ABL Shelley Chase OpenEdge Architect Progress Software Corporation Session 113.
1 When And How To Make Interfaces Work For You Advanced OO Techniques Alex Herbstritt Principal Software Engineer, Progress Software Session 102.
WWW.MARK-INFO.COM MARK INFORMATION R & D Tales from the Trenches: Using the GUI for.NET Session 109 Niels Bredegaard.
Structured Error Handling in the ABL Sarah Marshall QA Architect, OpenEdge Session 128.
Lets look at some interesting and popular devices which have touchscreens.
Be The Most Productive Developer You Can Be! Kristen Howell OpenEdge Product Manager Matt Baker Principal Software Engineer Session 108.
Using Dreamweaver MX 2004. Slide 1 Window menu Manage Sites… Window menu Manage Sites… 2 2 Open Dreamweaver 1 1 Set up a website folder (1). Click New…
Www.allegroconsultants.com DB-12 - Pick An Index, Any Index… Michael Lonski Allegro Consultants, LTD.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.02-1 Configuring Groups and Policies Configuring Policies.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.25-1 Customer-to-Provider Connectivity with BGP Connecting a Multihomed Customer to Multiple Service.
11 BASIC DRESS-UP FEATURES. LESSON II : DRESS UP FEATURES 12.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary © Wind River Systems, released under EPL 1.0. All logos are TM of their respective.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, VoiceMail Pro Advanced Functions Module Three – TAPI.
Welcome to PowerPoint Design and deliver beautiful presentations with ease and confidence.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, VoiceMail Pro Advanced Functions Module Four – Voicemail Campaigns.
Using Actional with OpenEdge The Zen of Business Transaction Assurance David Cleary Principal Software Engineer – Progress Software Session 116.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.02-1 Configuring Groups and Policies Building an Agent Kit.
A class is just a collection of variables--often of different types--combined with a set of related functions. The variables in the class are referred.
DRAFTING TECHNIQUES II 155. Auxiliary Views Auxiliary Views are easily made. When more specific detail of a part is needed, go to the VIEWS toolbar, then.
Www.shapesource.comwww.shapesource.com +1 425-369-6000 firstname.lastname@example.org@visimation.com Cisco Systems Switches - Catalyst 2960 | Enhanced Metafile.
1 Watch Your Production Environment ( while at Exchange ) using OpenEdge Management Libor Laubacher Principal TSE, Progress Software Session 133.
© 2009 Avaya Inc. All rights reserved.1 Chapter Two, VoiceMail Pro Components Module Two – Actions, Variables & Conditions.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.26-1 Complex MPLS VPNs Introducing Central Services VPNs.
OLAP ModelKit is a powerful and high-performance OLAP component specially designed to help you reduce your development time and costs while building effective.
Dynamic Designer Is the easy way for you to cut as much as 80% from the time and cost of getting your new products to market, and improving the old ones.
Michael Marchenko. In mathematics, a sequence is an ordered list of objects (or events). Like a set, it contains members (also called elements, or terms),
Unity3d Fomin Maxim 394 group. Unity is an integrated authoring tool for creating 3D video games or other interactive content such as architectural visualizations.
Carousel from flshow.netflshow.net by Saverio CaminitiSaverio Caminiti.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.04-1 Configuring Rules Configuring Windows-Only Rules.
Inner Classes. 2 Simple Uses of Inner Classes Inner classes are classes defined within other classes The class that includes the inner class is called.
Yogesh Mehla www.techsapphire.in. Now concept of logic building is not so complex and not so simple. We will not work on how to make logic program in.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v2.11-1 Building a Simple Serial Network Understanding the OSI Model.
Sequences Sequences are patterns. Each pattern or number in a sequence is called a term. The number at the start is called the first term. The term-to-term.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, VoiceMail Pro Advanced Functions Module Two – Database and IVR.
SPLAY TREE The basic idea of the splay tree is that every time a node is accessed, it is pushed to the root by a series of tree rotations. This series.
DRAFTING and DIMENSIONING 98. A properly dimensioned drawing of a part is very important to the manufacturing outcome. With CATIA, it can be a very simple.
1 Where is the O(penness) in SaaS? Make sure youre ready for the next wave … Jiri De Jagere Senior Solution Engineer, Progress Software Session 123.
Workshop 7B-1 NAS101 Workshops Copyright 2001 MSC.Software Corporation WORKSHOP 7B Structure With Spring Support.
S15-1 PAT318, Section 15, March 2005 SECTION 15 MSC.PATRAN FILES.
© 2006 Cisco Systems, Inc. All rights reserved. CIPT1 v5.03-1 Deployment of Cisco Unified CallManager Release 5.0 Endpoints Configuring Cisco Unified CallManager.
WiseImage Open Architecture. Why to open? Modern technology demands A growing amount of customers demands for custom commands The limited development.
Welcome to…. YOUR FIRST PART – START TO FINISH 2.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.23-1 Route Selection Using Policy Controls Applying Route-Maps as BGP Filters.
DRAFTING TECHNIQUES I 136. Here is a basic shape. From here, we will do some advanced drafting once we put this shape on a sheet as a drawing. Select.
Comparison of Lotus Notes Designer, Domino Workflow Architect and AdHoc Workflow Builder 2003 (c) AdHoc.
Linux Daemons. Agenda What is a daemon What is a daemon What Is It Going To Do? What Is It Going To Do? How much interaction How much interaction Basic.
Prepared by T.Bhaskar. THE ICEBERG HOW MUCH DO YOU SEE OF AN ICEBERG? prepared by T.Bhaskar.
MOUSE MANIPULATION 23. The 3 button mouse is your tool for manipulation of the parts and assemblies that you have created. With it you can ZOOM, ROTATE.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.06-1 Using CSA Analysis Configuring Application Behavior Investigation.
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.24-1 MPLS VPN Technology Introducing the MPLS VPN Routing Model.
S8-1 PAT325, Section 8, February 2004 Copyright 2004 MSC.Software Corporation SECTION 8 RESULTS FOR PLIES.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.03-1 Creating Application Classes Working with Variables and Application Classes.
1 Introducing OpenEdge Explorer Eric Modeen Product Manager, Progress Software Session 112.
The.NET ModelKit Suite is a pack of.NET components which offers complex solution for reports creation, data visualization and data analysis. The product.
© 2009 Avaya Inc. All rights reserved.1 Chapter Four, UMS Web Services Module Three – Exchange 2007.
© 2006 Avaya Inc. All rights reserved. Network Small Community Network Network Small Community Network.
WiseImage 6.0 for AutoCAD 2000/2000i/2002/2004 and AutoCAD LT 2000/2000i/2002/2004 On the leading edge of new technology.
Making PowerPoint Slides Avoiding the Pitfalls of Bad Slides.
1/30 Chapter 8: Dynamic Binding And Abstract classes.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.26-1 Complex MPLS VPNs Using Advanced VRF Import and Export Features.
S4-1 PAT328, Section 4, September 2004 Copyright 2004 MSC.Software Corporation SECTION 4 FIELD IMPORT AND EXPORT.
Copyright ® 2000 MSC.Software Results S17-1 PAT301, Section 17, October 2003 SECTION 17 FILE MANAGEMENT.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.04-1 Configuring Rules Rule Basics.
© 2006 Cisco Systems, Inc. All rights reserved. CVOICE v5.02-1 Configuring Voice Networks Configuring Dial Peers.
© 2005 Cisco Systems, Inc. All rights reserved.INTRO v2.19-1 Managing Your Network Environment Managing Cisco Devices.
© 2009 Avaya Inc. All rights reserved.1 Chapter Three, VoiceMail Pro Advanced Functions Module One – Text to Speech.
© 2005 Avaya Inc. All rights reserved. Avaya – Proprietary & Confidential. For Internal Use Only. IP One New Promotional Program for S8300 IPT systems.
Family Relationships (Семейные Отношения). Family How could you describe the word family? First of all family means a close unit of parents and their.
Sonic Workbench for OpenEdge Architect Users Bill Wood Fellow, Progress Software Corporation Session 127 FINAL Version 0.7 – Aug. 11, 2009.
REFERENCE ELEMENTS 64. If your REFERENCE ELEMENTS toolbar is not in view and not hidden, you can retrieve it from the toolbars menu seen here. 65.
OFC335 Microsoft Office Word 2007 XML Programmability: True Data/View Separation and Rich Eventing for Custom XML Tristan Davis Program Manager Microsoft.
WiseImage Open Architecture Lessons Mission Impossible.
OLAP ModelKit is a universal solution in the field of interactive reporting and thorough data analysis which allows programmers to create effective decision-support.
Teens problems Semenova Nastya The 10 Б form student Teacher: Pshennikova E.D. 2009.
© 2005 Cisco Systems, Inc. All rights reserved. BGP v3.27-1 Optimizing BGP Scalability Implementing BGP Peer Groups.
Chalkboard Graphics Add your message here. E = m c².
WS3-1 WORKSHOP 3 RESULTS TITLE EDITOR PAT328, Workshop 3, September 2004 Copyright 2004 MSC.Software Corporation.
© 2006 Cisco Systems, Inc. All rights reserved. MPLS v2.25-1 MPLS VPN Implementation Configuring VRF Tables.
Understanding Record and Table Locking In OpenEdge ® SQL Applications Jeff Owen Principle Software Engineer, OESQL Progress Software Session 132.
© 2006 Cisco Systems, Inc. All rights reserved.ISCW v1.04-1 IPsec VPNs Implementing the Cisco VPN Client.
WS8-1 PAT328, Workshop 8, September 2004 Copyright 2004 MSC.Software Corporation WORKSHOP 8 Viewing Results for MSC.Nastran Ply PCOMPG Entries Using MSC.Patran.
Lesson 3 - HTML Formatting. Text Formatting Tags TagDescription Defines bold text Defines big text Defines emphasized text Defines italic text Defines.
Colour Pencils Your Name. Process Flow Bullet 1 Bullet 2 Bullet 3 Bullet 1 Bullet 2 Bullet 3 Bullet 1 Bullet 2 Bullet 3 Bullet 1 Bullet 2 Bullet 3 Bullet.
© 2006 Cisco Systems, Inc. All rights reserved. HIPS v3.02-1 Configuring Groups and Policies Managing Hosts and Deploying Software Updates.
© The McGraw-Hill Companies, Inc., 2000 4-1 Chapter 4 Counting Techniques.
Escalating TAC Service Request © 2004 Cisco Systems, Inc. All rights reserved. IPTT v4.07-1 TAC Service Request and Telephone Service Providers.
Data Types in C. A Data Type A data type is –A set of values AND –A set of operations on those values A data type is used to –Identify the type of a variable.
1 Cutaneous Melanoma. 2 Equivalent Terms, Definitions and Illustrations Skin only C440-C449 Definitions identify reportable tumors –Evolving melanoma.
Operators and Arithmetic Operations. Operators An operator is a symbol that instructs the code to perform some operations or actions on one or more operands.
S12-1 PAT325, Section 12, February 2004 Copyright 2004 MSC.Software Corporation SECTION 12 MODELING SANDWICH / THICK SECTION.
© Luxoft Training 2013 Annotations. © Luxoft Training 2013 Java reflection / RTTI // given the name of a class, get a "Class" object that // has all info.
A new interface model for the Jazyki Mira typological database Oleg Belyaev The research is supported by RFBR grant (www.rfbr.ru), 07-06-00229 а.
What to expect? How to prepare? What to do? How to win and find a good job? BUSINESS ENGLISH COURSE NOVA KAKHOVKA GUMNASUIM 2012.
ADVANCED DRESS-UP FEATURES 39. Once OK has been selected, your part will appear with the filleted area highlighted by orange lines at the boundaries.
© 2009 Avaya Inc. All rights reserved.1 Chapter Seven, Customer Call Reporter (CCR) Module Two – Standard Configuration.
Resistance is Futile! Your Application Will Be Assimilated Marv Stone Systems Engineering, Progress Software Session 121.
PAT312, Section 21, December 2006 S21-1 Copyright 2007 MSC.Software Corporation SECTION 21 GROUPS.
Taking out Money from a Cash Machine Authors: Aleksey Ermolaev, Daria Zaitseva, Maria Leontyeva, Anatoly Leshchev, Form 10 pupils Teacher: V. V. Sergoushina,
Еще похожие презентации в нашем архиве:
© 2017 MyShared Inc. All rights reserved.