예제 #1
0
        private void opçãoPrefetch_Click(object sender, EventArgs e)
        {
            CacheMiniaturas cache = Entidades.Álbum.CacheMiniaturas.Instância;

            Aguarde janela = new Aguarde("Aguarde enquanto o arquivo de miniaturas é construído. Este processo pode demorar.", 1, "Processamento de miniaturas", cache.arquivoXml);
            janela.Abrir();

            cache.CarregarCacheMiniaturas();
            janela.Close();
        }
예제 #2
0
		public void Transpor(double cotaçãoVarejo, StringBuilder saída)
		{
            int maxComandosPorVez = 200;

            IDbConnection cn = Acesso.MySQL.ConectorMysql.Instância.CriarConexão(
                Acesso.MySQL.MySQLUsuários.ObterÚltimaStrConexão());

            cn.Open();

            IDbTransaction t = cn.BeginTransaction();
            
            StringBuilder consulta = new StringBuilder("");

            this.cotaçãoVarejo = cotaçãoVarejo;
            
            CriarHash();
            int vezAtual = 0;

            Aguarde aguarde = new Aguarde(
                "Alterando indices do novo banco",
                cadmer.Rows.Count, "Transpondo banco de dados", 
                "Aguarde enquanto o banco de dados é sincronizado.");

            aguarde.Abrir();

			foreach(DataRow itemMercadoria in cadmer.Rows)
			{
                aguarde.Passo();
    
                TransporMercadoria(itemMercadoria, consulta, saída);
                vezAtual++;

                if (vezAtual >= maxComandosPorVez && consulta.Length > 0)
                {
                    vezAtual = 0;
                    IDbCommand cmd = cn.CreateCommand();
                    cmd.Transaction = t;
                    cmd.CommandText = consulta.ToString();
                    consulta.Clear();
                    cmd.ExecuteNonQuery();
                }                
			}

            if (vezAtual > 0 && consulta.Length > 0)
            {
                IDbCommand cmd = cn.CreateCommand();
                cmd.CommandText = consulta.ToString();
                cmd.Transaction = t;
                cmd.ExecuteNonQuery();
                t.Commit();
            }

            aguarde.Close();
		}
예제 #3
0
        public PesquisaMercadoria()
        {
            InitializeComponent();

            using (Aguarde aguarde = new Aguarde("Recuperando componentes da mercadoria...", 2))
            {
                aguarde.Abrir();

                chkTipo.Items.AddRange(MercadoriaTipo.ObterTipos());
                aguarde.Passo();

                chkMetal.Items.AddRange(Metal.ObterMetais());
                aguarde.Passo();

                chkPedras.Items.AddRange(Pedra.ObterPedras());
            }
        }
예제 #4
0
        private Entidades.Mercadoria.Mercadoria[] CarregarMercadorias()
        {
            Entidades.Mercadoria.Mercadoria[] mercadorias;
            UseWaitCursor = true;
            using (Aguarde aguarde = new Aguarde("Pesquisando...", 4))
            {
                aguarde.Abrir();

                using (ControlePesquisaMercadoria controle = new ControlePesquisaMercadoria(cmbTabela.Seleção))
                {
                    Filtrar(aguarde, controle);
                    aguarde.Passo();

                    mercadorias = controle.ObterMercadorias();
                }
            }

            UseWaitCursor = false;
            return mercadorias;
        }
        private void opçãoExtrairFotos_Click(object sender, EventArgs e)
        {
            if (lst.Seleção == null)
            {
                MessageBox.Show(this,
                    "Favor selecionar um álbum.",
                    "Escolha do álbum",
                    MessageBoxButtons.OK,
                    MessageBoxIcon.Exclamation);

                return;
            }

            folderBrowserDialog.Description = "Escolha o diretório destino";

            if (folderBrowserDialog.ShowDialog(this) == DialogResult.OK)
            {
                Entidades.Álbum.Álbum album = lst.Seleção;
                List<Foto> fotos = album.Fotos.ExtrairElementos();

                Aguarde aguarde = new Aguarde("Extraíndo fotos", fotos.Count);

                aguarde.Abrir();
                string path = folderBrowserDialog.SelectedPath;

                if (!path.EndsWith(@"\"))
                    path = path + @"\";

                foreach (Foto f in fotos)
                {
                    Image imagem = f.Imagem;

                    Entidades.Mercadoria.Mercadoria m = f.ObterMercadoria();

                    if (imagem != null)
                        imagem.Save(path + f.ReferênciaFormatada + " - " + m.Descrição + (m.DePeso ? "" : " - " + m.PesoFormatado) + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);

                    aguarde.Passo();
                }

                aguarde.Close();

                MessageBox.Show("As fotos foram extraídas", "Fim", MessageBoxButtons.OK, MessageBoxIcon.Information);
                System.Diagnostics.Process.Start(path);
            }
        }
예제 #6
0
        public static void ExportarAtacadoBR500()
        {
            string datayyyymmdd = DateTime.Now.Date.ToString("yyyyMMdd");

            // Solicita nome do arquivo
            using (SaveFileDialog dlgGrava = new SaveFileDialog())
            {
                dlgGrava.Title = "Escolha onde gravar o arquivo principal (CAD1A025.TXT)";

                dlgGrava.FileName = @"CAD1A025.TXT";
                dlgGrava.OverwritePrompt = false;
                dlgGrava.DefaultExt = "TXT";
                if (dlgGrava.ShowDialog() == DialogResult.OK)
                {
                    nomeArquivoPrincipal = dlgGrava.FileName;
                }
                else
                    return;

                dlgGrava.Dispose();
            }

            // Solicita nome do arquivo
            using (System.Windows.Forms.SaveFileDialog dlgGrava = new SaveFileDialog())
            {
                //dlgGrava.InitialDirectory = nomeArquivoPrincipal;
                dlgGrava.Title = "Escolha onde gravar o arquivo secundário, de código de barras EAN(CAD1A090.TXT)";
                dlgGrava.FileName = @"CAD1A090.TXT";
                dlgGrava.OverwritePrompt = false;
                dlgGrava.DefaultExt = "TXT";
                if (dlgGrava.ShowDialog() == DialogResult.OK)
                {
                    nomeArquivoEAN = dlgGrava.FileName;
                }
                else
                    return;

                dlgGrava.Dispose();
            }


            // Obtem a cotação de varejo
            cotação = Cotação.ObterCotaçãoVigente(Moeda.ObterMoeda(4)).Valor;

            List<IDbConnection> conexõesRemovidas = new List<IDbConnection>();
            // Abre banco de dados
            MySQL.AdicionarTabelaAoDataSet(ds, "mercadoria", conexõesRemovidas);
            MySQL.AdicionarTabelaAoDataSet(ds, "tabelamercadoria", conexõesRemovidas);

            Aguarde janela = new Aguarde("Gerando entrada para impressora fiscal", ds.Tables["mercadoria"].Rows.Count);
            janela.Abrir();
            using (StreamWriter arquivoPrincipal = new StreamWriter(nomeArquivoPrincipal))
            {
                using (StreamWriter arquivoEAN = new StreamWriter(nomeArquivoEAN))
                {
                    foreach (DataRow m in ds.Tables["mercadoria"].Rows)
                    {
                        janela.Passo();
                        string referencia = (string)m["referencia"];
                        bool foraDeLinha = ((byte)m["foradelinha"]) != 0;

                        if (referencia.Length >= 10 && !foraDeLinha)
                        {
                            arquivoPrincipal.Write("0");
                            string referenciaCortada = Cortar(referencia.Remove(1, 1), 10, '0', false);
                            // Arquivo EAN

                            // Operação: Inclusão
                            arquivoEAN.Write("0");

                            // Referencia da empresa, total 13 posicoes
                            arquivoEAN.Write(Cortar(referencia, 13, '0', false));

                            // Digito
                            arquivoEAN.Write(Cortar(m["digito"].ToString(), 1));

                            // Código reduzido
                            arquivoEAN.Write(referenciaCortada);

                            // Quantidade de unidades p/ EAN - total 7
                            string qtdEan = new String('0', 6) + "1";
                            arquivoEAN.Write(qtdEan);

                            // Uso específico
                            arquivoEAN.Write(new String('0', 10));

                            // Uso Específico
                            arquivoEAN.Write(new String(' ', 2));

                            // Divide preço pela EAN-QTD
                            arquivoEAN.Write("0");

                            // Para uso futuro
                            //arquivoEAN.Write(new String(' ', 23));
                            arquivoEAN.WriteLine();

                            // Arquivo Principal

                            arquivoPrincipal.Write(referenciaCortada);

                            // Seção grupo subgrupo
                            arquivoPrincipal.Write("000100010001");

                            //Descrição - 40
                            string descrição = (string)m["nome"];

                            // Retirar os acentos
                            descrição = Acentuação.Singleton.TirarAcentos(descrição);

                            arquivoPrincipal.Write(Cortar(descrição, 40));

                            // Descrição - 20 
                            arquivoPrincipal.Write(Cortar(descrição, 20));

                            // Tipo de embalagem fornecedor
                            arquivoPrincipal.Write("UN");

                            // Qtd embalagem fornecedor
                            arquivoPrincipal.Write("0001");

                            // Tipo de embalagem de venda
                            arquivoPrincipal.Write("UN");

                            // Qtd embalagem venda
                            arquivoPrincipal.Write("0001");

                            // Peso variável
                            bool dePeso = (byte)m["depeso"] != 0;
                            arquivoPrincipal.Write(dePeso ? "S" : "N");

                            // Não emite etiqueta
                            arquivoPrincipal.Write("0");

                            // Tecla da balança 
                            arquivoPrincipal.Write("000");

                            // Validade do produto para balança
                            arquivoPrincipal.Write("000");

                            // Receita do produto para balança
                            arquivoPrincipal.Write(new String(' ', 100));

                            // % de IPI
                            arquivoPrincipal.Write(new String('0', 5));

                            // % bonificação
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor de despache acessória
                            arquivoPrincipal.Write(new String('0', 10));

                            // Valor de despache acessória tributária
                            arquivoPrincipal.Write(new String('0', 10));

                            // % de frete cobrado
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor do ICM na fonte
                            arquivoPrincipal.Write(new String('0', 11));

                            // Valor do ICM na compra
                            arquivoPrincipal.Write(new String('0', 4));

                            // Data do cálculo da saída média ddmmaaaa
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String('0', 5));

                            // Valor da saída média
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço de custo do fornecedor
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço de custo do fornecedor anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Data preço custo fornecedor
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data preço custo fornecedor anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Preço de venda unitário 8,2-> "0000000000"
                            double preçoVenda = ObterPreço(referencia);
                            if (preçoVenda <= 0)
                            {
                                //ReportarErro("Preço zero para referência " + referencia);
                            }
                            string preçoVenda10Digitos = preçoVenda.ToString("00000000.00").Replace(".", "").Replace(",", "");

                            if (preçoVenda10Digitos.Length != 10)
                                MessageBox.Show("Erro, deveria ter 10 digitos");

                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            // Preço de venda 2 
                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            // Preço de venda anterior
                            arquivoPrincipal.Write(preçoVenda10Digitos);

                            string preçoVenda11Digitos = preçoVenda.ToString("00000000.000").Replace(".", "").Replace(",", "");
                            if (preçoVenda11Digitos.Length != 11)
                                MessageBox.Show("Erro: deveria ter 11 dígitos");

                            // Preço de venda (Unitário)
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Preço de venda 2
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Preço de venda anterior
                            arquivoPrincipal.Write(preçoVenda11Digitos);

                            // Data preço de venda
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data preço de venda anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // % margem de lucro
                            arquivoPrincipal.Write("00");

                            // % margem de lucro anterior
                            arquivoPrincipal.Write("00");

                            // Custo de reposição
                            arquivoPrincipal.Write(new String('0', 11));

                            // Custo de reposição anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço com margem zero
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço margem zero anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço oferta/promoção
                            arquivoPrincipal.Write(new String('0', 10));

                            // Promoção anterior
                            arquivoPrincipal.Write(new String('0', 10));

                            // Preço oferta/promoção
                            arquivoPrincipal.Write(new String('0', 11));

                            // Preço oferta/promoção anterior
                            arquivoPrincipal.Write(new String('0', 11));

                            // Data do início da oferta
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do fim da oferta
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do início da oferta anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Data do fim da oferta anterior
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Código da natureza fiscal
                            arquivoPrincipal.Write("T18");

                            // Estado de origem
                            arquivoPrincipal.Write("MG");

                            // Código Associado
                            arquivoPrincipal.Write(new String('0', 10));

                            // Comissão praticada
                            arquivoPrincipal.Write(new String('0', 5));

                            // Estoque do produto no depósito
                            arquivoPrincipal.Write(new String('0', 10));

                            // Estoque do produto na loja
                            arquivoPrincipal.Write(new String('0', 10));

                            // Estoque mínimo
                            arquivoPrincipal.Write(new String('0', 10));

                            // Barra a multiplicação do produto no PDV
                            arquivoPrincipal.Write("0");

                            // Tipo de desconto
                            arquivoPrincipal.Write("0");

                            // % desconto máximo
                            arquivoPrincipal.Write(new String('0', 5));

                            // Venda fracionada
                            arquivoPrincipal.Write(dePeso ? "1" : "0");

                            // Não tem dependencia
                            arquivoPrincipal.Write("0");

                            // Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // 2o Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // 3o Título de dependencia
                            arquivoPrincipal.Write(new String(' ', 10));

                            // Pode ser alterado
                            arquivoPrincipal.Write("1");

                            // Produto Cesta básica
                            arquivoPrincipal.Write("0");

                            // Se produto pertence a uma cesta
                            arquivoPrincipal.Write("0");

                            // Se produto é diferenciado de outros
                            arquivoPrincipal.Write("00"); // Normal

                            // Data da última venda do produto
                            arquivoPrincipal.Write(datayyyymmdd);

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("0");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("00");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write("0");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String(' ', 8));

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String('0', 10));

                            // Modalidade hiperideal
                            arquivoPrincipal.Write("04");

                            // Pontuação fidelidade
                            arquivoPrincipal.Write(new String('0', 7));

                            // Pontos extra fidelidade
                            arquivoPrincipal.Write(new String('0', 7));

                            // Peso a ser calculo em item unitário
                            arquivoPrincipal.Write(new String('0', 5));

                            // Flag de produto unitário vendido por peso
                            //sw.Write(dePeso ? "1" : "0");
                            arquivoPrincipal.Write("0");

                            // Quantidade máxima a ser multiplaco no pdv
                            arquivoPrincipal.Write("000");

                            // Uso exclusivo do sistema
                            arquivoPrincipal.Write(new String(' ', 3));

                            // Qtd maxima a ser vendido
                            arquivoPrincipal.Write(new String('0', 5));

                            // Solicita senha do supervisor para venda
                            arquivoPrincipal.Write("0");

                            // Para uso futuro
                            //arquivoPrincipal.Write(new String(' ', 44));

                            arquivoPrincipal.WriteLine();
                        }
                    }
                }

                
                janela.Close();
                MessageBox.Show("Processo concluído.", "Exportação de arquivo fiscal", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
예제 #7
0
		/// <summary>
		/// Imprime etiquetas
		/// </summary>
		/// <param name="etiquetas">Etiquetas a serem impressas</param>
		/// <param name="layout">Layout de etiquetas</param>
		private void ImprimirEtiquetas(EtiquetaFormato [] etiquetas, LabelLayout layout)
		{
            ArrayList saquinhosImpressos = new ArrayList();

			int deEtiqueta, atéEtiqueta;	// Seleção de etiquetas a serem impressas
			int nEtiquetas;					// Total de etiquetas a serem impressas
			int etiquetasPágina;			// Etiquetas por página
			int iEtiqueta;					// Iterador

			nEtiquetas      = CalcularNúmeroEtiquetas(etiquetas);
			etiquetasPágina = layout.LabelsPerPage;

			printDlg.PrinterSettings.MaximumPage = (int) Math.Ceiling(nEtiquetas / (float) etiquetasPágina);
			printDlg.PrinterSettings.MinimumPage = 1;
			printDlg.PrinterSettings.DefaultPageSettings.PaperSize = layout.PaperSize;
			printDlg.PrinterSettings.FromPage = 1;
			printDlg.PrinterSettings.ToPage = printDlg.PrinterSettings.MaximumPage;

			if (printDlg.ShowDialog(this.ParentForm) != DialogResult.OK)
			{
				MessageBox.Show(this, "Impressão cancelada pelo usuário", "Impressão", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);	
				return;
			}

			aguardeImpressão = new Aguarde(
					   "Preparando impressão...",
					   2 + printDlg.PrinterSettings.ToPage - printDlg.PrinterSettings.FromPage,
					   "Imprimindo etiquetas",
					   "Aguarde enquanto o sistema imprime as etiquetas solicitadas.");

			// Mostrar janela de espera
            aguardeImpressão.Abrir();
			
			aguardeImpressão.Tag = 0;			// Usado para numeração de página

			try
			{
				// Preparar impressão
				layout.Document = printDoc;
				deEtiqueta      = (printDlg.PrinterSettings.FromPage - 1) * etiquetasPágina;
				atéEtiqueta     = (printDlg.PrinterSettings.ToPage) * etiquetasPágina - 1;
				iEtiqueta       = 0;

				// Inserir objetos de impressão
				layout.Objects = new ArrayList();

				// Atualizando dados
				aguardeImpressão.Passo("Sincronizando dados com o banco de dados");
				bandeja.AtualizaObjetosInstrínsecosDosSaquinhos();

				// Formata a impressão
				aguardeImpressão.Passo("Formatando dados para impressão de etiquetas");
 
				foreach (SaquinhoEtiqueta saquinho in bandeja)
				{
					/* Verificar se saquinho contém formato a ser
						* impresso. Não é a melhor implementação,
						* porém o número de formatos é bem pequeno,
						* levando a um pior desempenho caso utilizado
						* busca binária, já que deve ordenar os itens.
						*/
					for (int i = 0; i < etiquetas.Length; i++)
						if (saquinho.Etiqueta == etiquetas[i])
						{
#if DEBUG
                            if (saquinho.Mercadoria == null)
                                throw new NullReferenceException("Mercadoria de saquinho está nula!");
#endif
							if (iEtiqueta >= deEtiqueta && iEtiqueta <= atéEtiqueta)
							{
								layout.Objects.Add(
									new RepeatedObject(
									layout.Items[i],
									saquinho.Mercadoria,
									( Convert.ToInt32(saquinho.Quantidade) > atéEtiqueta - iEtiqueta + 1
									? atéEtiqueta - iEtiqueta + 1
									: Convert.ToInt32(saquinho.Quantidade))));

                                saquinho.Impresso = true;

                                if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta");
                                saquinhosImpressos.Add(saquinho);
							}
							else if (iEtiqueta <= atéEtiqueta && iEtiqueta + saquinho.Quantidade >= deEtiqueta)
							{
								layout.Objects.Add(
									new RepeatedObject(
									layout.Items[i],
									saquinho.Mercadoria,
									Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta) > atéEtiqueta - iEtiqueta + 1
									? atéEtiqueta - iEtiqueta + 1
									: Convert.ToInt32(saquinho.Quantidade) - (deEtiqueta - iEtiqueta)));

                                saquinho.Impresso = true;

                                if (saquinhosImpressos.Contains(saquinho)) throw new Exception("Lista ja contem o item de etiqueta");
                                saquinhosImpressos.Add(saquinho);
							}

							iEtiqueta += Convert.ToInt32(saquinho.Quantidade);
						}
				}

				bool loop;

				do
				{
#if !DEBUG
					try
#endif
				{
					printDoc.Print();

					loop = false;
				}
#if !DEBUG
					catch (Exception e)
					{
						loop = MessageBox.Show(
							this.ParentForm,
							"Não foi possível imprimir o documento. Verifique se a impressora está ligada e conectada corretamente ao computador.",
							"Impressão de etiquetas - " + e.Message,
							MessageBoxButtons.RetryCancel) == DialogResult.Retry;

						if (loop)
						{
							printDlg.AllowSomePages = false;
							printDlg.ShowDialog(this.ParentForm);
						}
					}
#endif
				} while (loop);
			}
			finally
			{
				layout.Dispose();
                aguardeImpressão.Close();
                aguardeImpressão.Dispose();
                aguardeImpressão = null;
			}

            bandeja.FoiImpresso(saquinhosImpressos);

            opçãoImprimir.Enabled = true;
		}
예제 #8
0
		/// <summary>
		/// Ocorre ao solicitar impressão
		/// </summary>
		private void opçãoImprimir_Click(object sender, System.EventArgs e)
		{
			EtiquetaFormato [] etiquetas = ObterFormatosBandeja();

            using (Aguarde aguarde = new Aguarde("Reobtendo configuração dos formatos", etiquetas.Length))
            {
                aguarde.Abrir();

                foreach (EtiquetaFormato etiqueta in etiquetas)
                {
                    aguarde.Passo("Reobtendo configuração do formato " + etiqueta.Formato);
                    etiqueta.ReobterInformações();
                }

                aguarde.Close();
            }

			using (ImprimirEscolha dlg = new ImprimirEscolha(etiquetas, new ImprimirEscolha.CalcularEtiquetas(CalcularNúmeroEtiquetas)))
			{
				if (dlg.ShowDialog() == DialogResult.OK)
				{
					ImprimirEtiquetas(dlg.Seleção, dlg.LayoutEtiquetas);
				}
			}
		}
예제 #9
0
        private void bandejaAgrupada_ColarSolicitado(object sender, EventArgs e)
        {
            List<ISaquinho> lista = ÁreaDeTransferência.Instância.Lista;

            if (lista.Count == 0) return;

            if (ConferirTravamento())
                return;

            Aguarde aguarde = new Aguarde("Colando..", lista.Count);
            aguarde.Abrir();
            foreach (ISaquinho s in lista)
            {
                s.Mercadoria.Peso = s.Peso;
                Adicionar(s.Mercadoria, s.Quantidade, ModoJanelaÍndice.MostrarSeNecessário, false);
                aguarde.Passo(s.Mercadoria.Referência);
            }
            aguarde.Close();
        }
예제 #10
0
		/// <summary>
		/// Ocorre ao mostrar a tela para imprimir
		/// </summary>
		private void painelImprimir_Exibido(object sender, System.EventArgs e)
		{
			using (Aguarde aguarde = new Aguarde(
                       "Preparando para imprimir",
					   seleção.Length + 1,
					   "Preparando impressão de etiquetas",
					   "Aguarde enquanto o sistema prepara a impressão de etiquetas."))
			{
				int etiquetas, etiquetasPágina;

                aguarde.Abrir();

				layout = new LabelLayout();

				layout.ImportType(typeof(Entidades.Mercadoria.Mercadoria));

				// Carrega formato inicial
				aguarde.Passo("Carregando formato " + seleção[0].Formato);
				layout.LoadFromXml(seleção[0].Configuração, false);

				// Mescla demais formatos
				for (int i = 1; i <seleção.Length; i++)
				{
					aguarde.Passo("Mesclando formato " + seleção[i].Formato);

					layout.MergeFromXml(seleção[i].Configuração, false);
				}

				// Calcula número de páginas
				aguarde.Passo("Calculando número de páginas");

				etiquetas = cálculo(seleção);
				etiquetasPágina = layout.LabelsPerPage;

				lblTotal.Text = etiquetas.ToString();
				lblPáginas.Text = Math.Ceiling(etiquetas / (float) etiquetasPágina).ToString();
				lblEtiquetas.Text = etiquetasPágina.ToString();
			}
		}
예제 #11
0
		/// <summary>
		/// Verifica compatibilidade da seleção atual
		/// </summary>
		/// <returns>Compatibilidade dos formatos</returns>
		private bool VerificarCompatibilidade()
		{
			if (seleção.Length <= 1)
				return true;

			using (Aguarde aguarde = new Aguarde(
									   "Construindo formato para base de comparação",
									   seleção.Length,
									   "Verificando compatibilidade",
									   "O sistema está verificando a compatibilidade dos formatos de etiqueta a serem impressos."))
			{
				bool        compatibilidade = true;
				LabelLayout layout;

				// Construir janela de porcentagem
                aguarde.Abrir();

				aguarde.Passo("Carregando formato " + seleção[0].Formato);

				layout = new LabelLayout();
				layout.LoadFromXml(seleção[0].Configuração, true);

				for (int i = 1; i < seleção.Length && compatibilidade; i++)
				{
					LabelLayout aux;

					aguarde.Passo("Comparando formato " + seleção[i].Formato);

					aux = new LabelLayout();
					aux.LoadFromXml(seleção[i].Configuração, true);
				
					compatibilidade &= layout.IsCompatible(aux);
				}

				return compatibilidade;
			}
		}
		/// <summary>
		/// Exibe pessoas na lista.
		/// </summary>
		/// <param name="pessoas">Pessoas a serem exibidas.</param>
		private void Exibir(List<Entidades.Pessoa.Pessoa>  pessoas)
		{
            Aguarde janela = new Apresentação.Formulários.Aguarde("Este processo não pode demorar", pessoas.Count, "Carregando cidades", "Experimente digitar o nome seguido de qualquer sobrenome, este processo será mais rápido da próxima vez.");
            janela.Abrir();

            // Carrega o endereços das pessoas.
            Entidades.Pessoa.Pessoa.CarregarEndereços(pessoas);

            foreach (Entidades.Pessoa.Pessoa pessoa in pessoas)
			{
                janela.Passo();
				ListViewItem item = new ListViewItem(new string [lista.Columns.Count]);

				// Atribuir nome
				item.Text = (pessoa != null && pessoa.Nome != null) ? pessoa.Nome : "";

                List<Entidades.Pessoa.Endereço.Endereço> endereços = pessoa.Endereços.ExtrairElementos();
                if (endereços.Count > 0
                    && endereços[0].Localidade != null
                    && endereços[0].Localidade.Estado != null)

                    item.SubItems[colCidade.Index].Text = endereços[0].Localidade.Nome + " - " + endereços[0].Localidade.Estado.Sigla;

				// Adicionar à lista
				lista.Items.Add(item);
				itensPessoa[item] = pessoa;
			}
			
			if (lista.Items.Count >= 1)
			{
				lista.Items[0].Selected = true;
				lista.Items[0].EnsureVisible();
			}

            janela.Close();
		}