2012年11月30日 星期五

sql 橫向顯示


SELECT id_num, MAX(score_chinese) AS '國文成績', MAX(score_english) AS '英文成績', MAX(score_math) AS '數學成績'
FROM(
SELECT id_num,
CASE WHEN subject='國文' THEN score END AS score_chinese,
CASE WHEN subject='英文' THEN score END AS score_english,
CASE WHEN subject='數學' THEN scree END AS score_math
FROM score_table
) AS score_table_tmp
GROUP BY id_num

VB 如何轉存文字檔案為 UTF-8 編碼格式


Function SaveTextAsUTF8(filePath, Text)
        Const adTypeText = 2
        Const adSaveCreateOverWrite = 2

        'Create Stream object
        Dim TextStream
        Set TextStream = CreateObject("ADODB.Stream")
        With TextStream
                .Open
                .CharSet = "UTF-8"
                .Position = TextStream.Size
                .WriteText Text
                .SaveToFile filePath, adSaveCreateOverWrite
                .Close
        End With
        Set TextStream = Nothing
       
End Function

平均報酬率

怪老子理財:落實資產配置 退休沒煩惱

2012年11月28日 星期三

設定 Outlook 使用 POP3 / IMAP 來接收 Gmail 信件

引用來源
--


要在 Outlook 設定 POP3 / IMAP 去接收 Gmail 信件, 要如何做?


Outlook 設定 POP3 / IMAP 去接收 Gmail 信件
官方說明: Outlook 2003 - Gmail說明
簡易步驟
在您的 Gmail中啟用 POP
設定 Outlook 2003 用戶端
詳細步驟
登入Gmail, 輸入帳號、密碼
選擇 畫面右上角的 "設定"
點選 "轉寄和 POP/IMAP", 選擇 "對所有郵件啟用 POP 功能 (包括已經下載的郵件)", 按 "儲存變更"
開啟 Outlook -> 帳號設定, 依下述步驟設定:
POP3 設定為 pop.gmail.com
SMTP 設定為 smtp.gmail.com
帳號要輸入完整的 Email 信箱: ex: abc@example.com
選擇 "其它設定" -> "外寄伺服器" -> 勾選 "我的外寄伺服器(SMTP)需要驗證"
選擇 "進階", 勾選 "內送伺服器及外寄伺服器的加密連線(SSL);POP3=995, SMTP=465"
這樣子 Outlook帳號設定 就完成囉~

windows7「您可能沒有權限使用網絡資源」和「windows打印機無法連接」解決方法


1.打開受訪者的guest權限

2. 開始--運行--gpedit.msc

3.windows設置---安全設置--本地策略--用戶權利指派--在右邊找到''拒絕從網絡訪問這台計算機''雙擊打開,把裡面的guest帳戶刪除

4. windows設置---安全設置--本地策略--安全選項--右邊找到''網絡訪問:本地帳戶的共享和安全模式"雙擊改成"經典:本地用戶自己的身份驗證"

5.windows設置---安全設置--本地策略--安全選項--右邊找到''帳戶:''使用空白密碼的本地用戶只允許進行控制台登陸"把它設置為"禁用"

2012年11月27日 星期二

for each split

詳細請參考來源
--
 引用:


' We want to split this input string
Dim s As String = "there is a cat"

' Split string based on spaces
Dim words As String() = s.Split(New Char() {" "c})

' Use For Each loop over words and display them
Dim word As String
For Each word In words
   Console.WriteLine(word)
Next

2012年11月25日 星期日

超多程式語言文章

最全面的网站教程

ActiveReport 預覽正常但打印輸出空白頁的解決方案


引用
--

最近在做項目時,使用ActiveReport(以下簡稱AR)做報表輸出,具體的場景與問題如下:

場景:

紙張尺寸:8.5in*5.5in

邊距:上下左右全設為0.1in

在打印某些單據資料時,遇到以下問題:

打印機是EPSON LQ-300K+ /II ESC/P 2,在打印某個單據(其它單據可以正常,Detail備註欄內容比較多且密,預覽只有一頁,且沒有紅邊)時,使用AR本身的自定紙張尺寸(即直接設置報表的尺寸),總是會多出一張空白頁。嘗試使用Windows的自定紙張格式(新建了一個A8紙(8.5*5.5),應用這個紙張打印可以正常輸出。



問題思考:

根據與現場顧問確認,相同的單據與報表,使用其它型號的打印機輸出是OK的。

初步分析,可能與以下3點有關:

1.打印機的分辨率設置

2.AR.PrintWith設置不對

3.AR的邊距設得太小



嘗試:

1.在AR.Run()之前,把設置其PrintWidth屬性:

     AR.PrintWidth = AR.PageSettings.PaperWidth - AR.PageSettings.Margins.Left - AR.PageSettings.Margins.Right - 0.1f;

2.把AR的邊距加大。

    AR.PageSettings.Margins.Left=0.39in;

    AR.PageSettings.Margins.Right=0.39in;

    AR.PageSettings.Margins.Top=0.3in;

    AR.PageSettings.Margins.Bottom=0.3in;



經過以上設置,問題得以解決。 目前測試了一些單據,還未發現問題。

Active Report多打空白頁得問題


引用來源
-- 
 如果製作ActiveReport得報表,那麼經常會在瀏覽器裡面看到右邊得紅線和下面得版權信息。先來解釋一下兩個紅色提示得分別得作用:

1。底部得紅色得版權信息,表示你得報表軟件還未經過註冊,應該購買正版軟件。經過我測試,該紅色字體不會在打印得時候打印到紙上。我記得文檔提示應該是,此時可以進行開發但是不能進行分發。

2。右邊得豎線,表示你的報表當前頁的範圍已經超過了一頁紙,實際打印的時候會打印兩張紙。解決辦法,調整報表的全局設置裡面的左右邊距設置,或通過報表的某種相應事件,在事件處理程序中進行邊距的設置。

現在可以解釋未什麼會打印的時候多打空白頁的問題了,右邊紅色豎線的存在。關鍵問題在於可能有時候紅線存在,但是在報表的邊上並不明顯,開發者沒看到。所以開發者就誤以為調整到了合理的範圍了,其實還是超出了單頁紙張的範圍的,解決辦法就是調整報表的左右邊距。



PS:當時同事幫我查找的資料,看了後解決的此問題。發現以前在vb下使用該報表的人還挺多的。解決方案也是從一個vb論壇過來的。

EPSON-PRU-420 列印

引用來源
---
Private Sub Command35_Click()
   Dim CMD As String, EJECT As String, OPENDRAW As String
   Dim Data As String
   'OPENDRAW = Chr(27) + Chr(27)  '<==RP-U420的開錢櫃命令不是這樣子的,請查RP-U420的命令手冊
   Data = Chr(27) + "c0" + Chr(2)  '<==只列印收執聯命令只要下一次即可,其後就保持在同一狀態
   Data = Data & "日期:2008/12/11 機號:1" & Chr(13) & Chr(10)
   Data = Data & "----------------------" & Chr(13) & Chr(10)
   Data = Data & "筆記型電腦    1  12500" & Chr(13) & Chr(10)
   Data = Data & "液晶螢幕      1  12000" & Chr(13) & Chr(10)
   Data = Data & "----------------------" & Chr(13) & Chr(10)
   Data = Data & "合計:            24500" & Chr(13) & Chr(10)
   Data = Data & "收現:35000 找零:500   " & Chr(13) & Chr(10)
   '要保持9列空白以讓資料出至裁切之後
   Data = Data & CHR(27) & "d" & CHR(9)  '<==跳9列空白,只要一道指定即可(詳情請看RP-U420命令手冊)
   Data = Data & Chr(29) + Chr(86) + Chr(1) '切紙
   Call Send2Driver(Data, "Epson LQ-300 ESC/P 2") 
End Sub

2012年11月23日 星期五

VB.NET 抓IP 和 MacAddress


Imports System.Net.NetworkInformation

Function getMacAddress()
        Dim nics() As NetworkInterface = _
              NetworkInterface.GetAllNetworkInterfaces
        Return nics(0).GetPhysicalAddress.ToString
End Function


System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces() 可取得所有 NIC 的 NetworkInterface
NetworkInterface.GetPhysicalAddress() 可取得 MAC
NetworkInterface.GetIPProperties() 可取得 IP

'NetworkInterface.GetPhysicalAddress() 回傳 PhysicalAddress 型態, 可以用
dim MacAdd as String= BitConver.ToString(NetworkInterface.GetPhysicalAddress().GetAddressBytes())
'NetworkInterface.GetIPProperties() 回傳 IPInterfaceProperties 型態, 可以用
dim prop as IPInterfaceProperties = NetworkInterface.GetIPProperties()
dim ip as string = prop.UnicastAddresses[0].Address.ToString()

2012年11月21日 星期三

單利與複利 計算



一般存款都是單利.信用卡都是以複利計算的.現金卡每間銀行不同

單利:本金5000*(1+2%)=5100.下次還是5000*(1+2%)=5100一樣以5000計息

複利:本金5000*(1+2%)=5100.下次是5100*(1+2%)=5202

2012年11月20日 星期二

vb6 win8

參考來源
--
2012年2月時,微軟更進一步宣布,將在Windows 8中內建VB 6核心Runtime ,
讓VB 6開發的程式碼可以繼續在Windows 8中執行,而且對VB的支援將延長到Windows 8的產品生命周期。

所以放心開發吧! vb6 加油!

2012年11月19日 星期一

證券交易所得課稅制度-2013.2014 該選哪一種?

商業周刊-專欄部落格-財經新聞儀點通-證所稅懶人包整理,你該怎麼做 (1/1)
--
部分引用來源,詳細請參考來源:

「核實課徵」制是指證券交易時,全年度賣出證券所得扣掉買入成本再扣掉必要費用後,賺的錢需要被課徵證所稅,其證所稅率為15%,倘若持股滿一年以上則稅率減半為7.5%,購買IPO股票持有超過3年則稅率再減半為3.75%。

核實課稅制度在2015年起增加了交易滿十億元以上,有賺錢才需要繳稅的條款,但是在2013年與2014年間,則是有賺錢就面臨繳交15%的稅率。而設算所得,則是大盤指數到達8500點以上時,無論您的賺賠,則皆要繳千分之0.2或以上的稅率。

不錯的 blog 文章

研發記錄簿-Paladin

【-Ma の 筆記本-】

Blogger , 有記錄不錯的經驗文章;有空可參考參考

SQL Server 判斷某個Table是否存在



if exists(
select * from dbo.sysobjects where id=object_id(N'[COMPANYDATEPROD]') and OBJECTPROPERTY(id,N'IsUserTable')=1
)
select 1
else
select 0

--所有資料表
select * from dbo.sysobjects

---------
 --方法一-透過INFORMATION_SCHEMA.TABLES
select *
from INFORMATION_SCHEMA.TABLES
where TABLE_TYPE='BASE TABLE'
and TABLE_NAME='RubSpec'

--方法二-透過sys.tables
select *
from sys.tables
where name='RubSpec'

--方法三-使用OBJECT_ID
select OBJECT_ID('RubSpec')
----若為暫存表格,因存放於tempdb,語法改寫為
select OBJECT_ID('tempdb..RubSpec')

--如果表格存在要一併刪除,可使用下述語法
IF (select OBJECT_ID('RubSpec')) IS NOT NULL Drop Table RubSpec

crystal report的群組分頁頁碼問題

請參考來源
--
這是很好的範例說明,收錄起來

(第一頁)
台灣               page : 1/2
A     B     C     D
------------------------
1     Z     X     W
2     U     V     L

(第二頁)
台灣               page : 2/2
A     B     C     D
-------------------------
1     H     I     Y
2     E     S     N
3     Q     E     V
4     I     O     W

(第三頁)
中國               page : 1/3         
A     B     C     D
------------------------
1     G     E     W
2     B     E     S
3     I     W     M

(第四頁)
中國               page : 2/3
A     B     C     D
------------------------
1     G     E     W
2     B     E     S
3     I     W     M

(第五頁)
中國               page : 3/3
A     B     C     D
------------------------
1     C     E     W
2     H     E     S 


在區段專家裡面群組尾的地方設定
「在之後重設頁碼」就可以了~


2012年11月14日 星期三

配息配股計算


配息:
公司去年度盈餘 以現金發放給股東叫配發現金股利--市場術語配息 計算方式:每股配發金額*持有的股數 以一張(1000股)計算 就是0.8*1000=800元

配股:
公司去年度盈餘以股票發放給股東叫配發股票股利--市場術語配股 計算方式:每股配發金額*持有的股數再除以10 以一張(1000股)計算 就是0.88*1000/10=88股

其2算法:


1)您可以拿多少錢=您持有的股數 x 配息金額 - 10元匯費
 如:您有中鋼3張(即3000股),配息0.8元,則您能拿到的錢為:
   3000股 x 0.8元 - 10元匯費 = 實領2390元

2)您可以拿多少股=您持有的股數 x 配息金額 / 10
 如:您有中鋼3張(即3000股),配股0.5元,則您能拿到的股為:
   3000股 x 0.5元 / 10 = 實領150股

2013行事曆

請參考:2013人事行政局102年公務人員行事曆

2012年11月12日 星期一

快速移除 Windows XP 內建的舊版 Windows Messenger 4.7

引用來源
--
「開始」->「執行」-> 在空格內輸入以下指令:
RunDll32 advpack.dll,LaunchINFSection %windir%\INF\msmsgs.inf,BLC.Remove

2012年11月10日 星期六

不知明的蟲


當發現時,魚都爛尾...掛掉了;隔離也掛掉
1種是有腳的~像蜘蛛
另一種圓黑小小隻的
有誰知道呢??

2012年11月4日 星期日

vb6 ADODB 運用


Dim oDb As New ADODB.Connection
Dim oRS As New ADODB.Recordset
Dim sSql As String

oDb.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;" _
      & "Data Source=C:\Data\MyAccessDB.mdb;Jet"
sSql = "SELECT DISTINCT([LastName]) FROM [Authors] ORDER BY LastName ASC"


oRS.Open sSql, oDB, adOpenForwardOnly, adLockReadOnly

Do While not oRS.EOF
    With cboMyCombo
        .AddItem trim$(oRS("LastName").Value)
    End With
    oRS.MoveNext
Loop
oRS.Close
oDB.Close

Set oRS = Nothing
Set oDB = Nothing

2012年11月2日 星期五

Sql Server 中提供了begin tran,commit tran和rollback tran



Sql Server 中提供了begin tran,commit tran和rollback tran來使用事務。begin tran表示開始事務,    commit tran表示提交事務,rollback tran表示回滾事務。具體用法如下:
-- =============================================
--
--
--
-- =============================================
-- EXEC TEST_PROC '文綜','包括歷史,地理,政治','政治','文綜的一門'
CREATE PROCEDURE [dbo].[TEST_PROC]
@A_Name NVARCHAR(20),         -- A表姓名
@A_Remark NVARCHAR(4000), -- A表備註
@B_Name NVARCHAR(20),         -- B表姓名
@B_Remark NVARCHAR(4000) -- B表備註
AS
BEGIN TRY
     BEGIN TRAN
-- 在A表中插入數據
         INSERT INTO [dbo].[A]
              ( [A_Name]
               , [A_Remark] )
         VALUES
              ( @A_Name
              , @A_Remark )
-- 在B表中插入數據
         INSERT INTO [dbo].[B]
              ( [A_ID]
             , [B_Name]
             , [B_Remark] )
         VALUES
             ( @@IDENTITY              -- 返回最後插入的標識值
             , @B_Name
             , @B_Remark )
     COMMIT TRAN
END TRY
BEGIN CATCH
     ROLLBACK TRAN
          INSERT INTO [dbo].[ErrorLog]
              ( [EL_Procedure]            -- 異常存儲過程名稱
              , [EL_OperateTime] )      -- 報異常時間
          VALUES
              ( 'TEST_PROC'
             , CONVERT(DATETIME,GETDATE(),20) )
END CATCH
註:1. @@IDENTITY的作用是返回最後插入的標識值。
        2. 我在rollback tran中加入一個專門記錄異常的表,以便產於異常發生的時間和確定報異常的存儲過程的名稱。

BEGIN TRAN 說明


在Transact-SQL的交易是使用BEGIN TRAN指令開始,如果交易成功,就使用交付交易COMMIT TRAN指令結束,如下所示:
程式1:commit in Transact-SQL
BEGIN TRAN AA
DELETE FROM Students WHERE sid = 'S001';
COMMIT TRAN AA 【確定執行,無法再rollback】

如果交易失敗,復原是使用ROLLBACK TRAN指令結束,如下所示:
程式2:rollback in Transact-SQL
BEGIN TRAN
DELETE FROM Students WHERE sid = 'S001';
ROLLBACK TRAN AA   【回覆上次動作】


-------------範例如下------------

SELECT         *
FROM             Orders
WHERE         (OrderID = '10248')


begin tran aa
update orders
set ShipAddress=
'KARAAAES' WHERE (OrderID = '10248')
COMMIT TRAN aa


rollback tran aa