public override string ToString()
        {
            string str = ReportDate.ToShortDateString() + " ";

            for (int i = 0; i < _values.Count; ++i)
            {
                str += _values[i].ToString("0.00") + (i + 1 < _values.Count ? " " : string.Empty);
            }

            return(str);
        }
Exemplo n.º 2
0
        private string editTextLine()
        {
            // 2018.01 asakawa 数値がマイナスの場合の出力形式の修正のために一部変更

            string textLine = "";

            // 伝区
            textLine += "0";
            // 年号
            textLine += "1";
            // 売上年月日
            string date = ReportDate.ToShortDateString();

            textLine += util.TruncateByteRight(DHandling.RemoveNoNum(date), 6);             // yyyymmdd →yymmdd
            // 請求年月日
            textLine += util.TruncateByteRight(DHandling.RemoveNoNum(date), 6);             // yyyymmdd →yymmdd
            // 伝票番号 6桁、0Padding
            textLine += util.PaddingInBytes(Convert.ToString(SlipNo), "Number", 6);

            // 得意先コード(業務No)
            textLine += TaskCode;

            // 得意先名
            char[] strChar = TaskName.ToCharArray();
            for (int i = 0; i < strChar.Length; i++)
            {
                if (strChar[i] == ' ')
                {
                    strChar[i] = ' ';
                }
            }
            TaskName = new string( strChar );
            //string taskData = util.FormFixedByteLengthLeft("(" + CostType + ")" + TaskName, 68);
            string taskData = util.FormFixedByteLengthLeft(TaskName, 68);

            textLine += util.TruncateByteLeft(taskData, 40);
            // 先方担当者名
            textLine += util.TruncateByteRight(taskData, 28);
            // 部門コード
            int dIdx = Array.IndexOf(sdKeyArray, (OfficeCode + util.SubstringByte(TaskCode, 0, 1)));

            if (dIdx < 0)
            {
                dIdx = Array.IndexOf(sdKeyArray, (OfficeCode + " "));
            }
            textLine += sDeptArray[dIdx];
            // 担当者コード
            //string pCode = Conv.ResizeMemberCode(MemberCode.TrimEnd(),2);
            textLine += Conv.ResizeMemberCode(LeaderMCode.TrimEnd(), 2);
            // 摘要コード
            textLine += "00";
            // 摘要名
            textLine += util.PaddingInBytes(" ", "Char", 30);
            // 商品コード
            textLine += util.SubstringByte(ItemCode, 0, 4);
            // マスター区分
            textLine += "0";
            // 品名
            if (ItemCode.TrimEnd() == "K999")
            {
                char checkChar = ' ';
                if (Item != "")
                {
                    checkChar = Item[0];
                }
                string kItem = (checkChar == '●') ? Item : kMark + Item;
                textLine += util.FormFixedByteLengthLeft(kItem, 36);
            }
            else
            {
                textLine += util.FormFixedByteLengthLeft(Item, 36);
            }
            //textLine += util.PaddingInBytes(Item, "Char", 36);
            //textLine += util.FormFixedByteLengthLeft(Item, 36);
            // 区
            textLine += "0";
            // 入数
            textLine += "0000";
            // 箱数
            textLine += "00000";
            // 数量
            if (Quantity == 0)
            {
                Quantity = 1;                        // 0では商魂汎用データ作成時にエラーになる
            }
            // 2018.01 asakawa マイナス値の場合の出力形式の修正のために変更
            // textLine += util.PaddingInBytes( Convert.ToString( Quantity ), "Number", 9 );
            if (Quantity < 0)
            {
                textLine += "-";
                decimal qq = Quantity * (-1);
                textLine += util.PaddingInBytes(Convert.ToString(qq), "Number", 8);
            }
            else
            {
                textLine += util.PaddingInBytes(Convert.ToString(Quantity), "Number", 9);
            }
            // 単位
            textLine += util.PaddingInBytes(Unit, "Char", 4);
            // 単価
            // 2018.01 asakawa マイナス値の場合の出力形式の修正のために変更
            // textLine += util.PaddingInBytes( UnitPrice.ToString( "0" ), "Number", 10 );
            if (UnitPrice < 0)
            {
                textLine += "-";
                decimal pp = UnitPrice * (-1);
                // textLine += util.PaddingInBytes(Convert.ToString(pp), "Number", 9); // 小数点以下も出力される
                textLine += util.PaddingInBytes(pp.ToString("0"), "Number", 9);
            }
            else
            {
                textLine += util.PaddingInBytes(UnitPrice.ToString("0"), "Number", 10);
            }
            // 売上金額
            int sales = Convert.ToInt32(Quantity * UnitPrice);

            // 2018.01 asakawa マイナス値の場合の出力形式の修正のために変更
            // textLine += util.PaddingInBytes( Convert.ToString( sales ), "Number", 10 );
            if (sales < 0)
            {
                textLine += "-";
                textLine += util.PaddingInBytes(Convert.ToString(sales * (-1)), "Number", 9);
            }
            else
            {
                textLine += util.PaddingInBytes(Convert.ToString(sales), "Number", 10);
            }
            // 原単価
            textLine += util.PaddingInBytes("0", "Number", 9);
            // 原価額
            textLine += util.PaddingInBytes("0", "Number", 10);
            // 税区分
            textLine += "0";
            // 税込区分
            textLine += "0";
            // 備考区分
            textLine += "1";        //備考区分が0:備考は数字、1:文字1
            // 備考
            textLine += util.PaddingInBytes(" ", "Char", 9);
            // 同時入荷区分
            textLine += "0";

            return(textLine);
        }