- 博客(32)
- 资源 (3)
- 收藏
- 关注
原创 基于ODOO的报表设计器
一直以来,odoo的报表设计都被人诟病,因为odoo使用xml进行报表的设计,这对于大多数人来说是个灾难,即便是会写也感觉很麻烦,很多事情就是,有并不代表好用,客户要的是好用,而不是单纯的有,大多数时候,还是费时费力的去写代码,实际上并不可取,所以,针对这样的情况,我们开发了自己的专有报表设计器,效果如下。报表设计器吸收了第三方报表设计器的一些思想,同时又和ODOO进行深度结合,这样,ODOO的进销存本身就相对强大,结合起来就可以做很多事情,满足普通客户的需求完全没有任何问题。
2026-01-07 17:56:21
112
原创 如何快速读代码
实际上并非如此,理解是有前提的,这中间实际上会涉及记忆等,记忆是理解的前提,虽然大多数的内容我们都不需要去记住,但理解本身就是理清楚事物之前的关系,你连事物都不知道,又谈何理解,这是一个简单的因果关系。同时,人的接受能力也是有限的,如何减轻这些负担也是需要方法的,大多数人是排斥读代码的,因为人本身对陌生的内容就天生会排斥,同时,还有语方义层面上的问题,可能都有过体验,每一个字都认识,但就是理解不了,但是多一些时间之间双变得简单起来,实际上就是要去解决第二个层面上的事情。真正的快速读代码是这样的。
2025-06-20 16:55:41
214
原创 巧妙利用ODOO自有机制实现中国式搜索
社区里面关于ODOO中国式的搜索一直都很有争议,一部份人认为有必要,有部份人认为没有必要,以我的观点来说,争个毛线,两者结合起来不香么。说干就干,所以,基于ODOO的domain selector去实扩展,效果如下。两种模式,一种是管理员的编辑模式,一和中是用户的搜索模式, 管理员进行配置,实际上也可以把配置权限开放给用户。如此一来,不用过多的开发,同时拥有强大的自定义搜索功能,这恐怕比这些人自己去搞个四不像的要好多了吧。同时,自带的搜索和这个搜索可以进行切换,3、只显示自定义搜索。2、只显示自带搜索。
2025-06-20 16:41:27
243
原创 juce动画演示代码阅读
//特别说明:只是源码进行阅读,希望能有用,我没有做总结,不过后边会陆续更改,要不然太费时间。#include "../JuceDemoHeader.h"//==============================================================================/** This will be the source
2015-01-01 15:39:15
797
原创 juce的时间线程类
/* ============================================================================== This file is part of the JUCE library. Copyright (c) 2013 - Raw Material Software Ltd.
2014-12-19 00:05:24
830
原创 postgresql的transaction
从odb的源码中看出了,其实和其它的数据库一样,也都是三条命令。// file : odb/pgsql/transaction-impl.cxx// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC// license : GNU GPL v2; see accompanying LICENSE
2014-12-18 23:14:10
1129
转载 Ubuntu 14.04 LTS中怎样快速显示桌面
是否和我一样觉得,Ubuntu以往的版本都缺个像Windows中那样的点一下就显示桌面的按钮。这着实是个很实用的东西,想想当了N多个应用程序的窗口充满你的屏幕时,你需要一个个最小化最后才能看到放在桌面上的文件,这是否算一种痛苦的折磨!好啦,最新版的Ubuntu 14.04 LTS中就新增加了这个功能,可惜没有默认开启,我们小做一下设置,相当简单,关键是要你知道它藏在哪了。方法/步骤
2014-12-17 17:07:28
595
原创 juce 内存泄露检测
/** This macro lets you embed a leak-detecting object inside a class. To use it, simply declare a JUCE_LEAK_DETECTOR(YourClassName) inside a private section of the class declaration. E.g
2014-12-17 16:07:08
671
转载 APT是什么意思?
APT是Advanced Packaging Tool的缩写,是一款强大的包管理工具,也可以称作机制。使用Debian及其衍生版本的GNU/Linux用户一定对apt不陌生。在GNU/Linux中,对包的维护有多种方式。比如DebianGNU/Linux的dpkg(apt是dpkg的前端),比如RedHat的RPM。tarball方式需要由于定制性很高,因而笔者认为这不是有序的包管 理方式
2014-12-16 11:03:31
16783
转载 sudo是什么意思
sudo是superuser do的简写,sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。这样不仅减少了root用户的登陆 和管理时间,同样也提高了安全性。apt是个很完整和先进的软件包管理程式,使用他能够让您,又简单,又准确的找到您要的的软件包, 并且安装或卸载都很简洁。 他还能够让您的任何软件都更新到
2014-12-16 11:01:06
11107
原创 gh0st源码阅读--监控代码
void UIScreenItem::DrawNextScreenDiff(){bool bIsReDraw = false;int nHeadLength = 1 + 1 + sizeof(POINT) + sizeof(BYTE); LPVOID lpFirstScreen = m_lpScreenDIB;LPVOID lpNextScreen = m_pConte
2014-11-14 23:00:39
965
原创 dragon中的IRootInterface的IRootInterface
class IRootInterface{public: virtual ~IRootInterface() = 0 {}; // 确保delete时能调用到派生类的析构函数};
2014-09-16 21:24:18
591
原创 DRAGON中edit数据的封装
dragon数据使用editdata对数据进行封装。class EditData{public: EditData(); ~EditData();public: void BindToEdit(Edit* pEdit); void SetText(const TCHAR*, bool& bUpdate); void ReplaceChar(const TCH
2014-09-15 22:17:40
567
原创 关于rederbuffer
// gdi gdi+ 使用的双缓存class RenderBuffer{public: RenderBuffer(); ~RenderBuffer();public: void Resize(unsigned int width, unsigned int height); void Clear(DWORD dwColor, RECT* prc); vo
2014-09-12 15:39:47
417
原创 DRAGON POSTMESSAGE
读到哪,有感就写到哪,大家别介意,另外,我错别字也long UIPostMessage(HWND hForwardMsgWnd, UIMSG* pMsg, int nMsgMapID){ if (!pMsg->pMsgTo) return 0; UIMSG* pCloneMsg = new UIMSG; memcpy(pCloneMsg, pMsg
2014-09-11 23:02:11
395
原创 dragon的sendmessage
//// return// 利用pMsg->lRet作为返回值。// 事件响应函数的结果返回值作为pMsg->lRet;// 如果事件响应函数没有返回值,pMsg->lRet默认为0// remark// 想要知道这个消息有没有被处理,可调用IsMsgHandled()//// 注:对于系统的SendMessage,它的nMsg有范围限制的:// if(
2014-09-11 22:53:19
675
原创 推荐一个directui介绍的文章
http://blog.youkuaiyun.com/witch_soya/article/details/10982451
2014-09-11 22:15:31
536
原创 juce中的ComponentDragger
#ifndef JUCE_COMPONENTDRAGGER_H_INCLUDED#define JUCE_COMPONENTDRAGGER_H_INCLUDED//==============================================================================/** An object to take care of t
2014-09-03 16:04:20
647
原创 juce命令消息处理
class ApplicationCommandTarget::CommandMessage : public MessageManager::MessageBase{public: CommandMessage (ApplicationCommandTarget* const target, const InvocationInfo& inf) : owner (t
2014-09-02 18:31:50
904
原创 juce基本模板
class MyJUCEApp : public JUCEApplication { public: MyJUCEApp() {} ~MyJUCEApp() {} void initialise (const String& commandLine) {
2014-09-02 18:17:08
702
原创 JUCE中的消息送和listener
//============================================================================== /** Used to receive callbacks when a button is clicked. @see Button::addListener, Button::removeLi
2014-09-02 16:39:38
846
原创 juce中的消息循环及其处理
int JUCEApplicationBase::main(){ ScopedJuceInitialiser_GUI libraryInitialiser; jassert (createInstance != nullptr); const ScopedPointer app (createInstance()); jassert (app !
2014-09-02 14:36:14
1417
转载 关于函数后边的throw
看CImage函数实现的时候发现了这么个东东 inline HBITMAP CImage::Detach() throw()它是函数提供者和使用者的一种君子协定,标明该函数不抛出任何异常。之所以说是君子协定,是因为实际上内部实现是需要人肉确保。 如果一个标明throw()的函数内部发生了throw:1,如果内部直接throw somethin
2014-08-07 13:27:52
459
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅