On 06/05/2012 05:24 PM, Simon Cropper wrote:
> On 06/06/12 10:10, Paul McNett wrote:
>> On 6/5/12 4:49 PM, Simon Cropper wrote:
>>> Well I'm here. I am willing to be shown...
>>>
>>> So, I will throw up an apparently simple challenge. John, show me how I
>>> can open a simple sqlite table and present the data in a window/frame in
>>> an editable grid. Don't worry about the fluff, just the basic bones. The
>>> code should be able to be pointed at any sqlite table. In other words
>>> the grid is created and populated on the fly. In VFP parlance an
>>> editable "browse" window that supposedly could be pointed at any
>>> database table.
>> Here's a single script that creates the database, a bare-bones bizobj, and a
>> bare-bones UI. I hope this gets you started!
>>
>> http://paulmcnett.com/test_grid_editable_sqlite.py
>>
>> Paul
>> _______________________________________________
>> 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]
> Hi Paul,
>
> Considering the bulk of this script is involved with creating a table
> with data that is quite a small amount of code.
>
> The code does however implies a knowledge of the underlying table
> structure. Is it possible to extract the structural elements of a table,
> like the field names, field type, etc so a grid could be created on the fly?
>
> The pseudo code would be something like...
>
> 1. connect to table
> 3. work out number of fields (F#)
> 4. create a grid with same number of columns
> 5. populate said grid
>
Dabo has a method "browse"  (like in VFP) that will accept any dataset.

Read below:

def browse(dataSource, parent=None, keyCaption=None, includeFields=None,
         colOrder=None, colWidths=None, colTypes=None, autoSizeCols=True):
     """
     Given a data source, a form with a grid containing the data
     is created and displayed. If the source is a Dabo cursor object,
     its getDataSet() method will be called to extract the data.

     If parent is passed, the form isn't created, and the browsegrid
     becomes a child of parent instead.

     The columns will be taken from the first record of the dataset,    
with each
     column header caption being set to the field name, unless    the 
optional
     keyCaption parameter is passed. This parameter is a 1:1 dict containing
     the data set keys as its keys, and the desired caption as the
     corresponding value.

     If the includeFields parameter is a sequence, the only columns 
added will
     be the fieldnames included in the includeFields sequence. If the
     includeFields    parameter is None, all fields will be added to the 
grid.

     The columns will be in the order returned by ds.keys(), unless the
     optional colOrder parameter is passed. Like the keyCaption property,
     this is a 1:1 dict containing key:order.
     """


So your job is to learn how to make a connection to the database.  But 
first you need to insure the setup is right - many newbies run into 
trouble when they setup.

Johnf
_______________________________________________
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]

Reply via email to