JukeBox – transparency, flexibility, speed and comfort!

Slides:



Advertisements
Similar presentations
Microsoft Office 2007 Access Chapter 3 Maintaining a Database.
Advertisements

Advanced Microsoft Word Hosted by Jared Hoffman Topics Keyboard Shortcuts Customizing Toolbars and Menus Auto Format & Auto Correct Tabs Inserting Pictures.
Guide to Oracle10G1 Introduction To Forms Builder Chapter 5.
Creating Custom Forms. 2 Design and create a custom form You can create a custom form by modifying an existing form or creating a new form. Either way,
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Introduction To Form Builder
Chapter 2 Querying a Database
Chapter 3 Maintaining a Database
With Microsoft Office 2007 Intermediate© 2008 Pearson Prentice Hall1 PowerPoint Presentation to Accompany GO! with Microsoft ® Office 2007 Intermediate.
With Microsoft Access 2007 Volume 1© 2008 Pearson Prentice Hall1 PowerPoint Presentation to Accompany GO! with Microsoft ® Access 2007 Volume 1 Chapter.
Chapter 2 Querying a Database MICROSOFT ACCESS 2010.
XP New Perspectives on Microsoft Access 2002 Tutorial 51 Microsoft Access 2002 Tutorial 5 – Enhancing a Table’s Design, and Creating Advanced Queries and.
Copyright © 2001 by Wiley. All rights reserved. Chapter 10: Advanced Database Operations Revising Vintage Videos Setting RecordSource at run time DBGrid.
Microsoft Access Get a green book. Page AC 2 Define Access Define database.
Office 2003 Advanced Concepts and Techniques M i c r o s o f t Access Project 5 Enhancing Forms with OLE Fields, Hyperlinks, and Subforms.
Microsoft Access 2013 Simplify Data Entry with Forms Chapter 3.
MS-ACCESS BY SANGEETHA PARTHASARATHY Topics to be covered §Comparing Values in Selection Criteria §Calculating Values in a Query §Changing the appearance.
Database Systems Microsoft Access Practical #1 Creating Tables Nos 215.
CIS 338: Using Queries in Access as a RecordSource Dr. Ralph D. Westfall May, 2011.
 Agenda 2/20/13 o Review quiz, answer questions o Review database design exercises from 2/13 o Create relationships through “Lookup tables” o Discuss.
Office Management Tools II Ms Saima Gul. Office Management Tools II Ms Saima Gul.
Databases,Tables and Forms Access Text by Grauer Chapters 1 & 2.
CREATING A LABEL MAIL MERGE IN WORD. TERMS FIELDS RECORDS MERGE CODES.
Introduction to a Database Defining a database Database window in Access The six items in window: Tables, Queries Forms, Reports, Macros, Modules.
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
PestPac Software. Leads The Leads Module allows you to track all of your pending sales for your company from the first contact to the close. By the end.
Microsoft Office 2013 Try It! Chapter 4 Storing Data in Access.
XP New Perspectives on Microsoft Office Access 2003, Second Edition- Tutorial 6 1 Microsoft Office Access 2003 Tutorial 6 – Creating Custom Forms.
Access Queries and Forms. Adding a New Field  To insert a field after you have saved your table, open Access, and open the table  It is easier to add.
- The PUG Challenge - Brynjar Hasle, Chemistry as Geir O. Olsen, THInc Consulting as.
IT 5324 Rapid Application Development Using Colleague Studio Jacob Geluk – Simmons College.
Windows Tutorial 3 Personalizing Your Windows Environment
Presentation 4 Creating Databases Part III (Creating Reports)
Microsoft Access 2016 Simplify Data Entry with Forms
Working in the Forms Developer Environment
Microsoft Dynamics NAV Classic
Maintaining a Database
Creating LOVs and Editors
Building a User Interface with Forms
Performing Mail Merges
Access Creating a Database
Enhancing Forms with OLE Fields, Hyperlinks, and Subforms
Access Creating a Database
Simplify Data Entry with Forms Chapter 3
DB Implementation: MS Access Forms
Introduction to Ms-Access Submitted By- Navjot Kaur Mahi
Chapter 7 Advanced Form Techniques
Multi-host Internet Access Portal (MIAP) Enhancement Guide
Microsoft Office Access 2003
- The PUG Challenge - Brynjar Hasle, Chemistry as
MODULE 7 Microsoft Access 2010
Creating and Modifying Queries
NORMA Lab. 7 Generating Reports More Display Options
Microsoft Office Access 2003
Tutorial 6 Creating Dynamic Pages
Microsoft Office Access 2003
DB Implementation: MS Access Forms
Microsoft Office Access 2003
– JukeBox – transparency, flexibility, speed and comfort!
Aleph Beginning Circulation
– the JukeBox toolkit – transparency, flexibility, speed and comfort!
Chapter 1 Databases and Database Objects: An Introduction
Access Tutorial 5 Creating Advanced Queries and Enhancing Table Design
Guidelines for Microsoft® Office 2013
Topic 11 Lesson 1 - Analyzing Data in Access
Creating Additional Input Items
Two methods to observe tutorial
Unit J: Creating a Database
Tutorial 5 Advanced Queries and Enhanced Table Design
Presentation transcript:

JukeBox – transparency, flexibility, speed and comfort! Brynjar Hasle, Chemistry as www.chemistry.no

Operational (business) requirements: The client should be in charge of the server Slick UI Exceptional development speed (low, that is) Transparency client-server / appserver No extra setup required Very small client footprint

Tools: Dynamic 4GL (9.1d+) Static 4GL (Stateless AppServer (9.1d+)) (Aia client on webserver) - Progress 8.x - 9.1/10.0a RDBMS

Basic Elements x.w y.w z.w UI_lib.p AS_lib.p Client: x.w y.w z.w UI_lib.p AS_lib.p Server: Get data: -gettemptablejoin.p -getfieldlist.p getfieldvalues.p (FIND) -gettemptable (input <fill>.p) -checkcurrentchanged.p .. Put data: -servertrans.p -runproc.p ..

Server, get data: - gettemptablejoin.p: Input: - Buffers and fields - Query criteria - Startrow and number of rows to return Hooks for calculated fields (input .p’s for logic) Returns temp-table handle (and hence the data) getfieldlist.p: Input: - Buffers and fields - Query criteria Returns fieldlist (f.ex to populate drop-down) - gettemptable.p (input .p, output temp-table handle)

Server, put data: - servertrans.p: Input: - Trans header and trans values Temp-table struct Dynamic FK validation Hooks for custom validation / updates Assign defaults Returns completed temp-table (option) Trans.header: Buffer Operation Field list Opt.val.proc Trans.values: - Field value list

AS_lib, main methods: - GetTempTableJoin( Input: List of buffers and fields, rows-to-batch,startrow and query criteria). Checks for appserver / client server and passes on the input parameters pluss sessionid to gettemptablejoin.p - DoCreate(Input buffer,fields and values). - DoUpdate(Input buffer,criteria,fields and values). DoDelete(Input buffer,criteria). Populate transaction temp-tables. - DoCommit(true/false). Checks for appserver and passes transaction temp-tables to servertrans.p. True/False: receive completed buffer back

UI_lib: Implements standard events and methods. Keeps run-time state for UI objects. ”Objects”: NewBrowse(..) -NewQuery(..) -NewFieldMap(..) (browse buffer pluss add. ttObject ttEvent ttObjectLink ttAttribute info on input/display fields) -NewToolbar(..) -NewBrowseDropDown(..) -NewBrowseFillIn(..) -NewFilter(..) .. Standard methods: DisplayRecord, SaveRecord, OpenQuery,etc.

Additional handy stuff: - ResizeLib.p - Dynamic lookup - src/adm2/dyntreeview.w (slightly altered) - from smartpak/adm2/cal.w (altered) - Microsoft OCX tab-folder -

Coding example: Rectangles are used to represent screen objects that are created. In this example a toolbar and a browser. All relevant code for this simple window is in one procedure, InitWindow. Only the libraries (AS,UI and Resize are supporting this .w file – no includes).

Procedure InitWindow: DO WITH FRAME {&FRAME-NAME}: hBrowse = DYNAMIC-FUNCTION("NewBrowse", /* Create a browse object (New!) */ rectBrowse:HANDLE, /* Rectangle to define coordinates for browse */ 100, /* Rows to batch */ "", /* Browse properties, ie MULTIPLE,NUM-LOCKED-COLUMNS, etc */ "pccMemberShipType;MemberShipTypeName;MemberShipTypeCost", /* Buffers and fields: <buffer1>;<field1>;<field2>..,<buffer2>;.. No fields gives all*/ "WHERE iCompanyId = " + STRING(DYNAMIC-FUNCTION("getCompanyId")), ""). /* Misc - for something I might need in next version.. */ hFieldMap = DYNAMIC-FUNCTION("NewFieldMap", /* A fieldmap object holds extra info for display and input fields (fill-ins) and their corresponding buffer columns return handle equals the buffer handle */ hBrowse:QUERY, FRAME {&FRAME-NAME}:HANDLE, /* Frame for the input/display fields (might not be the same frame as the browse) */ "MemberShipTypeName,MemberShipTypeCost", /* Update columns in buffer */ "MemberShipTypeName,MemberShipTypeCost", /* Corresponding input fields (fill-in..)*/ "","", /* Additional buffer and displ.fields - not updateable*/ ""). /* Additional input fields (not in buffer) */ /* Assign foreign key values (not selected by the user): */ DYNAMIC-FUNCTION("setAttribute",hFieldMap,"bufferextrafields","iCompanyId"). DYNAMIC-FUNCTION("setAttribute",hFieldMap,"bufferextravalues",STRING(DYNAMIC-FUNCTION("getCompanyId"))). DYNAMIC-FUNCTION("NewToolBar", rectTBfile:HANDLE, /* Rectangle to define coordinates for toolbar */ "Fil", /* Corresponding menu label - no menu if blank */ "new;Ny,undo;Angre,delete;Slett,save;Lagre,excel;Eksporter til Excel", /* Buttons / Menu items: action;label;tooltip;Method;image,action;label.. Any number of properties accepted (one ok - if predef. action) */ "maxborder"). /* View and expand border rectangle to span frame */ DYNAMIC-FUNCTION("LinkAllObjects", /* Link all created objects. Linktype is type of "to" object, f.ex link from browse to combo-box is combo-box link */ THIS-PROCEDURE:CURRENT-WINDOW, /* Link only objects created for current window */ TRUE, /* Replace any existing links */ ""). /* Except these objects – list of handles */ DYNAMIC-FUNCTION("setCompanyHeader",THIS-PROCEDURE:CURRENT-WINDOW). /* The application should supports multiple companies */ DYNAMIC-FUNCTION("setNoResizeY", THIS-PROCEDURE:CURRENT-WINDOW, FRAME {&FRAME-NAME}:HANDLE, "rectTBfile"). DYNAMIC-FUNCTION("setOrgWinSize", THIS-PROCEDURE:CURRENT-WINDOW,200,250,0,250). DYNAMIC-FUNCTION("initTranslation",THIS-PROCEDURE:CURRENT-WINDOW). APPLY "value-changed" TO hBrowse. /* Since the query is opened we want to display the first record */ END.

Run the window:

Same window again: ..this time translated, resized and with different BG-color Resize and color settings can be stored pr window pr user

What happened? InitWindow NewBrowse (.w) NewBrowse (UI_lib): 1:Ask for data and def 2: Create browser GetTT (AS_lib): - Check for appserver (reconnect if needed) - Create and populate TT, - Run additioaln. calc - Return TT-handle (get_tt.p)

Organizing server logic Very few access points (in AS_lib) for server logic: Generic GetTempTableJoin Generic GetFieldList Generic GetFieldValue(s) - FIND RunProc, input ”mysimple.p” + custom params: character string (for fields and values) optional temp-table GetTempTable (from anothersimple.p) Always pass on the sessionid to all server routines!

Using runproc Update cred.limit for these customers (.w) - List of customers - Field/value - ”customer_update_records.p” RunProc (AS_lib): - Check for appserver (reconnect if needed) Jbox_runproc.p - Validate session - run .p Customer_update_record.p