"password; passwording; security; access rights; assign access rights; secure; secure file; secure files; file; files; copy; rename; change; UserID; user id; change password; change userid; rename userid; 1453"," ","We have a small network running Q&A 4.0 and have a password-protected file. We want to copy that file to another name, change the data in the file as needed, and assign the resultant file to someone else. So far, we can copy the file to another filename and can change the password. Is there any way to also change the UserId also?"," ",1453, ,"Jun 5, 1996","Changing the UserID is very easy to do. Simply select (F)ile, (D)esign file, (S)ecure a file (filename), (UserID/Password), (A)ssign access rights. Highlight the name of the User and press F8. You'll be prompted with a field called 'Rename to:'. Enter the new UserID and press Enter to make the replacement. You'll see '(NEWID) is the new name.' in the lower left hand corner of the screen. Press F10 to continue working with the password (to change the password and/or the access rights) -- or press escape to end the process. While we're on the subject, you could simply highlight a UserID and press F3 to remove it completely. Of course, you can add other users, as necessary."," "," "," "," "," "," "," "," "," " "lookup; xlookup; external lookup; xlu; custom; mtnu; custom menu; date; dates; start date; start; end date; end; stop; stop date; retrieve; retreive spec; report; reports; variable; variable dates; variable retriev;; 1454"," ","I have been using @xlookup in my retrieve spec for several of my reports that require a date range and I haven't had any porblem until I upgraded to Q&A 5.0. With Q&A 4.0, I can scan 7,000 records in about 15 seconds. Now with Q&A 5.0 scanning the same 7,000 records takes about 12 minutes. It appears that Q&A 50 is doing a lookup for each record instead of setting the retrieve spec onetime and scanning the database. My retrieve spec is: {@xlu('setdate',9999,'key','start date')}..{@xlu('setdate', 9999,'key','end date')} The xlookup database is 1 record long, and contains 3 fields as follows: key, start date, end date. If I use a standard retreive spec ie: >=6/1/96..<=6/6/96 the scan speed is normal. I'm using custom menus with macros to set the start date and end date. Once set, all reports are run automatically from a menu selection. I sure would appreciate a fix or workaround to this problem so that I can continue to use Menu Driven Reports without operator interface.","5",1454,34,"Jun 14, 1996","First, I'd like to point out that the technique referred to is documented in another record in this database, identified as XRef #34. (If you're not familiar with the technique, it would help to check that record first). This technique behaves much differently in 5.0; unfortunately, it is much slower. Although the drop in speed - in my situation - was nowhere near as drastic as yours, it was, nevertheless, quite severe. (Perhaps, you're using a network, whereas I am using a standalone PC). I base my comments on the following 'experiment.' I executed a (sorted) retrieve spec in version 4 in a database with 13,170 records. It took approximately 1 minute to retrieve 5,467 records that met the (external lookup) specification. (There was no discernible difference in speed, by the way, whether the retrieve field was set to speedy .... or not). I then converted the same two databases to version 5. Performing the exact same retrieval took 6 minutes and 19 seconds. I even recovered the database and there was no improvement in performance. There is no question that we would like (and have the right to expect) the same performance that was available to us in version 4 - for a particular function - to be available in version 5. The 'good news' is that I believe I have come up with a viable alternative. Here's what I did. First, I added a (T)ext field to the SETDATE.DTF (the external lookup database) which I called RETRIEVE and programmed as follows: KEY:#10 START DATE: #20 END DATE: #30 RETRIEVE: #40 = @str(#20) + '..' + @str(#30) (The resulting value would be something like: 1996/05/01..1996/05/31) I then modified my macro to accommodate the new approach. After it paused for the dates to be entered, I had it copy (F11) the RETRIEVE field data. Then I had it go into report redesign mode and pasted (F12) the retrieve spec into each of the reports I want to print. (This retrieve spec was, of course, used in lieu of the 'xlookup' retrieval). The macro could end here or could continue to actually print the reports. The reason I changed all the report specs first, is that this would allow for the reports to be subsequently printed individually, if desired. I would like to mention that I don't like macros making 'permanent' changes to databases; however, a simple backup (which should be done anyhow) before starting the procedure will protect the integrity of existing reports. Naturally, if you are only printing one or two reports, you could have the macro simply process a 'temporary' change and immediately print the report(s). Now for the 'frosting on the cake.' The real 'prize' is achieved if you can make your date field (in your primary database) (S)peedy. By doing this in my little 'experiment' the one-minute v4 procedure (which stretched to 6 minutes in v5) was REDUCED to approximately 4 SECONDS in version 5. The 'down' side of this procedure is that when you create a new report(s) you must add them to the macro (rather than simply using a generic retrieve spec). The 'up' side is, of course, a tremendous increase in speed. There is yet another approach you can use -- which will cost a little more in processing time -- but which allows the use of a 'constant' retrieve spec. The same modification would be made to your SETDATE.DTF and you would still have the macro create the SETDATE document. There is no need to make your date fields in the primary file (S)peedy, since it offers no advantage with this approach. Your 'constant' retrieve spec would be something like: {@LT(@INSERT('D:\QA\DOC\SETDATE'),10)}.. {@RT(@INSERT('D:\QA\DOC\SETDATE'),10)} (Note: You might think that a simple '@insert' of the entire statement would do the trick. When we tried that, however, it did NOT work). It appears that it treats the two dots as literal characters rather than as a wildcard. By separately constructing the components, the retrieve spec works!) I sincerely hope that one of these procedures will help achieve the desired results. Good luck!"," "," "," "," "," "," "," "," "," " "if/then; if then; if; then; if then statement; wild cards; dots; two dots; either or; either/or; 1449"," ","I am doing something wrong in an IF..THEN statement. Argument: >#67: IF #61='PREMIER..' OR 'DOLPHIN..' OR 'MAJESTY..' THEN #128=#64-61. #61 is the name of the cruise supplier. #64 is the departure date or start date for the cruise. #128 is the last date the client can cancel without penalty. This argument doesn't work. Nothing is returned in field #128. An argument that does work: >#67: IF #66>=7 THEN #128=#64-61 ELSE #128=#64-46. #66 is the length of the cruise. This argument returns the correct date. The problem is confounded by the fact that the three cruise lines mentioned in argument 1 have last-day-to-cancel policies that are different from other lines and even though their cruise may be less than 7 days, the last day to cancel without penalty is #64-61. Any ideas why argument 1 doesn't return the date I'm looking for?"," ",1449, ,"May 21, 1996","Right off the bat, I see two things wrong with your statement. (1) I notice that each value (Premier, Dolphin, Majesty) is followed by two dots. I would imagine that you are trying to use the dots as 'wildcards' to indicate that something else can follow each word. BUT, Q&A is looking for a literal match and if it doesn't find one of the words followed (literally) by two dots, then it isn't finding a match. (2) The syntax you're using is incorrect and it's the one form of programming that Q&A can't identify for you. Each 'segment' of your argument would have to include #61 = so, if you were indeed looking for the value of Premium.. or Dolphin.. or Majesty.. , your programming would have to look something like: >#67: IF #61='PREMIER..' OR #61='DOLPHIN..' OR #61='MAJESTY..' THEN #128=#64-61 There are several ways to program this; I'll provide two. The first, is based on syntax similar to yours: (1) >#67: IF @INSTR(#61,'PREMIER') OR @INSTR(#61,'DOLPHIN') OR @INSTR(#61,'MAJESTY') THEN #128=#64-61 This, of course will NOT work if one of these words is contained anywhere in the name of another carrier. Alternatively, you could simply add the name of the three companies to your lookup table and use any constant value in the first field, e.g. X. This way, you could look for an exact match, and could easily add other carriers without having to change your programming, which would look something like: >#67: IF @lu(#61,1) = 'X' THEN #128=#64-61 I hope that one of these options fits your particular needs ... or leads you to another viable alternative."," "," "," "," "," "," "," "," "," " "report; reports; reporting; header; report header; heading; footer; program; programming; month; year; month and year; last month; next month; any month; 1438"," ","I have a report that retreives records from last month and in the page header setup I have a line that says: As of March 1996 Each month I have to change the month manually. Is there a way in the header to do a formula like (@Month-1) that would print the prior month. I have tried a write document, but would like to stay in the reports module. Any suggestions?","5",1438, ,"Apr 20, 1996","You said you 'retrieve' records for the prior month .... which tells me that there is a date field in your database. Here's what I would do: Column/Sort Spec ~~~~~~~~~~~~~~~~ DATE: 10,AS,I (Naturally, if you WANT the date to show, omit the ,I) Derived Columns ~~~~~~~~~~~~~~~ Heading: Month/Year!Calculation Formula No. 1 @mt$(#10) + ', ' + @str(@yr(#10)) Column/Sort Spec: 12,I ------------------------------- HEADER --------------------------------- 1: !Report Name! 2: !As of *pg {?1}*! 3: Using this approach, you will always have the month and year of the records you are printing, whether it be last month, 3 months ago or 5 months from now. I hope this information is helpful. Good luck!"," "," ","There is substantial documentation on this in the READ.ME file that comes with Q&A 5. You will find it in the same subdirectory as your Q&A program files."," "," ","X"," "," "," " "color; change; change color; cursor; cursor color; palette; 1431"," ","Is there a way to highlight or change the color of the cursor in Q&A 5.0? I am using a Toshiba laptop computer and with my aging eyes I am having difficulty seeing the cursor and what field it is in. Any help would be appreciated.","5",1431, ,"May 3, 1996","As far as I know you CANNOT change the color of the CURSOR. You can however, change the color of the text of the field that the cursor is in. Select (F)ile, (D)esign file, (C)ustomize a file (filename), Change palette. Then press F8 and select (G) - Selected field. This will change the text and background of whatever field the cursor is resting in. I hope this information is helpful. Good luck!"," "," "," "," "," "," "," "," "," " "print; printing; spec; print spec; printing expanded fields; expanded; field; fields; expanded field; expanded fileds; free form; print record; print records; record; records; lower; space; add space; spacing; more space; line; lines; more lines; add lines; between; between forms; space between forms; 1458"," ","I'm having a problem printing expanded fields on a free form printout, one record across, and two records down. Shouldn't expanded fields print with that enabled on print options? It doesn't want to. I'm aware of the two across limitation (ugh!) on labels, but this is file/print/print records and I'm doing two per page. Should work I'd think? Also, is there a way to *lower* the printout of the second record? It's up too high just below the first record, and I'd like to lower it some. Any way to do this? Thanks!"," ",1458, ,"Jun 19, 1996","You are right that if (on the File Print Options screen) you select 'Yes' to Print expanded fields -- it should print them out fully. (I just tried it on my computer and it works just fine). You did say 'I'm aware of the two across limitation (ugh!) on labels,' ..... but then you go on to say 'but this is file/print/print records and I'm doing two per page.' Are you sure that the 'Number of labels across' (on the File Print Options screen) is set to 1? While you can have more than 1 record per page - you CAN NOT print expanded fields if you have more than 1 label (or column, if you like) across. This is the most like reason for expanded fields to 'fail' when printing. Be sure that you are using the latest version of 4.0 (09-24-93) or version 5.0. The only other thing I can think to suggest is that you try adding the letter E to the field you want to print expanded. The E should be entered immediately following the X or + symbol in the appropriate field (but once again, this will not changed anything if the number of labels across is set to more than 1).. Lowering the printout of the second record is easy. Simply add the number of lines to skip in the last field you are printing. If for example, your last field is 7X then simply change it to 7X10 to force it to skip 10 (or any other number of) lines. If you press F1 twice - while you are in your print spec - I think you'll find that the help provided is fairly informative."," "," "," "," "," "," "," "," "," " "program; programming; program statement; number; Y; Y/N; number; numeric; any number; number in field; field; wild card; wild cards; wildcard; wildcards; in field; @instr; ..; 1437"," ","Suppose you have a text field that sometimes has numbers in it as well as text. If you want to write a conditional programming statement based upon whether or not field #10 has a number in it, you could use the @instr function to test for each digit from 0 to 9 separately (e.g. if @instr(#10,'0')=0 and @instr(#10,'1')=0 etc then goto #30) but this would result in a very long programming statement and would be cumbersome especially if you had several fields that had to be tested this way. Unlike 'basic', q&a does not have a 'for next' construct as a way of testing an entire field i.e. for x=1 to len(#10):if @instr(#10,'0123456789')<>0 then goto #15:next In q&a, what would be an 'efficient' way of determining whether or not a field has a digit it it?"," ",1437, ,"Apr 19, 1996","You can do this quite easily (as you can most other things in Q&A). Try this: >#10:IF @NUM(#10) >'0' OR @INSTR(#10,'0') THEN GOTO #15; CNEXT The first portion of the statement checks to see if the field contains any number other than zero and the second portion checks for a zero and 'WALLA' we're in business. I trust you'll be pleased. Good luck!"," ","The first portion of the statement (IF @NUM(#10) >'0') checks to see if the field contains any number other than zero. (If you tried to use @num with 'greater than nothing' (>''), the logic would fail because the absence of a number would return a zero value; therefore, you could not distinguish between a field that contained no number and a field that contained a zero). So the first part of the statement will be 'true' if the field contains a digit 1 through 9. The second part of the statement (@INSTR(#10,'0')) checks for the 'location' (position) of a zero in field number 10. If it's not there, Q&A will return a zero; if it is there, Q&A will return a number, so we can now distinguish between the presence or absence of a zero. With both portions of the statement linked together, 'WALLA' we're in business."," "," "," "," "," ","X"," " "report; reports; reporting; header; report header; heading; footer; total; totals; subtotal; subtotals; sub total; sub totals; sub-total; sub-totals; 1434"," ","I was able to get the current value of a field to display in a report header (thanks to a record in The Q&Answerman database). But, I have a problem when I try to print sub-totals at the bottom of each page. Each page represents a client. The first column has to be the client's name, in order for the header to reflect proper information. But, if I make the column invisible (since I don't want it to show in the report body), I can't get sub-totals on each page. This defeats my purpose. Do you have any suggestions.","5",1434, ,"Apr 18, 1996","Yes, I do. I tried many approaches to this and there is one that I like best. First, let me tell you that I tried to create a 'non-printing' character in the first column to provide for sub-totals. Unfortunately, even with one character, the printing is moved one space to the left. That throws off the heading. So, I tried to come up with something in the first column that would not be 'obnoxious' but that would serve our purpose. My final choice is a simple check mark û on the first line. Let's suppose your database includes the following fields: COMPANY NAME: SALES PERSON: SALES: RETURNS: Here's how you might complete your report specs: Column/Sort Spec ~~~~~~~~~~~~~~~~ COMPANY NAME: 10,AS,P,I SALES PERSON: 40,AS,CS SALES: 50,ST RETURNS: 60,ST Derived Columns ~~~~~~~~~~~~~~~ Heading: Company!Change Formula No. 1 @txt(#10<>#100,#10) Column/Sort Spec: 20,I Heading: 1:\ Formula No. 2 'û' + @LT(#10,1) Column/Sort Spec: 30,AS,F(TR),HS(\ ),DL(\ ),STL(\ ),R Heading: GROSS!SALES Formula No. 3 #50 - #60 Column/Sort Spec: 70,ST Heading: Compare!Company Formula No. 4 #10 Column/Sort Spec: 100,I ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ HEADER ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ 1: *PG {?1}* Sales Record 2: 3: As of @date ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Here's a sample of the output: Gimbel's Sales Record As of 4/18/96 GROSS SALESPERSON SALES RETURNS SALES ------------- -------------- ------------ -------------- û Clark Gable $30,000.00 $1,000.00 $29,000.00 Liz Taylor $60,000.00 $60,000.00 Minnie Mouse $10,000.00 $200.00 $9,800.00 Spencer Tracy $10,000.00 $500.00 $9,500.00 -------------- ------------ -------------- $110,000.00 $1,700.00 $108,300.00 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ PAGE BREAK ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Macy's Sales Record As of 4/18/96 GROSS SALESPERSON SALES RETURNS SALES ------------- -------------- ------------ -------------- û Mickey Mouse $13,300.00 $50.00 $13,250.00 Santa Claus $20,000.00 $20,000.00 -------------- ------------ -------------- $33,300.00 $50.00 $33,250.00 ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ END OF SAMPLE ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ The first line of the header comes from Formula No. 1 (Derived Column 10) and shows the name of the company for whom the report was prepared. The reason for eliminating the word 'Total' at the bottom of each page is that it would force all of the text to the right. From the layout of the reports the totals are quite apparent. The check mark is particularly significant if you were to report sales in descending order. That way, the check would appear next to the 'lead' sales person. You could, of course, allow the check mark to repeat on each line (by removing the 'R' from column 30); however, personally, I think that looks a little cluttered."," "," "," "," "," "," "," "," "," " "program; programming; program statement; number; Y; Y/N; number; numeric; 6; ..6..; wild card; wild cards; wildcard; wildcards; in field; @instr; ..; 1435"," ","I am trying to write a program statement. Field 1 has an entry like 6-30-44. Field 2 is to have a Y/N based on if the entry in field one has a '6-' in it. <#2=if @add or @update and #2='' and #1 = '..6-..' then #2 = 'y' Its the use of the '..6-..' that isn't working. How can I tell the program to read a wildcard entry 6- and then perform the action. Field 1, although numeric in appearance, is a text field...."," ",1435, ,"Apr 18, 1996","Let me assure you, up front, that this can be done. But there are a few things I would like to mention before I suggest the programming to use. First, I notice you are starting your programming with 'if @add or @update.' Since you have to be in one of those 'modes' when you are in a form, it is not necessary to use this at all. The only time you would want to use it is to distinguish between one OR the other. So, if you wanted programming to be executed only when you were ADDING a form, you might start it with 'if @add'. Likewise, if you wanted programming to be executed only when you were UPDATING a form, then you might start it with 'if @update.' Generally speaking, if you want to find out if a field contains a value (since you CAN'T use wild cards in programming the way you can when you search), you would probably use the @instr command. Usually it would be pretty straightforward with something like: #20: If #20 = '' and @instr(#10,'6') then #20 = 'Y' Q&A, however, is .... actually Q&A's CREATORS are .... VERY intelligent. Since you have your numbers separated by dashes, it will only recognize any number (6, in your example) if it appears by itself. So while it WILL recognize 6-30-44, it would NOT recognize 5-26-44. My solution is based on the premise that BOTH fields are formatted as (T)ext. It WOULD work if #10 were a date field (however, I might consider a different approach) but it will NOT work if #20 were a (Y)es/No field. Here's what I recommend: FIELD 1: #10 FIELD 2: <#20: if #20 = '' THEN {#20 = @REPLACE(#10,'-',''); IF @INSTR(#20,'6') then #20='Y' ELSE #20 = ''} (You'll notice, by the way, that I changed your numbers from #1 and #2, to #10 and #20, respectively. That's because, programming in multiples of 10 (when possible), is a very good habit to get into and I want to encourage it. Also, please note that after the word 'THEN' there is a left curly (French) brace .... and that the statement ends with a right curly (French) brace). I hope this information is helpful and that I've given you some additional pointers to think about. Good luck!"," ","What this formula does, is take the value from Field 1: and 'temporarily' places it in Field 2 BUT WITHOUT the dashes. Now, Q&A looks at each digit separately and can recognize the 6 no matter where it appears. Then, if the 6 is present the field is again changed, this time to Y. If 6 is not present then the field is simply made blank."," "," "," "," "," "," "," " "time; calculate; calculate time; time calculation; math; time math; days; different days; subtract; subtract time; pass; pass midnight; midnight; past midnight; past; passed; passed midnight; cross; cross midnight; cross days; 1436"," ","Anyone have an elegant solution to time calculation that must use times that begin and end on different days? IE. Q&A won't(can't) subtract 00:18 from 23:59 and come up with 00:19 minutes."," ",1436, ,"Apr 18, 1996","How about something like this: START TIME: #10 STOP TIME: #20 LAPSED TIME: #30: if #10 > ' and #20 > ' then if #10 < #20 then #30 = #20 - #10 else if #10 > #20 then #30 = #20 - #10 + 1440"," ","If the stop time is later than the earlier than the start time, this would mean that the stop time occurred on the next day. In this case 1440 (minutes representing 24 hours) are added to the calculation to arrive at the appropriate difference."," "," "," "," "," "," "," " "print; printer; printing; que; spool; print spool; print que; merge; merged; merging; merge docs; merged docs; merge document; merged document; lap top; laptop; lap tops; laptops; disk; disk spool; printer driver; file; copy; type; lpt; lpt1; port; print to file; 1440"," ","We have a small company with many names in our contact database. Several members of our firm have laptops and it would be nice if we could print to a 'que' while on a plane (as you can with Win based word processors). When you returned to the office, you could simply hook up to the network and all your letters would begin to print out. Is there a way to accomplish this? We are using Q&A for Dos in Windows 95 with pif files."," ",1440, ,"Apr 26, 1996","Q&A DOS (v4 & 5) has a print to FILE (disk spool) option built into it. As long as you have sufficient disk space on your computer, this should be a perfect solution. You simply need to install another copy of your printer driver, choosing File for the Port option. From the main menu, select (U)tilities, (P) - Install printer. Select any available printer option (such as Printer D), for the PORT, select the FILE option. Then proceed with selecting your printer brand and model to complete the installation. Whenever you want to print to the 'spool,' simply choose Printer D. Your merged (or any other print output will be saved as a disk file. When you are ready to print, simply go to a DOS prompt and type the copy (or type command) followed by the path to your disk file and your printer port, e.g. C:\> COPY C:\QA\DOC\MERGED.SPL LPT1 or C:\> TYPE C:\QA\DOC\MERGED.SPL >LPT1 As with all other Q&A DOS functions, this works perfectly in a Windows95 environment. I have tested it with many embellishments (bold, different fonts, sub/superscript, italics, script, double width, etc.) and all of them worked PERFECTLY. This is yet another valuable feature that the INGENIOUS CREATORS of Q&A thought to include. BRAVO! While we're on the topic, there are two other (though not nearly as suitable) options that you might want to consider: If formatting, embellishments, etc. is not significant, you could simply print to 'disk' rather than using the special printer setup. You might also want to consider using print 'buffers.' I don't know whether they make 'portable' ones; however, standard buffers are not very large. I would think you could print from a laptop to the buffer."," "," "," "," "," "," "," "," "," " "question; question mark; left brace; french brace; brace; bracket curly; curly brace; left; left curly brace; wild card; wild cards; literal; literal character; }; ?; retrieve; retrieve spec; retrieval; find; 1439"," ","I read your message on the CompuServe forum that included instructions inserting the value from a derived column into a report header: <<2: !As of *pg {?1}*! >> I went to The Q&Answerman datatabse to retrieve records that contained the string {? to see what the database had to say. I tried ..{?.. and ..{.. and, in each case, got the red box for invalid retrieve spec. I'm sure the answer is simple, so if you wouldn't mind please..."," ",1439, ,"Apr 20, 1996","It's obvious that Q&A does not 'recognize' the French (left curly) brace because it is generally used in programming statements and, indeed can be used in a retrieve spec. So, it expected to find a valid programming statement ... which was not provided. The solution is to simply tell Q&A that we want it to treat the character LITERALLY rather than as a SIGNAL that programming follows. The symbol to indicate that a literal character follows (discussed in other records in the database) is generally \ or ]. The appropriate retrieve spec, in this particular case, would be: ..\{\?.. That is telling Q&A to find any character(s) followed by (the literal character of) a French brace, followed by (the literal character of) a question mark, followed by another character(s). If you left out the second literal character (before the question mark), the retrieve spec would be accepted; however it would find all records having a French brace (with or without it being followed by a question mark), since a question mark is also a wild card for a single character. There you have it!"," "," "," "," "," ","X"," "," "," " "date; dates; month; last; first; 1st; 1st day; first day; last day; next month; last day of month; 1st day of month; first day of month; 1st of month; first of month; last of month; 1429"," ","Is there a way that from a date field I can have Q&A project (1) the first day of next month or (2) the last day of the current month"," ",1429, ,"Apr 4, 1996","Yes you can do it and the programming is rather simple. Let's suppose that your date field is #10, your 'first of next month' is #100 and your 'last of this month' is #200. You can use something like: #100: IF @DOM(#10)<15 THEN #100 = #10 + 32; IF @DOM(#10)>14 THEN #100 = #10 + 18; #100 = @STR(@MT(#100))+@STR('/01/')+@STR(@YR(#100)) A simple adjustment would change this to the last day of the current month. #200: IF @DOM(#10)<15 THEN #200 = #10 + 32; IF @DOM(#10)>14 THEN #200 = #10 + 18; #200 = @TD(@STR(@MT(#200))+@STR('/01/')+@STR(@YR(#200)))-1"," "," "," "," "," "," "," "," "," " "menu; external; launch; external program; menu; altf9; 1430"," ","I added an item to my external program menu but it won't work when I press the first letter. I have to move the cursor to the item and then press enter, then it works. Why is this?","5",1430, ,"Apr 7, 1996","There are basically two primary reasons why an external program won't work. From the way you describe the situation, it may be that you entered the menu name in all lower case. In order to be able to start an external program by simply pressing the first letter, it must be a capital letter. If the first letter is in lower case then highlighting the name and pressing enter would work. Simply change the first letter to upper case and it should work just fine. Alternatively, whether the first letter is upper case or not, you could press the 'number' on which it appears in the menu and it will start. If it is the 5th item for example, just pressing the number 5 will start the program. The other possibility (which would not apply in this particular case) is if you assign an incorrect path and/or command. In this case, the alternate program would not work even if you highlighted the menu item. Generally, your screen would 'go black' and then simply return you to Q&A. (By the way, on the Alternate Program menu, you can enter menu items in either lower or upper case; Q&A will always assign the first letter in upper case)."," "," "," "," "," ","X"," "," "," " "help; help screen; help screens; custom; custom help; define help; help directory; directory; 1447"," ","Could you please give me an example of a way to create a help directory in v5. I want to allow the user to select from any of the custom help screens for the form, without having to go to each field and press F1. Thanks for your assistance!","5",1447, ,"May 7, 1996","Version 5 is made to order for this type of help system. First define your help screens as you normally would (F)ile, (D)esign file, (C)ustomize a file (filename), (D)efine Custom Help. Press F5 and select noncurrent. Program a field that is easy to get to. I've gotten in the habit of reserving the last field of the database for a 'special menu' field. I simply record a macro for the ` key (the French accent key just below the tilde on the upper left hand side of the keyboard). The macro simply presses the end key 3 times to take me to the last field of the form. Then I complete my programming to (1) provide a general menu where the user can choose 'help' and (2) have the help screen pop up for the appropriate field. Here's an example of my programming: <#900: #900 = @US('GO BACK,PRINT,HELP,ETC.'); IF #900 = 'HELP' THEN {#900=@US('DATE,INSERT,NAME,ADDRESS,CITY, ETC.');@HP(@(#900)); CLEAR(#900)} To make it easy to insert the field names in the userselect statement, I simply go to a retrieve spec and print the form to disk. Then I use search and replace (F7) to replace the : with , and again to replace all of the spaces (/ /) with nothing (/). I can now paste these values into the userselect command. This simple process makes all of your help screens available from just one field."," "," "," "," "," "," "," "," "," " "Qa1; QA1.EXE; QAD; Qadfont.Ovl; Qadfont; Font; Preview; Page Preview;; 630; 1432"," ","Qadfont.Ovl Error Message Sometimes, when trying to print a report from Q&A DOS v5, with a page preview, I receive an error saying 'QADFONT.OVL is Missing.' While this doesn't happen all the time, I have to exit and restart Q&A to have it work right again. This is very frustrating.","5",1432,32,"Apr 13, 1996","Actually, this is not a new issue with version 5, although it has shown up in a 'new way.' In order to start Q&A, you must FIRST change to the subdirectory it is in and THEN start Q&A with QA (NOT QA1.EXE). The 'new' part in version 5, occurs when you launch an external program from within Q&A. If you are using a batch file, then simply add a line at the end to return Q&A to the correct subdirectory, e.g.: CD\QA (DON'T follow this with a QA command line or you will open another copy of Q&A rather than returning to the copy already opened)."," "," "," "," "," "," "," "," "," " "date; dates; date math; birthday; birthdays; date of birth; dob; age; week; weeks; month; months; years and months; 1433"," ","I have a DOB field in my database and would like Q&A to calculate the age in another -- but with a 'wrinkle.' If the age is less than one year, I would like it to show the approximate number of weeks. If the age is more than one year, I would like it to show the number of years and approximate number of months."," ",1433, ,"Apr 17, 1996","This can be done fairly easily as long as you realize it will be approximate. Also, I recommend that you use two separate fields, one for the actual age and another for the weeks or months. This way you can perform 'math' on the age field if necessary. So you may have to add another field to your database with the result of: DOB: AGE: < > The fields would be numbered 220, 230 and 240, respectively and the programming - in each field - would be something like: DOB: #220 AGE: <#230: IF #220 > '' THEN #230 = @YEAR(@DATE)-@YEAR(#220) - ((@MONTH(@DATE) < @MONTH(#220)) or (@MONTH(@DATE) = @MONTH(#220) AND @DOM(@DATE) < @DOM(#220))); IF #220 = '' THEN #230 = ''; IF #230 > '' THEN #240 = ''; IF #220 > '' AND #230 = '0' THEN #240 = @STR(@INT(@STR(@DATE - #220) /7)) + ' WEEKS'; IF #220 > '' AND #230 >= '1' THEN #240 = @STR(@ROUND((@DATE - #220)/30.42,0) - (#230 * 12)) + ' MONTHS'; IF #240 = '1 MONTHS' THEN #240 = '1 MONTH'; GOTO #250 #240: IF #220 > '' THEN #230 = @YEAR(@DATE)-@YEAR(#220) - ((@MONTH(@DATE) < @MONTH(#220)) or (@MONTH(@DATE) = @MONTH(#220) AND @DOM(@DATE) < @DOM(#220))); IF #220 = '' THEN #230 = ''; IF #230 > '' THEN #240 = ''; IF #220 > '' AND #230 = '0' THEN #240 = @STR(@INT(@STR(@DATE - #220) /7)) + ' WEEKS'; IF #220 > '' AND #230 >= '1' THEN #240 = @STR(@ROUND((@DATE - #220)/30.42,0) - (#230 * 12)) + ' MONTHS'; IF #240 = '1 MONTHS' THEN #240 = '1 MONTH' The reason I put the (nearly identical) programming in two fields is this: If you make ANY change anywhere on the form (assuming your programming is set to automatic calculation), that will cause the age to be updated by the programming in field #240. If you are simply 'browsing' the form, then moving the cursor through the age field will cause the age to be updated by the 'before field entry' programming in field @230. There is a reason I chose this approach, rather than to omit the programming in one field and make the other 'on form entry.' Had I used the latter, then every time you simply looked at a record and tried to 'escape', you would get a message warning that you hadn't saved the change. This is true even if the age hadn't changed ... because Q&A is basing the message on the fact that the field was recalculated. Obviously you can choose the approach that best suits your personal taste."," ","This is converting the birthday to the same date of the current year. In other words, if a person were born August 18, 1937, this changes that date to August 18, of the current year. That way you can compare the 'contrived' birthdate to the current date and tell whether it is today or within the 6 following days. The programming takes into account the last 7 days of a calendar year so that it should be accurate under any circumstances."," "," "," "," "," "," "," " "enter; enter key; macro; macros; variable; infomation; variable information; wait; wait state; Alt/F2; Alt-F2; Alt; F2; F-2; stop; stop macro; pause; se; condition; conditions; conditional; problem; cancel; cancellation; cancel macro; warning; caution; message; warning message; caution message; remove; color; colors; document; color document; color documents; resume; reconsider; esc; escape; 1442"," ","I have a macro - on a custom menu - that will remove all forms that are over 90 days old (i.e. the date last used is 90 days or more prior to the current date). The problem is that the macro should only be run AFTER certain other procedures have been followed. If someone should inadvertently start this macro, is there any way they can stop it? Ideally, I'd like to provide a warning message that would alert them to what is happening and to allow them to reconsider."," ",1442, ,"Apr 25, 1996","ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º º º º º ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ» º º º º º !!! C A U T I O N !!! º º º º º º ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ º º º º º º º º º º º º If you continue, all records º º º º º º over 90 days old º º º º º º will be REMOVED! º º º º º º º º º º º º Press if you wish to continue º º º º º º or º º º º º º to CANCEL this operation. º º º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º º º º º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ º º º ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ They say a picture is worth a thousand words, so I thought we would start off with one .... and reason for optimism. Any macro can be halted by simply pressing the escape key. By coupling this feature with the 'pause' (Alt/F2) option, and a word processing document, you can provide for 'interaction' with the user. Simply create a Write document similar to the one shown above and save it as a regular document. (I always end mine with an .scr suffix - so I can readily retrieve all my 'screens'). You can 'dress it up' by using ASCII characters -- such as the 'bar' I added under the 'Caution' line (Alt/219). You can also add color to your screen by simply using enhancements (Shift/F6). (It's too bad you can't use enhancements in expanded fields, or you would see the color in this one). Superscript = Pink Superscript and Bold = Yellow Underline and Bold = Bright Green Red, purple and other colors are also available. Experiment by using different combinations of enhancements for a wide array of colors. When you record your macro, simply start it by retrieving your write document and inserting a pause (Alt/F2). Now, it's up to the user as to whether he or she continues. Instead of enter (for people quick on the trigger), you might want to modify the macro -- to use F10 to resume). Instead of starting with this screen you can, of course, insert it (along with others if necessary) at any point in the macro procedure. Your macro might start off, something like: 'REMOVEOLDRECORDS'WGCAUTION.SCR ..... etc."," "," "," "," "," "," "," "," "," " "date; retrieve; retrieval; variable retrieve; variable retrieval; change; changing; constant; 1448"," ","I need a convenient way for users to enter a date - that can be used repeatedly as a retrieve spec and to date documents in several different places and ways. I am the only person using this system and creating a simple macro for the date was no problem at all. However, I am now teaching the system to others and want them to have the convenience of a date macro (that may need to be changed 2 or 3 times a day) without the ability of writing any other macro. If I can solve this, I can 'protect' my macro file, while letting this one macro be rewritten as necessary."," ",1448, ,"May 17, 1996","First, let me say that while it may (or may not) be feasible to 'create a macro to create a macro,' I don't think it's worth fooling with. One unanticipated mistake could wipe out your macro file (although, of course, you ALWAYS have a current duplicate ). I prefer to approach 'variable dates' by creating a database with only one record and two fields; one for a 'lookup value' and the other for the variable date. It would work something like this: Create a database called 'FIND' with two fields; a date field (DATE) on the first page and a text field (ID) on the second page). Add one record to the database, entering any date on page one and an X in the field on page 2. Make the ID field read only. If you're using version 5, you can add 'insurance' to be certain that an extra (unwanted) form is not added to the database. Simply program your DATE field with something like: <#10:IF @ADD THEN @EXIT Then program (and save) a retrieve spec (in your 'primary' database) that will look to the 'FIND' database to obtain the date needed to search for records, e.g. #10: {@xlu('find','X','ID','DATE')} NOW, you can put all of that in a macro that would pause for the entry of the date into the special FIND database. Then you could have another simple macro that would call up the appropriate (standard, saved) retrieve spec. You could also, by the way, use appropriate programming in a document to insert the date from the FIND file. Version 5 can give you everything you want. Either using the special file I mentioned .... or any standard document where the user will enter the date, try this. Create a macro that will go the database or document and simply copy (F11) the date. From then on, F12 (unless it is needed for some other purpose) can be used to copy the date wherever you want it. There are endless variations of this approach you could use."," "," "," "," "," "," "," "," "," " "file; files; temp; temporary; temp file; temp files; temporary file; temporary files; files; problem; error; message; problem message; error message; subdirectory; directory; 1451"," ","A glitch arrived this a.m. on our Q&A (v. 4.0). Does this mean we have to re-install our software, or is there a specific file I can restore? ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ! Problem ! ³ ³ ³ ³ Your temporary file subdirectory cannot be found. ³ ³ ³ ³ ³ ³ Press Esc to cancel. ³ ³ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"," ",1451, ,"May 24, 1996","Q&A automatically creates temporary files in order to be able to process certain activities. To find out what subdirectory Q&A places these files in, simply press Ctrl/F3 from your Main menu and check line 4. 4. Q&A temporary files............: C:\QA\TEMP\ This line is telling us that Q&A will store it's temporary files in C:\QA\TEMP. Should you remove this subdirectory (TEMP), Q&A will give you the 'Problem' message you saw on your computer. Fortunately, you can correct this situation very easily in one of two ways. 1) Go to a DOS prompt, e.g. C:\> 2) Type CD QA to get C:\QA> 3) Type MD TEMP to get C:\QA\TEMP> That'll do it. Alternatively, you can simply tell Q&A to store the files in any other existing directory. Suppose, for example, you have a subdirectory of C:\Windows\Temp .... there's no reason why you couldn't use this for Q&A temporary files. From your main Q&A menu, simply select (U)tilities, (S)et global options and enter the subdirectory on the third line, e.g.: Q&A Temporary files: C:\Windows\Temp\ Some people place temporary files in their Q&A program subdirectory and I strongly recommend that you not do that. I think it is a very bad practice to mix any type of working file in the same directory as your program files. By keeping the temporary files in its own separate directory, you can delete them with confidence, at any time.... without inadvertently removing a program file at the same time."," "," "," "," "," "," "," "," "," " "Macro; include; update; update macro; qamacro.asc; new macro; send; send macro; new; copy; file; copy file; copy a file; file copy; 1459"," ","I have created a macro but need to copy it to additional computers. Can you tell me how to do this?"," ",1459, ,"Jun 21, 1996","You can use the Q&A DOS file facilities (or an alternate method) to copy the QAMACRO.ASC (or some other) file from one computer to another: MAKE THE COPY: You START from the computer that has the MOST RECENT (current) copy of the QAMACRO.ASC file and follow these steps. 1. Place a formatted disk in the 'A' drive. (See note 1 below) 2. From the Main Q&A Menu, select: (U)tilities, (D)os file facilities, (C)opy a file 3. A 'Copy From' dialogue box will appear Press Shift/F4 (to clear the line, if necessary) Type C:\QA\QAMACRO.ASC (See note 2 below) 4. A 'Copy To' dialogue box will appear Press Shift/F4 (to clear the line, if necessary) Type A:\QAMACRO.ASC 5. When the 'copy' is finished, you will see a message in the lower left hand corner of the screen, something like: C:\QA\QAMACRO.ASC copied 6. Press Escape twice to return to the main Q&A menu COPY THE FILE: You then go to the computer you want the QAMACRO.ASC file COPIED TO and follow these steps: 1. Place the disk (just created) in the 'A' drive. 2. From the Main Q&A Menu, select: (U)tilities, (D)os file facilities, (C)opy a file 3. A 'Copy From' dialogue box will appear Press Shift/F4 (to clear the line, if necessary) Type A:\QAMACRO.ASC 4. A 'Copy To' dialogue box will appear Press Shift/F4 (to clear the line, if necessary) Type C:\QA\QAMACRO.ASC 5. You will see a 'Warning' message that you are about to overwrite the QAMACRO.ASC file. Enter (Y)es to continue. 6. When the 'copy' is finished, you will see a message in the lower left hand corner of the screen, something like: A:\QAMACRO.ASC copied 7. Press Escape twice to return to the main Q&A menu Repeat the second of set of instructions, as often as necessary, for each additional computer. NOTES: 1) The 'A' drive is the most common assignment for the 3.5' floppy disk drive. In some cases, this might be 'B' or some other letter. Simply substitute the appropriate letter. 2) C:\QA\QAMACRO.ASC is the most common path (C:\QA) and filename (QAMACRO.ASC) for the macro file. If your path and/or filename is different, simply make the appropriate change. Here is an ALTERNATE METHOD you may prefer. You can - from any Q&A list of files - highlight the name of the file you want to copy and press F5. A 'copy to' dialogue box will appear. (To get the list of files: (1) you can select (F)ile, (G)et and press enter to get the list of files of Q&A databases only ...... or (2) you can select (W)rite, (G)et and press enter to get a list of all files) Of course, you can use standard DOS or Windows copy procedures to copy any file(s). Lastly, you must 'install the new QAMACRO.ASC file for Q&A to start using the new one. Either press Shift/F2 to get the QAMACRO.ASC file (or simply exit and restart Q&A) ... and from that point on the new macros you provided will be functional."," "," "," "," "," "," "," "," "," " "alt; f2; alt/f2; altf2; pause; macro; macros; shell; @shell; additional;1452"," ","I just went to create a macro to use an external program (another copy of Q&A) like we talked about at last Sunday's NY Area Q&A User Group meeting. When I go to use Alt/F2 to have the macro pause, it brings up a list of macro names and NOT the message about Alt/F2 to continue. What on earth am I doing wrong? I DID notice that when I go into the second copy of Q&A, the cursor is no longer flashing in the bottom right hand corner to indicate it is still recording. Is this the reason for getting the list of macros? Do I have to create this macro manually instead of using Sft/F2 for defining a macro? Any input appreciated - would love to get this working!","5",1452,33,"Jun 3, 1996","ALT/F2 serves a dual purpose with regard to Q&A macros. (1) When you are RECORDING a macro, ALT/F2 is used to pause the macro (to allow for user input, etc.) and then, again, to restart the recording. (2) When you are USING (NOT recording a macro in) Q&A, ALT/F2 will present you with a list of macros. You can simply select (highlight) a macro and press enter to execute (run) it. I'll come back to this after I discuss 'shelling out.' Macros can not be recorded - all at once - in different copies of Q&A. When you 'exit' the first copy of Q&A, the macro is 'suspended' in a record state. To 'continue' the macro, simply start (Shift/F2) another 'auto-start' macro in your second copy of Q&A ... and begin recording. BEFORE exiting the copy of Q&A, save the macro. (You will need to go back into the macro file and add the 'X' just before so that when you 'play' the macro, it will exit the second copy, if that's what you want it to do). By auto-start macro, I mean any ALT/NUMBER combination, such as Alt/8. You can save the macro in the SAME or a DIFFERENT macro file. When you go back to your original copy of Q&A you will see that the macro is still recording. Save it immediately. (While it would 'appear' that you can continue recording, it's of no value, because it will not play back, when you execute the macro. The macro will stop at the point where it exits to the second copy). Be sure that your shell command includes a switch to start the auto-start macro, such as: QA -m8 If you saved the macro in a different macro file, then also include the switch to load that file, such as: QA -OTHERMAC.ASC -M1 That brings us back to the ALT/F2 function. If you pressed it in the second copy of Q&A then, of course, it presented you with a list of macros, since you were not recording at the time. I hope this clears up any confusion about the ALT/F2 behavior. Another ecord in this database (XRef #33) has some related information that might be of interest. I hope this information is helpful. Good luck!"," "," "," "," "," "," "," "," "," " "date; dates; pop-up; pop-up list; picklist; range; date range; back; XLU; XUS; US; XUSR, user; select; userselect; xuserselect; xuserselectr; dynamic; changing; change; relative; 1450"," ","How do I....? When I enter a certain date field, I would like it to pop-up a picklist of dates, ranging from today back about 8-10 days. I could then select the date and it would enter it into the field. How can I do this? I have tried every method I can think of (XLU, XUS, etc), and I can't figure out a way. If the dates were fixed, I could make it work easy. But I need the dates to always be relative to 'today'. Ideas?"," ",1450, ,"May 23, 1996","***** WARNING! DISSERTATION FOLLOWS ***** (but true) This one cost me a couple of hours sleep and after resting, and having taken the 'long road home', I FINALLY came up with the formula. Since I had to struggle through this one, I'm afraid you'll have to, also. Actually, I want to take you through the different approaches I used, because something here might be helpful for other applications and/or to other Q&A'ers. I must warn you, you're in for a 'long ride' in this message. STRIKE 1 ~~~~~~~~ Originally, try as I might, I was not able able to produce a programming statement that would simply (in and of itself) provide the most recent days that would change dynamically. I did find that the userselect function would accept a 'function' in the argument -- but I could only manage one. I could for example use: #260 = @US(@date-8) but this would provide a pick list of one (the oldest) date only; not much help. If I tried to add another parameter, e.g.: #260 = @US(@date-8,@date-7) Q&A would return a syntax error and not accept the programming. Nevertheless, I felt that the answer was here in the '@date' calculations. I'll come back to this later. BALL I ~~~~~~ Personally - and being quite truthful - I don't see that a pick list of the most recent days necessarily THE best solution -- because of the keystrokes involved in making a selection. (I find it easy 'nuff to just type something like: 5 25). Here's an alternative I think is worth considering. You could simply provide a message that tells the user to enter a date equal to or later than the 'oldest' date allowed. Your programming (which could be either in the programming or navigation spec) would be something like: <#260:@MSG('Please enter a date that is on or after ' + @str(@mt(@date-8))+'-'+@str(@dom(@date-8))+'-'+@str(@rt(@yr(@date-8),2))) This is a simple programming statement that will change dynamically, and alert the user as to the acceptable range of dates. You could, of course, add (on-field-exit) programming to the field that would verify that an acceptable date has been entered and, if not, return the user to the field with an appropriate help screen. FIRST BASE ~~~~~~~~~~ Now, HAVING SAID ALL THAT, let me tell you that I wasn't going to give up on giving you a solution that would accomplish what you want. So - out of DESPARATION - I came up with this convoluted method. It does provide a way that you CAN provide a dynamic pick list of the last 8 (or 'whatever') days. It will take about 5 to 10 minutes and works flawlessly. (BUT, don't rush to do this yet; there's better news ahead). First, create a database (which I'll call PAST8) with only two (SPEEDY) fields: ID: DATE: Both fields should be T(ext) (especially the date field, otherwise - if you make it a D(ate) format - your picklist will appear in yyyy/mm/dd format). HOWEVER (stay with me on this) FIRST make the Date field a D(ate) format in order to access the date 'style' screen. Whatever style you pick is how your date will appear in the database and, therefore, in the pick list. I would suggest style 2 - which is dd/mmm/yyyy (19 May 1996). That way you can type one or two numbers for the correct entry. Having chosen the date style, CHANGE the field format back to T(ext). (When you actually make your 'pick,' the date style will change to the style in your 'ENTRY' database). Now, add the following programming to the PAST8 database: ID: #10 #20: If #10 = '1' then #20 = @date; if #10 = '2' then #20 = @date-1; if #10 = '3' then #20 = @date-2; if #10 = '4' then #20 = @date-3; if #10 = '5' then #20 = @date-4; if #10 = '6' then #20 = @date-5; if #10 = '7' then #20 = @date-6; if #10 = '8' then #20 = @date-7; if #10 = '9' then #20 = @date-8; Then, add nine records numbered 1 through 9, respectively. (Be sure that, on the first record, you set your programming (Shift/F8) for automatic calculation). Now, program your 'ENTRY' database with something like: DATE: <#260: if #260 = '' then {if @xlu('PAST8',1,'id','date')<>@date then @macro('UPdate'); #260=@XUSR('PAST8','date','date','','')}; cnext FINALLY (yes, there is an end to this), create a macro that will update the PAST8 database. (The macro will only be executed the FIRST time, each day, the ENTRY database is accessed). Your macro (WHICH WOULD HAVE TO BE MODIFIED to fit your particular procedures) might look something like: * 'update'ympast8yna-a This was based on the premise that the date was the first field to be completed when in 'add' mode; therefore the ENTRY form was not saved. If you wanted to save the entry form, you would first copy (F11) a unique record identifier so you could then paste (F12) the record identifier to your retrieve spec to return to the original record. Once a day, the macro will simply exit to the PAST8 database and run a mass update using automatic calculation. I promise you that this is one of those cases, where my response is far more complicated than the actual 'deed.' If you really want a 'dynamic' pick list of the past 8 dates, and an approach that might be helpful in other situations, this will work for you. Is is NOT the best solution but one that I felt was worth pointing out. THIRD BASE ~~~~~~~~~~ The @date formula kept 'hounding' me. So I went to my 'USER' database, where I had come up with about 2 dozen variations for the USER family programming, and WALLA, therein lied the answer. The trick is to include the delimiters (commas) as part of the formula. Here is the correct syntax for a programming statement that will, in and of itself, change dynamically. <#530: if #530 = '' then #530 = @USERSELECT (@str(@date-8)+','+@str(@date-7)+','+@str(@date-6)+','+@str(@date-5)+','+@str(@date-4)+','+@str(@date-3)+','+@str(@date-2)+','+@str(@date-1)+','+@str(@date)) This list, however, will appear in yyyy/mm/dd format which is not very convenient for making a 'pick.' HOME RUN ~~~~~~~~ I would suggest you put in a little extra effort into the programming - for the list to appear with the day of month, first. <#530: IF #530 = '' THEN USERSELECT (@str(@dom(@date-8))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-8))+',' + @str(@dom(@date-7))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-7))+',' + @str(@dom(@date-6))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-6))+',' + @str(@dom(@date-5))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-5))+',' + @str(@dom(@date-4))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-4))+',' + @str(@dom(@date-3))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-3))+',' + @str(@dom(@date-2))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-2))+',' + @str(@dom(@date-1))+' '+@str(@lt(@mt$(@date-8),3))+' '+@str(@yr(@date-1))+',' + @str(@dom(@date))+' '+@str(@lt(@mt$(@date),3))+' '+@str(@yr(@date)),#530) Hopefully, you'll agree that I saved the best for last. Good luck!"," "," "," "," "," "," "," "," "," " "Macro; include; update; update macro; qamacro.asc; new macro; send; send macro; new; copy; 1455"," ","I have created a macro but need to know how to get it into someone else's computer. The problem is that I am 300 miles away and do not have pcAnywhere. If I send a new QAMACRO.ASC file it will write over the existing macros."," ",1455, ,"Jun 21, 1996","I would suggest that you save the macros in a document named anything OTHER THAN Q&AMACRO.ASC, e.g. INSERT.MAC. If the other party is on CompuServe, you can e-mail it; otherwise just mail it. When it gets to the other end, the steps to incorporate it are fairly simple. I would suggest the following: From the main menu, just select (W)rite, (G)et (path to) QAMACRO.ASC. If you are asked for the 'type of document,' it is Standard ASCII. Go to the end of the document (Ctrl/End)and press enter. Type an asterisk and press enter. Press Shift/F8, (D)ocument, (I)nsert and select the INSERT.MAC document. Save the QAMACRO.ASC file as Standard ASCII (Control/F8). Lastly, you must 'install the new QAMACRO.ASC file for Q&A to start using the new one. Either press Shift/F2 to get the QAMACRO.ASC file (or simply exit and restart Q&A) ... and from that point on the new macros you provided will be functional."," "," "," "," "," "," "," "," "," " "picture; pictures; display; show; automatic; on entry; 1446"," ","I am trying to format the first field of a simple database in Q&A 5.0 for Dos. Here's my prob...after creation I pressed F10, got to the Format spec., tried to enter 'I' for Imange Information Type but the prog says it 'ain't kosher'. I can enter a 'B' for Bitmap but cannot access that field after formating..i.e. in the 'Add' mode. What am i doing wrong? What i'd like is for a pcx or bmp pop up when the dbase is opened..(I want a map to pop on the screen automatically (stored after init. creation in add mode)...you see, this is a golf info multi-database program. 18 single page databases are created for each indiv. user(s), one for each hole on a golf course...i.e. Hole1.dtf thru Hole18.dtf. The first field in each database (Hole #) I'd like to be an overhead view (BMP or PCX) of each indiv hole on the golf course. When the player picks let's say, HOLE 1 as a Menu choice, he is afforded the BMP or PCX overview immediately upon opening the database, is this possible? I thought it was simple but ran into the formatting 'I' refusal problem, can you help?"," ",1446, ,"May 7, 1996","With the '@macro' feature in Q&A (combined with the many other powerful programming options) there is very little that you cannot do. Certainly, you can accomplish what you want; I'll walk you through the steps. While you may have already learned some of this on your own, I'd like to point it out for the benefit of others. First, when you select (F)ile, (D)esign file, (C)ustomize a file (filename), (F)ormat values, you'll be presented with a legend of all the acceptable format codes. (B)itmap is the proper choice for a picture field. Once you select this format, you'll find that the field is identified as *PICTURE* and is treated similar to a 'read only' field which you may be more accustomed to. I find it helpful to think of it as a 'bin' where a 'code' identifying the picture is stored. For this reason, I usually make it a one-character 'hidden' field (< >) somewhere on the last page of the form. (By making the text and background color the same, no-one need ever see the field or the value it contains). Next, create each of your 18 records and add the appropriate picture to each one ... as you create them. (You must be in add mode to be able to add a picture). Press Alt/F11 for a list of your picture fields and choose the one you want to place your picture in. You will be presented with a file selection box ... from which to choose the picture you want to insert. Q&A will tell you when the picture is converted. After adding your 18 records with their respective pictures, record a macro (Shift/F2, (D)efine Macro - press enter to skip the macro identifier) that will simply press Shift/F11, type the name of the field containing the picture and press enter. (The picture should appear) Press enter again, to return to your database and save your macro with any name (e.g. 'See Map'). The recorded macro will look something like: * 'SEEMAP'PICTUREFIELD The last piece is to simply program the first field of your database to run the macro as you enter the form: <#10:IF @UPDATE THEN @MACRO('SEE MAP') That's it ... and it's even easier then it sounds. I hope this information is helpful. Good luck and 'happy golfing.'"," "," ","You'll find a lot of helpful information related to pictures, starting on page 3-10 of the 'Getting Started' manual."," "," "," "," "," "," " "limitation; limitations; text; text field; text fields; expand; expanded field; expanded fields; field; fields; line; lines; number of lines; screen; view; see; f6; f6 window; window; more; add; add lines; more lines; 1460"," ","I'm wondering if there is anything that overcomes the limitations of text fields in the database. In 4.0 you can only have a text field as large as the F6 window. People advised me that I could build a macro to hot key into the word processor, but I'm still looking for an easier way to have a 40-50 line text field. Any thoughts?"," ",1460, ,"Jun 22, 1996","I'm really not sure what you mean when you say 'you can only have a text field as large as the F6 window,' nor how or why you would need a 40-50 line text field. (If I knew, perhaps I could have suggested some alternative). In any event, I'll try to give you as much info as I can think of. First of all when you expand (F6) any field whether it is one character wide or a screen-full, you will only see 8 lines of text at one time. You can, of course, scroll down line by line (either using navigation keystrokes OR the mouse), or window by window. Since each field can contain 32k of text, your field can contain hundreds and hundreds of lines - but, again, you will only see 8 lines at a time. Another option, would be to create a field that is the size of one entire screen. In that case, you will be able to see 21 lines at a time. (You could, of course, expand the field to see the additional lines but, once again, within the limit of 8 at a time). You could create two full-size fields back-to-back so that you could see 21 lines on one screen followed by another 21 lines on the next. Unless you don't have room in your database to devote a full page to a field, then I don't see that creating a macro to access a write document will be of any particular help in this specific instance. The reason I say this, is that you can only see 20 lines at a time in a word processing document. If you only need to VIEW the information (i.e. not make changes while looking at all 40 or 50 lines), then the best suggestion I could make would be to create a macro to print (F6/F2) your expanded field with 'Page Preview.' Then, if you have REALLY GOOD EYESIGHT , you could see 66 lines of text all at one time. Even if you have to zoom in, to make the text larger, you could still see 33 lines at a time. Now, if this is a 'MUST HAVE' and (1) you are using Q&A DOS 5.0 and (2) you are using Windows95 and (3) you have MicroSoft Word for Windows, you could create a macro that would take you to a MicroSoft WORD document. By first changing your Windows Display settings (Control Panel, Display, Settings, Desktop area = more pixels, Custom Font Size = 75%), you could see (albeit, small text) 42 lines all on one screen (sorry, but Q&A Windows would only show you 36 or 37 lines). Be 'warned' that, even with my glasses, I have to increase the font size to read it - and (YUP!) that reduces the number of lines I can see at one time."," "," "," "," "," "," "," "," "," " "update; install; installation; change; changeover; change over; upgrade; 5; 5.0; QADOS50; directory; subdirectory; qalabel; label; labels; mail labels; mailing labels; mail; mailing; qalabel.ovl; overlay; ovl; macro; macros; QAMACRO.ASC; QA.CFG; config; CFG; synopsis; summary; 1443"," ","I've just ordered QA5 DOS ... will it install over QA4 all right? Will I have any problems with Win95 using QA5? Any insight as to what to expect would be appreciated. Thanks.","5",1443, ,"Apr 26, 1996","First, let me congratulate you on your decision to upgrade to version 5.0. You are in for some wonderful surprises and incredible flexibility. Regaring Windows 95, the vast majority of users have not reported any problems. I, personally, have had NONE and, furthermore, find that Q&A DOS 5.0 performs in a far superior manner to all my other 'alleged' Windows 95 programs. Q&A should not be used with a hard drive volume over 2 Gig in size. Generally, the Win 95 shortcut default settings will work fine, to allow you to launch Q&A 5.0 from within Windows 95. Initially, I was trying to be 'good' and follow the recommendations of others to install 5.0 in a separate directory. I have found, however, that that can be more of a pain then it needs to and can cause a lot of confusion. I have since decided to install 5.0 OVER existing versions (most of my clients use subdirectories of QA (rather than QA4 which the manual recommended). If you search this database for a keyword of 'install' and a record category of '5,' you will find additional records dealing with this topic, generally, with one subject per record. For your convenience, this record includes a 'composite' of extracts from the others. 'WHICHEVER way you go there are several things you should be aware of. Should you choose to use the SAME directory, Q&A will FIRST rename 3 - 4.0 'program' files - so that they are NOT copied over by the corresponding 5.0 'program' files. The 3 files are QAMACRO.ASC (to QAMACRO.OLD), QALABEL.OVL (to QALABEL.OLD) and QAPRINT.CFG (to QAPRINT.OLD). Also, sample files (which you may have personally updated in version 4.0) will be deleted and replaced by new sample files. If you place Q&A in a SEPARATE directory then there are some files you will probably want to copy over - such as the (1) QA.CFG file (which contains alternate menu items and other global option settings you may have changed), (2) QAPERS.DCT (which contains any special words you may have added to your personal dictionary, (3) the QAMACRO.ASC file, and/or any other macro files you may have created (that contain macros and custom menus you may have created) and possibly (4) the QALABEL.OVL file (that contains label definitions, including any special ones you may have established). In general, however, whichever way 5.0 is installed, I don't envision any catastrophic problems. ' ***** 'QAMACRO.ASC VS QAMACRO.OLD For the first time, ever, Q&A now creates a QAMACRO.ASC file when the program is installed. At present it only contains two macros: (1) CTRLU which produces a 'section' symbol. This is nothing more than the ASCII character produced by pressing Alt/F10/21. It's so simple to create - should you ever need it - I simply wouldn't worry about it. (2) The second macro, CTRLA calls the F11 key which is the copy key. Once again, it's virtually useless since it is so easy to create on your own. The only value it might have is for the 'syntax' should you want to make macros out of other function keys. In that event, here it is: *'F11' Simple, isn't it. If you placed 5.0 in the SAME directory as 4.0, and you DON'T want these two new macros, then simply copy QAMACRO.OLD to QAMACRO.ASC and you're in business. If you want to keep these two macros then just open the QAMACRO.ASC file, go to the very end, enter an asterisk in the left margin and move to the next line. Then insert (F8/D/I) the QAMACRO.OLD file into this file. (If you have an existing macro that is named either ctrla or ctrlu then either yours - or the one provided by Q&A - will have to be renamed). Press Ctrl/F8 to save the file as ASCII text and you're in business. (Be sure to 'get' the macro file if you want to use it right away). If you placed 5.0 in a DIFFERENT directory as 4.0, the process is pretty much the same. The only difference is where I refer to QAMACRO.OLD, you'll be accessing QAMACRO.ASC in the 4.0 directory and copying it to (or inserting it in) the QAMACRO.ASC in the 5.0 directory.' ***** 'QALABEL.OVL VS QALABEL.OLD Determining what to do with the label files is not a simple matter of 'one way being better than another' since it may depend on a variety of circumstances. First, there are definitely some differences between the two files that you should be aware of. There DEFINITELY are labels that are defined in 5.0 that were NOT defined in the original release of version 4.0. Moreover, using the QAUPDATE file will have had NO EFFECT on the QALABEL.OVL file. There was, however, a later QALABEL.OVL file which was revised 9/20/93. This was not made available (as far as I know, on CompuServe, at least) UNTIL 9/8/94, so you may or may not have this file. If you do, then as far as I can tell, there ARE NO NEW LABEL DEFINITIONS in 5.0 ... as compared to this release. So, it is very likely that if your version of 4.0 starts off with the labels in the 4,000 series, there will not be any newer label. If, however, you never upgraded your QALABEL.OVL file then you will most likely not have the following labels which ARE in version 5.0: Pin fed Sheet: Avery 4030 Pin fed: Avery 4160, 4166, 4167 and 4168 HP II/III/4: Avery 5371, 5383/3883, 5384, 5355, 5386, 5389, L7160, L7161, L7162, L7163, L7164, L7165, L7166, L7167, L7168, L7562, L7563, L7565, L7650, L7651, L7654, L7663, L7664, L7840, L7841 The 5000 series of labels are listed differently; however, I don't know whether the actual DEFINITIONS of the labels have changed or just their NAMES and/or DESCRIPTIONS were changed, for example: The Avery 5095 was listed in 4.0 as: Avery 5095 2 1/3' x 3 3/8' HP and is listed in 5.0 as: Avery 5095 HP Avery 5095 HP II/III/4 The Avery 5160 was listed in 4.0 as: Avery 5160 1' x 2 5/8' HP Avery 5160 1' x 2 5/8' HP II and is listed in 5.0 as: Avery 5160 HP Avery 5160 HP II/III/4 A similar pattern emerges for the remainder of the Avery labels. I could not find any apparent change in (the remaining) pin fed labels. There are 'informational' files in 5.0 that are not in 4.0. They are: General Label Instructions, Generic Pin Fed Instructions, and Avery L Series Label Info. Remember that all of these comparisons are based on the original release of 4.0 (without having a QALABEL.OVL update) versus Q&A DOS 5.01. Perhaps, more important than any of this is the fact that any 'custom' labels you have defined WILL have been recorded in your 4.0 QALABEL.OVL file and WILL NOT be available in the 5.0 QALABEL.OVL file. Unfortunately, there is NO WAY (to my personal knowledge, as well as according to Symantec representatives), that you can 'transfer' individual label specifications from the old file to the new. If you DO want to retain your 4.0 label file, all you have to do is COPY QALABEL.OLD to QALABEL.OVL (to overwrite the label file in your 5.0 subdirectory). UNLESS, you have created many, many personal labels, or you are absolutely certain that you have been using the 09/29/93 update (and perhaps even then) my recommendation is that you use the NEW 5.0 QALABEL.OVL file. I further suggest, that as time permits (and assuming you no longer plan to use 4.0), you go through the QALABEL.OLD file and REMOVE any labels that you know are in 5.0. Then, for any custom labels you created, you can make note of the specifications and recreate them in 5.0. I plan to go one step further. I like the fact that the label dimensions were listed in 4.0 label descriptions. As practical, I plan to copy these dimensions over to the 5.0 file. For those of you who have Windows, you might find it helpful to use the copy/paste features, and especially useful to run the two versions (4.0 and 5.0) side by side while you recreate the custom labels. For some (especially those who never designed custom labels), a decision to use the new label file will be easy. For others (especially those have designed 'dozens' of custom labels, the decision might take a little more thought. What I do hope, is that the information I have provided here, will make you a little more comfortable in reaching that decision.' ***** 'If you encounter a problem installing Q&A 5.0, you will most likely encounter another problem if you try to start the installation program over again. I don't know if this holds true in every case, but I can tell you it happened to two of my clients within a week. In one case, someone tried installing 5.0 on a network while Q&A was in use and was presented with a 'share violation.' Then, when they went to start the installation over, they got a message saying there was an 'error in copying the QA1.EXE file.' As it turns out, the installation program had created a QA1.EXE file on the hard drive and then made it 'read only.' Even though the QA1.EXE file was not properly installed, it could no longer be overwritten. (I know that once you install a network pack, the QA1.EXE file is always made read only). The fact that you were able to start Q&A, but it came up as version 4.0, tells me that you installed it over your existing program. Had you installed it to a new subdirectory, you would not have been able to start it at all. The solution (in either case) is simple. Just go to a DOS prompt and type Attrib -R QA1.EXE When you're starting to use Q&A 5.0, be sure that you have EMS allocated and SHARE installed. The sharing mode of your database MUST be set to allow (even on a stand-alone pc) in order for most of the new features to work. Good luck and enjoy."," "," "," "," "," "," "," "," "," " "ID; caller ID; macro; macros; phone; phone number; phone numbers; search; searches; retrieve; retrieval; retrieve spec; retrieve specs; two fields; search two fields; find; 1445"," ","I have caller ID so when someone calls, their # lights up on my phone ID unit. Being the nosy person I am, I want to know who calling or called when I was out. So I set up a database macro that goes directly to the field of home phone. I put the # in & it tells me who it belongs to. However, sometimes they might call from their work # and it requires me to go to the work phone field if I do not find a match in home phone field. What I want is the ability to have it check home phone & then work phone without me changing fields by hand. This is what my database looks like: HOME PHONE WORK PHONE FIRST NAME LAST NAME ADDRESS CITY"," ",1445, ,"May 4, 1996","It seems to me that you have several viable options; I'll point out 2 that I think are worth considering. (1) One way to do this would be along the same lines of what you are doing now - using your macro. First, set up a retrieve spec so that you won't have to keep changing your search option screen. Select F-File, S-Search (File Name), the Retrieve Spec may be left blank or you can enter a 'dummy' number in your Home and Work phone fields. Either way, press Control/F7 to get your 'options' screen and change meet to read 'ANY' (Tab then Right Arrow will do it). Now, press F-9 to save the option and return to the Retrieve Spec. Now press Shift F8 and give the spec a name, e.g. CALLER ID. Modify your macro so that it first gets your saved retrieve spec (Alt/F8, Caller ID, Enter) and then moves to your home phone field. The primary drawback with this approach is that you will have to enter your phone number in BOTH the home and work phone fields. You can do it at once, but you will be typing it twice. In version 5, you can better utilize your macro while you have it pause for you to enter the phone number once. Then, when the macro continues, have it copy (F11) and paste (F12) the number into the next field. (2) Another option would be to modify your data base by adding a key-word field as the first field (or anywhere, for that matter) on your form. Leaving even just one space is sufficient. I frequently do this and call it 'FIND' or 'SEARCH' when I want several options for finding records. (Actually, this is the technique I use for the first field of this database). Program your data base so that as you enter a work phone number, it adds the home phone a semi-colon and the work phone to your 'Find' field. (Also, if it's the first field, program it to 'skip' this field, if you're adding or using a form). Mass Update all current records so that the find field is completed. Adjust your macro so that the cursor stops in the (Find) key-word field. Now all you have to do is enter the phone number once and you will find your record whether the calling number is from home or work. My personal preference is the second choice; however, since we all have our own style of programming, choose whichever works best for you."," "," "," "," "," "," "," "," "," " "@number; Number; numbering; sequential number; sequential numbering; new number; start new number; number-number; number/number; number + number; number & number; ####-####; ####-##; numb-numb; numb/numb; numb + numb; numb & numb; supplement; suffix; number-letter; letter; number/letter; number + letter; number & letter; 1457"," ","A Q&A database has two 'file number' type fields; the first (#10) is FILE NUMBER, the second (#20) is SUFFIX. A number goes in the first field, an alphabetic character in the second. The same FILE NUMBER CAN be used for more than one record, but we need to enter each subsequent record (after the first) with a previously unused alphabetic character in the SUFFIX field. When someone is adding a new record, we need a statement that will check to make sure that: The combination of FILE NUMBER and SUFFIX is not common to any other record in the database, even if the SUFFIX is blank. I've tried 'If-And-Then' with little success. It seems to be treating the 'And' as if it were an 'Or'. Thanks for any advice you can offer!"," ",1457, ,"Jun 16, 1996","I recommend the following programming which includes two 'special use' fields (which can be 'hidden' - preferably on your last screen - shown below as RETURN and COMBINED ). Your form would include: FILE NUMBER: (#10 = N - S) SUFFIX: (#20 = T) OTHER FIELDS: #30 RETURN: (#110 = T) COMBINED: (#120 = T - S) Each field (including the Proposal Number) is formatted as T(ext), except for field #10 which should be formatted as N(umber). Both the FILE NUMBER field and COMBINED field should be indexed as a S(peedy) field. FILE NUMBER:>#10: IF @ADD AND #10 = '' THEN { #10 = @xlr(@fn,9999,'FILE number','FILE number')+1; #120 = @STR(#10)+'@'; #110 = 'X'; GOTO #30}; IF @ADD AND #10 > '' AND #110 = '' THEN { #10 = @XLU(@FN,#10,'X#10','X#10'); IF @ERROR THEN {@MSG('YOU ENTERED A NUMBER THAT DOESN'T EXIT. PLEASE FIX IT OR LEAVE IT BLANK');GOTO #10}; #120 = @STR(#10) + 'Z'; #20 = @CHR(@ASC(@RT(@XLR(@FN,#120,'X#120','X#120'),1))+1); #120 = @STR(#10)+@STR(#20); #110 = 'X'}; IF #20 = '[' THEN {@MSG('YOU HAVE EXCEEDED THE AVAILABLE NUMBER OF SUFFIXES. PLEASE FIX THE PROGRAM');GOTO #10} OTHER FIELD: #30 RETURN: <#110:GOTO#30 COMBINED: #120 (The primary purpose of field #110 is to record that the programming in field #10 has been executed -- so that it won't 'repeat' should you go back through the field. It will also return you to the first page - should someone press page down or tab or enter to the field - without getting the message that 'the programming placed you here.') Whenever you enter a number that's already been used, Q&A will assign the next available suffix (A through Z)."," "," "," "," "," "," "," "," "," " "pick; pick list; picklist; list; pop; pop up; pop-up; pop up window; pop-up window; wide; wide pick list; wide picklist; wide pop; wide pop up; wide pop-up; wide pop up window; wide pop-up window; wide window; window; expand;; 1428"," ","Is there a way to expand the size of the window for a pickist? Present window holds 20 CHR, I need a full screen window to display about 50 CHR. Can it be expanded to show entire contents of fields in the list?"," ",1428, ,"Apr 15, 1996","SIMULATING A W--I--D--E PICK LIST First, I create an 'import' document containing the 'pick' items, I want available and save it as 'INSERT.PGM' (Call it whatever you want, but be consistent when you write the macro). EXAMPLE OF INSERT.PGM DOCUMENT: Anesthesiology Service, Ext. 3608, Room 2040E Nursing Education, Ext, 3826, Room 3643E Nursing Service, Ext. 3826, Room 3602W Personnel Service, Ext. 7623, Annex Building, 1st Floor etc., etc. (up to 32K). (Each Service is typed on a separate line. Then I create a document called 'Insert1.pgm' and save it with any garbage I want - just so the document is there. EXAMPLE OF INSERT1,PGM DOCUMENT: vENT ANgREE!#@-This is garbage, isn't it? Tee Hee, Blah Blah Then I create my macro: * 'alta'diinsert.pgminsert1.pgmydiinsert1.pgm * The f7 (search) is optional; however, I prefer it. Next I program the field so that the person entering data gets a message e.g. <#10:@msg ('HOLD THE ALT KEY AND PRESS THE LETTER A FOR A LIST') When the 'pick list' document is on the screen, you simply go to the line you want inserted in the field and press enter. WALLA, screen closes up, field is completed, cursor goes to next field. If you want to see exactly how it works (explanation would be too lengthy) print it out and enter the keystrokes manually. Hope this gives you something 'fun' to play with. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ NOTE: I created this approach in response to the question submitted on Prodigy by another Q&A user. He was quite expert in Q&A (at that time) and was able to come up with numerous modifications of the concept - to satisfy his personal preferences. I am happy to share this additional information with you, courtesy of Douglas Barrow. I have not tested any of this -- and some of it may be repetitious since there had been numerous requests for more information on this application. Nevertheless, I left it all in in case you like his 'style' better than mine. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Spencer: re: WIDE PICKLIST macro. I ran into a problem that you may or may not encounter so I thought I'd let you know in case you do hit it. ONLY on the networked system I use at work (my machine won't do it), the cursor sometimes parks itself on the SECOND line of the F6 window after the insert, choose, copy, delete portion of the macro (insert1.pgm). This results in the next F8 insert (insert1.doc), the one line choice, ending up on the second line of the window with a blank line and a @CR ahead of it. The XLOOKUP still uses the correct value but won't work because of the blank line and @CR ahead of it. This is a sporadic problem, comes and goes! After going nuts for a few days, I found an answer. Place in front of the that brings up the second insert portion, before it brings back Insert1.doc and closes the F6 window. This keeps it from dragging the blank line along with it. works also. I also added an extra after the that chooses the line. This highlights the choice and pauses so you can be sure you had it on the right one before proceeding (= to your ). You may never encounter this glitch and it may be unique to my machine. This does cure it if you do. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBJECT: Q&A WIDE PICKLIST THE 'SPENCER WULWICK WIDE PICK LIST MACRO' with slight modifications. For anyone who missed this on the last go around: This macro yields a full 80 CHR wide pick list screen and works 1000 X better than Picklist. The 'List' is composed of a DOC file. That file can be in any order you wish. Each entry should occupy one line. The macro can return a full 80 CHR line to the field,or more. A .. pick word' can occupy the beginning of the line,followed by a description which can be stripped off with a program statement @LEFT( ). This can be used to XLOOKUP another dtf for return of more information. THIS IS THE F7 SEARCH MACRO 'SEARCH'dinsert1.pgm insert1.docydinsert1.doc This macro is driven off a custom menu that calls 'SEARCH' function.To change to a 'key' macro, change to (A=any letter/number). Several different lists can run off the custom menu,each with a separate macro.If the 'list' is not in the C:\QA\DOC dir.,include path statement Insert1.pgm is the 'list', it can be named anything you want. Insert1.DOC is the file the single 'pick' line is copied to and re-inserted back into the field. CREATE a blank INSERT1.DOC prior to running macro as it must overwrite the file to work. The 'list' can be pages long and can have blank lines so that pq dwn fills the window with a new list or group. I use <@HELP(#3) to display a help menu that says PRESS +Z for SEARCH MENU. displays the menu which lists 6 different lists to choose from. With custom menus,the number of different 'picklists' is endless,all in the same field! I number the 'lists' INSERTI.PGM,INSERT2.PGM, etc.. EACH will work in any field of any DTF ! When macro runs ... In the F7 SEARCH window, use any valid search string; ..word.. etc. and press F10, or the window and scroll up or down.Place cursor on the line you want,press to highlight,then to continue.Any other ,, will abort the macro. PERFORM THIS IN MANUAL MODE,key stroke by Keystroke,before running it to understand how it works and catch any differences in your settings or machine. 'Lists' can be created in WRITE by typing in or from a .DTF by print to disk ie: print to disk NAME:1 PHONE:2,etc. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SUBJECT: CREATING CUSTOM MENUS FOR USE WITH 'SPENCER WIDE PICKLIST' This function is to create the CUSTOM MENU you will use to drive the macros in the 'Spencer Wide Picklist' function At the Q&A MAIN MENU, to bring up the MACRO SCREEN M-CREATE MENU NEW MENU will take you to the CREATE MENU section MENU NAME: you can choose to activate this MENU either of two ways. #1: active macro key You will name the macro by a key ie: for menu which will allow you to kick the MENU on by pressing in that field.(I use a HELP screen that pops up on entry to the field that says PRESS +M for SEARCH MENU) Start by naming the CUSTOM MENU MENU NAME:SEARCH MENU. After you create it,you GET QAMACRO.ASC in WRITE and edit the macro for this menu by changing to ....'SEARCH MENU> to 'altm'... This is now a 'hot key' macro #2: Leave the name SEARCH MENU and use to bring up the macro choice menu,highlight SEARCH MENU and it will pop up the menu. This choice is safer if you don't want an active macro key on the board. The @HELP screen would say PRESS +f2 to display WINDOW, CHOOSE - SEARCH MENU and press As you move down the CREATE MENU window... Set Display to OVERLAY ,this shows the MENU over the form rather than having everything vanish which can really shake up a non-user! Set Status to Active or it won't work Set Menu returns to NO, you don't want it back Set On Escape Show Menu: leave blank,you don't want it going to another menu MENU TITLE: this is the name that will appear on the top of your menu box ie: CHOOSE USER NAMES In the menu items lines enter names for each function ie: USER BY NAME USER BY NUMBER SEARCH FOR USER the corresponding macro name: will be the name of the macro you created for that function ie: USER BY NAME macro name: USER NAME ( 'USERNAME' ... in the macro) USER BY NUMBER macro name: USER NUMBER ( 'USERNUM' ... in the macro) SEARCH FOR USER macro name: SEARCH ( 'SEARCH' ... in the macro) You now have a CUSTOM MENU to drive all the picklist functions. Your user will enter the field where the picklist is to be used and see a help screen (using method 1 or 2) that tells him/her to press (key combination) which then displays an overlay menu.The user then highlights which list to choose from,presses enter, and the macro runs, does the job, then on to the next window. Depending on the speed of the machine it can be very fast or on a network, very slow. and Since it can run very slow on a network, I strongly recommend editing the macros and experimenting with the use of and to control what screens appear and when.Not only does enhance the speed, since it takes time to refresh the screens, but it prevents the user from getting bored waiting for something to happen AT WHICH POINT THEY START PRESSING KEYS!!!!! Add a keystroke in the middle of a macro that is running and the results can range from very unpredictable to downright disastrous!!!!!!!!!!! After you create your CUSTOM MENU, run all the macros several times yourself and see if there is any point where it hangs long enough for the itch to do something overwhelms you. Then test the same items by having a non-user (like one of your kids,or a co-worker with the same mentality) try it. Edit your macros accordingly! Now for the @help screens -- 'SPENCER WIDE PICKLIST' Invented by SPENCER WULWICK (GRKF39A) This is an alternative method to display a half screen by 80 chr wide picklist that can strip out and copy to a field one full line (or more) of text from any item on the list. This picklist allows the use of the WRITE SEARCH text function to locate items in the list by .. .. search specs. APPLICATION USES: This picklist method allows the use of several different lists to be used from within the same field.It does not require a RESTRICT SPEC that will limit choice of selection. It allows large and multiple line import into a field. This is menu driven for ease of use. PROGRAM BASIS: The method is based on the f6 EXPAND FIELD function and a macro to import,delete,and copy the text. It will work with any lists of text from documents or contents of fields printed to file as a document. In combination with the @TEXT,@STR,@LEFT, and other text functions in Q&A, this method allows for a picklist that can do things that the picklist is not able to do, ie: search for a CLIENT ID# by name and return the number, Barrow,Douglas J. ID#:MHGD39A would allow CLIENT ID: field to scroll an alphabetical list by the name and after would return the full line to that field and then using @RIGHT(#1,7) would strip out the name and leave MHGD39A in the field on exit. As an example of how this works we will use a DTF for Q&A USER GROUP names and ID #s with 2 fields, USER NAME:#1 USER ID#:#2 Either by creating a list in WRITE or by printing an existing DTF to file we will create NAME.PGM The file extension does not matter as the document can be imported in a Q&A WRITE format or ASCII,works in both. All that is important is that each entry occupies one line in the document.(FOR MULTI-LINE IMPORTS SEE LATER NOTE) It can be double spaced if you wish. THIS PICKLIST DOES NOT SORT IN ALPHABETICAL ORDER unless your PRINT TO FILE using an AS sort so you can order items in the list in any manner you want. We use the ext of .PGM to identify the document as a PICKLIST PROGRAM DOCUMENT to avoid confusion with standard docs. The DEFINE PAGE SPEC for the document should be set to ASCII standards 0 margins, 240 wide,240 long. This provides for a very long picklist! MACRO CONSTRUCTION: NOTE #2 The basic macro is constructed as follows. Note that I have my GLOBAL SETTINGS with AUTOMATIC EXECUTION off. You may have to adjust accordingly if you use automatic execution. * 'USERNAME'dUSERNAM.PGMinsert1.docydinsert1.doc * The is a change made in WRITE to the macro to convert from a macro key to a CUSTOM MENU entry. I strongly recommend following my procedure to convert all of these to CUSTOM MENU entries to avoid having too many 'live' macro keys on the board or these macros can do really strange things! I will cover the CUSTOM MENU creations later. Following is the name of the .PGM document you will list as a CUSTOM MENU choice item ie: 'USERNAME' will appear on your MENU as USER NAME Vidoff and Vidon have been edited in with WRITE to keep the screens from flashing as Q&A will activate certain screens under certain functions as the macro runs even if the screen setting was set to off. In order to suppress the screen activations,you have to add at strategic places. NOTE #3 opens the EXPAND WINDOW function opens the WRITE FUNCTIONS window while in f6 mode d takes us to DOCUMENT takes us right to INSERT DOCUMENT USERNAM.PGM is the name of the document I am inserting inserts the document may or may not be necessary depending on your settings, you should end up with your document displayed in the f6 window with the cursor on the first line at which time pauses the macro for you to scroll up and down with the arrow keys restarts the macro again when you have placed the cursor on the line you want to select COPY TO FILE moves to the end of that line and highlights it copies that line to insert1.doc continue,do the copy y YES for OVERWRITE insert1.doc (which you will do several times and there must be an insert1.doc to copy to even if it is blank completes the copy moves cursor back to the beginning of the file delete highlights the delete to the end of the file deletes everything in the window clears any blank ASCII line feeds left (a peculiar problem where the cursor does not want to return to the top of the window which is the reason for several extra commands opens the OPTIONS window again d takes us back to INSERT DOCUMENT insert1.pgm is selected as the file to insert inserts insert1.doc which contains the line you chose and only that line closes the window NOTE #4 What you have done is selected one line from the document, copied that line to insert1.doc, erased everything in the window,inserted the one line you copied to insert1.doc,and then closed the window leaving the value of the line selected in that field. When the macro does it,it all happens in a flash! Do the macro key stroke by key stroke to make sure it works and to understand the process.Make any adjustments necessary for your system and write them down on a print out of the macro.You can edit the macro if necessary to make corrections. Now your remaining program statements can perform any @str or @left @right functions on the value to remove text you don't want. In this particular macro,I am selecting a USER by name and finishing with the ID number which is then used to XLU a file that contains the full text of that users information which is returned to another field. MULTI-LINE IMPORTS: The number of lines that are selected and copied to INSERT1.DOC are controlled by the after COPY, you can change this to to move the cursor 3 lines down before you to restart the macro and do the COPY TO FILE OR you can place a to pause while you scroll down with the arrow key to select several lines. The restarts the macro to perform the COPY TO FILE which then copies everything highlighted under SEARCH FUNCTION MACRO: I have a menu with six different lists to choose from.One list is a MASTER LIST containing the contents of the other five lists.In order to quickly find the entry I want,I use the f7 SEARCH function to take me there. * 'SEARCH'dUSERNAM.pgm insert1.docy d insert1.doc The change in the above macro adds to activate the f7 SEARCH screen to pause while you use it. NOTE #5 In use, your picklist will pop up with the f7 SEARCH screen at the top of your screen.In the SEARCH screen at SEARCH FOR: you enter whatever you are looking for in the list, ie: ..Barrow.. Enter nothing on the REPLACE WITH line and leave the setting on MANUAL. At this point press to do the search and it will find the USER NAME Barrow Now hit to resume the macro and it will do the COPY TO FILE,etc. This is a VERY rapid way to find what you want and you have the added ease of .. .. find anything search spec. You can even use just a portion of the name if you don't know the correct spelling or ..Doug.. if you don't know the last name MULTIPLE LISTS IN ONE FIELD To use several different PICKLISTS in the same field you will save each list to a .PGM file.In WRITE, GET QAMACRO.ASC and find your original PICKLIST macro by the name you gave it. Use the f8 OPTIONS window,BLOCK OPERATIONS,C-COPY, highlight and select the whole macro,then f10 copy to the bottom of the macro page. Go to the new copy of the macro.Just change the name of the list to get ie: 'USERNAM.PGM' to ... 'USER#.PGM' and change the name of the macro to 'USER#' You now have a second picklist macro to place on your menu.etc.etc.etc. MACROS and MENUs This is a very powerful macro. Any time you are using a macro that can import and/or write to anything... it is best activated ONLY at the proper place and time! I once had a similar macro get loose and go into DESIGN FILE,SECURE FILE and write its own password! We never got into that file again! I STRONGLY SUGGEST running this macro ONLY off menus! SEE TIP NOTE on CUSTOM MENUS This should format correctly when you save it out to ASCII again."," "," "," "," "," "," "," "," "," " "report; reports; sort; sorts; column; columns; column sort; column sorts; name; street; street name; street names; names; address; house number; number; street number; 1456"," ","Today, I received 57,606 names of voters from a political candidate. I was able to import all the information in to Q&A. Which was just great! I think I have figured out all the formulas needed in creating reports, except one item.....Sorting by the street name (not by street number). I am unable to figure out how to sort an address by street name. For example I have several addresses on - E. Main Street. An example of an imported address into the address column - 1820 E. Main Street. How do I sort so all the street names are together in my report? I'm using QA 4.0 DOS."," ",1456, ,"Jun 14, 1996","This may not be perfect, but should get you VERY close. Column/Sort Spec ~~~~~~~~~~~~~~~~ STREET ADDRESS: 10,I NAME: 50 (I'm including name as an example of an additional field; naturally, you could add other fields as necessary). DERIVED COLUMNS ~~~~~~~~~~~~~~~ Heading: STREET!NAME Formula No. 1 @MD(#10,@INSTR(#10,' ')+1,100) Column/Sort Spec: 20,AS,R Heading: HOUSE!NUMBER!SORT Formula No. 2 @RT('000000'+@LT(#10,@INSTR(#10,' ')-1),7) Column/Sort Spec: 30,AS,CS,I Heading: HOUSE!NUMBER Formula No. 3 @LT(#10,@INSTR(#10,' ')-1) Column/Sort Spec: 40"," ","Since most addresses start with a house number, followed by a space, column 20 will isolate the street name and sort it alphabetically. Column 30 will isolate the house number but pad it with leading zeros for the purpose of sorting it in numerical sequence. Column 40 will print the house number (properly sorted) without the leading zeros."," "," "," ","x"," ","x"," " "report; reports; reporting; max; maximum; max value; maximum value; related; related value; group value; group maximum; name; performance; best; highest; 1441"," ","I am generating a report to show employee performance and would like to pick out the maximum value for a certain column. No problem ... use max. Also, here's the question: is there any way to also retrieve the name of the person who achieved the maximum value? Name Performance ---- ----------- Alice 5 Bob 10 Ted 3 ===== =========== Max: Bob 10 Any help would be greatly appreciated."," ",1441, ,"May 2, 1996","If you don't mind compromising a 'wee' bit, you can certainly obtain a meaningful report that will identify both the employee achieving the highest rating along with his or her score. The only assumption I'm making is that the PERFORMANCE field is formatted as (N)umber. The first option I will present is easiest to design but will require an additional column in your report. (This is NOT the option I recommend, nevertheless, I've included it for your convenience). I would use the following report specs: Column/Sort Spec ~~~~~~~~~~~~~~~~ EMPLOYEE: 10,AS RATING: 20,MAX Derived Columns ~~~~~~~~~~~~~~~ Heading: Lead!Performer Formula No. 1 @txt(#20=@maximum(#20),#10) Column/Sort Spec: 30,MAX This will give you a report that looks like: Lead Name Performance Performer ----- ----------- --------- Alice 5 Bob 10 Bob Ted 3 ===== =========== ========= Maximum: 10 Bob NOW, the second option would require a check mark to the left of the name - in order to put the name in the same column - however, I think it adds a nice touch. This IS the method I recommend. Column/Sort Spec ~~~~~~~~~~~~~~~~ EMPLOYEE: 10,AS,I RATING: 20,MAX,I Derived Columns ~~~~~~~~~~~~~~~ Heading: Identify!Best!Employee Formula No. 1 @txt(#20=@maximum(#20),'û ' + #10) Column/Sort Spec: 30,I Heading: All!Other!Employees Formula No. 2 @txt(#20<>@maximum(#20),#10) Column/Sort Spec: 40,I Heading: Employee Formula No. 3 #30 + #40 Column/Sort Spec: 50,MAX,MAXL(Best) Heading: Rating Formula No. 4 #20 Column/Sort Spec: 60,MAX This will give you a report that looks like: Name Performance ----- ----------- Alice 5 û Bob 10 Ted 3 ===== =========== Best û Bob 10 The flexibility of Q&A never ceases to amaze me. This is yet just one more example. (By the way you achieve the û mark by holding the Alt key and simultaneously pressing the numbers 2 5 1 on the number pad to the right of the keyboard - NOT the numbers at the top of the keyboard. If you like, there are other ASCII characters you can select. Just be sure they have a higher number than the letter 'z' and that they are 'printing' characters so they will be included in the MAX function. Examples that will work are ò [Alt/242] and ÷ [Alt/247]. You'll find a complete listing of ASCII characters by searching this database with a keyword of ascii list). Finally, I can't help but mention that this will not take care of situations where the highest rating is 'tied.' You might, therefore, want to consider an alternative report. While it won't show the info on the bottom line, the highest scores will be at the beginning of your report. The report is very simple and will clearly reflect tie scores: Column/Sort Spec ~~~~~~~~~~~~~~~~ EMPLOYEE: 20,AS RATING: 10,DS Performance Name ----------- ----- 10 Bob 5 Alice 3 Ted"," "," "," "," ","X"," "," "," "," " "Memory; Size; Limit; Ems; 1444; ems; ram; minimum"," ","We are running Q&A 4.0 on Compaq Pentium machines with 8 MB of memory. We have Expanded memory available and when we type Control-F3 to see the system information screen, it appears that Q&A is only using about 128K of memory from an available 1 MB. Is there any way to force Q&A to use more or is it even necessary to do so? We are showing about 480K of low memory available."," ",1444, ,"May 1, 1996","I am far from an expert with regard to memory; however, I can tell you this. 1) Q&A (version 4) can only access 128K of EMS. It doesn't matter how much you have available, that's all the program is capable of using. 2) The minimum recommended amount of low memory you should have available is 484k (although I have seen other figures used from time to time). NEVERTHELESS, I would consider any recommended minimum to be just that: a minimum. I find that even with the recommended minimum there are times that Q&A cannot perform some functions, such as highly complex reports, etc. 3) To provide low memory you could use 'MEMMAKER' (a memory management program included in recent versions of DOS) .... or QEMM a memory management program sold by Quarterdeck Systems. 4) You might also be interested in knowing that Q&A DOS v5 not only can access EMS but up to 1 MB of extended memory. (This is definitely a 'plus' but would not resolve your 'low memory' problem). I hope this information is helpful and wish you good luck!"," "," "," "," "," "," "," "," "," "