暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

車輛紀錄.cs 9.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.SceneManagement;
  5. using UnityEngine.UI;
  6. using UnityEngine.Networking;
  7. using UnityEngine.EventSystems;
  8. using System.Text.RegularExpressions;
  9. using System.Data.SqlClient;
  10. using System.Runtime.InteropServices;
  11. using System.Text;
  12. using TMPro;
  13. using System;
  14. using System.IO;
  15. using ZXing;
  16. using ZXing.QrCode;
  17. using System.Net;
  18. using System.Data;
  19. using SimpleJSON;
  20. using System.Linq;
  21. using System.ComponentModel;
  22. using System.Runtime.InteropServices;
  23. using System.Globalization;
  24. using XCharts.Runtime;
  25. public class 車輛紀錄 : MonoBehaviour
  26. {
  27. [SerializeField] TextMeshProUGUI 姓名;
  28. [SerializeField] TextMeshProUGUI 車號;
  29. [SerializeField] TextMeshProUGUI 車型;
  30. [SerializeField] TextMeshProUGUI 年份;
  31. [SerializeField] TextMeshProUGUI 輪胎;
  32. [SerializeField] GameObject 選擇面板;
  33. [SerializeField] TMP_InputField 關鍵字;
  34. private JSONArray newjson;
  35. public GameObject buttonPrefab;
  36. public Transform buttonParent;
  37. public GameObject buttonceneter;
  38. private List<GameObject> copy = new List<GameObject>();
  39. public GameObject buttonPrefab1;
  40. public Transform buttonParent1;
  41. public GameObject buttonceneter1;
  42. private List<GameObject> copy1 = new List<GameObject>();
  43. public CanvasScaler canvasScaler;
  44. [SerializeField] GameObject 讀取面板;
  45. [SerializeField] TextMeshProUGUI 讀取;
  46. [SerializeField] GameObject 彈跳面板;
  47. [SerializeField] TextMeshProUGUI 彈跳文字;
  48. private string loadingText = "";
  49. private int dotCount = 0;
  50. // Start is called before the first frame update
  51. void Start()
  52. {
  53. Screen.autorotateToPortrait = false;
  54. Screen.orientation = ScreenOrientation.Portrait;
  55. float rate = 1000.0f / 1600.0f;
  56. if (canvasScaler == null)
  57. {
  58. canvasScaler = GetComponent<CanvasScaler>();
  59. }
  60. if (Main.Global.rate>rate)
  61. {
  62. canvasScaler.matchWidthOrHeight = 1f;
  63. }
  64. else
  65. {
  66. canvasScaler.matchWidthOrHeight = 0f;
  67. }
  68. StartCoroutine(AnimateText());
  69. //Main.Global.阿帕契路徑="http://106.1.48.106:8080/wp-content/themes/event-star/GF_main.php?";
  70. //Main.Global.預設伺服器路徑="GF01";
  71. 選擇面板.SetActive(true);
  72. }
  73. IEnumerator 客戶搜尋()
  74. {
  75. 讀取面板.SetActive(true);
  76. if (copy != null)
  77. {
  78. DeletetextCopy();
  79. }
  80. string strcon = "客戶搜尋";
  81. string se = Main.Global.預設伺服器路徑;
  82. string pa1 = 關鍵字.text;
  83. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}", strcon, se, pa1);
  84. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  85. yield return request.SendWebRequest();
  86. if (request.result == UnityWebRequest.Result.ConnectionError)
  87. {
  88. Debug.Log(request.error);
  89. yield break;
  90. }
  91. JSONNode json = JSON.Parse(request.downloadHandler.text);
  92. int sum = 2;
  93. for (int i = 0; i < json.Count; i++)
  94. {
  95. GameObject buttonObj = Instantiate(buttonPrefab) as GameObject;
  96. buttonObj.GetComponent<RectTransform>().anchoredPosition = new Vector2(2, -sum);
  97. buttonObj.transform.SetParent(buttonParent, false);
  98. TextMeshProUGUI[] text = buttonObj.GetComponentsInChildren<TextMeshProUGUI>();
  99. Button bt = buttonObj.GetComponentInChildren<Button>();
  100. int index = i;
  101. bt.onClick.AddListener(() =>
  102. {
  103. 關鍵字.text="";
  104. 姓名.text=json[index][1].ToString().Trim('"');
  105. 車號.text=json[index][3].ToString().Trim('"');
  106. StartCoroutine(單號搜尋());
  107. 選擇面板.SetActive(false);
  108. });
  109. text[0].text =json[i][1].ToString().Trim('"');
  110. text[1].text =json[i][3].ToString().Trim('"');
  111. sum+=75;
  112. copy.Add(buttonObj);
  113. }
  114. buttonceneter.GetComponent<RectTransform>().sizeDelta = new Vector2(buttonceneter.GetComponent<RectTransform>().sizeDelta.x, sum);
  115. 讀取面板.SetActive(false);
  116. }
  117. public void 搜尋()
  118. {
  119. StartCoroutine(客戶搜尋());
  120. }
  121. IEnumerator 單號搜尋()
  122. {
  123. 讀取面板.SetActive(true);
  124. if (copy1 != null)
  125. {
  126. DeletetextCopy1();
  127. }
  128. string strcon = "單號搜尋";
  129. string se = Main.Global.預設伺服器路徑;
  130. string pa1 = 姓名.text;
  131. string pa2 = 車號.text;
  132. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}&PA2={3}", strcon, se, pa1, pa2);
  133. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  134. yield return request.SendWebRequest();
  135. if (request.result == UnityWebRequest.Result.ConnectionError)
  136. {
  137. Debug.Log(request.error);
  138. yield break;
  139. }
  140. JSONNode json = JSON.Parse(request.downloadHandler.text);
  141. if (json[0][8].ToString().Trim('"')=="保養維修")
  142. {
  143. 車型.text= json[0][5].ToString().Trim('"');
  144. 年份.text= json[0][6].ToString().Trim('"');
  145. 輪胎.text= json[0][7].ToString().Trim('"');
  146. }
  147. else
  148. {
  149. 車型.text= "";
  150. 年份.text= "";
  151. 輪胎.text= "";
  152. }
  153. newjson = new JSONArray();
  154. for (int i = 0; i < json.Count; i++)
  155. {
  156. string str = json[i][0].ToString().Trim('"');
  157. yield return StartCoroutine(明細搜尋(str));
  158. }
  159. int sum = 2;
  160. string asd = newjson[0][0].ToString().Trim('"');
  161. int j = 0;
  162. for (int i = 0; i < newjson.Count; i++)
  163. {
  164. GameObject buttonObj = Instantiate(buttonPrefab1) as GameObject;
  165. buttonObj.GetComponent<RectTransform>().anchoredPosition = new Vector2(2, -sum);
  166. buttonObj.transform.SetParent(buttonParent1, false);
  167. TextMeshProUGUI[] text = buttonObj.GetComponentsInChildren<TextMeshProUGUI>();
  168. Image[] childImages = buttonObj.GetComponentsInChildren<Image>();
  169. if (i < newjson.Count - 1 && asd != newjson[i+1][0].ToString().Trim('"'))
  170. {
  171. asd = newjson[i+1][0].ToString().Trim('"');
  172. }
  173. else
  174. {
  175. childImages[6].gameObject.SetActive(false);
  176. }
  177. text[0].text =(i+1).ToString();
  178. string str = newjson[i][0].ToString().Trim('"');
  179. text[1].text=str.Substring(3, 8);
  180. text[3].text =newjson[i][1].ToString().Trim('"').Replace("\\\\", "\\");
  181. text[4].text =double.Parse(newjson[i][2]).ToString("#,##0.##");
  182. double parsedValue;
  183. if (double.TryParse(newjson[i][3].ToString().Trim('"'), out parsedValue))
  184. {
  185. text[2].text = parsedValue.ToString("#,##0");
  186. }
  187. else
  188. {
  189. text[2].text = newjson[i][3].ToString().Trim('"');
  190. }
  191. sum+=75;
  192. copy1.Add(buttonObj);
  193. }
  194. buttonceneter1.GetComponent<RectTransform>().sizeDelta = new Vector2(buttonceneter1.GetComponent<RectTransform>().sizeDelta.x, sum);
  195. 讀取面板.SetActive(false);
  196. }
  197. IEnumerator 明細搜尋(string str)
  198. {
  199. string strcon = "明細搜尋";
  200. string se = Main.Global.預設伺服器路徑;
  201. string strUrl = string.Format(Main.Global.阿帕契路徑+"comm={0}&se={1}&PA1={2}", strcon, se, str);
  202. UnityWebRequest request = UnityWebRequest.Get(strUrl);
  203. yield return request.SendWebRequest();
  204. if (request.result == UnityWebRequest.Result.ConnectionError)
  205. {
  206. Debug.Log(request.error);
  207. yield break;
  208. }
  209. JSONNode json = JSON.Parse(request.downloadHandler.text);
  210. for (int i = 0; i < json.Count; i++)
  211. {
  212. JSONNode newValue = new JSONObject();
  213. newValue["單號"] = json[i][0].ToString().Trim('"');
  214. newValue["細項"] = json[i][2].ToString().Trim('"').Replace("\\\\", "\\");
  215. newValue["數量"] = json[i][3].ToString().Trim('"');
  216. newValue["里程"] = json[i][4].ToString().Trim('"');
  217. newjson.Add(newValue);
  218. }
  219. }
  220. public void 清單()
  221. {
  222. 選擇面板.SetActive(true);
  223. }
  224. public void DeletetextCopy()
  225. {
  226. foreach (GameObject i in copy)
  227. {
  228. Destroy(i);
  229. }
  230. copy.Clear();
  231. }
  232. public void DeletetextCopy1()
  233. {
  234. foreach (GameObject i in copy1)
  235. {
  236. Destroy(i);
  237. }
  238. copy1.Clear();
  239. }
  240. IEnumerator AnimateText()
  241. {
  242. string qqq = 讀取.text.ToString();
  243. while (true)
  244. {
  245. yield return new WaitForSeconds(0.5f);
  246. if (dotCount < 3)
  247. {
  248. loadingText += ".";
  249. dotCount++;
  250. }
  251. else
  252. {
  253. loadingText = "";
  254. dotCount = 0;
  255. }
  256. 讀取.text = qqq+loadingText;
  257. }
  258. }
  259. public void exit()
  260. {
  261. change_Secen(1);
  262. }
  263. public void change_Secen(int _screenNum)
  264. {
  265. //Main.Global.判斷是否第一次=true;
  266. SceneManager.LoadScene(_screenNum);
  267. }
  268. }