Ejemplo n.º 1
0
        /// <summary>
        /// プリンタ設定解析
        /// </summary>
        /// <param name="QRSetting">QRコード設定</param>
        /// <param name="textSetting">テキスト設定</param>
        /// <param name="inslist">検査リストクラス</param>
        /// <returns>成功/失敗</returns>
        static bool ParsePrinterSetting(string QRSetting, string textSetting, InspectionList inslist)
        {
            if (string.IsNullOrEmpty(QRSetting) &&
                string.IsNullOrEmpty(textSetting))
            {
                // 設定なし(プリンタを使用しない)
                inslist.TemplateFileNameBarcode = null;
                inslist.TemplateFileNameText    = null;
                inslist.PrintNumBarcode         = 0;
                inslist.PrintNumText            = 0;
            }
            else if (!string.IsNullOrEmpty(QRSetting) &&
                     !string.IsNullOrEmpty(textSetting))
            {
                // 設定あり(プリンタを使用する)
                var prmsBarcode = QRSetting.Split(':');
                var prmsText    = textSetting.Split(':');
                if (prmsBarcode.Length == 2 &&
                    prmsText.Length == 2)
                {
                    int printNumBarcode = 0;
                    int printNumText    = 0;

                    // 値のチェック(テンプレート)
                    if (string.IsNullOrWhiteSpace(prmsBarcode[0]) ||
                        string.IsNullOrWhiteSpace(prmsText[0]))
                    {
                        log.Error($"プリンタ設定のテンプレート設定が不正です。({prmsBarcode[0]}, {prmsText[0]})");
                        return(false);
                    }
                    // 値のチェック(枚数)
                    if (!int.TryParse(prmsBarcode[1], out printNumBarcode)
                        & !int.TryParse(prmsText[1], out printNumText))
                    {
                        log.Error($"プリンタ設定の印刷枚数設定が不正です。({prmsBarcode[1]}, {prmsText[1]})");
                        return(false);
                    }
                    inslist.TemplateFileNameBarcode = prmsBarcode[0];
                    inslist.TemplateFileNameText    = prmsText[0];
                    inslist.PrintNumBarcode         = printNumBarcode;
                    inslist.PrintNumText            = printNumText;
                }
                else
                {
                    log.Error($"プリンタ設定のフォーマットが不正です。コロンの数を確認して下さい");
                    return(false);
                }
            }
            else
            {
                // QRコードまたはテキストの片方のみ設定されている(不正)
                log.Error($"プリンタ設定が不正です。QRコードとテキストが設定されているか確認して下さい");
                return(false);
            }

            return(true);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 外観検査レシピファイル読み込み
        /// </summary>
        /// <param name="fpath">ファイルパス</param>
        /// <returns>検査リスト</returns>
        public static InspectionList LoadRecipeFile(string fpath)
        {
            log.Info($"外観検査レシピファイル '{fpath}' 読み込み開始");
            InspectionRecipeSetting setting = new InspectionRecipeSetting();
            ExpandoObject           eo      = CommonLib.SettingFile.LoadSettingFile(fpath);

            if (!setting.SetParam(eo))
            {
                log.Error($"外観検査レシピファイルリードエラー");
                return(null);
            }

            InspectionList ret = new InspectionList();

            ret.ItemCode    = setting.ItemCode;
            ret.ProductName = setting.ProductName;

            // プリンタ設定
            if (!ParsePrinterSetting(setting.PrinterBarcodeSetting, setting.PrinterTextSetting, ret))
            {
                log.Error("プリンタ設定エラー");
                return(null);
            }

            string dir = Path.GetDirectoryName(fpath);

            ret.m_ispDataFront = LoadInspectionItemFile(Path.Combine(dir, setting.RecipeF));
            if (ret.m_ispDataFront == null)
            {
                log.Error($"表面の検査項目ファイルが読み込めませんでした");
                return(null);
            }

            ret.m_ispDataBack = LoadInspectionItemFile(Path.Combine(dir, setting.RecipeB));
            if (ret.m_ispDataBack == null)
            {
                log.Error($"裏面の検査項目ファイルが読み込めませんでした");
                return(null);
            }

            log.Info($"外観検査レシピファイル '{fpath}' 読み込み完了");

            return(ret);
        }