Présentation
Documentation
L'équipe
Sérialisation
 
Programmes
Objets
Libs Utilitaires
Libs Internes
   
 
Editeur
Syntaxes
Windows
Versions
   

SCR/AL1 - Evolutions récentes

7. Modifications apportées dans la version 4.44 (octobre 1998)

Marquer/Copier/Coller

Les champs éditables supportent en DOSW32 les séquences Ctrl+C, Ctrl+V pour effectuer du CUT and PASTE entre applications Windows.

Les opérations de "copier/coller" peuvent être effectuées entre toute application DOSW32 et d'autres programmes Windows (Excel, ...) ou entre différents écrans d'une application DOSW32. Le "Clipboard" de Windows est utilisé pour stocker les données copiées.

Les touches de fonction classiques de Windows ont été implémentées pour faciliter cet usage : Shift+curseur permet de sélectionner ou d'étendre la sélection et la souris permet de marquer des parties de texte. Pour placer du texte dans le Clipboard et copier ce qui s'y trouve à la position du curseur, on utilisera respectivement les touches Ctrl+C et Ctrl+V.

En édition d'une PAGE

En édition des champs EDITOR et dans MMT

DEMARQUER

DETRUIRE

COPIER

COLLER

INSERT ON/OFF

L'insertion est fixée par défaut à ON, pour permettre de rester en mode insertion lorsqu'on revient en édition d'une PAGE. Pour conserver la compatibilité avec la version autérieure, il suffit de fixer SCR_INS_TGL à 1 au démarrage de l'application.

DATES

Si l'année est codée sur deux chiffres, la variable SCR_Y2K_PIVOT détermine la plage qui détermine le siècle correct :

   int SCR_Y2K_PIVOT = 75;

Cette variable est utilisée lors de la transformation des dates formattées (YY) en long. Donc notamment dans la saisie des champs dates dans une PAGE. Pour connaître le siècle à indiquer dans une date dont l'année n'est connue que par les deux derniers chiffres, on choisit le siècle comme suit :

    soit
YY l'année introduite,
on prend :
date = siècle_ courant + YY;
si date < date_courante - SCR_Y2K_PIVOT ans
alors date += ans;
sinon si date >= date_courante + 100 ans)
alors date -= 100 ans;

Par exemple, si pivot = 75

    date_courante       MMDDYY          date
1/1/1999 "020295" 2/2/1995
1/1/1999 "020299" 2/2/1999
1/1/1999 "020201" 2/2/2001
1/1/1999 "020225" 2/2/1925
1/1/1999 "020210" 2/2/2010
1/1/2009 "020201" 2/2/2001
1/1/2009 "020225" 2/2/2025
1/1/2009 "020210" 2/2/2010

Variable SCR_Y2K : vaut 0 par défaut. Si elle vaut 1, l'affichage de l'année dans l'écran (SCR_DATE_POS) se fait sur 4 chiffres.

Affichage de la mémoire disponible

La taille mémoire disponible est affinée en Windows : elle s'affiche selon le cas en KB, MB ou GB.

Help

Correction des sujets avec accents.

ODBC

Le groupe s_odbc contient les fonctions nécessaires pour exploiter une base de données pour laquelle un driver ODBC est installé.

Bien qu'intégrées dans la librairie s32wiod.lib, elles sont indépendantes des objets de SCR/AL1, comme les ISAM. Il s'agit en fait d'une série de fonctions d'accès sur lesquelles l'interface ODBC de SCR/AL1 est construit.

Pour construire un programme qui fait usage de ces fonctions, il faut linker avec la librairie s32wiod.lib.

Logiciel requis

La version du gestionnaire ODBC installée doit au moins être 3.0. Les versions antérieures ne dispose pas de toutes les fonctions nécessaires. En cas de problème lors du démarrage d'un applicatif, il est probable que la version du gestionnaire ne soit pas d'un version suffisante. La dernière version se trouve dans le SDK de Windows 95/98.

Les drivers ODBC doivent être installés pour toutes les sources de données nécessaires. Les sources de données elles-mêmes doivent également être installées au niveau du gestionnaire ODBC.

Drivers testés

Les drivers suivants ont été testés:

Dans le cas d'Informix et d'Oracle, certaines limites sont apparues au niveau de la fonction OPrevious(). Celle-ci ne fonctionne pas dans ces deux systèmes. Il y a donc lieu, si cette fonction est nécessaire, de procéder artificiellement (par exemple en bufferisant) à une action équivalent.

Dans l'implémentation de SCR/AL1, une bufferisation est implémentée de façon à rendre transparente l'utilisation de la fonction IS_prev(). Celle-ci nécessite cependant un taille mémoire non négligeable et ralentit les traitements à certains moments.

Curseurs

Différents 'curseurs' sont proposés par les systèmes de bases de données relationnelles. Dans le cas de cette implémentation, on n'utilise que les curseurs dynamiques car ceux-ci offrent des fonctionnalités plus évoluées et permettent notamment de connaître les modifications apportées par d'autres programmes à la base de données. De plus, les recherches s'amorcent instantanément alors qu'avec d'autres curseurs, comme les 'block cursors', il faut attendre que tous les records soient bufferisés par le logiciel avant de recevoir le premier.

Fonctions de la librairie ODBC

Ouverture/fermeture d'une session

Ouverture/fermeture d'une source de données

Informations sur une base de données

Impressions

Commandes SQL

Messages

Programmes scr4wod.exe scr4w_od.exe

Le programme scr4wod.exe est l'équivalent ODBC de scr4w_e pour CTREE34.

Le programme scr4w_od permet quant à lui d'effectuer toute une série d'opérations sur des bases de données ODBC.

Syntaxe

    scr4w_od <-parm args> ...

-listdsn : list all registred Data Sources
-listtbls dsn : list all tables for DSN dsn (for all DSNs if dsn empty)
-infos dsn : list version infos for DSN dsn
-query dsn "sql" : exec query on dsn and display result dataset
-sql dsn "sql" : exec sql on dsn
-sqln dsn "sql" : translate (do NOT exec) sql into dsn driver native SQL
-sqlfile dsn file : exec lines (sql code) from file on dsn
-addaccess dsn descr file : add MS Access Data Source
-user user pwd : set user name and password on DSN
-h : display this help
-v : verbose

Exemples

    scr4w_od -listdsn
display all registred Data Sources
scr4w_od -listtbls access1
display in SCR/AL1 format the table definitions from dsn access1
scr4w_od -user JMP JMP -query informix "Select * from clients"
open DSN informix for user JMP, password JMP
execute the SQL cmd and display each record of the result set
scr4w_od -sql access1 "INSERT INTO client VALUES(17, 'Bureau du Plan')"
open DSN access1 and insert a new record
scr4w_od -sqlfile access1 sqlfile
execute all command in sqlfile on dsn access1

Syntaxe de sqlfile

Chaque ligne contient une commande SQL. Si le premier caractère de la ligne est un '+', le dataset résultat est imprimé dans le stdout.

Exemple

    +SELECT * from client ORDER BY name
DELETE from client WHERE name='Bureau du Plan'

Variables globales

SCR_DFT_SET_TODAY

    int SCR_DFT_SET_TODAY = 0;

Cette variable permet de mettre à 0 (si elle est fixée à 1) les champs TODAY dans la fonction PG_reset().

SCR_BC_RESET_APG

   int SCR_BC_RESET_APG = 1;

Cette variable indique s'il faut effectuer un reset de la APG au début de la fonction BC_create(). Elle est fixée à 1 par défaut, mais peut être fixée à 0 pour assurer la compatibilité avec les anciennes versions.

SCR_APPLYCMP_IFEMPTY

   int SCR_APPLYCMP_IFEMPTY = 0;

Si cette variable est fixée à 1, les CODEISAM ne sont pas appliqués sur les champs vides et les autres champs du même ISAM ne sont pas vidés lors du passage sur la champ code.

PRINTERS

PR_DOCNAME

Nouvelle variable PR_DOCNAME qui contient le titre optionnel du job d'impression lancé à l'aide des fonctions PR_*() ou WscrPrintRaw*(). Si elle est nulle, un titre par défaut est utilisé.

Le texte de cette variable doit être rédigé en ASCII DOS. Il est traduit en ANSI automatiquement.

    char    *PR_DOCNAME = 0;

Exemple

    PR_DOCNAME = "Gestion des Périodes";
...
PR_send();
PR_TITLE = NULL;

Mode DIRECT

Impression en mode "direct" automatique. Génère du Raw mode sous DOSW32, SCR4W32 et Unix. Le mot-clé DIRECT peut remplacer FILE ou PRINTER dans la définition d'un PRINTER. Dans ce cas, l'impression se fait en raw mode, c'est-à-dire sans interprétation par le driver de Windows.

SCR_ReadPrts()

Nouvelle fonction et nouvelle structure pour gérer les définitions des printers à partir d'un fichier ini:

        PRTDEV **SCR_ReadPrts(filename)

Lit un fichier de définition des imprimantes et crée un tableau de structures exploitables pour définir efficacement les PRINTER de SCR/AL1 dans différents sites. Voir cette fonction pour un exemple.

Copyright © 1998-2015 Jean-Marc Paul and Bernard PAUL - Envoyez vos remarques ou commentaires à bernard@xon.be