Kr3w^ 0 Denunciar post Postado Novembro 2, 2012 olha, eu tinha pensado nessa mesma formula public static String[,] vetor = new string[900,4]; entao eu estava certo :D vou ver se funcionou aqui agora... :D pronto, testei com um DataGrid e deu certo a adição de produtos, agora preciso saber como fazer minha frmOrçamento... voce lembra do meu print?? ela precisa ficar desse jeito para que eu imprima ela: como e o que usaria para ela ficar assim? só preciso dessa parte, porque ai eu chego na conclusão do meu sistema... obg pela ajuda e até mais :D Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 2, 2012 Então, o que eu usei foi a formula do grid, mas eu acho que você iria querer dar uma olhada nisso aqui antes de fazer o form de impressão: Porque você VAI ter que montar manualmente: http://www.macoratti.net/09/09/c_prn1.htm http://blog.marvinsiq.com/2008/10/15/imprimir-arquivo-direto-em-csharp/ http://www.linhadecodigo.com.br/artigo/3144/imprimir-com-visual-studionet-usando-csharpnet.aspx http://social.msdn.microsoft.com/Forums/pt/vscsharppt/thread/cd4b911e-37fd-4555-9732-18ff0933300c Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 2, 2012 isso, eu tenho alguns desses links salvos pra quando chega-se nessa parte, eu pudesse consultar... entao no Exemplo do site do macoratti ele usa um RichTextBox né? meu professor de c# tbm disse que eu posso usar isso... ou seja eu teria que montar essa estruta passo a passo ?? tirando uma duvida só, como eu faria para receber os valores dentro do RichtextBox? porque é uma outra frm né ai isso confudiu minha cabeça.. obg e até mais! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 4, 2012 Então, não precisa necessariamente usar a RTF, você pode pegar todas as variáveis, ou seja, você usa o vetor bidimensional que criamos ali atras, só que você joga todos os valores para variáveis diferentes usando o for, ou seja, você pega o for e faz ele percorrer o vetor inteiro jogando os valores nas variáveis correspondentes, fazendo uma reciclagem dessas variáveis (utilizando elas varias vezes sem precisar instanciar de novo) você já monta a linha correspondente a cada produto, mas antes de partir para o principal, domine as funções do PrintDocument, faça pequenos programas de teste para que você entenda como funciona e como você pode aprimorar seus conhecimentos neste controle específico. Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 5, 2012 entendi :DDDDD então agora quarta feira irei falar com meu professor de c# para ele me dar ideias... eu fiz isso na frmOrçamento pra testar se tava adicionando //Produto1 lblProduto.Text = ClassArrayProdutos.vetorprodutos[0, 0]; lblCodigo.Text = ClassArrayProdutos.vetorprodutos[0, 1]; lblPreco.Text = ClassArrayProdutos.vetorprodutos[0, 2]; lblQuantidade.Text = ClassArrayProdutos.vetorprodutos[0, 3]; //Somando valores decimal valor1 = Convert.ToDecimal(ClassArrayProdutos.vetorprodutos[0, 2]); decimal valor2 = Convert.ToDecimal(ClassArrayProdutos.vetorprodutos[0, 3]); decimal total = valor1 * valor2; lblResul.Text = total.ToString(); //Produto2 lblProduto1.Text = ClassArrayProdutos.vetorprodutos[1, 0]; lblCodigo1.Text = ClassArrayProdutos.vetorprodutos[1, 1]; lblPreco1.Text = ClassArrayProdutos.vetorprodutos[1, 2]; lblQuantidade1.Text = ClassArrayProdutos.vetorprodutos[1, 3]; //Produto3 lblProduto2.Text = ClassArrayProdutos.vetorprodutos[2, 0]; lblCodigo2.Text = ClassArrayProdutos.vetorprodutos[2, 1]; lblPreco2.Text = ClassArrayProdutos.vetorprodutos[2, 2]; lblQuantidade2.Text = ClassArrayProdutos.vetorprodutos[2, 3]; //Serviços lblServicos.Text = ClassArrayServicos.vetorservicos[0, 0]; lblVServicos.Text = ClassArrayServicos.vetorservicos[0, 1]; lblServicos1.Text = ClassArrayServicos.vetorservicos[1, 0]; lblVServicos1.Text = ClassArrayServicos.vetorservicos[1, 1]; e ta adicionando certinho, ai eu joguei os valores em lbl's pra teste =D Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 5, 2012 Então cara, mas do jeito que você fez ele só vai adicionar uma quantidade X de registros, e se o usuário pediu um orçamento de 500 produtos? Você vai precisar de um for para as linhas. O que eu percebi também é que você criou muitos componentes, isto diminui um pouco a agilidade do programa, comece a utilizar variáveis ao invés de controles, prefira arrays simples onde você possa fazer trocas de informações e adicioná-las diretamente no seu papel fazendo o reuso de suas variáveis. Ex: Crie um array, jogue s nomes nele, depois faça um for para os nomes e para exibí-los na lista. Limpe o array depois disso e faça o mesmo para os valores, utilizando o mesmo array. Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 5, 2012 sim, entendi, eu fiz com essas label só pra ver como iria ficar, porque eu sei que isso iria complicar pois é muito codigo pra pouca funcionabilidade... para mim usar o for eu tenho que fazer igual o exemplo que voce me deu ali pra cima né? estou certo? se não, ficarei agradecido por clariar minha mente. até mais obg!! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 5, 2012 Sim, você precisa fazer o primeiro for para as linhas e outro for dentro deste para as colunas. Funciona mais ou menos assim: Você vai adicionar um no primeiro for para pegar a primeira linha e depois este for vai para o próximo, executa-se 4 vezes o segundo for e ai volta para o primeiro, lembrando sempre que você PRECISA ADICIONAR AO PAPEL ANTES DE FECHAR O FOR, caso contrário você não terá como tratar todos os dados gerados. Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 6, 2012 entendi como irá ficar, pode me dar um exemplo desse for com outro for dentro do outro? ai eu ja sigo pelo o que eu entendi aqui :D obg e até mais!! Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 6, 2012 Vou usar o mesmo que usei na primeira página: for (int i = 0; i < ClassArray.vetor.Length; i++) { for (int j = 0; j < 4; j++) { //exemplo Messagebox.Show(ClassArray.vetor[i,j]); } } Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 6, 2012 se estou certo, isso eu usarei no Load_frmOrçamento né? e no meu caso não seria messageBox, seria uma função que irá mostrar os valores na form né? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 6, 2012 Sim, seria no load, e no lugar da messageBox você usa o comando do PrintDocument para desenhar a String no papel. Os links que eu te passei contem toda essa informação. Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 7, 2012 Ola, meu professor me deu a ideia de jogar um TextBox na frmOrcamento, pra fazer a saida de dados nele... o que voce acha da ideia? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 7, 2012 Não sei no que uma textbox poderia ajudar neste caso... Só se você fizesse uma baite de uma textbox no modo ReadOnly, e exibisse os dados nela, ai sim poderia ajudar. Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 7, 2012 então qual a dica voce poderia me dar? a de criar as linhas?? porque no caso eu iria precisar da sua ajuda pra saber como criar essas linhas... ja no RichTextBox ele disse que eu poderia ir jogando os valores la dentro para salvar aquele arquivo e Imprimir Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 8, 2012 Salvar aquivo de texto é simples, montar a textbox é a mesma coisa, defina como ReadOnly e Multiline, depois disso é só ir adicionando mais ou menos no estilo: RTFBox.Text = RTFBox.Text + <seuTexto>; Para pular uma linha você pode usar: RTFBox.Text = RTFBox.Text + Environment.NewLine(); Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 8, 2012 entendi ;D ja comecei a montar aqui então, só um detalhe, esta dando Error na hora de pular a linha!! com esse comando: RTFBox.Text = RTFBox.Text + Environment.NewLine(); Error: Non-invocable member 'System.Environment.NewLine' cannot be used like a method sera aquela parte de using System... tal tal tal... ?? Compartilhar este post Link para o post Compartilhar em outros sites
KhaosDoctor 242 Denunciar post Postado Novembro 8, 2012 Cara, você não está simplesmente copiando e colando o código no C# não né? Porque mesmo eu sabendo as sintaxes eu não lembro se algumas delas são ou não são classes ou métodos que usam o (), e como o C# é sensível e qualquer tipo de diferença de digitação, eu aconselho você a escrever você mesmo o código, vá copiando, mas digite, pois se eu estiver errado sobre algum nome ou sintaxe o Intelisense vai te corrigir. Um exemplo disso é que, se você escrever esta linha novamente, o C# não vai mostrar o NewLine como um método e sim como uma propriedade, ou seja, não tem (). Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 9, 2012 não estou copiando e jogando la não, eu mesmo criei uma textBox dei o nome dela para RTFBox e fui fazendo do jeito que voce deu o exemplo ai em cima... eu tentei de outras maneiras também mais o c# não entendeu esse pular linha, por isso postei aqui se não, eu teria dado continuidade... obg até mais! Compartilhar este post Link para o post Compartilhar em outros sites
Kr3w^ 0 Denunciar post Postado Novembro 9, 2012 Ola, estou seguindo com o projeto.. veja se estou indo no caminho certo porfavor?? Adicionei uma textBox coloquei: ReadOnly True, Multiline, True e o Size dele esta: 896; 488 fui no code e esta assim: -frmOrcámento void NovaLinha() { txtBoxImprimir.Text = txtBoxImprimir.Text + Environment.NewLine; } private void frmOrcamento_Load(object sender, EventArgs e) { txtBoxImprimir.Text = txtBoxImprimir.Text + "Loja: TESTE"; NovaLinha(); txtBoxImprimir.Text = txtBoxImprimir.Text + "Endereço: R. TESTE.."; NovaLinha(); txtBoxImprimir.Text = txtBoxImprimir.Text + "Telefone: TESTE"; NovaLinha(); txtBoxImprimir.Text = txtBoxImprimir.Text + "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"; NovaLinha(); txtBoxImprimir.Text = txtBoxImprimir.Text + " Código "; txtBoxImprimir.Text = txtBoxImprimir.Text + " Produto "; txtBoxImprimir.Text = txtBoxImprimir.Text + " Marca "; txtBoxImprimir.Text = txtBoxImprimir.Text + " Preço Unit. "; txtBoxImprimir.Text = txtBoxImprimir.Text + " Quantidade "; txtBoxImprimir.Text = txtBoxImprimir.Text + " Valor R$ "; NovaLinha(); txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[0, 0]; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[0, 1]; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[0, 2]; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[0, 3]; txtBoxImprimir.Text = txtBoxImprimir.Text + ClassArrayProdutos.vetorprodutos[0, 4]; } só um detalhe, estou chamando certo os valores certo , porque aqui aparece, o problema é que tipo eles aparece junto 1 cum outro, por exemplo: [0, 0] = Codigo, [0, 1] = Produto, [0, 2] = Marca, [0, 3] = Valor, [0, 4] = Quantidade, ai eu digito la no frmProdutos, e na hora de visualizar a frmOrcamento fica tudo junto tipo 001ProdutoMarcaValorQuantidade... como separo? obg até mais. Compartilhar este post Link para o post Compartilhar em outros sites