Subject: | Re: Help with writing tcursor
| Date: | Fri, 22 May 2020 05:28:35 -0400
| From: | Kevin Baker <shcsbaker@gmail.com>
| Newsgroups: | pnews.paradox-programming
|
First, the code works for combining the data from CT2.db into CT1.db,
but now I'm getting strange things happening when creating the CT2.db.
The user selects the year they want (i.e. 2019) and I use the below code
to generate CT2.DB (I also tried another method I'll discuss later in
this post).
;build month begin/end vars
s1 = "1/1/"+yv
e1 = "1/31/"+yv
s2 = "2/1/"+yv
if s2.isLeapYear() then
e2 = "2/29/"+yv
else
e2 = "2/28/"+yv
endif
s3 = "3/1/"+yv
e3 = "3/31/"+yv
s4 = "4/1/"+yv
e4 = "4/30/"+yv
s5 = "5/1/"+yv
e5 = "5/31/"+yv
s6 = "6/1/"+yv
e6 = "6/30/"+yv
s7 = "7/1/"+yv
e7 = "7/31/"+yv
s8 = "8/1/"+yv
e8 = "8/31/"+yv
s9 = "9/1/"+yv
e9 = "9/30/"+yv
s10 = "10/1/"+yv
e10 = "10/31/"+yv
s11 = "11/1/"+yv
e11 = "11/30/"+yv
s12 = "12/1/"+yv
e12 = "12/31/"+yv
qvar = query
ANSWER: :PRIV:CT2.DB
Giving.DB | MainId | Date | Amount
| Category |
| Check not blank | >=~s1,<=~e1 | calc sum as Total, calc "Jan" as
"Month" | check not split |
| Check not blank | >=~s2,<=~e2 | calc sum as Total, calc "Feb" as
"Month" | check not split |
| Check not blank | >=~s3,<=~e3 | calc sum as Total, calc "Mar" as
"Month" | check not split |
| Check not blank | >=~s4,<=~e4 | calc sum as Total, calc "Apr" as
"Month" | check not split |
| Check not blank | >=~s5,<=~e5 | calc sum as Total, calc "May" as
"Month" | check not split |
| Check not blank | >=~s6,<=~e6 | calc sum as Total, calc "Jun" as
"Month" | check not split |
| Check not blank | >=~s7,<=~e7 | calc sum as Total, calc "Jul" as
"Month" | check not split |
| Check not blank | >=~s8,<=~e8 | calc sum as Total, calc "Aug" as
"Month" | check not split |
| Check not blank | >=~s9,<=~e9 | calc sum as Total, calc "Sep" as
"Month" | check not split |
| Check not blank | >=~s10,<=~e10 | calc sum as Total, calc "Oct" as
"Month" | check not split |
| Check not blank | >=~s11,<=~e11 | calc sum as Total, calc "Nov" as
"Month" | check not split |
| Check not blank | >=~s12,<=~e12 | calc sum as Total, calc "Dec" as
"Month" | check not split |
endQuery
if not executeQBE(qvar) then
errorShow()
endif
When this runs, I get errors like 1.jpg and 2.jpg. So I switch to
creating CT2.db by creating a new CT3.db file as shown below:
qvar = query
ANSWER: :PRIV:CT3.DB
Giving.DB | MainId | Date | Amount | Category
| PmtMeth |
| Check Not Blank | Check | Check | Check Not Split, Not Blank |
calc blank as "Month" |
endQuery
if not executeQBE(qvar) then
errorShow()
endif
;Compute Month
tc1.open(":PRIV:CT3.DB")
tc1.edit()
scan tc1:
tc1."Month" = moy(tc1."Date")
tc1.unlockRecord()
endScan
tc1.endEdit()
tc1.close()
When I run the tcursor, it updates the first record, then I get a GPV.
I'm not sure if I'm doing something wrong or if this is come kind of bug
in Paradox.
I'm doing this as a DIY crosstab query.
To help in reading the queries I've attached them as text files.
Thanks
Kevin
query1.txt ;build month begin/end vars
s1 = "1/1/"+yv
e1 = "1/31/"+yv
s2 = "2/1/"+yv
if s2.isLeapYear() then
e2 = "2/29/"+yv
else
e2 = "2/28/"+yv
endif
s3 = "3/1/"+yv
e3 = "3/31/"+yv
s4 = "4/1/"+yv
e4 = "4/30/"+yv
s5 = "5/1/"+yv
e5 = "5/31/"+yv
s6 = "6/1/"+yv
e6 = "6/30/"+yv
s7 = "7/1/"+yv
e7 = "7/31/"+yv
s8 = "8/1/"+yv
e8 = "8/31/"+yv
s9 = "9/1/"+yv
e9 = "9/30/"+yv
s10 = "10/1/"+yv
e10 = "10/31/"+yv
s11 = "11/1/"+yv
e11 = "11/30/"+yv
s12 = "12/1/"+yv
e12 = "12/31/"+yv
qvar = query
ANSWER: :PRIV:CT2.DB
Giving.DB | MainId | Date | Amount | Category |
| Check not blank | >=~s1,<=~e1 | calc sum as Total, calc "Jan" as "Month" | check not Split |
| Check not blank | >=~s2,<=~e2 | calc sum as Total, calc "Feb" as "Month" | check not Split |
| Check not blank | >=~s3,<=~e3 | calc sum as Total, calc "Mar" as "Month" | check not Split |
| Check not blank | >=~s4,<=~e4 | calc sum as Total, calc "Apr" as "Month" | check not Split |
| Check not blank | >=~s5,<=~e5 | calc sum as Total, calc "May" as "Month" | check not Split |
| Check not blank | >=~s6,<=~e6 | calc sum as Total, calc "Jun" as "Month" | check not Split |
| Check not blank | >=~s7,<=~e7 | calc sum as Total, calc "Jul" as "Month" | check not Split |
| Check not blank | >=~s8,<=~e8 | calc sum as Total, calc "Aug" as "Month" | check not Split |
| Check not blank | >=~s9,<=~e9 | calc sum as Total, calc "Sep" as "Month" | check not Split |
| Check not blank | >=~s10,<=~e10 | calc sum as Total, calc "Oct" as "Month" | check not Split |
| Check not blank | >=~s11,<=~e11 | calc sum as Total, calc "Nov" as "Month" | check not Split |
| Check not blank | >=~s12,<=~e12 | calc sum as Total, calc "Dec" as "Month" | check not Split |
endQuery
if not executeQBE(qvar) then
errorShow()
endif
query2.txt qvar = query
ANSWER: :PRIV:CT3.DB
Giving.DB | MainId | Date | Amount | Category | PmtMeth |
| Check Not Blank | Check | Check | Check Not Split, Not Blank | calc blank as "Month" |
endQuery
if not executeQBE(qvar) then
errorShow()
endif
;Compute Month
tc1.open(":PRIV:CT3.DB")
tc1.edit()
scan tc1:
tc1."Month" = moy(tc1."Date")
tc1.postRecord()
endScan
tc1.endEdit()
tc1.close()
|