Theotokos Posted August 8, 2011 Report Share Posted August 8, 2011 Pessoal, boa tarde! preciso de uma ajuda utilizo esta função a baixo para o usuario selecionar a impressora e o numero de copia que deseja, mas a tela aparece normalmente o usuario seleciona, mas não executa conforme a alteração. Ex: Se a impressora 1 é a default e o usuario seleciona a impressora 2, e coloca por ex. 3 copia. na hora de imprimir, imprime 1 copia na impressora 1 If GetPrintDC( GetActiveWindow() ) <> 0 *** rotina de impressao end id=code>id=code> Quote Link to comment Share on other sites More sharing options...
Theotokos Posted August 8, 2011 Author Report Share Posted August 8, 2011 Pessoal, boa tarde! preciso de uma ajuda utilizo esta função a baixo para o usuario selecionar a impressora e o numero de copia que deseja, mas a tela aparece normalmente o usuario seleciona, mas não executa conforme a alteração. Ex: Se a impressora 1 é a default e o usuario seleciona a impressora 2, e coloca por ex. 3 copia. na hora de imprimir, imprime 1 copia na impressora 1 If GetPrintDC( GetActiveWindow() ) <> 0 *** rotina de impressao end id=code>id=code> Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 8, 2011 Report Share Posted August 8, 2011 hDC := GetPrintDC( GetActiveWindow() ) if hDC == 0 cImpressoras := prnGetname() MSGINFO("Impressão cancelada pelo usuário","..::Impressão") Return .f. endif id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br joao@pleno.com.br Fone: (11) 3106-2832 / 8243-5632 - TIM FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted August 8, 2011 Report Share Posted August 8, 2011 Ou no seu próprio código If GetPrintDC( GetActiveWindow() ) <> 0 Return(.f.)id=red> end ** Seu código de impressão ** id=code>id=code>Luiz Arruda Corumbá-MS ico.corumba@gmail.com | FaceBook FiveWin 9.04 [x]Harbour PellesC Bcc Ws Editado por - ico on 08/08/2011 15:08:47 Quote Link to comment Share on other sites More sharing options...
Theotokos Posted August 8, 2011 Author Report Share Posted August 8, 2011 Vlw! Luiz e Joao, mas até isto faz, ou seja, se o usuario cancelar a impressão, aceita, ta OK. O problema ocorre se usuario altera o numero de copia por exemplo para 3 e dá OK para imprimir, deveria imprimir 3 copias, mas imprime uma só.id=red> Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 8, 2011 Report Share Posted August 8, 2011 Faz assim: PRINTER oPrnTest NAME "BLA BLA BLA" oPrnTest:setpage(1) oPrnTest:SetPortrait() oPrnTest:setsize(2159,1397) ///Para selecionar meia folha oPrnTest:SetCopies(nCopias) ///Quantidade de copias a imprimir id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br joao@pleno.com.br Fone: (11) 3106-2832 / 8243-5632 - TIM FWH 2.7 - xHARBOUR WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
Theotokos Posted August 8, 2011 Author Report Share Posted August 8, 2011 Assim OK! mas a função GetPrintDC() não funciona? penso que se ela abre a janela da impressora com as configuraçãoes deveria ao menos retornar algo que possamos "setar" as novas opções... citação:Faz assim: PRINTER oPrnTest NAME "BLA BLA BLA" oPrnTest:setpage(1) oPrnTest:SetPortrait() oPrnTest:setsize(2159,1397) ///Para selecionar meia folha oPrnTest:SetCopies(nCopias) ///Quantidade de copias a imprimir id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br joao@pleno.com.br Fone: (11) 3106-2832 / 8243-5632 - TIM FWH 2.7 - xHARBOUR WorkShop.Exe id=quote>id=quote> Quote Link to comment Share on other sites More sharing options...
VLNUNES Posted August 8, 2011 Report Share Posted August 8, 2011 Olá Rone Uso a função abaixo com win32prn()+GetPrinters() e funciona bém, a qde de cópias creio que se passado como parâmetro deve funcionar "nunca usei" eu uso um "for next". //-------------- SELECIONAR IMPRESSORA FUNCTION SIMSEL3() LOCAL oBmp local vIMPCARNE:=GetPrinters() local oIMP1,nIMP1:= ascan(vIMPCARNE) SEMIP := .F. SEIMP := "N" DEFINE DIALOG TELAIMPR RESOURCE "SELIMP" title"Selecione a impressora" REDEFINE BITMAP oBmp ID 1 RESOURCE "IMPRESS" OF TELAIMPR adjust REDEFINE COMBOBOX oIMP1 ID 101 ITEMS vIMPCARNE OF TELAIMPR VALID SAIMCARN(oIMP1) REDEFINE BUTTON ID 102 cancel ACTION (SIMSEL31(oIMP1),TELAIMPR:End()) WHEN SEMIP REDEFINE BUTTON ID 103 cancel ACTION TELAIMPR:End() ACTIVATE DIALOG TELAIMPR CENTERED return .t. //------------------------ FUNCTION SIMSEL31(oIMP1) LOCAL aPrn := oIMP1 local oPrinter := win32prn():New(aPrn) oPrinter:Landscape := .F. oPrinter:FormType := 9 oprinter:SetPrintQuality(-1) oPrinter:Copies := 1 // NUMERO DE CÓPIAS oprinter:create() oprinter:startdoc() //------------------- INICIO DA IMPRESSAO oprinter:setfont("Courier New",8) ncol:=oprinter:GetCharWidth() nlin:=oprinter:GetCharHeight() ... ... ... oprinter:enddoc() oprinter:destroy() ... ... RETURN .T. //------------------------- HABILITA IMPRESSÃO FUNCTION SEIMP() SEIMP := "S" RETURN .t. Vander HbMake v1.17 xHarbour build 0.99.70 Intl. (SimpLex) Borland C++ 5.5.1 fivewin 6.12 (FREE) Workshop 4.5 MEdit Quote Link to comment Share on other sites More sharing options...
Theotokos Posted August 8, 2011 Author Report Share Posted August 8, 2011 Vlw! Vander.... Quote Link to comment Share on other sites More sharing options...
Eduardo Bilato Posted August 9, 2011 Report Share Posted August 9, 2011 Já tentou usar a PrnGetCopies() ? Nunca usei essa função, mas olhando a documentação do FiveWin aqui foi o que encontrei mais próximo de sua necessidade. Veja se dá certo. att Eduardo de Camargo Bilato email: eduardobilato@gmail.com msn: dunhox@hotmail.com Quote Link to comment Share on other sites More sharing options...
kapiaba Posted February 9 Report Share Posted February 9 Eu sei que o tópico é antigo, más PrnGetCopies() ? ó as ideia.... kkkkkkkkkkkkkkkkkk Regards, saludos. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.