function varargout = contacts(varargin)
% 通讯录软件V1.0
% $Author: LiPeng $Date: 20091026
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @contacts_OpeningFcn, ...
'gui_OutputFcn', @contacts_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Executes just before contacts is made visible.
function contacts_OpeningFcn(hObject, eventdata, handles, varargin)
handles.output = hObject;
handles.Database = '';
handles.TotalNum = [];
% Update handles structure
guidata(hObject, handles);
global loadmark newdata
loadmark = 0;
newdata = 0;
warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame');
javaFrame = get(hObject,'JavaFrame');
javaFrame.setFigureIcon(javax.swing.ImageIcon('c_about.jpg'));
% --- Outputs from this function are returned to the command line.
function varargout = contacts_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
% 控件:显示list
function allgroup_Callback(hObject, eventdata, handles)
global loadmark delmark
if loadmark
n = get(hObject,'Value');
str = get(hObject,'String');
if isequal(get(gcf,'SelectionType'),'open')
Detinfodlg(hObject,eventdata,handles,str{n},n);
elseif isequal(get(gcf,'SelectionType'),'normal')
delmark = 1;
Database = handles.Database;
Names = Database{1};
Id = Database{2};
Se = Database{3};
Maj = Database{4};
Dep = Database{5};
Pho = Database{6};
Cellp = Database{7};
Other = Database{8};
set(handles.Name,'String',Names(n,:));
set(handles.Number,'String',num2str(cell2mat(Id(n,:))));
Sstr = get(handles.MorF,'String');
for k = 1:length(Sstr)
if strcmp(Sstr{k},Se(n,:))
set(handles.MorF,'Value',k);
break
end
set(handles.MorF,'Value',1);
end
Mstr = get(handles.Major,'String');
for k = 1:length(Mstr)
if strcmp(Mstr{k},Maj(n,:))
set(handles.Major,'Value',k);
break
end
set(handles.Major,'Value',1);
end
Dstr = get(handles.Dep,'String');
for k = 1:length(Dstr)
if strcmp(Dstr{k},Dep(n,:))
set(handles.Dep,'Value',k);
break
end
set(handles.Dep,'Value',1);
end
set(handles.Phone,'String',num2str(cell2mat(Pho(n,:))));
set(handles.CellP,'String',num2str(cell2mat(Cellp(n,:))));
set(handles.Other,'String',Other(n,:));
end
end
% 静态文本控件创建函数区
function allgroup_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Name_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Number_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function MorF_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Major_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Dep_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Phone_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function CellP_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Other_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Sum_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
function Load_dir_CreateFcn(hObject, eventdata, handles)
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
% edit文本回调函数区
function Name_Callback(hObject, eventdata, handles)
function Number_Callback(hObject, eventdata, handles)
function MorF_Callback(hObject, eventdata, handles)
function Major_Callback(hObject, eventdata, handles)
function Dep_Callback(hObject, eventdata, handles)
function Phone_Callback(hObject, eventdata, handles)
function CellP_Callback(hObject, eventdata, handles)
function Other_Callback(hObject, eventdata, handles)
function Load_dir_Callback(hObject, eventdata, handles)
% 控件:新增按钮
function Add_Callback(hObject, eventdata, handles)
global loadmark newdata delmark
delmark = 0;
if loadmark % 已载入数据库
newdata = 1;
set(handles.Name,'String','');
set(handles.Number,'String','');
set(handles.MorF,'Value',1);
set(handles.Major,'Value',1);
set(handles.Dep,'Value',1);
set(handles.Phone,'String','');
set(handles.CellP,'String','');
set(handles.Other,'String','');
else
[filename,pathname] = uiputfile({'*.xls';'*.xlsx'},'数据库存储为','tongxunlu.xls');
xlswrite(fullfile(pathname,filename),{'姓名','学号','性别','专业','部门','内线','手机','其他信息'},'sheet1','A1:H1');
set(handles.Load_dir,'String',fullfile(pathname,filename));
[N T R] = xlsread(fullfile(pathname,filename));
Database = handles.Database;
TotalNum = handles.TotalNum;
% 更新GUI数据
Name = T(2:end,1);
Id = R(2:end,2);
Se = T(2:end,3);
Maj = T(2:end,4);
Dep = T(2:end,5);
Pho = R(2:end,6);
Cellp = R(2:end,7);
Other = T(2:end,8);
TotalNum = length(Name);
set(handles.allgroup,'String',Name);
set(handles.Sum,'String',TotalNum);
Database{1} = Name;
Database{2} = Id;
Database{3} = Se;
Database{4} = Maj;
Database{5} = Dep;
Database{6} = Pho;
Database{7} = Cellp;
Database{8} = Other;
handles.Database = Database;
handles.TotalNum = TotalNum;
guidata(hObject,handles);
loadmark = 1;
newdata = 1;
end
% 控件:确定按钮
function OK_Callback(hObject, eventdata, handles)
global newdata
if newdata
hwaitbar = waitbar(0,'准备写入,请稍后…','WindowStyle','modal',...
'Color',get(hObject,'BackgroundColor'));
warning('off','MATLAB:HandleGraphics:ObsoletedProperty:JavaFrame');
javaFrame = get(hwaitbar,'JavaFrame');
javaFrame.setFigureIcon(javax.swing.ImageIcon('c_about.jpg'));
Database = handles.Database;
Names = Database{1};
for k = 1:size(Names,1)
if strmatch(get(handles.Name,'String'),Names(k,:))
waitbar(0,hwaitbar,'开始写入,请等待…');
handles.Database = WriteData(hObject,eventdata,handles,k,hwaitbar);
guidata(hObject,handles);
if exist('hwaitbar')
delete(hwaitbar)
end
return
end
end
waitbar(0,hwai