Thanks, maybe this will help me figure out what's wrong with what I wrote.
--
Timothy Astle
Brandon Wallace <[EMAIL PROTECTED]> wrote in message
news:8159@palm-dev-forum...
>
> Here is an excerpt from my event handler.
> The Accept button will save the record. If the record is already
> in the database, it removes it and then puts it in sorted order.
> If the record is brand new, it makes one and puts it in sorted order.
>
> The Delete button displays a confirm and then deletes the record.
> Enjoy
>
>
> case PatientEntryAcceptButton:
> {
> VoidHand recordH = 0;
> UInt recordIndex = prefs.patientEntryFormData.recordIndex;
> FormPtr frmP = FrmGetActiveForm();
> UInt attr; // record attributes (category)
>
> // Save the form to our main record...
> PatientEntryFormSave (frmP);
> if (
> #if PROVINCE == PROVINCE_MB
> !*prefs.patientEntryFormData.patient.lastName &&
> !*prefs.patientEntryFormData.patient.firstName
> #endif
> )
> {
> // This is an invalid record
> FrmAlert (InvalidPatientAlert);
> }
> else
> {
> // Modify the patient status and open/create the db record
> switch (prefs.patientEntryFormData.patient.ivals.status)
> {
> case PatientNewUnsaved:
> {
> prefs.patientEntryFormData.patient.ivals.status = PatientNew;
> //
> // We need to assign a palmID.
> // Get/increment the next PalmID from the AppInfo block
> //
> prefs.patientEntryFormData.patient.ivals.palmID
> = -(++gPatientAppInfo.lastPalmID);
> //
> // Save this appInfo information...
> //
> savePatientAppInfo();
> recordIndex = 0;
> //
> // Allocate some space for the data
> //
> recordH = DmNewHandle (gPatientDB, packedPatientSize
> (&prefs.patientEntryFormData.patient));
> break;
> }
> default:
> {
> // The patient already exists, so detach it from the database
> // because it might move in its sort order
> DmDetachRecord (gPatientDB, recordIndex, &recordH);
> break;
> }
> }
> if (recordH)
> {
> // Now save the record
> packPatient (&prefs.patientEntryFormData.patient, recordH);
> // Now figure out where it goes in the database.
> recordIndex = DmFindSortPosition (gPatientDB, MemHandleLock
(recordH),
> 0, patientSortCmp, 0);
> MemHandleUnlock (recordH);
> // Add the record to the DB
> DmAttachRecord (gPatientDB, &recordIndex, recordH, 0);
>
> // Set the category of the record to the correct category.
> DmRecordInfo (gPatientDB, recordIndex, &attr, NULL, NULL);
> attr &= ~dmRecAttrCategoryMask; // Remove all category bits
> attr |= patientCategory (&prefs.patientEntryFormData.patient);
> DmSetRecordInfo (gPatientDB, recordIndex, &attr, NULL);
> }
> // Go to the PListForm
> FrmGotoForm (PListForm);
> }
> handled = true;
> break;
> }
> case PatientEntryDeleteButton:
> {
> char * m3;
> FormPtr frmP = FrmGetActiveForm ();
> PatientEntryFormSave (frmP);
>
> if (prefs.patientEntryFormData.patient.ivals.status == PatientNew)
> {
> m3 = "This patient will be gone forever.";
> }
> else
> {
> m3 = "The patient can still be viewed on the PC.";
> }
> if (FrmCustomAlert (PDeleteAlert,
> #if PROVINCE == PROVINCE_MB
> prefs.patientEntryFormData.patient.lastName,
> prefs.patientEntryFormData.patient.firstName,
> #endif
> m3) == 0)
> {
> // The user has confirmed...
> UInt recordIndex = prefs.patientEntryFormData.recordIndex;
> DmArchiveRecord (gPatientDB, recordIndex);
> FrmGotoForm (PListForm);
> }
> handled = true;
> // Confirm the delete message
> break;
> }
>
>
>
>
--
For information on using the Palm Developer Forums, or to unsubscribe, please see
http://www.palm.com/devzone/mailinglists.html