Jump to content
Fórum Script Brasil

Jhonas

Monitores
  • Content Count

    9615
  • Joined

Community Reputation

0 Neutro

About Jhonas

Perfil

  • Gender
    Male
  • Location
    São Paulo

Recent Profile Visitors

24909 profile views
  1. Veja a lista nesses links https://www.google.com.br/search?source=hp&ei=5IHOXv6FKP-y5OUP-YujoAM&q=manual+de+python+pdf&o que=manual+de+phyt&gs_lcp=CgZwc3ktYWIQARgBMggIABAWEAoQHjIICAAQFhAKEB4yBggAEBYQHjIGCAAQFhAeMgYIABAWEB4yBggAEBYQHjIICAAQFhAKEB4yCAgAEBYQChAeMggIABAWEAoQHjIICAAQFhAKEB46BQgAEIMBOgIIAFDgDliqTmC6ZmgBcAB4AYABoAKIAdQPkgEGMS4xMS4ymAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab abraço
  2. ok... voce pode usar esse evento tambem, mas eu prefiro usar o evento OnColEnter vou dar um exemplo: vamos imaginar que a coluna 4 do seu dbgrid seja o campo "TIPO" e que seja necessario que ele sempre tenha algum valor Então quando o Cursor entrar na coluna 5, voce testa para saber se existe algum valor no campo da coluna 4. Se não existir, voce mostra uma mensagem e retorna o cursor para o campo da coluna 4. if DBGrid1.SelectedIndex = 5 then begin if CDS_TabelaTIPO.Value = '' then begin MessageDlg('DIGITE UM VALOR PARA TIPO', mtInformation,[mbOk], 0); DBGrid1.SelectedIndex := 4; EXIT; end; end; oBS: Veja que estou testando o campo da tabela pelo ClientDataSet que esta linkado a um componente DataSetProvider e um Zquery, mas voce pode fazer a mesma coisa somente pelo Zquery abraço
  3. Para que isso funcione, o campo da sua tabela no seu banco de dados, deve estar configurado como Not Null ou então utilize o evento OnColEnter do DbGrid nesse evento, quando voce sair da coluna, voce testa se o campo está vazio. abraço
  4. Voce leu o Help sobre essa informação ? Specifies whether a nonblank value for a field is required. Delphi syntax: property Required: Boolean; C++ syntax: __property bool Required = {read=FRequired, write=FRequired, default=0}; Description Use Required to find out if a field requires a value or if the field can be blank. If a field is created with the Fields editor, this property is set based on the underlying table. Applications that set Required to true for fields that must have values (for example, a password or part number), but for which the underlying table does not require the field, must write an OnValidate event handler to enforce the property. When the Required property reflects a property of the underlying database table, trying to post a null value causes an exception to be raised. Applications that set the Required property to true when the underlying table does not require the field, should raise an EDatabaseError exception on null values in the OnValidate event handler in order to achieve the same result. Os aplicativos que configuram Required como true para campos que devem ter valores (por exemplo, uma senha ou número de peça), mas para os quais a tabela subjacente não exige o campo, devem gravar um manipulador de eventos OnValidate para impor a propriedade. Evento OnValidate Descrição Escreva um manipulador de eventos OnValidate para validar as alterações feitas nos dados no campo, imediatamente antes de os dados serem gravados no buffer de registro atual. A propriedade EditMask permite a validação dos dados caractere por caractere enquanto está sendo inserido pelo usuário. OnValidate permite que um aplicativo valide os dados como um todo. Quando o valor de um componente de campo é atribuído programaticamente, a validação pelo EditMask é ignorada, pois não há controle com reconhecimento de dados para impor a adesão à máscara. OnValidate permite que um aplicativo valide esses dados antes de serem postados na tabela do banco de dados. Para rejeitar o valor atual do campo do manipulador de eventos OnValidate, crie uma exceção. Ao gravar o valor de um campo no buffer de registro atual, ocorrem as seguintes etapas: 1 O manipulador de eventos OnValidate é chamado para validar os dados. 2 Se o manipulador de eventos OnValidate não gerar uma exceção, os dados serão gravados no buffer de registro atual. 3 Se a gravação dos dados não gerar uma exceção, o manipulador de eventos do OnChange é chamado para permitir uma resposta à alteração. abraço
  5. Veja esses links https://www.google.com.br/search?source=hp&ei=_AK8XrvAG7S55OUPqd-zsAU&q=instalar+mysql+em+outro+diretorio&o que=instalar+mysql+em+outro+diretorio&gs_lcp=CgZwc3ktYWIQAzoFCAAQgwE6AggAOgYIABAWEB46CAghEBYQHRAeOgcIIRAKEKABOgUIIRCgAVDIClieW2CGYmgAcAB4AYABvgGIAc4ikgEEMi4zMpgBAKABAaoBB2d3cy13aXqwAQA&sclient=psy-ab&ved=0ahUKEwi7rsKkhbHpAhW0HLkGHanvDFYQ4dUDCAY&uact=5 abraço
  6. Usando o seu exemplo ficaria assim; VAR condicao, varSinal, S : STRING; begin condicao := 'ativo'; If condicao = 'ativo' then varSinal := '+' else varSinal := '-'; S := 'SELECT A ' + varSinal +' B AS RESULTADO FROM TABELA'; Query1.Active := false; Query1.SQL.Clear; Query1.SQL.Append(S); Query1.Active := true; showmessage(s); showmessage(FLOATTOSTR(Query1RESULTADO.Value)); end; Obs: o mesmo código se aplica ao ZQuery abraço
  7. Valeu, Jhonas. Ta lá o nosso trabalho.  Só não sei ate hoje como coloca os codigos dentro daquele scrollbox no site.abracao.

    1. Jhonas

      Jhonas

      Se voce quiser colocar algum código no seu post, clique no simbolo que aparece no  ( Menu ) a direita do U ( sublinhado )

      ( < > ) quando voce estiver  editando o post.

      Abraço

  8. Se quiser um conselho, sugiro que voce crie um email no BOL ou ZIPMAIL onde o numero de caracteres do seu Email seja maior que 15 e a senha contenha 9 ou mais caracteres (entre maiusculas, minusculas, numeros e caracteres especiais ) dessa maneira voce não vai ter o incomodo de ficar recebendo Spans e os programas hackers atuais não conseguem quebrar a senha . OBS: Voce não ouviu falar do Golpe dos Boletos ? Pelo numero do código de barras, voce pode ficar sabendo qual é o banco, o valor e na conta de quem está indo esse valor. Será que fui alvo de um golpe de dentro da empresa? Se quiser ter certeza, peça para gerar um boleto na propria empresa e depois compare com o que voce esta recebendo por email. abraço
  9. O único lugar que aparece os valores normais (que foram declarados originalmente como VARCHAR , FLOAT etc.. ) é na barra de STATUS inferior de apresentação do resultado do SQL. ESTRANHO ?!?! A tabela tbResult quando é criada tem os nomes dos campos e tipos relacionados dessa maneira id int(11) num_nc int(11) data date val1 double(11,2) val2 double(11,2) val3 double(11,2) nome_item varchar(50) qde int(5) preco_un double(11,2) idNC int(5) tot_item double(19,2) tot_custos double(19,2) tot_coluna_item double(19,2) custo_item double(19,2) val_med_fin double(19,2) voce não precisa mudar nada... então veja o que voce está fazendo de errado Dica: para que não ocorra erros, carregue os campos dessa tabela ou na Zquery ou num ClientDataSet No Select da Query voce coloca: Select * from tbresult ... não tem erro abraço
  10. Jhonas

    WebService

    experimente: minOccurs="0" maxOccurs="unbounded" Isso é especificado configurando o atributo maxOccurs do elemento "item" como "ilimitado", o que significa que pode haver tantas ocorrências do elemento "item" quanto o autor desejar. ou pode limitar o numero de ocorrencias exemplo: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> <xs:element name="persons"> <xs:complexType> <xs:sequence> <xs:element name="person" maxOccurs="unbounded"> <xs:complexType> <xs:sequence> <xs:element name="full_name" type="xs:string"/> <xs:element name="child_name" type="xs:string" minOccurs="0" maxOccurs="5"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
  11. Jhonas

    WebService

    A construção do webservice que não está correta. o webservice é seu ou de terceiros ... se é seu basta alterar o código para funcionar como voce precisa, mas se não foi voce que o construiu, então não dá para fazer nada. Tem idéia de como criar um webservice ? https://www.google.com.br/search?source=hp&ei=nIKnXpa4EcXI5OUP5o6a0Ao&q=criar+webservice+delphi&o que=criar+webservice&gs_lcp=CgZwc3ktYWIQARgEMgIIADICCAAyAggAMgIIADICCAAyAggAMgIIADICCAAyAggAMgQIABAKOgUIABCDAVD0CViOJGCsOGgAcAB4AYABlASIAcojkgEMMC4xMC4wLjEuMy4zmAEAoAEBqgEHZ3dzLXdperABAA&sclient=psy-ab , onde um nodo possua limite? o limite é voce quem define no código .... pode me mostrar como é que voce cria o xml para envio ? voce tem um ambiente ( endereço ) para testes ?
  12. Jhonas

    WebService

    ok... me mostre como voce esta enviando os dados para o webservice
  13. Jhonas

    WebService

    Utilize o código que eu te passei e veja se ocorre o mesmo problema que voce relatou
  14. tenho que interfacear esta TBRESULT criando uma novo DataSet (Zquery) que apesar de tabela ser temporaria a ZQuery vai entender? Na verdade a tabela é temporaria até que voce execute novamente DROP TABLE IF EXISTS tbresult; CREATE TABLE tbresult Trate a tabela como se fosse outra tabela do seu banco de dados. voce pode fazer com ela tudo o que precisar. use normalmente os componentes de acesso à tabelas, não vai ter problema nenhum abraço
  15. Esse código foi gerado usando o MYSQL_Front e esse código pode ser colocado dentro de um componente ZQuery ( Zeos ) com acesso a tabela gerada no MYSQL ----------------------------------------------------------------- ok ...no seu caso, se voce conseguiu fazer essa parte... DROP TABLE IF EXISTS tbresult; CREATE TABLE tbresult SELECT A.id, num_nc, data, val1, val2, val3, nome_item, qde, preco_un, idNC, (qde * preco_un) AS tot_item, B.val1 + B.val2 + B.val3 AS tot_custos FROM tboperacao AS A JOIN tbnota AS B ON (B.id = A.idNC); ALTER TABLE tbresult ADD tot_coluna_item double(19,2) DEFAULT NULL; ALTER TABLE tbresult ADD custo_item double(19,2) DEFAULT NULL; ALTER TABLE tbresult ADD val_med_fin double(19,2) DEFAULT NULL; ... não precisa necessariamente fazer a outra via SQL voce pode construir uma procedure no Lazarus e fazer a mesma coisa usando os comandos do Lazarus/Delphi Exemplo: procedure Calcular_Valores(Sender: TObject); Var i, reg, cc, counter : integer; begin TbResult_IB.Active := false; CDS_TbResult.Active := false; TbResult_IB.Active := true; CDS_TbResult.Active := true; CDS_TbResult.Refresh; For i := 1 to CDS_TbResult.RecordCount do begin /// outros comandos end; end; abraço
×
×
  • Create New...