庫存訂單介面:
(1)包括序號、訂單**、訂單名稱、產品**、產品型別、計畫加工數量、最晚完工日期。
(2)model增加臨時map,用於儲存庫存訂單。
(3)後台計算完成後,會將庫存訂單推送給前台,彈出該介面,若是人工確認的話,則使用者可以在該介面進行編輯,確認後進行插單排程;若是自動的話,則自動進行插單排程。
(4)插單排程成功後,「製造訂單表」中以「客戶關係」來區別哪些訂單是庫存訂單,「客戶關係」是工廠本身自己的都是庫存訂單。
標頭檔案:
#ifndef _cstockorderset_h
#define _cstockorderset_h
#include "ui_cstockorderset.h"
#include "qtgui/qdialog"
#include "qtgui/qstandarditemmodel"
#include //#include #include #include typedef struct stockorder
stockorder_t;
class ctablestockorder : public qdialog
;#endif
源cpp檔案
#include "ctablestockorder.h"
#include "qtgui/qgridlayout"
#include #include #include #include const int ordercolumncount = 8;
ctablestockorder::ctablestockorder(qwidget *parent, qt::wflags flags)
:qdialog(parent, flags),
m_pflag(false),
m_isautomation(false),
m_iblankid(0),
m_iinsertindex(0),
m_imaxkey(1)
ctablestockorder::~ctablestockorder()
void ctablestockorder::initlayout()
; stockorder_model = new qstandarditemmodel(this);
stockorder_model->setcolumncount(ordercolumncount);
for (int i = 0; i < ordercolumncount; i++)
connect(stockorder_model, signal(itemchanged(qstandarditem*)), this, slot(onitemchanged(qstandarditem* item)));
m_pordertableview->setmodel(stockorder_model);
m_pordertableview->setsortingenabled(true);
m_pordertableview->resizecolumnstocontents();
m_pordertableview->verticalheader()->setresizemode(qheaderview::fixed);
m_pordertableview->setalternatingrowcolors(true);
m_pordertableview->verticalheader()->setdefaultsectionsize(25);
if (m_isautomation)
else }
void ctablestockorder::setdata(const qmap& ordermode)
void ctablestockorder::setdelegate()
void ctablestockorder::setitemdata()
m_pflag = true;
}void ctablestockorder::insertblankentry()
void ctablestockorder::onitemchanged(qstandarditem* item)
int irow = item->index().row();
int icolumn = item->index().column();
int iid = stockorder_model->data(stockorder_model->index(irow, 0)).toint();
if (iid == m_iblankid) }
switch(icolumn)
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
default:
break; }}
qmapctablestockorder::getdata()
void ctablestockorder::oncopyentry()
}void ctablestockorder::oninsertentry()
m_iinsertindex++;
m_pflag = true;
}void ctablestockorder::onremoveentry()
qlistlstrows;
qmap::iterator it = maprows.begin();
for (; it != maprows.end(); it++)
for (int i = 0; i < lstrows.size(); i++) }
void ctablestockorder::oncustomcontextmenurequested(const qpoint &pos)
//空白行不彈出右鍵選單
int iid = stockorder_model->data(stockorder_model->index(icurrentrow, 0)).touint();
if (iid == m_iblankid)
//獲取選中行
qitemselectionmodel *selections = m_pordertableview->selectionmodel();
qmodelindexlist selectedindex = selections->selectedrows();
if (!selectedindex.isempty())
}if (!bselected)
//若空白行被選中,則取消選中
/*foreach (qmodelindex index, selectedindex)
}*/m_pactioncopy->setenabled(true);
m_pactionremove->setenabled(true);
if (!m_mapclipboard.isempty())
else
}else
qmenu *menu = new qmenu;
menu->addaction(m_pactioncopy);
menu->addaction(m_pactioninsert);
menu->addaction(m_pactionremove);
menu->exec(qcursor::pos());
}void ctablestockorder::onok()
void ctablestockorder::oncancel()
效果圖
QT學習篇 入門(1)
第乙個為管理介面 1 安全庫存的設定,包括序號 物品 物品型別 最大庫存量 最小庫存量 最大庫存比率 最小庫存比率 2 計算頻率設定,包括 實時,定時 單位分為 分鐘 小時 天 來自globalpara表,該錶增加字段 3 庫存訂單確認方式,包括 自動,人工,來自globalpara表,該錶增加字段...
MySQL入門學習 二 入門篇
上篇講了如何安裝並測試mysql,環境建好後就可以繼續我們的學習了。本篇主要熟悉一寫常用命令。1 啟動mysql伺服器 實際上上篇已講到如何啟動mysql。兩種方法 一是用winmysqladmin,如果機器啟動時已自動執行,則可直接進入下一步操作。二是在dos方式下執行 c mysql bin m...
Qt學習之入門篇(基本操作)
qt的基類 qwidget 常用基類,空白的視窗 qmainwindow 在qwidget的基礎上新增了一些功能 qdialog qt常用工具類 qpainter 基本的畫家類 qpainter p this 定義乙個畫家qpen 畫筆類 可以定義畫筆並設定筆的顏色和粗細 qpen pen pen....