Datagrid Table - Allow editing a field only when an other field contains data

Matthias Rebbe matthias_livecode_150811 at m-r-d.de
Sat Feb 9 12:16:41 EST 2019


@Bob S 
Thanks for the link. Visited it and realised again that DG is very complex. ;)

@Zryip

Thank you very much.  

Works great.


Regards,

Matthias

Matthias Rebbe


> Am 09.02.2019 um 16:49 schrieb zryip theSlug via use-livecode <use-livecode at lists.runrev.com <mailto:use-livecode at lists.runrev.com>>:
> 
> Matthias,
> 
> A possible solution is to add an EditFieldText handler inside the datagrid
> group script.
> 
> *command* EditFieldText pTheFieldEditor, pTheIndex, pTheCol
> *end* EditFieldText
> 
> This message is invoked by the datagrid table prior to create the field
> editor allowing to edit the cell.
> Three parameters are passed :
> - the field editor reference: pTheFieldEditor
> - the index of the row: pTheIndex
> - the key (the column name): pTheCol
> 
> The trick consist to test the name of the column the user is trying to edit
> (for example col3 of the datagrid) :
> 
> *if* (pTheCol is "Col3") *then*
> 
> 
> and then  get the content of the cell of another column by using the
> GetDataOfIndex
> function:
> 
> *put* GetDataOfIndex(pTheIndex, "Col2") into tTheValueToTest
> 
> 
> If you want to allow the edition of the cell, then give a chance to the
> EditFieldText  to reach the datagrid library
> 
> pass EditFieldText
> 
> if not, then simply not send it
> 
> And don't forget to pass the command for others columns of the datagrid.
> 
> 
> Here is a final handler applying the recipe for a "col3" based of the
> content of "col2". If the cell contains "yes" in col2 then the user is
> allowed to edit the content of the cell in col3, if not the cell remains
> locked. You can change "yes" for any value or change the test for checking
> if the cel in "col2"l is empty or not
> 
> 
> command* EditFieldText pTheFieldEditor, pTheIndex, pTheCol
>   if (pTheCol is "Col3")
> then     put* GetDataOfIndex(pTheIndex, "Col2") into tTheValueToTest
>     *if* (tTheValueToTest is "yes")
> *then**        pass* EditFieldText
>     *end*
> *if*
> *  else**   pass* EditFieldText
>  *end*
> *if**end* EditFieldText
> 
> On Fri, Feb 8, 2019 at 10:22 PM Bob Sneidar via use-livecode <
> use-livecode at lists.runrev.com <mailto:use-livecode at lists.runrev.com>> wrote:
> 
>> Check the datagrid library.
>> http://lessons.livecode.com/m/datagrid/l/7344-data-grid-api <http://lessons.livecode.com/m/datagrid/l/7344-data-grid-api>
>> 
>> I believe there is a message sent when a field is opened for editing.
>> 
>> Bob S
>> 
>> 
>> 
>>> On Feb 8, 2019, at 11:51 , Matthias Rebbe via use-livecode <
>> use-livecode at lists.runrev.com> wrote:
>>> 
>>> Hi,
>>> 
>>> in a project i need the  possibility to allow editing a datagrid table
>> field only if an other field in the same row contains a value.
>>> Is this possible? Any suggestions?
>>> 
>>> Regards,
>>> 
>>> Matthias
>> 
>> 
>> _______________________________________________
>> use-livecode mailing list
>> use-livecode at lists.runrev.com
>> Please visit this url to subscribe, unsubscribe and manage your
>> subscription preferences:
>> http://lists.runrev.com/mailman/listinfo/use-livecode
>> 
> 
> 
> -- 
> Zryip TheSlug
> http://www.aslugontheroad.com <http://www.aslugontheroad.com/>
> _______________________________________________
> use-livecode mailing list
> use-livecode at lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode




More information about the use-livecode mailing list