Boa tarde pessoal, este é meu primeiro post aqui no fórum, gostaria de saber se existe um método para converter o nome da impressora no seu número (ModeloECF) como no Exemplo_c.exe onde a aplicação pede o Número correspondente a impressora. Estou estudando um fonte do Albert Eije, em seu fonte ele faz algo parecido com isso:
FDataModule.ACBrECF.Modelo = (ModeloECF)Convert.ToInt32(Configuracao.ModeloImpressora);
Porém ao compilar o VS2010 me retorna o seguinte erro:
System.FormatException was unhandled
HResult=-2146233033
Message=A cadeia de caracteres de entrada não estava em um formato incorreto.
Source=mscorlib
StackTrace:
em System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
em System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
em System.Convert.ToInt32(String value)
em PafEcf.View.FCaixa.ConfiguraACBr() na C:\Projeto\PAF\View\UCaixa.cs:linha 329
em PafEcf.View.FCaixa.FormCreate() na C:\Projeto\PAF\View\UCaixa.cs:linha 191
em PafEcf.View.FCaixa..ctor() na C:\Projeto\PAF\View\UCaixa.cs:linha 125
em PafEcf.tsProgram.Main(String[] args) na C:\Projeto\PAF\tsProgram.cs:linha 15
em System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
em System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
em Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
em System.Threading.ThreadHelper.ThreadStart_Context(Object state)
em System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
em System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
em System.Threading.ThreadHelper.ThreadStart()
InnerException:
Quando eu passo o número correspondente ao Modelo em meu caso (Bematech) número 2
ex: FDataModule.ACBrECF.Modelo = (ModeloECF)2;
a aplicação funciona normalmente.
O que eu posso estar fazendo errado? Qualquer sugestão ajuda, sou novo no AcBr estes são meus primeiro testes.
Caso não exista uma forma de fazer isso, terei que criar um método usando um switch para "transformar" o modelo do ECF em seu respectivo código no ModelECF. Porém penso que se o Albert fez desta forma, deve existir algum meio mais clean para realizar esta tarefa.