private void Btn_Confirmar_Click(object sender, EventArgs e) { StringBuilder PIS = new StringBuilder(11); StringBuilder Matricula = new StringBuilder(20); StringBuilder NomeFuncionario = new StringBuilder(52); StringBuilder Biometrico = new StringBuilder(20000); //Valor definido baseado na maior template possivel de ser gerada c/ 10 digitais cadastradas. StringBuilder HabilitaTeclado = new StringBuilder(1); StringBuilder CodigoTeclado = new StringBuilder(16); StringBuilder CodigoBarras = new StringBuilder(20); StringBuilder CodigoMIFARE = new StringBuilder(20); StringBuilder CodigoTAG = new StringBuilder(20); StringBuilder MensagemErro = new StringBuilder(256); REPZPM_DLL.ID_Comando = REPZPM_DLL.DLLREP_BuscaTodosFuncionarios(REPZPM_DLL.Handle); /*Sucesso na execução do comando*/ if (REPZPM_DLL.ID_Comando > 0) { /************************************************************************************************************************** * MODO PENDRIVE * ***************************************************************************************************************************/ if (REPZPM_DLL.Modo == 1) { REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_VerificaRetornoPenDrive(REPZPM_DLL.Handle, REPZPM_DLL.ID_Comando); /*Verifica se o retorno já está disponível*/ if (REPZPM_DLL.Retorno < 0) { REPZPM_DLL.Retorno = REPZPM_DLL.Trata_Retorno_Pendrive(REPZPM_DLL.Retorno); /*Verifica se o arquivo foi processado, 1 = OK*/ if (REPZPM_DLL.Retorno == 1) { /*Verifica no arquivo do pendrive se houve erro na execução do comando*/ REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_ObtemMensagemErro(REPZPM_DLL.Handle, MensagemErro, 1); /*Comando executado*/ if (REPZPM_DLL.Retorno == 0) { MessageBox.Show("Comando executado com sucesso via pendrive!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); /*Verifica a quantidade de registros retornados*/ TotalRegistros = REPZPM_DLL.DLLREP_TotalRetornos(REPZPM_DLL.Handle); /*Verifica se retornaram registros*/ if (TotalRegistros > 0) { /*Limpa a listagem*/ Lst_Funcionarios.Items.Clear(); /*Executa a busca dos Funcionários*/ for (i = 1; i <= TotalRegistros; i++) { /*Busca as informações do funcionários*/ REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_RetornoFuncionario(REPZPM_DLL.Handle, i, PIS, Matricula, NomeFuncionario, Biometrico, HabilitaTeclado, CodigoTeclado, CodigoBarras, CodigoMIFARE, CodigoTAG); /*Sucesso na leitura dos funcionários*/ if (REPZPM_DLL.Retorno == 1) { /*Separa cada template*/ sBiometrico = Convert.ToString(Biometrico); tamanhoBiometrico = sBiometrico.ToString().Length; if ((sBiometrico.EndsWith(";") == false) && (tamanhoBiometrico == 996)) { //Insere um ";" no final da string p/ delimitar a última template sBiometrico = sBiometrico.Insert(tamanhoBiometrico, ";"); tamanhoBiometrico++; } pos = sBiometrico.IndexOf(";"); tamanhoTemplate = pos; //define o tamanho da template /*Se existir biometria cadastrada, separa por template*/ if (pos != -1) { bio1 = sBiometrico.Substring(0, tamanhoTemplate); pos_anterior = tamanhoTemplate; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio2 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio3 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio4 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio5 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio6 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio7 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio8 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio9 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio10 = sBiometrico.Substring(pos + 1, tamanhoTemplate); } } } } } } } } } } } } } } } } } } } Lst_Funcionarios.Items.Add("PIS: " + PIS); Lst_Funcionarios.Items.Add("Matricula: " + Matricula); Lst_Funcionarios.Items.Add("Nome Funcionário: " + NomeFuncionario); Lst_Funcionarios.Items.Add("Biométrico 1 : " + bio1); Lst_Funcionarios.Items.Add("Biometrico 2 : " + bio2); Lst_Funcionarios.Items.Add("Biometrico 3 : " + bio3); Lst_Funcionarios.Items.Add("Biometrico 4 : " + bio4); Lst_Funcionarios.Items.Add("Biometrico 5 : " + bio5); Lst_Funcionarios.Items.Add("Biometrico 6 : " + bio6); Lst_Funcionarios.Items.Add("Biometrico 7 : " + bio7); Lst_Funcionarios.Items.Add("Biometrico 8 : " + bio8); Lst_Funcionarios.Items.Add("Biometrico 9 : " + bio9); Lst_Funcionarios.Items.Add("Biometrico 10: " + bio10); Lst_Funcionarios.Items.Add("HabilitaTeclado: " + HabilitaTeclado); Lst_Funcionarios.Items.Add("Código Teclado: " + CodigoTeclado); Lst_Funcionarios.Items.Add("Código Barras: " + CodigoBarras); Lst_Funcionarios.Items.Add("Código MIFARE: " + CodigoMIFARE); Lst_Funcionarios.Items.Add("Código TAG: " + CodigoTAG); Lst_Funcionarios.Items.Add("\n"); } else { /*Houve erro no retorno do comando via pendrive*/ REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_ObtemMensagemErro(REPZPM_DLL.Handle, MensagemErro, 1); MessageBox.Show(Convert.ToString(MensagemErro), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { /*Houve erro no retorno do comando via pendrive*/ REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_ObtemMensagemErro(REPZPM_DLL.Handle, MensagemErro, 1); MessageBox.Show(Convert.ToString(MensagemErro), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } else { /*Houve erro no processamento do arquivo do pendrive*/ REPZPM_DLL.Retorno = REPZPM_DLL.Trata_Retorno_REP(REPZPM_DLL.Retorno); return; } } } } /************************************************************************************************************************** * MODO IP * ***************************************************************************************************************************/ if (REPZPM_DLL.Modo == 0) { TotalRegistros = REPZPM_DLL.DLLREP_TotalRetornos(REPZPM_DLL.Handle); /*Verifica se retornaram registros*/ if (TotalRegistros > 0) { /*Limpa a listagem*/ Lst_Funcionarios.Items.Clear(); /*Executa a busca dos Funcionários*/ for (i = 1; i <= TotalRegistros; i++) { REPZPM_DLL.Retorno = REPZPM_DLL.DLLREP_RetornoFuncionario(REPZPM_DLL.Handle, i, PIS, Matricula, NomeFuncionario, Biometrico, HabilitaTeclado, CodigoTeclado, CodigoBarras, CodigoMIFARE, CodigoTAG); /*Sucesso na execução do comando*/ if (REPZPM_DLL.Retorno == 1) { /*Separa cada template*/ sBiometrico = Convert.ToString(Biometrico); tamanhoBiometrico = sBiometrico.ToString().Length; if ((sBiometrico.EndsWith(";") == false) && (tamanhoBiometrico == 996)) { //Insere um ";" no final da string p/ delimitar a última template sBiometrico = sBiometrico.Insert(tamanhoBiometrico, ";"); tamanhoBiometrico++; } pos = sBiometrico.IndexOf(";"); tamanhoTemplate = pos; //define o tamanho da template /*Se existir biometria cadastrada, separa por template*/ if (pos != -1) { bio1 = sBiometrico.Substring(0, tamanhoTemplate); pos_anterior = tamanhoTemplate; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio2 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio3 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio4 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio5 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio6 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio7 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio8 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio9 = sBiometrico.Substring(pos + 1, tamanhoTemplate); pos_anterior = tamanhoTemplate + pos_anterior; if ((pos_anterior < tamanhoBiometrico) && ((pos + 1) != tamanhoBiometrico)) { pos = sBiometrico.IndexOf(";", pos_anterior); if (pos != -1) { bio10 = sBiometrico.Substring(pos + 1, tamanhoTemplate); } } } } } } } } } } } } } } } } } } } Lst_Funcionarios.Items.Add("PIS: " + PIS); Lst_Funcionarios.Items.Add("Matricula: " + Matricula); Lst_Funcionarios.Items.Add("Nome Funcionário: " + NomeFuncionario); Lst_Funcionarios.Items.Add("Biométrico 1 : " + bio1); Lst_Funcionarios.Items.Add("Biometrico 2 : " + bio2); Lst_Funcionarios.Items.Add("Biometrico 3 : " + bio3); Lst_Funcionarios.Items.Add("Biometrico 4 : " + bio4); Lst_Funcionarios.Items.Add("Biometrico 5 : " + bio5); Lst_Funcionarios.Items.Add("Biometrico 6 : " + bio6); Lst_Funcionarios.Items.Add("Biometrico 7 : " + bio7); Lst_Funcionarios.Items.Add("Biometrico 8 : " + bio8); Lst_Funcionarios.Items.Add("Biometrico 9 : " + bio9); Lst_Funcionarios.Items.Add("Biometrico 10: " + bio10); Lst_Funcionarios.Items.Add("HabilitaTeclado: " + HabilitaTeclado); Lst_Funcionarios.Items.Add("Código Teclado: " + CodigoTeclado); Lst_Funcionarios.Items.Add("Código Barras: " + CodigoBarras); Lst_Funcionarios.Items.Add("Código MIFARE: " + CodigoMIFARE); Lst_Funcionarios.Items.Add("Código TAG: " + CodigoTAG); Lst_Funcionarios.Items.Add("\n"); } else { /*Trata o retorno de erro do REP*/ REPZPM_DLL.Retorno = REPZPM_DLL.Trata_Retorno_REP(REPZPM_DLL.Retorno); return; } } } else { MessageBox.Show("Não há funcionário cadastrados no REP!", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } } } else { /*Houve erro no processamento do Handle*/ REPZPM_DLL.Retorno = REPZPM_DLL.Trata_Retorno_DLL(REPZPM_DLL.ID_Comando); return; } }