BANCO DE DADOS
olá pessoal
ajudem-me nisto!:
quero que enquanto o id de uma tabela seja igual me imprima sempre e depois salte quando terminar.
exemplo
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
eu quero que enquanto o fctln tiver o campo fctid igual me imprima as linhas todas-----------
preciso de ajuda urgente
ajudem-me nisto!:
quero que enquanto o id de uma tabela seja igual me imprima sempre e depois salte quando terminar.
exemplo
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
eu quero que enquanto o fctln tiver o campo fctid igual me imprima as linhas todas-----------
preciso de ajuda urgente
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
Do While fct <> fctln
imprime
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
Loop
fctln = tabela 2. tem o campo fctid.
Do While fct <> fctln
imprime
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
Loop
Só Corrigindo a idei a do Luiz
Enquanto for IGUAL.
[txt-color=#0000f0]Do While[/txt-color] rs.fct [txt-color=#e80000]=[/txt-color] rs.fctln
[txt-color=#007100] [ô]Imprimir[/txt-color]
rs.movenext
[txt-color=#0000f0]loop[/txt-color]
Aconselho a montar uma view com todos os campos que você precisa, dessa forma fica tudo em uma única chamada do Recordset
Citação::
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
Do While fct <> fctln
imprime
fct = tabela 1. tem o campo fctid
fctln = tabela 2. tem o campo fctid.
Loop
Enquanto for IGUAL.
[txt-color=#0000f0]Do While[/txt-color] rs.fct [txt-color=#e80000]=[/txt-color] rs.fctln
[txt-color=#007100] [ô]Imprimir[/txt-color]
rs.movenext
[txt-color=#0000f0]loop[/txt-color]
Aconselho a montar uma view com todos os campos que você precisa, dessa forma fica tudo em uma única chamada do Recordset
obrigada caras...
mas nao resultou
mas nao resultou
caros amigos
vejam o .txt (um é o codigo e o outro o ficheiro que sai quando mando correr)
é o meu codigo o meu probema agora é colocar so o r2 a imprimir seguidamente sem ter que imprimir r1 e r2
vejam ai
vejam o .txt (um é o codigo e o outro o ficheiro que sai quando mando correr)
é o meu codigo o meu probema agora é colocar so o r2 a imprimir seguidamente sem ter que imprimir r1 e r2
vejam ai
o ficheiro .txt quando mando correr o programa e este
alguem me ajude
VELDRAME
ficou correto assim :
COLOQUEI O PRINT .....
AGORA O PROBLEMA é QUE FICOU JA TUDO SEGUIDO E NAO IMPRIME O RESTO
ficou correto assim :
Citação:DO WHILE BD .GETFIELDVALUE (RECDOCS, [Ô]FCT.FCTID[Ô]) = BD .GETFIELDVALUE (RECDOCS, [Ô]FCLN.FCTID[Ô])
COLOQUEI O PRINT .....
Citação:RECDOCS.MOVENEXT
LOOP
AGORA O PROBLEMA é QUE FICOU JA TUDO SEGUIDO E NAO IMPRIME O RESTO
Você reparou que esta passando o MOVENEXT 2x? (Destaque em [txt-color=#e80000]vermelho[/txt-color])
Deixe para passar somente no final, antes do [txt-color=#0000f0] LOOP[/txt-color]
O ITEM[txt-color=#e80000] ContNtCred = ContNtCred + 1[/txt-color], deixe no fim também antes do [txt-color=#0000f0]LOOP[/txt-color], afinal ele é um contador e só pode contar se processar, correto?
O ITEM [txt-color=#e80000] ContNtCred = 1[/txt-color] deve ficar realmente dentro do[txt-color=#0000f0] DO UNTIL[/txt-color]? porque assim ele já começa com o valor 1 e logo em seguida vira valor 2, é isso mesmo?
Estou tentando resolver gradativamente, entendendo seu código.
Quanto ao que coloquei foi só um exemplo de função, não era para ser usado necessariamente assim, é só para você ver e adaptar a sua necessidade:
Analisando o código que você passou, ele esta correto:
1) Entre no [txt-color=#0000f0]LOOP[/txt-color]
2) Move para o próximo registro (mas deve ser feito só no final antes do [txt-color=#0000f0]loop[/txt-color]
3) Quanto a saida do arquivo, como deveria ser o correto?
[txt-color=#0000f0] Do Until[/txt-color] recDocs.EOF
[txt-color=#007100][ô] recDocs.MoveNext[/txt-color]
ContNtCred = 1
ContNtCred = ContNtCred + 1
[txt-color=#e80000] recDocs.MoveNext[/txt-color]
[txt-color=#007100] [ô] R1[/txt-color]
Print #f, [Ô]R1[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) & [Ô]00[Ô] _
& Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredEntCd[Ô])), [Ô]000000[Ô]) & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]0010[Ô] _
& [Ô]EUR[Ô] & [Ô]0000[Ô] & [Ô]G-000000[Ô] & [Ô]00000000[Ô] & Space(106) & [Ô]N[Ô]
[txt-color=#007100] [ô] R2[/txt-color]
Print #f, [Ô]R2[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnCD[Ô])), [Ô]000000000000000[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô]00000000[Ô] & [Ô]00000000[Ô] & [Ô]00000000[Ô] & [Ô]UN[Ô] & [Ô]0001[Ô] _
& Format(BD.GetFieldValue(recDocs, [Ô]NtCredLnTxIva[Ô]), [Ô]00[Ô]) & [Ô]00[Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnQtd[Ô])), [Ô]00000000.000[Ô]), [Ô],[Ô], [Ô][Ô]) _
& [Ô] [Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredLnTxDesc[Ô]), [Ô]00[Ô]) & [Ô]00[Ô] & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]U[Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnVlrDef[Ô])), [Ô]00000000.000[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnDesc[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnVlr[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnValorCIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnValorCIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]N[Ô] & [Ô]N[Ô]
[txt-color=#007100] [ô]r3[/txt-color]
Print #f, [Ô]R3[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalDesc[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalSIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotal[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotal[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Space(76) & [Ô]N[Ô]
[txt-color=#e80000] recDocs.MoveNext[/txt-color]
[txt-color=#0000f0]Loop[/txt-color]
Deixe para passar somente no final, antes do [txt-color=#0000f0] LOOP[/txt-color]
O ITEM[txt-color=#e80000] ContNtCred = ContNtCred + 1[/txt-color], deixe no fim também antes do [txt-color=#0000f0]LOOP[/txt-color], afinal ele é um contador e só pode contar se processar, correto?
O ITEM [txt-color=#e80000] ContNtCred = 1[/txt-color] deve ficar realmente dentro do[txt-color=#0000f0] DO UNTIL[/txt-color]? porque assim ele já começa com o valor 1 e logo em seguida vira valor 2, é isso mesmo?
Estou tentando resolver gradativamente, entendendo seu código.
Quanto ao que coloquei foi só um exemplo de função, não era para ser usado necessariamente assim, é só para você ver e adaptar a sua necessidade:
Citação:Do While rs.fct = rs.fctln
[ô]Imprimir
rs.movenext
loop
Analisando o código que você passou, ele esta correto:
1) Entre no [txt-color=#0000f0]LOOP[/txt-color]
2) Move para o próximo registro (mas deve ser feito só no final antes do [txt-color=#0000f0]loop[/txt-color]
3) Quanto a saida do arquivo, como deveria ser o correto?
[txt-color=#0000f0] Do Until[/txt-color] recDocs.EOF
[txt-color=#007100][ô] recDocs.MoveNext[/txt-color]
ContNtCred = 1
ContNtCred = ContNtCred + 1
[txt-color=#e80000] recDocs.MoveNext[/txt-color]
[txt-color=#007100] [ô] R1[/txt-color]
Print #f, [Ô]R1[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) & [Ô]00[Ô] _
& Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredEntCd[Ô])), [Ô]000000[Ô]) & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]0010[Ô] _
& [Ô]EUR[Ô] & [Ô]0000[Ô] & [Ô]G-000000[Ô] & [Ô]00000000[Ô] & Space(106) & [Ô]N[Ô]
[txt-color=#007100] [ô] R2[/txt-color]
Print #f, [Ô]R2[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnCD[Ô])), [Ô]000000000000000[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô]00000000[Ô] & [Ô]00000000[Ô] & [Ô]00000000[Ô] & [Ô]UN[Ô] & [Ô]0001[Ô] _
& Format(BD.GetFieldValue(recDocs, [Ô]NtCredLnTxIva[Ô]), [Ô]00[Ô]) & [Ô]00[Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnQtd[Ô])), [Ô]00000000.000[Ô]), [Ô],[Ô], [Ô][Ô]) _
& [Ô] [Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredLnTxDesc[Ô]), [Ô]00[Ô]) & [Ô]00[Ô] & [Ô]0000[Ô] & [Ô]0000[Ô] & [Ô]U[Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnVlrDef[Ô])), [Ô]00000000.000[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnDesc[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnVlr[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnValorCIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredLnValorCIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]N[Ô] & [Ô]N[Ô]
[txt-color=#007100] [ô]r3[/txt-color]
Print #f, [Ô]R3[Ô] & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]yyyy[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]mm[Ô]) & Format(BD.GetFieldValue(recDocs, [Ô]NtCredData[Ô]), [Ô]dd[Ô]) _
& [Ô]0050[Ô] & [Ô]C-[Ô] & Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredNr[Ô])), [Ô]000000[Ô]) _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalDesc[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalSIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotal[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] _
& Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotalIva[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & [Ô]0000000000[Ô] & [Ô] [Ô] & Replace(Format(CStr(BD.GetFieldValue(recDocs, [Ô]NtCredTotal[Ô])), [Ô]00000000.00[Ô]), [Ô],[Ô], [Ô][Ô]) & [Ô] [Ô] & Space(76) & [Ô]N[Ô]
[txt-color=#e80000] recDocs.MoveNext[/txt-color]
[txt-color=#0000f0]Loop[/txt-color]
VELDRAME
ajude-me, tenho isto:
if fctln<>0 then
contalinha=0
while fctln.fctid=fctid
print
wend
end if
ajude-me a colocar esse while num for
ajude-me, tenho isto:
if fctln<>0 then
contalinha=0
while fctln.fctid=fctid
wend
end if
ajude-me a colocar esse while num for
if fctln<>0 then
contalinha=0
else
[txt-color=#0000f0]Do while[/txt-color] fctln.fctid=fctid
print
[txt-color=#007100] [ô]Passa para o próximo registro[/txt-color]
fctln.fctid.MoveNext
[txt-color=#0000f0]loop[/txt-color]
[txt-color=#0000f0]end if[/txt-color]
Que linguagem você esta Usando, VB6 ou VB.NET?[/txt-color][/txt-color]
contalinha=0
else
[txt-color=#0000f0]Do while[/txt-color] fctln.fctid=fctid
[txt-color=#007100] [ô]Passa para o próximo registro[/txt-color]
fctln.fctid.MoveNext
[txt-color=#0000f0]loop[/txt-color]
[txt-color=#0000f0]end if[/txt-color]
Que linguagem você esta Usando, VB6 ou VB.NET?[/txt-color][/txt-color]
Tópico encerrado , respostas não são mais permitidas