/// <summary>
        /// Builds the Min-Max DataTable.
        /// </summary>
        /// <returns>A DataTable representing all the QuickBooks Data to be written to the Min-Max Doc.</returns>
        public DataTable Analyze()
        {
            if (!excelDoc.excelObjSet)
            {
                excelDoc.SetExcelObjects();
            }

            if (excelDoc.excelObjSet)
            {
                Log.WriteLine("...Analyzing Part Numbers...");

                IQuickBooksData itemDataTable       = new ItemDataTable();
                IQuickBooksData salesOrderDataTable = new SODataTable();

                excelDoc.InStreamData();
                itemDataTable.BuildTable();
                salesOrderDataTable.BuildTable();

                minMaxDt = new DataTable().BuildTable(salesOrderDataTable, itemDataTable, excelDoc.partNumList);

                excelDoc.Write(minMaxDt);
                return(minMaxDt);
            }
            else
            {
                Log.WriteLine("Cannot Access Min-Max Document.");
                return(new DataTable());
            }
        }
        public void PolySOTest()
        {
            QuickBooksDataTable soTable = new SODataTable();

            soTable.BuildTable();

            soTable.Write(@"\\msw-fp1\user$\wchan\Documents\Visual Studio 2015\Projects\InventoryManagementApp\InventoryManagementApp\bin\Debug\Test\\PolySO.csv");
        }
        public void PolyMinMaxTest()
        {
            QuickBooksDataTable itemTable = new ItemDataTable();
            QuickBooksDataTable soTable   = new SODataTable();

            itemTable.BuildTable();
            soTable.BuildTable();

            using (excelDoc = new ExcelDoc())
            {
                excelDoc.Open();
                excelDoc.InStreamData();
                excelDoc.Close();

                DataTable minMaxDt = new DataTable().BuildTable(soTable, itemTable, excelDoc.partNumList);

                minMaxDt.Write(@"\\msw-fp1\user$\wchan\Documents\Visual Studio 2015\Projects\InventoryManagementApp\InventoryManagementApp\bin\Debug\Test\PolyMinMax.csv");
            }
        }
示例#4
0
    static bool ReadExcelFile(string excelPath, string prefabPath)
    {
        GameObject basicTableInstance = null;

        lastMsg = string.Empty;

        try
        {
            Excel itemData = ExcelHelper.LoadExcel(excelPath);

            if (itemData == null)
            {
                return(false);
            }

            List <ExcelTable> itemDataTable = itemData.Tables;

            string           prefabFilePath = prefabPath + "/SODataTable.asset";
            ScriptableObject soDataTableSO  = (ScriptableObject)AssetDatabase.LoadAssetAtPath(prefabFilePath, typeof(ScriptableObject));
            if (soDataTableSO == null)
            {
                soDataTableSO = ScriptableObject.CreateInstance <SODataTable>();
                AssetDatabase.CreateAsset(soDataTableSO, prefabFilePath);
                soDataTableSO.hideFlags = HideFlags.NotEditable;
            }

            SODataTable soDataTable = (SODataTable)soDataTableSO;
            foreach (var obj in soDataTable.soDataInfoList1)
            {
                DestroyImmediate(obj, true);
            }
            foreach (var obj in soDataTable.soDataInfoList2)
            {
                DestroyImmediate(obj, true);
            }

            soDataTable.soDataInfoList1.Clear();
            soDataTable.soDataInfoList2.Clear();

            if (itemDataTable.Count > 0)
            {
                for (int i = 0; i < itemDataTable.Count; i++)
                {
                    if (itemDataTable[i].TableName == "Sheet1")
                    {
                        int indexColumn          = 0;
                        int stringValueColumn    = 0;
                        int intValueColumnColumn = 0;
                        int floatValueColumn     = 0;

                        for (int column = 1; column <= itemDataTable[i].NumberOfColumns; column++)
                        {
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "Index")
                            {
                                indexColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "StringValue")
                            {
                                stringValueColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "IntValue")
                            {
                                intValueColumnColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "FloatValue")
                            {
                                floatValueColumn = column;
                            }
                        }

                        for (int row = 2; row <= itemDataTable[i].NumberOfRows; row++)
                        {
                            if (Convert.ToString(itemDataTable[i].GetValue(row, indexColumn)).Equals(""))
                            {
                                continue;
                            }

                            int    index       = Convert.ToInt32(itemDataTable[i].GetValue(row, indexColumn));
                            string stringValue = Convert.ToString(itemDataTable[i].GetValue(row, stringValueColumn));
                            int    intValue    = Convert.ToInt32(itemDataTable[i].GetValue(row, intValueColumnColumn));
                            float  floatValue  = Convert.ToSingle(itemDataTable[i].GetValue(row, floatValueColumn));

                            SODataInfo soDataInfo = ScriptableObject.CreateInstance <SODataInfo>();

                            soDataInfo.index       = index;
                            soDataInfo.stringValue = stringValue;
                            soDataInfo.intValue    = intValue;
                            soDataInfo.floatValue  = floatValue;

                            AssetDatabase.AddObjectToAsset(soDataInfo, soDataTableSO);
                            soDataInfo.name = string.Format("SODataInfo{0}", index);
                            soDataTable.soDataInfoList1.Add(soDataInfo);
                        }
                    }
                    else if (itemDataTable[i].TableName == "Sheet2")
                    {
                        int indexColumn          = 0;
                        int stringValueColumn    = 0;
                        int intValueColumnColumn = 0;
                        int floatValueColumn     = 0;

                        for (int column = 1; column <= itemDataTable[i].NumberOfColumns; column++)
                        {
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "Index")
                            {
                                indexColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "StringValue")
                            {
                                stringValueColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "IntValue")
                            {
                                intValueColumnColumn = column;
                            }
                            if (Convert.ToString(itemDataTable[i].GetValue(1, column)) == "FloatValue")
                            {
                                floatValueColumn = column;
                            }
                        }

                        for (int row = 2; row <= itemDataTable[i].NumberOfRows; row++)
                        {
                            if (Convert.ToString(itemDataTable[i].GetValue(row, indexColumn)).Equals(""))
                            {
                                continue;
                            }

                            int    index       = Convert.ToInt32(itemDataTable[i].GetValue(row, indexColumn));
                            string stringValue = Convert.ToString(itemDataTable[i].GetValue(row, stringValueColumn));
                            int    intValue    = Convert.ToInt32(itemDataTable[i].GetValue(row, intValueColumnColumn));
                            float  floatValue  = Convert.ToSingle(itemDataTable[i].GetValue(row, floatValueColumn));

                            SODataInfo soDataInfo = new SODataInfo();

                            soDataInfo.index       = index;
                            soDataInfo.stringValue = stringValue;
                            soDataInfo.intValue    = intValue;
                            soDataInfo.floatValue  = floatValue;

                            AssetDatabase.AddObjectToAsset(soDataInfo, soDataTableSO);
                            soDataInfo.name = string.Format("SODataInfo{0}", index);
                            soDataTable.soDataInfoList2.Add(soDataInfo);
                        }
                    }
                }

                AssetDatabase.SaveAssets();
                AssetDatabase.Refresh();

                EditorUtility.SetDirty(soDataTableSO);
                lastMsg = "Succeeded import data to prefab file : " + prefabFilePath;
            }
            else
            {
                lastMsg = "Result : Fail. Reason : Data was not found.";
            }

            return(true);
        } catch (Exception e)
        {
            UnityEngine.Debug.Log(e.Message);
            lastMsg = "Result : fail\nMessage : " + e.Message;
            return(false);
        } finally {
            if (basicTableInstance != null)
            {
                DestroyImmediate(basicTableInstance);
            }
        }
    }