示例#1
0
    public override void Activate(GameObject from_gameobject)
    {
        if (isActive)
        {
            return;
        }

        SawBeam saw_beam = from_gameobject.GetComponent <SawBeam>();

        saw_beam.StartSpellAnimation(this);
    }
示例#2
0
        public static void OptimizedMainProfileExport(string idoptimdocs)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();

            //if (dialog.ShowDialog() != DialogResult.OK)
            // return;

            // string folderName = dialog.SelectedPath;
            string folderName = "C:\\MyProject\\! FO_LIBRARY 2\\TEST FILEs\\";


            DataSet dataSet = new DataSet();

            using (SqlCommand command = new SqlCommand())
                using (SqlDataAdapter adapter = new SqlDataAdapter(command))
                {
                    command.Connection  = dbinit.db;
                    command.CommandText = "fo_optim_main_prof_by_idoptimdocs";
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.AddWithValue("@idoptimdocs", idoptimdocs);

                    adapter.Fill(dataSet);
                }

            // Документы оптимизации
            DataTable optimDocumnetTable = dataSet.Tables[0];

            // Загатовки
            DataTable optimDocPicTable = dataSet.Tables[1];

            // Напилиные балки
            DataTable beamTable = dataSet.Tables[2];


            Dictionary <int, clsModel> idorderitemClsModel = new Dictionary <int, clsModel>();


            foreach (DataRow row in dataSet.Tables[3].Rows)
            {
                byte[] modelByteArray = Atechnology.Components.ZipArchiver.UnZip2((byte[])row[1]);
                idorderitemClsModel.Add((int)row[0], new clsModel(modelByteArray));
            }

            List <Tuple <DataRow, string> > beemDataRow_leafNumber = new List <Tuple <DataRow, string> >();

            DataTable beemDataTable = dataSet.Tables[2];

            beemDataTable.Columns.Add("FieldNumber");


            int idorderitem = -1;



            SawWorkpiece piece;

            // Создать документы и заполнить их
            foreach (DataRow docRow in optimDocumnetTable.Rows)
            {
                SawDocument docWriter = new SawDocument(docRow);


                //string docText = string.Format("L,{0},CUT", docRow["docname"]);

                // Загатовки(картинки) для напиловки
                IEnumerable <DataRow> picRows = optimDocPicTable.AsEnumerable()
                                                .Where(pr => pr.Field <int>("idoptimdoc") == docWriter.IdOptimDoc);

                IEnumerable <DataRow> beamRows = beamTable.AsEnumerable()
                                                 .Where(br => br.Field <int>("idoptimdoc") == docWriter.IdOptimDoc)
                                                 .OrderBy(br => br.Field <string>("manufact_name"));



                // -- Цикл по заготовкам(картинкам оптимизации) внутри документа
                foreach (DataRow picRow in picRows)
                {
                    int idoptimdocpic = (int)picRow["idoptimdocpic"];
                    piece = new SawWorkpiece(picRow);

                    docWriter.AddPicWriter(piece);
                }


                IEnumerable <DataRow> beemRows = dataSet.Tables[2]
                                                 .AsEnumerable()
                                                 .Where(br => br.Field <int>("idoptimdoc") == docWriter.IdOptimDoc)
                                                 .OrderBy(br => br.Field <string>("manufact_name")); // Упорядочить по manufactname.
                // Необходимо для того, чтобы балки(Рам, Створок и Импостов)
                // из одного заказа упаковывались в свои тележки в одинаковой последовательности.


                clsModel clsModel = null;

                // Цикл по напиленым балкам
                foreach (DataRow beemRow in beemRows)
                {
                    // Получить модель для дальнейшего извлечения балки.
                    idorderitem = (int)beemRow["idorderitem"];
                    clsModel    = idorderitemClsModel[idorderitem];

                    SawBeam sawBeam = new SawBeam(beemRow, clsModel);
                    sawBeam.IsRemark = true;

                    docWriter.AddBeamWriter(sawBeam);
                }

                docWriter.FillDocument(folderName);
            }
        }