【富士通】改122_トラックダンプ要件开发

122_トラックダンプ:

 

首先要跳转页面显示位置:

    // TrackSpecification

    pcx.PrintRaw("<tr>\n");

    pcx.PrintRaw("<th>\n");

    pcx.PutRawStr(CSP_GET_LIT(track));

    pcx.PrintRaw("</th>\n");

    cgi_CFmtCmnUnionString(pcx, NULL, NULL,NULL, NULL, cfpUnionParam, 0, NULL);

    pcx.PrintRaw("</tr>\n");

 

构造体位置颠倒:

    // TrackSpecification連結出力セルフォーマッタ用パラメータ構造体

    cgi_CmnUnionParts radioCell[] = {

        {NULL, cgi_DFmtSingleRadio,      &radioParam[0],                                "_track_check", &isChecked[0]},

        {NULL, cgi_DFmtFixedStr,        info.exportInfo.trackSpecOptions.GetNameAt(0), NULL,           NULL},

        {NULL, cgi_DFmtFixedRawStr,     "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",  NULL,           NULL},

        {NULL, cgi_DFmtFixedStr,         CSP_GET_LIT(CMisc::hexprefix),                 NULL,           NULL},

        {NULL, cgi_DFmtFixedRawStr,     "&nbsp;",                                     NULL,           NULL},

        {NULL, cgi_DFmtInputStringWidth,&nameHintSlba,                                "_slba_value",  &info.exportInfo.slba},

        {NULL, cgi_DFmtFixedStr,        CSP_GET_LIT(FTrackDump::slbaRange),            NULL,           NULL},

        {NULL, cgi_DFmtFixedRawStr,     "<br/>",                                     NULL,           NULL},

        {NULL, cgi_DFmtSingleRadio,      &radioParam[1],                               "_track_check", &isChecked[1]},

        {NULL, cgi_DFmtFixedStr,         info.exportInfo.trackSpecOptions.GetNameAt(1),NULL,           NULL},

        {NULL, cgi_DFmtFixedRawStr,     "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;",              NULL,           NULL},

        {NULL, cgi_DFmtFixedStr,         CSP_GET_LIT(CMisc::hexprefix),                 NULL,           NULL},

        {NULL, cgi_DFmtFixedRawStr,     "&nbsp;",                                     NULL,           NULL},

        {NULL, cgi_DFmtInputString,      &nameHintCchh,                                "_cchh_value",  &info.exportInfo.cchh},

        {NULL, cgi_DFmtFixedStr,        CSP_GET_LIT(FTrackDump::cchhRange),           NULL,           NULL},

    };

涉及到机型的选择:

    // SLU No.の有効範囲を装置のモデルタイプによって設定

    cgi_CellFmtPreSufParam sluNoRange;

    switch(CGI_STORAGE_MODEL) {

    caseCGI_MODEL_TYPE_DX90S3:

    caseCGI_MODEL_TYPE_DX80S3:

        // Spinnerの場合

        sluNoRange = cfpPreSufSluNoN1;

        break;

    caseCGI_MODEL_TYPE_DX410S3:

        // HumpbackType1の場合

        sluNoRange = cfpPreSufSluNoN2;

        break;

    caseCGI_MODEL_TYPE_DX440S3:

        // HumpbackType2の場合

        sluNoRange = cfpPreSufSluNoN3;

        break;

    default:

        sluNoRange = cfpPreSufSluNoN1;

        break;

    }

区域框内最大值设定:

            //モデルの判定を行い、SLU No.の最大値を設定する

            switch(CGI_STORAGE_MODEL){

            caseCGI_MODEL_TYPE_DX90S3:

            caseCGI_MODEL_TYPE_DX80S3:

                //Spinnerの場合

                vpl.AddIntParam("sluMax", CGI_TRACKDUMP_SLUN_MAX_N1);

                break;

            caseCGI_MODEL_TYPE_DX410S3:

                //Humpback Type1の場合

                vpl.AddIntParam("sluMax", CGI_TRACKDUMP_SLUN_MAX_N2);

                break;

            caseCGI_MODEL_TYPE_DX440S3:

                //Humpback Type2の場合

                vpl.AddIntParam("sluMax", CGI_TRACKDUMP_SLUN_MAX_N3);

                break;

            default:

                CGI_ZERO_CLEAR(status);

               CGI_SET_LOGICAL_ERROR_STATUS(CALL_ERROR, 0, 0, status);

                eib.Append(status);

}

入力值鉴证的设定(在最大值和最小值范围内):

    //モデルの判定を行う

    switch(CGI_STORAGE_MODEL) {

        caseCGI_MODEL_TYPE_DX90S3:

        caseCGI_MODEL_TYPE_DX80S3:

            //Spinnerの場合

            // SLUNo.の入力が0x0000~x07FF の範囲内であるかどうかを検証する

            sluNo = (int)strtoul(trckDmpData.sluNo.GetCStr(),0, radix_hex);

            if(CSP_IntRangeChecker(sluNo, sluMin, sluMax) != CSP_OK) {

               CGI_SET_ERROR_STATUS(CALL_ERROR_INVALID_ARG, CGI_CODE_KIND_VALIDATE,

                                    MMI_VALID_CHECK_EXPORTTRACKDUMP, MMI_CETD_SLU_N1_RANGE_ERR, status);

                eib.Append(status);

                returnCSP_FAILED;

            }

            break;

        caseCGI_MODEL_TYPE_DX410S3:

 

            //Humpback Type1の場合

            // SLUNo.の入力が0x0000~x1FFF の範囲内であるかどうかを検証する

            sluNo = (int)strtoul(trckDmpData.sluNo.GetCStr(),0, radix_hex);

            if(CSP_IntRangeChecker(sluNo, sluMin, sluMax) != CSP_OK) {

               CGI_SET_ERROR_STATUS(CALL_ERROR_INVALID_ARG, CGI_CODE_KIND_VALIDATE,

                                     MMI_VALID_CHECK_EXPORTTRACKDUMP,MMI_CETD_SLU_N2_RANGE_ERR, status);

                eib.Append(status);

                returnCSP_FAILED;

            }

            break;

        caseCGI_MODEL_TYPE_DX440S3:

            //Humpback Type2の場合

            // SLUNo.の入力が0x0000~x7FFF の範囲内であるかどうかを検証する

            sluNo = (int)strtoul(trckDmpData.sluNo.GetCStr(),0, radix_hex);

            if(CSP_IntRangeChecker(sluNo, sluMin, sluMax) != CSP_OK) {

                CGI_SET_ERROR_STATUS(CALL_ERROR_INVALID_ARG,CGI_CODE_KIND_VALIDATE,

                                    MMI_VALID_CHECK_EXPORTTRACKDUMP, MMI_CETD_SLU_N3_RANGE_ERR, status);

                eib.Append(status);

                returnCSP_FAILED;

            }

            break;

        default:

            returnCSP_FAILED;

    }

 

你可能感兴趣的:(【富士通】改122_トラックダンプ要件开发)