Paul McNett wrote:
> On 8/17/10 9:53 AM, Jim Byrnes wrote:
>> John Fabiani wrote:
>>> On Tuesday, August 17, 2010 08:45:14 am Jim Byrnes wrote:
>>>>> Most of the time the "NoneType" is saying the the object does not
>>>>> exist. I think it applies to your error message.
>>>>
>>>> OK, is there anyway to determine what object it is looking for?
>>>>
>>>>> If you are using the ClassDesigner I would do the following to play and
>>>>> learn a little more.
>>>>>
>>>>> I would add the dropdown to the form. Fillin the choices
>>>>> properties. Run the form. Use the dShell (control-d to open) and try
>>>>> accessing the value. by typing the following (the same is true with my
>>>>> form:
>>>>>
>>>>> self.RegID.Value #change the RegID to match what you used in RegID
>>>>
>>>> If I do this from dShell Value is correct and no error message is
>>>> displayed. If I run my program Value is correct but the error message
>>>> appears.
>>>>
>>>> The maddening thing about this is I based my code on the Pycon tutorial
>>>> I completed and which runs fine. I have opened the corresponding files
>>>> side by side in my editor and still can't see where I went wrong.
>>>>
>>>> Thanks for your efforts,
>>>
>>> This is a SWAG but if it works in dShell then maybe you just have the
>>> relative
>>> access wrong in the code. Try things like "self.RegID.Value",
>>> "self.Form.RegID.Value", or even "self.parent.RegID.Value" in the code.
>>> Normally, you find the correct relation by using dShell. So tell me what
>>> you
>>> typed in dShell to find the value.
>>
>> In the dShell if I type self.PwordsCategories.Value I get what was
>> selected in the dDropdownList and no Dabo error. The thing is when I run
>> my code I don't even have to get the Value, simply opening the
>> dDropddownList and selecting any item will trigger the error:
>>
>> Dabo Error Log: Tue Aug 17 11:39:35 2010: Could not bind to
>> 'categories.Category'
>> Reason: 'NoneType' object has no attribute 'Category'
>
> Sounds like you never called form.addBizobj("categories")
Is " form.addBizobj " necessary? I called it like this in as shown in
pwords-code.py:
## *!* ## Dabo Code ID: dForm-top
def afterInit(self):
self.requery()
def createBizobjs(self):
pwdsBizobj = self.Application.biz.PwdsBizobj(self.Connection)
self.addBizobj(pwdsBizobj)
#print 'TEST'
>
> In any case, the DataSource you assigned to the control ("categories")
> doesn't match
> up with the DataSources of any of the bizobjs assigned to the form.
>
> Paul
So that's what the error message means, it thinks that categories is a
control. That was not my intent and I can't figure out what i did wrong
to make it treat categories as a control.
The db is named "Passwords"
The table in the de is named "pwds"
The dDropdownList's RegID is "PwordsCategories"
It's Datasource = "categories"
It's Datafield = "Category"
Trying to figure out why it thinks categories is a control I loaded all
the files involved in this project into my text editor and did a search
of all buffers for "categories". It was found in 5 lines in 2 files.
PwdsBizobj.py:
def getCategories(self):
crs = self.getTempCursor()
crs.execute("""select distinct Category from pwds""")
ds = crs.getDataSet()
categories = [rec["Category"] for rec in ds]
return categories
pwords-code.py
## *!* ## Dabo Code ID: dDropdownList-dPanel
def afterInit(self):
pwordsBiz = self.Form.getBizobj('pwds')
categories = pwordsBiz.getCategories()
categories.insert(0, '<None>')
self.Choices = categories
Hopefully this is enough info for you to show me where I went wrong,
because I know once I get it figured out I am going to enjoy working
with Dabo.
Thanks, Jim
_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: http://leafe.com/archives/byMID/[email protected]