使用soui开发的mbc,只支持windows版本
w1146869587
2022-01-24 479b1995ef435713c2cf4f0da8de3a6af6c30922
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// MBRole.cpp : implementation file
//
 
#include "stdafx.h"
#include "mborg.h"
#include "MBOrgRole.h"
 
 
// CMBRole
IMPLEMENT_DYNAMIC(CMBOrgRole, CObject)
CMBOrgRole::CMBOrgRole()
{
    m_strName    = _T("");
    m_strID    = _T("");
    m_bIsLoaded    = FALSE;
}
 
CMBOrgRole::~CMBOrgRole()
{
    DetachList();
}
 
 
// CMBRole member functions
void CMBOrgRole::operator = ( const CMBOrgRole &Item )
{
    POSITION        pos;
    CMBOrgMember        *pMember        = NULL;
    CMBOrgMember        *pNewMember        = NULL;
 
    m_strID        = Item.m_strID;
    m_strName    = Item.m_strName;
    m_bIsLoaded    = Item.m_bIsLoaded;
    // Copy User List
    DetachList();
    for ( pos = Item.m_listMember.GetHeadPosition(); pos; )
    {
        pMember        = (CMBOrgMember *)Item.m_listMember.GetNext( pos );
        pNewMember    = new CMBOrgMember;
        *pNewMember    = *pMember;
        m_listMember.AddTail( pNewMember );
    }
}
 
/////////////////////////////////////////////////////////////////////////////
// CMBOrgRole message handlers
 
void CMBOrgRole::DetachList()
{
    POSITION        pos;
    CMBOrgMember        *pMember    = NULL;
 
    for ( pos = m_listMember.GetHeadPosition(); pos; )
    {
        pMember        = (CMBOrgMember *)m_listMember.GetNext( pos );
        if ( pMember )
            delete    pMember;
    }
    m_listMember.RemoveAll();
}
 
POSITION CMBOrgRole::FindUser( CString strLoginName )
{
    POSITION        pos = NULL;
    POSITION        posOld = NULL;
    CMBOrgMember        *pMember    = NULL;
 
    if ( strLoginName.IsEmpty() )
        return    NULL;
 
    for ( pos = m_listMember.GetHeadPosition(); pos; pos )
    {
        posOld = pos;
        pMember    = (CMBOrgMember *)m_listMember.GetNext( pos );
        if ( pMember->m_strID.CompareNoCase( strLoginName ) == 0 )
            return    posOld;
    }
 
    return    NULL;
}
 
POSITION CMBOrgRole::AddMember( CString strUser, CString strName,int nLevel /*= 0*/ )
{
    POSITION        pos;
    CMBOrgMember        *pMember    = NULL;
 
    if ( strUser.IsEmpty() || strName.IsEmpty() )
        return    NULL;
 
    pos        = FindUser( strUser );
    if ( pos )
        pMember    = (CMBOrgMember *)m_listMember.GetAt( pos );
    else
    {
        pMember    = new CMBOrgMember;
        pMember->m_nType    = AM_VIEWITEMTYPE_USER;
        pMember->m_strID        = strUser;
        pos        = m_listMember.AddTail( pMember );
    }
    pMember->m_bIsDelete        = FALSE;
    pMember->m_strName        = strName;
    pMember->m_nSortLevel    = nLevel;
 
    return    pos;
}