| Interstage Data Effector ユーザーズガイド |
目次
索引
![]()
|
| 付録F サンプルプログラム |
ジャーナルデータとマスタデータを連結条件に合わせて結合編集し、連結結果をファイルに出力します。
入力ジャーナルファイル (journal.csv)
"Kbn","Number","Code","Name","Val" "01","1000","AAA","ブロックA","1000" "01","1000","BBB","ブロックB","1200" "01","1000","CCC","ブロックC","800" "02","1000","AAA","ブロックA","500" "02","1000","BBB","ブロックB","200" "01","1001","AAA","ブロックA","100" "01","1001","BBB","ブロックB","500" "02","1001","AAA","ブロックA","5000" "02","1001","BBB","ブロックB","3200" "01","1002","AAA","ブロックA","1500" "01","1002","BBB","ブロックB","1000" "02","1002","AAA","ブロックA","1520" |
入力マスタファイル1 (master1.csv)
"Kcode","Kname" "01","設備" "02","事務" |
入力マスタファイル2 (master2.csv)
"Ncode","Nname" "1000","第一開発部" "1001","第二開発部" "1002","第三開発部" |
KbnとKcode、NumberとNcodeを連結照合して、それぞれKname、Nnameを取り出します。
以下にAPIを使用したプログラミング例を示します。
#include <stdio.h>
#include "libAsis.h"
/* 連結機能 サンプルプログラム */
int main()
{
/* ハンドル変数群 */
ASISHANDLE handle;
/* 作業用変数群 */
int status;
/* 入力パラメタ群 */
char *logFile;
char *envName;
char *envValue;
char *CharacterCode;
char *inFileType;
char *jnlFile;
char *mstFile;
char *listDef;
char *outFileType;
char *outputDef;
char *Jcondition;
char *outFile;
/* エラー用変数群 */
int errorLevel;
const char *Message;
/* 変数の初期化 */
handle = NULL;
/* 連結ハンドルの割当て */
logFile = "C:\\shunAsis\\sample\\Replace.log";
status = AsisAllocHandleReplace( &handle, logFile );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 数値演算式における空の扱いを指定 */
envName = ASIS_ENV_SubstituteZeroForEmpty;
envValue = "NO";
status = AsisSetEnvironment( handle, envName, envValue );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 連結条件などの指定 */
CharacterCode = "SHIFT-JIS";
inFileType = "CSV";
jnlFile = "Journal \"C:\\shunAsis\\sample\\journal.csv\"";
mstFile = "{Master1 \"C:\\shunAsis\\sample\\master1.csv\""
",Master2 \"C:\\shunAsis\\sample\\master2.csv\"}";
listDef = "{document(Journal){$Kbn Kbn,$Number Number,$Code Code,$Name Name,$Val Val}"
",document(Master1){$Kcode Kcode,$Kname Kname}"
",document(Master2){$Ncode Ncode,$Nname Nname}}";
outFileType = NULL;
outputDef = "{$Kbn,$Kname,$Number,$Nname,$Code,$Name,$Val}";
Jcondition = "{$Kbn==$Kcode,$Number==$Ncode}";
outFile = "C:\\shunAsis\\sample\\out.csv";
status = AsisInitReplace( handle, CharacterCode, inFileType,
jnlFile, mstFile, listDef,
outFileType, outputDef, NULL,
Jcondition, outFile, NULL, NULL, NULL );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 連結の実行 */
status = AsisExecuteReplace( handle );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
/* 連結ハンドルの解放 */
status = AsisFreeHandleReplace( handle );
if ( status != ASIS_SUCCESS ) {
goto ErrorEnd;
}
return 0;
ErrorEnd: /* エラーが発生した際のエラー処理 */
/* エラー情報の取得 */
status = AsisGetErrorLevel( handle, &errorLevel );
if ( status == ASIS_SUCCESS ) {
switch( errorLevel ) {
case ASIS_EL_WARNING:
printf( "エラーレベル : 警告\n");
break;
case ASIS_EL_ERR_DATA:
printf( "エラーレベル : データのエラー\n");
break;
case ASIS_EL_ERR_PARAMETER:
printf( "エラーレベル : パラメタのエラーまたは使用方法のエラー\n");
break;
case ASIS_EL_ERR_ENVIRONMENT:
printf( "エラーレベル : 実行環境のエラー\n");
break;
default:
printf( "エラーレベル取得エラー\n");
break;
}
}
else {
printf( "エラーレベル取得エラー : %d\n", status );
}
status = AsisGetMessageText( handle, &Message );
if ( status == ASIS_SUCCESS ) {
printf( "メッセージ : %s\n", Message );
}
else {
printf( "メッセージ取得エラー : %d\n", status );
}
/* 連結ハンドルの解放 */
if ( handle != NULL ) {
status = AsisFreeHandleReplace( handle );
if ( status != ASIS_SUCCESS ) {
printf( "ハンドル解放エラー : %d\n", status );
}
}
return 1;
} |
"Kbn","Kname","Number","Nname","Code","Name","Val" "01","設備","1000","第一開発部","AAA","ブロックA","1000" "01","設備","1000","第一開発部","BBB","ブロックB","1200" "01","設備","1000","第一開発部","CCC","ブロックC","800" "02","事務","1000","第一開発部","AAA","ブロックA","500" "02","事務","1000","第一開発部","BBB","ブロックB","200" "01","設備","1001","第二開発部","AAA","ブロックA","100" "01","設備","1001","第二開発部","BBB","ブロックB","500" "02","事務","1001","第二開発部","AAA","ブロックA","5000" "02","事務","1001","第二開発部","BBB","ブロックB","3200" "01","設備","1002","第三開発部","AAA","ブロックA","1500" "01","設備","1002","第三開発部","BBB","ブロックB","1000" "02","事務","1002","第三開発部","AAA","ブロックA","1520" |
目次
索引
![]()
|