Ir para conteúdo
Fórum Script Brasil

sweet-tooth

Membros
  • Total de itens

    7
  • Registro em

  • Última visita

Sobre sweet-tooth

sweet-tooth's Achievements

0

Reputação

  1. Olhem só,eu consegui concluir quase 100% a tela de vendas aqui usando Flexgrid. Estaria tudo perfeito se não fosse um problema que acabei de encontrar.Tenho duas tabelas e os dados devem sair da primeira para a segunda tabela,na tabela1 coluna 3 é retornado a quantidade do produto em estoque,ao dar 2 cliques na primeira tabela é aberto um inputbox onde é digitado a quantidade do produto que deverá ser adicionado na segunda tabela,eu queria fazer algo que se o valor digitado na inputbox for maior que o valor trazido para a coluna3 (que é a quantidade em estoque) desse uma mensagem de erro e exit sub,então fiz isso: quant = InputBox("Digite a quantidade", "Quantidade") qtdestoque = flex.TextMatrix(flex.Row, 3) If quant > qtdestoque Then MsgBox "Quantidade maior que a disponível!", vbCritical, "Erro" Exit Sub Else flex2.AddItem ....... sendo quant a variável quant é o valor da inputbox,e qtdestoque o valor da coluna3 referente a linha que será adicionada. Mas vejam o que acontece,se no estoque tiver 40 do produto x,retornará 40 na flex coluna 3,e aí acontece algo curioso,se eu digitar na inputbox qualquer numero acima de 4(com apenas uma casa decimal)eu entro na primeira condição do if e da erro.Se eu quiser adicionar 1,2,3 ou 4 na flex2,digito dessa forma no inputbox e vai sem problema,mas agora se for digitar 5,6,7,8 ou 9 tenho que digitar 05,06,07,08 e 09... Se tiver na coluna3/estoque tiver 15 e eu quiser adicionar de 2 desse produto até 9 na lista,tenho que usar o 0 na frente também. Então fica nisso,se tiver 30 produtos,se eu for ter que colocar 4 tem que usar 04,se tiver 60 produtos e eu quiser de 7 pra cima tenho que colocar 0 na frente de qualquer digito.Eu a principio pensei que éra problema com casas decimais,porque se tem 30 e eu digito 4 e ele diz que não tem tudo isso no estoque ele podia estar entendendo que 4 éra 40,mas se eu digitar 20 ele entenderia como 200,e não acontece isso. O que pode ser isso? O problema de digitar o 0 na frente,é que mais pra frente preciso realizar operações envolvendo a variável quant,e toda vez que digito o 0 na frente de algum numero na inputbox da sempre type mismatch.
  2. Bem eu consegui +/-. Eu estava tendo problemas,porque tava usando o método .addnew,mas consegui usando o .execute. Agora o problema está bem menor,já consigo inserir os dados da venda em uma tabela e ao mesmo tempo subtrair o numero de produtos vendidos no estoque. O problema agora,é que quando se forma uma lista que tem mais de um produto,tenho que usar algum tipo de repetição para vender logo todos,porque não vou ficar clicando em "vender" até vender todos produtos da lista né,eu programei para toda vez que um produto for vendido ele sair da lista de compras,e tentei usar isso: Do conn.Execute "insert into teste (produto,codigo) values ('" & flex2.TextMatrix(1, 1) & "', '" & flex2.TextMatrix(1, 0) & "') " flex2.RemoveItem (flex.Row) Loop Until flex2.TextMatrix(1, 0) = "" ''(ou flex2.textarray(1) no lugar de flex2.textmatrix(1,0) ----------------------------------------> Não sei porque,mas a linha 0 fica sempre vazia,o primeiro registro a entrar na grid sempre fica na linha 1,então como após o primeiro produto ser adicionado a linha referente a ele é removida,a linha de baixo sobe e passa a ser a 1,com isso ele vai repetindo e adicionando sempre o que está na linha 1, por isso coloquei no loop para fazer até que a linha 1 fique vazia. Com isso eu consigo adicionar todos produtos que estão na grid de uma vez quando quero,mas depois que ele adiciona o ultimo da uma mensagem de erro: SUBSCRIPT OUT OF RANGE Como eu faço para fechar de vez essa tela? Não sei se tem algo relacionado com a maldita linha 0 que está sempre vazia (e na grid não tem nenhuma linha FIXA),porque no loop éra pra fazer até a linha 1 ficar vazia,nem devia chegar a linha 0 então.
  3. Não é de hoje que tenho duvidas/problemas com flexgrid,mas dessa vez a coisa está feia. Bom eu tenho uma lista/tabela onde vão sendo adicionados produtos e formando uma lista de pedidos,tenho um botão que deve "fechar a venda". Quando este botão é acionado,eu preciso inserir os dados que estão no grid em uma tabela no SQL. E seria: coluna0 = codigo coluna1 = produto coluna2 = tipo coluna3 = quantidade coluna4 = preço Preciso inserir os respectivos valores na tabela "vendas" no SQL...fora isso tenho que subtrair no estoque os produtos vendidos,mas uma coisa de cada vez,primeiro preciso adicionar esses itens no banco de dados. alguém da uma ajuda por favor. Não sei se faz diferença,mas agora to usando o MSFlexgrid,não mais o MSHFlexgrid.
  4. Você estava certo,funciona tudo agora,obrigado.
  5. Obrigado pela resposta. Olha ele não mostra nada além dessa mensagem. Quando aparece escrito can't find project or libary,ele vai para o código e destaca a linha referente a uma das ocorrencias que postei (o código pra deixar tudo em caixa-alta,ou as máscaras que usam o parametro FORMAT). Tem algum jeito de eu checar?? Eu enviei o projeto para um amigo da sala testar no PC dele,e lá da o mesmo erro.O negócio só funciona aqui aparentemente ...
  6. Boa tarde. Essa provavelmente vai ser a ultima vez que falo de FlexGrid (assim espero). O que acontece é o seguinte,no formulario de vendas após fazer uma busca pelo tipo do produto,é retornado na MSHFlexGrid todos os produtos referente ao tipo desejado,isso retornam várias linhas. O problema,é que para formar a lista de pedido não vou usar todas essas linhas,preciso saber como que eu pego uma das linhas apenas. No form tem o Flex (usado para retornar valores da busca) e o Flex2 que forma a lista de pedidos.Então teria que selecionar uma linha da flex (que pode ser a linha 5,7 10 ou qualquer outra) e jogar para a Flex2. Eu usei uma matriz para pegar valores de cada linha pois pensei que assim para adicionar os registros da Flex na Flex2 fosse apenas pegar os dados que estão na Matriz,mas o que acontece é que sempre quando eu tento adicionar um registro da Flex na Flex2 é adicionado a primeira linha da Flex. Eu chequei os valores da Matriz atravez de Msgbox,e ela pega direito os valores de cada linha,mas acho que o problema,é que quando clico em "adicionar" ele não sabe se tem que pegar os valores da Matriz(linha5),Matriz(linha9) e etc,ele pega sempre o primeiro valor. Bom,é isso. Esse é o unico passo que falta pra eu terminar,espero que tenha uma solução.
  7. Olá,esse é meu primeiro post aqui,tenho me cadastrado em alguns foruns pra conseguir ajuda em um projeto que estou fazendo,e tenho que apresenta-lo na escola semana que vem quando voltam as aulas. Por sorte fiz muita coisa,só restam duas coisas agora,abrir um relatório do CR,e terminar a tela de vendas de produtos que é o pior. Eu to fazendo a primeira tela de venda,e to usando o MSHFlexGrid,mas não sei se esse é o controle ideal. Eu estou usando o MSHFlexGrid,por que queria usar ListBox,mas como o MSHFlexGrid tem colunas pra separar os campos achei que ficaria melhor. Bem,no form existe a textbox onde você escreve o nome do produto ao qual quer buscar,e o valor está sendo retornado no MSHFlexGrid (vou passar a chama-lo de FLEX agora).Onde recebo retorno do nome completo,código,quantidade em estoque,tipo e preço do produto,tudo em suas devidas colunas,bem organizado como queria.E localizando o produto que eu quero na lista,clicaria no botão "Adicionar",onde ele pegaria apenas o produto selecionado e adicionaria em outro Flex,onde vai se formar a lista completa do pedido. Mas aí vem o primeiro problema: 1-***Pra realizar uma busca,gostaria de não ter que escrever o nome completo.Por exemplo se quiser buscar um Pentiun 4 HT 3.0,odiaria ter que escrever esse nome todo,o ideal seria escrever pentiun,daí ele lista todos componentes que tem Pentiun no início do nome,me mostra a lista e eu escolheria o Pentiun 4 HT 3.0 entre eles.O problema é que no Flex,você tem que especificar em quais linhas e colunas cada dado vai entrar,e se eu não faço idéia de quantos produtos tem,como vou específicar quantas e em quais linhas e colunas vão entrar cada registro? O que estou fazendo no momento para teste,é apenas com uma linha no Flex,mas assim,teria que escrever o nome completo e certo. 2-*** Volto a ficar preso por causa das linhas.Eu faço a busca,acho o nome do produto que quero,clico em adicionar e ele sai do Flex de consulta pro Flex pedido.Mas eu não sei quantos produtos vou comprar ainda,como preparar as linhas seguintes pra receberem mais dados de pedido? 3-***Talvez esteja ligado também ao fato de não saber o numero de linhas e está ligado a Flex do pedido.Eu só consigo adicionar uma linha de pedido.Se eu fazer outra busca,quando eu clicar no botão adicionar,ele vai sobrepor o registro anterior,e pra piorar,são adicionados nas linhas seguintes,pedaços do código que eu usei na coluna 1,vejam a foto 2. alguém pode me ajudar a corrigir esse problema??Ou recomendar outro componente?O que eu não gostaria de fazer é colocar uma textbox para cada registro que precise,ia ficar parecendo mais uma tela de cadastro,e aliás se for pra fazer assim é melhor eu atribuir a função de vender logo a tela de cadastro mesmo,uso a mesma tela pra cadastrar,editar,deletar,consultar,vender..... Código usado no botão adicionar: Private Sub cmdadicionar_Click() If flex <> "" Then ****aFlex é a primeira MSHFlexgrid,a de consulta apenas...a de pedido é a Flex2 'Tamanho flex2.ColWidth(0) = 1300 flex2.ColWidth(1) = 3000 flex2.ColWidth(2) = 2500 flex2.ColWidth(3) = 1000 flex2.ColWidth(4) = 950 'Atribuindo nome as colunas flex2.Row = 0 flex2.Col = 0 flex2.Text = "Código" flex2.Col = 1 flex2.Text = "Produto" flex2.Col = 2 flex2.Text = "Classe" flex2.Col = 3 flex2.Text = "Quantidade" flex2.Col = 4 flex2.Text = "Preço" ''''Adicionando os registros frmvenda.flex2.AddItem ("coluna0,coluna1,coluna2,coluna4") ''''Essas são variáveis onde ficaram armazenadas valores das colunas 0,1,2 e 4 da Flex de consulta flex2.Row = 1 flex2.Col = 0 flex2.Text = coluna0 flex2.Col = 1 flex2.Text = coluna1 flex2.Col = 2 flex2.Text = coluna2 'flex2.Col = 3 'flex2.Text = Textquantidade.Text flex2.Col = 4 flex2.Text = coluna4 ' flex.Clear Else MsgBox "Não há nenhum produto a ser adicionado!", vbInformation, "Erro" Exit Sub End If End Sub Vejam uma screen do problema aqui: http://img293.imageshack.us/img293/1629/teste2uj5.jpg
×
×
  • Criar Novo...