คำนำ
เมื่อทีมของฉันกำลังพัฒนาโมดูลระบบภาษี ฉันพบว่าพวกเขาต้องใช้เวลา 80% ในการแก้ปัญหาการคำนวณ โดยเฉพาะการคำนวณในตาราง
เขียนโค้ด front-end js (เพราะการป้อนข้อมูลของผู้ใช้ในตารางจะส่งผลต่อเซลล์อื่น ๆ ดังนั้นจึงต้องนำเสนอค่าใหม่หลังการคำนวณแก่ผู้ใช้ทันที) เขียนโค้ดส่วนหลัง (เนื่องจากการเปลี่ยนแปลงข้อมูลตารางของผู้ใช้จะส่งผลต่อ ตารางอื่นๆ จึงจำเป็นต้อง Update ข้อมูลของตารางที่ได้รับผลกระทบเมื่อผู้ใช้คลิกบันทึก) ใช้วิธีการคำนวณที่แก้ไขแล้ว ทำให้นักพัฒนาจำเป็นต้องแก้ไขโค้ดดังนั้นฉันจึงตรวจสอบฟังก์ชันของโมดูลภาษีอื่นๆ และพบว่าระบบภาษีใช้การควบคุมตารางจำนวนมาก ซึ่งเกี่ยวข้องกับปัญหาการคำนวณไม่มากก็น้อย วิธีการคำนวณเป็นแบบฮาร์ดโค้ดทั้งหมด
การคำนวณ ซึ่งเป็นการกระทำการเขียนโค้ดทั่วไปนี้ จริงๆ แล้วชวนให้นึกถึงสูตรใน Excel มาก ไม่ต้องพูดถึงว่าเอกสารข้อกำหนดนั้นมีให้ในรูปแบบของ Excel เมื่อเราใช้ Excel เราสามารถตั้งค่าสูตรในเซลล์ได้ โดยการเปลี่ยนค่าของเซลล์ต้นทาง Excel จะคำนวณสูตรของเซลล์โดยอัตโนมัติและกำหนดค่าผลลัพธ์ให้กับเซลล์เป้าหมาย ดังนั้น เราสามารถอ้างถึงโมเดลนี้ได้หรือไม่ นักพัฒนาไม่จำเป็นต้องเขียนตรรกะการคำนวณที่ซับซ้อนและยากอีกต่อไป พวกเขาเพียงแปลงให้เป็นคำสั่งในรูปแบบเฉพาะตามสูตรที่จัดทำโดยการใช้งาน จากนั้นจึงเรียกกลไกการคำนวณบางอย่างไปที่ ส่งออกผลลัพธ์ นำเสนอผลลัพธ์ให้กับผู้ใช้หรือคงไว้ในฐานข้อมูล? คำตอบคือใช่ และหัวใจสำคัญของทั้งหมดก็คือเครื่องมือคำนวณอัตโนมัติ-AutoCalculate
ผล
AutoCalculate เป็นโซลูชันสำหรับการคำนวณตารางที่ซับซ้อน ซึ่งช่วยให้คุณสามารถบันทึกโค้ดตรรกะการคำนวณได้หลายร้อยหรือหลายพันบรรทัด นับจากนี้ไป การเขียนโค้ดจะง่ายเหมือนกับการเขียนสูตร Excel
ขอบเขตการใช้งาน
แผนกต้อนรับ:
เหมาะสำหรับการดำเนินการที่ซับซ้อนด้วยสูตรในการควบคุมตาราง js ทั้งหมด เช่น ตาราง ElementUI, การควบคุมตาราง EasyUI, ตาราง ParamQuery เป็นต้น
หลังเวที:
ใช้งานได้ ต้องใช้เครื่องยนต์ V8
การใช้งานแผนกต้อนรับ
AutoCalculate ประกอบด้วยสองส่วน ได้แก่ สูตรและกลไกการคำนวณ สูตรคือสตริงที่เขียนตามไวยากรณ์เฉพาะ เช่น: [เดือนที่ 12,1]#3 = [เดือนที่ 11,1] * 10 กลไกการคำนวณคือ AutoCalculate .js รับผิดชอบในการแยกวิเคราะห์สูตร เรามาเริ่มกันที่วิธีการเขียนสูตรกันก่อน
เซลล์
สมมติว่ามีสถานการณ์เช่นนี้ เซลล์ 1 = เซลล์ 2 + เซลล์ 3 สูตรที่เกี่ยวข้องคือ:
[เดือน 1,1] = [เดือน 1,2] + [เดือน 1,3]
ขั้นแรกเรามาดูกันว่า [Month1,1]
หมายถึงอะไร อันดับแรก วงเล็บเหลี่ยม [ ]
แสดงถึงเซลล์ Month1 คือชื่อคอลัมน์ที่ตรงกับ "มกราคม" ตามด้วยเครื่องหมายจุลภาค ,
และ 1 ต่อไปนี้แทน RowNo = 1 . และอื่นๆ
[Month1,2]
แสดงถึงเซลล์ที่มีคอลัมน์เป็น "มกราคม" และ RowNo = 2
[Month1,3]
แสดงถึงเซลล์ที่มีคอลัมน์เป็น "มกราคม" และ RowNo = 3
ดังนั้นเราจึงสามารถใช้ [y,x]
แทนเซลล์ได้ y คือชื่อคอลัมน์ หรือที่เรียกว่า ordinate x คือค่าของ RowNo หรือที่เรียกว่า abscissa
จะเกิดอะไรขึ้นถ้าตารางไม่มีคอลัมน์ RowNo? หากคุณต้องการค้นหาคำตอบโปรดอ่านต่อ
ปล่อยให้สูตรมีผล
//ขั้นแรกแนะนำ AutoCalculate.js นำเข้า AutoCalculate จาก '../components/AutoCalculate'; - //กำหนดอินสแตนซ์ AutoCalculate สูตรคืออาร์เรย์ของสูตร ให้ autoCal = new AutoCalculate(สูตร); /* เรียกเมธอด cal * gridDatas (จำเป็น): ข้อมูลตาราง * refField (จำเป็น): ช่องอ้างอิง ซึ่งก็คือค่าของช่องคือ x ในเซลล์ [y,x] */ autoCal.cal(gridDatas, ฟิลด์อ้างอิง);
สูตรพื้นที่
ที่จริงแล้ว นอกจากเดือนมกราคม กุมภาพันธ์ มีนาคม... ยังมีสูตรที่คล้ายกันสำหรับเดือนตุลาคม นั่นก็คือ:
[เดือน 1,1] = [เดือน 1,2] + [เดือน 1,3] [เดือน 2,1] = [เดือน 2,2] + [เดือน 2,3] [เดือน 3,1] = [เดือน 3,2] + [เดือน 3,3] - - - [เดือน 10,1] = [เดือน 10,2] + [เดือน 10,3]
กล่าวอีกนัยหนึ่ง เราจำเป็นต้องเขียนสูตรดังกล่าว 10 สูตร สำหรับสถานการณ์ง่ายๆ นี่ไม่ใช่ปัญหา อย่างไรก็ตาม สำหรับบางตารางที่มีสูตรจำนวนมาก วิธีการเขียนนี้มีข้อเสียอยู่บ้าง เช่น ง่ายต่อการทำผิดพลาด และสูตรยังยาวอีกด้วย จึงมีสูตรพื้นที่
จากสูตรข้างต้น เราจะพบว่าแต่ละสูตรสามารถถูกแทนที่ด้วยสูตรได้จริง เช่น สูตรต่อไปนี้:
[@,1] = [@,2] + [@,3]
ไม่มีชื่อคอลัมน์ที่ชัดเจนที่นี่ มีเพียงตัวยึดตำแหน่ง @ เท่านั้น แต่เพียงพอที่จะแสดงถึง 10 สูตรข้างต้น ในขณะนี้ เราเพียงแต่ต้องกรอกชื่อคอลัมน์ในตำแหน่งที่เหมาะสมเท่านั้น ดังนั้นสูตรสุดท้ายคือ:
{เดือน1, เดือน2, เดือน3, เดือน4, เดือน5, เดือน6, เดือน7, เดือน8, เดือน9, เดือน10}[@,1] = [@,2] + [@,3]
คุณต้องแยกชื่อคอลัมน์ด้วย ,
วางไว้ในวงเล็บปีกกา { }
เพื่อให้ 1 สูตรเทียบเท่ากับ 10 สูตร
ตัวยึดตำแหน่งสามารถใช้ได้ไม่เพียงแต่กับลำดับเท่านั้น แต่ยังใช้กับ abscissa ได้ด้วย ดังที่แสดงในสูตรต่อไปนี้:
// สูตร 1: [ปีรวม 3] = [เดือน 1,3] + [เดือน 2,3] + [เดือน 3,3] + [เดือน 4,3] + [เดือน 5,3] + [เดือน 6,3] + [เดือน 7,3] + [เดือน 8 ,3] + [เดือน 9,3] + [เดือน 10,3] // สูตร 2: [ปีรวม,4] = [เดือน 1,4] + [เดือน 2,4] + [เดือน 3,4] + [เดือน 4,4] + [เดือน 5,4] + [เดือน 6,4] + [เดือน 7,4] + [เดือน 8 ,4] + [เดือน 9,4] + [เดือน 10,4] // สูตร 3: [ปีรวม 5] = [เดือน 1,5] + [เดือน 2,5] + [เดือน 3,5] + [เดือน 4,5] + [เดือน 5,5] + [เดือน 6,5] + [เดือน 7,5] + [เดือน 8 ,5] + [เดือน 9,5] + [เดือน 10,5] // สูตร 4: [ปีรวม,6] = [เดือน 1,6] + [เดือน 2,6] + [เดือน 3,6] + [เดือน 4,6] + [เดือน 5,6] + [เดือน 6,6] + [เดือน 7,6] + [เดือน 8 ,6] + [เดือน 9,6] + [เดือน 10,6] // สูตร 5: [ปีรวม 2] = [เดือน 1,2] + [เดือน 2,2] + [เดือน 3,2] + [เดือน 4,2] + [เดือน 5,2] + [เดือน 6,2] + [เดือน 7,2] + [เดือน 8 ,2] + [เดือน 9,2] + [เดือน 10,2] // สูตร 6: [ปีรวม,7] = [เดือน 1,7] + [เดือน 2,7] + [เดือน 3,7] + [เดือน 4,7] + [เดือน 5,7] + [เดือน 6,7] + [เดือน 7,7] + [เดือน 8 ,7] + [เดือน 9,7] + [เดือน 10,7] // สูตร 7: [ปีรวม,9] = [เดือน 1,9] + [เดือน 2,9] + [เดือน 3,9] + [เดือน 4,9] + [เดือน 5,9] + [เดือน 6,9] + [เดือน 7,9] + [เดือน 8 ,9] + [เดือน 9,9] + [เดือน 10,9] // สูตร 8: [ปีรวม 12] = [เดือน 1,12] + [เดือน 2,12] + [เดือน 3,12] + [เดือน 4,12] + [เดือน 5,12] + [เดือน 6,12] + [เดือน 7,12] + [เดือน 8 ,12] + [เดือน 9,12] + [เดือน 10,12] // สูตร 9: [ปีรวม 13] = [เดือน 1,13] + [เดือน 2,13] + [เดือน 3,13] + [เดือน 4,13] + [เดือน 5,13] + [เดือน 6,13] + [เดือน 7,13] + [เดือน 8 ,13] + [เดือน 9,13] + [เดือน 10,13]
โดยใช้สูตรพื้นที่ เขียนได้ดังนี้
{2, 3, 4, 5, 6, 7, 9, 12, 13}[รวมปี,@] = [เดือน 1,@] + [เดือน 2,@] + [เดือน 3,@] + [เดือน 4,@] + [ เดือน5,@] + [เดือน6,@] + [เดือน7,@] + [เดือน8,@] + [เดือน9,@] + [เดือน 10,@]
จะเห็นได้ว่าสูตรพื้นที่ทำให้การเขียนสูตรสะดวกมาก
รองรับไวยากรณ์ js
ในสถานการณ์จริง เรามักจะพบสูตรที่ซับซ้อนบางอย่าง ดังที่แสดงด้านล่าง สูตรเซลล์ใช้ฟังก์ชัน Max ที่มาพร้อมกับ Excel สำหรับสูตรดังกล่าว เราสามารถเขียนได้ดังนี้:
[เดือน1,9] = ([เดือน1,6] - [เดือน1,7] - [เดือน1,8] > 0 ? [เดือน1,6] - [เดือน1,7] - [เดือน1,8] : 0) + [เดือน1 ,5]
อย่างที่คุณเห็น สูตรรองรับไวยากรณ์ js คุณสามารถใส่ตัวแปร js หรือแม้แต่ฟังก์ชัน js ไว้ทางด้านขวาของเครื่องหมายเท่ากับของสูตรได้ ตราบใดที่มันเป็นไวยากรณ์ที่โปรแกรมแยกวิเคราะห์ js ยอมรับ มันก็ได้รับการสนับสนุน .
สิ่งหนึ่งที่ควรทราบคือ คุณไม่สามารถใส่องค์ประกอบอาร์เรย์ลงในสูตรได้ เนื่องจากองค์ประกอบอาร์เรย์ js มักจะมีสัญลักษณ์ "[ ]" ซึ่งขัดแย้งกับตัวบ่งชี้เซลล์ "[ ]" ในสูตร ดังนั้นจึงห้ามใช้องค์ประกอบอาร์เรย์ โปรดระวัง นี้.
[y]สูตร
ต่อไป มาดูสถานการณ์อื่น ดังแสดงในรูป ซึ่งมีความสัมพันธ์ดังกล่าว:
เซลล์ 1 = เซลล์ 2 - เซลล์ 3
คุณอาจเขียนสูตรต่อไปนี้อย่างรวดเร็ว:
[คอลัมน์3,1] = [คอลัมน์2,1] - [คอลัมน์1,1] [คอลัมน์3,2] = [คอลัมน์2,2] - [คอลัมน์1,2]
การเขียนในลักษณะนี้ไม่มีอะไรผิด แต่ฉันต้องเตือนคุณว่าแถวที่นี่ไม่ได้รับการแก้ไข กล่าวคือ จำนวนแถวในตารางขึ้นอยู่กับสถานการณ์ของฐานข้อมูลในขณะนั้นทั้งหมด วันนี้มีข้อมูลเพียง 3 แถว พรุ่งนี้มี 5 แถว และวันมะรืนนี้จะมี 50 บรรทัด เป็นไปไม่ได้ที่เราจะเพิ่มสูตรเมื่อจำนวนแถวเพิ่มขึ้น ดังนั้นสำหรับตารางประเภทนี้ที่มีจำนวนแถวไม่แน่นอน เราจึงมีวิธีการเขียนแบบใหม่ ฉันเรียกมันว่าสูตร [y] เพราะเมื่อเทียบกับสูตรทั่วไป ไม่มีพิกัดแนวนอน:
[คอลัมน์3] = [คอลัมน์2] - [คอลัมน์1]
ด้วยสูตรเพียงแถวเดียว AutoCalculate จะนำสูตรไปใช้กับแถวทั้งหมดภายใต้ชื่อคอลัมน์ที่ระบุ
คอลัมน์รวมและตำแหน่งทศนิยม
บางครั้ง เราจำเป็นต้องค้นหาผลรวมของคอลัมน์ใดคอลัมน์หนึ่ง แม้ว่าการค้นหาผลรวมของคอลัมน์ใดคอลัมน์หนึ่งอาจไม่ใช่เป้าหมายสูงสุดของเรา แต่ก็เป็นขั้นตอนที่จำเป็นสำหรับเราในการคำนวณให้เสร็จสิ้น ตัวอย่างเช่น มีความสัมพันธ์ดังต่อไปนี้:
เซลล์ 3 = เซลล์ 1 / เซลล์ 2
เซลล์ 2 คือค่ารวมของคอลัมน์ GroupApprovedTotal
ซึ่งเราใช้ <列名>
เพื่อเป็นตัวแทน นั่นคือ: <GroupApprovedTotal>
นอกจากนี้ แถวที่นี่ไม่คงที่และจำเป็นต้องใช้สูตร [y] ดังนั้นควรเขียนสูตรเป็น:
[GroupApprovedTotalPercent] = [GroupApprovedTotal] / <GroupApprovedTotal>
เรารู้ว่าในการหาร ตัวหารไม่สามารถเป็น 0 ได้ ดังนั้นวิธีเขียนที่ถูกต้องควรเป็น:
[GroupApprovedTotalPercent] = <GroupApprovedTotal> === 0 ? 0 : [GroupApprovedTotal] / <GroupApprovedTotal>
เมื่อคุณใส่สูตรนี้ในโค้ดของคุณและเริ่มโปรแกรม คุณควรจะฉลาดพอที่จะพบว่าค่าที่คุณได้รับนั้นไม่ถูกต้องเพียงพอ ตัวอย่างเช่น ค่าที่แสดงในเซลล์ ∆ ด้านบนคือ 66.91% หากเซลล์ของคุณ 1 และ เซลล์ 2 มีค่าเหมือนกับภาพด้านบน เซลล์ 3 ของคุณน่าจะเป็น 67%
โดยค่าเริ่มต้น AutoCalculate จะเก็บผลการคำนวณไว้เป็นทศนิยม 2 ตำแหน่ง 67% ซึ่งก็คือ 0.67 หากคุณต้องการได้ 66.91% ซึ่งก็คือ 0.6691 คุณต้องเก็บทศนิยมไว้ 4 ตำแหน่ง ในตอนนี้คุณต้องบอก AutoCalculate ที่ต้องเก็บทศนิยมไว้ 4 ตำแหน่ง ดังนั้นการเขียนให้สมบูรณ์ควรเป็น:
[GroupApprovedTotalPercent]#4 = <GroupApprovedTotal> === 0 ? 0 : [GroupApprovedTotal] / <GroupApprovedTotal>
ทางด้านซ้ายของเครื่องหมายเท่ากับในสูตรและทางด้านขวาของเซลล์ที่กำหนด ให้เพิ่มเครื่องหมาย "#" ตามด้วยจำนวนตำแหน่งทศนิยม โปรดทราบว่าต้องไม่มีช่องว่างระหว่าง #" และจำนวน ตำแหน่งทศนิยมและสามารถเว้นวรรคก่อนและหลังได้
ตารางที่ไม่มีแถวหมายเลข
ถึงเวลาตอบคำถามนี้แล้ว อยากถามทุกคนว่า เราจะหาจุดบนเครื่องบินได้อย่างไร? คำตอบก็คือ เราต้องการ abscissa และเรียงลำดับของจุดนี้ ในทำนองเดียวกัน จะหาเซลล์ในตารางได้อย่างไร? ประการแรก เราสามารถกำหนดลำดับได้ เนื่องจากทราบชื่อคอลัมน์ทั้งหมดแล้ว สิ่งสำคัญอยู่ที่การกำหนด Abscissa หากคุณใช้ RowNo ในการวางตำแหน่ง คุณจะรู้สึกคุ้นเคยอย่างแน่นอน เพราะมันคล้ายกับหมายเลขซีเรียลทางด้านซ้ายของ Excel มาก แต่ไม่ได้หมายความว่าจะใช้ได้เฉพาะตัวเลขเท่านั้นเป็น abscissa ตราบใดที่ค่าไม่ซ้ำกัน นั่นคือไม่ซ้ำ ก็สามารถใช้เป็น abscissa ได้
ตัวอย่างเช่น สมมติว่าตารางต่อไปนี้มีแถวคงที่สองแถวและไม่มี RowNo แต่จะเห็นได้ว่าหมายเลขบริษัท (BuCode) ไม่ซ้ำกัน ดังนั้น BuCode จะสามารถใช้เป็นฟิลด์อ้างอิงได้ และค่าของ BuCode คือ abscissa จากนั้นสามารถเขียนสูตรได้เป็น:
[SumDiffMonth1,F1136] = [กลุ่มการอนุมัติเดือน 1,F1136] - [เดือน 1,F1136] [SumDiffMonth1,F2056] = [กลุ่มการอนุมัติเดือน 1,F2056] - [เดือน 1,F2056]
หากมี RowNo ให้ใช้ RowNo เป็นฟิลด์อ้างอิงและเขียนดังนี้:
[SumDiffMonth1,2] = [การอนุมัติกลุ่มเดือน1,2] - [เดือน1,2] [SumDiffMonth1,3] = [การอนุมัติกลุ่มเดือน1,3] - [เดือน1,3]
คำนวณข้ามแหล่งข้อมูล
การประมวลผลข้ามแหล่งข้อมูลคืออะไร? เพื่อนที่เคยใช้สูตร Excel ควรจะเข้าใจได้ว่าสูตรในเซลล์ด้านล่างนี้หมายถึงอะไร แน่นอนว่าค่าของเซลล์นี้คือค่าที่คำนวณได้ของข้อมูลชีตอื่นๆ การคำนวณข้ามแหล่งข้อมูลได้รับการออกแบบมาโดยเฉพาะเพื่อจัดการกับสถานการณ์ดังกล่าว
เราแทบจะไม่เคยทำการคำนวณข้ามแหล่งข้อมูลในเบื้องหน้าเลย ในที่นี้ ฉันต้องการบอกวิธีเขียนสูตรและเรียกใช้การคำนวณอัตโนมัติเพื่อให้คุณสามารถใช้งานได้จริงในบท "การใช้งานแบ็กเอนด์"
ขั้นแรก เพื่อที่จะรับข้อมูลจากเซลล์แหล่งข้อมูลอื่น เราจำเป็นต้องขยายเซลล์ต่างๆ ก่อน เซลล์ของเรามีลักษณะดังนี้: [y,x] เรามาเรียกเซลล์เหล่านี้ว่าไบนารี่กันดีกว่า y] กลายเป็นเซลล์เดียว ตอนนี้ คุณจะเห็นเซลล์เดียวเช่นนี้ เซลล์: [แหล่งข้อมูลภายนอก, y, ค้นหาข้อมูลที่คุณต้องการ
นี่คือสูตรที่ใช้เซลล์สามองค์ประกอบ:
[เดือน 1,4] = [ภาษีขาออก,เดือน 1,7]
ในหมู่พวกเขา OutputTax คือชื่อของแหล่งข้อมูล คุณสามารถตั้งชื่อได้โดยพลการ ยิ่งกระชับมากเท่าไรก็ยิ่งดีเท่านั้น มิฉะนั้น สูตรที่ซับซ้อนจะเขียนยาวมากและอ่านยาก
สูตรต่อไปนี้จะนำค่าจากแหล่งข้อมูลสองแห่ง ได้แก่ OutputTax และ TaxRate:
[เดือน 1,5] = [ภาษีขาออก,เดือน 1,10] * (1 + [อัตราภาษี,เดือน 1,1] / 100)
ฉันเชื่อว่าโดยการอ่านเนื้อหาของบทที่แล้ว คุณสามารถเข้าใจความหมายของสูตรต่อไปนี้ได้แล้ว
ถึงเวลาเรียกวิธีการคำนวณของเราแล้ว เพื่อสาธิตผลลัพธ์ ฉันได้เพิ่มปุ่มและเขียนวิธีการในเหตุการณ์ปุ่ม
ดูสิ่งที่เราทำ:
1 รับ outputTaxDatas จากแหล่งข้อมูลภายนอก
② รับแหล่งข้อมูล payableTaxDatas ของตารางปัจจุบัน
3. รับแหล่งข้อมูลภายนอกอื่น ๆ :taxRateDatas จากฐานข้อมูล
④ นี่คือประเด็นสำคัญ มาดูที่ Constructor ของ AutoCalculate กัน
สูตร: สูตร อาร์เรย์
ตัวเลือก: พารามิเตอร์ทางเลือก วัตถุวัตถุ
ตัวเลือกมีแอตทริบิวต์ externalDatas ซึ่งแสดงถึงแหล่งข้อมูลภายนอก เนื่องจากอาจมีข้อมูลหลายรายการ และแต่ละองค์ประกอบอาร์เรย์เป็นวัตถุที่มี 3 คุณลักษณะ:
ชื่อ: ชื่อของแหล่งข้อมูลภายนอก ชื่อใดที่เลือกที่นี่สอดคล้องกับชื่อของแหล่งข้อมูลภายนอกในสูตร
RefField: ช่องอ้างอิง
ข้อมูล: แหล่งข้อมูล
หลังจากสร้างอินสแตนซ์ AutoCalculate แล้ว วิธีการคำนวณแบบใหม่จะถูกเรียกที่นี่ ซึ่งมีพารามิเตอร์ 2 ตัว:
gridDatas: ข้อมูลตารางที่ต้องคำนวณใหม่คืออาร์เรย์
RefField: ช่องอ้างอิง
AutoCalculate รองรับการควบคุมตาราง js ทั้งหมดและสามารถเรียกใช้ในเบื้องหลังได้ด้วยความช่วยเหลือของวิธีนี้ เพราะไม่ว่าจะเป็นการควบคุมตาราง js ประเภทใด ก็สามารถแยกข้อมูลตารางได้ (ข้อมูลบริสุทธิ์) อาร์เรย์ ตราบใดที่สิ่งนี้เพิ่งผ่านในอาร์เรย์
⑤ หลังจากที่เรียกการคำนวณแล้ว ค่าของ payableTaxDatas จะเป็นค่าที่คำนวณล่าสุดแล้ว ตอนนี้เพียงผูกเข้ากับตารางปัจจุบัน
อินเทอร์เฟซหลังจากรันโปรแกรม:
หลังจากคลิกเพื่อรับข้อมูล:
การใช้งานแบ็กเอนด์
หากต้องการเรียก AutoCalculate ในเบื้องหลัง เราจำเป็นต้องใช้กลไก V8 อีกจุดสำคัญคือต้องใช้สูตรในการเรียก AutoCalculate ในเบื้องหลัง วิธีก่อนหน้าของเราคือการใส่สูตรทั้งหมดลงในไฟล์ Extjs Controller ดังที่แสดงด้านล่าง:
เพื่ออำนวยความสะดวกในการโทรในเบื้องหลัง เราจะแยกสูตรเป็นไฟล์แยกต่างหาก
การเรียกพื้นหลัง AutoCalculate ถูกรวมไว้ในโปรเจ็กต์และใช้งานง่ายมาก
วิธีการเรียกดังแสดงในรูป:
หรือวิเคราะห์ทีละขั้นตอน:
① บันทึกข้อมูลของตารางปัจจุบัน
2) รับไดเร็กทอรีของไฟล์ js ซึ่งมีสูตรอยู่
3. รับแหล่งข้อมูลภายนอกสองแหล่ง
④ เรียกใช้เมธอดพื้นหลังแบบห่อหุ้ม โดยใช้ข้อมูลที่ได้รับในขั้นตอนที่ 2 และ 3 โดยที่ FormulaExpression คือนิพจน์ของสูตร นั่นคือ ใช้นิพจน์นี้เพื่อค้นหาสูตรในไฟล์ js ที่คุณระบุ
⑤ ข้อมูลใหม่ที่ส่งคืนในขั้นตอนก่อนหน้าเป็นข้อมูลล่าสุดหลังจากการคำนวณแล้ว ตอนนี้ให้บันทึกข้อมูลเหล่านี้ลงในฐานข้อมูล
สิ่งที่ควรทราบ
มีสองประเด็นที่ควรทราบเมื่อเขียนสูตร:
ไม่อนุญาตให้มีช่องว่างในเซลล์
/วิธีเขียนที่ถูกต้อง: [เดือน 12,1] = [เดือน 11,1] * 10 //เขียนผิด: [เดือน 12,1] = [เดือน 11, 1] * 10
ต้องไม่มีการเว้นวรรคก่อนเครื่องหมายทศนิยมและตำแหน่งทศนิยม
//เขียนถูกต้อง: [เดือน 12,1] #3 = [เดือน 11,1] * 10 //เขียนผิด: [เดือน 12,1] # 3 = [เดือน 11,1] * 10
นี่เป็นการสรุปบทความนี้เกี่ยวกับการบอกลาการเขียนโค้ดและการอนุญาตให้ตารางส่วนหน้าของคุณคำนวณโดยอัตโนมัติ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการคำนวณตารางส่วนหน้าอัตโนมัติ โปรดค้นหาบทความก่อนหน้าใน downcodes.com หรือเรียกดูบทความที่เกี่ยวข้องต่อไปนี้ I หวังว่าคุณจะทำเช่นนั้นในอนาคต สนับสนุน downcodes.com มากมาย!