import : 많은 추가 col 's. 사용자가 원하는 것을 선택합니까?좋은 아침,
그래서 나는 jsl에 익숙하지 않고 이것을 알아 내려고 노력하고있다. 우리 서버에서 가져온 데이터 세트에는 1 열의 추가 열이 있습니다. 종종 빈 열도 있습니다. 사용자가 선택한 대화 상자를 사용하여 대부분의 스크립트를 시작하여 원하는 열을 선택 / 추가 / 삭제하고 기본 순서로 다시 정렬 할 수 있기를 희망합니다. 어떤 도움?
col이 다음과 같다고 가정 해 보겠습니다.
| 안부# | ColName | |
| 1 | date_export | |
| 2 | 상품 유형 | |
| 삼 | part_Number | |
| 4 | 레시피 | |
| 5 | date_run | |
| 6 | 측정 _ 유형 | |
| 7 | 값 | |
| 8 | 수단 | |
| 9 | 목표 | |
그렇기 때문에 이러한 콜레트 중 일부는 필요하지 않으며 인간 시각 관점에서 보면 모두 잘못되어 있습니다. 이상적으로, 스크립트를 자동 선택하여 다음과 같이 주문하고 싶습니다.
Col # : 2, 8, 4, 5, 6, 7, 9
원하는 경우 사용자가 다시 포맷 된 출력에 추가 할 다른 열을 선택할 수있는 사용자 대화 상자가있을 수 있습니다.
어떻게 생각해?
재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?내가 당신의 질문을 이해한다고 가정하면 :
// Open Sample Data Table
dt = Open( "$SAMPLE_DATA\Air Traffic.jmp" );
// Define list of columns to delete
DelList = {"Carrier Code","Flight Number"};
// Delete Columns
dt << Delete Columns(DelList); 재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?굉장해! 열 이름의 미리 결정된 목록은 어떻습니까? 내 데이터 테이블처럼 수십 또는 여분의 열 (종종 비어 있지 않음)이 있습니다.
colname (crap1, crap2, crap3 ...)을 선택하십시오.
선택한 열 삭제
그런 다음 사용자가 손질 된 나머지를 선택할 수 있도록 하시겠습니까?
재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?다음은 데이터를 읽을 때 빈 열을 비우는 테이블 스크립트를 만드는 데 사용하는 코드입니다.
// add a table script that will remove empty columns
dt << Set Property( "Remove Empty Columns",
dt = Current Data Table();
lstToDelete = {};
For (i=1,i<=NCols(dt),i++,
col = Column(dt,i);
If (Col Number(col)==0,
InsertInto(lstToDelete,i)
)
);
If (NItems(lstToDelete)>0,
dt << Delete Columns(lstToDelete)
);
);재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?나는 원하는 것을 선택하고, 그것을 뒤집고, 원하지 않는 칼을 삭제하는 등, 많은 것을 좋아한다.
사전 선택을 실행하기위한 조언이 있습니까? 사용자 선택을 줄이기 위해 미리 지정된 열의 대량 '삭제'를 수행 할 수 있습니까?
불행히도, 필자의 데이터 파일에는 불필요한 것들에 대해 수십 개의 불필요한 열이 있습니다.
어쩌면 모든 'dt = open ()'의 시작 부분에 쓸 수있는 알려진 '불필요한 열'을 삭제할 수 있습니까?
재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
// Get Column Names
ColNames = dt << Get Column Names("String");
// Open a window for user selection
NW1 = New Window("User Selection",
<< Modal,
V List Box(
Lineup Box(
Lb1 = List Box(ColNames);
)
),
H List Box(
Button Box("OK",
// Unload User Inputs
Rb1Val = Lb1 << Get Selected();
)
)
);
// Select Columns
for(i = 1, i <= N Items(ColNames), i ++,
If(Contains(Rb1Val,ColNames[i]),
Col = Column(dt,i); ;
Col << Set Selected(1);
);
);
// Delete Unwanted Columns
dt << Invert Column Selection ;
dt << Delete Columns ;재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?다행히도 외국 파일 형식의 특성은 안정적입니다. 가져 오기를 위해 Open () 함수에이 인수를 사용해보십시오.
Select Columns( "col", ... )
열 때 데이터 참조를 변수 (예 : dt)에 저장했다고 가정하면이 패턴을 사용하여 반복적으로 열을 정렬 할 수 있습니다.
dt << Go to Column( col ref ) // select column to move
<< Move Selected Columns( ... ) // move column to new location
<< Clear Column Selection; //
이 회신이 당신을 당신의 길로 인도하기를 바랍니다.
재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?마크,
좋은 질문입니다. 프런트 엔드에서 쿼리를 스크립팅 할 수 있으면 좋겠지 만 회사의 DB는 잠겨 있습니다. 우리는 요청을해야하고 불필요한 열과 불일치한 헤더 (35 열과 같은)가있는 평범한 Excel .csv 파일을 만듭니다. 읽기 전용 액세스 권한을 얻으려고 노력하고 있지만 다른 문제입니다.
재 : 가져 오기 : 여분의 칼이야. 사용자가 원하는 것을 선택합니까?소스 파일이 평평하거나 관계형입니까? 원본 파일 형식은 무엇입니까? 어떤 종류의 파일을 가져오고 있습니까? 전체 파일을 가져와야합니까?
결과에 대해 데이터베이스를 쿼리 할 수 있습니까? 그렇다면 원하는 것을 제공하는 쿼리를 작성할 수 있습니다.