radiodan Posted March 28, 2007 Posted March 28, 2007 In order to set up email marketing lists, I display a list of all the contacts in our database. To add them to an email list I run a script to create a join record. The script Freezes the Window takes the id from the presenter and a global value (the campaign being worked on) as two values, it then goes to the join layout, searches for a record with the two variables, if it finds one it returns to the original window, if not it creates the join record and returns to the original value. Using the global value I have set up a relationship to indicate if the join record exists (i.e if a customer is on the particular email list) This all works great. The problem is keeping the original layout still. On the original layout, which displays 20 records on the screen and can be scrolled, you can click a button next to any of the records to trigger the script, when the script finishes the record which the script has been run on, always ends up at the bottom of the screen, regardless of where it was on the screen when the script was run. Is there a way to completely freeze the window, so that to the user the script is completely transparent?
Inky Phil Posted March 28, 2007 Posted March 28, 2007 How about at the start of the script storing the record # into a variable and at the end of the script going to record# (by calculation) yourvariable. HTH Phil
radiodan Posted March 28, 2007 Author Posted March 28, 2007 Thanks for the suggestion, I have tried that and I always end up on the correct record, but with it at the bottom of the page. I need to keep the record in exact place it was when the button (running the script) was pressed. I want it to look to the user like pressing the button, switches on the indicator (with a very slight lag). Its confusing for users to have the screen appear to move about when they select a recipient. any other ideas?
comment Posted March 28, 2007 Posted March 28, 2007 This seems to be a by-product of your script. If your script did only the things you have mentioned, this shouldn't happen. I am guessing you are ending with some attempt to get back to the original record. But there's no reason why the current record on the original layout should change.
radiodan Posted March 28, 2007 Author Posted March 28, 2007 Hi, It's not that the record changes, it's that it's position on the page changes. The script does the following: Freeze Window Set Error Capture on Set Variable 1 Set variable 2 Go to join layout Enter Find Mode Set Field with Variable 1 Set Field with Variable 2 Perform Find if [Get (Last Error) < 1] Enter Browse Mode Show Custom Dialogue ["already booked"] Go to original layout Else Create Join record Goto original Layout I have also tried setting a $ with Get (RecordNumber) and then using it to Go to record by calculation at the end of the script. In both cases I end up on the correct record, but it always moves to the bottom of the screen.
comment Posted March 28, 2007 Posted March 28, 2007 I cannot reproduce your problem. Can you post a demo file (preferably a simple one) that shows this behavior?
Inky Phil Posted March 28, 2007 Posted March 28, 2007 OK then here's another possibility. I don't know that it works but it might. At the start of the script instead of having a freeze window have a 'new window' step. Specify the new window to be - (minus)1000pixels each way. At the end of the script close the new window. This will mean that the window where all the action takes place is off the screen and therefore not visible to the user. Your old window will still be visible as before. After you close the new window the old window will become active again - hopefully with no changes. It will be interesting to see if that works. It certainly does for me when I have a lot of 'flashy' things going on on my screen due to the windows refresh issues. Regards Phil Phil
radiodan Posted March 28, 2007 Author Posted March 28, 2007 Comment; I have uploaded a file that shows the problem. It's very simple and doesn't have the indicator thats in the full file. Clicking the button next to the record creates the join record and moves the record you are working on to the bottom of the screen (try it with a record half way though the list). Inky Phil: Thanks for the suggestion I will give it a go. DemFile.zip
radiodan Posted March 28, 2007 Author Posted March 28, 2007 Inky Phil, Thanks for the suggestion it works really well Daniel
mr_vodka Posted March 28, 2007 Posted March 28, 2007 I think that this may be a better approach than trying to script it. DemFile_relations.zip
radiodan Posted March 28, 2007 Author Posted March 28, 2007 John, I think you might very well be right, I haven't used relationships to test conditions before, but I'm certainly going to start! Daniel
Recommended Posts
This topic is 6452 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now