
Scopri le novità della versione 2007


MechWorks s.r.l.
via Vallescura, 8/2
40136 - Bologna, Italy
http://www.mechworks.com
Questo tool e' un riferimento per l'Amministratore; mostra in un'unica cartella molti strumenti di amministrazione disponibili in DBWorks.
Una semplice interfaccia web offfre una breve spiegazione per ogni argomento, un collegamento all'help ufficiale per maggiori dettagli e la possibilita' di aprire direttamente il file di parametri trattato per la modifica immediata.
Questo tool permette di copiare o spostare il contenuto di interi progetti in altri progetti.
L'interfaccia mostra due pannelli: permettono la scelta del progetto sorgente e destinazione
Per una selezione piu' dettagliata esiste la possibilita' di filtrare i file utilizzando una ricerca testuale o selezionadoli/deselezionandoli manualmente.
Un dialogo di conferma permette un volta in piu' di controllare la lista dei file da muovere/copiare dai/nei progetti.
Notate che la locazione fisica (su disco) dei documenti non cambia, semplicemente vengono assegnati a progetti tramite relazioni padre-figlio.

Un visualizzatore proprietario di DWG e' disponibile per l'anteprima e l'anteprima completa dei file DWG (fino al formato Autocad 2007)
Il visualizzatore, quando utilizzato nella tab Anteprima Completa, puo' effettuare zoom, pan, supportare DWG multifoglio, mostrare il livello selezionato e stampare (con tutte le funzioni dello Stampa Anteprima) il file DWG.
E' ora possibile assegnare una quantità fisica direttamente dal dialogo Crea un'entrata per la Distinta Materiali.
Se impostata a 0, azzererà sia la quantità fisica che il valore dell'unità di misura.

Il direttorio preimpostato per la funzionalità Crea un'entrata per la Distinta Materiali e' lo stesso del documento padre.
Se tale direttorio e' vuoto, allora viene assegnato il percorso della cartella di sistema XLS.
Sono disponibili due nuove opzioni nel dialogo Ordina le posizioni della Distinta Mateteriali

Apri/Salva→Salva→
Assegna sempre un numero assoluto di posizione nella Distinta al salvataggio
Apri/Salva→Salva→
Forza l'ordine del CAD solo se non assoluto
Quando abilitate, la funzionalità Ordina le posizioni della Distinta Mateteriali viene automaticamente appllicata ad ogni salvataggio di assieme.
Per maggiori informazioni, siete pregati di consultare la documentazione ufficiale al capitolo relativo al dialogo "Order BOM Position Numbers".
Il nome della tabella deve essere localizzato per ogni lingua, seguendo le regole standard del file TABLES2.DFL.
DBCustomizer gestirà queste regole automaticamente.
Tables2.DFL
… @ORDER RICERCA DESCRIZIONE @ORDER COMPOSTO_DA T,DESCRIZIONE @ORDER DISEGNO FORMATO_FOGLIO @ORDER PROGETTO CREAZIONE_DATA …Nell'esempio sopra
i campi ULTIMA_MODIFICA_DATA e ULTIMA_MODIFICA_DA sono ora sempre allineati al checkin per tutti i record delle configurazioni dello stesso file, rendendo non piu' necessaria l'opzione Ambiente→Configurazioni→
Allinea i campi al checkin della configurazione
Nella modalità Accesso Remoto, il campo REPLICATION_DIRTY viene gestito correttamente tenendo conto di quanto riportato sopra.
Inserendo una parte in una struttura saldata, viene create sia una relazione di parte derivata che un elemento di Lista di taglio nella parte padre.

DBWorks segna ora come NO_DISTINTA i record delle Liste di taglio generati da una parte (nell'esempio sopra, Cut-list-item3(1)):

Questo miglioramento consente di creare una Distinta corretta:





La nuova macro dal nome $(CONFIGURATION_DESCRIPTION) puo' essere utilizzata nelle seguenti opzioni:
Input Dati→Definizione macro per l'ID di un record configurato
e
Input Dati→Definizione macro per la DESCRIZIONE di un record configurato



La nuova macro $LINKED_FIELD permette di mostrare i valori delle Tabelle Collegate, anche se in formato full UNICODE (NVARCHAR).
Per esempio, usando questa macro e' possibile mostrare il valore di una Tabella del Linguaggio Secondario Unicode nella Maschera di Input e nelle Griglie.
$LINKED_FIELD(<campo_chiave_tabella_DOCUMENTO>,<Nome_Tabella_Collegata>,<Campo_Tabella_Collegata>,"<filtro_SQL_variabile>")
Supponiamo di voler mostrare sia la descrizione Inglese che Cinese nella stesso Form di Input.
La descrizione in Inglese sarà contenuta nel campo DESCRIZIONE, quella Cinese nel campo DESCRIZIONE2
Supponiamo che la tabella DBW_UNICODE_MAPPING_TABLE contenga i seguenti record:

Assegneremo al campo DESCRIZIONE2 il valore:
$LINKED_FIELD(DESCRIZIONE,DBW_UNICODE_MAPPING_TABLE,SECONDARY_STRING,"PRIMARY_STRING='%s' AND SECONDARY_LANGUAGE='CHINESE'")
In questa macro:
<campo_chiave_tabella_DOCUMENTO> = DESCRIZIONE
<Nome_Tabella_Collegata> = DBW_UNICODE_MAPPING_TABLE
<Campo_Tabella_Collegata> = SECONDARY_STRING
<"filtro_SQL_variabile"> = "PRIMARY_STRING='%s' AND SECONDARY_LANGUAGE='CHINESE'"

Ogni volta che il controllo dell'Edit perde il focus, viene mostrato il risultato come di seguito:

Inoltre, lo stesso valore verrà mostrato nelle griglie standard:

Ovviamente, il campo DESCRIZIONE2 puo' essere facilmente riempito per tutti i documenti con la macro suddetta, semplicemente scrivendo uno script DESCRIZIONE2.LST con un appropriato comando .DEFAULT:
.DEFAULT $LINKED_FIELD(DESCRIZIONE,DBW_UNICODE_MAPPING_TABLE,SECONDARY_STRING,"PRIMARY_STRING='%s' AND SECONDARY_LANGUAGE='CHINESE'")
Non e' piu' necessaria la sequenza STOP/SET DB DBWORKS/START quando si accede ad un database diverso.
Metodo precedente (DBWorks 2006):
.SQL STOP; SET DB DBWCUST; START; SELECT ... STOP; SET DB DBWORKS; START;
Nuovo metodo (DBWorks 2007):
.SQL STOP; SET DB DBWCUST; START; SELECT ...

Mai mostrare i progetti se non assegnati…
Strumenti di Setup
Edit Material Database,system\edit_material.vbs,120
Custom Property Manager,system\bomcust.vbs,53
Office Integration Parameters,system\Officetemplates.vbs,52
Define Revision schema,system\Edit_Revisions_schema.vbs,56
Register Documents in the Database,system\Register_Documents_in_Dbworks.vbs,63
[DBWARM:Group:DBWorks Admin]Bom Designer wizard,system\EditExcelBOMs.vbs,132
ME10 Integration Parameters,system\ME10Setup.vbs,139
DBWorks Conversion Wizard,system\dbworks_conversion_wizard.vbs,86
Select Coding Wizard,system\SelectCodingWizard.vbs,106
[DBWARM:Group:DBWorks Admin]Visual Cues Manager,system\visual_cues_manager.vbs,106
…

DBWorksApplicationName DBWARM_Action USER_ADDED | USER_REMOVED | USER_MODIFIED DBWARM_UserName DBWARM_UserFullName DBWARM_UserGroup DBWARM_UserNameWas non nullo se DBWARM_Action e' USER_MODIFIED
' ' OnDBWArmUsersTableUpdated.VBS ' MsgBox "OnDBWArmUsersTableUpdated.VBS" & vbcrlf &_ "Application : " & DBWorksApplicationName & vbcrlf &_ " Action : " & DBWARM_UsersTableAction & vbcrlf &_ " User name : " & DBWARM_UserName & vbcrlf &_ " Full name : " & DBWARM_UserFullName & vbcrlf &_ " Group : " & DBWARM_UserGroup &_ " User name was : "& DBWARM_UserNameWas
La tabella DBW_ATTACHMENTS richiede questa struttura minima:
T varchar(1) DESCRIPTION varchar(80) FILE_NAME varchar(256) FILE_DIRECTORY varchar(256) REVISION varchar(20) DOCUMENT_UNIQUE_ID int
E' disponibile una nuova entrata nel menu RMB Aggiungi un allegato… per selezionarei file da allegare al record correntemente selezionato:

.VBSCRIPT
sub main()
DBWInit(TRUE)
' the parent document unique id
documentUniqueId = DBWInput("@DOCUMENT_UNIQUE_ID")
' to be used for revision-dependent attachments ; still not supported
documentRevision = DBWInput("@DOCUMENT_REVISION")
if documentUniqueId = 0 then
exit sub
end if
nameFieldT = DBWLookUp("NAME_FIELD_T")
nameFieldDESCRIPTION = DBWLookUp("NAME_FIELD_DESCRIPTION")
nameFieldFILE_NAME = DBWLookUp("NAME_FIELD_FILE_NAME")
nameFieldFILE_DIRECTORY = DBWLookUp("NAME_FIELD_FILE_DIRECTORY")
nameFieldDOCUMENT_UNIQUE_ID = DBWLookUp("NAME_FIELD_DOCUMENT_UNIQUE_ID")
' build the tab query
query =_
"SELECT " &_
nameFieldT & "," &_
nameFieldDESCRIPTION & "," &_
nameFieldFILE_NAME & "," &_
nameFieldFILE_DIRECTORY & "," &_
nameFieldDOCUMENT_UNIQUE_ID &_
" FROM DBW_ATTACHMENTS WHERE " &_
nameFieldDOCUMENT_UNIQUE_ID & "=" & documentUniqueId
' return the query to DBWorks
DBWOutput "@QUERY",query,ForWriting
end sub
Per attivare lo scritp e' sufficiente copiarlo nella cartella LST.
L'anteprima degli allegati e' supportato per l'insieme dei tipi di documento supportati dai visualizzatori installati
Anteprima completa dei documenti generici
Anteprima completa dei documenti generici con uso dell'applicazione associata




A partire dal sp1.0 (previsto per l'estate 2007) DBInventor 2007 supporterà Inventor 2008.
Allinea i campi DisegnoÛParte
Questo nuovo parametro abilita il log per ogni errore che puo' verificarsi duranete il processamento delle proprietà personalizzate. Un file spefiale di log, chiamato DBW_CustomPropertiesMonitor.LOG, viene scritto nella cartella %TMP%
Per mantenere buone prestazioni del programma, l'abilitazione di questo tipo di log e' consigliata solo in caso di errori con le proprietà personalizzate.Da RMB su un record del Gruppo Documenti di Lavoro, e' disponibile una nuova funzione Copia i nomi dei file di Disegno Aziendale nella Clipboard:

Quando applicata al Gruppo Documenti di Lavoro corrente, DBWorks cercherà i Disegni Aziendali disponibili per i documenti del Gruppo di Lavoro e copierà i loro nomi nella clipboard, cosi' da permettere operazioni di Incolla da ogni applicazione di Windows che le supporti:



La registrazione si appoggia al componente SolidWorks Document Manager.
Per fornire i parametri necessari della locazione dei file al SolidWorks Document Manager, e' stata introdotta una nuova opzione bella sezione Generali→Altro… :

Come indicato nel titolo della opzione, occorre indicare solo la ROOT dei direttori in cui risiedono i file SW che devono essere registrati.
Il processo di registrazione considera anche i parametri dell'opzione Ambiente→Configurazioni, compresa la
Salva tutte le configurazioni automaticamente.
Per questo motivo, le suddette opzioni della sezione Ambiente→Configurazioni vengono abilitate di default quando si avvia un Client Standalone.
Il comando corrispondente della DBWShell (AddDocument) ha ora un terzo parametro opzionale per attraversare la struttura figlia del documento passato:
DBWShell("AddDocument <document path name> [ <parent unique ID> [ <registerChildDocuments> ] ]")DBWShell("AddDocument C:\MyAssemblies\MyAsm.sldasm 123456 1")
Set DBWApp = CreateObject("DBWAlone.Api")
okDBW = DBWApp.CallBack( "@StartApplication" ) 'support for DBWArm/Login dialog
asmName = replace("C:\MyAssemblies\MyAsm.SLDASM"," ","|") 'the assembly is known to the script
parentUid = 123456 'the parentUid is known to the script
traverseChildComponents = 1
okDBW = DBWApp.CallBack("AddDocument " & asmName & " " & parentUid & " " & traverseChildComponents )
Il Plottaggio Batch dei file DWG/DXF e' ora supportato attraverso eDrawings viewer (se disponbile sulla macchina).

E' disponibile, una nuova opzione (di default non abilitata) tra i Parametri di Plottaggio per stampare con eDrawings da DBWorks Standalone:
Usa qualità Draft durante la stampa tramite eDrawings DBW Standalone
Quando si abilita questa opzione, le risorse di memoria necessarie sono inferiori rispetto alla stampa normale, ma con esse anche la qualità di stampa.
Scegli una configurazione all'apertura di un documento
sub main()
DBWInit(TRUE)
call DBWShell("MDOpen C:\MyPdfFiles\MyPdfFile.pdf 1")
mdid = DBWResult("@MDID")
if mdid<>0 then
rgbcolor = rgb(255,0,0)
DBWShell("MDAddText " & mdid & " 10 10 APPROVED!!! Arial 18 0 0 " & rgbcolor & " 0")
DBWShell("MDClose " & mdid)
end if
end sub

Plotta tutti i fogli.

Ogni documento esterno già scaricato viene ora evidenziato in rosso se il valore di ULTIMA_MODIFICA_DATA e' piu' recente della data del file.
E' ora possibile scaricare un documento anche se in stato di checkout
Il documento scaricato, comunque, e' nella sua ultima revisione rilasciata, cosi' da permettere alla ditta richiedente il documento esterno di ottenerne una versione, anche se tale documento risulta in nuova revisione presso la ditta remota a cui appartiene.
DBWorks puo' ora fornire l'anteprima dei documenti anche se e' abilitata la modalità di trasferimento file server-side.

Ad ogni salvataggio, DBWorks aggiorna il campo con un'imamgine in bassa risoluzione del documento salvato.
Questa immagine verrà usata dalla funzionalità di Scaricamento per proporre l'anteprima del documento.
Ambiente→Accesso Remoto→
Scarica sempre i documenti collegati
Due nuovi comandi
Sotto DBWARM, entrambi i comandi sono disponibili se l'utente possiede i privilegi per creare nuovi progetti.

Dopo aver rinominato dei documenti, DBWorks applica ora le seguenti opzioni (se assegnate)::
Salva i disegni in un progetto a parte
Salva i disegni nel progetto della Parte/Assieme
Assegna il progetto usando il prefisso o il direttorio del componenteUn nuovo insieme di opzioni controlla la creazione automatica della Distinta Excel o l'esportazione di file al momento del checkin o del rilascio (vedere l'help ufficiale per i dettagli).
Le estensioni disponibili per gli Output vanno dichiarate nel file di parametri SCHEMA\DBWRevisionsOutputFileExtensions.TXT.
Eccone un esempio:
;-------------------------------------------------------------- ; DBWRevisionsOutputFileExtensions.TXT ; ; DBWorks Revisions Output File Extensions File ; ;-------------------------------------------------------------- ; EXTENSION <extension> EXTENSION PDF EXTENSION TIF EXTENSION DWG EXTENSION DXF EXTENSION DWF EXTENSION IGS <empty line>
La Distinta Excel create e' accessibile attraverso le nuove voci del menu RMB:

Dalla griglia di Revisioni Precedenti:
Apri Distinta Excel – apre la Distinta Excel Creata per la revisione selezionata (approvata)

Il nuovo comando @GETNEXTFROMSCRIPT puo' essere usato nel file REVISIONE.LST per assegnare un gestore di default per la creazione dei nomi di revisione, senza dover attivare lo script OnNewRev.LST.
@GETNEXTFROMSCRIPT MyOnNewRev.LST
Per utilizzare un progetto come Conttenitore di Revisioni, deve essere messo in stato di RILASCIATO.
Nella figura sotto, il documento Generico con ID="RevisionsContainer" ha il campo DBW_EC_TYPE impostato con un valore arbitrario; il valore del campo PARENT_CHILD_REVISION per la relazione PARENT_CHILD tra il documento generico "RevisionsContainer" e l'assieme "Wilwood Master Cylinder" viene impostato a "B".
Nella figura in alto, si puo' notare che l'assieme "Wilwood Master Cylinder" viene mostrato con le relazioni e i valori correnti del database, mentre nel sottoalbero del documento Generico "RevisionsContainer", lo stesso assieme viene mostraro con la sua struttura in revisione="B". E' interessante notare che il componente "Reservoir Cover" e' stato cancellato dal database, per cui e' rappresentato nell'albero come documento obsoleto (congelato).
Gli indicatori alla destra dell'ID indicano che la struttura non e' disponibile nel database, ma e' stata caricara da un file .TREE relativo ad una revisione.

Una nuova visualizzazione HTML e' stata adottata per l'analisi dei file .TREE.
Questo tool puo' essere attivato per confrontare le revisioni di un assieme elimanando o rinominando il file ...\DBWorks\bin\dbwdiff.exe
La potenzialita' di creare e mostrare la vista e' offerta via API da una funzione dell'oggetto DBWJComp.CodeObject.
metodo: showComparisonAsWebPage <treeFileFullPath1>,<treeFileFullPath2>
e puo' essere usato da script come mostrato qua di seguito:
Set codeObject = CreateObject("DBWJComp.CodeObject")
codeObject.showComparisonAsWebPage "C:\myAsm.SLDASM.03.TREE","C:\myAsm.SLDASM.02.TREE"
Set codeObject = Nothing
dove l'ultima revisione (o quella di riferimento dell'albero) dovrebbe essere passato come primo parametro, per compatibilita' con il comando Compare nativo di DBWorks.

DBW2007 introduces the support for native .CS or .VB applications written in .NET
DBW2007 uses a custom engine (named DBWCSSUI) for driving the .NET runtime.
This engine needs some extra coding for managing correctly the assembly references.
Any given .NET assembly has the following major characteristics:
The naming convention for the .NET framework was always simple: all three are the "same".
Microsoft has broken it's own rule with the way how Visual Studio 2005 generates interops: the file name always has prefix "interop." and does not match any more the assembly namespace. What leads to the situation when it is not possible to reconstruct the file name from the assembly namespace (this is what the DBWCSSUI engine does).
The solution is to use the DBWCSSUI explicit loading directive //css_ref : this resolves the loading problem.
About how to reference the namespace from the code, in C# it is resolved through the using directive; VB equivalent is Import.
Thus if you want to use, for example, System.Windows.Forms your code needs to have Import System.Windows.Forms.
In addition to this, VB compiler has it's unique feature imported namespaces which means that you can nominate namespaces to be used not from code but on the compiler level.
This is the reason why you do not have to have Import System.Windows.Forms in the code if you are inside of the VB project: nice feature but inconsistent and creates some confusion.
DBWCSSUI does not pass any extra compiler directives thus you must have Import <namespace> in code if you want to use a particular namespace.
As a final note, renaming of the assembly file is not a very good idea in general as it creates mismatch between Assembly file and module name. Some applications may refuse to load such assemblies.
CacheBaseDir: The root directory for caching the local script compilation results.
DownloadBaseDir: The root directory for downloading (caching) all remote scripts.
CodeProviderDll: Location of the VB compiler assembly. This value is passed at run time to the CS-Script engine through it's configuration file.
DebugMode: Boolean flag, which indicates that the script should be compiled with debug information included.
SimpleRemoteCaching: Boolean flag, which indicates when the remote script dependency files (assemblies and importable scripts) have to be analysed for changes.
VSBaseDir: Root directory where all temporary C# and VB projects are generated.
VSCleanResx: Boolean flag, which indicates that any automatically generated .resx files (for temporary VS project) should be deleted on after closing the IDE.
VSUpdateIncludesOnClose: Boolean flag, which indicates that new //css_imp should be automatically injected to the script file after closing the IDE. The injection is usually triggered by adding .cs/.vb file to the project by developer. New directives are marked with "//auto-generated" comment.
VSUpdateRefsOnClose: Boolean flag, which indicates that new //css_ref should be automatically injected to the script file after closing the IDE. The injection is usually triggered by adding assembly references to the the project by developer. New directives are marked with "//auto-generated" comment.
For each "standard" script ( *.LST or *.SPT ), DBWorks 2007 looks if a .NET version exists in the same directory.
The .NET version has the naming convention:
The following is an example of OnOK.LST.CS:
//css_reference MW.DLL;
using System;
using System.Drawing;
using System.Windows.Forms;
public class DBWDotNet
{
static public string Main(
string ApplicationName,
string ModuleName,
string ConnectionDSN,
string ConnectionUID,
string ConnectionPWD,
string ConnectionDBMSName,
string ConnectionORACLE_SERVER,
string ConnectionORACLE_SCHEMA_OWNER,
string ConnectionBomDSN,
string IsInBatchOperation,
string CurrentDocumentBatchOperationIndex,
string BatchOperationDocumentsCounter
){
MW.DBWLib.Initialize(ApplicationName,ModuleName,ConnectionDSN,ConnectionUID,ConnectionPWD,ConnectionDBMSName,ConnectionORACLE_SERVER,ConnectionORACLE_SCHEMA_OWNER,ConnectionBomDSN,IsInBatchOperation,CurrentDocumentBatchOperationIndex,BatchOperationDocumentsCounter);
String fileName;
fileName = MW.DBWLib.DBWInput("FILE_NAME");
MessageBox.Show("FileName=" + fileName);
MW.DBWLib.DBWOutput("@OKDATA","1",MW.DBWLib.ForWriting);
String description;
description = "Created By OnOK.LST.CS";
MW.DBWLib.DBWOutput("DESCRIPTION",description,MW.DBWLib.ForAppending);
MW.DBWLib.Terminate();
return "";
}
}
Looking at the above script, you can see the following features:
The same example shown above can be written in VB.NET as follows:
'//css_reference MW.DLL;
Imports Mechworks
Imports Microsoft.VisualBasic
Public Class DBWDotNet
Public Shared Function Main(ByVal ApplicationName As String,ByVal ModuleName As String,ByVal ConnectionDSN As String,ByVal ConnectionUID As String,ByVal ConnectionPWD As String,ByVal ConnectionDBMSName As String,ByVal ConnectionORACLE_SERVER As String,ByVal ConnectionORACLE_SCHEMA_OWNER As String,ByVal ConnectionBomDSN As String,ByVal IsInBatchOperation As String,ByVal CurrentDocumentBatchOperationIndex As String,ByVal BatchOperationDocumentsCounter As String) As String
MW.DBWLib.Initialize(ApplicationName,ModuleName,ConnectionDSN,ConnectionUID,ConnectionPWD,ConnectionDBMSName,ConnectionORACLE_SERVER,ConnectionORACLE_SCHEMA_OWNER,ConnectionBomDSN,IsInBatchOperation,CurrentDocumentBatchOperationIndex,BatchOperationDocumentsCounter)
Dim fileName as String
fileName = MW.DBWLib.DBWInput("FILE_NAME")
MsgBox("FileName=" & fileName)
MW.DBWLib.DBWOutput("@OKDATA",1,MW.DBWLib.ForWriting)
if ucase(right(fileName,7))=".SLDPRT" then
Dim id as String
id = left(fileName,len(fileName)-8)
Dim description as String
description = id & " - Created By OnOK.LST.VB"
MW.DBWLib.DBWOutput("DESCRIPTION",description,MW.DBWLib.ForAppending)
end if
MW.DBWLib.Terminate()
return ""
End function
End Class
Looking at the above script, you can see the following features:
The UserProcessDocument function, necessary to the DBWWalkTree functionality, it is supported by creating a special module named:
DBWWalkTree_UserProcessDocument.VB
with a template like:
' //css_reference MW.DLL;
' //css_reference MechWorks.Interop.DBWAlone.DLL;
Imports Mechworks
Imports Microsoft.VisualBasic
Public Class DBWDotNetUserLib
Public Shared Function UserProcessDocument( ByVal uniqueId As String ) As String
MsgBox(">>UserProcessDocument<< uniqueId=" & uniqueId)
return "0"
End function
End Class
The function UserProcessDocument is invoked by the MW.DBWLIB.DBWWalkTree for allowing the programmability of the actions on each document being processed.
An Add-in is a generic application, written in any language ( even .NET ), exposing, thorugh a Visual Basic COM interface, the following four functions:
Start(BSTR applicationName) Stop() OnMenuItemClicked(long itemID) OnMenuItemEnabled(long itemID)
An add-in template, written in VB.NET is the following:
Imports System.Runtime.InteropServices
<Microsoft.VisualBasic.ComClass()> Public Class Class1
Public Function Start(ByVal AppName As String) As Boolean
MsgBox("Start")
Start = True
End Function
Public Function [Stop]()
MsgBox("Stop")
End Function
Public Function OnMenuItemClicked(ByVal itemID As Integer) As Boolean
MsgBox("OnMenuItemClicked " & itemID)
Return True
End Function
Public Function OnMenuItemEnabled(ByVal itemID As Integer) As Boolean
If itemID = 3 Then ' just for testing, disable item = 3
Return False
End If
Return True
End Function
End Class
It is important that the following attributes must be set for the add-in:

DBWorks 2007 launches at startup a special script named AddinStartup.VBS, located in subfolders of the special folder BIN\AddIns.
From within the startup script, the DBWShell(“LoadAddin …”) command must be invoked, passing the name of the add-in, the CLSID of the COM object to be installed and the XML file for the definition of the menus.
If the loading of the add-in’s DLL will be successful, the Start(BSTR applicationName) method will be invoked by DBWorks.
When DBWorks will stop its execution, the method Stop() will be invoked for each loaded add-in.
DBWShell("LoadAddin <Addin name> <Addin ProgID> <Addin XML menu definition file>")
Where:
Addin name any unique name for the add-inThe supported format of the XML file for the menu structure is the following:
<?xml version="1.0" encoding="utf-8" ?> <DBWMenu> <DBWSubMenu Name="My1stAddinMenu"> <DBWMenuItem Name="Func1" ID="5"></DBWMenuItem> <DBWMenuItem Name="Func2" ID="6"></DBWMenuItem> <DBWSubMenu Name="MySubMenu1"> <DBWMenuItem Name="Func3" ID="1"></DBWMenuItem> <DBWMenuItem Name="Func4" ID="2"></DBWMenuItem> </DBWSubMenu> <DBWSubMenu Name="MySubMenu2"> <DBWMenuItem Name="Func5" ID="3"></DBWMenuItem> </DBWSubMenu> <DBWSubMenu Name="MySubMenu3"> <DBWMenuItem Name="Func6" ID="4"></DBWMenuItem> </DBWSubMenu> </DBWSubMenu> <DBWSubMenu Name="My2ndAddinMenu"> <DBWMenuItem Name="Func7" ID="7"></DBWMenuItem> <DBWMenuItem Name="Func8" ID="8"></DBWMenuItem> </DBWSubMenu> </DBWMenu>
The attributes ID must be UNIQUE in the file, being those numbers passed to the functions OnMenuItemClicked(long itemID) and OnMenuItemEnabled(long itemID)
sub Main()
DBWInit(True)
DBWShell("LoadAddin MyDBWAddin ClassLibrary1.Class1 AddinMenu.xml")
End Sub
Using the XML menu definition file described in the above example, the displayed menu structure will be the following:

The DBSQL engine supports now the following commands for loading/saving a file into a BLOB-type (Binary Large OBjects) database field:
FILELOAD <table name> <key field name> <key field value> <BLOB field name> <file path> FILESAVE <table name> <key field name> <key field value> <BLOB field name> <file path>
To insert the file C:\MyPictures\MyPicture.JPG file into this field for a record with UNIQUE_ID=123456789:
DBSQL>FILELOAD DOCUMENT UNIQUE_ID 123456789 DBW_PREVIEW_IMAGE C:\MyPictures\MyPicture.JPG;
To extract the image from the same record to the file C:\MyPictures\MySavedPicture.JPG:
DBSQL>FILESAVE DOCUMENT UNIQUE_ID 123456789 DBW_PREVIEW_IMAGE C:\MyPictures\MySavedPicture.JPG;
Both commands can be invoked from a .LST/.VBS script as follows:
sub main()
DBWInit(TRUE)
DBWExecSQL("FILELOAD DOCUMENT UNIQUE_ID 123456789 DBW_PREVIEW_IMAGE C:\MyPictures\MyPicture.JPG;")
MsgBox "OK LOAD =" & okDBW
DBWExecSQL("FILESAVE DOCUMENT UNIQUE_ID 123456789 DBW_PREVIEW_IMAGE C:\MyPictures\MySavedPicture.JPG;")
MsgBox "OK SAVE =" & okDBW
end sub
DBWShell("FileZip <command> <file path>")
DBWShell("FileZip New " & replace("C:\MyFolder\MyZipArchive.ZIP"," ","|"))
DBWShell("FileZip Add " & replace("C:\MyFolder\MyFile.DOC"," ","|"))
DBWShell("FileZip Create")
DBWShell("FileUnZip <zip file path> <output folder>")
Sets the names of the Primary Database Tables to the assigned ones.
DBWShell("SetPrimaryDatabaseTables <permanent> <DOCUMENT table name> <REVISIONS table name> <PARENT_CHILD table name>")
<permanent> [0/1] if 1, the primarty tables are pemanently set to the new names (useful for starting a Standalone Client on a new primary tables set)
if 0, the table will be reset as soon as the script terminate its execution
When the Primary Tables are different from the standard ones, the DBWorks Browser shows a notification in it’s title

DBWShell("SetPrimaryDatabaseTables 0 DBW_ASBUILT_DOCUMENT DBW_ASBUILD_REVISIONS DBW_ASBUILT_PARENT_CHILD")
The following command resets the Primary Database Tables to their original values
DBWShell(“ResetPrimaryDatabaseTables”)
EMail <action> <parameter> <value>
where: <sent to User identifier> <user ID>@<company ID>
<parameter> BODY_TXT
<value> a line in text format for the body of the eMail message
<parameter> BODY_HTML
<value> a line in HTML format for the body of the eMail message
<parameter> ATTACHMENT
<value> a valid file path for sending the file as attachment to the eMail message

A new command GetTreeParentProject is available in the DBWShell interface.
The command returns the Unique ID of the nearest Parent Project in the current Tree structure.
When used with no parameters, it returns the nearest Parent Project Unique ID of the currently selected item in the Tree. When invoked passing a Unique ID as parameter, it first tries to select a document in the current Tree with the Unique ID equal to the one passed as parameter, then returns the nearest Parent Project in the Tree structure.
See CommandShell documentation for details.

This script is fired when dropping a set of files/documents on a target document.
Please refer to DBWShellCommand documentation for details.
It allows to customize the text that is displayed in the label of the Preview window of a document.

Please refer to DBWShellCommand documentation for details.
The ShowConfirmationDialog command has been enhanced for supporting the deletion of records and files, in the same way the user interface does.
Please refer to DBWShellCommand documentation for details.
Please refer to DBWShellCommand documentation for details.
A new optional parameter is available for passing the name of a field that will be displayed when the Data Input Form will be opened. Due to this is possible to change the default tab shown when dialog is displayed.
call DBWShell ("EditRecord 45 1 CATEGORY3")
because the field CATEGORY3 is shown in tab "Classification", such tab is shown as active when the dialog is opened.

Please refer to DBWShellCommand documentation for details.
When called with no parameters, and if a Tree control was activated with a valid selection, it displays the UI Create a new Bom Item dialog.
Please refer to DBWShellCommand documentation for details.
For the PDF case only, the command applies the setting of the option Plot setup→
Plot multiple sheets
Please refer to DBWShellCommand documentation for details.
Please refer to DBWShellCommand documentation for details.
A partire dal sp1.0 (previsto per l'estate 2007) DBWorks 2007 sarà installabile in una speciale edizione per supportare SolidWorks 2007 x64.
DBWorks puo' essere installato anche su sistema operativo Vista
Se abilitata, DBworks applica il nuovo materiale (selezionato dal DBWorks Material Editor) ad ogni configurazione. DBWorks aggiornerà coerentemente le Proprietà Personalizzate specifiche di ogni configurazione.
L'opzione emula il comportamento dell'opzione di Solidworks per l'Edit Material Property Manager:


Lo script Dataentr.LST (Save Wizard) puo' ora mandare in output, se necessario, i seguenti parametri:
SolidWorks@ConfigurationProperty@Name
SolidWorks@ConfigurationProperty@Description
SolidWorks@ConfigurationProperty@Comment
SolidWorks@ConfigurationProperty@AlternateName
Sub main() … … DBWOutput "SolidWorks@ConfigurationProperty@Name","MyNewCfgName",ForAppending … End sub
La configurazione corrente viene rinominata in questo modo:

Ora e' possibile importare anche le proprietà della sezione "Sommario" tramite il file di mappatura CustProp.txt (o CustProp_Insert.txt):
"SW_Title"
"SW_Subject"
"SW_Author"
"SW_KeyWords"
"SW_Comment"
"SW_SavedBy"
"SW_CreateDate"
"SW_SaveDate"
CustProp.txt
DESCRIZIONE "SW_Title" NOTA "SW_Comment"
, verrà effettuato un salvataggio nativo di Solidworks (File→Salva come…) e verrà mostrato il relativo dialogo, permettendo l'esportazione dei file in formati differenti.
Usa il 'DataEntr.LST' per i componenti creati da Toolbox e' disponibile per controllare il caso di un componente Toolbox portato (quindi aggiunto) ad un assieme. DBWorks richiama lo script Dataentr.LST (Save Wizard), passando @CONTEXT=GET_FILENAME_BEFORE_DROP come contesto.
Leggere la sezione riguardante i cambiamenti di comportamento per informazioni sulle modifiche alla funzionalità List Locked Files.
Le seguenti opzioni:
Interfaccia Utente→Comportamento del Browser→
Disabilita la lista degli Assiemi
Disabilita la lista delle Parti
Disabilita la lista dei Disegni
Disabilita la lista dei documenti Genericicontrols now the existance of the Assembly, Part, Drawing and Other Documents tabs in the Tree Page’s Grids area
Una nuova tab chiamata Configurazioni mostra tutti i record distinti per le configurazioni del documento selezionato:

La lista dei campi mostrati viene dinamicamente cambiato tra la lista dei documenti di tipo Parte e di tipo Assieme, dipendentemente dal documento correntemente selezionato.
E' ora possibile mostrare delle tab con Query personalizzate nella Pagina Albero.
DBWorks mostra tante tab quante sono gli script .LST con il prefisso OnCustomQueryTab_
Ogni script deve avere in output il paramentro @QUERY contenente la query i cui risultati verranno mostrati nella tab relativa.
Supponete di voler mostrare velocemente le parti che hanno LUNGHEZZA simile alla parte selezionata.
Dovrete creare uno script chiamato OnCustomQueryTab_SimilarLength.LST nel direttorio condiviso DBWORKS\LST:
.VBSCRIPT
sub main()
DBWInit(TRUE)
uid = DBWInput("@DOCUMENT_UNIQUE_ID")
if uid = 0 then
exit sub
end if
length = DBWQueryByUId( uid, DBWLookUp("NAME_FIELD_LENGTH") )
if length = 0 then
exit sub
end if
lengthMax = length * 1.1
lengthMin = length * 0.9
query = _
"SELECT "&_
DBWLookUp("NAME_FIELD_T") & "," &_
DBWLookUp("NAME_FIELD_ID") & "," &_
DBWLookUp("NAME_FIELD_LENGTH") &_
",*" &_
"FROM " &_
DBWLookUp("NAME_DOCUMENT_TABLE") &_
" WHERE " &_
DBWLookUp("NAME_FIELD_LENGTH") & ">=" & lengthMin &_
" AND " &_
DBWLookUp("NAME_FIELD_LENGTH") & "<=" & lengthMax &_
";"
' return the query to DBWorks
DBWOutput "@QUERY",query,ForWriting
end sub
Il risultato nella Pagina Albero sarà una tab chiamata SimilarLength:

![]()
La funzione RMB→Cerca un documento... cerca ora anche nei progetti che sono mantenuti chiusi per migliorare le prestazioni.
DBWorks controlla se il documento da cercare e' tra i figli del progetto selezionato, espandendolo solo al bisogno.
Abilita copia e incolla negli alberi
Abilita copia e incolla sugli Assiemi
Solo per le entrate della DisitintaLa nuova sotto-opzione permette di effettuare il copia e incolla di componenti negli assiemi esistenti solo se tali componenti sono stati creati con la funzionalità Crea un'entrata per la Distinta Materiali (componenti fake)./p>

Le opzioni cambiano lo stile dell''interfaccia utente globale per l'utente corrente.
Una nuova sottocartella chiamata Styles, sottocartella del direttorioSCHEMA\IMG\, contiene i file disponibili e necessari.
Lo stile chiamato MechWorksStyle.Default e' quello utilizzato da DBWArm e dalle altre applicazioni che non hanno impostazioni utente.

La visualizzazione del Checkout-da-altri , Revisione-non-gestita, Attributo-Parte-Standard e' stata migliorata.
I documenti Generici vengono ora sempre mostrati con il corretto tipo di icona a indipendentemente dallo stato dei suddetti attributi.
E' possibile impostare alcuni hto-key attraverso la definizione nel file SCHEMA\DBWHOTKEYS.TXT (nel caso della versione specifica per l'utente il file e' USERS\<nome utente>\DBWHOTKEYS.USR).
Entrambi i file sono gestiti da DBCustomizer.
;=================================================================== ; ; DBWorks2007(C)MechWorks Hot-keys definition file ; ; Format: ; ; HOT-KEY-ID <DBWShell command> | <@SpecialCommand> ; ; Where: ; HOT-KEY-ID F1|F2|F3|...|F12|0|1|2|...|9|A|B|C|...|Z ; ; HOT-KEY-ID can be prefixed by CTRL- or SHIFT- for applying the hot-key ; only when the CTRL or SHIFT keys are pressed ; ; The allowed special commands are: ; @SEARCH move the input focus in the [SEARCH] edit box ; ;=================================================================== CTRL-A Checkout SHIFT-A Checkin F5 Requery CTRL-Q @SEARCH CTRL-B ExecScript CalledFromHotKey.vbs
E' stata rimossa la limitazione che prevedeva un massimo di 700 righe per la copia nella clipboard. La combinazione Ctrl+C puo' ora copiare l'intero contenuto di grandi griglie, e il risultato e' disponibile per essere incollato in MSExcel o altri applicativi Windows.
Mostra suggerimenti avanzati nei dialoghi di Cancella/Plotta


Il seguente messaggio è stato migliorato per supportare il checkbox "Non mostrare più questo messaggio":

DBWorks 2007 supporta più di un file per la definizione delle Informazioni visive.
L'intenzione è quella di permettere all'utente di mostrare diversi set di Informazioni Visive, dipendenti da specifiche condizioni che si vogliono evidenziare.
L'applicazione cerca nella cartella SCHEMA\IMG i file con il nome che segue la convenzione: DBWVisualCuesDefinition_*.txt
I suffissi dei file disponibili sono elencati nelle Opzioni Utente:

e permettono di scegliere il set desiderato.
Una volta selezionato,DBWorks ricarica la definizione delle Informazioni Visive, cambiando dinamicamente la visualizzazione corrente.
Selezionando OutOfStock, solo gli elementi che soddisfano le definizioni di DBWVisualCuesDef_OutOfStock.txt verranno mostrati con una Informazione visiva:

Analogamente, anche selezionando DBWVisualCuesDef_Recommended.txt:

Il nuovo codice di posizione 3 può essere assegnato a un'informazione visiva per fare in modo che risulti allineata a destra.
Per ottenere questo, i parametri <Tree Img Offset> e <Grid Img Offset> devono avere un valore negativo.
;-------------------------------------------------------------- ; DBWVisualCuesDef.txt ; ; DBWorks Visual Cues Definition File ; ;-------------------------------------------------------------- ; "<field name>","<field value pattern>","<Image Definition>",<Img width>,<Position Code>,<Tree Img Offset>,<Grid Img Offset> ; ; <Image definition>::= ; a .BMP/.JPG/.TIF/.PCX/.TGA file name, or … ; @Line,<pen width>,R,G,B ; @Cross,<pen width>,R,G,B ; @Rectangle,<pen width>,R,G,B ; @Ellipse,<pen width>,R,G,B ; ; <Position Code> 0: full row; 1:icon; 2: text; 3: right-side full row ; "T","A","dbwscbar149.bmp",18,3,-24,-24

Un nuovo parametro @SILENT (valore [0/1]) viene passato allo script OnGetWorkflowProcess.LST
Se il parametro ha valore 1, DBWorks procederà nell'azione senza interazione da parte dell'utente.
Di seguito è riportato un esempio dello script OnWorkflowStateHasChanged.LST, adattato per spedire notifiche via email a tutti gli utenti che hanno il campo EMAIL non nullo nella tabella DBWORKS_USERS.
.VBSCRIPT
const temporaryZipAttachmentFileName = "C:\temp\attachment.zip"
sub main
DBWInit(TRUE)
silent = DBWInput("@SILENT")
ecoId = DBWInput("@ECO_ID")
process = DBWInput("@PROCESS")
fromState = DBWInput("@FROM_STATE")
toState = DBWInput("@TO_STATE")
docUid = DBWInput("@DOCUMENT_UNIQUE_ID")
allOk = DBWInput("@ALL_OK")
DBWShell("WorkflowGetNotesAndFileAttachment " & docUid )
notes = DBWResult("@WORKFLOW_NOTES")
attachment = DBWResult("@WORKFLOW_ATTACHMENT")
id = DBWQueryByUid( docUid, DBWLookUp("NAME_FIELD_ID") )
user = DBWGetOption("USER_NAME")
ReDim Preserve userList(1)
DBWorkflowGetUserList toState,userList
for j=0 to ubound(userList)-1 step 4
userId = userList(j)
fullName = userList(j+1)
phone = userList(j+2)
email = userList(j+3)
nameToAddress = userId & "@" & DBWGetOption("COMPANY_ID")
if DBWGetOption("DBWARM_USER") <> userId then
sendNotificationEmail nameToAddress,id,fromState,toState,user,attachment
end if
next
end sub
sub sendNotificationEmail( nameToAddress, id, fromState, toState, user, attachment )
SUBJECT = "Workflow notification: " & id & " - state changed to """ & toState & """"
BODY_HTML01 = "<html><body>"
BODY_HTML02 = "<h1 align=""center""><FONT face=""Verdana"" size=""5"">DBWorks Workflow Notification</FONT></h1>"
BODY_HTML03 = "</br>"
BODY_HTML04 = "Document"
BODY_HTML05 = "<h0 align=""center""><FONT face=""Arial black"" size=""3"">" & id & "</FONT></h0>"
BODY_HTML06 = "</br>"
BODY_HTML07 = "has changed state from"
BODY_HTML08 = "<h0 align=""center""><FONT face=""Arial black"" size=""3"">" & fromState & "</FONT></h0>"
BODY_HTML09 = "to"
BODY_HTML10 = "<h0 align=""center""><FONT face=""Arial black"" size=""3"">" & toState & "</FONT></h0>"
BODY_HTML11 = "</br>"
BODY_HTML12 = "</br>"
BODY_HTML13 = "Sent by " & user & ", " & Date() & "</br>"
BODY_HTML14 = "</br>"
BODY_HTML15 = "</body></html>"
if attachment<>"" then
DBWShell("FileZip New " & replace(temporaryZipAttachmentFileName," ","|"))
DBWShell("FileZip Add " & replace(attachment," ","|"))
DBWShell("FileZip Create")
ATTACHMENT01 = temporaryZipAttachmentFileName
end if
DBWShell("EMail New Notification " & nameToAddress )
DBWShell("EMail Data SUBJECT " & replace(SUBJECT," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML01," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML02," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML03," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML04," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML05," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML06," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML07," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML08," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML09," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML10," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML11," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML12," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML13," ","|"))
DBWShell("EMail Data BODY_HTML " & replace(BODY_HTML14," ","|"))
DBWShell("EMail Data ATTACHMENT " & replace(ATTACHMENT01," ","|"))
DBWShell("SendEMail")
end sub
In DBWorks 2007, l'ADW introduce un supporto per duplicare un'immagine dello stato corrente dell'assieme. I nomi dei file dei componenti dell'assieme sono generati con un timestamp e delle informazioni sulla revisione corrente. L'immagine dell'assieme può essere registrata nel database o allegata come Attachment al documento originale tramite la nuova tabella DBW_ATTACHMENTS gestita da DBWorks.
Una nuova pagina nelle opzioni definisce le impostazioni della duplicazione "As-Built".

Nel registrare assiemi As-Built, essi saranno posizionati nel progetto As_Built (creato automaticamente) sotto un sotto-progetto chiamato come l'assieme.

Nella registrazione di assiemi As-Built come attachment, essi saranno visibili nella Tab Attachment

La query personalizzata definisce ora i documenti che devono essere convertiti.
E' stata aggiunta una nuova opzione per definire il caricamento su diverse workstation.
Quando l'opzione è impostata nel CW,verrà creato un file con il numero di query da caricare, come query personalizzata, su ogni workstation. Il file sarà aperto in blocco note dopo la conferma del dialogo da CW.
This Wizard allows to import documents, properties and revisions from an existing PDMWorks for Worgroup installation.
The tool requires DBWorks StandAlone 2007 and a SolidWorks 2007 or better.
When you start the Wizard, you need to log into PDMWorks from within the wizard.
Then you must select the projects to import. If you have a large number of documents importing the projects in separate batches can be a good idea.
After selecting the project you are presented with the list of properties and configurations. Here you must select the properties you want to import and associate them with the fields of the DBWorks records. If needed you can create new fields to store the information coming from the custom properties of the files.
If you import the configurations (DBWorks will treat each configuration as a separate record) you can select a set of configurations to import or to ignore.
In the final tab you start the migration.
During the migration the files are first extracted to a selected path and grouped in sub folders, then registered one by one.
It is possibe to use both SolidWorks or DBWorks Stand Alone to register the files, but DBWorks Stand Alone is generally faster.
Linked Tables can be managed from DBCustomizer selecting the entry Customize, Linked Tables
The interface allows you to specify that a field in the DOCUMENT table is used as a key to link an external table as an extension of the DOCUMENT table:

How to add a link:
Automatic behaviors in the interface to simplify the task:

The scripts in the ExcelBOM.lib library had to be updated to include the new function
ExcelBOMRevision(uid, revision)
Another function has been added to avoid lack of generality:
Function ExcelBOM3(uid, par_file, excel_file_name,revision)
where the last parameter should be an empty string for the current revision and the revision for which the BOM is requested otherwise.
Also the function BOMRecordset in the object MWSCriptGui.BOM now has an added optional parameter for the revision name and it returns a recordset with the current BOM if the revision is a null string and the BOM for the requested revision otherwise. All changes are backwards compatible. Note that for previous revisions you cannot obtain information about the parents of the items, namely projects and drawings because such information would not be accurate.
ID FILE_NAME FILE_DIRECTORY DESCRIPTION
The usual editing rules for comments apply to this parameter file; there currently is no GUI editing tool for this file.
A new version of WebClient will be released shortly after the release of DBWorks/DBInventor 2007
Usa Dataentr.LST ), quando si lavora con le configurazioni, per le parti saldate, se la configurazione è <As Welded>, DBWorks attiva la configurazione padre <As Machined>, per evitare conlfitti di rinomina (che generano errori SW) quando la configurazione derivata <As Welded> viene rinominata prima del <As Machined>T VARCHAR(1) ID VARCHAR(256) USERID VARCHAR(256) SERVER VARCHAR(256) DESCRIPTION VARCHAR(512) FILE_DIRECTORY VARCHAR(256) FILE_NAME VARCHAR(256) STATE VARCHAR(40) CONFIGURATION VARCHAR(256) REVISION VARCHAR(40) COMPANY_ID VARCHAR(256) OWNER_COMPANY_ID VARCHAR(256) CHECK_OUT_BY VARCHAR(256) UNIQUE_ID INTEGER
L'applicativo BIN\DWGView.EXE è considerato obsoleto e per questo è stato rimosso.
conseguentemente la funzionecRMB→Anteprima di …DWG, utilizza un nuovo visualizzatore DWG
Anche se l'opzione Apri→
Non aprire documenti collegati al checkout è disabilitata, ogni documento Generico collgegato non viene più aperto automaticamente
Utilizza sempre la Distinta Excel è stata rimossa poichè la Distinta Excel è ora sempre usata
Usa lo script OnViewXLS.LST è stata rimossa.
Aggiorna le Note Variabili all'approvazione di una revisione
Aggiorna i disegni all'approvazione di una revisione
Refresh automatico della bitmap del padre all'approvazione della revisione