程式相關的寫到有點題材枯竭了,換個話題,聊聊攝影。

 

Ricoh GR 系列,從 GRD 2 開始,GR 就是我的隨身機了,愛的理由有很多,恨的也不是沒有,只是其他的都能習慣,唯獨入塵這點不能妥協。GR, GR ii 我都有,都有容易入塵的問題,塵會黏到 cmos 上,直接在照片上顯現黑影,GR iii 我不清楚,因為在 GR ii 死之前都不打算買。

 

文章標籤

過時程式員 發表在 痞客邦 留言(1) 人氣()

整個表格都只有黑跟白,這不夠 user friendly,就好像交通燈有分紅黃綠一樣,系統可以把不同類型的數據顯示成不同顏色,哪個訂單未確認,哪個訂單已出貨,令用戶可以一目了然,省下人工分析的時間,提高工作效率。

設定顏色會用到  RGB(red, green, blue) ,裏面三個值都是從 0 到 255 ,最終顯示的顏色就是由這三個值調配而成的。

 

比方說,某個格子有ABC三個值:

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

既然前面 dynamic sql 的文章有提到,這裏不如先聊一下Schedule Job
顧名思義,會按 schedule 自動執行Job的,就是 Schedule job了,我主要是用在數據管理,例如清理日誌、停用久沒登入或密碼過時的用戶帳號、同步數據、結算、生成報表之類。

在 MS SQL Server Management Studio 內,不分 DB,在 SQL Server Agent 內面就能找到了,下面說說建立的步驟。

image

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

Properties.Font.Escapement 內設就可以了,想翻 45 度就輸入 450,想翻 90 度就輸 900。
報表位置不足的時候就幫上忙了。

 

image

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

前幾年,家裏的NAS 壞了,數據只救回了部份。一朝被蛇咬,十年怕草繩,為免案件重演,我轉到雲端儲存。有說 Google Drive 會掃瞄檔案,並以此作為向用戶推送廣告的依據,所以當時選了「聲稱」能保護私隱,不掃用戶檔案的 Dropbox。

 

上週發現 Dropbox 突然登入不了,帳號被 disable了,網上問了客服,說我違反了使用條款。自問也只是私人用途,不公開,也沒任人下載什麼,再三追問,他說我上傳了可能違法或下流的東西,所以停了我的帳號,縱然付費多年,但還是在毫無通知下被停用了。後來網上查了一會,原來遇到同樣事情的人也不少...

 

過時程式員 發表在 痞客邦 留言(0) 人氣()

懶惰確實是推動世界進步的最大動力,為了省下工作時間來上網,剛弄了個能清理各個日誌表的存儲過程。過程中學會了使用 mssqlsp_executesql()

sp_executesql() 的用途就是在執行時執行剛拼湊成的 sql 語句。整套大概這麼寫:
-- 定義變量
declare @sqlCommand nvarchar(500)

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

DataShare() 的功用就是在 DataWinodw 間「共用」數據。在一些在程序各處都用到的數據,或數據量大的表中,比如用戶名稱、供應商名稱或貨物資料,DataShare 都能有效提高程序度。

做法是先把 dropdowndatawindow 定義到 global datastore,預先 retrieve()到系統緩存內,在有需要的時候,就以 DataShare() 把它的數據共用的當前畫面的下拉中,這樣就可以減省每次都重新 retrieve 的時間。除了下拉,各種查詢也可以使用這個方法,例如把貨物資料都存到緩存中,查詢時就把數據共用到查詢畫面,然後以 DW.Filter()DataWindow 中查找資料。

這方法有個缺陷,就是看不到 retrieve 後所新增的數據,就是你 retrieve 後,同事或你自己新增的資料並不會自動包含到緩存中。這種情況你就需要在適當的時候預先更新一下緩存內的數據,例如在貨物維護功能內,有改動後就在背後偷偷 retrieve 一下該 global datastore 去更新一下數據。寫法如下:

 

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

不同的 Datawindow 有時候需要按本身特性分配到不同的打印機,比方說把銷售報表印到 A4 雷射打印機、標籤分配到熱感標籤打印機、一套幾份的發貨單要印到 Dot Matrix 打印機,為方便使用及減少用戶選錯打印機的機會,我們可以把哪個DW打印到哪台打印機的設定寫到代碼中。

這裏介紹幾個相關的函數:
PrintGetPrinters() 取系統打印機清單( 注意有 s )
PrintGetPrinter()  取預設打印機

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

剛在做把程序由 PB9 升級 PB 12 的項目,出現了一個奇怪的現象,明明我寫好是連去數據庫 A 的,為何老在連去 B?由於兩個庫都有着幾個名稱相同的 table,導致程序一直正常運作,但數據卻總是寫在錯的數據庫?

找了半天,原來是因為 PB9 裏面的這一句已經失效了,導致一直都沒有連上正確的數據庫:
SQLCA.LogID = "stupid_user"
SQLCA.Servername = gs_server

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()

在展示數據的時候,為方便理解,我們常常會把不同的數據拼在一起,比方說「姓名(學號)」,在一般的數據表設計中,姓名跟學號會是不同的兩個欄位,在數據窗口要要怎麼拼呢?

DataWindow 提供了兩種方法,一是 Computed Column,這是從數據源加,在SQL裏就寫好的;二是 Computed Field,這只要在畫面上加入就可以,而且更可以調用 function() 做更多的事情,但這種方式有個缺憾,就是速度慢。

PB 很聰明,為提高速度,在retrieve 時只會執行畫面上會顯示到的 Computed Field 而已,如果畫面有有連續十張A4大小的單據,她就只會執行第一頁的 Computed Field ,在用戶把 scrollbar 往下拉往第二頁時,PB 才會執行第二頁的Computed Field ,如果佻皮的把 scrollbar 在第一頁程最後一頁往回拉的話,程序就有可能會因為不斷執行 Computed Field 語句而卡死,所以兩者之間需要慎選。

 

文章標籤

過時程式員 發表在 痞客邦 留言(0) 人氣()