목록에서 여러 테이블 조인여기에 스크립트를 사용하여 모든 폴더에서 테이블 목록을 얻을 수 있습니다. 내가 만든 목록에서 테이블을 조인 할 수 싶습니다. 사용자가 조인에 사용할 열의 사전 설정으로 조인 할 수있는 테이블을 선택할 수 있기를 바랍니다.
경로 = 디렉토리 선택 ( "Analytics 데이터 디렉토리 선택");
Files_All = 디렉토리의 파일 (경로).
NFS_All = N 항목 (Files_All);
파일 = {};
// 텍스트가 아닌 파일을 제거합니다.
(f = 1, f (Contains (Files_All [f], ". txt")> 0,
삽입 (Files, Files_All [f]);
);
);
// 개별 파일을 선택하라는 메시지를 표시합니다.
List_NPr = {};
List_Pr = 파일;
PromptF = 새 창 ( "파일 선택", "모달,
V 목록 상자 (
텍스트 상자 ( "원하는 파일 선택"),
텍스트 상자 ( ""),
H 목록 상자 (
V 목록 상자 (
텍스트 상자 ( "처리 할 파일 :"),
Pr = 목록 상자 (List_Pr, 너비 (350), 줄 (30)),
단추 상자 ( ">>>> 선택 항목 제거 >>>>",
List_NPr = concat (List_NPr, Pr << Get Selected);
List_Pr = remove (List_Pr, Pr << 선택된 색인 얻기);
Pr << 항목 설정 (List_Pr);
NPr << 항목 설정 (List_NPr);
)),
텍스트 상자 ( ""),
V 목록 상자 (
텍스트 상자 ( "제외 된 파일 :"),
NPr = 목록 상자 (List_NPr, 너비 (350), 줄 (30)),
단추 상자 ( "<<<< 선택한 항목 추가 <<<<",
List_Pr = concat (List_Pr, NPr << Get Selected);
List_NPr = 제거 (List_NPr, NPr << 선택된 색인 가져 오기);
Pr << 항목 설정 (List_Pr);
NPr << 항목 설정 (List_NPr);
))))));
대기 (0);
파일 = List_Pr;
NFS = N 항목 (파일);
);
다시 : 목록에서 여러 테이블 가입그래서 당신의 질문은 무엇입니까? 스크립트의 마지막 줄에 불필요한 오른쪽 괄호가 있고 최종 목록을 캡처하지 않습니다.
JSL이 수정되었습니다. FList는 사용자가 선택한 파일을 포함합니다. 마지막 줄에는 최종 선택 항목이 표시됩니다. 이제 조인을 스크립팅해야합니다.
Path = Pick Directory( "Select Analytics Data Directory" );
Files_All = Files In Directory( Path );
NFS_All = N Items( Files_All );
Files = {};
//Remove non-text files
For( f = 1, f < NFS_All + 1, f++,
If( Contains( Files_All[f], ".txt" ) > 0,
Insert Into( Files, Files_All[f] )
)
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window( "File Selection",
<<MODAL>>>> Remove Selected >>>>",
List_NPr = Concat( List_NPr, Pr << Get Selected );
List_Pr = Remove( List_Pr, Pr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
),
Text Box( " " ),
V List Box(
Text Box( "Files Excluded:" ),
NPr = List Box( List_NPr, width( 350 ), nlines( 30 ) ),
Button Box( "<<<< Add Selected <<<<",
List_Pr = Concat( List_Pr, NPr << Get Selected );
List_NPr = Remove( List_NPr, NPr << Get Selected Indices );
Pr << Set Items( List_Pr );
NPr << Set Items( List_NPr );
FList = List_Pr;
)
)
)
)
);
Wait( 0 );
Files = List_Pr;
NFS = N Items( Files );
show(FList);</MODAL>다시 : 목록에서 여러 테이블 가입고맙습니다!
나는 실제로 그것을 알아 냈다.
만약 누군가 그것을 원한다면 여기 내 호언이있다.
Clear Globals();
Clear Symbols();
Main Menu("Minimize All");
//Set text export preferences
//Preferences(Export Settings(Export Table Headers));
//Preferences(Export Settings(End of Field(Tab)));
//Initial prompt to select split level
Prompt = New Window ("Output Selection", <<MODAL> 0,
Insert Into(Files,Files_All[f]);
);
);
//Prompt to select individual files
List_NPr = {};
List_Pr = Files;
PromptF = New Window("File Selection", << Modal,
V List Box(
Text Box ("Select Desired Files"),
Text Box(" "),
H List Box(
V List Box(
Text Box("Files to join:"),
Pr = List Box(List_Pr, width(350), nlines(30)),
Button Box(">>>> Remove Selected >>>>",
List_NPr = concat(List_NPr, Pr << Get Selected);
List_Pr = remove(List_Pr, Pr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)),
Text Box(" "),
V List Box(
Text Box("Files Excluded:"),
NPr = List Box(List_NPr, width(350), nlines(30)),
Button Box("<<<< Add Selected <<<<",
List_Pr = concat(List_Pr, NPr << Get Selected);
List_NPr = remove(List_NPr, NPr << Get Selected Indices);
Pr << Set Items(List_Pr);
NPr << Set Items(List_NPr);
)))));
wait(0);
Files = List_Pr;
NFS = N Items(Files);
// table that others join
Fullpath = Path||Files[1];
DT_old = Open( Fullpath,private);
DT_old << Minimize Window;
//loop to join other tables
For (a=2, a < NFS+1, a++,
Fullpath = Path||Files[a];
DT_new = Open( Fullpath,private);
DT_new << Minimize Window;
join_name = "Limits" || char(a);
dt_old << join( with(data table(dt_new)),
Merge Same Name Columns,
By Matching Columns(
:A = :A,
:B = :B,
:C = :C,
),
Drop multiples( 1, 0 ),
Name( "Include non-matches" )(1, 1),
Output Table( join_name )
);
close(dt_old, nosave);
dt_old = data table(join_name);
);
</MODAL>다시 : 목록에서 여러 테이블 가입귀하의 솔루션을 "솔루션"으로 표시하십시오. 나는 또한 이안을 해결책으로 표시 할 것이다.