Ben,
Thank you for your efforts here, I see what you are after, and agree it
is much cleaner coding. I will spend some time next week trying to redo the
aplication in this way.
As a side note, and just for grins (not that I agree that codelock
should need it) I added the set quotes = """", nothing is different.
Also, now that I have renamed the .app file from .eep to .app, trace
does go through to the next few applications, so this one is working.
(Thanks Javier for that tip)
All in all, though I am not fixed yet, I am haveing a great learning
experience, and see that others too have gained from this thread. Thanks to
all who participated. I will announce what I have found if and when I do
squash this bug.
Dan
At 08:48 AM 2/21/2003 -0800, you wrote:
>
>Dan,
>
>I was looking at your file and realized there was a lot of repetition.
>To make things easier to debug and maintain, you might try
>something like what follows. Since the only thing that changes are
>the variables that act as parameters you can reduce the
>opportunity for error. Speaking of errors, this is entirely untested
><g> and you could extend it's functionality a bit further. Variables I
>added are prefixed with "z"
>
>Ben Petersen
>
>
>SET V ijob# = ""
>SET V ijobid = 0
>SET V icust# = ""
>
>-- Choose elements
>SET V zChsText = ("company & f_name & l_name &
>badr & badrst")
>SET V zChsReturn = ("custNo")
>SET V zChsTable = ("arMain")
>SET V zWhere = ("company CONTAINS .icompany")
>SET V zTitle = ("Choose a Company")
>SET V zLines = ("10")
>SET v zFormatted = ("Formatted") -- otherwise =
>null
>
>-- If & Messages
>SET v zmsgFail = ("Sorry, That company name
>isn't found in the ARMain table.")
>
>SET v zCountTab = ("JobSite")
>SET V zCountCol = ("JobID")
>SET V zCountWhe = ("custno = .icust#")
>SET V zResultVar = ("TotalJobBids")
>SET V zmsgMult = +
>("Found based on Company Name,+
> but has multiple Jobsites please +
> press 'Other Jobsites' for list")
>
>SET V zmsgSucceed = ("Found based on Company
>Name.")
>
>-- Chs-Msg.cmd
>Set v zChs = +
>("CHOOSE icust# FROM #VALUES"&+
> "FOR ("+.zChsText+"),"&.zChsReturn&+
> "FROM"&.zChsTable&+
>"WHERE"&.zWhere&"TITLE"&.zTitle&"LINES"&.zLines&.
>zFORMATTED)
>
>&zChs
>
>IF verr <> 0 THEN
> SET V imessage = .zmsgFail
> RUN varclear IN inform2.apx
>ELSE
> Set v zSelCount = +
> ("SELECT COUNT ("+.zCountCol+") INTO"&+
> .zResultVar&+
> "FROM"&.zCountTab&+
> "WHERE"&.zCountWhe)
>
> &zSelCount
>
> IF .zResultVar > 1 THEN
> SET V ijobid = 0
> SET V imessage = .zmsgMult
> RUN setvar IN inform2.apx
> ELSE
> SET V ijobid = jobid FROM jobsite
> WHERE custno = .icust#
> SET V imessage = .zMsgSucceed
> RUN setvar IN inform2.apx
> ENDIF
>ENDIF
>
>----------------------------------------------------------------------------
>
>
>On 21 Feb 2003, at 10:05, Dan Champion wrote:
>
>>
>> Ok,
>> Here is the ASCII version of the code.Is there a maximum number of
>> variables that can be in use at any given time? By the time this form
>> is called (this is a variable form only,) There are probably nearly
>> 250 variables that are in use.
>>
>>
>> $COMMAND
>> inform2
>> SET ERROR MESSAGES OFF
>> CLEAR V i*
>> SET V imessage = +
>> "You may search based on any known information. Just click +
>> on the field you do have information about and fill it in. Then hit
>> enter. + You only need to fill in one field"
>> -- form variables
>> SET V vprint TEXT = ""
>> -- armain variables
>> SET V icompany TEXT
>> SET V inam1 TEXT
>> SET V inam2 TEXT
>> SET V iaddress1 TEXT
>> SET V iaddress2 TEXT
>> SET V icity TEXT
>> SET V izcode TEXT
>> SET V iphon1 TEXT
>> SET V iphon2 TEXT
>> SET V iphon3 TEXT
>> SET V iphon4 TEXT
>> SET V iphon5 TEXT
>> SET V icust# TEXT
>> SET V icurr_bal CURRENCY
>> SET V ibuilder TEXT
>> -- jobsite variables
>> SET V tjobid INTEGER = 0
>> SET V ijcompany TEXT
>> SET V ijnam1 TEXT
>> SET V ijnam2 TEXT
>>
>> SET V ijobadd1 TEXT
>> SET V ijobadd2 TEXT
>> SET V ijobadd3 TEXT
>> SET V iphon TEXT
>> SET V ijobid INTEGER = 0
>> SET V ijobnotes TEXT
>> SET V ijobmap TEXT
>> SET V totaljobids INTEGER = 0
>> -- joblist variables
>> SET V ijbnam1 TEXT
>> SET V ijbnam2 TEXT
>> SET V ijbladd1 TEXT
>> SET V ijbladd2 TEXT
>> SET V ijblphon TEXT
>> SET V ijbldr TEXT
>> SET V ijob# TEXT
>> SET V njob TEXT
>> SET V totaljobs INTEGER = 0
>> SET V imessage TEXT
>> SET ERROR V verr
>> ENTER USING informer2
>>
>> RETURN
>>
>> $COMMAND
>> company
>> SET V ijob# = ""
>> SET V ijobid = 0
>> SET V icust# = ""
>> CHOOSE icust# FROM #VALUES +
>> FOR (company & f_name & l_name & badr & badrst), custno FROM armain
>> + WHERE company CONTAINS .icompany TITLE "Choose a Company" LINES
>> 10 FORMATTED IF verr <> 0 THEN
>> SET V imessage = +
>> "Sorry, That company name isn't found in the ARMain table." RUN
>> varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Company Name, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Company Name." RUN setvar
>> IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> namer
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE icust# FROM #VALUES +
>> FOR (f_name & l_name & badr & badrst), custno FROM armain +
>> WHERE l_name CONTAINS .inam2 LINES 20
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That name doesn't ring a bell."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Customer Name, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Customer Name." RUN setvar
>> IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> customer
>> SET V ijobid = 0
>>
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE custno = .icust#
>> IF verr <> 0 THEN
>> SET V imessage = +
>> "Sorry, That Customer number isn't present in the ArMain
>> table." RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Customer Number, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Customer Number." RUN
>> setvar IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> addrb2
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE icust# FROM #VALUES +
>> FOR (company & f_name & l_name & badr & badrst), custno +
>> FROM armain WHERE badrst CONTAINS .iaddress2 TITLE +
>> "Pick a customer" LINES 10 FORMATTED
>> IF verr <> 0 THEN
>> SET V imessage = +
>> "Sorry, That address isn't present in the ArMain table."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Street Name, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Street Name." RUN setvar
>> IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> addrb1
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE icust# FROM #VALUES +
>> FOR (company & f_name & l_name & badr & badrst), custno +
>> FROM armain WHERE badr = .iaddress1 TITLE "Pick the Customer"
>> LINES 10 + FORMATTED IF verr <> 0 THEN
>> SET V imessage = +
>> "Sorry, That address isn't present in the ArMain table."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Street Address, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Street Address." RUN
>> setvar IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> addrj1
>> SET V ijobid = 0
>> SET V ijobid TEXT
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE ijobid FROM #VALUES +
>> FOR (jobname1 & jobname2 & jobcompany & jobadd2 & jobadd3), jobid +
>> FROM jobsite WHERE jobadd1 = .ijobadd1 TITLE "Pick a Streetname"
>> LINES 10 IF verr <> 0 THEN
>> SET V imessage = "Sorry, That address isn't in the joblist."
>> RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found based on Address"
>> SET V ijobid INTEGER
>> SET V icust# = custno IN jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> jobcomp
>> SET V ijobid TEXT = ""
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE ijobid FROM #VALUES +
>> FOR (jobcompany & jobname1 & jobname2 & jobadd1 & jobadd2
>> &jobadd3), jobid + FROM jobsite WHERE jobcompany CONTAINS
>> .ijcompany + TITLE "Pick the company" LINES 10 IF verr <> 0 THEN
>>
>> RUN varclear IN inform2.apx
>> SET V imessage = "Sorry, That company isn't in the jobsite
>> table."
>> ELSE
>> SET V imessage = "Found based on Company name"
>> SET V ijobid INTEGER
>> SET V icust# = custno IN jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> addrj2
>> SET V ijobid = ""
>> SET V ijobid TEXT
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE ijobid FROM #VALUES +
>> FOR (jobcompany & jobname1 & jobname2 & jobadd1 & jobadd2 &
>> jobadd3),+ jobid + FROM jobsite WHERE jobadd2 CONTAINS .ijobadd2
>> TITLE + "Pick Street Number" LINES 10 FORMATTED IF verr <> 0 THEN
>> SET V imessage = "Sorry, That street isn't in the jobsite
>> table" RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found based on Street Name"
>> SET V ijobid INTEGER
>> SET V icust# = custno IN jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> jobnub
>> SET V ijobids = 0
>> SET V icust# = ""
>> SET V ijobid = jobid IN joblist WHERE jobnum = .ijob#
>> IF ijobid = 0 THEN
>> SET V imessage = "Sorry, That jobnumber is not assigned to a
>> job yet" RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found info based on Jobnumber"
>> -- SET V ijobid = .ijobids
>> SET V icust# = custno IN jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V ijobid = jobid IN jobsite WHERE jobphone = .iphon
>> IF ijobid = 0 THEN
>> SET V imessage = +
>> "Sorry, That phone number isn't present in the Jobsite table."
>> RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found info based on jobsite phone number" SET
>> V icust# = custno IN jobsite WHERE jobid = .ijobid RUN setvar
>> IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner1
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE hphone = .iphon1
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That Home phone number isn't present."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Home Phone, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Home Phone Number." RUN
>> setvar IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner2
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE wphone = .iphon2
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That Work phone number isn't present."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Work Phone, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Work Phone Number." RUN
>> setvar IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner3
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE mphone = .iphon3
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That Mobile phone number isn't
>> present." RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Mobile Phone, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Mobile Phone Number." RUN
>> setvar IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner4
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE pager = .iphon4
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That pager number isn't present." RUN
>> varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Pager Number, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Pager Number." RUN setvar
>> IN inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> phoner5
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V icust# = custno IN armain WHERE fax = .iphon5
>> IF verr <> 0 THEN
>> SET V imessage = "Sorry, That fax number isn't present."
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on Fax Number, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on Fax Number." RUN setvar IN
>> inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> morjobs
>>
>>
>> SET V ijob# = ""
>> CHOOSE ijob# FROM #VALUES FOR (jobnum & jadr & jadrst), jobnum +
>> FROM joblist WHERE jobid = .ijobid + AND jobnum IS NOT NULL ORDER
>> BY jadrst + AT CENTER CENTER TITLE "All jobs for this jobsite"
>> LINES 20 IF verr = 0 THEN
>> SET V imessage = +
>> "Found other jobs based on customer and jobsite number."
>> -- SET V ijobid = jobid FROM joblist WHERE jobnum = .ijob# SET
>> V icust# = custno IN jobsite WHERE jobid = .ijobid RUN setvar
>> IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> morjobids
>> SET V ijob# = ""
>> SET V ijobid TEXT
>> CHOOSE ijobid FROM #VALUES FOR (jobname1 & jobname2 & jobcompany &
>> jobadd1 & +
>> jobadd2), jobid +
>> FROM jobsite WHERE custno = .icust# ORDER BY jobadd2 +
>> AT CENTER CENTER TITLE "All jobsites for this customer" LINES 20 IF
>> verr = 0 THEN
>> SET V imessage = "Found other jobs"
>> SET V ijobid INTEGER
>> -- SET V ijobid = .ijobids
>> -- SET V icust# = custno IN jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> service
>> OUTPUT SCREEN
>> PRINT history WHERE jadr = .ijobadd1 AND jadrst = .ijobadd2 +
>> ORDER BY sdate DESC
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT history WHERE jadr = .ijobadd1 AND jadrst = .ijobadd2 +
>> ORDER BY sdate DESC OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> jeditor
>> EDIT USING editjob WHERE jobnum = .ijob#
>> RETURN
>>
>>
>> $COMMAND
>> wrkordr1
>> -- SET VAR sstreet = (SGET(ijobadd2,4,1))
>> PRINT jirpt WHERE jobid = .ijobid
>> -- adr = .ijobadd1 AND adrst CONTAINS .sstreet
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT jirpt WHERE jobid = .ijobid
>> OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> womain
>> IF ijobid > 0 THEN
>> ENTER USING wrkmain
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> wrkordr2
>> -- SET VAR sstreet = (SGET(ijobadd2,4,1))
>> EDIT USING wrkorder WHERE jobid = .ijobid
>> --adr = .ijobadd1 AND adrst CONTAINS .sstreet
>> RETURN
>>
>>
>> $COMMAND
>> porder
>> SET VAR sstreet = (SGET(ijobadd2,4,1))
>> EDIT USING purchase WHERE adr = .ijobadd1 AND adrst CONTAINS
>> .sstreet RETURN
>>
>>
>> $COMMAND
>> addpo
>> -- SET VAR sstreet = (SGET(ijobadd2,4,1))
>> IF ijobid > 0 THEN
>> ENTER USING purchase1
>> ENDIF
>> RETURN
>>
>> $COMMAND
>> servicecall
>> if caller = "service" then
>> load servcall using custno serdat sertech fname Lname hphone wphone +
>> cellno sadr sadrst control company dispatcher jobid serday + sertim
>> jobstrt .icust# .vardate1 .tech .ijnam1 .ijnam2 .iphon .iphon2 .fc +
>> .ijobadd1 .ijobadd2 "out" .ijcompany .ulog .ijobid .vardat + .stim
>> .vdatim end run indone in inform2.apx RETURN endif
>>
>> if caller = "sales" then
>> load salecall using custno saldate saltech fname lname hphone +
>> wphone serday sertim cellno saladr saladrst whotookcall city state +
>> zcode pager mobile fax badr badrst verified proposed sfname slastname
>> + phonefirst jobphone incommnig jobid .icust# .saledat .vsaltech
>> .inam1 .inam2 .iphon1 .iphon2 .sday .stim + .ce .ijobadd1 .ijobadd2
>> .ulog .icity "MI" .izcode .iphon4 .iphon3 .iphon5 + .iaddress1
>> .iaddress2 "f" "f" .ijnam1 .ijnam2 "f" .iphon .vdatim .ijobid end run
>> indone in inform2.apx return endif
>>
>> $COMMAND
>> indone
>>
>> clear v i* except invono, invno, ijobid
>> closewindow
>> return
>>
>> $COMMAND
>> porder2
>> SET VAR sstreet = (SGET(ijobadd2,4,1))
>> PRINT porders WHERE + -- jobid = .ijobid order by podate desc
>> adr = .ijobadd1 AND adrst CONTAINS .sstreet
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT porders WHERE + -- jobid = .ijobid order by podate desc
>> adr = .ijobadd1 AND adrst CONTAINS .sstreet OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> labor
>> PRINT labor WHERE jobnum = .ijob#
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT labor WHERE jobnum = .ijob#
>> OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> credits
>> PRINT chist1 WHERE custno = .icust# ORDER BY sdate DESC
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT chist1 WHERE custno = .icust# ORDER BY sdate DESC
>> OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> medit
>> IF usec < 5 THEN
>> EDIT USING editmain3 WHERE custno = .icust#
>> -- Cant change important info
>> ENDIF
>> IF usec > 4 THEN
>> EDIT USING editmain6 WHERE custno = .icust# -- can change all
>> info
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> edjobsite
>> EDIT USING addjobsite1 WHERE jobid = .ijobid
>> RETURN
>>
>> $COMMAND
>> jobdir
>> SET V verr = 0
>> EDIT USING direct2 WHERE jobid = .ijobid
>> IF verr <> 0 THEN
>> ENTER USING direct2
>> ENDIF
>> RETURN
>>
>> $COMMAND
>> addjob
>> -- set v vcustno = .icust#
>> -- set v vfname = .inam1
>> -- set v vlname = .inam2
>> -- set v vcompany = ""
>> -- set v vhphone = .ihphone
>> -- set v vadr = ""
>> -- set v vadrst = ""
>> ENTER USING addjobsite2
>>
>> RUN setvar IN inform2.apx
>> RETURN
>>
>>
>> $COMMAND
>> jname
>> SET V ijobid = 0
>> SET V ijobid TEXT
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE ijobid FROM #VALUES +
>> FOR (jobname1 & jobname2 & jobadd1 & jobadd2 & jobadd3), jobid +
>> FROM jobsite + WHERE jobname2 CONTAINS .ijnam2 TITLE "Choose a
>> customer" LINES 20 IF verr <> 0 THEN
>> SET V imessage = "Sorry, That name isn't present in the Jobsite
>> table." RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found info based on Jobsite last name"
>> SET V ijobid INTEGER
>> SET V icust# = custno FROM jobsite WHERE jobid = .ijobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>> $COMMAND
>> addjobnum
>> IF ijobid > 0 THEN
>> IF totaljobs > 0 THEN
>> SET V ilocale TEXT = ""
>> SELECT locale INTO ilocale INDICATOR iilocale FROM joblist
>> + WHERE jobid = .ijobid
>> ENDIF
>> cle v njob
>> ENTER USING addjinfo
>> IF njob is not null THEN
>>
>> INSERT INTO makemod jobnum VALUES .njob
>>
>> SET V ijob# = .njob
>> SET V icust# = custno IN joblist WHERE jobnum = .njob
>> run setvar in inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> matlist
>> PRINT materials WHERE jobnum = .ijob# ORDER BY product
>> RETURN
>>
>> $COMMAND
>> firsnamb
>> SET V ijobid = 0
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE icust# FROM #VALUES +
>> FOR (company & f_name & l_name & badr & badrst), custno FROM armain
>> + WHERE f_name CONTAINS .inam1 ORDER BY l_name LINES 20 IF verr <>
>> 0 THEN
>> SET V imessage = ("Sorry, Don't have any" &inam1 + +
>> "'s in the ARMain table")
>> RUN varclear IN inform2.apx
>> ELSE
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> IF totaljobids > 1 THEN
>> SET V ijobid = 0
>> SET V imessage = "Found based on First Name, but has
>> multiple +
>> Jobsites please press 'Other Jobsites' for list"
>> RUN setvar IN inform2.apx
>> ELSE
>> SET V ijobid = jobid FROM jobsite WHERE custno = .icust#
>> SET V imessage = "Found based on First Name." RUN setvar IN
>> inform2.apx
>> ENDIF
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> firsnamj
>> SET V ijobid = 0
>> SET V ijobid TEXT
>> SET V icust# = ""
>> SET V ijob# = ""
>> CHOOSE ijobid FROM #VALUES +
>> FOR (jobcompany & jobname1 & jobname2 & jobadd1 & jobadd2) ,jobid +
>> FROM jobsite + WHERE jobname1 CONTAINS .ijnam1 ORDER BY jobname2
>> LINES 20 IF verr <> 0 THEN
>> SET V imessage = ("Sorry, Don't have any" &inam1 + +
>> "'s in the jobsite table")
>> RUN varclear IN inform2.apx
>> ELSE
>> SET V imessage = "Found info based on first name in jobsite"
>> SET V ijobid INTEGER SET V icust# = custno FROM jobsite WHERE
>> jobid = .ijobid RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> varclear
>> SET V imessage = +
>> "You may search based on any known information. Just click +
>> on the field you do have information about and fill it in. Then hit
>> enter. + You only need to fill in one field (Yellowed fields are
>> excluded)"
>> -- armain variables
>> SET V icompany = ""
>> SET V inam1 = ""
>> SET V inam2 = ""
>> SET V iaddress1 = ""
>> SET V iaddress2 = ""
>> SET V iphon1 = ""
>> SET V iphon2 = ""
>> SET V iphon3 = ""
>> SET V iphon4 = ""
>> SET V iphon5 = ""
>> SET V icity = ""
>> SET V izcode = ""
>> SET V icust# = ""
>> SET V ibuilder = ""
>> SET V icurr_bal = 0
>> SET V totaljobs = 0
>> SET V totaljobids = 0
>> SET V tjobid = 0
>> -- jobsite varibles
>> SET V ijnam1 = ""
>> SET V ijnam2 = ""
>> SET V ijcompany = ""
>> SET V ijobadd1 = ""
>> SET V ijobadd2 = ""
>> SET V ijobadd3 = ""
>> SET V iphon = ""
>> SET V ijobnotes = ""
>> SET V ijobid INTEGER = 0
>> SET V ijobmap = ""
>>
>> -- joblist variables
>> SET V ijbnam1 = ""
>> SET V ijbnam2 = ""
>> SET V ijbladd1 = ""
>> SET V ijbladd2 = ""
>> SET V ijblphon = ""
>> SET V ijbldr = ""
>> SET V ijob# = ""
>> SET V njob = ""
>> RECALC VARIABLES
>> SET V verr = 0
>> SKIP TO totaljobs
>> RETURN
>>
>>
>> $COMMAND
>> eqmt1
>> EDIT USING eqmtfrm2 WHERE jobnum = .ijob#
>> RETURN
>>
>>
>> $COMMAND
>> eqmt
>> PRINT equipt1 WHERE jobnum = .ijob#
>> IF vprint = "P" THEN
>> OUTPUT PRINTER
>> PRINT equipt1 WHERE jobnum = .ijob#
>> OUTPUT SCREEN
>> ENDIF
>> RETURN
>>
>>
>> $COMMAND
>> transfer
>> DIALOG "Did you check for an existing customer? " vadddd vend YES
>> AT 16 IF vend = "[ESC]" THEN
>> GOTO end2
>> ENDIF
>> IF vadddd = NO THEN
>> GOTO end2
>> ENDIF
>> IF vadddd = YES THEN
>>
>> SET VAR scustno TEXT = .icust#
>> SET VAR vadr = .ijobadd1
>> SET VAR vadrst = .ijobadd2
>> SET VAR vcity = .icity
>> SET VAR vzip = .izcode
>> SET VAR vcompany = ""
>> SET VAR vfname = ""
>> SET VAR vlname = ""
>> SET VAR vphone = ""
>> ENTER USING editmain4
>> DIALOG "Do you want to transfer this job? " vaddd vend YES AT
>> 16 IF vend = "[ESC]" THEN
>> GOTO end1
>> ENDIF
>> IF vaddd = NO THEN
>> GOTO end1
>> ENDIF
>> IF vaddd = YES THEN
>> UPDATE jobsite SET +
>> custno TO .vcustno, +
>> jobname1 TO .vfname, +
>> jobname2 TO .vlname, +
>> jobcompany TO .vcompany, +
>> jobphone TO .vhphone +
>> WHERE jobid = .ijobid
>>
>> UPDATE joblist SET +
>> custno TO .vcustno +
>> f_name TO .vfname, +
>> l_name TO .vlname, +
>> jphone TO .vhphone, +
>> company TO .vcompany +
>> WHERE jobid = .ijobid
>>
>> EDIT USING addjobsite1 WHERE jobid = .ijobid
>> ENDIF
>> LABEL end1
>> DIALOG "EDIT ORIGINAL OWNER INFO IN ARMAIN? " vedmain vnooo YES
>> AT 10
>>
>> IF vnooo = "[ESC]" THEN
>> GOTO end2
>> ENDIF
>> IF vedmain = NO THEN
>> GOTO end2
>> ENDIF
>>
>> IF vedmain = YES THEN
>> SET RULES OFF
>> EDIT USING editmain5 WHERE custno = .scustno
>> SET RULES ON
>> ENDIF
>> ENDIF
>> LABEL end2
>> RETURN
>>
>> $command
>> Service1
>> edit using scallnew where jobid = .ijobid
>> return
>>
>> $command
>> Dispatch
>> edit using scallhist where jobid = .ijobid
>> return
>>
>>
>> $COMMAND
>> trans1
>> IF tjobid = 0 THEN
>> SET V tjobid = .ijobid
>> PAUSE 2 USING +
>> "Choose the Customer to transfer to then press 'Transfer job +
>> to existing customer' again"
>> SET V icust# = ""
>> SET V ijob# = ""
>> SET V ijobid = 0
>> RUN setvar IN inform2.apx
>> ELSE
>>
>> PAUSE 3 USING "updating to new customer now"
>> UPDATE jobsite SET +
>> custno TO .icust#, +
>> jobname1 TO .inam1, +
>> jobname2 TO .inam2, +
>> jobcompany TO .icompany, +
>> jobphone TO .iphon1 +
>> WHERE jobid = .tjobid
>> UPDATE joblist SET +
>> custno TO .icust#, +
>> f_name TO .inam1, +
>> l_name TO .inam2, +
>> jphone TO .iphon1, +
>> company TO .icompany +
>> WHERE jobid = .tjobid
>> SET V tjobid = 0
>> SET V ijobid = .tjobid
>> RUN setvar IN inform2.apx
>> ENDIF
>> RETURN
>>
>>
>>
>> $COMMAND
>> addnew
>> SET VAR vcity = ""
>> SET VAR vzip = ""
>> SET VAR vcompany = ""
>> SET VAR vfname = ""
>> SET VAR vlname = ""
>>
>> ENTER USING editmain4
>> DIALOG "DO YOU WANT INFO PUT IN JOBSITE ALSO? " vaddd vend YES AT
>> 16 IF vend = "[ESC]" THEN
>> GOTO end2
>> ENDIF
>> IF vaddd = NO THEN
>> GOTO end2
>> ENDIF
>> IF vaddd = YES THEN
>>
>> INSERT INTO jobsite jobname1, jobname2, jobcompany, +
>> jobadd1, jobadd2, jobphone, custno +
>> VALUES .vfname, .vlname, .vcompany, .vadr, .vadrst, +
>> .vphone, .vcustno
>>
>>
>> SELECT jobid INTO ijobids INDICATOR iijobids FROM jobsite WHERE
>> + custno = .vcustno AND jobadd1 = .vadr AND jobadd2 = .vadrst
>> SET V ijobid = .ijobids EDIT USING addjobsite1 WHERE jobid =
>> .ijobids SET V icust# = .vcustno RUN setvar IN inform2.apx
>> ENDIF
>>
>> LABEL end2
>> RETURN
>>
>>
>> $COMMAND
>> setvar
>> -- armain variables
>> SET V icompany = ""
>> SET V inam1 = ""
>> SET V inam2 = ""
>> SET V iaddress1 = ""
>> SET V iaddress2 = ""
>> SET V iphon1 = ""
>> SET V iphon2 = ""
>> SET V iphon3 = ""
>> SET V iphon4 = ""
>> SET V iphon5 = ""
>> SET V icity = ""
>> SET V izcode = ""
>> SET V ibuilder = ""
>> SET V vprint = "S"
>> SET V icurr_bal = 0
>> SET V totaljobs = 0
>> SET V totaljobids = 0
>> -- jobsite varibles
>> SET V ijnam1 = ""
>> SET V ijnam2 = ""
>> SET V ijcompany = ""
>> SET V ijobadd1 = ""
>> SET V ijobadd2 = ""
>> SET V ijobadd3 = ""
>> SET V iphon = ""
>> SET V ijobnotes = ""
>> SET V ijobmap = ""
>> SET V ijobids = 0
>> -- joblist variables
>> SET V ijbnam1 = ""
>> SET V ijbnam2 = ""
>> SET V ijbladd1 = ""
>> SET V ijbladd2 = ""
>> SET V ijblphon = ""
>> SET V ijbldr = ""
>> SET V njob = ""
>> -- RECALC VARIABLES
>> SET V verr = 0
>> -- ARMAIN info
>> SELECT company, f_name, l_name, badr, badrst, hphone, wphone,
>> mphone, + pager, fax, city, zcode, curr_bal, builder + INTO
>> icompany INDICATOR iicompany, inam1 INDICATOR iinam1, + inam2
>> INDICATOR iinam2, iaddress1 INDICATOR iiaddress1, + iaddress2
>> INDICATOR iiaddress2, iphon1 INDICATOR iiphon1, + iphon2 INDICATOR
>> iiphon2, iphon3 INDICATOR iiphon3, + iphon4 INDICATOR iiphon4,
>> iphon5 INDICATOR iiphon5, + icity INDICATOR iicity, izcode
>> INDICATOR iizcode, + icurr_bal INDICATOR iicurbal, ibuilder
>> INDICATOR iibuilder + FROM armain WHERE custno = .icust#
>>
>> SELECT COUNT (jobid) INTO totaljobids FROM jobsite +
>> WHERE custno = .icust#
>> compute iinvcur as sum invbal from ardetail where custno = .icust#
>> compute ipaycur as sum paycur from ardetail where custno = .icust#
>> set v icurr_bal = (.iinvcur - .ipaycur)
>>
>>
>> -- jobsite info
>> IF ijobid > 0 THEN
>> SELECT jobname1, jobname2, jobcompany, jobadd1, jobadd2,
>> jobadd3, + jobphone, jobnotes, jobmap INTO ijnam1 INDICATOR
>> iijnam1, + ijnam2 INDICATOR iijnam2, ijcompany INDICATOR
>> iijcompany, + ijobadd1 INDICATOR iijobadd1, ijobadd2 INDICATOR
>> iijobadd2, + ijobadd3 INDICATOR iijobadd3, iphon INDICATOR
>> iiphon, + ijobnotes INDICATOR iijobnotes, ijobmap INDICATOR
>> iijobmap + FROM jobsite WHERE jobid = .ijobid
>>
>> If ijob# is not null or ijob# <> "" then
>> SELECT f_name, l_name, jadr, jadrst, jphone, builder +
>> INTO ijbnam1 INDICATOR iijbnam1, +
>> ijbnam2 INDICATOR iijbnam2, ijbladd1 INDICATOR iijbladd1, +
>> ijbladd2 INDICATOR iijbladd2, ijblphon INDICATOR iijblphone, +
>> ijbldr INDICATOR iijbldr FROM joblist WHERE jobnum = .ijob#
>> goto jobaround endif -- joblist info
>>
>> SELECT COUNT (jobnum) INTO totaljobs FROM joblist +
>> WHERE jobid = .ijobid
>> if totaljobs >1 then
>> set v imessage "There are more than one JOB NUMBERS for this jobsite +
>> Please choose one."
>> goto jobaround
>> endif
>> if totaljobs > 0 then
>>
>> SELECT f_name, l_name, jadr, jadrst, jphone, builder, jobnum +
>> INTO ijbnam1 INDICATOR iijbnam1, + ijbnam2 INDICATOR iijbnam2,
>> ijbladd1 INDICATOR iijbladd1, + ijbladd2 INDICATOR iijbladd2,
>> ijblphon INDICATOR iijblphone, + ijbldr INDICATOR iijbldr,
>> ijob# indicator iijobnum# +
>> FROM joblist WHERE jobid = .ijobid
>> endif
>>
>> ENDIF
>> label jobaround
>> RECALC VARIABLES
>> SKIP TO totaljobs
>> RETURN
>>
>>
>>
>>
>>
>>
>> At 09:18 AM 2/21/03 -0500, you wrote:
>>
>>
>> >At 08:54 AM 2/21/2003 -0500, Dan Champion wrote:
>> >
>> >>One of my forms calls proceedures in a codelocked apx file.
>> >>I have Debug trace in the file and debug is set to ON, But
>> >>this is where it stops tracing.
>> >
>> >
>> >Dan,
>> >
>> >In that case, why don't you run the TRACE on ASCII version of
>> >your code to get to the bottom of the problem?
>> >
>> >You may also post the actual ASCII version of the code here for
>> >others (eagle eyes) to see if they can help you. Invalid command,
>> >misspelled/wrong syntax, thousand other things ... who knows?
>> >
>> >Very Best Regards,
>> >
>> >Razzak.
>> >
>>
>>
>>
>> Dan Champion
>> P.O. Box 223
>> Grandville, MI. 49428-0223
>> www.championsolutions.net
>>
>