Ir para o conteúdo

Pesquisar na Comunidade

A mostrar resultados para tags ''csharp''.



Mais opções de pesquisa

  • Pesquisa por Tags

    Introduza as tags separadas por vírgulas.
  • Pesquisar por Autor

Tipo de Conteúdo


Fórum

  • Bem-vindos ao Portugal-a-Programar
    • Sugestões, Críticas ou Dúvidas relativas ao P@P
    • Acerca do P@P
  • Comunidade a Trabalhar
    • Wiki P@P
    • Apresentação de Projectos de Programação
    • Downloads
  • Revista PROGRAMAR
    • Revista PROGRAMAR
  • Desenvolvimento Geral
    • C
    • C++
    • Java
    • Haskell
    • Pascal
    • Python
    • Bases de Dados
    • Visual Basic Clássico
    • Visual Basic for Applications (VBA)
    • Dispositivos Móveis
    • Outras Linguagens
  • Desenvolvimento Orientado para Web
    • PHP
    • HTML
    • CSS
    • Javascript
    • Outras Linguagens de WebDevelopment
    • Desenvolvimento Web
  • Desenvolvimento .NET
    • C#
    • Visual Basic .NET
    • ASP.NET
    • WPF & SilverLight
  • Software e Sistemas Operativos
    • Software de Produtividade
    • Sistemas Operativos
    • SharePoint
    • Apresentação de Software
  • Informática Extra-Programação
    • Interfaces Visuais
    • Computação Gráfica
    • Algoritmia e Lógica
    • Segurança e Redes
    • Hardware
    • Electrónica
    • Automação Industrial
    • Dúvidas e Discussão de Programação
    • Notícias de Tecnologia
  • Outras Áreas
    • Matemática
    • Dúvidas Gerais
    • Discussão Geral
    • Eventos
    • Anúncios de Emprego
    • Tutoriais
    • Snippets / Armazém de Código
  • Arquivo Morto
    • Projectos Descontinuados
    • System Empires

Blogs

  • Blog dos Moderadores
  • Eventos
  • Notícias de Tecnologia
  • Blog do Staff
  • Revista PROGRAMAR
  • Projectos
  • Wiki

Categorias

  • Revista PROGRAMAR
  • Tutoriais
  • Textos Académicos
  • Exercícios Académicos
    • Exercícios c/ Solução
    • Exercícios s/ Solução
  • Bibliotecas e Aplicações
  • Outros

Procurar resultados em...

Pesquisar conteúdos que contêm...


Data de Publicação

  • Início

    Fim


Última Actualização

  • Início

    Fim


Filtrar por número de...

3358 resultados

  1. Bom dia, estou desenvolvendo um sistema de emissão de bilhetes/fichas que deve sofrer umas adaptações para o funcionamento em portugal e me deparei com umas duvidas quanto a parte de emissão de faturas. Se puderem me ajudar, ficaria muito grato. 1 - Na Despacho n.º 8632/2014, de 3 de julho vi algumas regras a serem seguidas para emissão da factura. No entanto fiquei com duvida em alguns aspectos: a) A numeração da fatura, vi que deverá possuir o formato: 'Tipo' 'N.º de Serie'/'N.º Sequencial' sem as aspas simples( ' ). No entanto, em relação ao numero de serie fiquei sem entender se era um numero que eu criava, ou se devo registra-lo de acordo com o tipo em algum lugar na AT, ou se devo requisitado de alguma API ou WebService deles? b) No caso do código Hash, ele deve ser gerado com base na chave publica ou privada? No caso da primeira nota a ser emitida, devo omitir a informação separada por hífen (Ex. AxAx- Processado por programa certificado de n.º XXXX/AT)? Porque pelo que entendi o código AxAx é feito com base na posição ( 1ª, 11ª, 21ª e 31ª ) do hash gerado ou estou enganado? c) Após o armazenamento e emissão da nota, poderia imprimir as respectivas quantidades de fichas descritas na Factura para retirada das bebidas, por exemplo. Ou teria que desmembrar a fatura em três tratando-as individualmente para que o cliente tivesse a comodidade de retirar-las mais tarde? d) Toda fatura obrigatoriamente deve ser assinada, ou somente o ficheiro que sera enviado para SAF-T(PT)? No seu devido fechamento mensal, que ainda não conseguir entender se é dia 8, 20 ou 25 do mês subsequente. e) No caso de cancelamento de 1 item, devo cancelar a fatura inteira e gerar uma nota de crédito, ou posso realizar o cancelamento de um item demonstrando valor negativo na nota? Fiquei confuso na documentação em um momento fala que não e em outro fala que o valor negativo não pode superar o valor da fatura, enfim. 2 - Ao realizar uma tentativa de validação de certificado, com software disponibilizado pela AT, me deparei com seguinte erro: "cvc-identity-constraint.4.3: Key 'InvoiceProductCodeConstraint' with value 'MO' not found for identity constraint of element 'AuditFile'.". Saberiam como resolver? 3 - Conheceriam alguma API de integração, ou biblioteca em C# que pudesse facilitar o processo da emissão de faturas? Desde já grato pela vossa atenção, Fabio
  2. Herbert

    Abrir Windows Explore

    Saudações! Como abrir a pasta do windows explore dentro de um formulário (WindowsForms).? Não quero abrir simplesmente o windows explore, mas abrir contido, dentro, do Form1 por exemplo.
  3. Rafael Serra Martins

    WEBSERVICE - AT - EMITIR RECIBO VERDE

    Cumprimentos a todos, Existe algum webservice fornecido pela AT para a emissão de recibos verdes?! Agradeço desde já a colaboração de todos.
  4. Boas pessoal, há um tópico com nome parecido com este, mas o conteúdo é bem diferente. Já partilhei no outro uma solução para ler dados do cartão de cidadão com uma DLL. Desta vez venho partilhar convosco uma solução mais abrangente para ler os dados a partir do browser chrome. Podem consultar no meu blog: https://ruimptech.wordpress.com/2018/07/19/88/ Esta solução passa por utilizar uma extension chrome que faz a ponte entre o browser e a leitura dos dados.
  5. ASILVAPT

    Dúvida DataGrid & Base de Dados SQL

    Boas pessoal, estou a criar um programa simples em C# que consiste ligar-se a uma base de dados e com o DataGridView seleccionar uma row e ter diversas operações com botões. Mas estou a ter erros no botão de eliminar a row da base de dados. Ou seja, consigo apagar a linha do DataGrid mas da base de dados SQL não. Para o botão apagar estou a usar o seguinte código (Para apagar tenho uma checkbox no DataGridView e depois de selecionado, clicar no botão Apagar) : private void button1_Click(object sender, EventArgs e) { foreach(DataGridViewRow row in dataGridView1.Rows) { object cell = row.Cells["Apagar"].Value; if (cell == "Sim") { if (MessageBox.Show("Apagar?", "Confimar", MessageBoxButtons.YesNo) == DialogResult.Yes) { sQLDATASET.documentos.Rows[row.Index].Delete(); documentosTableAdapter.Update(sQLDATASET.documentos); } } } } Mas quando clico no botão de apagar, aparece me este erro: Falta-me alguma coisa aqui nas propriedades do TableAdapter? (Ignorem o retângulo vermelho.) Agradecia se alguém me pudesse ajudar, pois estou a aprender ainda trabalhar em linguagem C#. Cumprimentos.
  6. Minileandro

    C#-> Problema ao reiniciar menu (switch,case)

    Olá, bem preciso da vossa ajuda. Como está no título, eu estou a ter um problema quando os menus (switch,case) em que, quando abro o programa aparece lá os números que quero escolher, pressionar e que aconteca o que eu pedi. Mas depois de escolher (a primeira vez) carrego em enter, reinicia e aparece a seleção de novo mas não consigo digitar o número que quero (fica parado) Bem, no programa diz que o erro está em -> s1 = Convert.ToInt16(value: Console.ReadLine()); (erro: http://prntscr.com/jwfjy5, http://prntscr.com/jwfl3p) Gostava muito que me ajudassem, para ajudar um pouco mais a entender vou deixar o código todo: Código: using System; using System.IO; using System.Net; using System.Text; using Newtonsoft; using Newtonsoft.Json; namespace ConsoleApp2 { class Program { static void Main(string[] args) => BacktoMenu(); private static void BacktoMenu() { //todo aquele código que eu falei na resposta do topico aqui Console.WriteLine("----------------------------------------------"); Console.WriteLine("|ILHA DO CLUB PENGUIN 0.0.1 ALPHA |"); Console.WriteLine("----------------------------------------------"); Console.WriteLine(); //Menu Console.WriteLine("Escolhe a opção:\n" + "\n1.- Versão dos arquivos" + "\n2.- Analisar arquivos" + "\n5.- Sair" + "\n10.-Limpar Tudo"); int s1 = 0; s1 = Convert.ToInt16(value: Console.ReadLine()); switch (s1) { case 1: Console.WriteLine("Versão dos arquivos:"); string Url; string GetResponse; Console.WriteLine(); Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); Console.WriteLine(); string URL = "COLOCAR LINK AQUI"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.ContentType = "application/json; charset=utf-8"; HttpWebResponse response = request.GetResponse() as HttpWebResponse; using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); Console.WriteLine(reader.ReadToEnd()); } Console.WriteLine(); Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); Console.Read(); BacktoMenu(); break; case 5: Console.WriteLine("Sair"); Console.ReadKey(); BacktoMenu(); break; case 2: Console.WriteLine("Em desenvolvimento"); Console.Read(); BacktoMenu(); break; case 10: Console.WriteLine("Em desenvolvimento"); Console.ReadKey(); break; default: Console.WriteLine("A opção que selecionaste não existe!"); BacktoMenu(); break; } BacktoMenu(); Console.WriteLine(""); //versão Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); } } }
  7. Estou com dúvidas de como fazer um controle de uma thread, eu tenho um sistema de importação, onde importo minhas planilhas para a base dados, porém utilizo threads pois possuo muitos registros, funciona! Porém para ter mais segurança no que estou importando, eu gostaria de pegar o ultimo numero do processo judicial, todos os processos judiciais que terminarem com o numero 0 eu pego e insiro somente os processos terminados com o numero 0, e todos terminados com 1 e 2 e assim por diante. Alguém sabe como poderia estar fazendo? Eu andei pesquisando e encontrei algo chamado .last(), não sei se aplica usando uma lista. Esse é meu método de importar: protected void importar_Click(object sender, EventArgs e) { usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login); log.Clear(); //Stopwatch relogio = new Stopwatch(); //relogio.Start(); DataTable Dados = new DataTable(); //Verifica se um arquivo foi selecionado if (selecionarArquivo.HasFile) { //Valida a extensão do arquivo: if (Path.GetExtension(selecionarArquivo.FileName) != ".xlsx" && Path.GetExtension(selecionarArquivo.FileName) != ".xls") ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Somente arquivos em excel')</script>"); else { if (selecionarArquivo.FileContent != null) { string Excel = AppDomain.CurrentDomain.BaseDirectory + selecionarArquivo.FileName; selecionarArquivo.SaveAs(Excel); Dados = DadosExcel(Excel); //Tentavia de ordenação através da coluna. //System.Data.DataView view = Dados.DefaultView; //view.Sort = "G ASC"; //Tentativa 2 de ordenação pegando pelos dados. //string strSort = "NOME ASC"; //System.Data.DataView dtview = new System.Data.DataView(Dados); //dtview.Sort = strSort; //DataTable dtsorted = dtview.ToTable(); //Tentaiva 3 //Dados.DefaultView.Sort = "G Asc"; //string[] nomeInteressado = new string[Dados.Rows.Count]; //for (int i = 0; i < Dados.Rows.Count; i++) //{ // nomeInteressado[i] = Dados.Rows[i]["G"].ToString(); //} //Array.Sort(nomeInteressado); //for (int i = 1; i < Dados.Rows.Count; i++) //{ // Dados.Rows[i]["G"] = nomeInteressado[i]; //} //Tentativa pela ordenação usando o IOrderedEnumerable, não funcionou. //IOrderedEnumerable<DataRow> resultado; //resultado = Dados.Select().OrderBy(d => d["NOME"]); //Tentativa invalida //Dados.DefaultView.Sort = "A Asc"; //var dataparam = Dados.AsEnumerable().OrderBy(linha => linha.Field<int>("indice")); //Dados.Columns.Add("NUMERO JUDICIAL", typeof(string)); //Dados.Rows.Add(16, "0022350-77.2016.8.08.0048"); //Dados.Rows.Add(76, "0021704-78.2016.8.08.0012"); //Dados.Rows.Add(13, "0009360-20.2017.8.08.0048"); //Dados.Rows.Add(14, "0017555-91.2017.8.08.0048"); //Dados.Rows.Add(73, "0031279-52.2012.8.08.0012"); //Dados.Rows.Add(15, "0017734-93.2015.8.08.0048"); //Dados.Rows.Add(111, "0015570-97.2015.8.08.0035"); //var dataparam = Dados.AsEnumerable().OrderBy(linha => linha.Field<int>("indice")); //foreach (var item in dataparam) //{ // string text = ""; // foreach (var clm in item.ItemArray) // text += string.Format("{0}\t " + " _ ", clm); // Response.Write(text + "<br/>"); //} Dados.Columns.Add("indice", typeof(int)); int i = 1; foreach (DataRow linha in Dados.Rows) { linha["indice"] = i; i++; } var registrosValidos = ((DataTable)Dados).Rows.OfType<DataRow>().Skip(5); //Elimina a última linha registrosValidos = registrosValidos.Take(registrosValidos.Count() - 1); //ler de 100 em 100 regisros int quantidade_por_pagina = 100; int total_de_paginas; //Conta os registros válidos int qtd_total_registros = registrosValidos.Count(); //Realiza o calculo matemáticos para total de paginas. total_de_paginas = (int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina); if (registrosValidos.Count() > 0) { bool layoutValido = VerificaLayout(Dados); if (!layoutValido) ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>"); else { //Validação básica necessária para importação. PS: NumLinhas-1 porque o arquivo tem a última linha com total, que é inútil à importação. VerificacaoPreliminar(registrosValidos); //Inicio da rotina de repetição para leitura de todas as linhas, iniciando na célula B6 if (!arquivoInvalidado) { this.ValidaDuplicidadeInteressado(); //Criando as tarefas paralelas List<System.Threading.Tasks.Task> TarefasParalelas = new List<System.Threading.Tasks.Task>(); for (int j = 0; j < total_de_paginas; j++) { var pagina = j; //leio as 100 linhas var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina); //Quebrando em 10 threads, vou quebrar a lista com a extenção criada abaixo var data_rows_divididos = linhasPorPagina.SplitList(10); foreach (var linhasDivididas in data_rows_divididos) { //ADICIONO A MINHA LISTA DE TAREFAS PARALELAS TarefasParalelas.Add(ProcessamentoTabela(linhasDivididas, j, usuarioLogado)); } } //INICIOS AS TAREFAS PARALELAS foreach (var tarefa in TarefasParalelas) tarefa.Start(); // AGORA ESPERO TODAS TAREFAS CONCLUIREM System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray()); // ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>"); } if (listaGravarProcInter.Count != 0) { foreach (ProcessoInteressado item in listaGravarProcInter) { aplProcessoInteressado.salvar(item); } } if (listaLogsAuditoria.Count != 0) { foreach (var item in listaLogsAuditoria) { aplLog.LogarAtividade(usuarioLogado, item, DateTime.Now); //aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item, DateTime.Now); } } else { logimportacao.Visible = true; loglbl.Text = log.ToString(); ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>"); } } } } } } //Tempo de importação. //relogio.Stop(); //Debug.WriteLine("#############" + relogio.Elapsed.ToString()); } E aqui é meu método da Thread: private System.Threading.Tasks.Task ProcessamentoTabela(IEnumerable<DataRow> dadosparam, int i, Usuario usuarioLogado) { //usuarioLogado = aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login); i = 4; i++; Action<object> processamento = (dados) =>  { /*if (NHibernate.Context.ThreadStaticSessionContext.HasBind(NhibernateHelper.SessionFactory.))*/ NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.HelpThreading().OpenSession()); //Tentativa de ordenação por linha dentro do foreach direto no método da thread. //foreach (var linha in ((IEnumerable<DataRow>)dados).OrderBy(linha => linha["indice"])) foreach (var linha in (IEnumerable<DataRow>)dados) {  List<Processo> listaProcessoExistente = new List<Processo>(); Processo processo = null; Interessado interessado = new Interessado(); //busca o processo pelo nº judicial anterior ou atual if (!linha.ItemArray[1].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[1].ToString()); if (processo == null) { if (!linha.ItemArray[2].ToString().Equals("")) processo = aplProcesso.consultar---ProcessoER(linha.ItemArray[2].ToString()); } //busca o interessado por cpf/cnpj if (linha.ItemArray[7].ToString().Length == 14) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString())); if (linha.ItemArray[7].ToString().Length == 18) interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString())); if (processo != null) { //se o processo não for nulo busco todos procinter relacionados a ele List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo); if (listaprocinter.Exists(o => o.Interessado == interessado)) log.Append("O interessado informado na linha " + (linha["indice"]) + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); //log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); // log.Append("O interessado " + processo.Interessado.Nome + " foi adicionado novamente ao processo " + processo.NumProcessoJudicial + " <br>"); setProcInter(processo, interessado, linha, i); } else { //Novo Processo - 6.3 processo = new Processo(); processo.Interessado = interessado; processo.NumProcessoJudicial = linha.ItemArray[2].ToString().Trim(); processo.RenunciaCredito = "N"; processo.Situacao = new AplSituacao().ConsultarPorId(1); processo.HonorarioDativo = "S"; processo.Reclamado = new AplReclamado().buscaItem(2); processo.TipoDocumento = new AplTipoDocumento().buscaItem(4); processo.TipoProcesso = "O"; if (linha.ItemArray[5].ToString().Contains("juizado")) processo.Tribunal = new AplTribunal().buscaItem(71); else processo.Tribunal = new AplTribunal().buscaItem(3); processo.NaturezaDespeza = new AplNaturezadeDespesa().buscaItem(3); VaraExecucao vara = new VaraExecucao(); if (!linha.ItemArray[3].ToString().Equals("") && !linha.ItemArray[5].ToString().Equals("")) { List<VaraExecucao> listaVaraComarca = aplVaraExecucao.Consultar---omeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim()); if (listaVaraComarca.Count != 0) { if (linha.ItemArray[4].ToString().Equals("")) { vara = listaVaraComarca.Find(o => o.NumeroVara == null); } else { vara = listaVaraComarca.Find(o => o.NumeroVara == int.Parse(linha.ItemArray[4].ToString().Trim())); } } } if (vara != null && vara.Codigo != 0) { processo.VaraExecucao = vara; } aplProcesso.gravar(processo); //aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial aplLog.LogarAtividade(usuarioLogado, "Importação do processo de número judicial: " + processo.NumProcessoJudicial + ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal " + processo.Tribunal.NomeTribunal + ".", DateTime.Now); //log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>"); setProcInter(processo, interessado, linha, i); } }//Fim Foreach //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '60%';</script>"); logimportacao.Visible = true; loglbl.Text = log.ToString(); //ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>"); ClientScript.RegisterStartupScript(typeof(string), "Alerta", "<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>"); }; ISession sessao = ThreadStaticSessionContext.Unbind(NhibernateHelper.HelpThreading()); if (sessao != null) { if (sessao.Transaction != null && sessao.Transaction.IsActive) { sessao.Transaction.Rollback(); } else { sessao.Flush(); } sessao.Close(); } //Tarefas baseadas de forma assíncrona System.Threading.Tasks.Task tarefa_executar = new System.Threading.Tasks.Task(processamento, dadosparam); return tarefa_executar; } Como eu poderia ter esse controle? Coluna C é aonde está meus processos judicial, no meu sistema indice 0 é igual a coluna 1, indice 1 é igual a coluna 2, indice 2 é igual a coluna 3(local do processo). Como poderia esta controlando isso?
  8. Boas Estou a acabar o meu programa para a PAP e descobri que não consigo obter os grupos a partir de um computador fora do domínio (dentro do domínio funciona tudo bem)... Esta é a função: public bool[] IsUserGroupMember(string sUserName, string sGroupName, string sGroupName2) { UserPrincipal oUserPrincipal = GetUser(sUserName); GroupPrincipal oGroupPrincipal = GetGroup(sGroupName); GroupPrincipal oGroupSecundary = GetGroup(sGroupName2); if (oUserPrincipal != null && oGroupPrincipal != null && oGroupSecundary != null) { return new bool[] {oUserPrincipal.IsMemberOf(oGroupPrincipal), oUserPrincipal.IsMemberOf(oGroupSecundary)}; } return new bool[] {false}; } Estas são as funções chamadas: public PrincipalContext GetPrincipalContext() { PrincipalContext oPrincipalContext = new PrincipalContext(ContextType.Domain, Dominio, stringAD, @Adminlogin, @Adminpass); return oPrincipalContext; } public UserPrincipal GetUser(string sUserName) { PrincipalContext oPrincipalContext = GetPrincipalContext(); UserPrincipal oUserPrincipal = UserPrincipal.FindByIdentity(oPrincipalContext, sUserName); return oUserPrincipal; } public GroupPrincipal GetGroup(string sGroupName) { PrincipalContext oPrincipalContext = GetPrincipalContext(); GroupPrincipal oGroupPrincipal = GroupPrincipal.FindByIdentity(oPrincipalContext, sGroupName); return oGroupPrincipal; } Um print do código: Como já disse em cima, isto funciona se for num computador do domínio. Consigo fazer ping ao domínio, e também o tenho a apontar para o IP da máquina no ficheiro hosts. O firewall da máquina está desativado e corre no VMware com Windows Server 2012 R2. Alguém tem alguma ideia? Obrigado
  9. rmpt

    HL7 v2 ou v3

    Boas, pelo que procurei não existe discussão sobre este tema por estas bandas. Alguém já implementou/usou alguma biblioteca C# para ler/escrever HL7? Se sim, partilhem qual a lib ou se a implementaram pf. Outra questão e talvez mais importante, é que versão HL7 implementar/utilizar? Para quem trabalha ou trabalhou sabe que existem 2 versões distintas: 2 e 3. A estrutura e forma de funcionar são diferentes e a 2 é muito antiga, no entanto pelo que vejo a 2 é muito mais utilizada e a implementar uma delas parece-me que a 2 fará mais sentido. Mas sendo a 3 mais recente, será que não vale mais implementar a 3?
  10. EclipseX

    [C#] Envio de emails

    Deixo aqui um pequeno exemplo de como fazer. Neste caso também será necessário configurar o IIS: Existem montes de maneiras de o fazer,esta é apenas uma maneira simples =) using System; using System.Web; using System.Web.Mail; public partial class _xxxx : System.Web.UI.Page { public void enviar_Click(object sender, EventArgs e) { MailMessage mailMsg = new MailMessage(); mailMsg.From ="Email para envio"; mailMsg.To = "email remetente"; mailMsg.Subject = "assunto"; mailMsg.Body = "texto de email"; try { SmtpMail.SmtpServer = "localhost"; SmtpMail.Send(mailMsg); } catch (System.Exception erro) { lblResultado.Text = erro.Message; } finally { mailMsg = null; } } } IIS configuration: 1.Abrir IIS-- Start->control panel->Administrive Tools->Internet Information Services 2. ir a (local computer) -> Default SMTP Virtual Server, carregar com butao direito e abrirá as propriedades 3. Ir a Access tab e carregar em Relay... button and Relay Restrictions window pops up. meter o pisco "All except the list below" option, e depois carregar em OK
  11. BMR318

    Botão que capta o caminho de uma pasta

    Boas, Estou a tentar criar uma textbox, em que clicando num button, abre uma janela para seleccionar uma pasta de destino e apresenta o caminho completo na textbox. Estou a usar o seguinte código: private void btnSelectFolder_Click(object sender, EventArgs e) { FolderBrowserDialog OpenFolder = new FolderBrowserDialog(); OpenFolder.ShowDialog(); if (OpenFolder.SelectedPath != null) { txtSelectFolder.Text = OpenFolder.ToString(); } No entanto, o resultado que obtenho na textbox é: System.Windows.Forms.FolderBrowserDialog Alguém tem alguma ideia que me possa ajudar??
  12. BigMachine3

    Privilégios no Login

    Bom dia companheiros. Estou a fazer uma aplicação em C# onde eu tenho um sistema de login. Nesse sistema de login eu queria adicionar privilégios a determinados utilizadores. Por exemplo, o programa detetar que é o admin a fazer login e habilita um determinado botão, enquanto se for outro utilizador esse botão fica desabilitado. Isso é possível fazer? E como? Cumprimentos, BigMachine3.
  13. Karbust

    Usar continue dentro de um if

    Boas Estou aqui a tentar usar um if dentro de um if, tipo isto: else { if (text_login_windows.Text.Length > 20) { int maxLength = Math.Min(text_login_windows.Text.Length, 20); text_login_windows.Text = text_login_windows.Text.Substring(0, maxLength); continue; } string password = Membership.GeneratePassword(12, 1); } Alguém me sabe dizer como posso fazer o código continuar depois de passar dentro do if? O meu objetivo é se o comprimento for maior que 20 carateres o código reduz para 20 e continua para o resto do código. Tenho este erro com esse continue; aí: No enclosing loop out of which to break or continue Pelo que vi na net não é possível usar isso fora de um loop, alguém me sabe dizer outra maneira de conseguir executar isso? Obrigado
  14. João Santos123

    Dúvida em resolver este exercício POO

    Boas como sou novo na programação orientada a objectos ontem deparei-me com este exercício e estou sérias dificuldades em resolver isto, agradecia muito se alguém me pudesse ajudar Programação orientada a objetos em C# Pretende-se com este trabalho o desenvolvimento de uma aplicação que permita efetuar a gestão de contas num banco. Após uma breve análise, concluiu-se que deverão definidos 3 tipos (classes): Pessoa, Cliente e Conta. Para a pessoa deverão ser representados o nome e idCivil, bem como todas as operações convenientes de manutenção de pessoas. Cliente, constitui uma especialização de Pessoa, que deverá contemplar o idCliente, bem como as operações de manutenção de clientes. Cada conta deverá conter a referência do cliente, o número da conta e o saldo. Estes valores deverão ser inicializados no momento da criação da conta. O tipo a criar deverá disponibilizar métodos para depositar e levantar, para realizar depósitos e levantamentos de dinheiro da conta. Desenvolva ainda os métodos convenientes para obtenção e manutenção dos dados de uma conta, tendo em atenção as validações convenientes. De entre estes últimos, deverá ser desenvolvido o método GetSaldo(), que devolve o saldo da conta. Pedidos: 1-Implemente os tipos em questão, verificando a sua implementação a partir da criação e utilização com dados variáveis introduzidos pelo utilizador. 2-Implemente uma demonstração que implemente uma base de dados de contas diferentes, permitindo efetuar todas as operações previstas, preferencialmente baseadas em menus. 3-Deverá ser especializado o tipo como uma conta a prazo, considerando pelo menos, os dados seguintes e respetivas operações de manutenção: data de constituição, prazo em meses e taxa de juro nominal. Deverá ser demonstrada a sua utilização, baseado também num sistema de menus. 4-Deverá ser sobreposto o método ToString() nos dois tipos para devolver os dados das contas, separado por tabuladores ou vírgulas. Deverá ser demonstrada a implementação de polimorfismo, criando uma base de dados única de contas, sendo os dados das contas apresentados numa tabela formatada convenientemente.
  15. Boas, Estou a tentar passar o valor inserido numa TextBox para neste caso uma Label , mas tenho sempre o erro " Cannot implicitly convert type 'bool' to 'string' " ou seja que a Variavel "Value" que defeni como string, é Bool e não string. private void button1_Click(object sender, EventArgs e) { NumberStyles style; CultureInfo culture; double number; string value; style = NumberStyles.AllowDecimalPoint; culture = CultureInfo.CreateSpecificCulture("pt-PT"); value=textBox1.Text; label1.Text = Double.TryParse(value, style, culture, out number); } desde já muito obrigado
  16. Olá pessoal, eu gostava de saber como deixar o programa que eu criei sem fehcar. Por exemplo, eu coloquei no meu programa menus. (//Menu Console.WriteLine("Escolhe a opção:\n" + "\n1.- Versão dos arquivos" + "\n2.- Analisar arquivos" + "\n5.- Sair" + "\n10.-Limpar Tudo"); ) Número 1 ativa alguma coisa Número 2 ativa outra Mas quando acaba de fazer o que programei eu coloquei para fechar mas eu não sei como fazer para continuar. Eu queria que quando acaba-se fica-se aberto mas pudesse selecionar as outras opções que fiz. E poderiam me dizer um sistema que limpe tudo o que fiz mas apareça as opções no inicio (e sem fechar o programa também) Espero que tenham percebido o que disse, agradeço quem me ajudar. Código: using System; using System.IO; using System.Net; using System.Text; using Newtonsoft; using Newtonsoft.Json; namespace ConsoleApp2 { class Program { private static object encoding; static void Main(string[] args) { Console.WriteLine("----------------------------------------------"); Console.WriteLine("|NOME|"); Console.WriteLine("----------------------------------------------"); Console.WriteLine(); //Menu Console.WriteLine("Escolhe a opção:\n" + "\n1.- Versão dos arquivos" + "\n2.- Analisar arquivos" + "\n5.- Sair" + "\n10.-Limpar Tudo"); int s1 = 0; s1 = Convert.ToInt16(Console.ReadLine()); switch (s1){ case 1: Console.WriteLine("Versão dos arquivos:"); string Url; string GetResponse; Console.WriteLine(); Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); Console.WriteLine(); string URL = "Link"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL); request.ContentType = "application/json; charset=utf-8"; HttpWebResponse response = request.GetResponse() as HttpWebResponse; using (Stream responseStream = response.GetResponseStream()) { StreamReader reader = new StreamReader(responseStream, Encoding.UTF8); Console.WriteLine(reader.ReadToEnd()); } Console.WriteLine(); Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); break; case 5: Console.WriteLine("Sair"); Console.ReadKey(); break; case 2: Console.WriteLine("Em desenvolvimento"); break; case 10: Console.WriteLine("Em desenvolvimento"); Console.ReadKey(); break; default: Console.WriteLine("A opção que selecionaste não existe!"); break; } Console.WriteLine(""); //versão Console.WriteLine("----------------------------------------------------------------------------------------------------------------------------------------------"); } } }
  17. Julio Gomes

    Como uso Sockect com Protocolo TCP/UDP

    Boas, eu estou desenvolver uma mini game online mas eu queria saber como funciona os Sockets C#, TCP, UDP. Queria que o servidor e o cliente envia-se constantemente uma mensagem de uma lado para outro(loop), eu ja vi no youtube varios exemplos mas estao em ingles eu nao queria copiar codigo deles e pronto , eu queria saber como funciona, quando e o que devemos utilizar para fazer a tal coisa e por ai adiante. Alguma sugestao de livros de redes ou algo parecido para poder estudar melhor. *meu ingles e mau 😥
  18. Andréaprogramar

    Quizz Questionário

    Boa noite, Em âmbito escolar na aprendizagem de linguagem C#, foi-me proposto um trabalho e tentei elaborar um quizz de 30 questões ao todo, com 4 possibilidades de resposta cada, a partir de um ficheiro CSV. O objectivo do trabalho é misturar as questões todas e escolher 10 não-repetidas para apresentar, com cada questão devem ser apresentadas as respectivas respostas e espaço para a resposta do utilizador. Por cada resposta certa o utilizador irá pontuar 5 pontos. A par disto o utilizador poderá usar uma das 2 ajudas que possibilitam a escolha de outra pergunta não-repetida.No fim do jogo, deverá ser possível fazer o reset ao jogo, recomeçando com novas perguntas sorteadas. Actualmente já consegui estruturar a classe que criei para apresentar cada questão com as perguntas, e já consigo ler os dados a partir do ficheiro CSV que são carregados para uma lista e apresentados na consola da forma indicada. Onde estou a ter mais dificuldades é na parte de baralhar a lista,de pontuar as respostas certas, das ajudas do utilizador, no reset ao quizz e de representar as questões não-repetidas, atualmente aparecem sempre as mesmas e consigo inserir uma resposta mas não me indica se é true/false, e de seguida apareçe-me sempre a próxima pergunta. using System; using System.Collections.Generic; using System.Data; using CSV; using Microsoft.SqlServer.Server; using Questionário; namespace Storage { internal class Program { public static void Main(string[] args) { List<Question> questions = load_data("quizz.csv"); foreach (var q in questions) { Console.WriteLine(q); Console.WriteLine("Qual a resposta certa?"); int a = int.Parse(Console.ReadLine()); } } private static List<Question> load_data(string dataCsv) { List<Question> questions = new List<Question>(); using (CsvFileReader reader = new CsvFileReader(dataCsv)) { CsvRow row = new CsvRow(); while (reader.ReadRow(row)) { Question q = new Question(row[0], row[1], row[2], row[3], row[4], Int32.Parse(row[5])); questions.Add(q); } } return questions; } } } //-----------------------------------------------CLASS----------------------------------------------------------------------------- using System; using System.Text; namespace Questionário { public class Question { private string _question; private string [] _options = new string[4]; private int _right; public Question(string question, string op1, string op2, string op3, string op4, int right) { _question = question; _options[0] = op1; _options[1] = op2; _options[2] = op3; _options[3] = op4; _right = right; } public bool Answer(int op) { return op == _right; } public override string ToString() { StringBuilder sb = new StringBuilder(); sb.Append(_question); sb.Append("\n"); sb.Append("\t"+_options[0]); sb.Append("\n"); sb.Append("\t"+_options[1]); sb.Append("\n"); sb.Append("\t"+_options[2]); sb.Append("\n"); sb.Append("\t"+_options[3]); return sb.ToString(); } } } Agradeço desde ja a atenção, disponibilidade e ajuda. Com os melhroes cumprimento. André Ferreira
  19. jorgehvieriasilva

    Redireccionar para link inserido na DB

    Bom dia, Estou a realizar um projeto em ASP.NET e tenho ligado ao mesmo uma DB em SQL. Na DB tenho uma tabela com dois campos, Nome e Link. (ex: Exemplo 1 / https://www.google.pt/) Tenho uma dropdown list que recebe os nomes inseridos na coluna Nome, e tenho um botão ao lado, que quando clicar no mesmo têm que me redirecionar para o Link em questão, neste caso https://www.google.pt/. Alguém me consegue ajudar, já estou há dias em volto disto e não consigo arranjar solução 😆
  20. 999ANDRE999

    Server error in '/' application

    Boas a todos, Tenho uma página desenhada com asp.net e programada em c# alimentada por uma BD postgres. Em algumas das páginas em tenho uma função que faz refresh automático de x em x tempo. acontece que de vez em quando, a página dá um erro: "operation is not valid due to the current state of the object" pesquisei sobre o erro e dizem para colocar no ficheiro web.config os comenados: <appSettings> <add key="aspnet:MaxHttpCollectionKeys" value="2000" /> <add key="aspnet:MaxJsonDeserializerMembers" value="2000" /> </appSettings> e para aumentar o valor de 'value' se a página continuar a dar erro até que desapareça. ora eu já aumentei o valor para 9999 e o erro continua a aparecer de vez em quando. O meu código de web.config esta assim: <?xml version="1.0" encoding="utf-8"?> <!-- For more information on how to configure your ASP.NET application, please visit http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <connectionStrings> <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> </connectionStrings> <system.data> <DbProviderFactories> <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxxx"/> </DbProviderFactories> </system.data> <system.net> <defaultProxy> <proxy proxyaddress="http://xx.xx.xx.xx:8080" bypassonlocal="true" /> </defaultProxy> </system.net> <system.web> <sessionState timeout="2880"></sessionState> <httpRuntime maxRequestLength="4194304" /> <customErrors mode="Off" /> <httpHandlers> <add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxx" validate="false" /> </httpHandlers> <compilation debug="true" targetFramework="4.0"> <assemblies> <add assembly="System.DirectoryServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> <add assembly="Microsoft.ReportViewer.Common, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> <add assembly="Microsoft.Build.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="System.Management, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> <add assembly="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> <add assembly="System.Net, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> <add assembly="Microsoft.ReportViewer.WebForms, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" /> </assemblies> <buildProviders> <add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=xxxxxxxxxxxxxx" /> </buildProviders> </compilation> <authentication mode="Forms"> <forms loginUrl="~/Account/Login.aspx" timeout="2880" /> </authentication> <membership> <providers> <clear /> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> </providers> </membership> <profile> <providers> <clear /> <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> </providers> </profile> <roleManager enabled="false"> <providers> <clear /> <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> </providers> </roleManager> </system.web> <system.webServer> <modules runAllManagedModulesForAllRequests="true" /> <validation validateIntegratedModeConfiguration="false" /> <handlers> <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </handlers> </system.webServer> <system.serviceModel> <bindings /> <client /> </system.serviceModel> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="System.Net.Http.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.2.29.0" newVersion="2.2.29.0" /> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" /> </dependentAssembly> </assemblyBinding> </runtime> <appSettings> <add key="aspnet:MaxHttpCollectionKeys" value="9999" /> <add key="aspnet:MaxJsonDeserializerMembers" value="9999" /> </appSettings> </configuration> Alguém consegue ajudar no problema?
  21. Gnrtuga

    Carregar dados do utilizador

    Olá pessoal, ando aqui perdido (para não variar), Tenho aqui duas Tasks, e que funcionam quando invocados por um EventHandler. public async Task SaveAsync() { StorageFile ListadeFavoritos = await ApplicationData.Current.LocalFolder.CreateFileAsync("ListaGuardada", CreationCollisionOption.ReplaceExisting); IRandomAccessStream raStream = await ListadeFavoritos.OpenAsync(FileAccessMode.ReadWrite); using (IOutputStream outStream = raStream.GetOutputStreamAt(0)) { //serialização dos dados DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<Favoritos>)); serializer.WriteObject(outStream.AsStreamForWrite(), MeuFavorito); await outStream.FlushAsync(); } } public async Task RestoreAssync() { StorageFile ListadeFavoritos = await ApplicationData.Current.LocalFolder.GetFileAsync("ListaGuardada"); if (ListadeFavoritos == null) return; IRandomAccessStream inStream = await ListadeFavoritos.OpenReadAsync(); // desserialização dos dados DataContractSerializer serializer = new DataContractSerializer(typeof(ObservableCollection<Favoritos>)); var FavoritosGuardados = (ObservableCollection<Favoritos>)serializer.ReadObject(inStream.AsStreamForRead()); inStream.Dispose(); ListaFavoritos.ItemsSource = FavoritosGuardados; } Mas eu queria chamar a Task RestoreAssync quando a aplicação abre, para que apareçam logo os dados do utilizador. Já tentei uma data de muitas formas, mas possivelmente falta-me alguma coisa. Sem querer abusar, também quero chamar a Task SaveAsync quando saio da aplicação, mas sobre isso ainda não pesquisei. Obrigado.
  22. N3lson

    Substituir Grupos encontrados (REGEX)

    Boas estou a tentar criar uma função que faça a substituição de strings encontradas por Regex. O que está a acontecer é que a função está a retornar apenas um grupo e a repeti-lo. Aqui tenho a função. string encontrar = @"t[a-z]{4}\d{3}"; Match resultado = Regex.Match(sql, encontrar); if(resultado.Success) { MatchCollection grupo = Regex.Matches(sql, encontrar); for(int i = 0; i < grupo.Count; i++) { sql = Regex.Replace(sql, encontrar, "t" + grupo[i] + "100"); } } return sql; Alguma ajuda, Obrigado
  23. Arthur Paes

    Problema ao preencher ComboBox

    Estou tendo problema na hora de editar valores no meu sistema, vou tentar explicar da melhor maneira possível. Eu criei uma tela no meu sistema que pega valores que já estão cadastrados no banco de dados do sistema e os apresenta pelo ComboBox para o cadastro do produto, tipo categoria, onde eu seleciono a categoria do produto junto com o nome (que eu informo em uma TextBox) e cadastro os valores no banco de dados. Nessa parte está ok, o problema está na hora de selecionar os valores para editar o produto. Eu criei uma tela para editar os valores já cadastrados, que eu seleciono o produto e edito seus valores, só que eu quero que está tela retorne os valores já cadastrados nos campos de edição, no textbox eu consegui, o problema e no ComboBox que eu não consigo apresentar o valor cadastrado em primeiro no ComboBox, ele sempre apresenta o valor que esta no banco de dados primeiro e não do que esta no cadastro do produto, alguém pode me ajudar?
  24. AJBM

    Installer para desktop

    Boas, Conhecem algum installer semelhante ao clickonce, mas que permita escolher o path de instalação do programa e consiga lidar com updates? Obrigado
  25. nunomonteiro123

    c# FluentFTP Music

    Alguém familiarizado com FluentFTP ? De que maneiras o posso aplicar numa APP de musica em c#? Ha melhores FTP´s que este para o meu projeto?
×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.