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

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

การ Generate number ร่วมกับตัวอักษร 001-ZZZ

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

2

กระทู้

12

โพสต์

58

เครดิต

Member

Rank: 2

เครดิต
58

แก้ไขครั้งสุดท้ายโดย Soutk เมื่อ 2019-5-10 21:14

มีสมาชิกท่านใด มีวิธี Generate จำนวน ตามตัวอย่างด้านล่างมั้ยครับ
ขอคำแนะนำด้วยครับ


001-999 A01-A99 B01-B99 AB1-AB9 etc...............ZZZ

213

กระทู้

301

โพสต์

2419

เครดิต

ผู้ดูแลระบบ

Rank: 9Rank: 9Rank: 9

เครดิต
2419
โพสต์ 2019-5-11 15:52:51 | ดูโพสต์ทั้งหมด

โจทย์การบ้าน ผมก็จะตอบให้ครับ เพราะมีพื้นฐานอยู่เรื่องหนึ่งที่สำคัญคือเรื่อง ASCII Code ... ลาก DataGridView เข้ามาวางบนฟอร์ม ปรับแค่ Anchor ให้ขยายได้ทุกทิศทาง ที่เหลือผมใช้โค้ดแบบ Run Time และปุ่มคำสั่งอีก 4 ตัว ...
  1. Public Class frmGenerateCode

  2.     Private Sub frmGenerateCode_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  3.         Call SetupDataGridView(Me.DataGridView1)
  4.     End Sub

  5.     ' / --------------------------------------------------------------------------
  6.     ' / Organized DataGridView.
  7.     Private Sub SetupDataGridView(ByRef DGV As DataGridView)
  8.         With DGV
  9.             .Columns.Clear()
  10.             .Rows.Clear()
  11.             .RowTemplate.Height = 26
  12.             .AllowUserToOrderColumns = True
  13.             .AllowUserToDeleteRows = False
  14.             .AllowUserToAddRows = False
  15.             .ReadOnly = True
  16.             .MultiSelect = False
  17.             .SelectionMode = DataGridViewSelectionMode.FullRowSelect
  18.             .Font = New Font("Tahoma", 8)
  19.             .AlternatingRowsDefaultCellStyle.BackColor = Color.OldLace
  20.             .DefaultCellStyle.SelectionBackColor = Color.SeaGreen
  21.             '.AlternatingRowsDefaultCellStyle.BackColor = Color.LightYellow
  22.             '.DefaultCellStyle.SelectionBackColor = Color.LightBlue
  23.             '/ Auto size column width of each main by sorting the field.
  24.             .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
  25.             .AutoResizeColumns()

  26.             Dim Column1 As New DataGridViewTextBoxColumn
  27.             With Column1
  28.                 .DataPropertyName = "Code"
  29.                 .Name = "Code"
  30.                 .HeaderText = "Code"
  31.                 .DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
  32.             End With
  33.             .Columns.Add(Column1)
  34.         End With
  35.     End Sub

  36.     Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
  37.         Call SetupDataGridView(Me.DataGridView1)
  38.         '001-999
  39.         For i As Int32 = 1 To 999
  40.             '// จัดรูปแบบโดยใช้ 3 หลัก "000" & 1 = "0001" แต่เราใช้ Right เพื่อให้นับจากทางขวามา 3 หลัก Right("0001", 3) = "001"
  41.             Dim row = New String() {Microsoft.VisualBasic.Right("000" & i, 3)}
  42.             DataGridView1.Rows.Add(row)
  43.         Next
  44.     End Sub

  45.     Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  46.         Call SetupDataGridView(Me.DataGridView1)
  47.         ' A01-A99 B01-B99 ... Z99
  48.         For i As Byte = 65 To 90    '// ASCII Code A = 65, Z = 90
  49.             For j As Byte = 1 To 99
  50.                 '// Chr(ค่า Ascii Code) เช่น Chr(65) = A, Chr(90) = Z
  51.                 Dim row = New String() {Chr(i) & Microsoft.VisualBasic.Right("00" & j, 2)}
  52.                 DataGridView1.Rows.Add(row)
  53.             Next
  54.         Next
  55.     End Sub

  56.     Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
  57.         Call SetupDataGridView(Me.DataGridView1)
  58.         ' AB1-AB9 ... AZ9
  59.         For i As Byte = 65 To 90    '// ASCII Code A = 65, Z = 90
  60.             For j As Byte = 66 To 90
  61.                 For k As Byte = 1 To 9
  62.                     Dim row = New String() {Chr(i) & Chr(j) & k}
  63.                     DataGridView1.Rows.Add(row)
  64.                 Next
  65.             Next
  66.         Next
  67.     End Sub

  68.     Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click
  69.         Call SetupDataGridView(Me.DataGridView1)
  70.         ' AAA-ZZZ
  71.         For i As Byte = 65 To 90    '// ASCII Code A = 65, Z = 90
  72.             For j As Byte = 65 To 90
  73.                 For k As Byte = 65 To 90
  74.                     Dim row = New String() {Chr(i) & Chr(j) & Chr(k)}
  75.                     DataGridView1.Rows.Add(row)
  76.                 Next
  77.             Next
  78.         Next
  79.     End Sub
  80. End Class
คัดลอกไปที่คลิปบอร์ด

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

2

กระทู้

12

โพสต์

58

เครดิต

Member

Rank: 2

เครดิต
58
 เจ้าของ| โพสต์ 2019-5-25 17:04:45 | ดูโพสต์ทั้งหมด

thongkorn ตอบกลับเมื่อ 2019-5-11 15:52
โจทย์การบ้าน ผมก็จะตอบให้ครับ เพราะมีพื้นฐานอยู่เรื ...

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

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

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

GMT+7, 2020-1-27 13:47 , Processed in 0.723714 second(s), 5 queries , File On.

Powered by Discuz! X3.3 R20170401, Rev.54

© 2001-2017 Comsenz Inc.

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