Jump to content
Kr3w^

[Resolvido] Sistema de Orçamento em c#

Recommended Posts

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:

 

QQAAAL6N_EG4TSviVRH2jlCw82tIdKJf1T4tYnuGEgY-LDUCd1XGmEijOTQ5N5kwFlCIV2cR6hVJoL_CDFNbH4SBO7_WJdBT3ubob_KyyDAYrqxpAJtU9VAuixSp4yPAYpH80EszNTFHdGk7Fg.jpg

 

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

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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.

Edited by KhaosDoctor

Share this post


Link to post
Share on other sites

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!!

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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!!

Share this post


Link to post
Share on other sites

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]);
               }


           }

 

Share this post


Link to post
Share on other sites

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é?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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();

Share this post


Link to post
Share on other sites

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...

 

??

Share this post


Link to post
Share on other sites

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 ().

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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.

Edited by Kr3w^

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.