1

(13 replies, posted in General)

hichame wrote:

+1
there's no alternative to MVD.

exactly this

2

(13 replies, posted in General)

+1

3

(11 replies, posted in General)

Hello,

try this

var
   s: string;
begin
   s := 'Your message';
   Translate('This_Field_is_required', s);

list of items

Open_report_designer
Your_computer_does_not_have_Excel
Entry_to_edit_is_no_selected
Unable_to_determine_the_record_ID
Please_select_record_in_grid
Report_file_not_found
Entry_to_be_deleted_is_not_selected
Are_you_sure_you_want_to_delete_the_record
The_database_file_is_not_found
Not_a_number
Are_you_sure_you_want_to_delete_the_image_from_the_database
There_is_no_file_to_save
Do_you_really_want_to_delete_the_file_from_the_database
Restart_the_program_to_apply_the_settings
This_Field_is_required
Not_permitted_to_use_ComboBox_for_saving_record
Saving_or_opening_file_from_database
Select_file_stored_in_database
Export_image_from_database
Open_image_to_save_the_database
Delete_Image
Calculated_field
Counter_field
Open_file
Save_file
Delete_file
Open_folder_with_file
Clear
Open
Component
No_data_to_add
File_not_found
Confirm
Error
Info
Yes
No

4

(14 replies, posted in General)

Wood wrote:

you misunderstand.
It will automatically renew on 2022-10-29 to 2023-10-29.
And next year it will automatically renew on 2023-10-29 to 2024-10-29.

and so on...    like all the years before!

yes, but if you stop paying for it then it will expire on 29/10

5

(10 replies, posted in FAQ)

Thank you sibprogsistem, those are excellent resources to study & learn from, great work!!

6

(10 replies, posted in FAQ)

Thank you for sharing sibprogsistem! Actually also very curious to see what other applications you have developed.

7

(2 replies, posted in General)

hello v_pizidis, i think Derek's solution in this topic might be of help for you: http://myvisualdatabase.com/forum/viewtopic.php?id=5528

8

(8 replies, posted in General)

It would be unfortunate, there is no substitute for MVD

derek wrote:

Hi Joshua,
As I mentioned in my earlier post, another option that you could consider is to use a data-driven approach and hold a small table where you can specify which tabsheet you want to show on startup.
In the attachment, simply change the 'default' tabsheet setting on Form3, restart your application, and a different default now shows.
You can do similar things throughout your application (variable tool tips, variable captions etc etc).
Derek.

Very clever, as always! thx Derek


@Joshua


to fix a certain tab on startup maybe you can also try something like this with script on your main form onshow procedure:

procedure frmMain_OnShow (Sender: TObject; Action: string);

begin
    frmMain.PageControl1.ActivePageIndex := 0; // tab 1
end;

Hello Derek! Very nice to hear you again!


As always, thank you very very much for taking the time to make this elaborate example!! This is very helpful, it is almost exactly what i wanted to achieve! As you mentioned it is structured in a way which would have not been my first idea but i think it is really clever how it all fits together and the possibities the way of doing things like this creates. Thanks again for all your help!!!


PS: love the animation! big_smile

Hi friends,


It has been a while since i have been active here but i have been lurking the forum. I sincerely hope everyone is well.


I have been thinking about making a little mvdb utility program to help me organize my daily office work, because it would really help me bring a bit of structure, but i am having troubles understanding (or planning) what the best way would be to set up my tables. Basically i need to execute recurring tasks for different clients.


I was wondering if anyone could guide me in the right direction or give me pointers.


The situation:
As of now i am using a simple excel file at the office with a checklist for different clients. There are routine checks i need to do for different clients. Depending on the client, and the kind of checks, the timing intervals are as follows: yearly/quarterly/monthly. So these are the recurring tasks.


Basically i have a table in excel, the table titles are the checks that need to be done, the first column is the client's name, the rest of the columns in the row are the dates or yes/no booleans if the check has been done. At the end of the check interval, lets say it is the monthly checklist, i will copy the excel tab to a new tab manually and restart the different checks. It would be ok to do this manually in mvdb.


What i would like to achieve:
I have made a quick sketch in excel to give an impression of what i would like to achieve. The "tablegrid" corresponds with my current "checklist" that i am using in excel. So i am looking to build a tablegrid like below:


https://i.ibb.co/TTmntLt/tablegrid.png


Where i could basically choose from a dropdown/list in the main form which checks i need to do.
For example for the year 2021 and the quarter 2, or the month 5, and so on.


However, i dont seem to be able to grasp how i need to setup my tables, i know this is wrong but am i going in the right direction with this or not? Look below:


https://i.ibb.co/pv667MW/tables.png


Yes, i am not good at this.


I would need these 3 functionalities:
- setup a standard checklist which can be reused
- a standard checklist can have different timing intervals, for example yearly/quarterly/monthly > this depends on the client
- a client can have many different checklists


Many thanks for taking the time to look at this.

Kind regards,

12

(30 replies, posted in General)

This is sooo good! Thank you Dmitry!!! Been waiting for this for so long smile

PS: Good to hear from you again Dmitry!

asawyer13 wrote:

Does inno setup have a way to automatically update the mvd exe when a new version of the software is uploaded to my server?

I am trying to determine what the best installer/updater to use to distribute and update my app would be.

Thanks
Alan

Hello Alan,

i was looking for the same answer to this as well, unfortunately it isn't a 'quick' solution but if you plan it carefully it shouldn't be too much of a hassle,

- Take a look at:
http://myvisualdatabase.com/forum/viewtopic.php?id=5365

- And this one:

http://myvisualdatabase.com/forum/viewtopic.php?id=6787

Hello CDB, thank you for your answer and supplying extra info.

I've experimented with your code a bit, following code will open Outlook and prepare a new email message to review and then press 'send', which is what i was trying to achieve. Now i'm looking into a way to style the body.


procedure Form1_SendEmail_OnClick (Sender: TObject; var Cancel: boolean);
const
  objMailItem = 0;
var
  OKToUse: boolean;
  Outlook: Variant;
  vMailItem: variant;
begin
 // OKToUse := false;

    Outlook := CreateOleObject('Outlook.Application');
    
    vMailItem := Outlook.GetNamespace('MAPI');
    vMailItem.Logon;  {[color=blue]this allows an email to be sent if Outlook is not open at the time of sending[/color]}
    vMailItem := Outlook.CreateItem(objMailItem);
    vMailItem.Recipients.Add('someperson@someplace.something');
    vMailItem.Subject := 'What a wonderful test email'; {[color=blue]this could be a text box with the string contained in it[/color]}
    vMailItem.Body := 'another string or stringlist with the body text';
    vMailItem.Display;

  Outlook := nil;  {[color=blue]free the object - this might not be necessary, some sources say it automatically frees when out of scope[/color]}
end;

Thank you very much CDB for posting your solution! I've been keeping an eye on this topic, this is something i've also been trying to do since it would be extremely timesaving and helpful in my little work projects, i'm going to try it out over the weekend. Do you have any idea if it would be possible to style the body, or perhaps even open an outlook email template?

16

(3 replies, posted in General)

Hello,


I once sort of had the same issue. Can you verify your project folder tree? When i encountered this issue i was saving a new project somewhere in another MVD project folder.

17

(2 replies, posted in Script)

Very cool! i like these interfaces!

Thank you for the example prahousefamily, much appreciated!

I also make these kind of layouts but i generally use tabcontrol and hide the edges with images or other panels.

Very cool, thank you for the example!

Excellent solution Derek (as always!) I wanted to try calculated fields at first but i wouldn't know how to begin, how do you come up with those syntaxes!? yikes big_smile


@Asifmute: i would advise to follow Derek's solution, using a calculated field is (in my opinion) much easier to maintain, oversee, and plan in your application. Debugging is much faster, and doesn't (really) break any other code if you would make small adjustments here and there, if it does then a calculated field is quickly adjusted.


I also tried to make a solution based on a report sql query by concatenating (which i learned from Derek) using '||' between the fields, have a look as attached.


SELECT  
STRFTIME('%d', date)    
||
case strftime('%m', date) when '01' then ' January ' when '02' then ' February ' when '03' then ' March ' when '04' then ' April ' when '05' then ' May ' when '06' then ' June ' when '07' then ' July ' when '08' then ' August ' when '09' then ' September ' when '10' then ' October ' when '11' then ' November ' when '12' then ' December ' else '' end
||
STRFTIME('%Y', date)
FROM dates
WHERE dates.id = $id;  

Hello Asifmute,


Attached is a quick sample.

hello,

so you want to show the name of the month?


try in your report SQL:

SELECT
 case strftime('%m', DateTimerPickerField) when '01' then 'January' when '02' then 'Febuary' when '03' then 'March' when '04' then 'April' when '05' then 'May' when '06' then 'June' when '07' then 'July' when '08' then 'August' when '09' then 'September' when '10' then 'October' when '11' then 'November' when '12' then 'December' else '' end
as month 
  FROM table;

This is fixed by Dmitry, was a script error in the report itself!

hello,

is it a wrong date or is it incorrectly formatted? do you have a screenshot?

DriveSoft wrote:

Without attached project I can't help you.

Hello Dmitry,

I sent you you the project via email.

Hello,


I managed to get rid of the error by using

procedure frmAddInvoice_DateTimePicker1_OnChange (Sender: TObject); 
var
      amountofdays : extended;
begin
      amountofdays := frmAddInvoice.Edit4.Value;
      frmAddInvoice.DateTimePicker2.DateTime := frmAddInvoice.DateTimePicker1.DateTime + amountofdays;
end;

However, when this error was gone, the next one comes up.


Now i am getting this error in my existing report:


Could not convert variant of type (UnicodeString) into type (Double).

sad


When i remove the code, the report just works again, but the dates wont change when Edit is changed.