테이블 상자의 행 음영 블록<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />안녕,
나는 자연스럽게 각각 세 행의 블록으로 그룹화되는 많은 수의 행을 포함하는 테이블 상자를 가지고 있습니다(행 1-3은 하나의 화합물과 관련되고, 행 4-6은 다른 것과 관련되고, 행 7-9는 세 번째와 관련되기 때문입니다). , 등등).화합물 블록을 시각적으로 더 쉽게 구별할 수 있도록 행에 음영을 지정하고 싶습니다. 따라서 행 1~3을 음영 처리한 다음 행 4~6을 흰색으로 남겨두고 행 7~9를 음영 처리한 다음 행 10~12를 그대로 두겠습니다. 흰색 등. (한 번에 세 행의 음영 처리 요구 사항은 "<< 대체 행 음영 처리" 속성을 사용할 수 없음을 의미합니다.)
"<< 선택한 행 설정()" 속성을 사용하여 세 행의 모든 대체 블록을 미리 선택할 수 있지만, 사용자가 이후에 행 중 하나를 클릭하거나 선택/선택 취소하면 해당 색상 패턴이 손실됩니다. .따라서 "<< 행 변경 기능 설정" 속성 내에 동일한 속성을 적용했습니다. 따라서 사용자가 테이블의 아무 곳이나 클릭하면 음영이 즉시 다시 적용됩니다.나는 다음과 같이 끝납니다.
nameList = 반복({"A"}, 3) || 반복({"B"}, 3) || 반복({"C"}, 3) || 반복({"D"}, 3) || 반복({"E"}, 3) || 반복({"F"}, 3) || 반복({"G"}, 3) || 반복({"H"}, 3);
threeList = {1, 2, 3, 7, 8, 9, 13, 14, 15, 19, 20, 21};
tb = 테이블 상자(
문자열 열 Box("이름", nameList),
숫자 열 Box("첫 번째", index(1, 24)),
숫자 열 Box("두 번째", index(25, 48)),
숫자 열 Box("세 번째", index(49, 72)),
<< 선택한 행 색상 설정("청록색"),
<< 선택한 행 설정(3List),
<< 행 변경 기능 설정(tb << 선택한 행 설정(twoList)),
<< 스크롤 가능 설정(1),
<< 열 테두리 설정(1),
<< 밑줄 제목 설정(1)
);
new window("내 창", tb);
이것은 작동하지만 약간 복잡해 보입니다.누구든지 더 쉬운 방법을 제안할 수 있나요?
많은 감사를 드립니다.
Re: 테이블 상자의 행 음영 블록새 데이터 보기 사용에 대한 몇 가지 우려 사항을 해결하려면 다음을 수행하세요.
사용자 작업을 처리하기 위해 해야 할 일은 행 상태 처리기를 추가하는 것뿐입니다.변경 사항을 감지하고 문제를 프로그래밍 방식으로 해결할 수 있는 기능으로 분기합니다.이 경우와 같이 뷰가 정렬된 경우 셀 색상을 새 순서로 재설정할 수 있습니다.
에프 = 기능 ({ ㅏ } ,< 셀 색상 재설정 > ) ;
RS = dt << rowstate 핸들러 만들기 ( 에프 ) ;
Re: 테이블 상자의 행 음영 블록모두에게 감사드립니다. 모든 면에서 큰 도움이 되었습니다. 이제 원래 쿼리를 해결할 수 있을 정도로 문제가 해결되었으므로 문제가 해결되었음을 표시하겠습니다.
필요한 선택 사항이 포함된 테이블 상자를 생성한 후 "<< set selectablerows(0)" 속성을 설정하라는 Vince의 제안을 시도했지만 불행히도 이렇게 하면 실제로 적용되기 전에 선택 사항이 지워지는 것 같습니다.
eval(), 대체() 및 expr() 구성 조합의 구문에 항상 어려움이 있기 때문에 Jim의 스크립트 사본을 가져왔고, 적용할 작업 예제가 있으면 생활이 훨씬 쉬워집니다!작성 중인 보고서의 구조가 해당 출력 형식에 더 적합하기 때문에 실제로는 적어도 당분간은 Table Box를 사용할 예정입니다. 하지만 New Data Box 경로는 이전에 고려하지 않았던 것입니다. , 앞으로도 유용할 수 있습니다.
또한 개인 통신에서 사용자가 나중에 해당 열 중 하나를 기준으로 테이블 상자를 정렬하려고 시도할 때 내 솔루션에 미치는 영향을 고려해야 한다는 점을 지적했습니다(마우스 오른쪽 버튼을 클릭하면 쉽게 수행할 수 있음). .실제로 이 경우에는 문제가 되지 않습니다. 테이블 상자는 최종 보고서의 일부이므로 더 이상 정렬해도 아무런 쓸모가 없지만 요점은 잘 이해되었습니다.
마지막으로 "<< 행 변경 기능 설정()" 속성이 실제로는 그렇지 않다는 점을 언급했습니다. 일하다 "<< 선택된 행 설정()" 속성에 의해 하나 이상의 행이 명시적으로 선택되거나 "<< 선택 가능한 행 설정(1)" 속성이 속성 설정 목록에 포함되지 않은 경우.그것은 단지 작은 일이지만, 내가 하려는 일을 하기 전에 최소한 이들 중 하나가 필요하다는 것을 깨닫기 전까지는 나를 혼란스럽게 했습니다.
다시 한 번 모두에게 감사드립니다.
Re: 테이블 상자의 행 음영 블록이를 처리하는 방법은 New Data Box() 함수를 사용하고 Table Box()를 사용하지 않고 데이터 테이블을 사용하는 것입니다.이를 통해 셀 등에 색상을 지정하고 데이터 테이블의 모든 편집 기능을 최대한 활용할 수 있습니다.
내가 말하는 내용을 설명하는 스크립트는 다음과 같습니다.
이름의 기본값은 여기에 있습니다. ( 1 ) ;
dt = 열려 있는 ( "$SAMPLE_DATA/빅 클래스.jmp" , 보이지 않는 ) ;
// 3개 행의 그룹 선택
을 위한 ( 케이 = 1 , 케이 <= 삼 , 케이 ++,
을 위한 ( 나 = 케이 , 나 <= N 행 ( dt ) , 나 = 나 + 6 ,
행 상태 ( 나 ) = 선택된 상태 ( 1 )
)
) ;
목록 = 목록으로 ( dt << 선택한 행 가져오기 ) ;
dt << 선택 지우기 ;
// 모든 열을 반복하고 셀 색상을 설정합니다.
충돌하다 = dt << 열 이름 가져오기 ( "끈" ) ;
을 위한 ( 나 = 1 , 나 <= N개 품목 ( 충돌하다 ) , 나 ++,
평가 (
대리자 (
만료 (
열 ( dt , 충돌하다 [ 나 ] ) << 컬러 셀 ( { "빨간색" , _목록_ } )
) ,
만료 ( _목록_ ) , 목록
)
)
) ;
// 디스플레이 창 설정
뉴 = 새창 ( "표시하다" ,
V 목록 상자 (
결핵 = 텍스트 상자 ( "예시" ) ,
vlb = V 목록 상자 ()
)
) ;
NDB = dt << 새 데이터 상자 () ;
vlb << 추가 ( NDB ) ;
NDB << 측면 패널 닫기 ( 1 ) ;
결핵 << 글꼴 크기 설정 ( 20 ) ;
다음과 같은 디스플레이 창을 생성합니다

Re: 테이블 상자의 행 음영 블록이런 일을 할 수 있습니다.
지수 = 1 :: 99 ;
새창 ( "창문" ,TB = 테이블박스 ( 번호ColBox ( "열" , 색인)));
n= 삼 ; //이를 그룹 번호로 변경할 수 있습니다.
행 = 위치 ( 모드 ( 바닥 ((색인- 1 )/N), 2 ) ); //n번의 버스트 그룹을 교대로 제공합니다.
TB << 선택한 행 설정 (행);
도움이 되었기를 바랍니다.건배.
*편집* 이것이 아마도 당신이 요청한 부분이 아니라는 것을 깨달았습니다.죄송합니다.
행을 선택한 다음 선택 불가능하게 만들 수 있나요?
tb << 선택 가능한 행 설정(0);