betovsp Posted June 6, 2004 Report Share Posted June 6, 2004 Olá pessoal, mais uma vez solicitando um help dos experts em Fivewin. Tenho a função abaixo, que é chamada da seguinte forma: ... ACTION GravarC:=(Pagto(vcodp,vvtot,modo,vtit[modo]) Acontece que, entra na função, carrega as variáveis normalmente e corretamente, mas não consigo mostrá-las no GET e nem editá-las. Abaixo a função Pagto() Abraços. PROCEDURE Pagto(vcod,valor,modo,vtit) LOCAL oDlgCpg,GravaCpg:=.F.,vajuste:=0,ovenc[13],oparc[13] //LOCAL ovenc1:=ovenc2:=ovenc3:=ovenc4:=ovenc5:=ovenc6:=ovenc7:=ovenc8:=ovenc9:=ovenc10:=ovenc11:=ovenc12:=ovenc13:=CTOD("") //LOCAL oparc1:=oparc2:=oparc3:=oparc4:=oparc5:=oparc6:=oparc7:=oparc8:=oparc9:=oparc10:=oparc11:=oparc12:=oparc13:=0 LOCAL vp:={Cpg->p1,Cpg->p2,Cpg->p3,Cpg->p4,Cpg->p5,Cpg->p6,Cpg->p7,Cpg->p8,Cpg->p9,Cpg->p10,Cpg->p11,Cpg->p12} DEFINE DIALOG oDlgCpg FROM 1,15 TO 412,308 PIXEL FONT oFnt1 STYLE nOr(DS_MODALFRAME,WS_POPUP,WS_VISIBLE,WS_DLGFRAME) COLOR nRgb(0,0,0),nRgb(214,211,206) @ 0.3,1 GROUP oGroup1 TO 12.2,20 OF oDlgCpg LABEL "Vencimentos" dbSelectArea("Cpg") Cpg->(dbSeek(vcod),.T.) dbSelectArea("Cap") FOR cont:=1 TO Cpg->np ovenc[cont]:=vdtem+vp[cont] vvenc[cont]:=vdtem+vp[cont] vparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) oparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) vajuste+=vparc[cont] NEXT vajuste:=valor-vajuste ; vparc[1]+=vajuste ; oparc[1]+=vajuste IF modo#3 FOR cont:=1 TO Cpg->np @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg NEXT @ 175,18 SBUTTON oBtnCpg1 RESOURCE "OK1","OK2","OK1","OK2"; OF oDlgCpg PROMPT "C&onfirma" FONT oFnt1 ACTION (GravaCpg:=.T.,oDlgCpg:End()); SIZE 50,15 PIXELS TOOLTIP "Confirma a Inclusão dos Produtos Comercializados"; COLORS CLR_BLACK,{|oB| IF(oB:lMouseOver,{CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT @ 175,78 SBUTTON oBtnCpg2 RESOURCE "CANCEL1","CANCEL2","CANCEL3","CANCEL4"; OF oDlgCpg PROMPT "&Cancela" FONT oFnt1 ACTION (GravaCpg:=.F.,oDlgCpg:End()); SIZE 50,15 PIXELS TOOLTIP "Cancela a Operação e Retorna a Tela Anterior"; COLORS CLR_BLACK,{|oB| IF(oB:lMouseOver,{CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT CANCEL END ACTIVATE DIALOG oDlgCpg CENTERED ON PAINT (oMsg:=TMsgBar():New(oDlgCpg,"Vencimentos das Faturas "+vtit)) RETURN(GravaCpg) Beto betovsp@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
karinha Posted June 6, 2004 Report Share Posted June 6, 2004 // ACTION GravarC:=( Pagto( vcodp, vvtot, modo, vtit[modo] ) //???? // Cade a Funcao GravarC ????? // FUNCTION GravarC( vcod, valor, modo, vtit ) //Tem que ser igual // E Nao: FUNCTION GravarC( vcodp, vvtot, modo, vtit[modo] ) // Nao Combinou // Deveria ser assim... // ACTION Pagto( vcod, valor, modo, vtit ) // Acho que e isso. FUNCTION Pagto( vcod, valor, modo, vtit ) // Se for Clipper 5.3 = FUNCTION // Senao... // FUNCTION Pagto( vcodp, vvtot, modo, vtit[modo] ) // Combinou c/ a Chamada LOCAL oDlgCpg, GravaCpg := .F., vajuste := 0, ovenc[13], oparc[13] LOCAL vp:={Cpg->p1,Cpg->p2,Cpg->p3,Cpg->p4,Cpg->p5,Cpg->p6,Cpg->p7, ; Cpg->p8,Cpg->p9,Cpg->p10,Cpg->p11,Cpg->p12} DEFINE DIALOG oDlgCpg FROM 1,15 TO 412,308 PIXEL FONT oFnt1 ; STYLE nOr(DS_MODALFRAME,WS_POPUP,WS_VISIBLE,WS_DLGFRAME) ; COLOR nRgb( 0, 0, 0 ), nRgb( 214, 211, 206 ) @ 0.3,1 GROUP oGroup1 TO 12.2,20 OF oDlgCpg LABEL "Vencimentos" DbSelectArea( "Cpg" ) Cpg->( DbSeek( vcod ), .T. ) DbSelectArea( "Cap" ) FOR Cont := 1 TO Cpg->np ovenc[cont]:=vdtem+vp[cont] vvenc[cont]:=vdtem+vp[cont] vparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) oparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) vajuste+=vparc[cont] NEXT Cont vajuste:=valor-vajuste ; vparc[1]+=vajuste ; oparc[1]+=vajuste IF Modo # 3 FOR cont := 1 TO Cpg->np @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] ; PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg NEXT // @Say com Recursos ???? Ficou Legal ??? Funciona??? @ 175,18 SBUTTON oBtnCpg1 RESOURCE "OK1","OK2","OK1","OK2"; OF oDlgCpg PROMPT "C&onfirma" FONT oFnt1 ; ACTION ( GravaCpg := .T., oDlgCpg:End() ); SIZE 50,15 PIXELS ; TOOLTIP "Confirma a Inclusão dos Produtos Comercializados"; COLORS CLR_BLACK,{|oB| IF(oB:lMouseOver, ; {CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT @ 175,78 SBUTTON oBtnCpg2 RESOURCE "CANCEL1","CANCEL2","CANCEL3","CANCEL4"; OF oDlgCpg PROMPT "&Cancela" FONT oFnt1 ACTION (GravaCpg:=.F.,oDlgCpg:End()); SIZE 50,15 PIXELS ; TOOLTIP "Cancela a Operação e Retorna a Tela Anterior"; COLORS CLR_BLACK, ; {|oB| IF(oB:lMouseOver, ; {CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT CANCEL ENDIF ACTIVATE DIALOG oDlgCpg CENTERED ; ON PAINT ( oMsg := TMsgBar():New( oDlgCpg, ; "Vencimentos das Faturas " + vtit ) ) RETURN( GravaCpg ) // Cheque isso, RETURN( .T. ) OU NIL João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 6, 2004 Author Report Share Posted June 6, 2004 E aà João, blz. Fiz algumas modificações, por exemplo, a chamada, tirei a variavel GravarC, coloquei direto Pagto(vcodp,vvtot), não havendo necessidade do modo nem do vtit. Em relação ao @SAY com recursos, funciona, meu sistema é todo assim. Acontece que, como expliquei, faz todo o processo normalmente, carrega as variáveis, efetua os cálculos. Na hora que chega aqui: FOR cont:=1 TO Cpg->np @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg NEXT ele foca normalmente o GET, mas não mostra o conteúdo correto das variáveis. EX: função entra com vcodp + valor, vcodp é exatamente um código de uma condição de pagto, e o valor é o valor total da fatura. Ele calcula quantas parcelas tem a condição de pagamento, se for 3, ele calcula os vencimentos de acordo com as variáveis vp1,vp2,vp3 conforme a variável LOCAL VP, efetuando a divisão e o acerto/arredondamento. esse processo, calcula corretamente, mas, quando entra no GET, o cursor está no lugar certo, mas não tem nada, está em branco. Não sei se consegui explicar pra vc João. Abraços. Beto betovsp@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
eajunior Posted June 7, 2004 Report Share Posted June 7, 2004 Ola Beto, experimente colocar este bloco fora do DEFINE/ACTIVATE DIALOG Cpg->(dbSeek(vcod),.T.) dbSelectArea("Cap") FOR cont:=1 TO Cpg->np ovenc[cont]:=vdtem+vp[cont] vvenc[cont]:=vdtem+vp[cont] vparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) oparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) vajuste+=vparc[cont] NEXT id=code>id=code>Quanto a utilização de FOR/NEXT dentro de uma DIALOG,creio que seja impossivel pois não temos um comando de espera (READ). Eu casos em que necessito utilizar esta estrutura eu crio um função na qual me mostra o proximo registro apos confirmação do último campo. Elias Abrão Júnior Fone : (0**19) 3885-3447 São Paulo - SP eajunior.fw@terra.com.br Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 E dentro de um WHILE... ENDDO...??? O ke ocorre? João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 7, 2004 Author Report Share Posted June 7, 2004 Bom dia Elias, Realmente o problema é no FOR do GET, como assima, mas ainda não consegui resolver, tentei como vc disse, mas ele dá um erro de Fivewin. Abraços. Beto betovsp@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 Tente colocar o SysRefresh() dentro do LOOP. João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 7, 2004 Author Report Share Posted June 7, 2004 Grande João, quase. com o refresh(), já consigo ver o conteúdo dos gets, mas não consigo editar, pois fica em branco. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 USE O XSETFOCUS() BY VAGNER WIRTS... SYSREFRESH() João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
siscat Posted June 7, 2004 Report Share Posted June 7, 2004 Beto, boa tarde deixa ver se entendi... voce quer que a funcao Pagto(...) retorne um valor para a variavel GravaC ???? certo!!! se for isto voce nao pode declarar Pagto() como PROCEDURE, e sim como FUNCTION ... PROCEDURE Pagto(vcod,valor,modo,vtit) ... RETURN(GravaCpg) // isso aqui nao funciona, porque PROCEDUREs nao retornam nada!!! troque para FUNCTION Pagto(vcod,valor,modo,vtit) ... RETURN(GravaCpg) // isso aqui funciona, vai retornar a variavel GravaCpg... abracos... Marllon Figueiredo Analista de Sistemas ERP/CRM Porto Alegre - RS marllonfigueiredo@hotmail.com Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 Grande Marllon... Folgo em Vê-lo. Verifique os READONLY nos GETs, troque por WHEN( .F. ) e report-nos, Incopore o xSetFocus() esta em DICAS mais dicas, ou fale com o Vagner. João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 7, 2004 Author Report Share Posted June 7, 2004 Olá Marllon, estou postando novamente a função, modificada, o meu problema é no FOR onde capto as informações em um GET, não consigo entrar com dados, apresenta em branco, se eu tiro o for e coloco IF, trabalho normalmente, só que aumenta em 300 linhas o programa, pois com esta função, esta calculando o vencimento e valores da faturas/duplicatas, trabalhando em até 12 pagamentos, então ele retorna somente se é verdadeiro ou falso, nada mais. A chamada mudou para Pagto(vcodp,valor), mais nada. FUNCTION Pagto(vcod,valor,tipo) // tipo para contas a pagar(CAP) ou contas a receber (CAR) LOCAL oDlgCpg,GravaCpg:=.F.,vajuste:=0,ovenc[13],oparc[13] LOCAL vp:={Cpg->p1,Cpg->p2,Cpg->p3,Cpg->p4,Cpg->p5,Cpg->p6,Cpg->p7,Cpg->p8,Cpg->p9,Cpg->p10,Cpg->p11,Cpg->p12} DEFINE DIALOG oDlgCpg FROM 1,15 TO 412,308 PIXEL FONT oFnt1 STYLE nOr(DS_MODALFRAME,WS_POPUP,WS_VISIBLE,WS_DLGFRAME) COLOR nRgb(0,0,0),nRgb(214,211,206) @ 0.3,1 GROUP oGroup1 TO 12.2,20 OF oDlgCpg LABEL "Vencimentos" dbSelectArea("Cpg") Cpg->(dbSeek(vcod),.T.) IF(tipo==1,dbSelectArea("Cap"),dbSelectArea("Car")) FOR cont:=1 TO Cpg->np ovenc[cont]:=vdtem+vp[cont] vvenc[cont]:=vdtem+vp[cont] vparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) oparc[cont]:=VAL(STR(valor/Cpg->np,10,2)) vajuste+=vparc[cont] NEXT vajuste:=valor-vajuste ; vparc[1]+=vajuste ; oparc[1]+=vajuste FOR cont:=1 TO Cpg->np // Se eu tirar este for e usar como no final da função, funciona........ @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg ovenc[cont]:Refresh() ; oparc[cont]:Refresh() NEXT @ 175,18 SBUTTON oBtnCpg1 RESOURCE "OK1","OK2","OK1","OK2"; OF oDlgCpg PROMPT "C&onfirma" FONT oFnt1 ACTION (GravaCpg:=.T.,oDlgCpg:End()); SIZE 50,15 PIXELS TOOLTIP "Confirma as Datas"; COLORS CLR_BLACK,{|oB| IF(oB:lMouseOver,{CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT @ 175,78 SBUTTON oBtnCpg2 RESOURCE "CANCEL1","CANCEL2","CANCEL3","CANCEL4"; OF oDlgCpg PROMPT "&Cancela" FONT oFnt1 ACTION (GravaCpg:=.F.,oDlgCpg:End()); SIZE 50,15 PIXELS TOOLTIP "Cancela a Operação e Retorna a Tela Anterior"; COLORS CLR_BLACK,{|oB| IF(oB:lMouseOver,{CLR_WHITE,CLR_CYAN},{CLR_CYAN,CLR_WHITE})}; TEXT POSITION ON_RIGHT CANCEL ACTIVATE DIALOG oDlgCpg CENTERED ON PAINT (oMsg:=TMsgBar():New(oDlgCpg,"Vencimentos ")) RETURN(GravaCpg) IF Cpg->np==1 // numero de parcelas == 1 @ 1,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ 1,3 GET ovenc[1] VAR vvenc[1] SIZE 35,11 OF oDlgCpg @ 1,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ 1,11.5 GET oparc[1] VAR vparc[1] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg ELSEIF Cpg->np==2 // numero de parcelas == 2 e assim por diante. @ 1,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ 1,3 GET ovenc[1] VAR vvenc[1] SIZE 35,11 OF oDlgCpg @ 1,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ 1,11.5 GET oparc[1] VAR vparc[1] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg @ 2,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ 2,3 GET ovenc[2] VAR vvenc[2] SIZE 35,11 OF oDlgCpg @ 2,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ 2,11.5 GET oparc[2] VAR vparc[2] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg END Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 7, 2004 Author Report Share Posted June 7, 2004 Boa Tarde João, Coloquei a função xsetfocus() e ainda sim não funciona. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
karinha Posted June 7, 2004 Report Share Posted June 7, 2004 Adalberto... READ = LEITURA - ONLY = SOMENTE. Em Português: SOMENTE LEITURA! o Comando READONLY = Somente Leitura, não edita, só mostra o Contúdo do GET, mas você não poderá EDITAR/MODIFICAR... Se é isso que eu entendi! Corrija-me Vagner se eu estiver errado! Retire o Comando READONLY que Editará... Espero ke seja isso! Agora, se o GET não estiver dando 'FOCO', veja com o Vagner, qual é a Sintaxe, usando o xSetFocus(), pois como não uso @Say, eu não Say a Sintaxe correta. Por que você não usa o WORKSHOP.EXE the best? Isto nunca teria acontecido se fosse com RECURSOS! Vem de lá Vagner! hehehehehe. Abraços. Não esqueça de observar a DICA do nosso amigo Marllon Figueiredo. Ele tem razão! João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 7, 2004 Author Report Share Posted June 7, 2004 João. Vc recebeu o código do programa. Eu sei que READONLY significa somente leitura, acontece que o problema não esta aÃ. Como disse o problema é no FOR dentro da Função Pagto. Se tirar a função Pagto, o programa funciona que é uma beleza. Se eu tirar o FOR, e colocar IFS, como citei no exemplo acima, funciona maravilhosamente bem. Só que acrescenta-se 300 linhas de programação, e acho que não é assim que funciona a coisa. Em relação ao WORKSHOP, comecei usando sim, mas tive alguns problemas e não gostei, agora continuo no @SAY... que faz a mesma coisa, ou não sei não se é melhor.... Só que sou novo no pedaço, tenho muito que aprender e estou fazendo com vcs do Forum, que realmente são OS MELHORES. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
karinha Posted June 8, 2004 Report Share Posted June 8, 2004 /* FOR cont:=1 TO Cpg->np SysRefresh() @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] PICTURE "@E 999,999.99" ; SIZE 40,11 OF oDlgCpg oVenc[Cont]:Refresh() oVenc[Cont]:SetFocus() oParC[Cont]:Refresh() oParC[Cont]:SetFocus() NEXT // Se Nao Funcionar, Tente Criar um DO CASE... ENDCASE. João Santos São Paulo-Brasil (11) 3106-2832 a Noite karinhannah@ubbi.com.br Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 8, 2004 Author Report Share Posted June 8, 2004 Bom dia João. Realmente não quer funcionar. Vou seguir a sua sugestão, mesmo acrescentando varias linhas a mais de programação. Mais uma coisa, no BROWSE, como coloco uma condição pra ele trabalhar, exemplo, somente com data x. Agradeço muito a ajuda. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
mou321 Posted June 8, 2004 Report Share Posted June 8, 2004 Caro Amigo Beto. Nao tenho Certeza mais acho que o problema é esse: Quando Trabalhavamos com o Clipper o clipper passava para o abjeto get o endereco da variavel criada seja ela vetor ou qualquer outro tipo. Com o Fivewin Baseado no Windows Isso mudou a referencia para os objetos e feita atraves do nome da variavel entao ele sempre ira pegar o valor da variavel no momento do get. Apesar de vc colocar a parte do programa abaixo , o fivewin somente pegara os valores dos gets abaixos , quando voce ativalos , e lá provalvelmente o valor da Variavel "cont" sera sempre o ultimo. Dica: Use Macros. FOR cont:=1 TO Cpg->np @ cont,1.5 SAY "Dt.:" SIZE 10,11 OF oDlgCpg @ cont,3 GET ovenc[cont] VAR vvenc[cont] SIZE 35,11 OF oDlgCpg @ cont,10 SAY "Vr.:" SIZE 10,11 OF oDlgCpg @ cont,11.5 GET oparc[cont] VAR vparc[cont] PICTURE "@E 999,999.99" SIZE 40,11 OF oDlgCpg Mauricio (RJ) Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 8, 2004 Author Report Share Posted June 8, 2004 Olá Mauricio. Estou fazendo desta forma e dá erro de compilação:Não sei LOCAL ovenc1:=ovenc2:=ovenc3:=ovenc4:=ovenc5:=ovenc6:=ovenc7:=ovenc8:=ovenc9:=ovenc10:=ovenc11:=ovenc12:=CTOD("") LOCAL oparc1:=oparc2:=oparc3:=oparc4:=oparc5:=oparc6:=oparc7:=oparc8:=oparc9:=oparc10:=oparc11:=oparc12:=0 LOCAL a:={"1","2","3","4","5","6","7","8","9","10","11","12"} .. .. .. FOR cont:=1 TO Cpg->np ovenc&a[cont]:=vdtem+vp[cont] vvenc&a[cont]:=vdtem+vp[cont] vparc&a[cont]:=VAL(STR(valor/Cpg->np,10,2)) oparc&a[cont]:=VAL(STR(valor/Cpg->np,10,2)) vajuste+=vparc&a[cont] NEXT C2081 Macro of declared symbol : 1'ovenc&a'....etc Já tentei de outras formas, mas tá dificil.. estou apanhando pra caramba das macros. (risos) Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
mou321 Posted June 8, 2004 Report Share Posted June 8, 2004 Tente Assim FOR cont:=1 TO Cpg->np M_OBJPARC = "OBJPARC"+STRZERO(CONT,2) M_OBJVENC = "OBJVENC"+STRZERO(CONT,2) M_VARPARC = "VARPARC"+STRZERO(CONT,2) M_VARVENC = "VARVENC"+STRZERO(CONT,2) &M_OBJVENC = vdtem+vp[cont] &M_VARVENC = vdtem+vp[cont] &M_VARPARC = VAL(STR(valor/Cpg->np,10,2)) &M_OBJPARC =VAL(STR(valor/Cpg->np,10,2)) vajuste+=&M_VARPARC NEXT Nao Precisa mais usar a matriz , faça tb no Get Mauricio (RJ) Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 8, 2004 Author Report Share Posted June 8, 2004 Capitulo Encerrado. Grande Mauricio. Desta forma, funcionou perfeitamente. Agradeço por d + a ajuda de todos. Aproveitando, como coloco uma condição dentro do Browse. Estou usando assim: DEFINE DIALOG oDlgLc FROM 1,15 TO 336,655 PIXEL STYLE nOr(DS_MODALFRAME,WS_POPUP,WS_VISIBLE,WS_DLGFRAME) COLOR nRgb(0,0,0),nRgb(0,130,132) @ 5,5 BROWSE oBrw SIZE 260,146 PIXEL ALIAS Cx2 OF oDlgLc WHEN Cx2->data==mdata UPDATE ON DBLCLICK Edita(oBrw,.F.,3,mdata) COLOR nRgb(0,0,0),nRgb(235,225,205) ADD COLUMN TO oBrw HEADER CRLF+"Data"+CRLF DATA FieldWBlock("data",Select()) 3DLOOK FALSE SIZE 130 PIXEL Gostaria que trabalhasse somente com data x e não todo o Banco de Dados. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
mou321 Posted June 8, 2004 Report Share Posted June 8, 2004 Faco como o DBEDIT Filtra o arquivo. Mauricio (RJ) Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 8, 2004 Author Report Share Posted June 8, 2004 Deu Certo Mauricio, obrigado mais uma vez. Abraços. Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
mou321 Posted June 8, 2004 Report Share Posted June 8, 2004 Apesar que Meu amigo beto , eu nao faria desta forma porque chegara a hora que vai ficar muito lento. Eu Usaria um Arquivo temporario criado no proprio terminal Ok, Mauricio (RJ) Quote Link to comment Share on other sites More sharing options...
betovsp Posted June 8, 2004 Author Report Share Posted June 8, 2004 É verdade Mauricio, nas minhas outras aplicações, eu não uso o SET FILTER, pois sei que conforme o tamanho, vai ficando lento. Eu uso o TSBrowse.ch, e eu estava olhando-o, tem uma clausa when, só que não consegui colocá-lo, vc sabe alguma coisa a respeito, onde coloco na minha linha de programação, ou como se coloca/trabalha?? Abraços Beto betovsp@hotmail.com (16)9148-1515 Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.