Deletions are marked like this. | Additions are marked like this. |
Line 7: | Line 7: |
= Critical Items to Complete ASAP = * '''Friday Goals''' * Proof-of-concept of client-side validation * Magic rows * Refresh attributes * Create new document |
= Milestones = * '''Deadline:''' Fri, 20-May-2011 * Deliver a testable (but not completly tested) version of the excel Client to GMM for evaluation * Excel Client '''must''' be ready for production use by end of May. ---- |
Line 17: | Line 18: |
1. Implement proof-of-concept for client-side validation: * Implement one simple case and one complex case |
== Internals == 1. Fix ''checkDuplicates'' to check both the ''drawingCode'' and ''drawingId'' fields * Set cell note and highlighting when duplicates found 1. Review/improve cell note set/clear functions 1. Implement field locking helper functions that make cells ''read-only/non-read-only'' * Initial implementation set field's background 1. Implement Excel 2003 menu == Search == 1. Implement named baskets (Design needed) * User can select a named basket download its contents * Make sure all calculate fields are readonly 1. Refresh all/selected should reset record update counts 1. Fix bug: cell notes for record differences on date fields '''(AH/JS)''' * Implement date comparison for (not) trigging cell-note creation for date fields 1. Review hidden ''New Document'' template row == Edit == 1. Implement Vorabzug ja/nein flag * Lock and grey-out all ''Vorabzug'' fields if ''Vorabzug'' flag set to 0 * See ''[[ExcelIntegrationRequirements#VorabzugFlag]]'' 1. Implement GA/Freigegeben menu: * Sets the RevC ''revisionTypeId'' * Menu with two choices: ''freigegeben'' (13) and ''gut zur Ausführung'' (15) * See ''[[ExcelIntegrationRequirements#GA.2BAC8-FregegebenMenu]]'' 1. Implement ''get next sequence number'' == Validation == 1. Implement client-side field validation * Implement ''Ist'' fiel validation. * Formulas generated from ''Perl'' script. * See axpo-integration/data/genValidation.pl |
Line 20: | Line 55: |
* AH to complete all client-side validation config 1. Design/Implement: ''Magic Rows'' * Store ''tag/value'' pairs in two hidden rows in planning worksheet * Implement API for get/set values in ''Magic Rows'', and identify planning worksheet * Variables: * Server (URL or name?) * Report (Bau) * Default Contract * Users Role(s)? |
1. Leave ''Wer'' and ''Status'' field validation for now == Save/Update == 1. Implement field locking after save. Fields: * ''Bereich'' * ''Vorabzug'' * ''RevC Type'' 1. Duplicate row detection before save 1. Implement checking of record serial numbers on update 1. Save all/selected should set record update counts 1. Generate errors on update/insert when drawing code not complete == Attributes == |
Line 30: | Line 71: |
* Implement static ''Ja/Nein'' attributes and named range (at start of ''attributes'' worksheet?) * Implement static ''gut zur Ausfuerhung/freggegeben'' attributes and named range 1. Implement: ''Create New Document'': * Define standard ''new document'' template in hidden row in layout * Any issues with setting up initial menus? * Implement helper function to copy ''iRow'' to ''jRow'' 1. Design/implementation for field locking: * Lock ''Bereich'' after save * Lock ''Vorabzug'' flag after save * Lock and grey-out ''Vorabzug'' fields if ''Vorabzug'' flag set to 0 1. Implement date comparison for (not) trigging cell-note creation for date fields |
1. Get feedback from JS re: recent changes to ''m_attributeRowCount'' global variable == Report == 1. Design for ''Bau'' and ''Ausrüstung'' reports * Based on macros? 1. Implement Bau report 1. Implement Ausrustung report == Test == 1. Setup Excel 2007 test/development environment 1. Test contract and group menu changes in planning list worksheet * Make sure group menu updates when contract changed * Make sure user id menus change when contract and group changed ---- = Medium-Priority Items = 1. Performance: '''(AH/JS)''' * Disable screen update during record list processing * Profile code to see what is being called for each document/revision * Measure performance with large data sets * Investigate to see if bubble sort is really needed. Debug prints? * Review calls to ''DoEvents'' 1. Implement new columns to display record status and DrawMGT id values '''(JS)''' ''(design needed)'' 1. In search form implement ''Gruppe'' menu with dependency on ''Bereich'' menu '''(AH/JS)''' ''(design needed)'' 1. Test search fields: * document code * title * revision date from/to * external reference number |
Line 48: | Line 117: |
1. Design for record status fields |
1. Highlighting of changed/new/unsaved records '''(JS)''' ''(design needed)'' 1. Design for record status fields? |
Line 50: | Line 121: |
1. Refactoring ''Check for Duplicates'' to check both drawingCode and drawingId fields 1. Design for ''Bau'' and ''Ausrüstung'' reports * Based on a new header structure? * Other method for creating report? = Attribute Lists = 1. Make sure ''Refresh Attributes'' still works * Implement static ''Ja/Nein'' attributes and named range (at start of attributes sheet?) * Implement static ''gut zur Ausfuerhung/freggegeben'' attributes and named range * Implement display of status messages during attribute refresh operation |
1. Resolve record count inaccuracy in search and test cases '''(AH/TN)''' 1. Display progress messages in lower message area '''(WAIT)''' 1. Trap Excel-Quit and ask user if unsaved records should be saved '''(JS)''' ''(design needed)'' 1. Testing prior to release of test candidate to GMM * Test basic features * Test different contracts/groups ---- = Low-Priority Items = == General == 1. Reject revision ''(design needed)'' 1. Sub-revision processing ''(design needed)'' 1. Implement new ''Magic Row'' fields: * Protocol version * Client software version * Server software version |
Line 64: | Line 148: |
= Login/Logout = 1. Implement login timeout ''(low-priority)'' 1. Implement code that reacts correctly to auto-logout. E.g. session-timeout ''(low-priority)'' * Implement a heartbeat function to prevent session timeout? 1. Check user roles and disallow login is certain roles not present ''(low priority)'' 1. Login in a specific contract? ''(low-priority)'' = Search = 1. Resolve record count inaccuracy in search and test cases '''(AH/TN)''' 1. User case: Set next revision based on a document with unknonwn revision types 1. Save server URL and header structure name directly in planning worksheet and implement checks to make sure that future searches and updates and done on the same server ''(design needed)'' 1. In search form implement ''Gruppe'' menu with dependency on ''Bereich'' menu '''(AH/JS)''' ''(design needed)'' 1. Test search fields: * document code * title * revision date from/to * external reference number 1. Implement named baskets (Design needed) '''(AH/TN)''' * User can select a named basket download its contents 1. Display progress messages in lower message area '''(WAIT)''' |
|
Line 91: | Line 150: |
= Data Display = 1. Implement Group menu '''(AH)''' * Group menu - Server side sorting and group name update (to make names Unique) 1. Implement Vorabzug ja/nein flag '''(JS)''' * See ''[[ExcelIntegrationRequirements#VorabzugFlag]]'' 1. Implement GA/Freigegeben menu: '''(JS)''' * Sets the RevC ''revisionTypeId'' * Menu with two choices: ''freigegeben'' (13) and ''gut zur Ausführung'' (15) * See ''[[ExcelIntegrationRequirements#GA.2BAC8-FregegebenMenu]]'' 1. Performance: '''(AH/JS)''' * Disable screen update during record list processing * Profile code to see what is being called for each document/revision * Measure performance with large data sets * Investigate to see if bubble sort is really needed. Debug prints? * Review calls to ''DoEvents'' 1. Fix bug: cell notes for record differences on date fields '''(AH/JS)''' |
|
Line 117: | Line 157: |
= Data Editing = 1. Client-side validation '''(JS/AH)''' ''(complete proof-of-concept)'' * See ''[[ExcelIntegrationValidation|Client-Side Validation]]'' 1. Complete check for duplicates '''(AH/JS)''' * Explain/refactor existing code * Two fields to identify duplicates: ''drawingCode'' and ''drawingId'' * Better error message reporting of duplicates. Highlighting? 1. Implement ''new row'' '''(AH/JS)''' * Implement copy of template document from hidden row in layout * Define sample row in layout worksheet 1. Locking of ''Contract'' menu after save '''(JS)''' ''(design needed)'' 1. Locking of ''Vorabzug'' menu after save '''(JS)''' ''(design needed)'' 1. Implement new columns to display record status and DrawMGT id values '''(JS)''' ''(design needed)'' 1. Trap Excel-Quit and ask user if unsaved records should be saved '''(JS)''' ''(design needed)'' 1. Highlighting of changed/new/unsaved records '''(JS)''' ''(design needed)'' 1. Implement ''Restart Revision Sequence'' '''(AH)''' 1. Refresh all/selected should reset record update counts '''(AH)''' 1. Save all/selected should set record update counts '''(AH)''' 1. Implement ''get next sequence number'' '''(AH)''' 1. Implement revision sequence '''(AH)''' 1. Set the ''revisionNo'' and ''revisionCode'' on new revisions '''(AH)''' 1. Test contract and group menu changes in planning list worksheet * Make sure group menu updates when contract changed * Make sure user id menus change when contract and group changed 1. Test copy-paste operations = Updating and Inserting Records = 1. Duplicate row detection before save '''(AH)''' 1. Handle setting of ''revisionNo'' and ''revisionCode'' for new records '''(AH)''' 1. Implement checking of record serial numbers on update '''(AH)''' 1. Improve reporting of insert/update errors. Report server-side error text '''(AH)''' 1. Generate errors on update/insert when drawing code not complete '''(AH)''' = Reject Revisions and Sub-Revisions = 1. Reject revision ''(design needed)'' 1. Sub-revision processing ''(design needed)'' = Internals and Refactoring = 1. Review ''TODO''s in code |
= Final Cleanup and Packaging = 1. Hiding of internal worksheets (header structure, etc.) 1. Get code signed with a Axpo certificate? 1. Assign password to code == Login/Logout == 1. Implement login timeout 1. Implement code that reacts correctly to auto-logout. E.g. session-timeout ''(low-priority)'' * Implement a heartbeat function to prevent session timeout? 1. Check user roles and disallow login is certain roles not present ''(low priority)'' 1. Login in a specific contract? ''(low-priority)'' == Search == 1. Use case: Set next revision based on a document with unknown revision types == Internals and Refactoring == |
Line 177: | Line 191: |
= Reports = 1. Implement Bau report (Design needed) 1. Implement Ausrustung report = Compatibility = 1. Setup Excel 2007 test/development environment 1. Implement Excel 2003 menu = Internationalization = |
1. Review ''TODO''s in code == Compatibility == == Internationalization == |
Line 197: | Line 204: |
= Final Cleanup and Packaging = 1. Nice if client-side and datatype checking and validation works off-line 1. Hiding of internal worksheets (header structure, etc.) 1. Get code signed with a Axpo certificate? 1. Assign password to code = Testing = |
== Testing == |
Line 238: | Line 236: |
= Internal Documentation = | == Internal Documentation == |
Line 253: | Line 251: |
= User Documentation = | == User Documentation == |
Excel Integration - To Do List
Contents
Milestones
Deadline: Fri, 20-May-2011
- Deliver a testable (but not completly tested) version of the excel Client to GMM for evaluation
Excel Client must be ready for production use by end of May.
High-Priority Items
Internals
Fix checkDuplicates to check both the drawingCode and drawingId fields
- Set cell note and highlighting when duplicates found
- Review/improve cell note set/clear functions
Implement field locking helper functions that make cells read-only/non-read-only
- Initial implementation set field's background
- Implement Excel 2003 menu
Search
- Implement named baskets (Design needed)
- User can select a named basket download its contents
- Make sure all calculate fields are readonly
- Refresh all/selected should reset record update counts
Fix bug: cell notes for record differences on date fields (AH/JS)
- Implement date comparison for (not) trigging cell-note creation for date fields
Review hidden New Document template row
Edit
- Implement Vorabzug ja/nein flag
Lock and grey-out all Vorabzug fields if Vorabzug flag set to 0
- Implement GA/Freigegeben menu:
Sets the RevC revisionTypeId
Menu with two choices: freigegeben (13) and gut zur Ausführung (15)
Implement get next sequence number
Validation
- Implement client-side field validation
Implement Ist fiel validation.
Formulas generated from Perl script.
- See axpo-integration/data/genValidation.pl
Leave Wer and Status field validation for now
Save/Update
- Implement field locking after save. Fields:
Bereich
Vorabzug
RevC Type
- Duplicate row detection before save
- Implement checking of record serial numbers on update
- Save all/selected should set record update counts
- Generate errors on update/insert when drawing code not complete
Attributes
Make sure Refresh Attributes still works
Get feedback from JS re: recent changes to m_attributeRowCount global variable
Report
Design for Bau and Ausrüstung reports
- Based on macros?
- Implement Bau report
- Implement Ausrustung report
Test
- Setup Excel 2007 test/development environment
- Test contract and group menu changes in planning list worksheet
- Make sure group menu updates when contract changed
- Make sure user id menus change when contract and group changed
Medium-Priority Items
Performance: (AH/JS)
- Disable screen update during record list processing
- Profile code to see what is being called for each document/revision
- Measure performance with large data sets
- Investigate to see if bubble sort is really needed. Debug prints?
Review calls to DoEvents
Implement new columns to display record status and DrawMGT id values (JS) (design needed)
In search form implement Gruppe menu with dependency on Bereich menu (AH/JS) (design needed)
- Test search fields:
- document code
- title
- revision date from/to
- external reference number
- Design for record highlighting:
- New record (set to yellow)
- Re-started record (set to yellow). E.g. after restart revision sequence
- Record changed locally (set to yellow)
- Client-side error? (set to red)
- Server-side error (set to red)
- Record saved (set to white)
Highlighting of changed/new/unsaved records (JS) (design needed)
- Design for record status fields?
- May not be needed if the above highlighting is implemented
Resolve record count inaccuracy in search and test cases (AH/TN)
Display progress messages in lower message area (WAIT)
Trap Excel-Quit and ask user if unsaved records should be saved (JS) (design needed)
- Testing prior to release of test candidate to GMM
- Test basic features
- Test different contracts/groups
Low-Priority Items
General
Reject revision (design needed)
Sub-revision processing (design needed)
Implement new Magic Row fields:
- Protocol version
- Client software version
- Server software version
Shorten attribute lists (AH/TN) (design needed, low-priority)
- Via server-side configuration?
Improve new worksheet naming (low-priority)
- Worksheet count should exclude the number of hidden worksheets
Implement delta menu (JS - WAIT)
Column BK Art (Umfang, Inhalt)
Implement document links (AH/JS/TN - WAIT) (design needed)
Handling Grundlagen document links
Handling PRF/STN document links
Final Cleanup and Packaging
- Hiding of internal worksheets (header structure, etc.)
- Get code signed with a Axpo certificate?
- Assign password to code
Login/Logout
- Implement login timeout
Implement code that reacts correctly to auto-logout. E.g. session-timeout (low-priority)
- Implement a heartbeat function to prevent session timeout?
Check user roles and disallow login is certain roles not present (low priority)
Login in a specific contract? (low-priority)
Search
- Use case: Set next revision based on a document with unknown revision types
Internals and Refactoring
- Named ranges
- Automated management
- Function for repair/reset of named ranges in case of corruption
- Clone worksheet
- Document named ranges and their boundaries
Change iRow to lRow?
- Document new validation columns in header structure
- Document and revision (write) record structures
Improved worksheet lookup/access functions (getCellValue/Address)
- Improved row selection for printing to worksheet
- Refactor define names to improve clarity and remove near-aliases
Identify all magic constants and convert to Consts
- Improve function naming:
Make function names more business oriented rather than technically descriptive
Review TODOs in code
Compatibility
Internationalization
- Convert all user display text to Const strings
- Translate all messages Consts into DE
Implement tag and lookup for form text (design needed)
Testing
- Write a test-plan wiki page
- Make sure ZK/TN/DD have suitable test environments
- Check reading and updating of all fields
- Stress/performance testing
- Searching for long lists
- Bad input data
- Character sets: test with Umlauts
- Test Umlauts in UTF-8 set to server
- Test Umlauts in ISO-8859-1 set from server
- Compatibility testing
- Search tests
- Display tests
- List menu tests
- Status menus
- User menus
- Flag menus
- Editing tests
- Delta date calculations
- Drawing code menus
- Insert tests
- Update tests
- Client-side validation tests
- Menu item tests
- Check for duplicates
- Duplicate selected
- Performance tests
- HTTPS test
- HTTP/HTTPS proxy test
Internal Documentation
- List of modules
- List of public subs/functions
List of gotchas
Blank cells in header regions, caused by use of Excel count2 function
- Explanation of complex menu and look formulas)
- Convert notes/DesignNotes into Wiki
- Revision sequence
- Named ranges
- URLS for REST transactions
- XML structures
- Returned records
- Insert/update records
User Documentation
- Define outline/structure for user documentation
- Setup wiki pages