Jump to content
Fivewin Brasil

Erciley Junior

Membros
  • Posts

    599
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Erciley Junior

  1. Creio que ela faça isso devido "particularidades da SQLLIB. Luiz, lembro o pq vc faz isso...... mas não deveria fazer após o sqlArray ?
  2. Luis, pra resolver isto basta você por um MSGGET após montar a String do SELECT, e verá se tem ou não algum erro ^^ (óbviousssss ) Ou talvez, dentro do período estipulado, não tenha registro para os clientes que estão no IN(...), e por isso nada é retornado. E isso de retirar a última vírgula..... faça assim: cCodi:='' for y:=1 to len(aCli) cCodi:=IF( EMPTY(cCodi) , '' , ',' ) cCodi+=SQLNTRIM( aCli[y,1] ) // ANY2SQL( aCli[y,1] ) + "," ----- não uso esse Any2sql, então dei tchau pra ele ^^ next // NÃO PRECISA DISSO, SÓ CONFUNDE------ cCodi := Left(cCodi,Len(cCodi)-1) // Para retirar a Ultima ","
  3. Revivendo o tópico mais importante do fórum.... Sua mãe é tão gorda, mas tão gorda, que Deus quando quis iluminas a Terra, esperou ela se mexer. Sua mãe é tão velha, mas tão velha, que ela sentava atrás de Jesus na quarta série.
  4. Eu sempre gosto de usar um ponteiro numérico no COMBOBOX, aí ficaria: LOCAL cTEXTCG := {"Selecione","Alameda","Avenida","Beco","Estrada","Praça","Rodovia","Rua","Travessa"} LOCAL nCombo:=1 @ 01.0,01.0 COMBOBOX obj_combo VAR nCombo ITEMS cTEXTCG OF obj_tela SIZE 70,50
  5. Olá Luiz. Vendo seu exemplo que funciona, e o que não funciona, vejo que tem uma grande diferença ^^ Primeira forma que funciona, é um vetor UNIDIMENSIONAL a segunda forma que não funciona, é um vetor MULTIDIMENSIONAL, por isso não dá certo. Creio que para a segunda forma funcionar, teria que ser: aImagens:=Array(08) aImagens[01]:='delete0' aImagens[02]:='delete0' aImagens[03]:='' aImagens[04]:='' aImagens[05]:='' aImagens[06]:='' aImagens[07]:='' aImagens[08]:='' oTabs:acBitMaps := aImagens ou aImagens:={} AADD(aImagens,'delete0') AADD(aImagens,'delete0') AADD(aImagens,'' ) AADD(aImagens,'' ) AADD(aImagens,'' ) AADD(aImagens,'' ) AADD(aImagens,'' ) AADD(aImagens,'' )
  6. Versão dele é a 11, a minha é a 08 e 02.6... Bom... negócio é aproveitar o final de semana, abraço. ^^
  7. Kapiaba, você está errado, dá para mudar, é só alterar onde deixei grifado e nas duas linhas abaixo. Quem postou parece que não lê, senão já teria encerrado o tópico. Desculpe a sinceridade, abraço.
  8. Olá, creio que é só alterar as linhas destacadas na classe tGet
  9. Olá Kapiaba, acredito que a conversão das letras que possuem acentuação não está correta, pois o STRTRAN irá procurar a letra com acento já em maiúsculo para retirar o acento e manter em maiúsculo e acredito que deveria ser o contrário ^^ Abraço.
  10. Como falei, se fosse comigo....... das duas uma: 1 - Cobraria novamente para ressarcir o pessoal, em BEM menos do que 10 parcelas, pois não sou cartão de crédito. 2 - Entraria com processo judicial, visto que testemunhas e confissões não faltam. Bom, só perguntei e expus minha opinião pois o assunto fica correndo no fórum para todos verem, então me senti no direito de dar minha opinião. Abraços, e que tudo se resolva um dia
  11. Emotta, vocês nunca mais cobraram a pessoa "diretamente"? Na época lembro que li algumas desculpas que talvez justificasse tal fato, ok...... mas e hoje, ainda não se reestabeleceu para arcar com o que fez? Se eu tivesse envolvido, com certeza cobraria, todo mês ^^
  12. Compreendo Everton, realmente deve ser frustante essa situação, só reclamei pois entendo o problema do "peruano", mas ficar repetindo a postagens dezenas de vezes acaba sendo desnecessário, e tumultua o fórum ao meu ver. Bom, complicado, espero que resolvam os problemas.
  13. Parabéns Itorreslm, todos percebemos que você sabe usar o ctrl+c ctrl+v e ressuscitar tópicos pré históricos em que o Avelino postou Agora pode ir dormir, reclamação registrada umas 10 vezes com sucesso.
  14. Uia rapai, juntos mesmo, hehehe que bom q deu certo, abraço.
  15. Ok, dê uma olhada, mas é 99.9% que isso resolva o seu problema, se é que entendi ^^ Faltou eu colocar um DESC no order by para o campo DATA altere isso ORDER BY pe.fornecedor,pe.data,pe.sql_rowid desc por isso ORDER BY pe.fornecedor,pe.data DESC,pe.sql_rowid desc
  16. Luiz Fernando, realmente em um mesmo SELECT não dá certo, é erro mas o exemplo que lhe dei não é apenas um select. Creio que você não leu e nem testou.
  17. Luiz Fernando, da forma que falei acho que dá certo, é tudo questão de você alterar a lógica de como está fazendo. Faça o ORDER BY, e depois faça o GROUP BY. SELECT * FROM ( SELECT concat(pe.fornecedor,'-',f.razao) AS fornecedor ,date_format(pe.data,'%d/%m/%Y') AS COL_02 ,pe.qtd AS COL_03 ,pe.valor AS COL_04 FROM pedido as pe LEFT JOIN forne as f on pe.fornecedor = f.codigo WHERE pe.data >= @get03Any2Sql(cGet[3]) AND pe.data <= @get04 AND pe.produto = @produto AND pe.tipo = "2" ORDER BY pe.fornecedor,pe.data,pe.sql_rowid desc ) AS S1 GROUP BY fornecedor
  18. Tá usando SQLLIB? Faz assim: ORDER BY pe.fornecedor,pe.data,pe.SQL_ROWID DESC
  19. WinExec() Executes another Windows application Syntax: WinExec( <nCmdLine>, <nCmdShow> ) --> <hInstance> Parameters: <nCmdLine> A string that contains the command line to execute. If it does not contains a path, then Windows searches in this order: 1 The current directory. 2 The Windows directory (the directory containing WIN.COM); the GetWinDir() function retrieves the path of this directory. 3 The Windows system directory (the directory containing such system files as GDI.EXE); the GetSysDir() function retrieves the path of this directory. 4 The directory containing the executable file for the current task; the GetModuleFileName function retrieves the path of this directory. 5 The directories listed in the PATH environment variable. 6 The directories mapped in a network. <nCmdShow> Specifies how the windows application has to be shown. See ShowWindow() for a description of all possible values. Returns: <hInstance> The return value identifies the instance of the loaded module, if the function is successful. Otherwise, the return value is an error value less than 32: 0 System was out of memory, executable file was corrupt, or relocations were invalid. 2 File was not found. 3 Path was not found. 5 Attempt was made to dynamically link to a task, or there was a sharing or network-protection error. 6 Library required separate data segments for each task. 8 There was insufficient memory to start the application. 10 Windows version was incorrect. 11 Executable file was invalid. Either it was not a Windows application or there was an error in the .EXE image. 12 Application was designed for a different operating system. 13 Application was designed for MS-DOS 4.0. 14 Type of executable file was unknown. 15 Attempt was made to load a real-mode application (developed for an earlier version of Windows). 16 Attempt was made to load a second instance of an executable file containing multiple data segments that were not marked read-only. 19 Attempt was made to load a compressed executable file. The file must be decompressed before it can be loaded. 20 Dynamic-link library (DLL) file was invalid. One of the DLLs required to run this application was corrupt. 21 Application requires 32-bit extensions. Observations: The LoadModule() function provides an alternative method for running an application.
  20. Coalesce e IFNULL são a "mesma coisa". Faça como o Evandro falou: WHERE COALESCE(campo,SPACE(05)) = SPACE(05); ou como você tentou: WHERE IFNULL(campo,SPACE(05)) = SPACE(05);
  21. Você não precisa e creio que não sentirá diferença alguma, criando ou não, ou seja, não precisa.... mas é aquela história de boas práticas............ sempre é bom ter...... sempre tendo, nunca terá problemas, blablabla. Fica a seu critério imagine em um DBF de 5 registros..... você quer informação do registro CÓDIGO = 5, oq vc faz? lAchou:=.F. DBGOTOP() WHILE !EOF() IF CODIGO == 5 lAchou:=.T. EXIT ENDIF DBSKIP(1) ENDDO IF lAchou ?'ACHOU, EBAAAAA' ELSE ?'REGISTRO NÃO ENCONTRADO' ENDIF Imagino que no mysql seria a mesma coisa, ou seja, melhor ter doq não ter ^^
  22. Luiz, caso você mande criar o índice, com o mesmo nome, dará erro no sql. Caso mande criar o índice DO MESMO CAMPO, dando nome diferente ao índice, não terá erro por parte do SQL, mas isso é errado, óbvio. Quanto a índices no sistema: É importantíssimo que você crie índices para "todas" suas tabelas, e tão importante quanto isso, é TODO WHERE QUE VOCÊ FIZER, fazer seguindo a ordem dos campos no índice, igual você faz em DBF, se não fizer isso, não tem sentido algum seus índices criados. A diferença de performance é imperceptível dependendo o tamanho de suas tabelas, mas pode ser MONSTRUOSA em outros casos, hehehe, ou seja, boa sexta-feira ^^
  23. Uma vez criado não precisa se preocupar, em mysql não tem essa história de ter que abrir o índice para ele ser atualizado mas se quiser ter uma segurança, e inserir uma rotina para apenas criar/re criar caso algum doido apague algo, aí seria válido.
  24. Rapaz, do jeito que está não vai funcionar mesmo. Tem várias outras formas de fazer, mas assim, só não falo que tenho certeza que está certo pois não testei, mas eu tenho, hehehe. Só troque o código por isso: *----------------------------------------------------------* Function Escolha_Win( x_c_Linha1, x_c_Linha2, x_c_Linha3, x_c_Linha4,; CpBt1, Img1, Tool1,; CpBt2, Img2, Tool2,; CpBt3, Img3, Tool3,; CpBt4, Img4, Tool4 ) local oGrp1,; oSay1, oSay2, oSay3, oSay4,; oBtn1, oBtn2, oBtn3, oBtn4, oBtn5 LOCAL cLetRet DEFINE FONT oFONT1 NAME "Ms Sans Serif" SIZE 0, -12 DEFINE FONT oFONT2 NAME "Arial" SIZE 0, -13 Define DIALOG oForm_Choise TITLE "Janela de Opções" STYLE 4; FROM 194, 371 to 380, 895 PIXEL COLOR 0, 15790320 ACTIVATE DIALOG oForm_Choise ON INIT Ini_oForm_Choise( @cLetRet , x_c_Linha1, x_c_Linha2, x_c_Linha3, x_c_Linha4,; CpBt1, Img1, Tool1,; CpBt2, Img2, Tool2,; CpBt3, Img3, Tool3,; CpBt4, Img4, Tool4 ) ?'TESTE AKI DA VARIÁVEL ',cLetRet Return NIL //---------------------------------------------------------------------------- Function Ini_oForm_Choise( cLetRet , x_c_Linha1, x_c_Linha2, x_c_Linha3, x_c_Linha4,; CpBt1, Img1, Tool1,; CpBt2, Img2, Tool2,; CpBt3, Img3, Tool3,; CpBt4, Img4, Tool4 ) @ 1, 6 GROUP oGrp1 TO 99, 514 LABEL "" PIXEL; OF oForm_Choise COLOR 0, 15790320 FONT oFont1 @ 12, 10 SAY oSay1 VAR x_c_Linha1 SIZE 492, 18 PIXEL; OF oGrp1 COLOR 0, 15790320 FONT oFont2 @ 31, 10 SAY oSay2 VAR x_c_Linha2 SIZE 490, 18 PIXEL; OF oGrp1 COLOR 0, 15790320 FONT oFont2 @ 50, 10 SAY oSay3 VAR x_c_Linha3 SIZE 487, 18 PIXEL; OF oGrp1 COLOR 0, 15790320 FONT oFont2 @ 69, 11 SAY oSay4 VAR x_c_Linha4 SIZE 491, 16 PIXEL; OF oGrp1 COLOR 0, 15790320 FONT oFont2 if CpBt1 <> NIL @ 103, 6 BTNBMP oBtn1 Prompt CpBt1; FILE Img1 SIZE 100, 26 PIXEL LEFT; OF oForm_Choise ACTION Ret( oForm_Choise, "A" , @cLetRet ) FONT oFont1 message Tool1 oBtn1:SETCOLOR( 0, 14342874 ) endif * if CpBt2 <> NIL @ 103, 106 BTNBMP oBtn2 Prompt CpBt2; FILE Img2 SIZE 100, 26 PIXEL LEFT; OF oForm_Choise ACTION Ret( oForm_Choise, "B" , @cLetRet ) FONT oFont1 message Tool2 oBtn2:SETCOLOR( 0, 14342874 ) endif * if CpBt3 <> NIL @ 103, 206 BTNBMP oBtn3 Prompt CpBt3; FILE Img3 SIZE 100, 26 PIXEL LEFT; OF oForm_Choise ACTION Ret( oForm_Choise,"C" , @cLetRet) FONT oFont1 message Tool3 oBtn3:SETCOLOR( 0, 14342874 ) endif * if CpBt4 <> NIL @ 103, 306 BTNBMP oBtn4 Prompt CpBt4; FILE Img4 SIZE 100, 26 PIXEL LEFT; OF oForm_Choise ACTION Ret( oForm_Choise,"D" , @cLetRet ) FONT oFont1 message Tool4 oBtn4:SETCOLOR( 0, 14342874 ) endif * @ 103, 434 BTNBMP oBtn5 Prompt "Sair"; FILE "Imagens\16\EXIT.bmp" SIZE 80, 26 PIXEL LEFT; OF oForm_Choise ACTION if( MsgInfo( "Tem certeza que deseja sair sem escolher nenhuma das opções?", "Atenção" ), Ret(oForm_Choise,"E" , @cLetRet ), ) FONT oFont1 Message "Clicando aqui, vai sair da janela" oBtn5:SETCOLOR( 0, 14342874 ) SET MESSAGE OF oForm_Choise TO "Escolha uma das opções oferecidas" Return *-------------------------------------------* * * Define a Funcao Ret que fecha a janela da escolha e retorna o valor correspondente a opção escolhida * * ATLfuncoes 05/12/2013 - 20:51:52 Everton * *---------------------------------------------------------- Static Function Ret(oForm_Choise, cOpcao , cLetRet ) cLetRet:=cOpcao oForm_Choise:end() Return
×
×
  • Create New...