|
Home > Archive > Programming with dBASE > April 2006 > Macro on table fields
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
Macro on table fields
|
|
| evilaro 2006-02-10, 7:23 am |
| To all:
I use this tipe of macro.
sMacro = [form.TEXT] + MMMMEEEE+[.TEXT]
oTE = &sMacro.
FORM.TEXTOAVISO2.TEXT=oTE
I would like to use the same sistem to get a value form a table that has
several fields like name1,name2,name3.... etc
I have tried several combination one of them being this one..
with no luck..
sMacro = [FORM.LLUISET.ROWSET.FIELDS["Name"]+ MMMMEEEE+[.VALUE]
oEF = &sMacro.
Any sugestions?
Emilio
| |
|
| HI Try
sMacro = 'FORM.LLUISET.ROWSET.FIELDS["Name'+ MMMMEEEE+'"].VALUE'
Robert
"evilaro" <buzon[NO]@evilfoto.es> wrote in message
news:#tEYMjiLGHA.1152@news-server...
> To all:
>
> I use this tipe of macro.
>
>
> sMacro = [form.TEXT] + MMMMEEEE+[.TEXT]
> oTE = &sMacro.
> FORM.TEXTOAVISO2.TEXT=oTE
>
> I would like to use the same sistem to get a value form a table that has
> several fields like name1,name2,name3.... etc
>
> I have tried several combination one of them being this one..
> with no luck..
>
> sMacro = [FORM.LLUISET.ROWSET.FIELDS["Name"]+ MMMMEEEE+[.VALUE]
> oEF = &sMacro.
>
> Any sugestions?
>
> Emilio
>
>
>
| |
| evilaro 2006-02-10, 7:23 am |
| Robert:
May I say you are a master of the [ and " world...
Perfect...
Thank you very much
Emilio
"rb" <me@u.com> escribió en el mensaje news:$7Ubh8iLGHA.1856@news-server...
> HI Try
>
> sMacro = 'FORM.LLUISET.ROWSET.FIELDS["Name'+ MMMMEEEE+'"].VALUE'
>
> Robert
>
> "evilaro" <buzon[NO]@evilfoto.es> wrote in message
> news:#tEYMjiLGHA.1152@news-server...
>
>
| |
| Michael Nuwer [dBVIPS] 2006-02-10, 7:23 am |
| evilaro wrote:
>
> sMacro = [FORM.LLUISET.ROWSET.FIELDS["Name"]+ MMMMEEEE+[.VALUE]
> oEF = &sMacro.
>
> Any sugestions?
Emilio,
In this case, macro substitution is not necessary:
cFieldName = "Name" + MMMMEEEE
oEF = FORM.LLUISET.ROWSET.FIELDS[ cFieldName ].VALUE
| |
| evilaro 2006-02-10, 7:23 am |
| Michael:
This is shocking ... I would I know when is necesary and when not?
What is logic behind this ?
Why can I use the "Name" + MMMMEEEE
in some places and others not?
Thanks
Emilio
"Michael Nuwer [dBVIPS]" <nuwermj@nospam.please.yahoo.com> escribió en el
mensaje news:CHarTKjLGHA.1152@news-server...
> evilaro wrote:
>
>
> Emilio,
>
> In this case, macro substitution is not necessary:
>
> cFieldName = "Name" + MMMMEEEE
> oEF = FORM.LLUISET.ROWSET.FIELDS[ cFieldName ].VALUE
| |
| Todd Kreuter 2006-02-10, 7:23 am |
| evilaro wrote:
>
> Michael:
>
> This is shocking ... I would I know when is necesary and when not?
> What is logic behind this ?
> Why can I use the "Name" + MMMMEEEE
> in some places and others not?
Old habits are hard to break.
Generally use macro substition when you can't resolve something with a
string. Since moving to the object oriented world, I've found myself
using less and less of it.
--
Todd Kreuter [dBVIPS]
| |
| *Lysander* 2006-02-10, 7:23 am |
| evilaro schrieb:
> Why can I use the "Name" + MMMMEEEE
> in some places and others not?
Emilio,
_Todavía_ es posible utilizar la combinación "TEXTO" + TEXTVAR para
formar un texto nuevo y plazarlo en un variable.
No hay ningún exclusión en dBL.
En tuo ejemplo has hacido solo una faltida más pequeña, porque el simbol
"]" tiene _dos_ funciones:
a.) es terminando un texto, como así " y '
b.) es terminando un departamente del "array" (one element).
Simplemente has combinado los dos funciones non tipicamente.
I hope my Spanish is not too broken.
I definitely will have to train a bit before I will meet my former
teacher in 2 weeks :)
ciao,
André
| |
| Ken Mayer [dBVIPS] 2006-02-10, 9:23 am |
| evilaro wrote:
> To all:
>
> I use this tipe of macro.
>
>
> sMacro = [form.TEXT] + MMMMEEEE+[.TEXT]
> oTE = &sMacro.
> FORM.TEXTOAVISO2.TEXT=oTE
>
> I would like to use the same sistem to get a value form a table that has
> several fields like name1,name2,name3.... etc
>
> I have tried several combination one of them being this one..
> with no luck..
>
> sMacro = [FORM.LLUISET.ROWSET.FIELDS["Name"]+ MMMMEEEE+[.VALUE]
> oEF = &sMacro.
>
> Any sugestions?
When I am creating this sort of macro, I always test it first before
running the code. The bit difficulty is getting the delimiters correct.
So when creating the macro, before actually running the full code:
? sMacro
cancel
This allows me to test it, see what it looks like, and figure out what I
goofed on ...
Ken
--
/(Opinions expressed are purely my own, not those of dataBased
Intelligence, Inc.)/
*Ken Mayer* [dBVIPS]
/Golden Stag Productions/
dBASE at goldenstag dot net
http://www.goldenstag.net/dbase/dBASEBook.htm
http://www.goldenstag.net/GSP
http://www.goldenstag.net/dbase
| |
| evilaro 2006-02-10, 9:23 am |
| Todd:
I hope I would never had to use macros substitution. ;)
Emilio
"Todd Kreuter" <tkreuter@dbvips.usa> escribió en el mensaje
news:43EC8D94.5C29D51D@dbvips.usa...
> evilaro wrote:
>
> Old habits are hard to break.
>
> Generally use macro substition when you can't resolve something with a
> string. Since moving to the object oriented world, I've found myself
> using less and less of it.
>
> --
> Todd Kreuter [dBVIPS]
| |
| evilaro 2006-02-10, 9:23 am |
| Lysander
I am not good at dBASE but at spanish I do somehow better ;)
And yours is quite undestandable....
Thanks for the comments... I will recheck my thinking
and see if I can use more of it instead of macros.
Emilio
> Emilio,
> _Todavía_ es posible utilizar la combinación "TEXTO" + TEXTVAR para
> formar un texto nuevo y plazarlo en un variable.
> No hay ningún exclusión en dBL.
>
> En tuo ejemplo has hacido solo una faltida más pequeña, porque el simbol
> "]" tiene _dos_ funciones:
> a.) es terminando un texto, como así " y '
> b.) es terminando un departamente del "array" (one element).
>
> Simplemente has combinado los dos funciones non tipicamente.
>
>
> I hope my Spanish is not too broken.
> I definitely will have to train a bit before I will meet my former
> teacher in 2 weeks :)
>
> ciao,
> André
>
| |
| evilaro 2006-02-11, 8:23 pm |
| Ken:
Thanks for the tip...
But if in the field name I do no t have to use macro substitution
Is there a way to NOT use macros on cases like
Form.Entryfield101.Value='aaaaa'
Like
number="101"
EF="Entryfield"+number
FORM.ENTRYFIELD"&ef".VALUE='aaaaa'
Or something similar....
Looks like is not possible ...
Emilio
> When I am creating this sort of macro, I always test it first before
> running the code. The bit difficulty is getting the delimiters correct.
> So when creating the macro, before actually running the full code:
>
> ? sMacro
> cancel
>
> This allows me to test it, see what it looks like, and figure out what I
> goofed on ...
>
> Ken
>
> --
> /(Opinions expressed are purely my own, not those of dataBased
> Intelligence, Inc.)/
>
> *Ken Mayer* [dBVIPS]
> /Golden Stag Productions/
> dBASE at goldenstag dot net
> http://www.goldenstag.net/dbase/dBASEBook.htm
> http://www.goldenstag.net/GSP
> http://www.goldenstag.net/dbase
| |
| Ronnie MacGregor 2006-02-12, 7:23 am |
|
On Sat, 11 Feb 2006 23:39:11 +0100
evilaro said :
> Is there a way to NOT use macros on cases like
>
> Form.Entryfield101.Value='aaaaa'
>
> Like
> number="101"
> EF="Entryfield"+number
>
> FORM.ENTRYFIELD"&ef".VALUE='aaaaa'
>
> Or something similar....
>
> Looks like is not possible ...
Hi Emilio
You have hit on one of the few occasions where macro substitution is
unavoidable. Here's another :
====================
====================
=============
// Check we can write to the local directory
private cFile
try
cFile = "'" + SET("DIRECTORY") + "\~QR3test.tmp'"
oF = new file()
oF.create(&cFile.)
oF.close()
oF.delete(&cFile.)
bRet := true
catch (exception e)
// Unable to write to the local directory
endtry
====================
====================
=============
So the common factor seems to be when constructing names for objects.
Here's an example of how not to do it <g> :
====================
====================
=============
// Create button
private ButtonNameString
ButtonNameString = "this.parent." + this.name + "_PB_NUDGE_UP"
//////////////////////////////////////////////////////////
// The following line surfaces a dBASE bug where two
// controls will be created
// &ButtonNameString. = new NudgeButton(this.parent)
// Replace the above line with these next two for workaround
MacroString = ButtonNameString + " = new NudgeButton(this.parent)"
&MacroString.
&ButtonNameString..top = this.top + 2
&ButtonNameString..left = this.left + this.width - 18
&ButtonNameString..width = 16
&ButtonNameString..height = int( (this.height - 4) / 2)
&ButtonNameString..Owner = this
&ButtonNameString..direction = 'up'
&ButtonNameString..upBitmap = iif(file('up.bmp',true),"filename p.bmp",null)
====================
====================
=============
Apart from the dBASE macro object creation bug, this method will be very very
slow because of the amount of macro substitution.
A better method is :
====================
====================
=============
// Create the Button
if cName == ""
cName = "TBB_" + (this.aObjectRefs.size + 1)
endif
sMacString = "this." + cName + " = new rmToolBarButton(this
)"
&sMacString.
// Get object ref to button
sMacString = "this." + cName
oRef = &sMacString.
// Set button properties
oRef.Resource := cResource
oRef.BackgroundName := cBackgroundName
oRef.IconName := cIconName
if nLeft > 0
oRef.Left := nLeft
else
oRef.Left := this.NextObjectLeft
endif
oRef.Disabled := bDisabled
oRef.Toggle := bToggle
oRef.ToggledDown := bToggledDown
oRef.RadioGroup := cRadioGroup
oRef.SpeedTip := cSpeedTip
// Set up Click functionality
if not empty(cClickCode)
sMacString = "this."+cName+".onMiddleDblClick = {; "+cClickCode+"}"
&sMacString.
endif
====================
====================
=============
So by getting an object reference to an object once it is created, we can avoid
a lot of unnecessary macro substitution. Of course by using custom controls,
and instantiating a new instance by macro substitution at runtime we can avoid
a lot of this property setting anyway.
So the conclusion is, use macro substitution for control creation, but
thereafter use an object reference to that control when working with it.
In your case I'll bet this might be something to do with a large number of
"thumbnail" controls which you might want to reference by number ?
If so, then the approach I would take would be to create the control by macro
substitution, and then add it as an object reference to an associative array :
====================
====================
=============
// UNTESTED pseudo code <g>
aaThumbnails = new AssocArray()
private cMacro
for nCount = 1 to NoOfThumbnails
// Create the Thumbnail
cName = "THM_" + nCount
cMacro = "this." + cName + " = new evilTHUMBNAIL(this)"
&cMacro.
// Add Thumbnail object ref to array
cMacro = "this." + cName
aaThumbnails[str(nCount)] = &cMacro.
endfor
====================
====================
=============
Now we can work with all these controls along the lines of :
====================
====================
=============
for nCount = 1 to aaThumbnails .count()
oRef = aaThumbnails[str(nCount)]
oRef.Caption := "Street Party in Montreal"
if oRef.Orientation == "Portrait" and oRef.PicWidth > oRef.PicHeight
oRef.Rotate90CW()
endif
oRef. CopyTo(myNewDirector
y)
etc.
etc.
endfor
====================
====================
=============
..... anyway .... time for Sunday Breakfast.
Hope this helps.
--
Ronnie MacGregor
Scotland
Ronnie at
dBASEdeveloper
dot co dot uk
www.dBASEdeveloper.co.uk
| |
| evilaro 2006-02-12, 11:23 am |
| Ronnie:
> You have hit on one of the few occasions where macro substitution is
> unavoidable.
Oh welllll the history of my life
>Here's another :
Are you enjoying this situation ;)
> ====================
====================
=============
> // Check we can write to the local directory
> private cFile
> try
> cFile = "'" + SET("DIRECTORY") + "\~QR3test.tmp'"
> oF = new file()
> oF.create(&cFile.)
> oF.close()
> So the common factor seems to be when constructing names for objects.
>
> Here's an example of how not to do it <g> :
oH NOOOOOOOOOOOO
I have enought problems of trying to thi things right ... and now
I got to learn how not to ...
> A better method is :
> ====================
====================
=============
> // Create the Button
> if cName == ""
> cName = "TBB_" + (this.aObjectRefs.size + 1)
> endif
> sMacString = "this." + cName + " = new rmToolBarButton(this
)"
> &sMacString.
> So by getting an object reference to an object once it is created, we can
avoid
> a lot of unnecessary macro substitution. Of course by using custom
controls,
> and instantiating a new instance by macro substitution at runtime we can
avoid
> a lot of this property setting anyway.
>
> So the conclusion is, use macro substitution for control creation, but
> thereafter use an object reference to that control when working with it.
...... I am following Ronie .. I am following
> In your case I'll bet this might be something to do with a large number of
> "thumbnail" controls which you might want to reference by number ?
Hhejjjjj How did you guest?
> If so, then the approach I would take would be to create the control by
macro
> substitution, and then add it as an object reference to an associative
array :
>
> ====================
====================
=============
> // UNTESTED pseudo code <g>
>
> aaThumbnails = new AssocArray()
> oRef = aaThumbnails[str(nCount)]
> oRef.Caption := "Street Party in Montreal"
This sounds a bell to me
> ..... anyway .... time for Sunday Breakfast.
If this is before the Scotish breakfast ....
I am sorry for whoever is asking a question now.
> Hope this helps.
Keep you posted.
And thanks for the time..
This will save me some hours
Emilio
| |
| Zagrijs Venter 2006-02-12, 11:23 am |
| Practice makes perfect. One develops the "feel" for how to construct the
macro. In the beginning I struggled a lot with them. Nowadays I hardly
have a problem. I use them very often, because I have a motto that I don't
duplicate code if I can help it. I often create objects on the fly using a
for... next loop. Macro substitution makes it possible!!!
Zagrijs
"evilaro" <buzon[NO]@evilfoto.es> wrote in message
news:Y4D0J3%23LGHA.592@news-server...
> Ronnie:
>
>
> Oh welllll the history of my life
>
>
> Are you enjoying this situation ;)
>
>
>
>
>
> oH NOOOOOOOOOOOO
>
> I have enought problems of trying to thi things right ... and now
> I got to learn how not to ...
>
>
>
>
>
>
can[color=darkred]
> avoid
> controls,
> avoid
>
> ..... I am following Ronie .. I am following
>
>
of[color=darkred]
>
> Hhejjjjj How did you guest?
>
>
> macro
> array :
>
>
> This sounds a bell to me
>
>
>
> If this is before the Scotish breakfast ....
> I am sorry for whoever is asking a question now.
>
>
>
> Keep you posted.
>
> And thanks for the time..
> This will save me some hours
>
> Emilio
>
>
| |
| Marc VdB 2006-02-13, 7:23 am |
| Hi Ronnie and Emilio,
> You have hit on one of the few occasions where macro substitution is
> unavoidable.
even here i try to avoid macro substitution. The elements property of the
form helps:
local f
f = new macrotestForm()
f.open()
class macrotestForm of FORM
this.ef101 = new ENTRYFIELD(this)
with (this.ef101)
height = 1 ; left = 9
top = 3 ; width = 15
value = "Need a macro ?"
endwith
this.PB1 = new PUSHBUTTON(this)
with (this.PB1)
onClick = class::testit
height = 2 ; left = 9
top = 5 ; width = 15
text = "To macro or not to macro ..."
endwith
function testit
local c
c = "ef101"
form.elements[c].value = "No macro"
return
endclass
> So the conclusion is, use macro substitution for control creation, but
> thereafter use an object reference to that control when working with it.
> If so, then the approach I would take would be to create the control by
macro
> substitution, and then add it as an object reference to an associative
array :
I would even go one step further.
Create it directly as a part of the assocarray, with as parent object the
form. In this case you don't need the macro neither :
local f
f = new ontheflyForm()
f.open()
class ontheflyForm of FORM
this.open= { ; this.ef_c=1 ; this.ef_o= new assocarray(); return
super::open() }
this.pb1 = new PUSHBUTTON(this)
with (this.pb1)
onclick= class::addef
height = 1 ; left = 5
top = 1 ; width = 32
text = "Add entryfields"
endwith
function addef
local c,shrt
c = "ef"+ltrim(str(form.ef_c))
form.ef_o[c] = new entryfield(form)
shrt = form.ef_o[c]
shrt.top = form.ef_c+2
shrt.left= 5
shrt.value = c
form.ef_c +=1
return
endclass
and later you can access the controls exactly as Ronnie described...
I try to avoid macros in every circumstances, not only are they slow, but
they are one of the few things that is typical for interpreted languages. If
for a reason or another, you must port your code to another (compiled)
language , macro substitution will give you the greatest headache of all !!
HTH,
Marc
| |
| Ronnie MacGregor 2006-02-13, 8:23 pm |
|
On Mon, 13 Feb 2006 10:19:36 +0100
Marc VdB said :
> Hi Ronnie and Emilio,
Hi Marc
We just need JP to chip in and we've got the Montreal Sunday lunch and tour
gang back in one place !
> even here i try to avoid macro substitution. The elements property of the
> form helps:
>
> local f
> f = new macrotestForm()
> f.open()
> class macrotestForm of FORM
> this.ef101 = new ENTRYFIELD(this)
> with (this.ef101)
> height = 1 ; left = 9
> top = 3 ; width = 15
> value = "Need a macro ?"
> endwith
> this.PB1 = new PUSHBUTTON(this)
> with (this.PB1)
> onClick = class::testit
> height = 2 ; left = 9
> top = 5 ; width = 15
> text = "To macro or not to macro ..."
> endwith
> function testit
> local c
> c = "ef101"
> form.elements[c].value = "No macro"
> return
> endclass
This is fine for referencing an existing object of known name, but we're
talking about dynamic creation and naming of controls at runtime.
> I would even go one step further.
> Create it directly as a part of the assocarray, with as parent object the
> form. In this case you don't need the macro neither :
>
> local f
> f = new ontheflyForm()
> f.open()
> class ontheflyForm of FORM
> this.open= { ; this.ef_c=1 ; this.ef_o= new assocarray(); return
> super::open() }
> this.pb1 = new PUSHBUTTON(this)
> with (this.pb1)
> onclick= class::addef
> height = 1 ; left = 5
> top = 1 ; width = 32
> text = "Add entryfields"
> endwith
> function addef
> local c,shrt
> c = "ef"+ltrim(str(form.ef_c))
> form.ef_o[c] = new entryfield(form)
> shrt = form.ef_o[c]
> shrt.top = form.ef_c+2
> shrt.left= 5
> shrt.value = c
> form.ef_c +=1
> return
> endclass
Ooops .... spoke too soon !! <g>.
This is very neat .... the more I think about it ....
it is very, very good.
This is the perfect approach to Emilio's thumbnail creation task.
> I try to avoid macros in every circumstances, not only are they slow, but
> they are one of the few things that is typical for interpreted languages. If
> for a reason or another, you must port your code to another (compiled)
> language , macro substitution will give you the greatest headache of all !!
Hmmm ..... never mind the macros, ... name me another language worth porting to
where you can dynamically create new controls at runtime the way you can with
dBL.
--
Ronnie MacGregor
Scotland
Ronnie at
dBASEdeveloper
dot co dot uk
www.dBASEdeveloper.co.uk
| |
| Marc VdB 2006-02-13, 8:23 pm |
| >> Hi Ronnie and Emilio,
>
> Hi Marc
>
> We just need JP to chip in and we've got the Montreal Sunday lunch and
> tour
> gang back in one place !
JEAN PIERRE , where are you ? We need you for the Montreal Online Revival
Pack.
MORP ;-)
<snip>
[color=darkred]
> This is fine for referencing an existing object of known name, but we're
> talking about dynamic creation and naming of controls at runtime.
patience my friend , patience...
<snip>
[color=darkred]
> Ooops .... spoke too soon !! <g>.
HAH, told you, didb't I <gdrvf>
> This is very neat .... the more I think about it ....
> it is very, very good.
> This is the perfect approach to Emilio's thumbnail creation task.
it is based on Marko Mihorkos ideas (so it must be good)
>
> Hmmm ..... never mind the macros, ... name me another language worth
> porting to
> where you can dynamically create new controls at runtime the way you can
> with
> dBL.
Even at the risk, that Al Acker will jump at me (oh we're not in "talk" uff)
, there are not many languages, that can concure with dbase, when it comes
to ease of use of dynamic objects, properties and even dynamic eventhandlers
What nice features ...
CU,Marc
Not afraid of Al Acker, not here in any case <g>
| |
| evilaro 2006-02-13, 8:23 pm |
| Marc and Ronnie:
Thanks for all the help...
Must useful, it will simplify things.
Yesssss.. JPierre.. .where are you??
But Rather than a Online revival... dont you think its
time for a On Real Real revival?
Emilio
"Marc VdB" <vdbsoft@web.de> escribió en el mensaje
news:s5UhzYPMGHA.560@news-server...
>
> JEAN PIERRE , where are you ? We need you for the Montreal Online Revival
> Pack.
> MORP ;-)
>
the[color=darkred]
>
> <snip>
>
>
> patience my friend , patience...
>
the[color=darkred]
>
> <snip>
>
>
> HAH, told you, didb't I <gdrvf>
>
>
> it is based on Marko Mihorkos ideas (so it must be good)
>
but[color=darkred]
languages.[color=darkred]
all[color=darkred]
>
> Even at the risk, that Al Acker will jump at me (oh we're not in "talk"
uff)
> , there are not many languages, that can concure with dbase, when it comes
> to ease of use of dynamic objects, properties and even dynamic
eventhandlers
>
> What nice features ...
>
> CU,Marc
> Not afraid of Al Acker, not here in any case <g>
>
>
| |
| Bowen Moursund [DataTech] 2006-02-13, 8:23 pm |
| YetAnotherTechnique <g> takes advantage of the fact that dBASE forms are
sparse arrays:
f = new exampleform()
f.open()
class exampleform of form
function onOpen
nTop = 0
for i = 1 to 5
this[i] = new entryfield(this)
this[i].top := nTop
nTop += 1
next
endclass
--
Bowen Moursund
DataTech
Consulting & Development
http://www.bmmnet.us
| |
| Marc VdB 2006-02-14, 9:23 am |
| Hey thanks Bowen,
> YetAnotherTechnique <g> takes advantage of the fact that dBASE forms are
> sparse arrays:
didn't know that. I like the assocarray way better, but one never knows,
when these things come in handy...
CU, Marc
--
www.vdblogic.de/dbl
------
| |
| Ronnie MacGregor 2006-02-15, 8:23 pm |
|
On Mon, 13 Feb 2006 17:57:04 -0600
Bowen Moursund [DataTech] said :
> YetAnotherTechnique <g> takes advantage of the fact that dBASE forms are
> sparse arrays:
>
> f = new exampleform()
> f.open()
> class exampleform of form
> function onOpen
> nTop = 0
> for i = 1 to 5
> this[i] = new entryfield(this)
> this[i].top := nTop
> nTop += 1
> next
> endclass
Hi Bowen
I remember you telling me this at dBCon2004, just never got around to trying
it. Useful technique.
Cheers.
--
Ronnie MacGregor
Scotland
Ronnie at
dBASEdeveloper
dot co dot uk
www.dBASEdeveloper.co.uk
| |
| Jean-Pierre Martel 2006-03-29, 3:24 am |
| In article <s5UhzYPMGHA.560@news-server>, vdbsoft@web.de says...
>
> JEAN PIERRE , where are you ? We need you for the Montreal Online Revival
> Pack.
Here I am, alive and kicking.
I'm sorry, Marc, Ronnie and Emilio, I was overwhelmed by work and
meanwhile, more than a thousand of MSGs had accumulated in these NGs.
Next September, I'll experience the famous Scottish hospitality in
Glasgow. Without revealing to you the details, let me say that I will
see Ronie quite often during that week.
Next, I'll spend a week in Amsterdam and lastly, during the last week of
my vacation, I'll visit Brussell and Brugge. Since Marc lives in Aachen
and Romain lives in Liechtenstein, I might see one these guys in a
plane, a train or a bus, if not in a restaurant (that would be great).
Next year, I might take another trip in Berlin. Then, in 2008, it's
possible that I'll see Barcelona. So I might have the chance to meet
once again our sparkling Emilio. ;-)
Jean-Pierre Martel, editor
The dBASE Developers Bulletin
Blue Star dBASE Plus Core Concepts Graduate
| |
| evilaro 2006-04-03, 8:23 pm |
| Jean-Pierre:
Sorry to have read this message.
> Next year, I might take another trip in Berlin. Then, in 2008, it's
> possible that I'll see Barcelona. So I might have the chance to meet
> once again our sparkling Emilio. ;-)
I am sure I will not be here...
Well... you can try....
I have a list of wrong tel number you can contact me....
Are you sure you want to visit Barcelona?
Bar=Bar
Cel=Sky
Ona=Waves
Does that seem interesting??
Hotel capacity is very very small... are you going to be more than one..
well... it does not matter... in two years time a room will be available
somewhere...
Bathroom is mandatory?
I got some contacts on the Hotel reservation Ministry.
Have you thought of Malta... they speak english very well... I would
consider that a bonus
here we speak catalan... .
And Catalans are famous for their speed on not opening the walet...
even slower that a country you will have visited earlier... I hope you by
that
time have get used to it.
Just a few thing to encourage yout trip.
Sorry you will not be comming..
I would have loved to see you...
Emilio
| |
| Jean-Pierre Martel 2006-04-04, 3:23 am |
| In article <#p5BJ#2VGHA.416@news-server>, buzon[NO]@evilfoto.es says...
>
> I am sure I will not be here...
> Are you sure you want to visit Barcelona?
Yes.
> Have you thought of Malta?
No. Do I understand that you live in Malta?
> Sorry you will not be comming..
> I would have loved to see you...
I am not in a rush to see Barcelona. There are plenty of interesting
places to see. I could postpone my trip in Barcelona until God whish us
to meet again. ;-)
Jean-Pierre Martel, editor
The dBASE Developers Bulletin
Blue Star dBASE Plus Core Concepts Graduate
| |
| evilaro 2006-04-04, 3:23 am |
|
Very Good Jean Pierre;)
I am sure we could make the best of your trip here.
Emilio
>
> Yes.
>
>
> No. Do I understand that you live in Malta?
>
>
> I am not in a rush to see Barcelona. There are plenty of interesting
> places to see. I could postpone my trip in Barcelona until God whish us
> to meet again. ;-)
>
> Jean-Pierre Martel, editor
> The dBASE Developers Bulletin
> Blue Star dBASE Plus Core Concepts Graduate
| |
| Ronnie MacGregor 2006-04-04, 8:23 pm |
|
On Tue, 4 Apr 2006 00:31:58 +0200
evilaro said :
> And Catalans are famous for their speed on not opening the walet...
> even slower that a country you will have visited earlier...
<LOL>
--
Ronnie MacGregor
Scotland
Ronnie at
dBASEdeveloper
dot co dot uk
www.dBASEdeveloper.co.uk
| |
| Jean-Pierre Martel 2006-04-06, 3:23 am |
| In article <#p5BJ#2VGHA.416@news-server>, buzon[NO]@evilfoto.es says...
>
> And Catalans are famous for their speed on not opening
> the walet... even slower that a country you will have
> visited earlier... I hope you by that time have get
> used to it.
I wonder from which part of the World the mouse pad given to each
dBCon2004 attendee and the 21-years-old bottles of Scotch Whisky to be
drawn at that gathering came from? ;-)
Jean-Pierre Martel, editor
The dBASE Developers Bulletin
Blue Star dBASE Plus Core Concepts Graduate
| |
| evilaro 2006-04-06, 9:24 am |
|
> I wonder from which part of the World the mouse pad given to each
> dBCon2004 attendee and the 21-years-old bottles of Scotch Whisky to be
> drawn at that gathering came from? ;-)
Okay okay..... Jean Pierre..... I get your point ...I very well remember it.
dBASE members are extremelly esplendid regardless of nationality.
But ...Catalans.... YOU will have to como here, to understand the situation.
You have been advised, I am one of them ;)
Emilio
| |
| Jean-Pierre Martel 2006-04-06, 11:24 am |
| In article <jZZ8wVYWGHA.448@news-server>, buzon[NO]@evilfoto.es says...
>
> But ...Catalans.... YOU will have to come here,
> to understand the situation.
Yes. I will.
> You have been advised, I am one of them ;)
Point noted. Thanks.
Jean-Pierre Martel, editor
The dBASE Developers Bulletin
Blue Star dBASE Plus Core Concepts Graduate
|
|
|
|
|