David Huynh-2 wrote:
> 
> Fruch wrote:
>>
>> David Huynh-2 wrote:
>>   
>>> Fruch wrote:
>>>     
>>>> David Huynh-2 wrote:
>>>>   
>>>>       
>>>>> Try this
>>>>>
>>>>>     <table ex:content="!person" border="2">
>>>>>        <tr ex:content=".monthsLabels"><td
>>>>> ex:content="value"></td></tr>
>>>>>        <tr ex:content=".workload"><td ex:content="value"></td></tr>
>>>>>     </table>
>>>>>
>>>>> David
>>>>>
>>>>> Fruch wrote:
>>>>>     
>>>>>         
>>>>>> I have this item:
>>>>>>
>>>>>> {        type :                                  "Workload",
>>>>>>                  label :                                 "work1",
>>>>>>                  person :                                "Israel 
>>>>>> Fruchter",
>>>>>>                  onProject :                             "iQ2/MySky2",
>>>>>>                  monthsLabels :                  ["Dec 07", "Jan 08", 
>>>>>> "Feb 08"],
>>>>>>                  workload :                              ["0.5", "0.3", 
>>>>>> "0.4"]
>>>>>>          }
>>>>>>
>>>>>> I want to show inside "Israel Fruchter" len view "monthsLabels" and
>>>>>> "workload" as a table.
>>>>>>
>>>>>> I tried this:
>>>>>> <table ex:content="!person" border="2">
>>>>>>  <tr><td></td></tr>
>>>>>>  <tr><td></td></tr>
>>>>>> </table>
>>>>>>
>>>>>> but what I've got is:
>>>>>>
>>>>>> /---------------------------/
>>>>>> | Dec 07, Jan 08 and Feb 08 |
>>>>>> /---------------------------/
>>>>>> | 0.5, 0.3 and 0.4               |
>>>>>> /---------------------------/
>>>>>>
>>>>>> any one got an idea how to show it like that:
>>>>>>
>>>>>> /--------------------------/
>>>>>> | Dec 07 | Jan 08 | Feb 08 |
>>>>>> /--------/--------/--------/
>>>>>> |    0.5   |   0.3    |   0.4   |
>>>>>> /--------------------------/
>>>>>>   
>>>>>>       
>>>>>>           
>>>>> _______________________________________________
>>>>> General mailing list
>>>>> [email protected]
>>>>> http://simile.mit.edu/mailman/listinfo/general
>>>>>
>>>>>
>>>>>     
>>>>>         
>>>> Now I need something a bit more complex...
>>>> I have those two items
>>>> {  type :                                  "Workload",
>>>>                    label :                                 "work1",
>>>>                    person :                                "Israel 
>>>> Fruchter",
>>>>                    onProject :                             "iQ2/MySky2",
>>>>                    monthsLabels :                  ["Dec 07", "Jan 08", 
>>>> "Feb 08"],
>>>>                    workload :                              ["0.5", "0.3", 
>>>> "0.4"]
>>>>            },
>>>>            {       type :                                  "Workload",
>>>>                    label :                                 "work2",
>>>>                    person :                                "Israel 
>>>> Fruchter",
>>>>                    onProject :                             "xApp",
>>>>                    monthsLabels :                  ["Dec 07", "Jan 08", 
>>>> "Feb 08"],
>>>>                    workload :                              ["0.5", "0.6", 
>>>> "0.8"]
>>>>            }
>>>> and I want to show the a similar table like that: (summing the colums,
>>>> and
>>>> showing the .onProject)
>>>>
>>>> /--------------------------------------/
>>>> | Project     | Dec 07 | Jan 08 | Feb 08 |
>>>> /-----------/--------/--------/--------/
>>>> |iQ2/MySky2|    0.5   |   0.3    |   0.4   |
>>>> /--------------------------------------/
>>>> |xApp         |    0.5   |   0.6    |   0.8   |
>>>> /--------------------------------------/
>>>> |Total         |   1.0    |   0.9    |   1.2   |
>>>> /--------------------------------------/
>>>>   
>>>>       
>>> Are the monthsLabels arrays all the same?
>>>
>>> David
>>>
>>> _______________________________________________
>>> General mailing list
>>> [email protected]
>>> http://simile.mit.edu/mailman/listinfo/general
>>>
>>>
>>>     
>>
>> yes, that was my idea... (it will complicate things if they aren't)
>>   
> 
> This is not trivial... You might have to change the way you model the 
> data. But if you want to keep the data model, I'd try something like 
> this inside the lens template
> 
>     <table>
>        <tbody>
>           <tr ex:content="!person.monthsLabels"><td 
> ex:content="value"></td></tr>
>        </tbody>
>        <tbody ex:content="!person">
>           <tr ex:content="array-concat(.onProject, [EMAIL PROTECTED])"><td 
> ex:content="value"></td></tr>
>        </tbody>
>        <tbody>
>           <tr ex:content="array-concat('Total', array-add(!person, 
> [EMAIL PROTECTED]))"><td ex:content="value"></td></tr>
>        </tbody>
>     </table>
> 
> in addition to this script inside <head> ... </head> after exhibit-api.js:
> 
>     <script>
>         Exhibit.Functions["array-concat"] = {
>             f: function(args) {
>                 var a = [];
>                 var valueType = null;
>                 
>                 if (args.length > 0) {
>                     var valueType = args[0].valueType;
>                     for (var i = 0; i < args.length; i++) {
>                         var arg = args[i];
>                         if (arg.size > 0) {
>                             if (valueType == null) {
>                                 valueType = arg.valueType;
>                             }
>                             arg.forEachValue(function (v) {
>                                 a.push(v);
>                             });
>                         }
>                     }
>                 }
>                 return new Exhibit.Expression._Collection(a, valueType 
> != null ? valueType : "text");
>             }
>         };
>         
>         Exhibit.Controls["array-add"] = {
>             f: function(
>                 args,
>                 roots,
>                 rootValueTypes,
>                 defaultRootName,
>                 database
>             ) {
>                 var collection = args[0].evaluate(roots, rootValueTypes, 
> defaultRootName, database);
>                 
>                 var oldValue = roots["value"];
>                 var oldValueType = rootValueTypes["value"];
>                 rootValueTypes["value"] = collection.valueType;
>                 
>                 var results = [];
>                 var valueType = "text";
>                 
>                 collection.forEachValue(function(element) {
>                     roots["value"] = element;
>                     
>                     var collection2 = args[1].evaluate(roots, 
> rootValueTypes, defaultRootName, database);
>                     valueType = collection2.valueType;
>                     
>                     var i = 0;
>                     collection2.forEachValue(function(v) {
>                         if (i < results.length) {
>                             results.push(v);
>                         } else {
>                             results[i] += v;
>                         }
>                         i++;
>                     });
>                 });
>                 
>                 roots["value"] = oldValue;
>                 rootValueTypes["value"] = oldValueType;
>                 
>                 return new Exhibit.Expression._Collection(results, 
> valueType);
>             }
>         };
>     </script>
> 
> David
> _______________________________________________
> General mailing list
> [email protected]
> http://simile.mit.edu/mailman/listinfo/general
> 
> 

it almost working: (the end result looked like that)

        Dec 07  Jan 08  Feb 08
iQ2/MySky2      0.5     0.3     0.4
xApp    0.5     0.3     0.4
Total   undefined0.5    undefined0.3    undefined0.4    0.5     0.3     0.4

You mentioned changing the data model, can you think of a better way to
model it ?
I need for each person the his work time in % for each month, and I need to
be able to sum those values per month or even year (for each person, and for
each project the time is accounted for)

I had trouble finding a good model for it (even in a SQL Database)
-- 
View this message in context: 
http://www.nabble.com/Putting-a-list-property-in-a-table-tp14373944p14473152.html
Sent from the SIMILE - General mailing list archive at Nabble.com.

_______________________________________________
General mailing list
[email protected]
http://simile.mit.edu/mailman/listinfo/general

Reply via email to