====== NCReport C++ Report Engine======
NCReport is a powerful, fast, multi-platform and easy to use report engine library, report generator, report designer, report writer, reporting tool, document printing system written in C++ and based on Qt toolkit. The software's primary functions are direct printing, previewing or generating, PDF, PS, SVG, IMAGE and TEXT output file from data sources by using an XML report template. Supported platforms: Windows, Linux, MacOSX, Raspberry Pi. NCReport is already integrated and applied under Solaris, Embedded Linux and Android as well. The software code is fully Qt4 and Qt5 compatible. Since 2.26 version NCReport is Qt5 and Qt6 compatible.
[[wiki:todo|TODO page]]
graph TD
A(**mermaid**)-->B((__plugin__))
A-->C(((//for//)))
B-->D[["[[https://www.dokuwiki.org/dokuwiki|Dokuwiki]]"]]
C-->D
===== This is another =====
sequenceDiagram
Alice ->> Bob: Hello Bob, how are you?
Bob-->>John: How about you John?
Bob--x Alice: I am good thanks!
Bob-x John: I am good thanks!
Note right of John: Bob thinks a long
long time, so long
that the text does
not fit on a row.
Bob-->Alice: Checking with John...
Alice->John: Yes... John, how are you?
int EmailReader::imapFetch(int idFrom, int idTo)
{
CURL* curl;
CURLcode res;
// Initialize libcurl
curl_global_init(CURL_GLOBAL_DEFAULT);
// Create a curl handle
curl = curl_easy_init();
if (curl) {
// Set the IMAPS URL (replace with your email server details)
std::string emailData;
//const char* url = "imaps://ncreport.org:993";
// Set the username and password
//const std::string login = std::string("LOGIN ") + username + " " + password;
/* Set username and password */
curl_easy_setopt(curl, CURLOPT_USERNAME, email_address());
curl_easy_setopt(curl, CURLOPT_PASSWORD, email_password());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, EmailReader::writeCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &emailData);
curl_easy_setopt(curl, CURLOPT_USE_SSL, CURLUSESSL_ALL); // Set to use TLS (SSL)
/* This will fetch message 1 from the user's inbox */
for (int i = idFrom; i <= idTo; ++i) {
execIMAPUrl(curl, (std::string(email_url())+"/INBOX/;UID=" + std::to_string(i)).c_str(), emailData);
emailData.clear();
}
if (false) {
execIMAPCommand(curl, "FETCH 1:3 (BODY[])", emailData);
}
}
// Cleanup global resources
curl_global_cleanup();
return 0;
}
^ Heading 1 ^ Heading 2 ^
| Some text | Multiple\\ rows of\\ text |
[[start|NCReport C++ Report Engine]]