How to move data around in ZIM
Welcome to ZIM-X: The Future of Intelligent Application Development
ZIM is a natural language, integrated, full-stack, 4GL object-oriented framework (FOOF) designed to revolutionize how data-driven applications are built, scaled, and supported.
🔷 Why ZIM?
ZIM eliminates the complexity of traditional development by doing the heavy lifting for you. Most of the hard coding is already done—so you can focus on the intelligent part of your application. Whether you’re building enterprise-grade systems or rapid prototypes, ZIM empowers you to move faster, think smarter, and deliver more.
🧠 Object-Oriented Simplicity
ZIM treats everything as an object—from entities and forms to windows and procedures. This object-oriented approach means:
- Cleaner code with fewer lines.
- Reusable components across your application.
- Faster development cycles with less debugging.
⚡ SET Processing: Speed Meets Efficiency
ZIM’s unique Metadata Pointing Layer allows you to move data between objects without duplicating it. Instead of copying actual data, ZIM moves metadata pointers, which:
- Dramatically reduces computational load.
- Minimizes energy consumption.
- Enables real-time performance even with large datasets.
This is called SET Processing, and it’s one of ZIM’s most powerful features.
🌐 Unified Language for Full Stack Development
Forget learning multiple languages for backend, frontend, and database logic. ZIM is a unified language that lets you:
- Define entities (tables), forms, windows, and logic—all in one environment.
- Build, scale, and support enterprise applications without switching contexts.
- Maintain and extend your codebase with ease.
🔄 Global Session-Level Data Sets
ZIM’s SETs are temporary objects that exist globally within your session. This means:
- Any program running in the same session can reuse or modify the SET.
- You can share data seamlessly across procedures without re-querying.
- Developers can restrict access if needed, but by default, SETs are accessible session-wide.
This design makes ZIM ideal for building modular, collaborative applications where data flows naturally between components.
🧩 Minimal Code, Maximum Power
Here’s how easy it is to add data to an entity:
add 1 Customers let CompanyName = "ZIM-X" -> CustomerSet
This single line:
- Adds a record to the
Customersentity. - Assigns a value to the
CompanyNamefield. - Creates a temporary SET object (
CustomerSet) using metadata pointers.
Want to add more fields? Just extend the line:
add 1 Customers let CompanyName = "ZIM-X" PhoneNumber = "1234567890" -> CustomerNewSet
🧾 Program Documents: Logic Made Elegant
ZIM uses Document Objects to store and run your custom code. Here’s a sample procedure:
procedure CustomerAPP()
find all Customers -> CustomerSet
window open Window_00000 at center
form open CustomerForm
change all CustomerForm from CustomerSet
While
form display input
case
when event.eventname = "Closed" or event.eventname = "Escape"
break
endcase
endwhile
window close
endprocedure
This simple program:
- Finds customer records.
- Opens a window and form.
- Displays data.
- Handles user events like closing or pressing ESC.
No boilerplate. No clutter. Just clean, readable logic.
🚀 Ready to Build Smarter?
ZIM-X is more than a framework—it’s a philosophy. One that values speed, simplicity, and intelligence. Whether you’re a seasoned developer or just starting out, ZIM lets you build powerful applications with minimal effort and maximum impact.
