 |
|
ขอสอบถามการแปลงสูตรฐาน NUMBER มาเป็นฐาน TIME ใน Crystal Report ครับ |
|
 |
|
|
 |
 |
|
ตอนนี้ได้ค่าเป็นอะไรครับ 
|
 |
 |
 |
 |
Date :
2017-02-02 10:42:26 |
By :
mr.win |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
cr มี type datetime นี่
ทำไมไม่ ทำเป็น datetime ก็แล้วค่อยมา add/sub ล่ะ
|
 |
 |
 |
 |
Date :
2017-02-02 15:21:05 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
เนื่องจากแปลงโดยใช้ Datetime แล้วมันSUM ไม่ได้ครับ เนื่องจากในตอนนี้ในDatabase มันตั้งไว้เป็น Decimal (9,2) พอแปลงในDB ก็Errorครับ เลยอยากแปลงในFomular เลยครับ
|
 |
 |
 |
 |
Date :
2017-02-03 08:02:01 |
By :
barakuyamaza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ใส่ใน Formular ของ Crystal Reportไม่ได้อะครับ
|
 |
 |
 |
 |
Date :
2017-02-03 09:08:05 |
By :
barakuyamaza |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อย่างนั้นมันควรจะ convert decimal เป็น datetime ตั้งแต่ใน database แล้ว
http://stackoverflow.com/questions/11715310/how-to-convert-decimal-time-to-time-in-sql-server-2008
http://stackoverflow.com/questions/17788283/convert-decimal-time-to-hours-and-minutes
แต่จริงๆ มันผิดตั้งแต่เก็บ datatime เป็น decimal แล้วแหละ
|
 |
 |
 |
 |
Date :
2017-02-03 15:23:07 |
By :
ห้ามตอบเกินวันละ 2 กระทู้ |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
@ห้ามตอบเกินวันละ 2 กระทู้
ปัญหาจริงที่ผมยังแก้ไขได้ (มันไม่ใช่เรื่องยาก แต่มันก็ไม่ง่าย)
Quote:[/
ไม่น่าเชื่อว่าโปรแกรมเมอร์ระดับจอมพลหอยอย่างผม ต้องมาเจออุปสรรคเล็กฯน้อยแบบนี้
--- คำนวณรายได้ต่อวัน ตามเศษวันคล้ายฯ Age Calculator (แต่แจกแจงเป็นวันเศษจริงฯ)
--- เศษก่อนวันหรือเศษหลังวัน ตามจริง (ละเอียดถึงระดับวัน/DayInMonth)
Date Format dd/MM/yyyy
ยกตัวอย่างเช่น รายได้ต่อเดือน 12,000.00 บาท
วันเริ่มทำงานจริง 29/02/2543 ถึงวันเริ่มทำงานจริง 31/03/2543 (0 ปี, 1 เดือน, 1 วันของเดือนกุมพาพันธ์)
คำนวณรายได้ = (12,000.00 x 1) + (1 x (12,000.00/29))
วันเริ่มทำงานจริง 28/02/2543 ถึงวันเริ่มทำงานจริง 31/03/2543 (0 ปี, 1 เดือน, 2 วันของเดือนกุมพาพันธ์)
คำนวณรายได้ = (12,000.00 x 1) + (2 x (12,000.00/29))
วันเริ่มทำงานจริง 28/02/2543 ถึงวันเริ่มทำงานจริง 01/04/2543 (0 ปี, 1 เดือน, 3 วันของเดือนกุมพาพันธ์)
--- 2 วันของเดือนกุมพาพันธ์ และ 1 วันของเดือนเมษายน
คำนวณรายได้ = (12,000.00 x 1) + (2 x (12,000.00/29)) + (1 x (12,000.00/30))
quote]
ปล. ขำดีโปรแกรมเมอร์ระดับจอมพลหอยอย่างผมจำเป็นต้องย้อนหาอดีตอีกครั้งหนึ่ง (ระดับปรมาจารย์เคยเขียนเอาไว้)
[quote]http://www.songkwae.com/foxboard/display_topic_threads.asp?ForumID=3&TopicID=1450&ReturnPage=&PagePosition=0&ThreadPage=1
|
 |
 |
 |
 |
Date :
2017-02-05 21:24:05 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
นั่งคิดและทำไปเรื่อยฯ
Code (VB.NET)
Imports System.Globalization
Imports System.Collections.Specialized
Public Class AgeCalculate
Public Class AgeInfo
Public Property Years As Int16
Public Property Months As Int16
Public Property Days As Int16
Public Property DaysInfo As Specialized.HybridDictionary
End Class
''' <summary>
''' หาวันสุดท้ายของเดือน (Max Day)
''' </summary>
''' <param name="y">Int16 year</param>
''' <param name="m">Int16 month</param>
''' <returns></returns>
''' <remarks></remarks>
Private Shared Function DaysInMonth(ByVal y As Int16, ByVal m As Int16) As Int16
Return Date.DaysInMonth(y, m)
End Function
''' <summary>
'''
''' </summary>
''' <param name="bd">วันเริ่มทำงาน</param>
''' <param name="td">วันปัจจุบัน</param>
''' <returns></returns>
''' <remarks></remarks>
Public Shared Function AgeCalculate(ByVal bd As DateTime, ByVal td As DateTime) As AgeCalculate.AgeInfo
Dim oldCulture As String = System.Threading.Thread.CurrentThread.CurrentCulture.Name
If System.Threading.Thread.CurrentThread.CurrentCulture.Name <> "en-CA" Then
System.Threading.Thread.CurrentThread.CurrentCulture = New CultureInfo("en-CA")
oldCulture = "หอยงามเพราะขนคนงามเพราะหอย" & oldCulture
End If
Dim _AgeInfo As New AgeCalculate.AgeInfo() With {.Years = 0, .Months = 0, .Days = 0, .DaysInfo = New HybridDictionary()}
'คำนวณอะไรก็ว่ากันไปสมมุติค่าให้ดังนี้
bd = New DateTime(2000, 2, 28, 13, 0, 1)
td = New DateTime(2000, 3, 31, 24, 59, 59)
_AgeInfo.Years = 0 'ปี
_AgeInfo.Months = 1 'เดือน
_AgeInfo.Days = 2 'วันของเดือนกุมพาพันธ์
'
'แจกแจงเศษของวัน
'
_AgeInfo.DaysInfo.Add(New DateTime(2000, 2, 28), 29) 'Day/DayInMonth
_AgeInfo.DaysInfo.Add(New DateTime(2000, 2, 29), 29) 'Day/DayInMonth
If oldCulture.Substring(0, 3) = "หอย" Then
System.Threading.Thread.CurrentThread.CurrentCulture = New CultureInfo(oldCulture.Substring(1))
End If
Return _AgeInfo
End Function
|
 |
 |
 |
 |
Date :
2017-02-05 22:05:01 |
By :
หน้าฮี |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|