Fixing problems in build_BOM.cpp
This commit is contained in:
parent
24885c9889
commit
1661d6d405
|
@ -123,7 +123,7 @@ void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile,
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 2: // Single Part per line
|
case 2: // Single Part per line
|
||||||
CreatePartsList( m_ListFileName );
|
CreatePartsList( m_ListFileName, aIncludeSubComponents );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ void DIALOG_BUILD_BOM::Create_BOM_Lists( int aTypeFile,
|
||||||
* form is:
|
* form is:
|
||||||
* cmp value; number of components; <footprint>; field1; field2; field3; list of references having the same value
|
* cmp value; number of components; <footprint>; field1; field2; field3; list of references having the same value
|
||||||
*/
|
*/
|
||||||
void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName )
|
void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName, bool aIncludeSubComponents )
|
||||||
{
|
{
|
||||||
FILE* f;
|
FILE* f;
|
||||||
wxString msg;
|
wxString msg;
|
||||||
|
@ -160,7 +160,14 @@ void DIALOG_BUILD_BOM::CreatePartsList( const wxString& aFullFileName )
|
||||||
std::vector <OBJ_CMP_TO_LIST> cmplist;
|
std::vector <OBJ_CMP_TO_LIST> cmplist;
|
||||||
BuildComponentsListFromSchematic( cmplist );
|
BuildComponentsListFromSchematic( cmplist );
|
||||||
|
|
||||||
/* sort component list */
|
/* sort component list by ref and remove sub components*/
|
||||||
|
if( !aIncludeSubComponents )
|
||||||
|
{
|
||||||
|
sort( cmplist.begin(), cmplist.end(), SortComponentsByReference );
|
||||||
|
DeleteSubCmp( cmplist );
|
||||||
|
}
|
||||||
|
|
||||||
|
/* sort component list by value*/
|
||||||
sort( cmplist.begin(), cmplist.end(), SortComponentsByValue );
|
sort( cmplist.begin(), cmplist.end(), SortComponentsByValue );
|
||||||
PrintComponentsListByPart( f, cmplist );
|
PrintComponentsListByPart( f, cmplist );
|
||||||
|
|
||||||
|
@ -792,16 +799,15 @@ int DIALOG_BUILD_BOM::PrintComponentsListByPart(
|
||||||
std::vector <OBJ_CMP_TO_LIST>& aList )
|
std::vector <OBJ_CMP_TO_LIST>& aList )
|
||||||
{
|
{
|
||||||
int qty = 1;
|
int qty = 1;
|
||||||
char RefName[80];
|
char RefName[256];
|
||||||
char ValName[80];
|
char ValName[256];
|
||||||
char NxtName[80];
|
char NxtName[256];
|
||||||
char RNames[1000];
|
char RNames[2000];
|
||||||
wxArrayString cmpFields;
|
wxArrayString cmpFields;
|
||||||
EDA_BaseStruct* DrawList;
|
EDA_BaseStruct* DrawList;
|
||||||
EDA_BaseStruct* NxtList;
|
EDA_BaseStruct* NxtList;
|
||||||
SCH_COMPONENT* DrawLibItem;
|
SCH_COMPONENT* DrawLibItem;
|
||||||
SCH_COMPONENT* NxtLibItem;
|
SCH_COMPONENT* NxtLibItem;
|
||||||
int jj;
|
|
||||||
|
|
||||||
strcpy( NxtName, "" );
|
strcpy( NxtName, "" );
|
||||||
strcpy( RNames, "" );
|
strcpy( RNames, "" );
|
||||||
|
@ -835,11 +841,14 @@ int DIALOG_BUILD_BOM::PrintComponentsListByPart(
|
||||||
sprintf( ValName, "%s", CONV_TO_UTF8( DrawLibItem->GetField( VALUE )->m_Text ) );
|
sprintf( ValName, "%s", CONV_TO_UTF8( DrawLibItem->GetField( VALUE )->m_Text ) );
|
||||||
if( NxtLibItem )
|
if( NxtLibItem )
|
||||||
sprintf( NxtName, "%s", CONV_TO_UTF8( NxtLibItem->GetField( VALUE )->m_Text ) );
|
sprintf( NxtName, "%s", CONV_TO_UTF8( NxtLibItem->GetField( VALUE )->m_Text ) );
|
||||||
|
else
|
||||||
|
NxtName[0] = 0;
|
||||||
|
|
||||||
|
|
||||||
// Store fields. try to store non empty fields.
|
// Store fields. try to store non empty fields.
|
||||||
if( cmpFields.GetCount() < DrawLibItem->GetFieldCount() )
|
if( (int)cmpFields.GetCount() < DrawLibItem->GetFieldCount() )
|
||||||
cmpFields.Alloc(DrawLibItem->GetFieldCount());
|
cmpFields.Alloc(DrawLibItem->GetFieldCount());
|
||||||
for( jj = FIELD1; jj < DrawLibItem->GetFieldCount(); jj++ )
|
for( int jj = FIELD1; jj < DrawLibItem->GetFieldCount(); jj++ )
|
||||||
{
|
{
|
||||||
if( cmpFields[jj].IsEmpty() )
|
if( cmpFields[jj].IsEmpty() )
|
||||||
cmpFields[jj] = DrawLibItem->GetField( jj )->m_Text;
|
cmpFields[jj] = DrawLibItem->GetField( jj )->m_Text;
|
||||||
|
|
|
@ -29,7 +29,7 @@ private:
|
||||||
bool aRunBrowser);
|
bool aRunBrowser);
|
||||||
void GenereListeOfItems(const wxString & FullFileName, bool aIncludeSubComponents );
|
void GenereListeOfItems(const wxString & FullFileName, bool aIncludeSubComponents );
|
||||||
void CreateExportList(const wxString & FullFileName, bool aIncludeSubComponents);
|
void CreateExportList(const wxString & FullFileName, bool aIncludeSubComponents);
|
||||||
void CreatePartsList(const wxString & FullFileName);
|
void CreatePartsList(const wxString & FullFileName, bool aIncludeSubComponents);
|
||||||
int PrintComponentsListByRef( FILE * f, std::vector <OBJ_CMP_TO_LIST>& aList,
|
int PrintComponentsListByRef( FILE * f, std::vector <OBJ_CMP_TO_LIST>& aList,
|
||||||
bool CompactForm, bool aIncludeSubComponents );
|
bool CompactForm, bool aIncludeSubComponents );
|
||||||
int PrintComponentsListByVal( FILE *f, std::vector <OBJ_CMP_TO_LIST>& aList,
|
int PrintComponentsListByVal( FILE *f, std::vector <OBJ_CMP_TO_LIST>& aList,
|
||||||
|
|
Loading…
Reference in New Issue