全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1167
推到 Plurk!
推到 Facebook!

列印表單問題

尚未結案
joyce352
一般會員


發表:3
回覆:1
積分:0
註冊:2003-02-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-26 10:43:07 IP:61.59.xxx.xxx 未訂閱
請問一下 如何同時列印兩份不同
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-26 11:17:24 IP:210.65.xxx.xxx 未訂閱
Hi joyce352,    由程式中去更改系統 Default 印表機,請參考以下文章 http://delphi.ktop.com.tw/topic.php?topic_id=37990 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-26 11:42:47 IP:210.68.xxx.xxx 未訂閱
Hi joyce352您好: Fishman版大提到用ListBox方法..    小弟這邊有另一個方法...利用TRegistry.. 有一個好處是可以依據特定系統來做設定 不會影響到電腦原本設定.. 參考看看    假設系統名稱為CusReport 針對特定系統寫入印表機
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\SOFTWARE\CusReport\PRINTER', True)
    then
    begin
      Reg.WriteString('預設A印表機', Edit1.Text );
      Reg.WriteString('預設B印表機', Edit2.Text);
      //.......
    end;
  finally
    Reg.CloseKey;
    Reg.Free;
    inherited;
  end;
讀取印表機 QuickRepA.PrinterSettings.PrinterIndex:=SelectPrinter('預設A印表機'); // .... QuickRepB.PrinterSettings.PrinterIndex:=SelectPrinter('預設B印表機'); // ....
Function SelectPrinter(const S: String):Integer;
var
 c:integer;
 sprn:string;
 Reg: TRegistry;
begin
  SelectPrinter:=-1;
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_CURRENT_USER;
    if Reg.OpenKey('\SOFTWARE\CusReport\PRINTER', True)
    then
    begin
      sprn:=Reg.ReadString(S);
    end;
  finally
    Reg.CloseKey;
    Reg.Free;
    inherited;
  end;
  c:=0;
  for c:=0 to printer.printers.count-1 do
  begin
    if sprn=printer.printers[c]  then
    begin
      Printer.PrinterIndex:=c;
      SelectPrinter:=c;
      break;
    end;
  end;
end;
~悠遊法國號~
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-26 11:56:44 IP:218.160.xxx.xxx 未訂閱
Hi joyce352 您好: 不曉得你是用哪種報表列印, 通常可直接修改Report的PrinterIndex來達成, QuickRep1.PrinterSettings.PrinterIndex:=0; 也可以將印表機設定一個名稱, 用名稱的方式修改PrinterIndex
NowPrinter:=TPrinter.Create;
QuickRep1.PrinterSettings.PrinterIndex:=NowPrinter.Printers.IndexOf('Printer2');
NowPrinter.Free;
*************** QuickRep1.PrinterSettings.PrinterIndex := -1;為系統預設印表機 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
joyce352
一般會員


發表:3
回覆:1
積分:0
註冊:2003-02-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-05-26 13:00:23 IP:61.59.xxx.xxx 未訂閱
如果是要用在DELPHI的 QuickRep上 不知要如何使用??(要寫在那一個事件上) 謝謝...
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-05-26 13:42:59 IP:218.160.xxx.xxx 未訂閱
Hi joyce352您好 : 剛好我的範例就是QuickReport的, 你只要寫在Print 或 Preview之前即可 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
系統時間:2024-05-18 18:29:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!