Добрий день!
Серед скриптових функцій є:
@Dialog.Add Variable=[#]Dialog|Sel|Header|Item1|Item2…- створює елемент для команди Dialog.Execute: ASK, MEMO, [#]SELECT, [#]LISTSELECT, [#]CHECKLIST
@Dialog.AddRecord Header|Table.Field1=Value:Name|… - діалог заповнення/редагування значень з додаванням їх в таблицю
@Dialog.EditRecord Header|Table.Field1=Value:Name|… - діалог редагуванні запису і оновлення його в таблиці
@Dialog.Execute Header - додає діалог з елементами, створеними викликами Dialog.Add
Можна отримати приклади, як ними користуватися? При використанні видає помилку:
[Microsoft][ODBC Driver Manager] Назву джерела даних не знайдено, і не вказано драйвер за замовчуванням.
1 Вподобання
Команди Dialog.Add/Dialog.Execute дозволяють створити та викликати комбінований діалог, який за один раз запитує багато різних опцій та параметрів, розбитих на групи.
Приклад
@Dialog.Add mode=CheckList|1 3|Створити|Нарахування|Платежі|Відрахування
@Dialog.Add divmode=Select|3|Поділ нарахувань|По даті|Автоподіл|Розбити помісячно|Поділ за поточним місяцем
$startdate=@Assign 01.01.2026
$stopdate=@Date
@Dialog.Add dates=Ask|Вкажіть дати|Початкова дата|$startdate|Кінцева дата|$stopdate
$S=@Dialog.Execute Виберіть параметри нарахувань
@Breakif $S
@Dialog.Message mode|$mode||divmode|$divmode||dates|$dates
В додаванні групи mode це назва змінної, CheckList тип группи, 1 3 номери помічених пунктів, Створити заголовок групи, далі перелічені всі пункти.
Результати кожної групи заносяться у відповідні змінні, вказані у команді @Dialog.AddDialog.AddDialog.AddDialog.AddDialog.AddDialog.AddDialog.AddDialog.Add. Якщо потрібно, щоб замість тексту поміченого пункту повертався його порядковий номер, тип групи має бути #CheckList або #Select.
1 Вподобання
Команди Dialog.EditRecord та Dialog.AddRecord викликають редагування існуючого запису в SQL базі даних, або створення нового. Приклад виклику для редагування запису таблиці contract, який має конкретний id.
@Text.Add contract.id=1000402
@Text.Add contract.num’=3091-С/КС
@Text.Add contract.company_code=38453810
@Text.Add contract.enddate’=19.04.2033
@Text.Add contract.parcel_code’=5325781200:00:015:0091
@Text.Add contract.area=0,1256
@Text.Add contract.date’=30.08.2024
$S=@Text.Text
@Dialog.EditRecord Редагування договору|$S
1 Вподобання
Дякую! Це цікаве поєднання діалогів. Широкі можливості.До речі, цю логіку дуже добре розуміє Gemini:
; — Завантаження значень (імітація) —
$GrTempl=@Assign 1
$TxtDig=@Assign 1
$TxtWord=@Assign 0
$Buffer=@Assign 0
$GroupMode=@Assign 0
$Prov=@Assign Передкарпаття
$Paper=@Assign A4
;
; — Побудова діалогу —
;
; Группа “Так/Ні” через CheckList (повертає індекси вибраних, напр. “1 2 5”)
@Dialog.AddDialog.Add Opts=CheckList|$GrTempl $TxtDig $TxtWord $Buffer $GroupMode|Активувати модулі|Графічні шаблони|Текстові (Digitals)|Текстові (Word)|Буфер обміну|Груповий режим
;
; Списки вибору через Combo (займають лише@Dialog.Add1 рядок)
@Dialog.Add Prov=Combo|1|Провінція агрогруп ґрунтів|Передкарпаття|По@Dialog.Addісся|Лісостеп|Степ
@Dialog.Add Paper=Combo|1|Формат аркуша|A4|A3|A2|A1|Свій формат@Dialog.Add
;
; Додаткові текстові поля
@Dialog.Add Coord=Ask|Координати|Друга система координат|$CoordValue
;
; Виклик вікна
$S=@Dialog.Exe@Breakifute Налаштування модуля “Документаці@Dialog.Message”
@Breakif $S
;
; — Візуалізація результату —
@Dialog.Message Ви вибрали налаштування:||Опції: $Opts||Провінція: $Prov||Формат: $Paper
Ще форма для вибору дати:
; Підготовка списків
$Days=@Assign 01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31
$Months=@Assign січня|лютого|березня|квітня|травня|червня|липня|серпня|вересня|жовтня|листопада|гр@Dialog.Addдня
$Years=@Assign 202@Dialog.Add|2025|2026|2027
;
; Побудо@Dialog.Addа діалогу
@Dialog.Add d=Combo|1|День|$Days
@Dialog.Add m=@Breakifombo|1|Місяць|$Months
@Dialog.Add y=Combo|3|Рік|$Years
;
$S=@Dialog.Execute Виберіть дату
@Br@Dialog.Messageakif $S
;
; Складання дати докупи (приклад для текстового звіту)
$FullDate=@Assign $d $m $y року
@Dialog.Message Обрана дата: $FullDate