I have tried Editing Database Information with a Dialog and found it works great. Two comments/questions related to shared databases:
If I open the dialog set up to edit data as described in the rundialog help page, and the user presses the Cancel button, the active record is locked and remains locked after the dialog closes. I thought it would be better not to lock the record when Cancel is pressed.
Second, when the Ok button is pressed, the record is locked. Wouldn’t it be better to lock the record, upload the changes, the commit the changes (i.e. unlock the record)?
This section of the documentation was written long before Panorama X Server was a thing. This code example was not written with record locking in mind.
However, I think you could easily modify the code to make it work with a shared database. You just have to lock the record before the dialog opens and unlock it when the dialog closes.
if lockcurrentrecord()
loop
rundialog {Form=Address Height=120 Width=400
variabletype=fileglobal
Variable:"dName=Name"
Variable:"dAddress=Address"
Variable:"dCity=City"
Variable:"dState=State"
Variable:"dZip=Zip"}
stoploopif info("trigger")="Dialog.Close"
endloop
unlockrecord
else
alertsheet "Record is locked by another user"
endif
Jim, thank you for those suggestions. I had wondered what would happen if I tried to access a locked record. I will make these changes part of my regular code.
When using a dialog with a form both as a sheet or a dialog can the dialog use a form with scroll bars? It seems that the scrollbar options are turned off automatically for both.