선택한 데이터 테이블 내용을 지우는 JSL 코드달성하기가 매우 쉬워야 한다고 생각하는 작업을 수행하려고 하는데 이를 허용하는 JSL 명령을 찾을 수 없습니다.기본적으로 다양한 열과 행을 선택한 후 전체 열이나 행이 아닌 선택한 셀의 내용을 삭제하고 싶습니다.이 작업을 수동으로 수행할 수 있지만 JSL 명령을 찾을 수 없습니다.어떤 제안이라도 감사하겠습니다.
예를 들어,
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Select Rows( [5, 7, 8, 10] );
Column ( "name" ) << Set Selected ( 1 );
Column ( "sex" ) << Set Selected ( 1 );
이제 선택한 셀의 내용을 삭제하십시오.
감사해요.
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />여기에는 운영 체제 표준 간에 차이가 있습니다.윈도우 사용 편집->지우기 그리고 맥은 편집->삭제 .
따라서 스크립트를 강력하게 만들려면 다음을 사용해야 합니다.
If(Host is( Windows ),
Main Menu( "Clear" ), //Windows
Main Menu( "Delete" ) //Mac
);
-제프
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드귀하의 제안에 감사드립니다.
여러 옵션을 볼 수 있어 좋습니다.MS에서 제안한 대로 호출할 수 있는 일반적인 명령이 있어야 한다고 생각했습니다(참고: 실제 명령은 메인 메뉴 ( "분명한" ) ;, 아니다 메인 메뉴 ( "삭제" ))
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드감사합니다! 특히 내 타이핑에서 더 적은 문자가 좋습니다. . .
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드좋은 기능 이안! 더 단순화하기 위해 Empty()를 사용하여 다른 데이터 유형을 개별적으로 처리하는 것을 피할 수 있습니다. 숫자 및 문자 열 모두에서 작동합니다.
For(c = 1, c <= N Items(selCols), c++, Column(dt, selCols[c])[selRows] = Empty());
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드간단하지만 잠재적으로 위험한 방법은 MainMenu()를 사용하여 삭제 명령 편집 메뉴. 활성 창에서 선택한 모든 항목을 삭제하기 때문에 위험합니다. 따라서 복잡한 스크립트에서는 명령이 실행될 때 맨 위에 표시될 창을 추적해야 합니다.
dt = Open("$SAMPLE_DATA/Big Class.jmp");
dt << Select Rows([5, 7, 8, 10]);
Column("name") << Set Selected(1);
Column("height") << Set Selected(1);
dt << Bring Window To Front;
Main Menu("Delete");
Re: 선택한 데이터 테이블 내용을 지우는 JSL 코드이 같은:
NamesDefaultToHere(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Set up a selection of cells
dt << Select Rows( [5, 7, 8, 10] );
Column (dt, "name" ) << Set Selected ( 1 );
Column (dt, "sex" ) << Set Selected ( 1 );
// Function to set currently selected cells to '.' or ""
clearSelectedCells =
Function({dt}, {Default Local},
selCols = dt << getSelectedColumns;
selRows = dt << getSelectedRows;
for(c=1, c<=NItems(selCols), c++,
dType = Column(dt, selCols[c]) << getDataType;
if (dType == "Numeric",
Column(dt, selCols[c])[selRows] = .
,
Column(dt, selCols[c])[selRows] = ""
);
);
);
// Use the function
clearSelectedCells(dt);