Simple binding questions - cocoa

I am trying a simple application which is like this-
View:
A table view showing count of entity 1 in first column and count of entity 2 in second column. Here each row specifies count of different entities at a particular date.
A text field showing- total count of entity 1 multiplied by 35.
A text field showing- sum of count of entities in both the columns.
eg.
(entity1) (entity2)
<2> <3>
<4> <2>
<5> <7>
requirement 1: text field specified in
pt. 2 should show - 385 ie. (11 * 35)
requirement 2: text field specified in
pt. 3 should show - 23 ie. (11 + 12)
Model:
An object with two properties:
int entity1Count
int entity2Count
I am using an array controller object to show data in table view.
My question is -
Can I implement my requirements via
bindings in IB? If yes then how?
Thanks,
Miraaj

I am able to implement requirement 1, via bindings in IB using NSNumberFormatter and its multiplier property :)
but I am still unable to implement requirement 2 :(
Any suggestion ?
Thanks,
Miraaj

Related

SUMIF with date range for specific column

I've been trying to find an answer for this, but haven't succeeded - I need to sum a column for a specified date range, as long as my rowname matches the reference sheet's column name.
i.e
Reference_Sheet
Date John Matt
07/01/19 1 2
07/02/19 1 2
07/03/19 2 1
07/04/19 1 1
07/05/19 3 3
07/06/19 1 2
07/07/19 1 1
07/08/19 5 9
07/09/19 9 2
Sheet1
A B
1 07/01
2 07/07
3 Week1
4 John 10
5 Matt 12
Have to work in google sheets, and I tried using SUMPRODUCT which told me I can't multiply texts and I tried SUMIFS which let me know I can't have different array arguments - failed efforts were similar to below,
=SUMIFS('Reference_Sheet'!B2:AO1000,'Reference_Sheet'!A1:AO1,"=A4",'Reference_Sheet'!A2:A1000,">=B1",'Reference_Sheet'!A2:A1000,"<=B2")
=SUMPRODUCT(('Reference_Sheet'!$A$2:$AO$1000)*('Reference_Sheet'!$A$2:$A$1000>=B$1)*('Reference_Sheet'!$A$2:$A$1000<=B$2)*('Reference_Sheet'!$A$1:$AO$1=$A4))
This might work:
=sumifs(indirect("Reference_Sheet!"&address(2,match(A4,Reference_Sheet!A$1:AO$1,0))&":"&address(100,match(A4,Reference_Sheet!A$1:AO$1,0))),Reference_Sheet!A$2:A$100,">="&B$1,Reference_Sheet!A$2:A$100,"<="&B$2)
But you'll need to specify how many rows down you need it to go. In my formula, it looks down till 100 rows.
To change the number of rows, you need to change the number in three places:
&address(100
Reference_Sheet!A$2:A$100," ... in two places
To briefly explain what is going on:
look for the person's name in row 1 using match
Use address and indirect to build the address of cells to add
and then sumIfs() based on dates.
alternative:
=SUMPRODUCT(QUERY(TRANSPOSE(QUERY($A:$D,
"where A >= date '"&TEXT(F$1, "yyyy-mm-dd")&"'
and A <= date '"&TEXT(F$2, "yyyy-mm-dd")&"'", 1)),
"where Col1 = '"&$E4&"'", 0))

PowerApps: Filter a Lookup Field Based on a Previous Field

I have two lists w/ the following details:
List 1: JobType1; Column: Title
List 2: JobType2; Columns: Title, JobType1 (lookup of Title column of List 1)
On List 3 (Request), I am trying to use PowerApps and I have two fields that are lookups of the two lists:
JobType1 - lookup field that uses the Title column of List 1
JobType2 - lookup field that uses the Title column of List 2
I am trying to filter JobType2 field in the form to display all values on the Title column on List 2 that matches the value of the JobType1 field in the form w/ the JobType1 column on List 2.
I tried using this formula but it does not work. Please help me.
Filter(Choices(IntMktg.Job_x0020_Type_x0020_2), Value in Filter('JobType1', IntMktg.Job_x0020_Type_x0020_1 = DataCardValueClient.Text).Title)
Combo box control doesn't display the result. It seems a bug. I tried it out with the 3 lists and created a form on JobRequest. Here is my formula and it works if you use a dropdown. while waiting for Combo box to be fixed, you can use dropdown instead of Combo box.
Filter(Choices(JobRequest.JobType2), Id in Filter([#JobType2], JobType1.Value = DataCardValue2.Selected.Value).ID)

XPages ratio between 2 column totals in view

I have a view with 2 columns. Both number types. I want to add a button to the page, which will calculate the ration between total of column 1 and total of column 2.
For example:
Column 1 | Column 2
5 | 5
10 | 10
4 | 3
3 | 4
It should be (5+10+4+3)/(5+10+3+4) = 1..
Thank you,
Florin
I would probably go into the view properties and turn on the totals for both those columns. Then in SSJS I'd get a NotesNavigator for that view and then create a NotesViewEntry object. Then I'd set that ViewEntry to the NotesNavigator.getLastEntry()... something like that. That entry should then have a columnValues() property. I THINK it would be something like:
var column1 = entry.getColumnValues()[1];
var column2 = entry.getColumnValues()[2];
Note: getColumnValues() is zero based and depending on the view design some columns might not be available to retrieve from getColumnValues().
Once you have you're 2 var's then you can do the math and do whatever with the result.
That's how I would approach it at least.
(I don't have an editor handy so sorry if some of the syntax is off)

Rdlc - calculate sum of columns and display total in a single cell conditionally

Here is the scenario, I have a dataset with fields Category, Country and NUM_SCHOOLS.
i created a column to populate the country names as columns. I created a row group to calculate the row column. In my current report Column headers(Country) Country1, Country2....so on are displayed and row headers(Category) A, B, C and D are displayed. Values is [Sum(Fields!NUM_SCHOOLS.Value)]. Everything is correctly displayed
I used pipe(|) symbol as the separator between the cells, i am not allowed to post images, i tried my best to explain. Please let me know if you need any information to help me.
Current Report:
Country1 Country2
A 10 | 12
B 5 | 6
C 5 | 7
D 11 | 15
Required report:
Country1 Country2
A 10 | 12
B 5 | 6
C 5 | 7
D 26
Only for D column, i want to add the numbers and display the value as a single value. (11+15=26), for other categories it should display in different country buckets.
Please help me out. Thanks in Advance!
Sum of more than One Columns Quantity of More than one dataset in rdlc.=Sum(Fields!QUANTITY.Value, "Tone")
+Sum(Fields!QUANTITY.Value, "Buffalo")
+Sum(Fields!QUANTITY.Value, "Cow")
Sorry to be the bearer of bad news, but I don't think that you can merge columns across column groups.
I think that the best option is to remove your column grouping and manually add in 7 columns for your receipt frequencies. You'd have to use a Sum with an Iif to get your values correctly, for instance in the far left column, something like:
=Sum(iif(fields!RECIEPT_FREQUENCY.Value="ANNUAL" ,Fields!val.Value,0))
then you could add a merged cell underneath and add the following expression
=Sum(iif(Fields!PART_COUNT.Value="D", Fields!val.Value,0),"DataSetName")
Alternatively, you could leave it as it is and enter the following expression in a total row at the bottom of your matrix. But you would have to do something expression based for the cell borders to give the illusion of it being merged..
=Sum(iif(Fields!PART_COUNT.Value="D"
And fields!RECIEPT_FREQUENCY.Value="BI-WEEKLY"
,Fields!val.Value,0),"DataSetName")

How to apply rowspan and colspan to cell in Dhtmlx Grid view

My dhtmlxgrid view looks like the below mentioned.Using Json data.
code desc Qtytype w1 w2
Part A Part A desc Demand 100 200
issued 150 100
stock 200 200
F/C 100 250
Part B Part B desc Demand 100 200
issued 200 100
stock 300 200
F/C 100 250
I want to apply the rowsapn and colspan cell level.Kindly anyone suggest how to apply span in the cell level to make the view aboved.Thanks in advance.
There are two ways
a) after data loading you can use js api to make necessary col and rowspans
grid.load("some.url", function(){
grid.setRowspan(1,0,4) //1 - id of row
grid.setRowspan(1,1,4) //1 - id of row
});
b) you can define rowspans directly in data, in case of xml it will be
<row id="1"><cell rowspan="4">Part A</cell>
as far as I know the similar syntax must be available for json, but it is buggy in current version (3.5) and works for xml only.
After Data loaded you can apply like this
dfGrid.forEachRow(function(id){
if((id)%4==0)
{
dfGrid.forEachCell(id,function(cellObj,ind){
if(ind <= 3){
dfGrid.setRowspan(id,ind,4);
}
});
}
});
4 denotes how many row you need to apply.
3 denotes how many coloumn rowspan should be applied.
Note -- Id should be starts from the multiple of 4. based on the no of row the value of id varied ex.3 means id should start with multiple of 3.
Thank you.

Resources