
Xistyle
Membros-
Total de itens
355 -
Registro em
-
Última visita
Tudo que Xistyle postou
-
Camarada, web não é a minha praia. Mas existem muitos tutoriais/materiais na internet. Seguem alguns: http://asp.net-tutorials.com/ http://www.mundoasp.net/ Tem também um livro (eu tenho mas ainda não tive tempo de ler -.-) chamado: Como programar em ASP.NET e C# (Alfredo Lotar). Li alguns capítulos de introdução e achei legal, explica todos os principais conceitos dos recursos do .NET Framework e tem vários exemplos/muito bem ilustrado.
-
Glauco, bem vindo ao fórum. Legal o tema do programa. A maioria das dúvidas nem precisa ser "respondida diretamente". Façamos assim: vou lhe passar alguns links com materiais de estudo e você tenta colocar, do jeito que melhor, na sua aplicação. Se não funcionar, tiver dúvidas sobre o código ou tiver algum outro problema (sei lá, desempenho), ai você coloca um trecho do código pra nós analisarmos a melhor solução juntos :) PS: aqui no serviço não abre YouTube, então não tenho noção de como você deseja montar o programa, mas vou tentar me orientar pelas suas descrições. 1) O que quer dizer com carregamento/escaneamento? Veja se o link abaixo te ajuda. 2) OpenFileDialog: Nesse link você vai aprender a usar o recurso de escolher pastas/arquivos (não vi o vídeo, mas creio que deva ser algo parecido). 3) KeyDown: o evento KeyDown faz parte da maioria dos controles. No caso, inicialmente, você pode colocar esse evento no seu form principal. Como você vai trabalhar com métodos, você pode chamar os métodos de acordo com as teclas pressionadas, por exemplo: Shift + Ctrl + C: invoca o método Play Shift + Ctrl + B: invoca o método ProximaMusica Shift + Ctrl + P: invoca o método ColocarCreditos 4) Não sei como você vai querer gerenciar esses créditos. Primeiro passo (e mais simples) vai ser montar uma estrutura de controle dos créditos. Ou seja, quando o usuário comprar, você deve armazenar essa informação de quantos créditos foram inseridos para determinado usuário. O problema é que você pode ter n usuários para uma máquina só. Esses usuários terão a mesma quantidade de créditos liberados, caso apenas um dos usuários compre? O interessante é você pesquisar e elaborar como vai montar um esquema único por software, como uma licença por usuário. Com isso, você vai ter seus identificadores únicos por usuário e pode armazenar essas informações de crédito de forma mais segura. Esse item 4 fica a dica de deixar pra depois, pra "arquitetar" com mais calma. PS: a estrutura de controle ("O usuário comprou 57 créditos e usou 12. Como vou controlar isso?") você pode fazer usando um banco de dados, um arquivo XML ou qualquer outro tipo de arquivo, que pode ser criptogrado ou não. 5) Esse controle de playlist normalmente é feito usando uma forma de estrutura de controle como citei acima. Quando você usa, por exemplo, o Winamp, você consegue navegar entre as músicas, sendo que o programa guarda quais foram as músicas tocadas anteriormente. Se você voltar na playlist várias músicas, ele irá tocar na mesma ordem que executou anteriormente. De início é mais estudo. Vai fazendo por partes, dando uma estudada e façamos da forma como defini acima. Qualquer dúvida, tamos ai :)
-
Então, não sei como funciona no Report Viewer. No Crystal, você cria objetos chamados Formulas. Nestes, você coloca qualquer informação que quiser, desde apenas um campo até um cálculo, uma condição... Se você conseguir, dentro dessa opção Expression declarar variáveis, faça com o código todo: local stringvar array HoraCompleta; local numbervar TotalSegundos; HoraCompleta := split({@seuCampoHora},":"); //Converte a hora [1] e minutos [2] em segundos e soma com os segundos [3] TotalSegundos:= (3600 * cdbl(HoraCompleta[1])) + (60 * cdbl(HoraCompleta[2])) + (cdbl(HoraCompleta[3])); =Replace(CStr(Floor(Sum ({TotalSegundos}) / 3600)), ".00","") + ":" + Replace(CStr(Floor((Sum ({TotalSegundos}) Mod 3600)/60)), ".00","") + ":" + Replace(CStr(Floor(Sum ({TotalSegundos}) Mod 60)), ".00","")
-
O Report Viewer é mais diferente do Crystal do que eu imaginava... estou dando as dicas baseado no Crystal... :x Mas se for o caso, coloca tudo numa mesma fórmula, e troca o @SomaHoras por TotalSegundos... deve funcionar.
-
O primeiro não vai ficar no seu layout. Vai ser apenas uma fórmula com cálculo interno. A segunda vai ficar no seu layout. Ai esta vai chamar a primeira, que vai executar todo o código.
-
Lucas, você deve criar uma fórmula (vamos chamá-la de @SomaHoras), que recebe as horas e irá convertê-las em segundos. Você pode fazer desta forma: //Fórmula @SomaHoras local stringvar array HoraCompleta; local numbervar TotalSegundos; HoraCompleta := split({@seuCampoHora},":"); //Converte a hora [1] e minutos [2] em segundos e soma com os segundos [3] TotalSegundos:= (3600 * cdbl(HoraCompleta[1])) + (60 * cdbl(HoraCompleta[2])) + (cdbl(HoraCompleta[3])); Depois de somar todas essas horas, convertidas em segundos, você converte novamente em horas: //Fórmula que irá exibir no relatório Replace(CStr(Floor(Sum ({@SomaHoras}) / 3600)), ".00","") + ":" + Replace(CStr(Floor((Sum ({@SomaHoras}) Mod 3600)/60)), ".00","") + ":" + Replace(CStr(Floor(Sum ({@SomaHoras}) Mod 60)), ".00","")
-
Lucas, você deve criar uma fórmula e colocar no lugar do campo, no layout do seu report. A fórmula vai ser algo mais ou menos assim: If ({@prioridade}) = 0 Then "Prioridade Baixa" ElseIf ({@prioridade}) = 1 Then "Prioridade Média" ElseIf ({@prioridade}) = 2 Then "Prioridade Alta" End If Não lembro ao certo a sintaxe, mas acho que é similar ao VB.
-
Boa velho :) Pode dar um pouco mais de trabalho organizar, alinhar as strings e tal. Mas pra dar manutenção depois, fica uma belezura!
-
Nunca vi e não entendi esse INNER JOIN seu rapaz :o O Join faz a ligação entre as tabelas por um campo em comum, com mesmo valor (as chaves estrangeiras com chaves primárias). Nesse caso, você tem que ligar a tabela Categoria com alguma que tenha relacionamento com ela, e assim por diante. Para ficar de fácil manutenção, sempre estruture da seguinte forma: SELECT t5.campo1, t2.campo2, t3.campo3 FROM tabela1 AS t1 INNER JOIN tabela2 AS t2 ON (t1.id = t2.id) INNER JOIN tabela3 AS t3 ON (t1.id = t3.id) INNER JOIN tabela4 AS t4 ON (t2.id = t4.id) --Perceba que o relacionamento não é obrigatório com a primeira tabela LEFT JOIN tabela5 AS t5 ON (t3.id = t5.id) WHERE t1.campo1 = 2 AND ... O group by e order by estão dando erro devido a estruturação do seu JOIN
-
Ué... se está usando o Report Wizard, está usando o componente Report Viewer então? Se sim, verifique esse passo-a-passo: http://msdn.microsoft.com/en-us/library/ms252073.aspx
-
Lucas, os relatórios ficam em outro item, chamado Reports. Sei que é um "parto" pra achar o download do Crystal VS2008. Normalmente eu o instalo quando instalo o VS. Tente encontrar algum conteúdo no Google ou em último caso, reinstalr o VS com uma versão que contenha a opção de instalação do Crystal.
-
Acredito que a forma mais simples seja montar uma Stored Procedure. Existe o método PIVOT no SQL, mas ele funciona de forma contrária, para transformar linhas em colunas. Vou montar algo simples, mais para exemplicar algumas sintaxes. CREATE PROCEDURE ... AS BEGIN --1) Crie uma tabela temporária (#nomeTabela) com os campos que deseja exibir na grid --2) Fazer o SELECT que irá trazer a quantidade de documentos para uma determinada loja e tipo de documento. Armazenar em variáveis DECLARE @idLoja AS INT DECLARE @idTipoDocumento AS INT DECLARE @qtdeDocumentos AS INT --Não lembro mais os nomes dos campos, basta substituir SELECT @idLoja = cod_Loja, @idTipoDocumento = cod_doc_itens, @qtdeDocumentos = qtde_docs FROM tabela ... WHERE ... DECLARE @Contador AS INT SET @Contador = 1 WHILE @Contador <= @qtdeDocumentos BEGIN --3) Aqui você fará todo o INSERT na sua tabela temporária. Essas informações serão inseridas de acordo com a quantidades de documentos que você precisa SET @Contador = @Contador + 1 END SELECT campo1, campo2 FROM #nomeTabela END
-
Acho que entendi... você transformar o seu campo qtde_tipo_doc em linhas. Ou seja, se no seu campo qtde_tipo_doc tem a informação 5, para a loja 1, do tipo RDZ, você quer que essa informação gere 5 linhas com a informação LOJA1 RDZ VALOR. Seria isso?
-
Qual é a relação entre Itens_Declaracao e Loja? Digo, em termos técnicos, qual é a chave estrangeira, onde ela se encontra, qual é a ligação entre as tabelas? Deu pra entender como você quer visualizar, mas as regras de negócio, as ligações entre as informações, não estão nada claras.
-
Veja qual a arquitetura do seu processador (32/64 bits): http://resources.businessobjects.com/suppo.../runtime.asp#09 ou: http://crystal-reports-basic-for-visual-st...datestar.com/pt
-
Primeiramente, se Desc_Tipo e Itens_Doc são chaves estrangeiras da Itens_Declaracao E obrigatórios, simplifique e use dois INNER JOIN*. Se não forem obrigatórios (por exemplo, tenho um registro na Itens_Declaracao que não precisa de informações da Itens_Doc, ai use o LEFT JOIN**) *Exemplo 1: SELECT i.data_declaracao, d.desc_doc, t.qtd_tipo_doc, i.identificacao_doc, i.obs_declaracao, i.valor FROM itens_declaracao AS i WITH (NOLOCK) INNER JOIN itens_doc AS t WITH (NOLOCK) ON i.cod_itens_doc = t.cod_itens_doc INNER JOIN desc_doc AS d WITH (NOLOCK) ON d.cod_desc_doc = t.cod_desc_doc **Exemplo 2: SELECT i.data_declaracao, d.desc_doc, t.qtd_tipo_doc, i.identificacao_doc, i.obs_declaracao, i.valor FROM itens_declaracao AS i WITH (NOLOCK) LEFT JOIN itens_doc AS t WITH (NOLOCK) ON i.cod_itens_doc = t.cod_itens_doc INNER JOIN desc_doc AS d WITH (NOLOCK) ON d.cod_desc_doc = t.cod_desc_doc Lembrando que não sei as regras de negócios e estruturas das suas tabelas. Não consigo visualizar, por exemplo, a ligação desses registros com as lojas. Com o relacionamento das lojas, podemos ordenar por LOJA, seguido de TIPO DOC.
-
Entendi... bom, como você tem filtros opcionais, seria interessante você ir concatenando sua string de consulta de acordo com o que o usuário escolher. Por exemplo: sSQL = "SELECT nomeLoja, tipoDocumento, nomeUsuario, dataDeclaracao, valorDocumento FROM minhaTabela WHERE "; //Aqui começam os filtros. //Todos os campos aqui são FICTÍCIOS. É apenas um exemplo para você encaixar no seu contexto if (cmbTipoDocumento.Text != string.Empty()) { sWhere = " tipoDocumento = '" + cmbTipoDocumento.Text + "'"; } if (dataDeclaracao.Value != null) { if (sWhere != string.Empty()) { sWhere += " AND dataDeclaracao = '" + dataDeclaracao.Value + "'"; } else { sWhere = " dataDeclaracao = '" + dataDeclaracao.Value + "'"; } } //E assim para todos os demais filtros
-
Na dúvida, verifique a possibilidade de registrar em uma pasta na C:\Windows (não lembro da pasta respectiva ao System para servidor :P). Caso contrário, tente configurar as variáveis de ambiente, adicionando o caminho do seu diretório.
-
Em qual diretório está fazendo o registro da DLL no servidor?
-
Monta o seu SELECT e execute-o, atribuindo a um DataSet/DataTable. Depois vincule seu objeto à Grid, da seguinte forma: DataGridView1.DataSource = DataTable1
-
Você vai ter que mudar a opção de edição do nó, ou seja, não poderá renomeá-lo. Defina a propriedade LabelEdit para False.
-
OK, mas qual a sua dúvida?
-
Paulo, não manjo de Web Forms. Mas se seguir o padrão desktop, procure no Google pelo método chamado AutoComplete, exemplo: listbox autocomplete, dropdown list autocomplete...
-
Paulo, você está desenvolvendo uma Web App ou Windows Form? Qual a linguagem?
-
O que é feito no seu método GetAll? Você insere um outro vetor dentro do seu ArrayList, ou seja, cada item do ArrayList é um Array?