Here is a small project that has an interesting (an reoccurring) twist: User Defined fields.
It is for a conference management company, to be used for simple shows that do not require their full blown system. So a lite version of their current system. The training will be minimal - The end user will be a temp hired for the the walk up registration period of a conference, typically a day or two.
It does 3 things: print badges, run add-hoc queries/reports, and dump the data to a simple text file.
It uses the PDF417 font kit from http://www4.dlsoft.com/barcode/fonts/barcode_font_kits_2d.htm#pdf417
The badges will be scanned by this system: http://www.cteusa.com/lead/lead.html
There are 5 kinds of Players:
Developer - consultant who writes the app once and leaves.
Tech - permanent employee who installs and configures the app for each conference.
Trainer - permanent employee who trains the Users
User - temps (1-20) hired to do data entry for one show (1-4 days). will be given 15-30 minutes of training.
Management - Member of the organization hosting the conference. May have done it last year. Minimal computer knowledge.
Some of the fields will be the static for each conference: Name, address, city.... Some will be dynamic and change each conference: Member, Speaker, Field of expertise, size of company, purchasing authority (0 - $10k, 10-30... ).
The Tech will configure the app at runtime (define the dynamic fields). Because they will do it many times, that step can be a bit more complex. The minimal training that the temps get requires the data entry screen to be kept really simple.
During the day, management wants ad hoc queries: How many attendees, how many are members, who can purchase over $100K worth of stuff, etc.
I need to figure out how the administrator will 'configure', and what the UI will look like to the thuser.
1a. Configure would mean MODIFY STRUCTURE. Start with the static fields (Name...) let the sysadmin add fields to it. The Data entry form would scan the dbc to find what additional fields were needed. This makes the dump and ad-hock queries really easy.
1b. 3 tables: Person, MiscFields (additional info to track), PMF (Persons Misc Fields). Configure - normal VFE UI to add records to the MiscFields table. Each time a Person record is added, a set of PMF records would be added, one for each MiscField. The dump would be a query built using the static fields and the list of MiscFields.
1c. As with 1b, but PMF is a fixed structure: PERSONID, CFIELD1 - CFIELDN, NFIELD1 - NFIELDN, DFIELD1 - DFIELDN, etc. (ie have a predefined number of character, number, date, etc. fields). MiscFields contains the captions the user assigns to each field; an empty caption means that custom field isn't being used. The UI for MiscFields is simple: a set of textboxes with the caption for each PMF field. The UI for PMF data entry is a little more complex: define a container and dynamically add controls to it at runtime for those fields that have a caption assigned.
2a. The PO would be built with the static fields, and scan the dbc for any additional fields and add them to the bottom - use dbGetProp() to get a lable for them. just add them in a column - there shouldn't be more than 5-10
2b. UI could be a Person PO with a PMF child grid.
2c. The Stonefield Reports meta data table (REPMETA.DBF) is fully populated with all PMF fields but REPMETA.CAPTION contains something like =GetCaption('PMF.CFIELD1') (this tells SFReports to get the caption dynamically), where GETCAPTION.PRG returns the caption for the specific field from MiscFields. SFReports will exclude fields that have an empty caption from the fields collection (note: this requires SFReports 5.1d), so they aren't reportable.
VFE question: anyone know what it will take to add iTxtBox's to a PO at runtime? Any other ideas?
Answer: Try looking at the VFE Presobj Wizard code since this is exactly what it does when you run it. Positioning might be a little tricky. Actually, if you use the miscfields table like you mentioned, you may be able to call the logic in cWizUtils directly when you are ready to add the controls at runtime.
I want to use Stonefield Query and Stonefield Reports. I'm not sure the users would be able to figure out how to do queries on the PMF data. I'm drawing a blank right now myself ;)
It needs to be able to import data from an alien address app. So the user may not be able to define the format of the txt file. So my app needs to be able to be configured around the txt files structure. I like the way Excel does it. Wondering if there are any prebuilt "text file parser/field mapper" widgets like that.
Current version can be downloaded from http://dev.personnelware.com/carl/install/cc/stable/cc16b.exe
Way to map fields in input file if they are not in the 'right' order.
UI to dbcx data for misc1-10.
Add a few non badge fields. dbcx prop? 1-5/6-10? 1-5/A-E?
Timestamp that record was added.
Filename that record was imported from.
Option to change path and file name of export file.
Export to XML
Small - desktop icon
Large - opening screen
Medium - help/about screen
Tiny - window title icon.
Small - setup program icon. (standard one may be best)
Movie to do: http://www.cthulu.com/cgi-bin/wiki/pywiki?ConferCarl
Current Stable Version 2.8.1
Official product name: cBadge
exe name: cc.exe
Program group: cBadge
pdf417 info: http://www4.dlsoft.com/barcodes/support/barcode-details/pdf417/pdf417.htm
16 Oct 2001
Some Company, INC
Izzy, from CTE, asked me to contact you regarding our badge printing software.
We develop software for a variety of special needs for various companies, one of our products might be of interest to you.
The software I am referring to is our cBadge. Its main purpose is to print badges using the PDF417 bar code to be read by CTE's lead retrieval scanners. We only support the scanners that CTE uses, however, other similar scanners may work as well.
The software's basic functionality is a data entry screen coupled with a print function that enables the operator to input data and print out the badge for the item just entered. This is used for on-site registration.
cBadge also has the ability to import and export data in several formats, including CSV, TXT, SDF, XML and DBF (other formats are available for an additional programming cost). This allows you to print badges in batch mode for pre-registration using data from your existing database. Your data is imported and stored, along with any data collected onsite after the show. This data can then be reported on and exported so that it can then be used by your system at a later date.
cBadge minimum system requirements are: Windows 95 and an available printer. Laser printers are recommended, ink-jets are supported, but these types are prone to ink-smearing.
The software is available via CD or a 20 meg download from our website. Also on our website is a 15Meg avi that walks you through a demo of the software. This AVI file is not suitable for dial up connections/downloads.
Give me a call if you have any questions.
Developer of cBadge
Izzy, I have a few questions:
Confer Carl Web Services
Category Project Peer Review
( Topic last updated: 2001.10.16 08:40:46 PM )