Differences between revisions 32 and 33
Deletions are marked like this. Additions are marked like this.
Line 9: Line 9:
 * '''Next Goal: Complete all planning list columns'''
 * '''Friday Goals'''
   * Proof-of-concept of client-side validation
   * Magic rows
   * Refresh attributes
   * Create new document
Line 14: Line 17:
 1. Complete remaining planning list columns: '''(AH)'''
    * Group menu - Server side sorting and group name update (to make names Unique)
 1. Implement client-side validation '''(JS)'''
    * See [[''ExcelIntegrationValidation'']]
 1. Implement: ''Restart revision sequence''
 1. Implement: ''Create New Document''
 1. Implement proof-of-concept for client-side validation:
    * Implement one simple case and one complex case
    * See ''[[ExcelIntegrationValidation|Client-Side Validation]]''
    * 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. Make sure ''Refresh Attributes'' still works
    * 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'':
Line 21: Line 34:
      * 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. 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)
 1. Design for record status fields
    * May not be needed if the above highlighting is implemented
 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?
Line 61: Line 95:
 1. Implement group menu '''(JS)'''
    * Including link to contract menu
 1. Implement Group menu '''(AH)'''
    * Group menu - Server side sorting and group name update (to make names Unique)
Line 69: Line 103:
 1. Performance: '''(AH)'''  1. Performance: '''(AH/JS)'''
Line 75: Line 109:
 1. Fix bug: cell notes for record differences on date fields '''(AH)'''  1. Fix bug: cell notes for record differences on date fields '''(AH/JS)'''
Line 85: Line 119:
 1. Client-side validation '''(JS)'''
    * See ''[[ExcelIntegrationRequirements#ClientSideValidation]]''
 1. Locking of ''Contract'' menu after save
 1. Locking of ''Vorabzug'' menu after save
 1. Refresh all/selected should reset record update counts
 1. Save all/selected should set record update counts
 1. Trap Excel-Quit and ask user if unsaved records should be saved '''(JS)'''
 1. Highlighting of changed/new/unsaved records '''(JS)''' ''(design needed)''
 1. Implement ''get next sequence number'' '''(AH?/JS/TN)'''
 1. Implement revision sequence '''(AH)'''
 1. Implement ''new row''
 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)'''
Line 98: Line 128:
 1. Complete check for duplicates '''(AH)'''
    * Two fields to identify duplicates: ''drawingCode'' and ''drawingId''
    * Better error message reporting of duplicates. Highlighting?
 1. Setting the ''revisionNo'' and ''revisionCode'' on new revisions '''(AH)''' ''(design needed)''
 1. Implement new columns to display record status and DrawMGT id values ''(design needed)''
 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)'''
Line 132: Line 168:
 1. Change ''iRow'' to ''lRow''  1. Change ''iRow'' to ''lRow''?
 1. Document new validation columns in header structure
Line 137: Line 174:
 1. Identify magic numbers and convert to ''Consts''
 1. Improve function naming: Make function names more ''business oriented'' rather than ''technically descriptive''
 1. Identify all magic constants and convert to ''Consts''
 1. Improve function naming:      * Make function names more ''business oriented'' rather than ''technically descriptive''

Excel Integration - To Do List

Critical Items to Complete ASAP

  • Friday Goals

    • Proof-of-concept of client-side validation
    • Magic rows
    • Refresh attributes
    • Create new document

High-Priority Items

  1. Implement proof-of-concept for client-side validation:
    • Implement one simple case and one complex case
    • See Client-Side Validation

    • AH to complete all client-side validation config
  2. 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)?
  3. Make sure Refresh Attributes still works

    • Implement static Ja/Nein attributes and named range (at start of attributes worksheet?)

    • Implement static gut zur Ausfuerhung/freggegeben attributes and named range

  4. 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

  5. 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

  6. Implement date comparison for (not) trigging cell-note creation for date fields
  7. 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)
  8. Design for record status fields
    • May not be needed if the above highlighting is implemented
  9. Refactoring Check for Duplicates to check both drawingCode and drawingId fields

  10. 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
  2. Shorten attribute lists (AH/TN) (design needed, low-priority)

    • Via server-side configuration?

Login/Logout

  1. Implement login timeout (low-priority)

  2. Implement code that reacts correctly to auto-logout. E.g. session-timeout (low-priority)

    • Implement a heartbeat function to prevent session timeout?
  3. Check user roles and disallow login is certain roles not present (low priority)

  4. Login in a specific contract? (low-priority)

Search

  1. Resolve record count inaccuracy in search and test cases (AH/TN)

  2. User case: Set next revision based on a document with unknonwn revision types
  3. 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)

  4. In search form implement Gruppe menu with dependency on Bereich menu (AH/JS) (design needed)

  5. Test search fields:
    • document code
    • title
    • revision date from/to
    • external reference number
  6. Implement named baskets (Design needed) (AH/TN)

    • User can select a named basket download its contents
  7. Display progress messages in lower message area (WAIT)

  8. Improve new worksheet naming (low-priority)

    • Worksheet count should exclude the number of hidden worksheets

Data Display

  1. Implement Group menu (AH)

    • Group menu - Server side sorting and group name update (to make names Unique)
  2. Implement Vorabzug ja/nein flag (JS)

  3. Implement GA/Freigegeben menu: (JS)

  4. 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

  5. Fix bug: cell notes for record differences on date fields (AH/JS)

  6. Implement delta menu (JS - WAIT)

    • Column BK Art (Umfang, Inhalt)

  7. Implement document links (AH/JS/TN - WAIT) (design needed)

    • Handling Grundlagen document links

    • Handling PRF/STN document links

Data Editing

  1. Client-side validation (JS/AH) (complete proof-of-concept)

  2. 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?
  3. Implement new row (AH/JS)

    • Implement copy of template document from hidden row in layout
    • Define sample row in layout worksheet
  4. Locking of Contract menu after save (JS) (design needed)

  5. Locking of Vorabzug menu after save (JS) (design needed)

  6. Implement new columns to display record status and DrawMGT id values (JS) (design needed)

  7. Trap Excel-Quit and ask user if unsaved records should be saved (JS) (design needed)

  8. Highlighting of changed/new/unsaved records (JS) (design needed)

  9. Implement Restart Revision Sequence (AH)

  10. Refresh all/selected should reset record update counts (AH)

  11. Save all/selected should set record update counts (AH)

  12. Implement get next sequence number (AH)

  13. Implement revision sequence (AH)

  14. Set the revisionNo and revisionCode on new revisions (AH)

  15. 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
  16. Test copy-paste operations

Updating and Inserting Records

  1. Duplicate row detection before save (AH)

  2. Handle setting of revisionNo and revisionCode for new records (AH)

  3. Implement checking of record serial numbers on update (AH)

  4. Improve reporting of insert/update errors. Report server-side error text (AH)

  5. Generate errors on update/insert when drawing code not complete (AH)

Reject Revisions and Sub-Revisions

  1. Reject revision (design needed)

  2. Sub-revision processing (design needed)

Internals and Refactoring

  1. Review TODOs in code

  2. Named ranges
    • Automated management
    • Function for repair/reset of named ranges in case of corruption
    • Clone worksheet
    • Document named ranges and their boundaries
  3. Change iRow to lRow?

  4. Document new validation columns in header structure
  5. Document and revision (write) record structures
  6. Improved worksheet lookup/access functions (getCellValue/Address)

  7. Improved row selection for printing to worksheet
  8. Refactor define names to improve clarity and remove near-aliases
  9. Identify all magic constants and convert to Consts

  10. Improve function naming:
    • Make function names more business oriented rather than technically descriptive

Reports

  1. Implement Bau report (Design needed)
  2. Implement Ausrustung report

Compatibility

  1. Setup Excel 2007 test/development environment
  2. Implement Excel 2003 menu

Internationalization

  1. Convert all user display text to Const strings
  2. Translate all messages Consts into DE
  3. Implement tag and lookup for form text (design needed)

Final Cleanup and Packaging

  1. Nice if client-side and datatype checking and validation works off-line
  2. Hiding of internal worksheets (header structure, etc.)
  3. Get code signed with a Axpo certificate?
  4. Assign password to code

Testing

  1. Write a test-plan wiki page
  2. Make sure ZK/TN/DD have suitable test environments
  3. Check reading and updating of all fields
  4. Stress/performance testing
    • Searching for long lists
    • Bad input data
  5. Character sets: test with Umlauts
    • Test Umlauts in UTF-8 set to server
    • Test Umlauts in ISO-8859-1 set from server
  6. Compatibility testing
  7. Search tests
  8. Display tests
  9. List menu tests
    • Status menus
    • User menus
    • Flag menus
  10. Editing tests
    • Delta date calculations
    • Drawing code menus
  11. Insert tests
  12. Update tests
  13. Client-side validation tests
  14. Menu item tests
    • Check for duplicates
    • Duplicate selected
  15. Performance tests
  16. HTTPS test
  17. HTTP/HTTPS proxy test

Internal Documentation

  1. List of modules
  2. List of public subs/functions
  3. List of gotchas

    • Blank cells in header regions, caused by use of Excel count2 function

  4. Explanation of complex menu and look formulas)
  5. Convert notes/DesignNotes into Wiki
  6. Revision sequence
  7. Named ranges
  8. URLS for REST transactions
  9. XML structures
    • Returned records
    • Insert/update records

User Documentation

  1. Define outline/structure for user documentation
  2. Setup wiki pages

ExcelIntegrationToDoList (last edited 2011-07-19 17:10:57 by karl)

Copyright 2008-2014, SoftXS GmbH, Switzerland