memvar
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: memvar
Interesting test:
Code: Select all
#include "fivewin.ch"
function Main()
PRIVATE Salary := 30
USE CUSTOMER
subfunc()
return nil
//----------
function subfunc()
local salary := 10
? salary, field->salary, memvar->salary
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: memvar
The question is f.e.
select sales
goto top
cproduct:=sales->name
select products
locate for products->cproduct="smart"
select sales
goto top
cproduct:=sales->name
select products
locate for products->cproduct="smart"
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: memvar
Code: Select all
PRIVATE cproduct
select sales
goto top
cproduct:=sales->name
select products
locate for products->&cproduct="smart"
Code: Select all
local cproduct
select sales
goto top
cproduct:=sales->name
select products
locate for products->&(cproduct)="smart"
Code: Select all
sales->( dbgotop() )
select products
locate for products->&(sales->name)="smart"
// or
locate for &(sales->name)="smart"
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: memvar
Thank you India but it does not work with the macro ampersand. I tried that already yesterday and I tried it again today but it gives errors by compiling
the real source code is as follows:
select temp2
goto top
calias:=temp2->alias
select temp1
sum all temp1->calias to ntotalias
the real source code is as follows:
select temp2
goto top
calias:=temp2->alias
select temp1
sum all temp1->calias to ntotalias
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: memvar
Code: Select all
sum all temp1->&(calias) to ntotalias
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: memvar
By compiling no problem but while calling the procedure I got the error message:
"error base/1449 syntax error : &" (ampersand)
PS: I am a non professional programmer working for free at the food bank of my home town
"error base/1449 syntax error : &" (ampersand)
PS: I am a non professional programmer working for free at the food bank of my home town
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: memvar
Please try this program as it is in your fwh\samples folder
Code: Select all
#include "fivewin.ch"
function Main()
local cfield, nTotSal
DBCREATE( "TMP.DBF", {{ "FLD", "C", 10, 0 }}, NIL, .T., "TMP" )
APPEND BLANK
FIELD->FLD := "SALARY"
CLOSE DATA
USE TMP NEW
cField := TMP->FLD
USE CUSTOMER NEW
SUM ALL CUSTOMER->&( cField ) TO ntotsal
? ntotsal
return nil
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: memvar
Hallo,
The customer.dbf file that is within the fwh/samples map does not contain a fld field??
By compiling and launching the program that you suggest, I become an alert saying "Alert 38836300.00"??
The customer.dbf file that is within the fwh/samples map does not contain a fld field??
By compiling and launching the program that you suggest, I become an alert saying "Alert 38836300.00"??
- nageswaragunupudi
- Posts: 8017
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Contact:
Re: memvar
This alert box show the total as 38836300.00."Alert 38836300.00"?
That means the program worked correctly.
Now, apply the same logic to your situation.
Regards
G. N. Rao.
Hyderabad, India
G. N. Rao.
Hyderabad, India
Re: memvar
hallo,
Can you try my situation? The compiling is OK but when launching I got an error message
.....
select temp2
goto top
do while .NOT. eof()
calias:=temp2->alias
cnaam:=temp2->naam
select temp1
sum all temp1->&( calias ) to ntotalias
oPrn:say(nRow, 10*fntArial2:nWidth, cnaam, fntArial3)
oPrn:say(nRow, 50*fntArial2:nWidth, STR(ntotalias,3), fntArial1)
nRow += 1.3 * fntArial1:nHeight
select temp2
skip 1
enddo
......
Can you try my situation? The compiling is OK but when launching I got an error message
.....
select temp2
goto top
do while .NOT. eof()
calias:=temp2->alias
cnaam:=temp2->naam
select temp1
sum all temp1->&( calias ) to ntotalias
oPrn:say(nRow, 10*fntArial2:nWidth, cnaam, fntArial3)
oPrn:say(nRow, 50*fntArial2:nWidth, STR(ntotalias,3), fntArial1)
nRow += 1.3 * fntArial1:nHeight
select temp2
skip 1
enddo
......
- James Bott
- Posts: 4654
- Joined: Fri Nov 18, 2005 4:52 pm
- Location: San Diego, California, USA
- Contact:
Re: memvar
JDS,
I am not exactly sure what you are trying to do, but if you use database objects you don't need to use local variables for fields--that is built into the database object.
oCustomer:Name
Is actually a buffer that contains a copy of the data in the NAME field.
Also you never need to use workareas or aliases with database objects.
Here is an example of how to build a database object for a customer database:
Now you can do:
Have you read the articles that I provided the links to in your other message thread with the same title as this one? If not, please do.
James
I am not exactly sure what you are trying to do, but if you use database objects you don't need to use local variables for fields--that is built into the database object.
oCustomer:Name
Is actually a buffer that contains a copy of the data in the NAME field.
Also you never need to use workareas or aliases with database objects.
Here is an example of how to build a database object for a customer database:
Code: Select all
CLASS TCustomers from TDatabase
Method New()
ENDCLASS
Method New( lShared ) Class TCustomers
Default lShared:= .T.
::Super:New(,"cust",,lShared)
If ::Use()
::SetOrder("CUSTNO") // Primary key
::Gotop()
Endif
Return self
// Note that this assumes you have set your databases to automatically open thier indexes when you open a database.
Code: Select all
oCustomer:= TCustomer():New()
msgInfo( oCustomer:name )
James
FWH 18.05/xHarbour 1.2.3/BCC7/Windows 10