/// <summary> /// コンストラクタ /// 出来高を取得、印刷関連オブジェクトの設定をする /// </summary> /// <param name="Dekidaka">出来高データ</param> public PrintingTelop(Dekidaka_Data orgDekidaka) { Dekidaka = orgDekidaka; //出来高データの保持 //プリンタの印刷範囲を取得する為に関連オブジェクトを作成する pq = null; Pt = null; //Settings.PrintDlg = new PrintDialog(); //ローカルプリントサーバーから設定内容のプリンタキューと印刷設定チケットを取得する IsPrintSetting = GetPrinterSetting(ps, ref pq, ref Pt); //印刷可能範囲を計算して保持する PageImageableArea Pa = pq.GetPrintCapabilities().PageImageableArea; //double PageWidtha = Pa.OriginWidth + Pa.ExtentWidth; //double PageHeighta = Pa.OriginHeight + Pa.ExtentHeight; PageWidth = (double)Pt.PageMediaSize.Width - Pa.OriginWidth; PageHeight = (double)Pt.PageMediaSize.Height - Pa.OriginHeight; //MessageBox.Show("1 Width:" + PageWidth.ToString() + " Height:" + PageHeight.ToString() + // "\n2 Width:" + PageWidtha.ToString() + " Height:" + PageHeighta.ToString() + // "\nO Width:" + Pa.OriginWidth.ToString() + " Height:" + Pa.OriginHeight.ToString() + // "\nE Width:" + Pa.ExtentWidth.ToString() + " Height:" + Pa.ExtentHeight.ToString() + // "\nP Width:" + Pt.PageMediaSize.Width.ToString() + " Height:" + Pt.PageMediaSize.Height.ToString()); }
/// <summary> /// 入力ウィンドウを初期化する /// </summary> /// <param name="Dekidaka">出来高データ</param> public InputWindow(Dekidaka_Data Dekidaka) { Original = Dekidaka; ReturnValue = Dekidaka.Clone(); InitializeComponent(); //Window Main = Application.Current.MainWindow; DataContext = ReturnValue; //出来高のイベントが変更された時に呼び出されるイベントを登録 //ReturnValue.PropertyChanged += DekidakaPropertyChanged; //日付欄の初期化 this.OutputShipment0.IsEnabled = ReturnValue.bMulti; this.OutputShipment1.IsEnabled = ReturnValue.bMulti; this.OutputShipment2.IsEnabled = ReturnValue.bMulti; this.OutputShipment3.IsEnabled = ReturnValue.bMulti; this.OutputShipment4.IsEnabled = ReturnValue.bMulti; this.OutputShipment5.IsEnabled = ReturnValue.bMulti; this.textBlock_Shipment.IsEnabled = ReturnValue.bMulti; //this.Rect_Customer.Fill = new SolidColorBrush(Color.FromRgb(0xF4, 0xF4, 0xF5)); //ReturnValue. }
public TagEdit(Dekidaka_Data Dekidaka) { if (Dekidaka.strContentsOfWork == null || Dekidaka.strCommodity == null) { OKCancelDlg re = new OKCancelDlg("品名か作業内容に入力がありません"); re.WindowStartupLocation = WindowStartupLocation.CenterScreen; re.ShowDialog(); TagContext.strCow = ""; TagContext.strCommodity = ""; } else { TagContext.strCow = Dekidaka.strContentsOfWork.Split('(')[0]; TagContext.strCommodity = Dekidaka.strCommodity; } TagContext.strArea = Dekidaka.strProductionArea + (Dekidaka.strProductionArea != "" && Dekidaka.strProductionArea != null ? "産 " : " "); TagContext.iQuantity = Dekidaka.iaOutputQuantity[0]; TagContext.strSize = Dekidaka.strSize; TagContext.iCopyCount = 1; DData = Dekidaka; //tag = new Tag_Control(stryArea, strComodity, CoW, iQuantity); InitializeComponent(); DataContext = TagContext; //this.RootGrid.Children.Add(tag); }
/// <summary> /// 入力用の子ウィンドウを開いて出来高データを入力する。変更されたら一時データとバックアップを保存する /// </summary> /// <param name="sender">呼び出し元編集ボタンオブジェクト</param> private async void EditDataAsync(object sender) { if (cw != null) { return; } //子ウィンドウのポインタがnullじゃなければ(子ウィンドウが開いていれば)なにもせず戻る //呼び出し元ボタンから、tagに紐付けられた行のitemを取得 Dekidaka_Data Row = ((Button)sender).Tag as Dekidaka_Data; if (Row == null) { return; } //asキャストに失敗したら戻る int id = Row.iUID; //元の編集状態(未作成か作成済みか)を保持する bool bEdited = Row.bActionable; //タッチイベントから呼んだときには選択行がボタンの行にないときがあるので、選択行をデータのインデックスに合わせる dataGrid.SelectedItem = Row; if (mwContext.mwWriteMember == "" || mwContext.mwWriteMember == "名前を入力" || mwContext.mwPartNumber == 0) { string message = "記入者名と人数を設定して下さい。"; ShowMessageDlg(message); return; } cw = new InputWindow(Row); //記入者がnullならメインウィンドウの記入者データを入力 if (cw.Original.strWriteMember == null) { cw.ReturnValue.strWriteMember = mwContext.mwWriteMember; } //班番号が無ければメインウィンドウの班番号を記入 if (cw.Original.iPartGroup == 0) { cw.ReturnValue.iPartGroup = mwContext.mwPartGroupNo; } //人数が無ければメインウィンドウの人数を記入 if (cw.Original.iPartNumber == 0) { cw.ReturnValue.iPartNumber = mwContext.mwPartNumber; } //cw.Closed += new EventHandler(cw_Closed); //cw.Topmost = true; //cw.Show(); //this.Hide(); //入力ダイアログを開く cw.ShowDialog(); //this.Show(); Row.strOutput = ""; //更新を通知 Row.iOutputSubTotal = 0; //更新を通知 //元の編集状態が未編集で、編集済みで返ってきた場合は新しい行を追加する if (bEdited == false && Row.bActionable == true) { DekiDakaDataCollection.Add(new Dekidaka_Data(++iDataCollectionIndex)); } //元の編集状態が編集済みで、未編集で返ってきた場合はアイテムを削除する if (bEdited == true && Row.bActionable == false) { DekiDakaDataCollection.Remove(Row); } // 一時データを保存する if (cw.IsModified) { //子ウィンドウを解放 cw = null; StateWindow StateW = new StateWindow("データを保存しています"); StateW.WindowStartupLocation = WindowStartupLocation.CenterScreen; StateW.Topmost = true; StateW.Show(); int iState = 0; await Task.Run(() => { iState = SaveTempData(); }); StateW.Close(); StateW = null; if (iState != 1) { string message = string.Format("一時保存に失敗しました({0})", iState == 10 ? "一時パスアクセス不可" : "バックアップパスアクセス不可"); ShowMessageDlg(message); } } else { //子ウィンドウを解放 cw = null; } }
/// <summary> /// テロップを印刷する /// </summary> /// <param name="sender">呼び出し元印刷ボタン</param> private void Button_Print_Press(object sender) { //ボタンからtagに紐付けられたitemを取得する Dekidaka_Data Row = ((Button)sender).Tag as Dekidaka_Data; if (Row == null) { return; } //asキャストに失敗したら戻る //内容を確認するダイアログ string message = Row.strCustomar + "の" + Row.strCommodity + Row.strContentsOfWork + "のテロップを印刷しますか?"; if (ShowMessageDlg(message) == MessageBoxResult.Cancel) { return; } //出来高が未入力なら確認する if (Row.strOutput == null) { message = "出来高が入力されていませんがよろしいですか?"; if (ShowMessageDlg(message) == MessageBoxResult.Cancel) { return; } } StateWindow StateW = new StateWindow("印刷データ作成中"); StateW.WindowStartupLocation = WindowStartupLocation.CenterScreen; //StateW.Topmost = false; StateW.Show(); //テロップ印刷オブジェクトを作成 PrintingTelop Pt = new PrintingTelop(Row); //現在の出来高データでテロップを設定 Pt.TelopSetting(); //StateW.cx.strDisplayMessage = "プリンタに送信中"; //印刷する Pt.Print(); //印刷ボタンの色を変える Row.SetPrintBottonColor(0); StateW.Close(); StateW = null; }
/// <summary> /// 果実に分類される品名かどうかを調べる /// </summary> /// <param name="sender"></param> private void SerchFruits(Dekidaka_Data sender) { Dekidaka_Data Data = sender as Dekidaka_Data; if (Data == null) { return; } //処理中はイベントを解除 //ReturnValue.PropertyChanged -= DekidakaPropertyChanged; if (ModuleData.Fruits.Array != null) { //Listの行数と列数をもらう List <string> csvField = new List <string>(); csvField = ModuleData.Fruits.Array[0]; int cols = csvField.Count; int flag = -1; var el = from p in csvField where p == Data.strCommodity select p; if (el.Count <string>() != 0) { flag = 1; } //文字列として比較する //for (int j = 0; j < cols; j++) //{ // if (csvField[j] == "") { break; } // if (csvField[j] == Data.strCommodity) // { // flag = 1; // break; // } //} if (flag == 1) { Data.bKind = true; } else { Data.bKind = false; } IsFruitModified = false; strModifiedFruit = ""; } //終わったらイベントを再登録 //ReturnValue.PropertyChanged += DekidakaPropertyChanged; }
/// <summary> /// 資材の変更時に呼ばれて、袋に対するクリップを自動的に配置する /// </summary> /// <param name="sender">通知元Dekidaka_Data</param> private void SerchMaterials(Dekidaka_Data sender, int index) { Dekidaka_Data Data = sender as Dekidaka_Data; if (Data == null) { return; } //処理中はイベントを解除 //ReturnValue.PropertyChanged -= DekidakaPropertyChanged; if (ModuleData.FG.Array != null) { //Arraylistの行数と列数をもらう List <string> csvField = new List <string>(); csvField = ModuleData.FG.Array[0]; int rows = ModuleData.FG.Array.Count; int cols = csvField.Count; int flag = -1; //文字列として比較する //for (int materials_count = 0; materials_count < 6 && flag == -1; materials_count++) //{ // if(Data.straMaterials[materials_count] == "" || Data.straMaterials[materials_count] == null) // { // continue; // } for (int i = 0; i < rows && flag == -1; i++) { csvField = ModuleData.FG.Array[i]; for (int j = 1; j < cols; j++) { if (csvField[j] == "") { break; } if (csvField[j] == Data.straMaterials[index]) { flag = i; break; } } } //} if (flag != -1) { bool IsExist = false; csvField = ModuleData.FG.Array[flag]; for (int materials_count = 0; materials_count < 6; materials_count++) { if (Data.straMaterials[materials_count] == csvField[0]) { IsExist = true; break; } } if (!IsExist) { for (int materials_count = index; materials_count < 6; materials_count++) { if (Data.straMaterials[materials_count] == "" || Data.straMaterials[materials_count] == null) { Data.strMaterials(csvField[0], materials_count); break; } } } } } //終わったらイベントを再登録 //ReturnValue.PropertyChanged += DekidakaPropertyChanged; }
/// <summary> /// 発注先/品名/作業内容が変更された時に呼ばれ、マッチする資材を探す /// </summary> /// <param name="sender">出来高データ</param> private void SerchCCC(Dekidaka_Data sender) { Dekidaka_Data Data = sender as Dekidaka_Data; //nullなら帰る if (Data == null) { return; } //発注者・品名・作業内容に空白があるなら帰る if (Data.strContentsOfWork == "" || Data.strContentsOfWork == null || Data.strCommodity == "" || Data.strCommodity == null || Data.strCustomar == "" || Data.strCustomar == null) { return; } //処理中はイベントを解除 //ReturnValue.PropertyChanged -= DekidakaPropertyChanged; //データが読み込まれていれば if (ModuleData.Materials.Array != null) { //Listの行数と列数をもらう List <string> csvField = new List <string>(); csvField = ModuleData.Materials.Array[0]; int rows = ModuleData.Materials.Array.Count; int cols = csvField.Count; int MatelialstrCol = 5; int MatelialnumCol = 6; //項目を見ていく for (int i = 1; i < rows; i++) { csvField = ModuleData.Materials.Array[i]; //作業内容を見る if (!IsMached(CheckRegEx(csvField[2]), Data.strContentsOfWork == null ? "" : Data.strContentsOfWork)) { continue; } //品名を見る if (!IsMached(CheckRegEx(csvField[1]), Data.strCommodity == null ? "" : Data.strCommodity)) { continue; } //得意先がマッチするか見る if (!IsMached(CheckRegEx(csvField[0]), Data.strCustomar == null ? "" : Data.strCustomar)) { continue; } //サイズを見る if (!IsMached(CheckRegEx(csvField[3]), Data.strSize == null ? "" : Data.strSize)) { continue; } //産地を見る if (!IsMached(CheckRegEx(csvField[4]), Data.strProductionArea == null ? "" : Data.strProductionArea)) { continue; } //全てマッチしたら資材と数を入力する for (int j = 0; j < 3; j++) { string MateName = csvField[MatelialstrCol + j * 2]; if (MateName == "") { break; } //既に同じ資材がないかチェックする bool IsExist = false; for (int materials_count = 0; materials_count < 6; materials_count++) { if (Data.straMaterials[materials_count] == MateName) { IsExist = true; break; } } if (IsExist) { continue; } for (int materials_count = 0; materials_count < 6; materials_count++) { if (Data.straMaterials[materials_count] == "" || Data.straMaterials[materials_count] == null) { //資材名 Data.strMaterials(MateName, materials_count); //数 int mnum; if (int.TryParse(csvField[MatelialnumCol + j * 2], out mnum)) { Data.iMaterialsNumber(mnum, materials_count); } else { Data.iMaterialsNumber(1, materials_count); } break; } } } //for j //ループを終える //break; } //for i } // if array //終わったらイベントを再登録 //ReturnValue.PropertyChanged += DekidakaPropertyChanged; }
public PrintingTag(Dekidaka_Data orgDekidaka) : base(orgDekidaka) { }