กระทู้เก่าบอร์ด อ.Yeadram
4,070 12
URL.หัวข้อ /
URL
สร้างตารางใน report
เรียน ผู้รู้ทุกท่าน
ฟิลด์รายการที่มีข้อความยาวๆ เวลาพิมพ์ขึ้นบรรทัดใหม่จะใช้ ctrl+enter
แต่เมื่อนำมาออกเป็น report ตารางเส้นในแนวตั้งของแต่ละฟิลด์จะสร้างมาแค่บรรทัดแรกบรรทัดเดียว จะทำอย่างไรให้สามารถมีเส้นแนวต้ังจนถึงบรรทัดสุดท้ายคะ
ฟิลด์รายการที่มีข้อความยาวๆ เวลาพิมพ์ขึ้นบรรทัดใหม่จะใช้ ctrl+enter
แต่เมื่อนำมาออกเป็น report ตารางเส้นในแนวตั้งของแต่ละฟิลด์จะสร้างมาแค่บรรทัดแรกบรรทัดเดียว จะทำอย่างไรให้สามารถมีเส้นแนวต้ังจนถึงบรรทัดสุดท้ายคะ
12 Reply in this Topic. Dispaly 1 pages and you are on page number 1
2 @R18744
หมายถึงอย่างในรูปป่าวครับ ถ้าใช่ก็เซ็ท Property ของตัวคอนโทรลนั้นที่ Format > Can Grow: Yes
ตัวภาพครับ
ตัวภาพครับ
3 @R18745
ใครทราบช่วยแก้ปัญหาให้เราด้วยค่ะ
4 @R18746
ทำตามที่คุณ TTT แนะนำแล้ว ก้อยังไม่ได้ค่ะ ขอบคุณค่ะ
5 @R18747
capture ลักษณะที่เป็น และ ลักษณะที่อยากได้ให้ดูหน่อยครับ
6 @R18748
เลือก textbox ทั้งหมด click ขวา -> Layout -> Stacked
ที่ Property Left Padding, Right Padding ของทุก textbox กำหนดค่าให้เป็น 0
ที่ Property Can Grow ของทุก textbox กำหนดค่าให้เป็น Yes
น่าจะใช้ได้ตั้งแต่ 2007 ขึ้นไป (ผมใช้ 2010)
ที่ Property Left Padding, Right Padding ของทุก textbox กำหนดค่าให้เป็น 0
ที่ Property Can Grow ของทุก textbox กำหนดค่าให้เป็น Yes
น่าจะใช้ได้ตั้งแต่ 2007 ขึ้นไป (ผมใช้ 2010)
7 @R18749
รียน คุณ TTT
ที่ต้องการคืออยากให้มีเส้นในแนวตั้งด้วยเหมือนตารางใน excel ค่ะ
ขอบคุณมากค่ะ
ที่ต้องการคืออยากให้มีเส้นในแนวตั้งด้วยเหมือนตารางใน excel ค่ะ
ขอบคุณมากค่ะ
8 @R18750
อื่มบ้างครั้งถ้ามีรูปภาพจะเข้าใจง่ายกว่านะครับ
เอาเป็นว่าผมใหม่ว่า ในรายงานคุณได้ทำเรื่องของ Can Grow แล้ว แต่มีปัญหาตรงที่คุณใช้คอนโทรล Line ในการตีตาราง แนวนอน แนวตั้ง ซึ่งถ้าหากฟิลด์ไม่ได้กำหนดเป็น can grow ก็จะไม่ปัญหา แต่ถ้าเป็นมันจะมีลักษณะดังรูป:
แต่สิ่งที่คุณอยากได้จะต้องเป็นแบบนี้
ใช่หรือไม่
เอาเป็นว่าผมใหม่ว่า ในรายงานคุณได้ทำเรื่องของ Can Grow แล้ว แต่มีปัญหาตรงที่คุณใช้คอนโทรล Line ในการตีตาราง แนวนอน แนวตั้ง ซึ่งถ้าหากฟิลด์ไม่ได้กำหนดเป็น can grow ก็จะไม่ปัญหา แต่ถ้าเป็นมันจะมีลักษณะดังรูป:
แต่สิ่งที่คุณอยากได้จะต้องเป็นแบบนี้
ใช่หรือไม่
9 @R18751
แก้ไขรูปแรก
10 @R18752
ถูกต้องค่ะที่ต้องการคือรูปที่ 2
11 @R18757
ในกรณีของคุณ คงต้องเขียนเส้น Line โดยใช้โค๊ด เพราะหากเรากำหนดเส้น Line บนฟอร์มออกแบบมันจะมีค่าตายตัวซึ่งต่างจาก Textbox ที่เราทำเป็น Can Grow ซึ่งมันจะยืดหยุ่นตามข้อมูลไม่แน่นอน ดังนั้นเราต้องอาศัยเหตุการณ์ On Print เพื่ออ่านค่าความสูงของ Textbox ณ ขณะนั้นแล้วตีเส้นตามความสูงไปเลย ซึ่งก็ต้องทำความเข้าใจซักหน่อยเพราะมันขึ้นอยู่กับความต้องการของคนออกแบบว่าต้องการจะตีเส้น ณ ตำแหน่งใดก็ต้องอ้างตำแหน่ง X Y ให้ถูก
ตัวอย่างเข่น ในส่วนพื้นที่ Detail > Event > On Print
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long
Me.ScaleMode = 5 'กำหนดโหมดอัตราส่วนหน่วยเป็น นิ้ว Inches
Color = RGB(255, 0, 0) 'กำหนดค่าสี RGB
X1 = 1 ' แกรนแนวนอนจุดที่ 1 (จุดบน) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
X2 = 1 ' แกรนแนวนอนจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
Y1 = 0 ' แกรนแนวตั้งจุดที่ 1 (จุดบน) อยู่ตำแหน่งติดขอบบนของพื้นที่รายงาน
Y2 = 2 ' แกรนแนวตั้งจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบบนของรายงานลงมา 2 นิ้ว ทำให้เกิดเส้นความยาว 2 นิ้ว
Me.DrawWidth = 1 ' ความหนาของเส้น 1 พิกเซล
Me.Line (X1, Y1)-(X2, Y2), Color
End Sub
ไฟล์ตัวอย่าง
เว็บ Microsoft
ลองปรับใช้ดูครับ
ตัวอย่างเข่น ในส่วนพื้นที่ Detail > Event > On Print
Private Sub Detail_Print(Cancel As Integer, PrintCount As Integer)
Dim X1 As Single, Y1 As Single, X2 As Single, Y2 As Single, Color As Long
Me.ScaleMode = 5 'กำหนดโหมดอัตราส่วนหน่วยเป็น นิ้ว Inches
Color = RGB(255, 0, 0) 'กำหนดค่าสี RGB
X1 = 1 ' แกรนแนวนอนจุดที่ 1 (จุดบน) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
X2 = 1 ' แกรนแนวนอนจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบซ้ายรายงานออกมา 1 นิ้ว
Y1 = 0 ' แกรนแนวตั้งจุดที่ 1 (จุดบน) อยู่ตำแหน่งติดขอบบนของพื้นที่รายงาน
Y2 = 2 ' แกรนแนวตั้งจุดที่ 2 (จุดล่าง) อยู่ตำแหน่งห่างจากขอบบนของรายงานลงมา 2 นิ้ว ทำให้เกิดเส้นความยาว 2 นิ้ว
Me.DrawWidth = 1 ' ความหนาของเส้น 1 พิกเซล
Me.Line (X1, Y1)-(X2, Y2), Color
End Sub
ไฟล์ตัวอย่าง
เว็บ Microsoft
ลองปรับใช้ดูครับ
12 @R18758
Time: 0.3452s
แต่ผมแก้ปัญหาโดย ไม่ใช้ เส้นตารางครั้ง ทำกล่องข้อความให้ทึบ โดยใช่สีดำเลยครับ