-1

データベースから簡単なデータ抽出を実行し、内容を Excel スプレッドシートにエクスポートしています。私は2つのボタンを持っています:

  1. データベースからデータを抽出し、 を使用して表示するにはuitable
  2. uitableデータを Excel スプレッドシートにエクスポートします。

問題:

2 つの機能をリンクすることはできないようです。次のエラーがスローされ続けます。

スタックトレース:

Undefined function or variable 'num'.

Error in FatherSonGUI>pushbutton3_Callback (line 155)
    xlswrite('test.xls',num)

Error in gui_mainfcn (line 95)
        feval(varargin{:});

Error in FatherSonGUI (line 42)
    gui_mainfcn(gui_State, varargin{:});

Error in @(hObject,eventdata)FatherSonGUI('pushbutton3_Callback',hObject,eventdata,guidata(hObject))

 
Error while evaluating uicontrol Callback

サンプル画像:

ここに画像の説明を入力

コード - データの抽出

% --- Executes on button press in GenerateData.
function generateWAR(hObject, eventdata, handles)
 
f = gcbf(); % size of the figure object
dat = dyn_conformer.Data;
set(f,'name','Father & Son War Room','numbertitle','off') %renames the Title Figure
cnames = {'PROCESS STATUS ID','TASK ID','TASK TYPE', 'CARTRIDGE ID', 'DISPLAY ORDER'};
rnames = {'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'};
t = uitable('Parent',f,'Data',dat,'ColumnName',cnames,... 
            'RowName',rnames,'Position',[10 100 1150 370]); % size of the values inside the figure object

    col = get(t,'ColumnName');
    data = get(t,'Data');
    %num = [col';data(:,1:length(col))];
    num = [col';data];

コード - UITable データのエクスポート

% --- Executes on button press in ExportData.
function pushbutton3_Callback(hObject, eventdata, handles)


button = questdlg('Would you like to Export the data to a folder?',...
'Confirm','Yes','No','Cancel Program','No')

if strcmp(button,'Yes')
    
    FileName = uiputfile('*.xls','Save as');
    xlswrite('test.xls',num)
    
elseif strcmp(button, 'No')
    helpdlg('File not exported!','Message')
    
elseif strcmp(button, 'Cancel Program')
    helpdlg('Program cancelled!','Message')
    
end

基本的に、変数numfunction pushbutton3_Callback-->xlswrite('test.xls',num)で参照しました。これはfunction generateWAR、列とデータ要素をコンパイルする場所から取得されます。

これについて助けていただければ幸いです。

4

1 に答える 1

0

変数numは のスコープにありませんpushbutton3_Callbackpushbutton3_Callback全体的なアーキテクチャに応じて、また GUI をプログラムでコーディングするか GUIDE を介してコーディングするかに応じて、この変数を使用可能にするさまざまな可能性があります。

関数スコープ内にあるものを確認するには、次whosのように関数の先頭に単純に追加します

function pushbutton3_Callback(hObject, eventdata, handles)    
whos
button = questdlg('Would you like to Export the data to a ... 
    folder?','Confirm','Yes','No','Cancel Program','No')
% and so on
于 2014-08-27T10:19:08.033 に答える