PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WD -  Como recuperar dinamicamente o nome das impressora?
WD - Como recuperar dinamicamente o nome das impressora?
Iniciado por BOLLER ADRIANO, jul., 02 2016 2:26 AM - Sem resposta
Membro registado
3.659 mensagems
Popularité : +175 (223 votes)
Publicado em julho, 02 2016 - 2:26 AM
A tela de impressões parâmetro (não mostrado aqui) permite escolher o
impressora e bandejas corespondente para 1º e seguintes cópias. É
composto por 2 combos e 2 listas. Os combos aparecem impressoras
apresentadas no post (ver iListPrinter ()). As listas são exibidas escaninhos
impressoras selecionadas em combos graças ao procedimento
Charge_Bacs (). A variável nCopie m indica uma maneira simples (e melhorar)
que combos é clicado (1 ou 2) que permite realizar o
tratamento adequado (também é possível mudar para definir o
nome da janela e os nomes dos objetos para tratar ...).

Procedure Charge_Bacs(nCopie)

// Declaration des variables
nbBac est un entier sur 4
sNomImp est une chaîne
sNomPort est une chaîne
nBoucle est un entier
sNomBac est chaîne
nCodeBac est entier
nPositionNull est un entier
tabNumerosBacs est un tableau dynamique de 1 entiers sur 2
sListeBacs est une chaîne
sNomImprimante est une chaîne


SI nCopie = 1 ALORS
sNomImprimante = COMBO_Imprimantes_PremiereCopie..ValeurAffichee
ListeSupprimeTout(LISTE_Bacs_PremiereCopie)
SINON
sNomImprimante = COMBO_Imprimantes_DeuxiemeCopie..ValeurAffichee
ListeSupprimeTout(LISTE_Bacs_DeuxiemeCopie)
FIN

// Constantes A DECLARER dans l initialisation du projet
//Constante
// API_NUMEROS_BACS = 6
// API_NOMS_BACS = 12
//FIN

// Selectionner l imprimante

iConfigure(sNomImprimante,Vrai)
sNomImp = iInfoImprimante(Vrai,iNomImprimante)
sNomPort = iInfoImprimante(Vrai,iNomPort)

// Chercher le nombre de bacs
nbBac = AppelDLL32("winspool.drv", "DeviceCapabilitiesA", sNomImp, sNomPort, API_NUMEROS_BACS, Null, 0)

SI nbBac ALORS

Dimension(tabNumerosBacs,nbBac)
nbBac = AppelDLL32("winspool.drv", "DeviceCapabilitiesA", sNomImp, sNomPort, API_NUMEROS_BACS, &tabNumerosBacs, 0)

sListeBacs = Répète(0,24 * nbBac)

nbBac = AppelDLL32("winspool.drv", "DeviceCapabilitiesA", sNomImp, sNomPort, API_NOMS_BACS, sListeBacs, 0)

POUR nBoucle = 1 TO nbBac
sNomBac = Milieu(sListeBacs, 24 * (nBoucle - 1) 1, 24)
nPositionNull = Position(sNomBac, Null)
SI nPositionNull ALORS
sNomBac = Gauche(sNomBac,nPositionNull-2)
FIN
nCodeBac = tabNumerosBacs[nBoucle]

SI nCopie = 1 ALORS
ListeAjoute(LISTE_Bacs_PremiereCopie,sNomBac
gLien(NumériqueVersChaîne(nCodeBac)))
SINON
ListeAjoute(LISTE_Bacs_DeuxiemeCopie,sNomBac
gLien(NumériqueVersChaîne(nCodeBac)))
FIN
FIN
FIN


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 9949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/