Paradox Community

Items in pnews.paradox-programming

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()


Copyright © 2004 thedbcommunity.com