コード例 #1
0
ファイル: soui_cpp.php プロジェクト: hunanhd/cbm
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);
}
コード例 #2
0
ファイル: cpp.php プロジェクト: hunanhd/cbm
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);
}