Jump to content
Fivewin Brasil

Geraldo (gbsilva)

Membros
  • Posts

    1,495
  • Joined

  • Last visited

  • Days Won

    6

Everything posted by Geraldo (gbsilva)

  1. Marina seja bem vinda! Atualize ai seu perfil para sabermos quais ferramentas voce usa, versão etc. Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  2. Luiz por coincidencia hoje eu tentei fazer um autoincremento no access, apesar de ser access é um bd e isso acontece lá também, a coluna incrementa mesmo voce não gravando até desisti do que eu estava fazendo. Mas onde preciso fazer mais o menos o que voce precisa eu faço um select e eu mesmo controlo os códigos a serem gerados, uso a função max() ou count()para saber o último e ai acrescento 1 ao resultado. Com sqllib e SqlArray por exempo: cSql := "SELECT MAX(codigo) FROM ;" ou cSql := "SELECT COUNT(codigo) FROM ;" aResult := SqlArray(cSql) novo_codigo := VAL(aResult[1,1]) + 1 Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  3. Oscar o excel suporta 65.536 linhas isso no 2003 nos atuais com certeza é mais. veja essa linha no seu código é isso que esta bloqueando. citação: // Verifica se o arquivo ultrapassa ao limite do Excel = 1064 linhas // if (cDbf)->(RecC()) > 1064 if lMsg MsgInfo("A quantidade de registros do arquivo ultrapassa a capacidade do Excel. Máximo 1.064 registros."+chr(13)+"Impossível gerar a planilha","(OASyS) MS-Excel") endif Return( lRet ) endif id=quote>id=quote>Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  4. Leonardo obrigado pelo retorno. Não tenho o Excel 2010 o meu na realidade ainda é 2003, mas na empresa onde trabalho testei com uma máquina que tem o 2007 e funcionou. Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  5. João calma Ué???? Perguntei porque achei interessante colocar a imagem de fundo no folder. Fiz como você passou, mas a imagem se repete várias vezes no mesmo folder, como fazer para que ela se ajuste e apenas uma por folder. Luiz funciona sim e era isso que eu pensava, eu achei um post antigo que faz mais ou menos isso e achei que haveria algo mais atual sobre o assunto. Grato ao dois, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  6. E ai alguém testou, funcionou??? Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  7. João tudo certo? Obrigado pelas respostas, não tenho como testar agora, mas é correto isso: DEFINE BRUSH oBrush RESOURCE "LOGO2" E por esse exemplo não é cor e sim uma imagem no fundo do folder correto. Grato, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  8. Pessoal duas dúvidas em uma mesma pergunta. Como colocar cores no folder e no radio nesse mesmo folder. Grato, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  9. Pessoal duas dúvidas em uma mesma pergunta. Como colocar cores no folder e no radio nesse mesmo folder. Grato, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  10. Pessoal faltou uma função que tem na classe para abrir o excel. Parâmetros......: _oExcel -> Objeto referente ao arquivo a ser gerado (pode ser necessário passar por referência (@) _oFolha -> Objeto referente a planilha (aba do excel) _cFonte -> Fonte definida através de uma string, padrão "Verdana" _nFonte -> Tamanho da fonte, padrão = 8 _lDefault -> .t. abre novo arquivo para gravar, .f. apenas testa criação do novo arquivo Chamada.........: OpenExcel(oBjeto,oFolha,"Verdana",10) ou OpenExcel(@oBjeto,@oFolha) Data Criação....: 20/11/2011 Data Modificação: 20/11/2011 11:02 */ Function OpenExcel(_oExcel,_oFolha,_cFonte,_nFonte,_lDefault) DEFAULT _cFonte := "Verdana" DEFAULT _nFonte := 08 DEFAULT _lDefault := .t. _oExcel := TOleauto():New("Excel.Application") IF Ole2TxtError() # "S_OK" MsgInfo("EXCEL não está instalado nessa máquina!"+CRLF+; "Impossível gerar planilha","ATENÇÂO") return(.f.) ENDIF if _lDefault = .t. _oExcel:WorkBooks:Add() _oFolha := _oExcel:Get("ActiveSheet") _oFolha:Cells:Font:Name := _cFonte _oFolha:Cells:Font:Size := _nFonte endif return(.t.) id=code>id=code>Desculpe, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  11. Pessoal postei em dicas uma simples classe (já que estou aprendendo sobre o assunto) para gerar relatórios em excel, junto tem um exemplo de como utilizar. Espero que seja útil. http://www.fivewin.com.br/exibedicas.asp?id=1115 Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  12. Pessoal postei em dicas uma simples classe (já que estou aprendendo sobre o assunto) para gerar relatórios em excel, junto tem um exemplo de como utilizar. Espero que seja útil. http://www.fivewin.com.br/exibedicas.asp?id=1115 Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  13. Marllon esse é velho e provavelmente você já o viu, mas como fiz uma simples classe para exportar relatórios acabei encontrando esse link e pode ser útil. Constantes do Excel http://fox.wikis.com/wc.dll?Wiki~ExcelConstants Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  14. Acho que isso te ajudará, ai diz mysql, mas deve ser mais ou menos no geral para todos os bancos. MySQL O MySQL possui os seguintes tipos de dados: Strings (caracteres) _________________ - Char: Este tipo de dado armazena uma string de tamanho fixo, com espaços à direita. Se o valor for menor que o tamanho estabelecido para o campo, ele ocupará o tamanho fixado. O tamanho desse campo varia de 1 a 255 caracteres. Na consulta, o MySQL ignora os espaços que não foram ocupados. - Varchar: O tipo de dado VARCHAR (Character Varying) armazena uma string de tamanho variável, com tamanho mínimo de 1 caracter e máximo de 255. Os espaços que não foram ocupados são retirados antes do armazenamento, tornando o banco de dados mais leve. - Tinytext: Tipo de dado que pode armazenar até 255 caracteres. - Text: Tipo de dado que pode armazenar até 65.535 caracteres. - Mediumtext: Permite que sejam armazenados até 16.777.215 caracteres. - Longtext: Permite que sejam armazenados até 4.294.967.295 caracteres. - Tinyblob, Blob, Mediumblob, Longblob: armazenam dados no formato binário, distinguindo, por exemplo, maiúsculas de minúsculas. Quanto ao armazenamento de dados, são iguais aos correspondentes no tipo text . - Enum: Permite que seja determinada uma lista de valores válidos para o campo, que somente vai aceitar ou um desses valores listados ou um valor NULL. Aceita até 65.535 valores. - Set: É o mesmo tipo do ENUM, só que esse tipo não aceita nenhum, aceita um, ou até mesmo vários valores da lista (o ENUM só aceita um valor da lista). Aceita até 64 valores. Numéricos _________________ - Tinyint: Tipo numérico que pode variar de -128 a 127. E de 0 a 255, caso o parâmetro UNSIGNED seja utilizado. - Smallint: Tipo numérico que pode variar de -32768 a 32767. E de 0 a 65355, caso o parâmetro UNSIGNED seja utilizado. - Mediumint: Tipo numérico que pode variar de -8388608 a 8388607. E de 0 a 16777215, caso o parâmetro UNSIGNED seja utilizado. Este tipo de dado pode ser utilizado com incremento para fazer o que a autonumeração do Access faz. - Int: Tipo numérico que pode variar de -2147483648 a 2147483647. E de 0 a 4294967295, caso o parâmetro UNSIGNED seja utilizado. - Bigint: Tipo numérico que pode variar de -9223372036854775808 a 9223372036854775807. E de 0 a 18446744073709551615, caso o parâmetro UNSIGNED seja utilizado. - Float: Armazena um número do tipo ponto flutuante de precisão simples. Varia de -3.402823466E+38 a -1.175494351E-38, 0, e 1.175494351E-38 a 3.402823466E+38. O parâmetro UNSIGNED não é aceito por esse tipo de dado. - Double: Armazena um número do tipo ponto flutuante de precisão dupla. Varia de -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, e 2.2250738585072014E-308 a 1.7976931348623157E+308. Também não aceita o parâmetro UNSIGNED. - Decimal: tipo de dado numérico que se comporta como o do tipo CHAR, ou seja, cada dígito ocupa 1 byte. Data/Hora _________________ - Date: Este tipo de dado pode armazenar uma data no formato AAAA-MM-DD. - Datetime: Pode armazenar uma data no formato AAAA-MM-DD e uma hora no formato HH:MM:SS. - Timestamp: Oferece como vantagem a possibilidade de inserção automática da data/hora atual. Para que seja inserido automaticamente, basta que o campo não seja informado no momento de inserção do registro (parecido com a função Agora() do Access). - Time: armazena um valor qualquer de tempo, no formato HH:MM:SS. - Year: armazena um ano qualquer, podendo ser de dois ou quatro dígitos. Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  15. Beto normal nesse exemplo estou jogando os dados numa array. Abaixo como faço para exportar para o excel, se for para txt poderia ser a mesma coisa. Local oExcel,oFolha,nX,nFor,conta:=0 Local PrimeiraAta:=UltimaAta:="",nLista := Len(aLista),lZona:=space(2),hHora:=space(5) oExcel := TOleauto():New("Excel.Application") IF Ole2TxtError() # "S_OK" MsgInfo("EXCEL não está instalado nessa máquina!"+CRLF+; "Impossível gerar planilha","ATENÇÂO") return(nil) ENDIF oExcel:WorkBooks:Add() oFolha := oExcel:Get("ActiveSheet") oFolha:Cells:Font:Name := "Verdana" oFolha:Cells:Font:Size := 08 nX := 1 oFolha:Range("A1:H1" ):Merge() oFolha:Range("A1:H1" ):Value := "RELATÓRIO DE APROVAÇÕES: " +DTOC(date() ) ++nX TitulosExcel(oFolha,{"ID_WF","ACQ","DATA FISCALIZAÇÃO","DATA APROVAÇÃO",; "HORÃRIO","DIA DA SEMANA","PERÃODO","DIAS APROVAÇÃO","RESULTADO"},nX) ++nX For nFor = 1 to nLista ExpExcel2(oExcel,oFolha,nX,{ {aLista[nFor,1],9},{aLista[nFor,2],9},; {aLista[nFor,3]},{aLista[nFor,4],2},; {aLista[nFor,5]},{aLista[nFor,6]},{aLista[nFor,7]},; {aLista[nFor,8],9},{aLista[nFor,9]} }) ++nX End oExcel:Visible := .T. return(nil) STATIC Procedure TitulosExcel(_oFolha,_aTitulos,_nLinha) local nT local nTitulos:=Len(_aTitulos) For nT = 1 to nTitulos _oFolha:Cells(_nLinha,nT):Value := _aTitulos[nT] Next return(nil) /* Data: 30/10/2011 Chamdas: Campo númerico {nValor} mostra 2 decimais e {nValor,0} nenhuma casa decimal {nValor,3} 3 casas etc {nValor,9} mostra número sem milhar (usar para exportar campos como número Data/Hora {nData} só data, {nData,1} data e hora {nData,2} data, hora e minutos {nData,3} data, hora, minutos e segundos */ STATIC Procedure ExpExcel2(oExcel,oFolha,nX,_aDados) Local nFor,; nColuna := 0,; nDecimal := 0,; cFormato := "#.##0",; cDec := "",; cResult := "" For nFor = 1 to len(_aDados) nColuna++ oFolha:Columns(nColuna):AutoFit() if ValType(_aDados[nFor][1]) = "C" //-> Caractere oFolha:Cells(nX,nColuna):set("NumberFormat","@") oFolha:Cells(nX,nColuna):Value := _aDados[nFor][1] elseif ValType(_aDados[nFor][1]) = "N" //-> Numérico if len(_aDados[nFor]) = 1 //-> se não for definido padrão = 2 casas decimais nDecimal := 2 else if _aDados[nFor][2] = 9 //-> número sem milhar cFormato := "###0" nDecimal := 0 else nDecimal := _aDados[nFor][2] endif endif If nDecimal > 0 cDec := Replicate("0",nDecimal) cResult := cFormato+","+cDec Else cResult := cFormato Endif oFolha:Cells(nX,nColuna):set("NumberFormat",cResult) oFolha:Cells(nX,nColuna):Value := _aDados[nFor][1] elseif ValType(_aDados[nFor][1]) = "D" //-> Data //? len(_aDados[nFor]) if len(_aDados[nFor]) = 1 //-> padrão data normal cResult := "dd/mm/aaaa" else if _aDados[nFor][2] = 1 cResult := "dd/mm/aaaa hh" elseif _aDados[nFor][2] = 2 cResult := "dd/mm/aaaa hh:mm" elseif _aDados[nFor][2] = 3 cResult := "dd/mm/aaaa hh:mm:ss" endif endif oFolha:Cells(nX,nColuna):set("NumberFormat",cResult) if len(_aDados[nFor]) < 3 //-> padrão data normal oFolha:Cells(nX,nColuna):Value := dtoc(_aDados[nFor][1]) else oFolha:Cells(nX,nColuna):Value := dtoc(_aDados[nFor][1])+" "+_aDados[nFor][3] endif else oFolha:Cells(nX,nColuna):set("NumberFormat","@") oFolha:Cells(nX,nColuna):Value := _aDados[nFor][1] endif Next return nil id=code>id=code>Obs.: Quem me ajudou nessa coisa de excel foi o nosso amigo Kleyber e Evandro. Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  16. Beto abaixo um exemplo usando Sqlserver, no código tem algumas variáveis para filtro, mas pode ajudar na sua necessidade e também um exemplo de função que uso para os campos datas. cSql := "SELECT a.ano,a.mes,b.id,a.acq,a.data_fisc,b.DATA_APROVACAO,right(b.DATA_APROVACAO,8) as Oito " cSql += " FROM tab_dados_acq_ext a INNER JOIN CAD_INF_ADIC b ON a.acq = b.ACQ " cSql += " WHERE a.ano='"+nAnoBase+"' AND a.mes='"+nMesBase+"' AND (a.status=5 OR a.status=11 ) AND b.data_aprovacao IS NOT NULL" //-> Aqui tem uma condição e que uso uma função para igualar os campos datas no where IF !empty(oCpo:data_inicio) IF empty(oCpo:data_fim) oCpo:data_fim := date() ENDIF cSql += " WHERE a.data_fisc >='"+GbDatag(oCpo:data_inicio)+"' AND a.data_fisc <='"+GbDatag(oCpo:data_fim)+"' AND (a.status=5 OR a.status=11 ) AND b.data_aprovacao IS NOT NULL" ELSE GbMsg("Seleção Inválida, verifique!",,2) return(nil) ENDIF cSql += " GROUP BY a.ano,a.mes,b.id,a.acq,a.data_fisc,b.DATA_APROVACAO " cSql += " ORDER BY a.acq ; " oDbf := TDbOdbcDirect():new( cSql,oOdbc) oDbf:Open() oDbf:Gotop() //-> Testa se há serviços aprovados no período if oDbf:RecCount() = 0 oDbf:End() GbMsg("Nenhuma Serviço/Obra foi aprovado no período selecionado!",,2) LimpaTela(oCad) GbFoco(oCad[2]) return(nil) endif //-> Faço while e adiciona os valores a uma array, mas pode fazer o que quiser com os dados While !oDbf:Eof() nDiasCorrido := DiasUteis(oDbf:FieldGet(5),oDbf:FieldGet(6)) if oCpo:nTipo <= 2 IF nDiasCorrido > 2 cRetorno := "Perdido" ELSE cRetorno := "Ok" ENDIF elseif oCpo:nTipo > 2 IF nDiasCorrido > 10 cRetorno := "Perdido" ELSE cRetorno := "Ok" ENDIF endif TrataHora(oDbf:FieldGet(7),@hHoras) DiaSemana(oDbf:FieldGet(6),@Dia) if val(left(hHoras,2)) > 18 lNoturno := "Noturno" else lNoturno := "Diurno" endif aAdd(aLista,{oDbf:FieldGet(3),oDbf:FieldGet(4),oDbf:FieldGet(5),oDbf:FieldGet(6),hHoras,; Dia,lNoturno,nDiasCorrido,cRetorno } ) hHoras := space(5) Dia := "" lNoturno := "" nDiasCorrido := 0 cRetorno := "" oDbf:Skip() End oDbf:End() RelatorioExcel(aLista) Function GbDatag(lData) lData := right(dtoc(lData),4)+"-"+substr(dtoc(lData),4,2)+"-"+left(dtoc(lData),2) return(lData) id=code>id=code>Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  17. João muito obrigado, realmente funciona. Agora como voce descobriu esses atributos. Até hoje me virava com o Ferase(), mas assim é muito mais prático. Grato, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  18. Ari tente incluir no seu projeto as seguintes lib´s: ct.lib png.lib psapi.lib Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  19. Veja se é isso que voce precisa, já apanhei e ainda apanho com array rsss.... For nP = 1 to 3 if nP = 1 //-> se quiser atribuir valor diferente ao item 1 faça um IF, se não tire aAdd(aDados,{"Valor atribuido ao item 1"}) else aAdd(aDados,{"Valor atribuido aos outros itens: "+strzero(nP,3) }) endif next ? len(aDados) //-> total de elementos da array for nT = 1 to Len(aDados) //-> Apenas para teste mostro o valor atribuido, o len e o nº do item ? aDados[nT,1],len(aDados[nT,1]),nT next id=code>id=code>Teste esse código ai veja se é isso mais ou menos isso que voce precisa. Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  20. Onde voce chama a função DOFISJ()? Se quer declarar como local passe na chamda e também coloque na função. Chamada DOFISJ(oPrn) Function DOFISJ(oPrn) Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  21. Muito interessante, pena que não tem um índice. http://www.oohg.org/manual/harbour/chapter1.htm Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  22. Muito interessante, pena que não tem um índice. http://www.oohg.org/manual/harbour/chapter1.htm Sds Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  23. Seria isso: oBrw:nHeaderHeight := 30 Sds, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  24. Luiz obrigado pelas respostas, eu inclusive passei uma mensagem para o Gilmer, pois isso esta acontecendo na versão 1112. Mas o mais estranho é que as outras colunas funciona, apenas na data não. Mesma coisa no say deveria funcionar, pois uso normalmente assim. Grato, Geraldo B. Silva Fwh1112 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
  25. Pessoal montei um browse com Custon Control e existem 02 coisas estranhas no mesmo browse. 1 - Não consigo posicionar o campo data com AL_LEFT sendo que para as demais colunas funciona. 2 - Não esta funcionando a opção COLOR no SAY. Abaixo o código e link para imagem do browse. http://imageshack.us/content_round.php?page=done&l=img594/1183/xbrowse.jpg&via=mupload&newlp=1 oBrw := TXBrowse():New( oFld:aDialogs[1] ) oBrw:CreateFromResource( 601 ) //--> Chamada ao Resource Browse. oBrw:nMarqueeStyle := MARQSTYLE_HIGHLROW //--> Estilo da barra de seleçao. oBrw:nFooterlines := 1 oBrw:lFooter := .T. oBrw:oFont := tFont oBrw:bClrSelFocus := {|| { CLR_BRANCO, CLR_GREEN } } oBrw:SetArray(oMov:aDados,.f.,1,{1,2,3,4,5,6}) oBrw:aCols[1]:cHeader := " " oBrw:aCols[1]:nDataStrAlign := AL_CENTER oBrw:aCols[1]:nHeadStrAlign := AL_CENTER oBrw:aCols[1]:AddResource("C_CHF") oBrw:aCols[1]:AddResource("C_CHT") oBrw:aCols[1]:bBmpData := { || IIF(!empty(oMov:aDados[oBrw]),2,1 ) } oBrw:aCols[1]:bStrData := { || '' } oBrw:aCols[2]:cHeader := "DATA" oBrw:aCols[2]:nDataStrAlign := AL_LEFT oBrw:aCols[2]:nHeadStrAlign := AL_LEFT oBrw:aCols[3]:cHeader := "SAIDA" oBrw:aCols[3]:nDataStrAlign := AL_LEFT oBrw:aCols[3]:nHeadStrAlign := AL_LEFT oBrw:aCols[4]:cHeader := "PLACA" oBrw:aCols[4]:nDataStrAlign := AL_LEFT oBrw:aCols[4]:nHeadStrAlign := AL_LEFT oBrw:aCols[5]:cHeader := "VALOR" oBrw:aCols[5]:nDataStrAlign := AL_RIGHT oBrw:aCols[5]:nHeadStrAlign := AL_RIGHT oBrw:aCols[5]:cEditPicture := {|| TRANSFORM(oMov:aDados[oBrw],"@E 999,999.99")} oBrw:aCols[6]:cHeader := "VALOR RECEBIDO" oBrw:aCols[6]:nDataStrAlign := AL_RIGHT oBrw:aCols[6]:nHeadStrAlign := AL_RIGHT //oBrw:aCols[6]:cEditPicture := {|| TRANSFORM(oMov:aDados[oBrw],"@E 999,999.99")} oBrw:aCols[6]:cEditPicture := "@KE 999,999.99" * Linhas para edição oBrw:aCols[6]:bEditvalue := { || oMov:aDados[oBrw] } oBrw:aCols[6]:nEditType := EDIT_GET oBrw:aCols[6]:cEditPicture := "@KE 999,999.99" oBrw:aCols[6]:bOnPostEdit := { | aCols, uValue, nKey | nKey=VK_RETURN, (AtualizaRec(oMov,oBrw,uValue) ) } oBrw:bLDblClick:={ || MarcaDesmarca(oMov,oBrw) } //-> Rodapé oBrw:aCols[5]:nFooterType := AGGR_SUM oBrw:aCols[5]:nFootStrAlign := AL_RIGHT //oBrw:MakeTotals(oBrw:aCols[5]) oBrw:aCols[6]:nFooterType := AGGR_SUM oBrw:aCols[6]:nFootStrAlign := AL_RIGHT //oBrw:MakeTotals(oBrw:aCols[6]) oBrw:MakeTotals() //-> Fundo do Browse //oBrw:SetBackGround( aGrad ) GbColuna(oBrw,{03,12,08,10,20,20 }) oBrw:nStretchCol := STRETCHCOL_LAST oBrw:SetBackGround( oBrush ) //-> Imagem de fundo no browse ou a linha acima oBrw:refresh() //-> 2 - COLOR NO SAY REDEFINE SAY oSay[1] VAR oCpo:empresa ID 201 OF oFld:aDialogs[1] ; COLOR CLR_BLUE,CLR_AZULXP FONT tFont REDEFINE SAY oSay[2] VAR oCpo:debito ID 202 OF oFld:aDialogs[1] ; COLOR CLR_BLUE,CLR_BROW FONT tFont REDEFINE SAY oSay[3] VAR oCpo:credito ID 203 OF oFld:aDialogs[1] ; COLOR CLR_BLUE,CLR_VERDE FONT tFont REDEFINE SAY oSay[4] VAR oCpo:debito ID 204 OF oFld:aDialogs[1] ; COLOR CLR_BLUE,CLR_BFOOT FONT tFont id=code>id=code>Geraldo B. Silva Fwh1111 Novembro/2011, xHarbour 2.0, Bcc582, Pelles, xDev, Sqllib e MySql. lucgera@terra.com.br São Paulo - SP
×
×
  • Create New...