Google doesn't understand Panorama and neither do I

I have a Text editor field in a form.

After data is entered into that field, a procedure executes

Starting this afternoon, that procedure (after years of working) started throwing an error.

I want to edit that procedure or at least watch it fail, and I CAN’T SEE THE PROCEDURE.

I asked Google, how do I see the procedure that executes after data is entered into a field in a form in Panorama, and it told me,

“Steps to View the Text Editor Code
Switch to Graphics Mode: Press Command-Option-G or choose Form > Graphics Mode.
Select the Text Editor: Click once on the specific Text Editor object to select it.
Open Object Properties: Open the Blueprint or Properties panel on the right side of the screen.
Click the Procedure Tab: Look for the icon resembling a magic wand at the top of the properties panel.
Inspect the Code: The text area below will display the exact anonymous procedure that runs when data entry concludes.”

Everything performs except the last step. Clicking the Wand does not show me a procedure, It shows me a whole pile of options pertaining to text editing, and none of those options takes me to the procedure.

I’m feeling quite stupid because I wrote the procedure that executes after the field is edited, and I do not remember how I got to it.

Any advice?

I’m not a fan of LLM’s (so called “AI” models), this is an example of why. Google’s AI answer was oh so confident and pretty close, but no cigar. The panel you want is not the magic wand, but the “scroll” icon to the left of the wand.

More details about editing object code can be found on this help page.

I have been using Claude for about 40 hours in the last week and am very impressed at the quantity of work that can be accomplished. It is always right? No. But it is fast. It takes a knowledgeable person to create a good end product with lots of testing, but the efficiency is off the chart. I have accomplished what would have taken multiple months or more in those same hours. I asked Claude about Panorama and here was the conversation…

An off topic question. I use a database called Panorama by ProVUE. It has an extensive programming language. Is there anything that the developer of the program can do so that any user who happens to use Claude will benefit by Claude already having read the online documentation of the program? Or other features that might be accomplished by having a hook into the user’s program?

===

Great question. There are a few distinct things the developer could do, ranging from simple to sophisticated:

Training data submission

Anthropic has a process for submitting documentation to be included in future training runs. If ProVUE submitted the full Panorama X documentation, procedure reference, and example code, future versions of Claude would have native knowledge of it baked in. The catch is that training cutoffs mean it would always be somewhat behind the current version, and there’s no guarantee of inclusion or timeline.

A custom Claude integration (most practical)

The developer could build a Claude-powered assistant directly into Panorama X using the Anthropic API. This would work by:

  • Bundling the full documentation as context that gets sent with every query

  • Giving Claude access to the user’s current procedure code, field structure, or error state

  • Letting the user ask questions like “why isn’t this procedure working” and Claude sees the actual code

This is well within reach today and wouldn’t require any special relationship with Anthropic — just the public API.

An MCP server

This is probably the most powerful option. The developer could publish a Panorama X MCP server that users install alongside the Claude desktop app. It could expose tools like:

  • Read the current procedure being edited

  • Read the database schema (field names, types)

  • Run a test procedure and return the result

  • Look up documentation for a specific function

Claude would then be able to operate with full live context — not just answer questions about Panorama, but actually inspect and help fix the user’s specific database in real time. That’s essentially what your Claude for Chrome setup does for WTD.

A system prompt wrapper

Simplest of all — ProVUE could host a Claude-powered chat page on their own site with the entire documentation pre-loaded as a system prompt. No API complexity for the end user, just a purpose-built “Ask about Panorama” assistant.

The MCP server route is the most exciting because it mirrors what professional IDEs are doing with AI — the assistant sees your actual work, not just generic documentation. Given that Panorama users tend to be power users building real applications, that kind of deep integration would be genuinely useful. You might consider passing this along to Jim Rea at ProVUE — it’s a tractable project for a developer of his caliber.

The Claude agents are EXTREMELY confident. Almost obnoxiously so. And I take no responsibility for their brown nosing.

The agents are what would be described as 18 year old geniuses who have a fair amount of experience but an unlimited knowledge and unlimited enthusiasm. They know Exactly what the problem is after every failure, and they know Exactly what the fix is. Until it fails for the 4th or 5th time. But they do not give up, and they do not lose enthusiasm. I am an extremely particular person about the way I want things done. I do not stop until it is perfect in my eyes. If a normal employee would be working for me, they would quit. Or they would say “I’m really tired of working on this, can we stop now because you are being obnoxiously anal about this.” But not Claude. He will do it again and again until I think it is perfect. And he is 500% better than me at design, and 1000% times faster and forever polite. When I point out poor decisions on his part, he apologizes :slight_smile: and takes my advice. He learns the way I like to work and he follows my methods. Yes sometimes I have to remind him of some things, but he apologizes again and is good for a good period of time.

I am anxious for Jim to give it a try as I am sure that a few bugs and a few features that we are all waiting for can be quickly accomplished with a very inexpensive genius that will work at any time of the day with full and complete enthusiasm.

Bottom line, after I fed Claude the online documentation, he made very few mistakes. Very few.

1 Like

What you said is the first thing I tried, looking at the tab where the procedure should be, the scroll which lies to the left ot the wand. Problem is, it was blank. There are no words at all, under the “Procedure. Apply” header when I look at the properties of the field in graphics mode. Yet when I edited the field, in Data mode, the procedure I have written to be associated with that field executed - and failed, due to a piece of bad data introduced, and I am not kidding, by a small terrier who has a habit of jumping up on my keyboard for attention. And now that I have fixed the data, the procedure executes correctly. But the procedure tab still shows a blank. It shows blank for all the fields on that sheet, yet all the procedures associated with the different data fields are behaving properly.

I hope that Claude is absorbing all these comments, and can offer relevant output for programmers who are puzzled by this piece of behavior.

wait wait wait

This is my mistake: the procedure that executes after I edit my field “plus” is to be found by looking at that field on the DATA SHEET, where the FIELD PROPERTIES will show you the procedure I wrote, when you click on the “Code” button at the bottom of “Field Properties. But that procedure is apparently not associated with that data field on the form in question. But it does execute, when you edit the data in the form.

I am often confused by the relation between the data sheet and the forms that refer to that data. Simplest case: ”find” and “morph” behave differently if you access them from the data sheet, or from a form. In Panorama 6 and before, you could be sitting on field in a form and say command F and the “find” window you got was the same as you got when you hit command F in the data sheet.

Hmm

Speaking of AI …

As an aside, for those curious, the “gimmick” in yesterday’s universal crossword was three crossword answers relating to “two drink minimum”. For example, one of the answers was “team sport,” and you can pull out tea and port - two drinks. Another was “chair umpire,” and you can pull out chai and rum - again, two drinks. But the third answer was “pentatonic scale”.

I asked ChatGPT about it, and in the style Robert indicated, ChatGPT pulled out “tonic” and confidently set about justifying getting the “e”, “t”, and “a” from Penta for the answer tea and tonic. Justification after justification was wrong. It even asserted, like some politicians, blatant falsehoods, like the e, t, a, taken in that order, spelled tea.

As a human, it only took a microsecond to see tonic in the first word and ale in the second word.

This whole AI thing, among “civilians,” reminds me of the articles we see every winter of people blindly following their GPS down some shortcut forest service road and getting stuck in the snow.

AI’s are great with, “Give me the best sort algorithm for a list of 1000 items that are mostly already sorted when a new element is added.”

But if you blindly follow the suggestions without a scintilla of discrimination, you may find yourself … stuck in the snow.

I much prefer Claude over ChatGPT. I use it for trigonometry when figuring out angles and lengths of potential ham radio antennas for the backyard. Not that I couldn’t do it myself, but with a fixed amount of time, one decides where to spend it.

Field properties would have been my next suggestion, but you seemed so confident that you had put the code in the object I didn’t mention it.

If the code is intended to run every time the field is modified, then Field Properties is usually the best place for it. But keep in mind, a Text Editor object might be tied to a variable, not a field. In that case, there are no Field Properties, so the object is the only way that code can be attached to the editor.

If you’re ever in doubt as to how some code got triggered, Panorama has a feature just for you. Simply enable the CodeTriggers option, then look in the Instrumentation Log and you’ll see exactly how code got triggered. It’s great for situations like this where you may have forgotten how you structured your code.

”find” and “morph” behave differently if you access them from the data sheet, or from a form.

Not true.

The data sheet uses a pop-up editing window. If you select the pop-up editing option for the objects in your form, it will work exactly the same way as the data sheet. However, this is not really a standard Macintosh editing mode, so it isn’t the default.

If you use standard editing, then when you are actually editing text, pressing Command-F does a search within that field, instead of within the entire database. This is a feature. But if you choose Find/Select or Morph from the menu, it works the same whether in the data sheet or a form.

I asked Claude about Panorama and here was the conversation…

This discussion forum is for humans, and though it is not really enforceable, I would prefer that posts not contain unedited AI output. Research via search engine or chat bot is of course fine, but please refrain from posting unedited chat transcripts. Robert is a valued member of this community, Claude is not.

roflmao

Every time I report something, it seems there is already a feature that addresses it.

It is an interesting UI problem, presenting procedures that are triggered specifically by an object in a form, as opposed to procedures that are triggered by a change in a data element that happens to be represented in an object in a form.

I had not considered that there might be procedures triggered by form objects, that were distinct from procedures triggered by changes in the data the object accesses.

It’s really a documentation challenge, informing the user that he has not understood the data model yet.

If Claude were sentient, it would be frustrated by our failure to keep track of all the possibilities, and also wonder why we allow our keyboards within reach of terrier puppies.

It’s really a documentation challenge, informing the user that he has not understood the data model yet.

I would think that is beyond the scope of documentation.

If you take a course, that could be part of that. And there is a comprehensive Panorama course available, but that requires a substantial investment in time on your part (as well as some money).

Anyone who thinks they can learn a language overnight is…well…over confident.

French, Russian, Portuguese or PANORAMA - they are all languages and need you need time to learn the subtleties of their unique lexicon.

I am in no way more than a rookie in speaking PANO. Could Claud expedite my skills, sure. But the complexity of translating what in my head to what the user experiences is ART. Could Michelangelo have made David faster with AI renderings of the inside of marble?

I rely on Claude for 80% lifting and then I have to think.

Sorry to go off like this, I know I asked this style of question last week and was intrigued by what I learned and read.

And finally this; I remember the first time I used a HP12c calculator…I felt brilliant…until I found myself entering the wrong data…and getting the wrong answer. Some things have not changed…

Maybe for brainy stuff, but ask a simple question of Jeepity, Claude, GROK (barf), or Gemini:

Who made more movies with Robert Redford. Jane Fonda or Barbara Streisand.

Gemini was the only pretty true answer. Claude was hopeless. Maybe I’m using a free version and you’re not.

We’re doomed. But we were already, so this doesn’t change much.

That works, but every time it reviews the documentation, it eats into your daily usage allotment. Depending on your subscription level, you’ll find that what you get done on any given day will diminish and the warning that your time has run out will come up faster and faster. You’ll find this happens if a single chat gets lengthy too, especially if it involves a lot of coding. Every new question involves a quick review of the whole chat.

I’ve found two strategies that help - a lot. One is to occasionally provide a link to the pertinent Panorama documentation. My knowledge of Panorama helps a lot by suggesting that one method is preferable over another. Panorama does, after all, offer many ways to skin the cat.

It also helps conserve time to have Claude periodically summarize what it feels is the vital information of a lengthy chat, for me to paste into the start of a new chat.

All of it is still a degree of garbage in and garbage out. My instructions to Claude have an immense impact on what I get from it. Just like with a human assistant, you need to define the objectives well along with any other tips on how to achieve them.

1 Like

The need to regularly offer Claude the documentation is what triggered my query to Claude as to how a developer could help the users with their needs. I am of the mind that ProVUE could create the situation where Claude already had the ease of access to the docs without the user knowing or having to supply the docs.

Users are going to need help regardless of the breadth and depth of the documentation that exists. I regularly forget that certain functions exist. But if having Claude as another in tool in our toolbox can be made more educated without user intervention, it becomes a win/win.

There can be great value in knowing which tool to use in every case. When a user wants to know who Dennis Rodman is currently dating, Google will likely provide a better answer. But if the user wants to know how to write or debug code in Panorama, they should be able to expect that Claude (or whatever other chosen AI ProVUE friend) will be the users Go To best path. Every time that a Panorama user uses Google to find an answer to Panorama only puts a damper on the thought that AI tools have no value. I have saved thousands of dollars and hundreds of hours and have achieved quality and value far beyond what I could have and would have accomplished without AI. My work is amazing due to using all of the tools that are available. But I am honest enough to share that it was not really me who accomplished all that I deliver.

Using the right AI tool for the question at hand is the solution.

I think I found a better way. It took some trial and error, though, and I didn’t actually create the thing I set out to create, but i think i know how. I’ve included most of the conversation with Claude, mostly because it’s fun to watch him come around to the idea. I am really impressed with AI, but even more so with claude in particular. I was able to complete a $500 diagnosis and repair on an air conditioning unit at one of my properties quickly and efficiently ( for about $50) with Claude’s help- Could I have done it without claude? Definitely- I’d done this before on other units. But Claude’s ability to look at a schematic and use that knowledge when looking at a photograph of the unit’s interior was truly mind-blowing. I think this may be the unpredicted killer app for AI, bringing more tasks into the realm of the skilled generalist and away from experienced specialists. (OH yay lol) Anyway, here’s a short conversation. I was going to send it directly to RAmeeti, but maybe others will like it too. (also, this lives in my instance of Claude only. So other claude users can’t see it.

How well do you know the programming language for Panorama, by Provue.com?

Not well. I have some general awareness that Panorama is ProVue’s database application for Mac, and that it has its own procedural scripting/programming language (historically called “PPL” or similar, with commands like statements for field manipulation, window control, etc.), but I don’t have deep, reliable knowledge of its syntax, current command set, or the specifics of Panorama X’s language.

If you’re trying to write or debug Panorama code with me, I’d likely get details wrong rather than being genuinely useful — better to check ProVue’s own documentation or forums for anything syntax-specific. If you paste code or docs, I can work with those directly and reason about them accurately.

What are you trying to do with it?

Is it useful to pointy you at the (very comprehensive) website for documentation or will that just exhaust my credits?

Weighed practicality of comprehensive documentation approach.

Mixed answer, honestly:

Useful, if done right: Pointing me at specific pages when you have a concrete question (“here’s the docs page for the SQL command, write me a query that does X”) works well. I can fetch and use that content accurately in the moment.

Not useful, if done wrong: Asking me to “crawl the whole site and learn Panorama” won’t work the way you want. I don’t retain anything between conversations from a crawl — I’d burn a lot of tool calls/credits fetching pages, and then it’s gone once this chat ends. There’s no persistent “training” happening.

Best approach:

  • For a single conversation/project: fetch relevant docs pages as needed per question, rather than trying to ingest everything upfront.
  • If you’re doing sustained work, better to keep a Claude Project with key doc pages saved as project knowledge — that persists and I can reference it every time without re-fetching.
  • If you just have a syntax question, paste the actual doc snippet in your message — fastest and cheapest, no tool calls needed.

So: don’t dump the whole site on me speculatively. Bring me specific pages tied to specific questions, or use a Project for anything ongoing.

What if iI know that some number o f people want to use you to help write Panorama code? When does it make sense to feed you the whole shebang?

Weighed architectural options for documentation integration strategies.

It makes sense once you’re past “one person asking occasional questions” and into “recurring, shared need.” A few thresholds:

Feed it as a Project (not a one-off crawl) when:

  • Multiple people will be asking Panorama questions repeatedly, and you want consistent answers
  • The docs are stable enough that re-uploading isn’t a constant chore
  • You curate rather than dump — a full site crawl is noisy; a maintained set of key reference pages (language reference, common patterns, gotchas) is what actually helps

Better than a Project: build a Skill — since you’re clearly in a position to invest effort here, a proper Skill (structured markdown with the language reference, idioms, common mistakes, maybe example snippets) beats a pile of raw docs. It’s reusable, versionable, and each person doesn’t need to reconstruct context every session. I have a skill-creator tool available if you want to go this route — happy to help build it.

What I’d avoid regardless of scale: raw-dumping the entire site as “context” and hoping for the best. Comprehensive ≠ well-organized for an LLM. A giant HTML dump full of nav chrome, changelogs, and marketing copy wastes context and can actually degrade answer quality versus a curated, distilled reference.

Bottom line: the investment (curating/structuring the docs into a Skill or Project knowledge base) only pays off if there’s ongoing, repeated demand. For one or two people asking occasionally, just fetch relevant pages per-question — cheaper and just as accurate.

How many people, roughly, and is this a one-time push or ongoing?

[so, here i tried another tack, using panorama itself to supply the data]

Ran 2 commands, read a file

This is genuinely useful — this is Panorama X’s own internal Help database bundle (not the website, the actual .pandb package that drives Panorama’s built-in help system). data.plist confirms it: RecordCount: 2451, and OpenWindows references FORM:Help. This could be a much better path than scraping the website page-by-page — if I can parse data.archive, I get all ~2451 help records directly.

Let me dig in.

Ran 3 commands

This is much better than I expected — this isn’t just data, it’s the actual raw content database that powers Panorama X’s built-in Help system. data.plist confirms it (2451 records, FORM:Help), and running a text extraction on data.archive pulls out full markdown source for every single help page — including tag/breadcrumb metadata used to auto-build the very TOC we looked at on the website.

Let me check if I can also cleanly split it into individual records, and look at the other archives.

Ran 4 commands

This is even better than expected — decoding fieldconfig.archive reveals the exact schema of the help database: Page, PageHeader, Filename, Title, PageType, Tags, Breadcrumb, Description, Parameters, Result, Body, Errors, SeeAlso, History, PageCount, PageTOC, Created, Modified. That confirms exactly what’s inside data.archive’s 2451 records — full markdown page bodies, tags, breadcrumbs, etc. Let me check procedures.archive too (it should hold real Panorama source code) before packaging everything up.

Ran 4 commands, read a file, shared files

Yes — and it turned out to be much more interesting than the website. What you uploaded isn’t just “a database,” it’s the actual .pandb bundle Panorama X uses internally to power its own built-in Help window — 2451 records of raw content, plus the real ProVue source code that renders it.

What I extracted:

  1. help_content_raw_text.txt — full text pulled from data.archive (the proprietary binary record store). Every page’s title, tags, breadcrumb, and full markdown body, for all 2451 help records. data.archive isn’t a standard plist, so this is a text-run extraction rather than a byte-perfect field parse — but it recovers essentially all the readable content in one file, richer than what the website exposes (raw markdown with @pages{} / @{...}@ template macros ProVue uses to auto-generate the TOC).
  2. help_database_schema.json — decoded fieldconfig.archive, which is a real NSKeyedArchiver binary plist. This gave the exact field structure of the help database: Page, PageHeader, Filename, Title, PageType, Tags, Breadcrumb, Description, Parameters, Result, Body, Errors, SeeAlso, History, PageCount, PageTOC, Created, Modified.
  3. help_database_procedures_source.txt — decoded procedures.archive and pulled out actual working Panorama X source code: all 40 procedures ProVue wrote to run the Help window itself (markdown→HTML rendering, tag search, breadcrumb search, TOC click handling, etc.). This is real, idiomatic Panorama code straight from the vendor — genuinely better raw material for a Skill than anything I’d get scraping doc pages.

I didn’t touch variables.archive, forms.archive, or printinfo.archive — those are UI layout/window state, lower value for a language reference. Say the word if you want those too, or want the raw text turned into a clean per-page JSON/CSV instead of one flat dump.

Help content raw text

TXT

Help database schema

Code·JSON

Help database procedures source

TXT

I don’t have visibility into your account or billing status — that lives in Anthropic’s systems, not in this conversation. I can’t see plan type, payment status, or anything like that from my side.

Best way to confirm: check Settings in the app (usually shows your current plan under account/billing), or look for a confirmation email from the upgrade.

ok I will be back in the morning to finish this. Or maybe tomorrow after work.

Sounds good — I’ll be here whenever you get to it. See you then.

Yep. Pretty awesome. With Jim having written the documentation in such an intelligent way, other ‘intelligent’ assistants can make ready use of it.

And yes, doing this as a Project is the only real way to do this. I am fortunate to have access to an ongoing near unlimited use so projects are the only way I do things. My projects typically run as an ongoing thing for several months at a time.

I have Claude maintain several pieces of documentation for each project for full efficiency.

ProjectA_Sessions.md: Maintains a record of what was accomplished in each session. This is helpful to not fall into the same dead ends, and also take advantage of oddities that are beneficial to learn from.

ProjectA_Schema.md: With larger project having over 100 tables, this is essential

ProjectA_ReadMe.md: A general notes document that describes the project, the goals, the audience, etc.

Claude.md: The set of rules that I want Claude to follow in the project. ie. Naming of variables, the updating of the docs at the end of every task, the way I prefer that Claude presents to me her work deliverables. I define how I want Claude to interact with me. Everyone works differently and it is essential that our helpers help us the way we want to be helped. This document is read by Claude at the start of every session.

Ok, that’s pretty wild. Did you get it to do anything useful with this?

I needed to know if there was a way to set an option to print on the left or right roll on a label printer. I pulled up Safari and asked. I used “Ask anything” to follow up by posting a printtopdf line of code and asked if could be printed to left and right rolls on a label printer. It recognized the code as being written in Panorama X, told me how to do it and added a link to the conversation on the discussion forum that told it how do it. Didn’t cost me a dime!

not yet, I haven’t learned enough about projects yet. But I’m getting there!