2016-06-15 4 views
0

I사용 크리스탈 리포트 직원

emp id  Date    Time  
1   15/06/16   08:00 12:30 01:00 08:00   
2   15/06/16   08:00 12:30 01:00 07:30 

어떻게 크리스탈 리포트를 사용하여 하루에 총 시간을 계산하기 위해이 같은 직원의 출석 소프트웨어와 데이터가? 예를 들어

:
EMP ID가 1 일 15/06/총 16 시간 일 하루 12 시간 날짜 15/06/16 총 시간 일 날
EMP 자료 2 11시 반 시간이다.

답변

0

이 시도 :

편집 ..............

만들기 세부 구역에서

Split(Totext(database.Time)," ")[1]& " "&"in time"&ChrW(13) 
Split(Totext(database.Time)," ")[2]& " "&"out time"&ChrW(13) 
Split(Totext(database.Time)," ")[3]& " "&"in time"&ChrW(13) 
Split(Totext(database.Time)," ")[4]& " "&"out time" 

장소 :

수식 만들기 수식을 작성하고 데이터베이스 필드 뒤에 코드 및 위치를 작성하십시오.

참고 : 여기서 Database.fieldname 08:00 12:30 01:00 08:00 전체 문자열 답장을 보내

Numbervar starthour; 
Numbervar startminute; 
Numbervar endhour; 
Numbervar endminute; 
Numbervar Finalhour; 
Numbervar Finalminute; 
Numbervar i:=0; 



starthour:=(ToNumber(Split(Split({Database.fieldname}," ")[2],":")[1]) - ToNumber(Split(Split({Database.fieldname}," ")[1],":")[1])); 
endhour:=(ToNumber(Split(Split({Database.fieldname}," ")[7],":")[1]) - ToNumber(Split(Split({Database.fieldname}," ")[4],":")[1])); 
startminute:=(ToNumber(Split(Split({Database.fieldname}," ")[2],":")[2]) - ToNumber(Split(Split({Database.fieldname}," ")[1],":")[2])); 
endminute:=(ToNumber(Split(Split({Database.fieldname}," ")[7],":")[2]) - ToNumber(Split(Split({Database.fieldname}," ")[4],":")[2])); 

if (startminute+endminute) >=60 
Then 
(
Finalhour:=(starthour+endhour)+1; 
Finalminute:=(startminute+endminute)-60 
) 
else 
(
Finalhour:=(starthour+endhour); 
Finalminute:=(startminute+endminute) 
) 
; 

Finalhour&":"&Finalminute 
+0

감사를 포함하지만, 숫자로 변환 할 때 다음 오류가 – user3879131

+0

결과는 11.5 시간 – user3879131

+0

그래서 가능 – user3879131