Example #1
0
        /// <summary>
        /// 時間形式書式設定
        /// </summary>
        /// <param name="item">ファイル出力ビュー</param>
        /// <param name="value">出力項目</param>
        /// <returns>出力項目</returns>
        private string setTimeFormat(OutputFileViewDto item, string value)
        {
            string formatValue = value;

            if (item.TimeFormat.HasValue && !string.IsNullOrWhiteSpace(value))
            {
                DateTime date;
                //日付変換のため、まず半角へ変換
                string halfValue = this.convertToNarrow(value);
                if (DateTime.TryParseExact(halfValue, timeFormats, null, DateTimeStyles.AllowWhiteSpaces, out date))
                {
                    switch (item.TimeFormat)
                    {
                    case Definition.TimeFormat.hhmm:
                        formatValue = date.ToString(Definition.TimeFormatType.hhmm);
                        break;

                    case Definition.TimeFormat.hhmmss:
                        formatValue = date.ToString(Definition.TimeFormatType.hhmmss);
                        break;
                    }
                }
            }
            return(formatValue);
        }
Example #2
0
        /// <summary>
        /// グループ項目の桁数の合計値を取得する
        /// </summary>
        /// <returns></returns>
        private int getRcDigit(OutputFileViewDto item)
        {
            int rcDigit = (from x in this.groupDetailItemList
                           where x.ClId == item.ClId && x.ClGroupId == item.ClGroupId && x.TemplateId == item.TemplateId &&
                           (item.RcPageNo == 0 || x.PageNo == item.RcPageNo)
                           select x.RcDigit).Sum(digit =>
            {
                int ret = 0;
                return(int.TryParse(digit, out ret) ? ret : 0);
            });

            return(rcDigit);
        }
Example #3
0
        /// <summary>
        /// 数値のカンマ区切りの設定
        /// </summary>
        /// <param name="item">ファイル出力ビュー</param>
        /// <param name="value">出力項目</param>
        /// <returns>出力項目</returns>
        private string setCommaSeparate(OutputFileViewDto item, string value)
        {
            string formatValue = value;

            if (item.CommaSeparateFlag && !string.IsNullOrWhiteSpace(value))
            {
                decimal num;
                //日付変換のため、まず半角へ変換
                string halfValue = this.convertToNarrow(value);
                if (decimal.TryParse(halfValue, out num))
                {
                    formatValue = String.Format("{0:#,0}", num);
                }
            }
            return(formatValue);
        }
Example #4
0
        /// <summary>
        /// 出力項目の値を取得する
        /// </summary>
        /// <param name="item"></param>
        /// <param name="pageNo">結果データのページ番号</param>
        /// <returns></returns>
        private string getItemValue(OutputFileViewDto item, int pageNo)
        {
            string value = string.Empty;

            switch (item.OpItemType)
            {
            case Definition.OutputItemType.ViewGroup:
                value = this.getGroupItemValue(item.TemplateId, item.ClGroupId, pageNo);
                break;

            case Definition.OutputItemType.System:
                value = this.getSystemItemValue(item.SystemItemId, pageNo, item.TemplateId);
                break;

            case Definition.OutputItemType.UserExpression:
                value = this.getUserExpressItemValue(item, pageNo);
                break;
            }
            //半角変換(ユーザー定義項目すでに半角修正が入れたので、再度変換しない)
            if (item.HalfCharacterFlag && item.OpItemType != Definition.OutputItemType.UserExpression)
            {
                value = this.convertToNarrow(value);
            }

            // 日付形式書式設定
            value = setDateFormat(item, value);

            // 時間形式書式設定
            value = setTimeFormat(item, value);

            // カンマ区切り出力
            value = setCommaSeparate(item, value);

            // 金額文字列の生成
            value = setMoneyString(item, value);

            //プレーンファイルの場合、グループ項目の指定桁数まで空白を埋め込む(OMR項目の場合、埋め込む済みためしない)
            if (this.outputDesignInfo.RcResultOpFormat == Definition.OpDesignFileFormat.Plain &&
                item.OpItemType == Definition.OutputItemType.ViewGroup &&
                item.GroupItemKind != Definition.ItemKind.OMR)
            {
                int digit = this.getRcDigit(item);
                value = this.padValue(value, digit);
            }
            return(value);
        }
Example #5
0
        /// <summary>
        /// 金額文字列の設定
        /// </summary>
        /// <param name="item">ファイル出力ビュー</param>
        /// <param name="value">出力項目</param>
        /// <returns>出力項目</returns>
        private string setMoneyString(OutputFileViewDto item, string value)
        {
            string formatValue = value;

            if (item.MoneyStringGenerationFlag && !string.IsNullOrWhiteSpace(value))
            {
                switch (item.CurrencySymbol)
                {
                case Definition.CurrencyFormat.Yen:
                    formatValue = Definition.CurrencyFormatString.Yen + value;
                    break;

                case Definition.CurrencyFormat.Dollar:
                    formatValue = Definition.CurrencyFormatString.Dollar + value;
                    break;
                }
            }
            return(formatValue);
        }
Example #6
0
        /// <summary>
        /// ユーザー定義項目の値を取得する
        /// </summary>
        /// <param name="item">ユーザー定義項目</param>
        /// <param name="pageNo">出力項目のページ番号</param>
        /// <returns></returns>
        private string getUserExpressItemValue(OutputFileViewDto item, int pageNo)
        {
            //ユーザー定義項目を取得する
            var items = (from x in this.userDefineItems
                         where x.UserDefinitionId == item.UserDefinitionId &&
                         x.RcPageNo == item.RcPageNo &&
                         x.OpOrderNo == item.OpOrderNo
                         select x).OrderBy(x => x.RowNo);

            StringBuilder sb = new StringBuilder();

            foreach (OutputFileOUViewDto userItem in items)
            {
                switch (userItem.ExpressionType)
                {
                case Definition.UserExpressionType.String:
                    //文字列指定の場合
                    sb.Append(userItem.ExpressionString);
                    break;

                case Definition.UserExpressionType.ViewGroup:
                    //グループ項目の場合
                    int    usePageNo  = userItem.ExpressionRcPageNo == 0 ? pageNo : userItem.ExpressionRcPageNo;
                    string groupValue = this.getGroupItemValue(userItem.ExpressionTemplateId, userItem.ExpressionItemId, usePageNo);
                    sb.Append(groupValue);
                    break;
                }
            }
            string value = sb.ToString();

            //半角変換
            if (item.HalfCharacterFlag)
            {
                value = this.convertToNarrow(value);
            }
            //桁数設定
            if (this.outputDesignInfo.RcResultOpFormat == Definition.OpDesignFileFormat.Plain && item.UserDefinitionNo.HasValue)
            {
                value = this.padValue(value, item.UserDefinitionNo.Value);
            }

            return(value);
        }