Using FileMaker Pro Advanced to create Bandit, an application for bird banders Kevin Laurent USGS Pa - PowerPoint PPT Presentation

1 / 58
About This Presentation
Title:

Using FileMaker Pro Advanced to create Bandit, an application for bird banders Kevin Laurent USGS Pa

Description:

FileMaker Users and Developers in Government and Education. Fall Meeting, ... Inno Setup, the windows installer packager, http://www.jrsoftware.org/isinfo.php ... – PowerPoint PPT presentation

Number of Views:336
Avg rating:3.0/5.0
Slides: 59
Provided by: peex
Category:

less

Transcript and Presenter's Notes

Title: Using FileMaker Pro Advanced to create Bandit, an application for bird banders Kevin Laurent USGS Pa


1
Using FileMaker Pro Advanced to create
Bandit, an application for bird bandersKevin
LaurentUSGS Patuxent Wildlife Research
CenterLaurel, MarylandFileMaker Users and
Developers in Government and EducationFall
Meeting, October 3, 2007
2
Overview
  • Background
  • Design Development
  • Packaging Issues
  • Real artists ship (Release Issues)
  • Documentation Subsystem
  • Summary Q/A

3
Background
  • Problems with Band Manager
  • FoxPro on Win 95 and Mac OS 8
  • Crashes and corruption on Win XP and Mac OS X
  • Code base not under our control
  • Interface cumbersomefeatures missing
  • Early 2006, Project TIMBO begins

4
Design Development
  • Creating a new design
  • Prototyping using FileMaker
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

5
Data Entry/Edit Screen from Band Manager
6
Band Manager Screens
7
A New Design
  • Streamline interface
  • Implement spreadsheet input/edit
  • Use Email for uploading data
  • Increase banding location accuracy

8
Banding locations map
9
Banding locations map (detail)
10
Design Development
  • Creating a new design
  • Prototyping using FileMaker Pro Advanced
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

11
FileMaker Pro Advanced
  • Relational Database
  • Cross-platform support (PC/Mac)
  • Easy GUI development environment
  • Flexible import/export facility
  • Unlimited distribution of runtime (FileMaker Pro
    Advanced)

12
FileMaker Pro Layout Mode
13
Design Development
  • Creating a new design
  • Prototyping using FileMaker
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

14
Error Text field calculation
  • If ( not IsEmpty ( is_unique ) and not is_unique
    "Duplicated band number" "" )
  • If ( Banding Date gt Get ( CurrentDate ) or
  • Banding Date lt Date Received "Invalid Banding
    Date" "" )
  • If ( IsEmpty ( Bird Status ) "Undefined Bird
    Status" "" )
  • If ( not IsEmpty ( How Aged ) and ListIndex (
    ValueListItems ( "Bandit Data" "How Aged" )
    How Aged False ) 0 "Invalid How Aged
    Code" "" )
  • If ( not IsEmpty ( How Sexed ) and ListIndex (
    ValueListItems ( "Bandit Data" "How Sexed" )
    How Sexed False ) 0 "Invalid How Sexed
    Code" "" )
  • If (ListIndex ( AOU sizes Band Size False )0
    "Bad Size" "" )
  • If ( Length ( AOU )lt4 "Invalid Species" ""
    )
  • If ( IsEmpty ( Location ) or LocationIsLocationV
    alid "No" "Location used is not valid " ""
    )
  • If ( IsEmpty ( Age Code ) "Invalid Age" "" )
  • If ( IsEmpty ( Sex Code ) "Invalid Sex" "" )

15
Design Development
  • Creating a new design
  • Prototyping using FileMaker
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

16
Application-Data Separation Model
  • Idea Store application-specific stuff in one
    database and user-specific stuff in another
    database
  • Changes to application schema, lookup tables,
    layouts, scripts can be done without having to do
    re-import
  • Works, but schema is more complex

17
Application-Data Separation Model
Application Database Lookup Tables Layouts Script
s
Data Database Data Tables
18
Application-Data Separation Model
  • Idea Store application-specific stuff in one
    database and user-specific stuff in another
    database
  • Changes to application schema, lookup tables,
    layouts, scripts can be done without having to do
    re-import
  • Works, but schema is more complex

19
Bandit Application Relationships
Bandit App Relationships
20
Bandit Data Relationships
21
Design Development
  • Creating a new design
  • Prototyping using FileMaker
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

22
Cross-platform issues
  • Not many
  • External file support
  • PDF generation
  • PDFCreator (Windows)
  • PDF support built into Mac OS X

23
Cross-platform screen comparison
Windows XP
Mac OS X
24
Cross-platform issues
  • Not many
  • External file support
  • Scripting
  • PDF generation
  • PDF support built into Mac OS X
  • PDFCreator (Windows)

25
External Filenames
Set Variable FilePath Value Case( (Get
(SystemPlatform) -1) "filemac"
(Get(SystemPlatform) -2) "filewin"
"file" ) Get (DocumentsPath)
"Bandit_Bands_" prefix Right
("00000" suffix1 5 ) "_" prefix
Right ("00000" suffix2 5 )
"_" Year (Get ( CurrentDate) ) Lpad
(Month (Get ( CurrentDate)) 2 "0" ) Lpad
(Day (Get ( CurrentDate)) 2 "0" ) ".xls"
26
Cross-platform issues
  • Not many
  • External file support
  • Scripting
  • PDF generation
  • PDF support built into Mac OS X
  • PDFCreator (Windows)

27
Cross-Platform Scripting
If Get ( SystemPlatform ) -1 // Mac Set
Variable theMacPath ValueLet (
thePath Middle (Get ( FilePath ) 6
999) // Strip off file len Length
(thePath) thePathAsValues Substitute
(thePath "/" "") nValues ValueCount
(thePathAsValues) // Count levels
Substitute (LeftValues (thePathAsValues
nValues - 1) "" "") ) Perform
AppleScript Calculated AppleScript "tell
application \"Finder\" delete folder \""
theMacPath "Backup\" end tell" Else //
Win Send Event open document/application
File Name filecleanup.bat Bring
application to foreground End If
28
Cross-platform issues
  • Not many
  • External file support
  • Scripting
  • PDF generation
  • PDF support built into Mac OS X
  • PDFCreator (Windows)

29
Design Development
  • Creating a new design
  • Prototyping using FileMaker
  • Adding business rules and edits via calculations
  • The application-data separation model
  • Cross-platform issues
  • The Roundup issue tracking system

30
Roundup Issue Tracking System
31
Packaging Issues
  • Creating Installer for Windows (Inno Setup)
  • Apple PackageMaker
  • Licensing Issues
  • Preparing for future releases
  • Versioning
  • Data schema changes
  • Application changes

32
Inno Setup
33
Inno SetupScripting
34
Bandit Windows Install
35
FileMaker Runtime Files
36
FileMaker Runtime Files
37
Packaging Issues
  • Inno Setup
  • Apple Package Maker Disk Utility
  • Licensing Issues
  • Preparing for future releases
  • Versioning
  • Data schema changes
  • Application changes

38
Packaging for Mac OS X
  • Apple Package Maker
  • GUI-driven interface
  • Hooks at each stage (preflight, preinstall/
    preupgrade, postinstall/postupgrade, postflight)
  • Uses shell scripting

39
Mac OS X Preinstall Bash Script
!/bin/bash preinstall and preupgrade script to
save data files in Backup directory Note If 2
were not enclosed in quotes in the next
statement, the script would get an error
if the volume name included a space. if cd "2
then if -f "Bandit App.BND" then if !
-d Backup then echo SCRIPT_NAME
Creating Backup directory in 2 mkdir
Backup chmod 666 Backup fi echo
SCRIPT_NAME Copying data files to Backup
directory... echo SCRIPT_NAME 2/Bandit
App.BND -gt 2/Backup/Bandit App.BND cp
"Bandit App.BND" Backup/ echo SCRIPT_NAME
2/Bandit Data.BND -gt 2/Backup/Bandit Data.BND
cp "Bandit Data.BND" Backup/ echo
SCRIPT_NAME Storing date-time stamp in
2/lastbackup.txt echo date YmdHMS
gtlastbackup.txt else echo SCRIPT_NAME No
Bandit datafiles found in 2 fi else echo
Unable to change to the installation directory.
(It may not exist yet.) fi exit 0
40
Bandit Macintosh Installer
41
Packaging Issues
  • Inno Setup
  • Apple PackageMaker
  • Licensing Issues
  • Preparing for future releases
  • Versioning
  • Data schema changes
  • Application changes

42
About Bandit Screen
43
Bandit Splash Screen
44
Packaging Issues
  • Inno Setup
  • Apple PackageMaker
  • Licensing Issues
  • Preparing for future releases
  • Versioning
  • Data schema changes
  • Application changes

45
Real artists ship (Release issues)
  • Alpha, Beta, and version 1.0
  • Keep good release notes
  • Beta testers are busy too
  • Need beta testers for every platform, language
  • Staged releases to different communities
  • Waterfowl banders have different needs
  • Internal release and training the help desk
  • Coordinating training

46
Documentation Subsystem
  • DocBook SGML, really
  • Outputs to XML-FO, HTML, and Helpbook
  • Relax NG vs DTD
  • Apache Formatting Objects Processor (FOP)

47
DocBook Processing
Single-PageHTML
High- Quality PDF
DocBook Source (SGML)
Windows HelpBook
48
Bandit Documentation Editing
49
Bandit Documentation SGML
50
PDF Output
51
HTML Output
52
Windows Helpbook Output
53
FileMaker Mobile
  • Supports PalmOS and PocketPC
  • Links to Bandit on the Desktop or Laptop
  • Dropdown fields and calendar widget

54
Bandit Conceptual Overview
55
Summary Insight
  • Releasing a custom-built software product to
    public users is challenging
  • Process changes Little things can mean a lot
  • Band Manager used Banding Schedule
  • Bandit replaced Schedule with Submit and allowed
    banders to submit data whenever

56
Links
  • Jrsoftware.orgJordan Russells Software, creator
    of Inno Setup, the windows installer packager,
    http//www.jrsoftware.org/isinfo.php
  • FileMakerCreator of FileMaker Pro Advanced 9,
    http//www.filemaker.com
  • Apple Developer ConnectionPackageMaker is part
    of the Xcode Development Tools package,
    http//developer.apple.com/
  • DocBookUsed in the creation of the
    documentation, http//www.docbook.org/ and
    http//docbook.sourceforge.net/

57
Links (continued)
  • Apache Formatting Objects ProcessorUsed in the
    creation of the documentation, http//xmlgraphics.
    apache.org/fop/
  • RoundupThe server for tracking bugs, issues, and
    feature requests, http//roundup.sourceforge.net/
  • PDFCreatorInstalls a printer driver which
    creates PDFs like Adobe Acrobat,
    http//sourceforge.net/projects/pdfcreator/

58
Using FileMaker Pro Advanced to create
Bandit, an application for bird bandersKevin
LaurentUSGS Patuxent Wildlife Research
CenterLaurel, MarylandFileMaker Users and
Developers in Government and EducationFall
Meeting, October 3, 2007
Write a Comment
User Comments (0)
About PowerShow.com