![VFP 愛用者社區 首頁](templates/subSilver/images/vfps.jpg) |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 46 樓
|
發表於: 星期三 十月 11, 2017 3:10 pm 文章主題: |
|
|
goodnight 寫到: |
ckp大大
忘了說, 程式的問題已經解決了, 要把語法貼上來嗎?
資料庫應該就不用上傳了吧? |
您是說,您的語法也是一行SQL嗎?如果是的話,您貼上來看看,和我想的是否一樣?
如果您是用原來的prg解決的話,那資料庫要不要上傳,隨您便囉,我只是覺得,好像一行SQL可搞定,如果您有傳資料,我就幫您試試,如果您想【維持現狀】那也不錯呀,事情有解決最要緊。 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 47 樓
|
發表於: 星期三 十月 11, 2017 3:16 pm 文章主題: |
|
|
syntech 寫到: |
但我目前覺得麻煩的地方在公司必須有一個自己的網頁主機,
PHP或是ASP.NET 都可以,
當作存取內外部資料的介面.
但這個對有點規模的公司是可以辦到,
不過對小公司就很難,對老公司更難.
|
您說到重點了,所以,我們的方案是採雲端租用,
小公司或老公司就不用強求他們搞主機了。 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
goodnight
![](images/avatars/16193142264b1faf9ea7fcf.jpg)
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 48 樓
|
發表於: 星期三 十月 11, 2017 4:01 pm 文章主題: |
|
|
ckp6250 寫到: | 公司有 wifi 呀,平板和手機利用同一個 wifi 區段上網,透過定位,就可以確保不會遠端偷打卡。
s大說:『當然也可以設計成offline的app先把指紋呀,使用者id呀通通放到手機/平板, 但是別人偷走就完蛋, 我猜想這會設計成online的app』果然是行家。
平板出 QR CODE 比較理想啦,同一時間,可以很多人一起個別又同時拍照,會比一個個讀取員工手機上的 QR CODE 要有效率一點。
資料當然要傳回公司,員工在手機上按 Enter 時,員工編號,時間,就已經傳回主機了。
我們的考量點除了時髦以外 ,另外是該公司有很多分店,有時人員會調來調去支援,用傳統卡鍾的話,卡片要拿來拿去,而且也不知道這名員工在A店上幾天,B店上幾天,用手機的話,就沒這個問題了,在那裡照相,就知道是那個分店了。
再說,平板也不會比卡鍾貴,又不用買紙卡,也不用什麼RS232傳輸之類的程序,資料直接進主機,比轉檔要順。
更重要一點是,用平板搞QR CODE,彈性很大,想要塞什麼資料進去都行,不像硬體卡鍾,功能是固定的,無法改變。
我們是頭一遭寫考勤啦,沒什麼豐富經驗可提供,只是覺得似乎可行。 |
我沒有智慧手機耶, 只有傳統手機, 怎麼辦?? _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
goodnight
![](images/avatars/16193142264b1faf9ea7fcf.jpg)
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 49 樓
|
發表於: 星期三 十月 11, 2017 4:04 pm 文章主題: |
|
|
ckp6250 寫到: | goodnight 寫到: |
ckp大大
忘了說, 程式的問題已經解決了, 要把語法貼上來嗎?
資料庫應該就不用上傳了吧? |
您是說,您的語法也是一行SQL嗎?如果是的話,您貼上來看看,和我想的是否一樣?
如果您是用原來的prg解決的話,那資料庫要不要上傳,隨您便囉,我只是覺得,好像一行SQL可搞定,如果您有傳資料,我就幫您試試,如果您想【維持現狀】那也不錯呀,事情有解決最要緊。 |
我的功力還不到一行SQL啦, 雖然我很想, 我的程式是參考sy大提供的碼稍微改一下而成的,
請問程式碼要貼哪?? 是貼在第一樓, 還是直接用回覆的方式貼上? _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 50 樓
|
發表於: 星期三 十月 11, 2017 5:16 pm 文章主題: |
|
|
goodnight 寫到: |
我沒有智慧手機耶, 只有傳統手機, 怎麼辦?? |
一次攻頂.
iphone8 或是 note8,
遇到緊急情況,還可以把手機扔出去當成手榴彈. ![Shocked](images/smiles/icon_eek.gif) _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 51 樓
|
發表於: 星期三 十月 11, 2017 6:09 pm 文章主題: |
|
|
goodnight 寫到: |
我的功力還不到一行SQL啦, 雖然我很想, 我的程式是參考sy大提供的碼稍微改一下而成的,
請問程式碼要貼哪?? 是貼在第一樓, 還是直接用回覆的方式貼上? |
我對dbf比較有興趣,但我講了三回了,您都不提上來,不想理您啦。 ![Rolling Eyes](images/smiles/icon_rolleyes.gif) |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 52 樓
|
發表於: 星期三 十月 11, 2017 6:12 pm 文章主題: |
|
|
goodnight 寫到: |
我沒有智慧手機耶, 只有傳統手機, 怎麼辦?? |
您是聘請山頂洞人嗎?我還真沒遇到這樣的人耶。
但真要是遇到了,也好辦,二條路,自己選
1、趕快去買一支
2、自我了斷 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 53 樓
|
發表於: 星期四 十月 12, 2017 8:59 am 文章主題: |
|
|
我們家版的CSV 檔案.
上班時間 8:00~12:00 13:00~17:00
7:30 以前算加班,算到 8:00
18:00 以後算加班.
重複打卡,上班以較早的為準,下班以較晚的為準.
上班時數及加班時數要分開計算.
上班時數要扣除休息時間,計算為小時.
加班時數也要扣除休息時間,一樣計算為小時.
假日也可以上班(檔案每日重新建立),
計算時應考慮一例一休.休息日加班1~4小時以4小時計算,5~8小時以8小時計算,
超過8小時再加計加班時數.
請用一條長長~~~~~~~~~的SQL 寫完,
並保留日後調整空間.
班別:0上班,1下班,2忘了.
這個範例算正常一點的. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 54 樓
|
發表於: 星期四 十月 12, 2017 11:09 am 文章主題: |
|
|
底下這行不算太長的SQL指令,符合這二個條件,
1、重複打卡,上班以較早的為準,下班以較晚的為準.
2、班別:0上班,1下班,2忘了.
這二個條件足以逹到goodnight大大之所需了,
s大其它的條件我就暫不理它了,又沒錢可拿,也沒有seafood可享用
代碼: | SELECT a.工號,;
a.姓名,;
MAX(a.上班時間) AS 上班時間, ;
MAX(a.下班時間) AS 下班時間, ;
MAX(a.忘了) AS 忘了 ,;
MAX(備註) AS 備註 ;
from (;
SELECT 工號,;
姓名,;
刷卡時間 AS '上班時間',;
SPACE(10) AS '下班時間',;
SPACE(10) AS '忘了',;
iif(cnts>1,'上班重覆打卡',SPACE(20)) AS '備註';
FROM (SELECT 工號,姓名,MIN(刷卡時間) AS 刷卡時間,COUNT(*) AS cnts FROM abc WHERE 班別代碼='0' GROUP BY 工號) aa;
UNION ;
SELECT 工號,;
姓名,;
SPACE(10) AS '上班時間',;
刷卡時間 AS '下班時間',;
SPACE(10) AS '忘了',;
iif(cnts>1,'下班重覆打卡',SPACE(20)) AS '備註';
FROM (SELECT 工號,姓名,MAX(刷卡時間) AS 刷卡時間,COUNT(*) AS cnts FROM abc WHERE 班別代碼='1' GROUP BY 工號) bb ;
UNION ;
SELECT 工號,;
姓名,;
SPACE(10) AS '上班時間',;
SPACE(10) AS '下班時間',;
刷卡時間 AS '忘了',;
SPACE(20) AS '備註' ;
FROM abc ;
where 班別代碼='2') a ;
group by a.工號
|
ckp6250 在 星期四 十月 12, 2017 11:57 am 作了第 1 次修改 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 55 樓
|
發表於: 星期四 十月 12, 2017 11:35 am 文章主題: |
|
|
這樣驗收不會過關.
因為沒有把時數算出來.
沒有時數就算不出錢.
尤其是外勞加班費,
漏算加班費,外勞會跟你拼命.
之所以用傳統命令來搞,
就是因為一開始就判斷要求絕對無止境,
可能某天一覺醒來又想加入新的條件.
但所擁有的資訊真正來說只有打卡時間. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 56 樓
|
發表於: 星期四 十月 12, 2017 11:48 am 文章主題: |
|
|
s大說的是,我只是初步要完成goodnight大圖二的需求而己,沒有多著墨。
其實,若還要再算時數或其它需求,那麼這行sql指令又要再拆成更細分,一種狀況獨立一行sql指令,最後再把它整合起來,綁綁成一串,這其實和傳統指令的做法,沒什麼兩樣。
如果要符合七個條件,把時數和加班也算進來的話,
1、上班時間 8:00~12:00 13:00~17:00
2、7:30 以前算加班,算到 8:00
3、18:00 以後算加班
4、上班時數要扣除休息時間,計算為小時.
5、加班時數也要扣除休息時間,一樣計算為小時.
6、重複打卡,上班以較早的為準,下班以較晚的為準.
7、班別:0上班,1下班,2忘了.
sql指令就會再稍長一些些∼
代碼: |
SELECT 工號,;
姓名,;
上班時間, ;
下班時間, ;
忘了 ,;
IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) ,worktime1,0000)+IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) ,IIF(worktime2>240,240,worktime2),0000) AS '正常分鍾',;
IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) AND overtime1>30,overtime1,0000)+IIF(!EMPTY(上班時間) AND !EMPTY(下班時間) AND overtime2>0,overtime2,0000) as "�[班分鍾",;
備註 ;
FROM (;
SELECT 工號,;
姓名,;
上班時間, ;
下班時間, ;
忘了 ,;
備註 ,;
(HOUR(CTOT('08:00'))*60+MINUTE(CTOT('08:00')))-(HOUR(CTOT(上班時間))*60+MINUTE(CTOT(上班時間))) AS overtime1 ,;
(HOUR(CTOT('12:00'))*60+MINUTE(CTOT('12:00')))-(HOUR(CTOT(IIF(上班時間<'08:00','08:00',上班時間)))*60+MINUTE(CTOT(IIF(上班時間<'08:00','08:00',上班時間)))) AS worktime1 ,;
((HOUR(CTOT(下班時間))*60+MINUTE(CTOT(下班時間))-HOUR(CTOT('18:00'))*60+MINUTE(CTOT('18:00')))) AS overtime2 ,;
((HOUR(CTOT(IIF(下班時間<'18:00','17:00',下班時間)))*60+MINUTE(CTOT(IIF(下班時間<'18:00','17:00',下班時間)))-HOUR(CTOT('13:00'))*60+MINUTE(CTOT('13:00')))) AS worktime2 ;
from (;
SELECT 工號,;
姓名,;
LEFT(MAX(上班時間),5) AS 上班時間, ;
LEFT(MAX(下班時間),5) AS 下班時間, ;
MAX(忘了) AS 忘了 ,;
MAX(備註) AS 備註 ;
from (;
SELECT 工號,;
姓名,;
刷卡時間 AS '上班時間',;
SPACE(10) AS '下班時間',;
SPACE(10) AS '忘了',;
iif(cnts>1,'上班重覆打卡',SPACE(20)) AS '備註';
FROM (SELECT 工號,姓名,MIN(刷卡時間) AS 刷卡時間,COUNT(*) AS cnts FROM abc WHERE 班別代碼='0' GROUP BY 工號) aa;
UNION ;
SELECT 工號,;
姓名,;
SPACE(10) AS '上班時間',;
刷卡時間 AS '下班時間',;
SPACE(10) AS '忘了',;
iif(cnts>1,'下班重覆打卡',SPACE(20)) AS '備註';
FROM (SELECT 工號,姓名,MAX(刷卡時間) AS 刷卡時間,COUNT(*) AS cnts FROM abc WHERE 班別代碼='1' GROUP BY 工號) bb ;
UNION ;
SELECT 工號,;
姓名,;
SPACE(10) AS '上班時間',;
SPACE(10) AS '下班時間',;
刷卡時間 AS '忘了',;
SPACE(20) AS '備註' ;
FROM abc ;
where 班別代碼='2') a ;
group by a.工號) b) c
|
我把它算到分鍾啦,若想用小時,就再除60就好,我有聽過一個同業說,有員工連3分鍾都計較。
若要連底下三條件也考慮進來的話,
假日也可以上班(檔案每日重新建立),
計算時應考慮一例一休.休息日加班1~4小時以4小時計算,5~8小時以8小時計算,
超過8小時再加計加班時數.
那就再往上堆疊sql就是了,只要有充足資訊,不會有問題。
sql指令,功能強大,它能發揮多大威力,就看個人的想像力了,我個人的偏好是,sql能做的,我就不用傳統指令去執行,因為我很懶。
本人可以掛保證,三天後,我就看不懂自己在寫什麼了。
對了,這論壇程式是怎麼搞的,原始碼會有亂碼? |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
perry
註冊時間: 2014-07-20 文章: 203
第 57 樓
|
發表於: 星期四 十月 12, 2017 8:48 pm 文章主題: |
|
|
打卡簽到的狀況又煩又多,若想寫的完善,
建議樓主還是用
scan
do case
endc
ends
人員資料又不是有多大,每天處理資料沒佔多久時間,
只用 SQL 會增加自己的困擾!!
若碰到同時有三班制,輪班制,實際簽到制,
固定班制,那樓主豈不要瘋了! |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 58 樓
|
發表於: 星期四 十月 12, 2017 9:34 pm 文章主題: |
|
|
為了只用SQL完成,
肯定會用到N次TABLE SCAN 及 M次 CURSOR 合併,
還好台灣大多是中小企業.
只要超過2次 TABLE SCAN,
我會優先用XBASE 解決.
除了用非XBASE 工具(例如PHP,C++,VB,VBA)等工具開發.
因為這些工具通常是以物件陣列或是物件連結串列(Linked List) 模擬CURSOR,
效率更糟. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
ckp6250
註冊時間: 2004-07-30 文章: 1644
第 59 樓
|
發表於: 星期四 十月 12, 2017 10:04 pm 文章主題: |
|
|
效率的問題,要實際比較才知道,
但因為現時電腦 cpu 夠強,ram 夠大,ssd又夠快,
如果索引檔開得好,所謂效率問題,根本不用考慮,
大型企業不敢說,台灣中小型企業,資料量能有多大?1000萬筆?
一行sql和一百行傳統指令,能差幾秒?
我的習慣是,我會優先用sql指令去跑,除非它真的很慢,我才會改回
scan
do case
endc
ends
當然啦,各種情況會有各種應變措施,程式設計師就是要靈活,才能生存下去,不必拘泥於那一種方法。
神而明之,存乎其人。 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
syntech
註冊時間: 2003-05-16 文章: 4212 來自: Taipei,Taiwan
第 60 樓
|
發表於: 星期四 十月 12, 2017 11:17 pm 文章主題: |
|
|
當你遇到有客戶被他朋友誤導去買了用INTEL ATOM CPU 的"文書電腦",
你會後悔沒有一次攻頂.
Orz
等他唉了半年後,
請他換成最低階的intel i3 pc,
一切問題都解決了.
----
不過我也自己去買了INTEL ATOM CPU +win10 的電視棒電腦.
因為要給出門在外的業務用teamviewer 聯進來查資料.
這種INTEL ATOM CPU 電視棒電腦.
好處就是超省電(相較於pc/nb).
本來是買來替換目前的 android 電視棒,
但是發現這個東西連解1080p 的高清影片都解不動,
只好另外想用途.
解高清影片就交給 htc m7/m9, asus zf3u 等等. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
![](templates/subSilver/images/spacer.gif) |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|