Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fork (2024-01-19) => dev-jp #6

Merged
merged 122 commits into from
Jan 19, 2024
Merged

fork (2024-01-19) => dev-jp #6

merged 122 commits into from
Jan 19, 2024

Conversation

josef-poetzl
Copy link
Owner

No description provided.

hecon5 and others added 30 commits September 23, 2023 09:03
Removed dependency on an external function, and added an example for building from source.
Backticks only apply to MySQL, while square brackets are used with MSSQL and Access. joyfullservice#442
Extending the performance class to allow the wrapping of long names used for categories or operations. (Not really needed within this project, but could potentially be helpful in the future with translations.) joyfullservice#441
Putting the comma after the argument seems to be the preferred industry-standard approach, based on ChatGPT and Bard.
Updating clsPerformance, as some objects never restart timing, and wh…
You can now specify the source files path when you initiate a build through the API. This allows automated builds to be run even if a copy of the database does not yet exist. (Such as after checking out a project in an automated CI workflow.) joyfullservice#430
…g as expected due to searching the current directory rather than using the export folder.
…his avoid generating a bad export where the data are not actually exported due to invalid XML being generated by Application.ExportXML. Unfortunately, if a table contains any characters that aren't valid for XML document, it won't try to escape them and include them as literals. Even if they were escaped, they might not be accepted anyway. XML specifications forbids having any characters in 0x01-0x31 range so if a table data contains such characters, this can cause the XML export to fail. In this case, tab delimited will have to be used instead. However, the previous version was simply silently exporting as if everything is hunky-dory when it's not. Hence, the error.
…cks. This seems to be due to not closing it when evaluating the UseTheme. Even if we skipped it, we still need to remove it from m_colBlocks to balance everything out.
…e end of the string but the function GetNextTokenID returns 0, which then fails within FormatSQL function since there is no member at index 0. It's not clear why this only fails every second time a query is exported but it is the case where if it fails, exporting it next time will not yield the error. Do it 3rd time, then it fails.
…er because they are a variant of pass-through queries.
…quick to close it) which may result in an error about object members not available. Since the form is closed, there's no point in setting the timer interval. To avoid the error when debugging, we add a IsLoaded check and skip it if it's not loaded.
This option (on by default) will save the VBA code from forms and reports as a related .cls file. (Still under development.) joyfullservice#378

Also removed the "Strip out Publish Option" from the options form. I have never heard of a case where this needs to be changed, and it frees up space for the new option we are adding without cluttering the form.
This logic will be shared when exporting code modules from forms and reports.
Refactored parsing the key from the performance item so that we are not dependent upon a unique delimiter. The timing value is always a number, so we can be confident that the first pipe character is the delimiter. The text after that can be anything, including pipe characters. joyfullservice#450
(minor change)
In some cases sanitizing a source file actually creates two distinct outputs. A layout file and a code file. Rather than making the sanitize function more complicated with byref outputs and non-obvious side effects, I am taking the approach of a more explicit object-oriented route where the code is easier to understand and maintain. (And also allows for future enhancements such as SQL extraction for query definition files.)
Updating the existing code to use the new class.
Export is now splitting the VBA from Form and Report objects to separate files with a .cls extension. Moving on to the code that will stitch these files back together before import.
This better reflects the expanded role of the class.
joyfullservice and others added 28 commits December 1, 2023 15:17
Parent functionality such as determining the most recent file modified, getting the last modified date, and checking for alternate source files is better done by having the class provide the list of file extensions that might be used by the class, and having single external functions perform these tasks. (Avoids some redundant code.)
This will allow us to more accurately detect changes in non-primary source files. (Such as a change in a shared image.)
Removing three functions that are not uniquely specific to each component type and are handled by external functions now that we have exposed the source code file extensions.
We don't need to try to support mixes of various versions of export files. Use the same version of VCS to build a fresh copy of the project, then export with the latest VCS to upgrade source file.
Moving this to the Export function.
Refactored the detection and processing of source conflicts and orphaned source files & database objects to better handle source file types that involve multiple files. joyfullservice#473 joyfullservice#471 joyfullservice#472
When checking for changes in source files, we need to check all the related source files for each component, not just the primary source file.
Further changes to compare all related source files.
Updated to latest version of VCS.
Class modules have an instancing property that needs to be checked for changes along with the VBA code to ensure that the database object matches the last export. A module will now be flagged as changed if the instancing property is changed.
Large XML files may cause memory errors with XSLT operations. Adding an alternate approach to simply replace the leading tabs with two spaces. This should allow the add-in to export even extremely large table data files as formatted XML. joyfullservice#389, fixes joyfullservice#474
Any recent version of export file should be using the new format, and we don't need to carry this conversion forward into v4.
Need to pass a dictionary, not a collection to the CompareToIndex function.
Any update to the index is now required to provide a hash to match the source file. joyfullservice#472
Saving each filter line as a single element in a collection makes a much more readable section in the options.json file, especially when the rules become more complex. Previously this was saved as a combined string value which makes it harder to read changes to individual rules.
Made a tweak so we can use the RunAfterBuild hook in the add-in project to verify (load) the resources immediately after building from source. This will help prevent accidentally deploying the add-in without the needed resource records, as happened in joyfullservice#477.
Going forward, this will allow us to edit the VBA code without affecting the layout definition files in forms.
Co-authored-by: Festiis <festim.nuredini@axami.se>
Clarifies why we are using the Val() function when parsing ISO dates.
This is still a work in progress, but has the basic functionality of exporting and importing custom CommandBars.
This could be related to a recent Access bug, but it is helpful to trap the error if it occurs. joyfullservice#484
@josef-poetzl josef-poetzl merged commit 395f977 into dev-jp Jan 19, 2024
@josef-poetzl josef-poetzl deleted the dev branch January 19, 2024 20:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants