ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 5369|ตอบกลับ: 2

[VB6] การป้อนข้อมูลรายละเอียดการขายสินค้าเข้าสู่ตาราง FarPoint Spread

[คัดลอกลิงก์]

320

กระทู้

512

โพสต์

6583

เครดิต

ผู้ดูแลระบบ

ทองก้อน ทับทิมกรอบ

Rank: 9Rank: 9Rank: 9

เครดิต
6583



จากโปรแกรมการพิมพ์ใบเสร็จ ที่แอดมินได้ทำการแจกจ่ายให้ผู้ใช้งานทั่วไปได้ใช้งานฟรี (อ่านรายละเอียดและดาวน์โหลดได้ที่นี่) แอดมินใช้ Visual Basic 6 ในการพัฒนา โดยให้ FarPoint Spread ป้อนหรือรับข้อมูลรายละเอียดของสินค้าในแต่ละแถว ซึ่งวันนี้แอดมินจะมาถ่ายทอดความรู้ไว้เป็นวิทยาทานให้แก่ผู้ที่ยังไม่รู้ แต่ใฝ่รู้ทั้งหลายได้รับรู้กันครับ อย่างที่แอดมินได้เกริ่นนำไปในตอนที่แล้วว่า ลักษณะการใช้งานของ FarPoint มันเหมือนกับการใช้ตารางใน Excel โดยเราต้องรู้หลักและแถว เพื่อเข้าไปจัดการในแต่ละเซลล์ ซึ่งบทความนี้แอดมินยิ่งจะย้ำให้เห็นถึง วิธีการ UnBound Data หรือ ไม่มีแหล่งจ่ายข้อมูล (Data Source) มาให้ เราจะอาศัยการป้อนข้อมูลลงไปเท่านั้น (ตอนหน้าถึงจะโหลดข้อมูลเข้าอีกที เพื่อทำการพิมพ์รายงาน) ในบทความตอนนี้สิ่งที่ท่านจะได้เรียนรู้ก็คือ ...

- วิธีการตั้งค่าคุณสมบัติ (Properties) เพื่อให้รับค่าเฉพาะตัวเลขจำนวนเต็ม เลขทศนิยม หรือข้อมูลชนิดอื่นๆตามที่เราต้องการได้เท่านั้น (Validating Data)
- วิธีการนำข้อมูลในแต่ละเซลล์ที่กำหนดไว้ เพื่อมาคำนวณหาค่าตัวเลขผลรวม
- วิธีการเพิ่ม หรือ ลบแถว จากจุดที่ต้องการ

อนึ่ง แม้ว่า FarPoint Spread มันมี Designer ติดมาให้ด้วย เพื่อช่วยให้เราสามารถออกแบบตารางได้อย่างไม่ยากเย็น แต่แอดมินไม่นิยมใช้รูปแบบของ Design Time มากนัก เพราะมันยากต่อการจดจำ และขาดความยืดหยุ่นในความต้องการที่อาจจะเกิดการเปลี่ยนแปลง ดังนั้นบทความนี้แอดมินจะใช้การเขียนโค้ดแบบ Run Time ทั้งหมด รายละเอียดของการใช้ Designer ท่านต้องไปศึกษาเพิ่มเติมกันเอาเองนะครับ

ดาวน์โหลดชุดติดตั้ง FarPoint Spread ActiveX และ Update 8.0.21 ล่าสุดจากผู้ผลิต (เฉพาะสมาชิกเท่านั้น)


FarPoint Spread Designer ...


หน้าจอของการออกแบบ และการเรียกใช้ Component ...

โค้ดการตั้งค่าคุณสมบัติของ FarPoint Spread ในแบบ Run Time ...
  1. ' / --------------------------------------------------------------------------------
  2. ' / โปรแกรมย่อยที่กำหนดค่าคุณสมบัติ (Properties) ต่างๆ ให้กับ Spread
  3. Sub SetupSpread()
  4. ' / --------------------------------------------------------------------------------
  5.     ' แสดงแถบแสงหรือไม่แสดง
  6.     fpData.OperationMode = OperationModeNormal   ' เอาไว้ป้อนข้อมูล
  7.     'fpData.OperationMode = OperationModeSingle    ' แถบ Selection
  8.     'fpSpread.OperationMode = OperationModeRead     ' ไม่มีแถบ
  9.     'fpSpread.OperationMode = OperationModeRow
  10.    
  11.     ' สามารถจัดเรียง หรือ Sort Order บนหัวคอลัมภ์ได้
  12.     fpData.UserColAction = UserColActionSortNoIndicator ' = UserColActionSort
  13.    
  14.     ' ปรับหน่วยวัด
  15.     'fpData.UnitType = UnitTypeNormal
  16.     'fpData.UnitType = UnitTypeTwips
  17.     'fpData.UnitType = UnitTypeVGABase
  18.    
  19.     ' การปรับความสูงของแถวทุกๆแถว (ค่า -1 หมายถึงทุกแถวครับ)
  20.     fpData.RowHeight(-1) = 18    ' หน่วยวัด Point
  21.     fpData.Appearance = Appearance3D
  22.     fpData.AppearanceStyle = AppearanceStyleEnhanced ' = AppearanceStyleVisualStyles
  23.    
  24.     ' เวลากด F2 เพื่อแก้ไขข้อมูลในแต่ละเซลล ์ให้เลือกข้อมูลทั้งหมด หรือสามารถเริ่มคีย์ค่าใหม่ได้ทันที
  25.     fpData.EditModeReplace = True
  26.     fpData.CellType = CellTypeEdit
  27.    
  28.     ' การกำหนด Column แบบ Run Time
  29.     With fpData
  30.         ' หลักแรก คือ หลักที่ 0 ... จะเป็นการแสดงหมายเลขแถว เพื่ออ้างอิงในลักษณะ Excel เช่น
  31.         .SetText 1, 0, "รหัสสินค้า"
  32.         .SetText 2, 0, "รายละเอียด"
  33.         .SetText 3, 0, "หน่วยละ"
  34.         .SetText 4, 0, "จำนวน"
  35.         .SetText 5, 0, "รวมจำนวนเงิน"
  36.         .SetText 6, 0, " "
  37.         .SetText 7, 0, " "
  38.         
  39.         ' จำนวนหลักทั้งหมด
  40.         .MaxCols = 7
  41.         ' เป็นแถวว่าง 1 แถว
  42.         .MaxRows = 1
  43.         
  44.         ' กำหนดคุณสมบัติต่างๆของแต่ละหลักแบบ Run Time
  45.         ' ID หรือ รหัสสินค้า
  46.         .Col = 1
  47.         .TypeTextWordWrap = True
  48.         .TypeVAlign = TypeVAlignCenter
  49.         ' จำกัดความยาวในเซลล์ หากเวลาที่เราใช้กับฐานข้อมูล จะได้ไม่มีปัญหาในการจัดเก็บที่กำหนดจากฟิลด์ข้อมูล
  50.         .TypeMaxEditLen = 50
  51.         
  52.         ' Description
  53.         .Col = 2
  54.         .TypeTextWordWrap = True
  55.         .TypeVAlign = TypeVAlignCenter
  56.         .TypeMaxEditLen = 175
  57.         
  58.         ' หน่วยละ
  59.         .Col = 3
  60.         ' การจัดตำแหน่งแนวนอน
  61.         .TypeHAlign = TypeHAlignRight
  62.         ' การจัดตำแหน่งแนวตั้ง
  63.         .TypeVAlign = TypeVAlignCenter
  64.         ' กำหนดการป้อนค่าตัวเลขจำนวนเงินเท่านั้น (หรือหากต้องการให้เป็นเลขจำนวนเต็มก็กำหนด CellTypeNumber แทน)
  65.         .CellType = CellTypeCurrency
  66.         ' ตามหลังจุศนิยม
  67.         .TypeNumberDecPlaces = 2
  68.         ' ไม้แสดงสัญลักษณ์ตัวเงิน
  69.         .TypeCurrencyShowSymbol = False
  70.         ' ค่าต่ำสุด
  71.         .TypeCurrencyMin = 1
  72.         
  73.         ' จำนวน
  74.         .Col = 4
  75.         ' การจัดตำแหน่งแนวนอน
  76.         .TypeHAlign = TypeHAlignRight
  77.         ' การจัดตำแหน่งแนวตั้ง
  78.         .TypeVAlign = TypeVAlignCenter
  79.         ' กำหนดการป้อนค่าตัวเลขจำนวนเงินเท่านั้น (เลขทศนิยม)
  80.         .CellType = CellTypeCurrency
  81.         ' ตามหลังจุศนิยม
  82.         .TypeNumberDecPlaces = 2
  83.         ' ไม่แสดงสัญลักษณ์ตัวเงิน
  84.         .TypeCurrencyShowSymbol = False
  85.         .TypeCurrencyMin = 0
  86.         
  87.         ' รวมจำนวนเงิน
  88.         .Col = 5
  89.         ' ล็อคการคีย์ข้อมูล
  90.         .Lock = True
  91.         .TypeHAlign = TypeHAlignRight
  92.         .TypeVAlign = TypeVAlignCenter
  93.         .CellType = CellTypeCurrency
  94.         .TypeCurrencyShowSymbol = False
  95.         ' จุดทศนิยม 2 ตัว
  96.         .TypeNumberDecPlaces = 2
  97.         ' แสดงเครื่องหมายคอมม่า (,)
  98.         .TypeCurrencyShowSep = True
  99.         
  100.         ' ปุ่มเพิ่มแถว
  101.         .Col = 6
  102.         .CellType = CellTypeButton
  103.         .TypeButtonText = "เพิ่ม F3"
  104.         .ColWidth(4) = 120
  105.         .Lock = True
  106.         .BlockMode = False
  107.         ' ปุ่มลบแถว
  108.         .Col = 7
  109.         .CellType = CellTypeButton
  110.         .TypeButtonText = "ลบ F5"
  111.         .ColWidth(4) = 120
  112.         .Lock = True
  113.    
  114.     End With
  115.    
  116. End Sub
คัดลอกไปที่คลิปบอร์ด
การ Validating Data สามารถทำได้ง่ายดายมาก เช่น กรณีต้องการรับค่าเลขจุดทศนิยมเท่านั้น เราก็กำหนด fpData.CellType = CellTypeCurrency ทำให้เกิดความสะดวกและรวดเร็วต่อการพัฒนาโปรแกรมของเรา


โค้ดตั้งค่าเริ่มต้นในแต่ละหลักให้กับ FarPoint Spread ...
  1. ' / --------------------------------------------------------------------------------
  2. ' / ข้อมูลทดสอบ
  3. Sub SampleData()
  4. ' / --------------------------------------------------------------------------------
  5.     ' ใส่ข้อมูลทดสอบ
  6.     With fpData
  7.         .MaxRows = 1
  8.         .Row = 1
  9.         .Col = 1: .Text = ""    ' รหัสสินค้า
  10.         .Col = 2: .Text = ""    ' ชื่อหรือรายละเอียดสินค้า
  11.         .Col = 3: .Text = "0.00"    ' ราคาต่อหน่วย
  12.         .Col = 4: .Text = "1"           ' จำนวน
  13.         .Col = 5: .Text = "0.00"    ' ผลรวมราคา X จำนวน
  14.         .ForeColor = &HFF0000
  15.     End With
  16.     ' ActiveCell ไปที่หลัก 2 (รายละเอียด) แถวปัจจุบัน
  17.     fpData.SetActiveCell 2, fpData.ActiveRow
  18.     '/ หาผลรวม
  19.     Call CalTotalRow(1)
  20. End Sub
คัดลอกไปที่คลิปบอร์ด

โค้ดเหตุการณ์ที่สำคัญในการใช้งาน FarPoint Spread ...
  1. ' / --------------------------------------------------------------------------------
  2. ' / เหตุการณ์ก่อนทำการแก้ไขข้อมูลในเซลล์
  3. Private Sub fpData_BeforeEditMode( _
  4.     ByVal Col As Long, _
  5.     ByVal Row As Long, _
  6.     ByVal UserAction As FPUSpreadADO.BeforeEditModeActionConstants, _
  7.     CursorPos As Variant, Cancel As Variant _
  8.     )
  9. ' / --------------------------------------------------------------------------------
  10.     ' / ค่าที่สำคัญคือ Col, Row
  11.     ' รับค่าหลัก, แถว
  12.     fpData.Col = Col: fpData.Row = Row
  13.     ' ปกติเราจะเก็บค่าเดิมก่อนมีการเปลี่ยนแปลง เผื่อว่าต้องการคืนค่ากลับ เช่น
  14.     'strDataCol = fpData.Value  '<-- strDataCol ต้องประกาศแบบ Public สำหรับให้ทุกโมดูลในฟอร์มนี้มองเห็น
  15. End Sub

  16. ' / --------------------------------------------------------------------------------
  17. ' / เมื่อเกิดการคีย์ข้อมูลเข้าไปในแต่ละเซลล์
  18. Private Sub fpData_Change(ByVal Col As Long, ByVal Row As Long)
  19. ' / --------------------------------------------------------------------------------
  20.     fpData.Row = Row
  21.     ' เลือกหลักที่ต้องการให้ตรวจสอบ
  22.     Select Case fpData.ActiveCol
  23.         ' ราคาต่อหน่วย
  24.         Case 3:
  25.             ' จำนวน
  26.             fpData.Col = 4
  27.             ' หากไม่ป้อนจำนวนตัวเลขใดๆ ก็กำหนดให้เป็น 1
  28.             If fpData.Value = "" Then fpData.Value = "1.00"
  29.    
  30.         ' จำนวน
  31.         Case 4:
  32.             ' หน่วยละ
  33.             fpData.Col = 3
  34.             If fpData.Value = "" Then fpData.Value = "0.00"
  35.    
  36.     End Select
  37.     '/ หาผลรวมใหม่
  38.     Call CalTotalRow(fpData.ActiveRow)
  39. End Sub

  40. ' / --------------------------------------------------------------------------------
  41. ' / โปรแกรมย่อยคำนวณหาราคา x จำนวน ในทุกๆแถวของตารางกริด (FarPoint)
  42. ' / หากเกิดค่าเปลี่ยนแปลงในหลักที่ 3 และหลักที่ 4 จะมาคำนวณผลต่างๆที่นี่
  43. Sub CalTotalRow(ByVal sRow As Long)
  44. ' / --------------------------------------------------------------------------------
  45.    
  46.     Dim UnitPrice As Currency
  47.     Dim Amount As Double
  48.     Dim i As Byte
  49.     Dim sGrandTotal As Currency
  50.    
  51.     With fpData
  52.         ' รับค่าแถวปัจจุบัน
  53.         .Row = sRow
  54.         ' เก็บค่าในหลักที่ 3 ไว้ในตัวแปร (หน่วยละ)
  55.         .Col = 3
  56.         ' .Text คือข้อมูลในเซลล์นั้นๆ เช่น จากหลักที่ 3 และแถวตามตัวแปร sRow ที่ถูกส่งมาจากเหตุการณ์ fpData_Change
  57.         If .Text <> "" Then
  58.             UnitPrice = Format(.Text, "0.00")
  59.         Else
  60.             UnitPrice = "0.00"
  61.         End If
  62.         
  63.         ' เก็บค่าในหลักที่ 4 ไว้ในตัวแปร (จำนวน)
  64.         .Col = 4
  65.         If .Text <> "" Then
  66.             Amount = Val(.Text)
  67.         Else
  68.             Amount = "0.00"
  69.         End If
  70.         
  71.         ' นำค่าในหลักที่ 3 (ราคาต่อหน่วย) คูณกับหลักที่ 4 (จำนวนสินค้า) ผลลัพธ์เก็บในหลักที่ 5 (จำนวนเงิน)
  72.         .Col = 5
  73.         .Text = Format(UnitPrice * Amount, "#,##0.00")
  74.         ' รวมจำนวนเงินทั้งหมด ตั้งแต่แถวที่ 1 ไปถึงแถวสุดท้ายของ Spread (FarPoint)
  75.         For i = 1 To .DataRowCnt ' .MaxRows
  76.             ' ไล่ไปทีละแถว
  77.             .Row = i
  78.             ' หลัก 5 คือผลรวม
  79.             .Col = 5
  80.             If Trim(.Text) <> "" Then sGrandTotal = CDbl(.Text) + sGrandTotal
  81.         Next
  82.         
  83.         ' แสดงจำนวนเงินทั้งหมด
  84.         txtGrandTotal.Text = Format(sGrandTotal, "#,##0.00")
  85.         
  86.         ' เรื่องของภาษี
  87.         Select Case cmbTaxType.ListIndex
  88.             '/ ไม่คิดภาษี
  89.             Case 0:
  90.                 txtVat.Text = "0.00"
  91.                 ' รวมเป็นจำนวนเงินทั้งสิ้น
  92.                 txtNetTotal.Text = Format(CDbl(txtGrandTotal.Text) + CDbl(txtVat.Text), "#,##0.00")
  93.             
  94.             ' รวมภาษีใน
  95.             Case 1:
  96.                 Dim VatTemp As Currency
  97.                 VatTemp = (100 * Val(TAXRATE)) / (100 + Val(TAXRATE))
  98.                 ' คิดภาษี
  99.                 txtVat.Text = Format(CCur(txtGrandTotal.Text) * VatTemp / 100, "#,##0.00")
  100.                 txtGrandTotal.Text = Format(sGrandTotal - CCur(txtVat.Text), "#,##0.00")
  101.                 ' รวมเป็นจำนวนเงินทั้งสิ้น
  102.                 txtNetTotal.Text = Format(CDbl(txtGrandTotal.Text) + CDbl(txtVat.Text), "#,##0.00")
  103.             
  104.             ' ภาษีนอก
  105.             Case 2:
  106.                 ' คิดภาษี
  107.                 txtVat.Text = Format(CCur(txtGrandTotal.Text) * Val(TAXRATE) / 100, "#,##0.00")
  108.                 ' รวมเป็นจำนวนเงินทั้งสิ้น
  109.                 txtNetTotal.Text = Format(CCur(txtGrandTotal.Text) + CDbl(txtVat.Text), "#,##0.00")
  110.         End Select
  111.    
  112.     End With
  113.    
  114. End Sub

  115. ' / --------------------------------------------------------------------------------
  116. ' / เกิดเหตุการณ์นำเมาส์ไปคลิ๊กในเซลล์
  117. Private Sub fpData_Click(ByVal Col As Long, ByVal Row As Long)
  118. ' / --------------------------------------------------------------------------------
  119.     ' หากคลิ๊กเลือกที่ Header
  120.     If Row = 0 Then Exit Sub
  121.     '
  122.     Dim sRow As Integer
  123.     ' เลือกหลักที่ต้องการตรวจสอบ
  124.     Select Case Col
  125.         ' แสดงว่าคลิ๊กเพื่อเพิ่มแถว
  126.         Case 6
  127.             fpData.Col = 2
  128.             ' ตรวจสอบก่อนว่าในแถวนั้นๆ (sRow) มีการป้อนรายละเอียดของสินค้าหรือไม่
  129.             sRow = CheckDataColumn(fpData.Col, False)
  130.             If sRow > 0 Then
  131.                 MsgBox "กรุณาป้อนรายละเอียดก่อนเพิ่มแถวใหม่ด้วย.", vbOKOnly + vbInformation, "รายงานสถานะ"
  132.                 ' ActiveCell
  133.                 fpData.SetActiveCell 2, sRow
  134.                 Exit Sub
  135.             End If
  136.             
  137.             '/ หน่วยละ
  138.             fpData.Col = 3
  139.             ' ตรวจสอบก่อนว่าในแถวนั้นๆ (sRow) มีการป้อนราคาของสินค้าหรือไม่
  140.             sRow = CheckDataColumn(fpData.Col, True)
  141.             If sRow > 0 Then
  142.                 MsgBox "กรุณาป้อนราคาต่อหน่วยก่อนเพิ่มแถวใหม่ด้วย.", vbOKOnly + vbInformation, "รายงานสถานะ"
  143.                 ' ActiveCell บังคับให้โฟกัสไปอยู่ในเซลล์ที่ต้องใส่ราคาก่อน
  144.                 fpData.SetActiveCell 3, sRow
  145.                 Exit Sub
  146.             End If
  147.             
  148.             ' เมื่อตรวจสอบถูกต้องหมด ก็กำหนดแถวสูงสุด ไว้ล่วงหน้าขึ้นไปอีก 1 เพื่อทำรายการเพิ่มแถวใหม่เข้าไป
  149.             fpData.MaxRows = fpData.MaxRows + 1
  150.             ' เพิ่มรายการแถว ถัดจากแถวที่มันอยู่ (ActiveRow)
  151.             fpData.InsertRows fpData.ActiveRow + 1, 1
  152.             ' ใส่ค่าใหม่ลงไป
  153.             With fpData
  154.                 .Row = .ActiveRow + 1
  155.                 ' ProductID
  156.                 .Col = 1
  157.                 .Value = ""
  158.                 ' Description
  159.                 .Col = 2
  160.                 .Value = ""
  161.                 ' หน่วยละ
  162.                 .Col = 3
  163.                 .Value = "0.00"
  164.                 ' จำนวน
  165.                 .Col = 4
  166.                 .Value = "1.00"
  167.                 ' รวม
  168.                 .Col = 5
  169.                 .Value = "0.00"
  170.                 .ForeColor = &HFF0000
  171.             End With
  172.             ' ActiveCell ไปที่หลัก 2 (รายละเอียด) แถวปัจจุบัน + 1
  173.             fpData.SetActiveCell 2, fpData.ActiveRow + 1
  174.         
  175.         ' ลบแถว
  176.         Case 7:
  177.             ' ดักเอ้อเหรอ (Error) กรณีที่ไม่มีแถวข้อมูลอยู่เลย
  178.             If fpData.MaxRows = 1 Then Exit Sub
  179.             ' ลบแถวปัจจุบันที่มันอยู่ออกไปก่อน
  180.             fpData.DeleteRows fpData.ActiveRow, 1
  181.             ' กำหนดแถวสูงสุด โดยลดค่าลง 1
  182.             fpData.MaxRows = fpData.MaxRows - 1
  183.             '/ คำนวณผลรวมใหม่
  184.             Call CalTotalRow(fpData.ActiveRow)
  185.     End Select

  186. End Sub

  187. ' / --------------------------------------------------------------------------------
  188. ' / ตรวจสอบการป้อนข้อมูลในตารางกริด FarPoint
  189. Function CheckDataColumn(Col As Long, blnNumber As Boolean) As Integer
  190. ' / --------------------------------------------------------------------------------
  191.     CheckDataColumn = 0
  192.     Dim sRow As Integer
  193.     fpData.Col = Col
  194.     For sRow = 1 To fpData.DataRowCnt
  195.         fpData.Row = sRow
  196.         ' Check ว่าค่าที่ส่งมาเป็นตัวเลขหรือไม่
  197.         If blnNumber Then
  198.             If CDbl(fpData.Text) <= 0# Then
  199.                 CheckDataColumn = sRow
  200.                 Exit Function
  201.             End If
  202.         ' เป็นตัวอักษร
  203.         Else
  204.             If fpData.Text = "" Then
  205.                 CheckDataColumn = sRow
  206.                 Exit Function
  207.             End If
  208.         End If
  209.     Next
  210. End Function
คัดลอกไปที่คลิปบอร์ด

โค้ดที่เหลือของโปรเจค ... (เผื่อท่านขี้เกียจสมัครสมาชิกเข้ามาแสวงหาความรู้)
  1. Option Explicit

  2. ' ค่าคงที่อัตราภาษี 7%
  3. Const TAXRATE As Byte = 7

  4. ' / --------------------------------------------------------------------------------
  5. ' / คำนวณหาภาษี
  6. Private Sub cmbTaxType_Click()
  7. ' / --------------------------------------------------------------------------------
  8.     If fpData.DataRowCnt > 0 Then Call CalTotalRow(1)
  9. End Sub

  10. ' / --------------------------------------------------------------------------------
  11. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  12. ' / --------------------------------------------------------------------------------
  13.     Select Case KeyCode
  14.         
  15.         Case vbKeyF1: 'MsgBox "No help now."
  16.         Case vbKeyF3: Call fpData_Click(6, fpData.ActiveRow)
  17.         Case vbKeyF5: Call fpData_Click(7, fpData.ActiveRow)
  18.         Case vbKeyF10: Unload Me
  19.    
  20.    End Select
  21. End Sub

  22. ' / --------------------------------------------------------------------------------
  23. Private Sub Form_Load()
  24. ' / --------------------------------------------------------------------------------
  25.     Me.Move (Screen.Width - Width) \ 2, (Screen.Height - Height) \ 2
  26.     txtGrandTotal.Text = "0.00"
  27.     txtVat.Text = "0.00"
  28.     txtNetTotal.Text = "0.00"
  29.     With cmbTaxType
  30.         .AddItem "ไม่คิดภาษี"
  31.         .AddItem "รวมภาษีใน"
  32.         .AddItem "แยกภาษีนอก"
  33.     End With
  34.     cmbTaxType.ListIndex = 0
  35.     lblSummary(1).Caption = "คิดภาษี " & TAXRATE & " %"
  36.     ' จัดระเบียบ Spread แบบ Run Time
  37.     Call SetupSpread
  38.     Call SampleData
  39. End Sub

  40. ' / --------------------------------------------------------------------------------
  41. Private Sub Form_Resize()
  42. ' / --------------------------------------------------------------------------------
  43.     On Error Resume Next
  44.     '//
  45.     fraFP.Move 0, 60
  46.     fraFP.Width = Me.ScaleWidth - 30
  47.    
  48.     txtGrandTotal.Left = fraFP.Width - txtGrandTotal.Width - 300
  49.     txtVat.Left = txtGrandTotal.Left
  50.     txtNetTotal.Left = txtGrandTotal.Left
  51.     '//
  52.     lblSummary(0).Left = txtGrandTotal.Left - lblSummary(0).Width - 90
  53.     cmbTaxType.Left = txtVat.Left - cmbTaxType.Width - 90
  54.     lblSummary(1).Left = cmbTaxType.Left - lblSummary(1).Width - 90
  55.     lblSummary(2).Left = txtNetTotal.Left - lblSummary(2).Width - 90
  56.     '/
  57.     ' ตั้งค่าการขยายของ FarPoint ซึ่งต้องตั้งค่าตามหน่วย Twip ก่อน
  58.     fpData.Width = fraFP.Width - 60
  59.     With fpData
  60.         .UnitType = UnitTypeTwips
  61.         .RowHeight(-1) = 365
  62.         .ColWidth(1) = .Width \ 6 - 300
  63.         .ColWidth(2) = .Width \ 6 + 1600
  64.         .ColWidth(3) = .Width \ 6 - 600
  65.         .ColWidth(4) = .Width \ 6 - 800
  66.         .ColWidth(5) = .Width \ 6 - 500
  67.         .ColWidth(6) = 800
  68.         .ColWidth(7) = 800
  69.     End With
  70. End Sub

  71. ' / --------------------------------------------------------------------------------
  72. Private Sub Form_Unload(Cancel As Integer)
  73. ' / --------------------------------------------------------------------------------
  74.     ' ลบไฟล์ Temporary ออกให้หมด
  75.     If Dir$(App.Path & "\*.tmp") <> "" Then Kill App.Path & "\*.tmp"
  76.     '//
  77.     Set frmFarPointData = Nothing
  78.     End
  79. End Sub
คัดลอกไปที่คลิปบอร์ด

ดาวน์โหลดโค้ดต้นฉบับเต็ม VB6 ได้ที่นี่ ...

ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
สิ่งที่ดีกว่าการให้ คือการให้แบบไม่มีที่สิ้นสุด

0

กระทู้

2

โพสต์

18

เครดิต

Newbie

Rank: 1

เครดิต
18
โพสต์ 2017-12-29 13:48:49 | ดูโพสต์ทั้งหมด

ขอบคุณครับ อาจารย์

0

กระทู้

51

โพสต์

232

เครดิต

Full Member

Rank: 3Rank: 3

เครดิต
232
โพสต์ 2017-12-30 15:41:28 | ดูโพสต์ทั้งหมด

ขอบพระคุณอย่างสูงครับ อาจารย์  แข็งแรง++ ร่ำรวย ++ ครับ.

1

กระทู้

11

โพสต์

81

เครดิต

Member

Rank: 2

เครดิต
81
โพสต์ 2018-10-21 23:04:57 | ดูโพสต์ทั้งหมด

ขอบคุณมากคะอาจารย์
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-11-27 22:32 , Processed in 0.207249 second(s), 5 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้