Good morning and good Sunday
I cannot close an archive (ProvPres.dbf) .
For other archives I use :
oInError := InError{,false}
.......
oInError:Close()
end of the procedure
oIrror := InError{,false}
oInError:Zap()
oInError:Close()
The Archive that I can't close feeds a subdatawindow contained in a datadialog and all the data that the user has to check arrives. If
everything is correct it proceeds and then : oProvPres{}:Close()
......... .ProvPres := oProvPres{,false}
oProvPres:Zap()
oProvPres:Close()
self:Destroy()
I restart the activity assuming that the ProvPres.dbf archive has
been reset. I notice that this procedure does not work, the archive
remains open with the data of the previous operation. I ask for help.
Thanks
Aurora Baccio
Buon giorno Aurora,
AFAIK you need to open a DBF in exclusive mode do execute the Zap()
method.
I suspect that there is another instance open that does not permit to execute thzap operation.
You should make sure that the SubDataWindow is closed and cleaned up.
More than using a :Destroy() call on it I would null it out and issue a CollectForced() call.
Wolfgang
aurora baccio wrote:
Good morning and good Sunday
I cannot close an archive (ProvPres.dbf) .
For other archives I use :
oInError := InError{,false}
.......
oInError:Close()
end of the procedure
oIrror := InError{,false}
oInError:Zap()
oInError:Close()
The Archive that I can't close feeds a subdatawindow contained in a datadialog and all the data that the user has to check arrives. If everything is correct it proceeds and then : oProvPres{}:Close()
......... .ProvPres := oProvPres{,false}
oProvPres:Zap()
oProvPres:Close()
self:Destroy()--
I restart the activity assuming that the ProvPres.dbf archive has
been reset. I notice that this procedure does not work, the archive remains open with the data of the previous operation. I ask for help. Thanks
Aurora Baccio
Il giorno martedì 15 giugno 2021 alle 06:54:27 UTC+2 Wolfgang Riedmann ha scritto:
Buon giorno Aurora,
AFAIK you need to open a DBF in exclusive mode do execute the Zap()
method.
I suspect that there is another instance open that does not permit to
execute thzap operation.
You should make sure that the SubDataWindow is closed and cleaned up.
More than using a :Destroy() call on it I would null it out and issue a
CollectForced() call.
Wolfgang
aurora baccio wrote:
Good morning and good Sunday--
I cannot close an archive (ProvPres.dbf) .
For other archives I use :
oInError := InError{,false}
.......
oInError:Close()
end of the procedure
oIrror := InError{,false}
oInError:Zap()
oInError:Close()
The Archive that I can't close feeds a subdatawindow contained in a
datadialog and all the data that the user has to check arrives. If
everything is correct it proceeds and then : oProvPres{}:Close()
......... .ProvPres := oProvPres{,false}
oProvPres:Zap()
oProvPres:Close()
self:Destroy()
I restart the activity assuming that the ProvPres.dbf archive has
been reset. I notice that this procedure does not work, the archive
remains open with the data of the previous operation. I ask for help.
Thanks
Aurora Baccio
Good evening Mr. Riedman and welcome back.
I am reasonably sure that the sub date is closed.
At the end of the procedure I close with oProvPres:Close() the archive in question.
After several attempts I inserted a close databases
I didn't understand why, since all the archives had to be closed but since then the archive zap works.
To be sure of what I do:
oProvPres := ProvPres{,false}
oProvPres:Zap()
oProvPres:Close()
from here on starts the whole procedure of building the recipe delivery. When the recipe is registered and archived
I close the datadialog
self:Destroy()
I close the archive.
oProvPres:Close()
close databases
CollectForced()
From what I understand you suggest not to use destroy().
How do I use collectForced ?
Exactly I read that collectforced() skips the garbage collection but honestly I still don't understand why it didn't work before and now it does.
I know one of the rules of computer science is to never ask why, but I remain curious.
thanks
Aurora Baccio
Translated with www.DeepL.com/Translator (free version)
Il giorno martedì 15 giugno 2021 alle 06:54:27 UTC+2 Wolfgang
Riedmann ha scritto:
Buon giorno Aurora,
AFAIK you need to open a DBF in exclusive mode do execute the Zap()
method.
I suspect that there is another instance open that does not permit
to execute thzap operation.
You should make sure that the SubDataWindow is closed and cleaned
up. More than using a :Destroy() call on it I would null it out
and issue a CollectForced() call.
Wolfgang
aurora baccio wrote:
Good morning and good Sunday
I cannot close an archive (ProvPres.dbf) .
For other archives I use :
oInError := InError{,false}
.......
oInError:Close()
end of the procedure
oIrror := InError{,false}
oInError:Zap()
oInError:Close()
The Archive that I can't close feeds a subdatawindow contained in
a datadialog and all the data that the user has to check arrives.
If everything is correct it proceeds and then :
oProvPres{}:Close() ......... .ProvPres := oProvPres{,false} oProvPres:Zap()
oProvPres:Close()
self:Destroy()--
I restart the activity assuming that the ProvPres.dbf archive has
been reset. I notice that this procedure does not work, the
archive remains open with the data of the previous operation. I
ask for help. Thanks
Aurora Baccio
Good evening Mr. Riedman and welcome back.
I am reasonably sure that the sub date is closed.
At the end of the procedure I close with oProvPres:Close() the
archive in question. After several attempts I inserted a close
databases I didn't understand why, since all the archives had to be
closed but since then the archive zap works. To be sure of what I do: oProvPres := ProvPres{,false}
oProvPres:Zap()
oProvPres:Close()
from here on starts the whole procedure of building the recipe
delivery. When the recipe is registered and archived
I close the datadialog
self:Destroy()
I close the archive.
oProvPres:Close()
close databases
CollectForced()
From what I understand you suggest not to use destroy().
How do I use collectForced ?
Exactly I read that collectforced() skips the garbage collection but
honestly I still don't understand why it didn't work before and now
it does. I know one of the rules of computer science is to never ask
why, but I remain curious. thanks Aurora Baccio
Translated with www.DeepL.com/Translator (free version)
good afternoon.
I have a question to ask, due to lack of documentation on VO.
method VaBene() class DemPagante_Maschera
oNotice := NoticeReceipt_Mask{self:Owner,aParam}
FabCenterWindow(oNotice)
oNotice:Show()
In this particular case I alert the user that a receipt is about to be printed, indicating the patient's name and the amount.
And it starts via the classic 'Okay" button. At the end there is the line self:Dialog()
which takes me back to the Vabene method of the DemPagante_Maschera Class
Is it correct to write in this method
oNotice:Close() ?
I hope I managed to explain myself.
Thanks
Translated with www.DeepL.com/Translator (free version)
I have a question to ask, due to lack of documentation on VO.
method VaBene() class DemPagante_Maschera
oNotice := NoticeReceipt_Mask{self:Owner,aParam}
FabCenterWindow(oNotice)
oNotice:Show()
In this particular case I alert the user that a receipt is about to
be printed, indicating the patient's name and the amount. And it
starts via the classic 'Okay" button. At the end there is the line self:Dialog() which takes me back to the Vabene method of the DemPagante_Maschera Class Is it correct to write in this method oNotice:Close() ?
I hope I managed to explain myself.
Thanks
Translated with www.DeepL.com/Translator (free version)
Hi Aurora,
Ik think that the user will close the NoticeReceipt_Mask by clicking the
OK button and that the NoticeReceipt_Mask is app modal. In that case the window is closed by the user and the code will procees after the oNotice:Show() line with the next thing to do.
In this case oNotice:Close() after the Show() line will cause problems because it tries to close a window that is already closed by the user.
If the NoticeReceipt_Mask window is not app modal it will be on the
users screen after the show but your VaBene() method will proceed and
the NoticeReceipt_Mask window might not be closed at all if you do not
call oNotice:Close() that window
So it depends on you. Make the window app modal so the user must press
OK to start the print. Or make it just a progress window which cannot me closed by the user and has Show() and Close() in tha VaBene() method.
Status updates on the progress in VaBene() could be shown if NoticeReceipt_Mask has a ShowProgress() mathod that shows the progress
info on it's window
Is this of any help ?
John
Op 26-11-2021 om 16:38 schreef aurora baccio:
good afternoon.
I have a question to ask, due to lack of documentation on VO.
method VaBene() class DemPagante_Maschera
oNotice := NoticeReceipt_Mask{self:Owner,aParam}
FabCenterWindow(oNotice)
oNotice:Show()
In this particular case I alert the user that a receipt is about to be printed, indicating the patient's name and the amount.
And it starts via the classic 'Okay" button. At the end there is the line self:Dialog()
which takes me back to the Vabene method of the DemPagante_Maschera Class Is it correct to write in this method
oNotice:Close() ?
I hope I managed to explain myself.
Thanks
Translated with www.DeepL.com/Translator (free version)
Hi Aurora,
I have a question to ask, due to lack of documentation on VO.I'm really sorry, but your question has nothing to do with lack of documentation in VO.
If you would close a datawindow, use the method EndWindow(), and if
your window is a dialogwindow, you have to use the method EndDialog().
So you have to write
self:EndDialog( IDOK )
if DemPagante_Maschera is a DialogWindow, or
self:EndWindow()
if DemPagante_Maschera is a DataWindow.
Wolfgang
method VaBene() class DemPagante_Maschera
oNotice := NoticeReceipt_Mask{self:Owner,aParam}
FabCenterWindow(oNotice)
oNotice:Show()
In this particular case I alert the user that a receipt is about to
be printed, indicating the patient's name and the amount. And it
starts via the classic 'Okay" button. At the end there is the line self:Dialog() which takes me back to the Vabene method of the DemPagante_Maschera Class Is it correct to write in this method oNotice:Close() ?
I hope I managed to explain myself.
Thanks
Translated with www.DeepL.com/Translator (free version)--
what does self:enddialog( IDOK) mean?
The question refers to the word IDOK.
Does it mean the name assigned to the window ?
Il giorno venerdì 26 novembre 2021 alle 16:56:18 UTC+1 JohnMartens ha scritto:
Hi Aurora,Thank you for your response, which is extremely important to me.
Ik think that the user will close the NoticeReceipt_Mask by clicking the
OK button and that the NoticeReceipt_Mask is app modal. In that case the
window is closed by the user and the code will procees after the
oNotice:Show() line with the next thing to do.
In this case oNotice:Close() after the Show() line will cause problems
because it tries to close a window that is already closed by the user.
If the NoticeReceipt_Mask window is not app modal it will be on the
users screen after the show but your VaBene() method will proceed and
the NoticeReceipt_Mask window might not be closed at all if you do not
call oNotice:Close() that window
So it depends on you. Make the window app modal so the user must press
OK to start the print. Or make it just a progress window which cannot me
closed by the user and has Show() and Close() in tha VaBene() method.
Status updates on the progress in VaBene() could be shown if
NoticeReceipt_Mask has a ShowProgress() mathod that shows the progress
info on it's window
Is this of any help ?
John
Op 26-11-2021 om 16:38 schreef aurora baccio:
good afternoon.
I have a question to ask, due to lack of documentation on VO.
method VaBene() class DemPagante_Maschera
oNotice := NoticeReceipt_Mask{self:Owner,aParam}
FabCenterWindow(oNotice)
oNotice:Show()
In this particular case I alert the user that a receipt is about to be printed, indicating the patient's name and the amount.
And it starts via the classic 'Okay" button. At the end there is the line >>> self:Dialog()
which takes me back to the Vabene method of the DemPagante_Maschera Class >>> Is it correct to write in this method
oNotice:Close() ?
I hope I managed to explain myself.
Thanks
Translated with www.DeepL.com/Translator (free version)
Basically you suggest me to insert in the postinit method of the window self:SetModal(True).
In this case the closing of the window happens from the method 'VaBene' that closes with the classic 'EndDialog'.
The window doesn't remain open and doesn't cause problems.
Otherwise in the line following the Show() I must insert the closing command. Correct?
Thanks
Aurora Baccio
good evening,
I don't know where I am wrong, can you help me?
Error message:
--------------
Error Code: 20 [ CREATE ERROR ]
Subsystem: BASE
Error Subcode: 2012
Function: COPYFILE
Filename: E:\ArCuore\Kardia\DQLFNC56B28C351E\K15.p
CallStack:
IMMAGINIESAMI_MASCHERA:VABENE (Line:58)
ELENCOPAZIENTIPOLIS_MASCHERA:IMGESAMI (Line:37) RICHIESTACODICEFISCALE_MASCHERA:POLIS (Line:7)
MAINWINDOW:LANCIA (Line:9)
APP:START (Line:534)
Error Object created:
--------------------
SubSystem :BASE
SubCode :2012
GenCode :Create error
OsCode :3
ArgType :NIL
FuncPtr :0x00000000
ArgNum :0
FuncSym :COPYFILE
Severity :0
CanDefault :.T.
CanRetry :.T.
CanSubstitute :.F.
Operation :
Description :
FileName :E:\ArCuore\Kardia\DQLFNC56B28C351E\K15.pdf
Tries :1
FileHandle :0
SubCodeText :
Arg :
ArgTypeReq :NIL
MaxSize :0
SubstituteType :NIL
CallFuncSym :
--------------------
this is the error line
where cesame is where the full path file is located (c:\dir\name)
FCopy(cEsame,Drive+":\ArCuore\Kardia\"+self:cCodiceFiscaleDelPaziente+"\K"+FabAllTrim(self:cCodiceEsame)+".pdf")
thank you for your help
Aurora Baccio
good evening,
I don't know where I am wrong, can you help me?
Error message:
--------------
Error Code: 20 [ CREATE ERROR ]
Subsystem: BASE
Error Subcode: 2012
Function: COPYFILE
Filename: E:\ArCuore\Kardia\DQLFNC56B28C351E\K15.p
CallStack:
IMMAGINIESAMI_MASCHERA:VABENE (Line:58) ELENCOPAZIENTIPOLIS_MASCHERA:IMGESAMI (Line:37) RICHIESTACODICEFISCALE_MASCHERA:POLIS (Line:7)
MAINWINDOW:LANCIA (Line:9)
APP:START (Line:534)
Good morning,
I have a need to print digitally signed .pdf files.
I don't know how to do it.
Shellexecute (virtual printer put default), blocks the process leaving adobe open or pdf24-
Thanks
Aurora baccio
good morning
two questions that i know stupid but i don't know how to solve.
number one: how to raise in vo a number to power ? i.e. 83 to the -179 how to do it ?
number two: notify() method.
i have to create the dispatch method to make the single line edit
understand that it has to display the value of a calculation,
basically I have a data windows that contains the list of suppliers
and a single line edit named supplier balance. I want the calculation
the supplier balance via notify() but for that I need to broadcast to
notify the supplier code.
Buon giorno Aurora,
i have to create the dispatch method to make the single line edit understand that it has to display the value of a calculation,it may be a bit hard to explain.
basically I have a data windows that contains the list of suppliers
and a single line edit named supplier balance. I want the calculation
the supplier balance via notify() but for that I need to broadcast to notify the supplier code.
The result of your calculation should be put into a variable of your DBServer class, maybe like this:
class MySupplier
protect nBalance as float
access Balance class MySupplier
return nBalance
method CalcBalance() class MySupplier
nBalance := 2 * 4
Super:Notify( NOTIFYFIELDCHANGE, #Balance )
return nil
And in your window you have a code like this:
method Notify( kNotifyName, uDescription ) class SupplierWindow
do case
case kNotifyName == NOTIFYRECORDCHANGE
oDCBalance:Value := self:Server:Balance
case kNotifyName == NOTIFYFIELDCHANGE .and. uDescription == #Balance oDCBalance:Value := self:Server:Balance
endcase
return super:Notify( kNotifyName, uDescription )
HTH
Wolfgang
--
Dear aurora baccio:
On Wednesday, July 19, 2023 at 9:18:07 AM UTC-7, aurora baccio wrote:
...
I pose a third one: in a singlelineedit() I would need to highlightThe brute-force way would be to stuff the necessary keystrokes in the keyboard buffer to position to that text, and highlight that text, just before you call the function.
part of the text (bold), is there a method to do this ?
David A. Smith
I pose a third one: in a singlelineedit() I would need to highlight
part of the text (bold), is there a method to do this ?
Il giorno giovedì 20 luglio 2023 alle 17:52:35 UTC+2 dlzc ha scritto:
Dear aurora baccio:
On Wednesday, July 19, 2023 at 9:18:07 AM UTC-7, aurora baccio wrote: ...
I pose a third one: in a singlelineedit() I would need to highlight
part of the text (bold), is there a method to do this ?
The brute-force way would be to stuff the necessary keystrokes
in the keyboard buffer to position to that text, and highlight that
text, just before you call the function.
good morning,
I am not good enough to understand what he writes.
can you give a practical example ?
However, I have solved the two problems. I pose a
third one: in a singlelineedit() I would need to highlight part of
the text (bold), is there a method to do this ?
good morning,
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put .
So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
in a data browse, which displays accounting items, I would like to
highlight in bold the single cell of the type :
good morning,
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put .
So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
good morning,
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put .
So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
El Sunday, August 20, 2023 a la(s) 3:28:39 AM UTC-3, aurora baccio escribió:
good morning,I don't use data browser but maybe this post (if you didn't find that) can help you (https://groups.google.com/g/comp.lang.clipper.visual-objects/c/H-lxT7J8whc/m/ezeUx5NzKJ8J).
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put . So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
Regards.
El Sunday, August 20, 2023 a la(s) 3:28:39 AM UTC-3, aurora baccio escribió:
good morning,I don't use data browser but maybe this post (if you didn't find that) can help you (https://groups.google.com/g/comp.lang.clipper.visual-objects/c/H-lxT7J8whc/m/ezeUx5NzKJ8J).
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put . So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
Regards.
Il giorno martedì 22 agosto 2023 alle 14:45:16 UTC+2 Sebastián BASSANO ha scritto:of the eight rows. Totals already in the archive.
El Sunday, August 20, 2023 a la(s) 3:28:39 AM UTC-3, aurora baccio escribió:I thank you for the suggestion.
good morning,I don't use data browser but maybe this post (if you didn't find that) can help you (https://groups.google.com/g/comp.lang.clipper.visual-objects/c/H-lxT7J8whc/m/ezeUx5NzKJ8J).
in a data browse, which displays accounting items, I would like to highlight in bold the single cell
of the type :
if oLEsenti:Row=99 (99 is the code that indicates the total display row) then display in bold.
The rows are 1,2,3 up to a maximum of 8
The row marked 99 is where in the individual fields the totals are put . So in the row marked with 99 in the total field the total field of rows 1,2,3,4,5,6,7,8 are added together
Basically it is like a spreadsheet in which the base is summed with the preceding cells.
I hope I have been clear.
Can this be done ?
If yes an example is appreciated.
thanks
Regards.
I thank Mr. Bassano for the link, but it refers to cell coloring. I intend to have the text contained in the cell in bold.
Do you recommend me to implement a listview.
I work with dbf archives.
I need to make a list with ten columns each obviously with a different header.
The listview is 'populated' by groups of records that make up a recipe. The rows are marked in the 'row' field with the numbers 1 to 8 (maximum), which means there can be only one row or at most eight rows. Plus row 99 which is populated by the totals
And so on until the end of the monthly archive.I use bBrowser instead o ListViews, i don't have examples.
Can you give me an example?
Thank you
Aurora Baccio
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 286 |
Nodes: | 16 (3 / 13) |
Uptime: | 91:47:59 |
Calls: | 6,498 |
Calls today: | 9 |
Files: | 12,100 |
Messages: | 5,277,846 |