행 상태 선택 및 색상좋아, 나는 이것을 작동시키기 위해 다양한 것을 시도했지만 지금까지 내가 가진 것은 기능적으로 사용할 수 있는 스크립트가 아닙니다. 삭제 스크립트는 훌륭하게 작동하지만 행 상태 스크립트가 작동하는 동안 원하는 방식으로 제대로 작동하지 않으며 약간 정리할 수 있는 방법이 있기를 바랍니다.
dt << New Column ( "Row State 1",
Row State,
Set Formula ( If( :Alarm ID == "'00000D06", Color State(70))),
);
dt << New Column ( "Row State 2",
Row State,
Set Formula ( If( :Alarm ID == ("'000000B2"| "'000000BE"| "'0000013C"| "'0000013D"),
Color State(6))),
);
dt << New Column ( "Row State 3",
Row State,
Set Formula ( If( :Alarm ID == ("'0000000E"| "'00000144"| "'0000000A"| "'00000021"|
"'00000025"| "'00000027"| "'000000E9"| "'00000145"| "'000001E1"| "'00000F7C"),
Color State(1))),
);
dt << New Column ( "Row State 4",
Row State,
Set Formula ( If( :Alarm ID == "'00000E6E", Color State(38))),
);
dt << New Column ( "Row State 5",
Row State,
Set Formula ( If( :Alarm ID == ("'00000D3B"| "'00000230"| "'00000D42"), Color State(73))),
);
dt << New Column ( "Row State 6",
Row State,
Set Formula ( If( :Alarm ID == ("'0000003B"| "'00000072"| "'00000E8C"), Color State(37))),
);
dt << New Column ( "Row State 7",
Row State,
Set Formula ( If( :Alarm ID == "'00000DB6", Color State(78))),
);
dt << New Column ( "Row State 8",
Row State,
Set Formula ( If( :Alarm ID == "'00000E99", Color State(75))),
);
dt << New Column ( "Row State 9",
Row State,
Set Formula ( If( :Alarm ID == ("'00000E68"| "'00000E71"| "'00000E72"| "'00000E9A"),
Color State(72))),
);
dt << New Column ( "Row State 10",
Row State,
Set Formula ( If( :Alarm ID == ("'0000004E"| "'0000005C"| "'0000011C"| "'00000143"|
"'00000148"| "'000001D9"| "'00000DE9"| "'00000E41"), Color State(12))),
);
dt << New Column ( "Row State 11",
Row State,
Set Formula ( If( :Alarm ID == "'00000D2F", Color State(19))),
);
dt << New Column ( "Row State 12",
Row State,
Set Formula ( If( :Alarm ID == "'00000D2D", Color State(28))),
);
기본적으로 Alarm ID 열에서 특정 값을 포함하는 행을 선택하고 행 상태를 선택한 색상으로 설정합니다. 내가 원하는 것은 행 상태를 설정하고 행 상태의 색상으로 행을 강조 표시하는 것입니다. 아마도 모든 행 상태가 설정된 후 추가로 그렇게 할 수 있습니다.
이것이 하는 일은 행 상태를 생성하지만 적용하지는 않습니다. 수동으로 적용해야 합니다. 또한 각 행에 대한 개별 행 상태를 생성하므로 빠르게 복잡해집니다. else를 사용하여 다음을 수행할 수 있을 것 같습니다. 적어도 존재하지 않는 줄을 제거하면 도움이 될 것입니다. 또한 여러 옵션이 있는 줄이 실제로 작동하지 않는 것 같습니다. 코드당 한 줄을 만들 필요가 없도록 작동하도록 할 수 있기를 바랐습니다.
누군가가 나를 도와줄 수 있기를 바랍니다. 시간이 있을 때 여전히 플러그를 꽂고 있습니다. 감사합니다!
Re: 행 상태 선택 및 색상 지정이것은 아름답게 작동합니다. 감사합니다! 이 시스템의 장점 중 하나(때로는 저주이기도 함)는 동일한 문제를 해결하는 여러 가지 방법이 있다는 것입니다. 다음은 상당히 도전적일 것입니다. 아마도 다음 주에 해결하려고 노력할 것입니다. (아니면 매우 간단할 수도 있고 아직 모르겠습니다!)Re: 행 상태 선택 및 색상 지정이것이 당신에게 도움이 될 것이라고 생각합니다.이것은 이미 색상 상태가 없고 항목이 겹치지 않는다고 가정합니다.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
color_aa = associative array(
{
// list of values are the first item, color state is the second in each list.
{{12, 13, 16}, 3},
{{14, 15}, 4},
{{17}, 5}
}
);
dt << Select Rows([1, 5, 9]);
rs = dt << Get Row States;
for(values = color_aa << First, !isempty(values), values = color_aa << Next(values),
rows = dt << Get Rows Where(Contains(values, :age));
color = color_aa[values];
rs[rows] = rs[rows] + 2^8*color;
);
dt << Set Row States(rs);
Re: 행 상태 선택 및 색상 지정선택 사항에 따라 각 행의 색상 상태를 변경하려는 경우 아래 부분 스크립트는 변경하는 데 사용할 구조에 대한 것입니다.
Names Default To Here( 1 );
dt = Current Data Table();
For( i = 1, i <= N Rows( dt ), i++,
If(
N Rows( Loc( {"'00000D06"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 70 ),
N Rows( Loc( {"'000000B2", "'000000BE", "'0000013C", "'0000013D"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 6 ),
N Rows(
Loc(
{"'0000000E", "'00000144", "'0000000A", "'00000021", "'00000025", "'00000027", "'000000E9", "'00000145", "'000001E1", "'00000F7C"},
:Alarm ID[i]
)
) > 0, Row State( i ) = Color State( 1 ),
N Rows( Loc( {"'00000E6E"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 38 ),
N Rows( Loc( {"'00000D3B", "'00000230", "'00000D42"}, :Alarm ID[i] ) ) > 0, Row State( i ) = Color State( 73 )
)
);Re: 행 상태 선택 및 색상 지정분명히 내 공식도 작동하지 않습니다 ^.^
간단히 말해 X 값이 한 가지 색상으로 강조 표시된 행을 원합니다.
Y 및 Z 값이 다른 색상으로 강조 표시된 행
등...
특정 색상은 이미 스크립트에 있습니다. 분명히 | 또는 논쟁은 그것들을 선택하는 문제입니다. 나는 그것을 표현하는 올바른 방법이 확실하지 않습니다.
Re: 행 상태 선택 및 색상 지정귀하의 질문을 올바르게 이해하지 못할 수 있습니다.그러나 여기에 내 최선의 추측이 있습니다.먼저, 나는 당신의 공식을 작동시키려고 한 적이 없습니다. "something" == ("stuff"|"something")을 수행하고 그것이 참으로 평가되도록 할 수 없습니다.적어도 내가 아는 한.나는 당신이 하려고 하는 것의 예를 만들었지만, 나는 멀리 떨어져 있을 수 있습니다.
Names default to here(1);
dt = open("$SAMPLE_DATA\Big Class.jmp");
// this doesn't work
dt << New Column("Test", formula(:age == (12 | 14 | 16)));
//this should
values = {12, 14, 16};
rows = dt << Get Rows Where(Contains(values, :age));
//assuming they don't have color
dt << Select Rows([1, 5, 9]);
wait(1);
rs = dt << Get Row States;
//2^8*3 = color state(3) = red
rs[rows] = rs[rows] + 2^8*3;
dt << Set Row States(rs);