function dlg_cpp_file($file, $dlg, $vars, $ids) { $ChildDlg = camel_case($dlg) . "Dialog"; $ParentDlg = 'AcadSouiDialog'; fwrite($file, "#include " . DBL_QUOT . "stdafx.h" . DBL_QUOT . ENTER); fwrite($file, "#include " . DBL_QUOT . "{$ChildDlg}.h" . DBL_QUOT . ENTER); fwrite($file, ENTER . "#include <ArxHelper/HelperClass.h>" . ENTER); fwrite($file, "#include <Dao/DaoHelper.h>" . ENTER); fwrite($file, "#include <Dao/Entity.h>" . ENTER); fwrite($file, "using namespace orm;" . ENTER); fwrite($file, "using namespace cbm;" . ENTER); //构造函数 fwrite($file, ENTER . "{$ChildDlg}::{$ChildDlg}(BOOL bModal) : {$ParentDlg}(" . tchar("layout:{$dlg}") . ", bModal)" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, "}" . ENTER); //析构函数 fwrite($file, ENTER . "{$ChildDlg}::~{$ChildDlg}()" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, "}" . ENTER); //OnCommand函数 fwrite($file, ENTER . "void {$ChildDlg}::OnCommand( UINT uNotifyCode, int nID, HWND wndCtl )" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, TAB . "if(uNotifyCode==0)" . ENTER); fwrite($file, TAB . "{" . ENTER); fwrite($file, TWO_TAB . "//if(nID==6)" . ENTER); fwrite($file, TWO_TAB . "//{" . ENTER); fwrite($file, TWO_TAB . "//}" . ENTER); fwrite($file, TAB . "}" . ENTER); fwrite($file, "}" . ENTER); //OnInitDialog函数 fwrite($file, ENTER . "LRESULT {$ChildDlg}::OnInitDialog( HWND hWnd, LPARAM lParam )" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, TAB . "{$ParentDlg}::OnInitDialog(hWnd, lParam);" . ENTER); fwrite($file, TAB . "//do something" . ENTER); //变量定义 impl_function_onInitDialog($file, $vars); fwrite($file, TAB . "return 0;" . ENTER); fwrite($file, "}" . ENTER); //消息映射函数实现 impl_msg_handler_by_name($file, $vars, $ChildDlg); impl_msg_handler_by_id($file, $ids, $ChildDlg); }
function gen_entity_source_file($file, $tbl_name, $fields, $relations) { //去掉cbm前缀,作为文件名 $fname = table_no_prefix($tbl_name); //得到类名 $clsname = camel_case($fname); fwrite($file, ENTER . "CString {$clsname}::Table()" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, TAB . "return " . tchar($tbl_name) . ";" . ENTER); fwrite($file, "}" . ENTER); fwrite($file, ENTER . "orm::RecordPtr {$clsname}::Create()" . ENTER); fwrite($file, "{" . ENTER); fwrite($file, TAB . "return orm::RecordPtr(new {$clsname}());" . ENTER); fwrite($file, "}" . ENTER); //构造函数 fwrite($file, ENTER . "{$clsname}::{$clsname}() : orm::Record({$clsname}::Table())" . ENTER); fwrite($file, "{" . ENTER); //初始化成员变量 foreach ($fields as $name => $type) { $param_type = $type; $var_name = $name; $field_name = table_no_prefix(table_no_id($name)); if ($name == 'id') { continue; } //该字段是外键(所有的外键ID都是以_id结尾的) if ($field_name != $name && $name != 'id') { $param_type = camel_case($field_name); $var_name = $field_name; } else { $default_value = type_default($type); fwrite($file, TAB . $name . " = " . $default_value . ";" . ENTER); } } //注册属性,并关联成员变量 foreach ($fields as $name => $type) { $param_type = $type; $var_name = $name; $field_name = table_no_prefix(table_no_id($name)); if ($name == 'id') { continue; } //该字段是外键(所有的外键ID都是以_id结尾的) if ($field_name != $name && $name != 'id') { $param_type = camel_case($field_name); $var_name = $field_name; } else { fwrite($file, TAB . "REG_ATTRIB({$name}, {$var_name});" . ENTER); } } //注册属性,并关联成员变量 foreach ($fields as $name => $type) { $param_type = $type; $var_name = $name; $field_name = table_no_prefix(table_no_id($name)); if ($name == 'id') { continue; } //该字段是外键(所有的外键ID都是以_id结尾的) if ($field_name != $name && $name != 'id') { $param_type = camel_case($field_name); $var_name = $field_name; fwrite($file, TAB . "REG_FOREGIN_KEY({$name}, {$var_name}, &{$param_type}::Create);" . ENTER); } } fwrite($file, "}" . ENTER); }