pywinauto how to click on a pane? - installation

Dialog - 'sample' (L585, T187, R1341, B716)
['Dialog', 'Sample', 'Sample']
child_window(title="Sivielliance Suite", control_type="Window")
|
| Pane - '' (L588, T213, R1338, B713)
| ['Pane', 'Pane0', 'Pane1']
| |
| | Pane - '' (L588, T213, R844, B673)
| | ['Pane2']
| |
| | Pane - '' (L588, T675, R1338, B713)
| | ['Pane3']
| | |
| | | Pane - '' (L588, T693, R1093, B694)
| | | ['Pane4']
| | |
| | | Pane - '' (L1093, T681, R1333, B706)
| | | ['Pane5']
| | | |
| | | | Pane - '' (L1255, T681, R1331, B706)
| | | | ['Pane6']
| | | |
| | | | Pane - '' (L1175, T681, R1251, B706)
| | | | ['Pane7']
| | | |
| | | | Pane - '' (L1095, T681, R1171, B706)
| | | | ['Pane8']
| |
| | Pane - '' (L588, T673, R1338, B675)
| | ['Pane9']
| | |
| | | Pane - '' (L588, T673, R1338, B675)
| | | ['Pane10']
| |
| | Pane - '' (L844, T271, R1338, B673)
| | ['Pane11']
| | |
| | | Pane - '' (L844, T271, R1338, B673)
| | | ['Pane12']
| | | |
| | | | Image - '' (L852, T286, R1330, B305)
| | | | ['Image', 'Image0', 'Image1']
| |
| | Pane - '' (L844, T213, R1338, B271)
| | ['Pane13']
| | |
| | | Image - '' (L854, T231, R1043, B252)
| | | ['Image2']
|
| TitleBar - '' (L604, T190, R1338, B213)
| ['TitleBar']
| |
| | Menu - 'System' (L593, T195, R615, B217)
| | ['System', 'Menu', 'SystemMenu', 'System0', 'System1']
| | child_window(title="System", auto_id="MenuBar", control_type="MenuBar")
| | |
| | | MenuItem - 'System' (L593, T195, R615, B217)
| | | ['System2', 'MenuItem', 'SystemMenuItem']
| | | child_window(title="System", control_type="MenuItem")
| |
| | Button - 'Minimize' (L1199, T188, R1246, B213)
| | ['Button', 'MinimizeButton', 'Minimize', 'Button0', 'Button1']
| | child_window(title="Minimize", control_type="Button")
| |
| | Button - 'Maximize' (L1246, T188, R1292, B213)
| | ['Button2', 'MaximizeButton', 'Maximize']
| | child_window(title="Maximize", control_type="Button")
| |
| | Button - 'Close' (L1292, T188, R1339, B213)
| | ['CloseButton', 'Button3', 'Close']
| | child_window(title="Close", control_type="Button")
I am unable to click on any of the child panes. Is there any solution for this?
Control identifiers
app.dlg.child_window(control_type="Pane",found_index=0).app.dlg.child_window(control_type="Pane",found_index=2).app.dlg.child_window(control_type="Pane",found_index=0).app.dlg.child_window(control_type="Pane",found_index=0).app.dlg.child_window(control_type="Pane",found_index=0).app.dlg.child_window(control_type="Pane",found_index=2).app.dlg.child_window(control_type="Pane",found_index=0).app.dlg.child_window(control_type="Pane",found_index=0).click_input()

Related

Submitting a form leads to log out

Information:
Language: PHP
Framework: Laravel 9
Database: Firebase, firestore
I'm trying to input data from a form in a blade to firestore database. However, it doesn't add in the database. Also after clicking the submit button, it just redirect me to the login page. Basically, it log outs me without even having successfully adding the data input.
What I have tried so far:
as per #Aless55, there might be an error. I checked, there's none.
InventoryController:
public function store(Request $request){
$data = [
'SKU' => $request->invSKU,
'Product Name' => $request->invName,
'Stock' => $request->invStock,
'Date added' => Carbon\Carbon::now(),
'Last Update' => Carbon\Carbon::now(),
'Item sold' => '0',
'Status' => 'active'
];
$postData = $this->app('firebase.firestore')
->database()
->collection('Inventory')
->newDocument()
->set($data);
if($postData){
return redirect('admin.inventory');
} else{
return redirect('admin.inventory-add');
}
}
web.php:
//For Inventory
Route::controller(App\Http\Controllers\InventoryController::class)->group(function(){
Route::get('inventory/add', 'invAdd')->middleware('user','fireauth');
Route::post('inventory/add/product', 'store')->name('add.product');
Route::get('inventory/archive', 'invArchive')->middleware('user','fireauth');
});
form part of inventory-add blade:
<form style="padding-left: 0px;margin-left: -9px;" method="POST" action="{{Route('add.product')}}">
#csrf
<div style="display: flex;">
<div style="padding-right: 0px;margin-right: 29px;">
<h6>Name</h6><input class="form-control" type="text" style="padding-bottom: 0px;" name="invName" autocomplete="off">
</div>
<div style="padding-right: 0px;margin-right: 29px;">
<h6>SKU</h6><input class="form-control" type="text" style="padding-bottom: 0px;" name="invSKU" autocomplete="off">
</div>
<div style="padding-right: 0px;margin-right: 29px;">
<h6>Starting Stock</h6><input class="form-control" type="number" name="invStock" autocomplete="off">
</div>
</div>
<div style="display: flex;margin-top: 11px;">
</div><button class="btn btn-primary" type="submit" style="margin-top: 15px;text-align: right;margin-left: 397px;padding-right: 14px;background: #2f3192;">Submit</button>
</form>
middleware:
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Session;
class FirebaseAuth
{
/**
* Handle an incoming request.
*
* #param \Illuminate\Http\Request $request
* #param \Closure $next
* #return mixed
*/
public function handle(Request $request, Closure $next)
{
$uid = Session::get('uid');
if ($uid) {
return $next($request);
}
else {
Session::flush();
return redirect('/login');
}
}
}
Route list:
+--------+-----------+-----------------------------+------------------+-----------------------------------------------------------------------+------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-----------------------------+------------------+-----------------------------------------------------------------------+------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/user | | Closure | api |
| | | | | | auth:api |
| | GET|HEAD | carousel | | App\Http\Controllers\NavBar#carou | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | dashboard | | App\Http\Controllers\NavBar#dboard | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | email/verify | verify | App\Http\Controllers\Auth\ResetController#verify_email | web |
| | | | | | fireauth |
| | GET|HEAD | home | home | App\Http\Controllers\HomeController#index | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | home/profile | profile.index | App\Http\Controllers\Auth\ProfileController#index | web |
| | | | | | user |
| | | | | | auth |
| | POST | home/profile | profile.store | App\Http\Controllers\Auth\ProfileController#store | web |
| | | | | | user |
| | | | | | auth |
| | GET|HEAD | home/profile/create | profile.create | App\Http\Controllers\Auth\ProfileController#create | web |
| | | | | | user |
| | | | | | auth |
| | GET|HEAD | home/profile/{profile} | profile.show | App\Http\Controllers\Auth\ProfileController#show | web |
| | | | | | user |
| | | | | | auth |
| | PUT|PATCH | home/profile/{profile} | profile.update | App\Http\Controllers\Auth\ProfileController#update | web |
| | | | | | user |
| | | | | | auth |
| | DELETE | home/profile/{profile} | profile.destroy | App\Http\Controllers\Auth\ProfileController#destroy | web |
| | | | | | user |
| | | | | | auth |
| | GET|HEAD | home/profile/{profile}/edit | profile.edit | App\Http\Controllers\Auth\ProfileController#edit | web |
| | | | | | user |
| | | | | | auth |
| | GET|HEAD | img | img.index | App\Http\Controllers\ImageController#index | web |
| | POST | img | img.store | App\Http\Controllers\ImageController#store | web |
| | GET|HEAD | img/create | img.create | App\Http\Controllers\ImageController#create | web |
| | GET|HEAD | img/{img} | img.show | App\Http\Controllers\ImageController#show | web |
| | PUT|PATCH | img/{img} | img.update | App\Http\Controllers\ImageController#update | web |
| | DELETE | img/{img} | img.destroy | App\Http\Controllers\ImageController#destroy | web |
| | GET|HEAD | img/{img}/edit | img.edit | App\Http\Controllers\ImageController#edit | web |
| | GET|HEAD | inventory | | App\Http\Controllers\NavBar#inv | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | inventory/add | | App\Http\Controllers\InventoryController#invAdd | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | POST | inventory/add/product | add.product | App\Http\Controllers\InventoryController#store | web |
| | | | | | auth |
| | GET|HEAD | inventory/archive | | App\Http\Controllers\InventoryController#invArchive | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController#showLoginForm | web |
| | | | | | guest |
| | POST | login | | App\Http\Controllers\Auth\LoginController#login | web |
| | | | | | guest |
| | POST | login/{provider}/callback | | App\Http\Controllers\Auth\LoginController#handleCallback | web |
| | | | | | guest |
| | POST | logout | logout | App\Http\Controllers\Auth\LoginController#logout | web |
| | GET|HEAD | notification | | App\Http\Controllers\NavBar#notif | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | notification/deleted | | App\Http\Controllers\NotificationController#notifRecDel | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | POST | notification/push | push | App\Http\Controllers\NotificationController#store | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | order | | App\Http\Controllers\NavBar#order | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | password/confirm | password.confirm | App\Http\Controllers\Auth\ConfirmPasswordController#showConfirmForm | web |
| | | | | | auth |
| | POST | password/confirm | | App\Http\Controllers\Auth\ConfirmPasswordController#confirm | web |
| | | | | | auth |
| | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController#sendResetLinkEmail | web |
| | GET|HEAD | password/reset | reset.index | App\Http\Controllers\Auth\ResetController#index | web |
| | POST | password/reset | reset.store | App\Http\Controllers\Auth\ResetController#store | web |
| | GET|HEAD | password/reset/create | reset.create | App\Http\Controllers\Auth\ResetController#create | web |
| | GET|HEAD | password/reset/{reset} | reset.show | App\Http\Controllers\Auth\ResetController#show | web |
| | PUT|PATCH | password/reset/{reset} | reset.update | App\Http\Controllers\Auth\ResetController#update | web |
| | DELETE | password/reset/{reset} | reset.destroy | App\Http\Controllers\Auth\ResetController#destroy | web |
| | GET|HEAD | password/reset/{reset}/edit | reset.edit | App\Http\Controllers\Auth\ResetController#edit | web |
| | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController#showResetForm | web |
| | GET|HEAD | product | | App\Http\Controllers\NavBar#prod | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | product/add | | App\Http\Controllers\ProductController#prodAdd | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | product/archive | | App\Http\Controllers\ProductController#prodArchive | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController#showRegistrationForm | web |
| | | | | | guest |
| | POST | register | | App\Http\Controllers\Auth\RegisterController#register | web |
| | | | | | guest |
| | GET|HEAD | report | | App\Http\Controllers\NavBar#report | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | settings | | App\Http\Controllers\NavBar#settings | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | settings/payment/add | | App\Http\Controllers\SettingsController#payAdd | web |
| | | | | | auth |
| | GET|HEAD | shipping | | App\Http\Controllers\NavBar#ship | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
| | GET|HEAD | shipping/add | | App\Http\Controllers\ShippingController#shipAdd | web |
| | | | | | user |
| | | | | | fireauth |
| | | | | | auth |
+--------+-----------+-----------------------------+------------------+-----------------------------------------------------------------------+------------+
I have this side menu and the logout part used to be like this
<li class="nav-item"><a class="nav-link" href="" onclick="event.preventDefault();
document.getElementById('logout-form').submit();"><span></span><strong style="font-size: 16.6px;"><img src="{{ asset('build/img/vectors/logout%20icon.png?h=dbf300e18e83c66a9b08989511fc388a')}}"> Sign out</strong></a></li>
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
#csrf
</form>
I removed the form and leave the {{ route('logout') }}
and my solution:
<li class="nav-item"><a class="nav-link" href="{{ route('logout')}}"><span></span><strong style="font-size: 16.6px;"><img src="{{ asset('build/img/vectors/logout%20icon.png?h=dbf300e18e83c66a9b08989511fc388a')}}"> Sign out</strong></a></li>

Laravel 8 Route in blade

I have the following web routes in my Laravel project
Route::resource('client/{client}/users', UserController::class);
Route::resource('users', UserController::class);
For the latter I am able to use {{ route('users.create') }} in my blade file, but I'm not sure what to put for the other one.
I need to 2 ways separate resources because some users are able to edit users from their own client (/users) and users of other clients (/client/123/users)
`php artisan route:list shows that I'm getting the same name for both. What's the correct way to name the clients-users resource?
| | GET|HEAD | client/{client}/users | users.index | App\Http\Controllers\UserController#index | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | POST | client/{client}/users | users.store | App\Http\Controllers\UserController#store | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/create | users.create | App\Http\Controllers\UserController#create | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | PUT|PATCH | client/{client}/users/{user} | users.update | App\Http\Controllers\UserController#update | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | DELETE | client/{client}/users/{user} | users.destroy | App\Http\Controllers\UserController#destroy | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/{user} | users.show | App\Http\Controllers\UserController#show | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | client/{client}/users/{user}/edit | users.edit | App\Http\Controllers\UserController#edit | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
and
| | GET|HEAD | users | users.index | App\Http\Controllers\UserController#index | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/create | users.create | App\Http\Controllers\UserController#create | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | DELETE | users/{user} | users.destroy | App\Http\Controllers\UserController#destroy | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | PUT|PATCH | users/{user} | users.update | App\Http\Controllers\UserController#update | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UserController#show | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
| | GET|HEAD | users/{user}/edit | users.edit | App\Http\Controllers\UserController#edit | web |
| | | | | | App\Http\Middleware\Authenticate:sanctum |
| | | | | | Illuminate\Auth\Middleware\EnsureEmailIsVerified |
The third arguement of the resource is an array of options, one of which allows you to specifiy a prefix.
Route::resource('client/{client}/users', UserController::class, ['as' => 'clients']);
Route::resource('users', UserController::class);
Now your routes should be
clients.users.{action}
users.{action}
You need to give it a name. That said, I don't think you want Route::resource for that route.
I'm gonna give it the name clients.users.index but you can give it whatever name you want.
Route::get('clients/{client}/users', [ClientController::class, 'users'])->name('clients.users.index');
{{ route('clients.users.index') }}
The way to handle nested resources would be to declare the route:
Route::resource('clients.users', SomeOtherController::class);

Shell Script - Getting a specified value from returned block

I wish to get the returned value of status with shell then I can process to next command
# glance image-show 0227a985-cb1e-4f0c-81cb-003411988ea5
+---------------------+--------------------------------------+
| Property | Value |
+---------------------+--------------------------------------+
| checksum | None |
| container_format | bare |
| created_at | 2021-03-15T02:54:15Z |
| disk_format | raw |
| hw_disk_bus | scsi |
| hw_qemu_guest_agent | yes |
| hw_scsi_model | virtio-scsi |
| id | 0227a985-cb1e-4f0c-81cb-003411988ea5 |
| locations | [] |
| min_disk | 0 |
| min_ram | 0 |
| name | not_inuse |
| os_hash_algo | None |
| os_hash_value | None |
| os_hidden | False |
| os_require_quiesce | yes |
| owner | 4d97a99e53bd4b51aa58601985776d5c |
| protected | False |
| size | None |
| status | active |
| tags | [] |
| updated_at | 2021-03-15T02:54:30Z |
| virtual_size | Not available |
| visibility | private |
+---------------------+--------------------------------------+
How do I get the printed value = active ??
# glance image-show 0227a985-cb1e-4f0c-81cb-003411988ea5 | grep status
| status | active |
Please help, Thank you
# glance image-show 0227a985-cb1e-4f0c-81cb-003411988ea5 | grep status | awk '{print $4}'
active

Executable JAR unable to find Liquibase db/changelog.xml

The project runs as expected with spring-boot:run. However, the executable JAR fails to run because it cannot find db/changelog.xml.
The following steps can be used to reproduce the problem:
run mvn package from project root
go to target folder
run java -jar executable-jar-with-liquibase-1.0.0-SNAPSHOT.jar
The log will now show an error because the table domain has not been created.
Note that the application.yml is found, since if liquibase.enabled is set to false, it will refuse to run entirely (as it should).
application.yml
server:
context-path: /api
spring:
datasource:
platform: h2
url: jdbc:h2:mem:testdb;MODE=PostgreSQL;DB_CLOSE_ON_EXIT=FALSE
jackson:
date-format: yyyy-MM-dd
jpa:
database-platform: org.hibernate.dialect.PostgreSQLDialect
hibernate:
ddl-auto: none
liquibase:
enabled: false
change-log: classpath:db/changelog.xml
The generated JAR has the following contents:
.
|____BOOT-INF
| |____classes
| | |____application.yml
| | |____db
| | | |____changelog.xml
| | | |____changelogs
| | | | |____changelog_000.xml
| | |____nl
| | | |_____42
| | | | |____app
| | | | | |____ApplicationConfig.class
| | | | | |____domain
| | | | | | |____Domain.class
| | | | | | |____DomainController.class
| | | | | | |____DomainRepository.class
| | | | | | |____DomainService.class
| | | | | |____shared
| | | | | | |____AbstractEntity.class
| | | | | |____WebAppConfig.class
| | | | | |____WebApplication.class
| |____lib
| | |____accessors-smart-1.1.jar
| | |____antlr-2.7.7.jar
| | |____asm-5.0.3.jar
| | |____aspectjweaver-1.8.9.jar
| | |____assertj-core-2.5.0.jar
| | |____classmate-1.3.1.jar
| | |____dom4j-1.6.1.jar
| | |____h2-1.4.192.jar
| | |____hamcrest-core-1.3.jar
| | |____hamcrest-library-1.3.jar
| | |____hibernate-commons-annotations-5.0.1.Final.jar
| | |____hibernate-core-5.0.11.Final.jar
| | |____hibernate-entitymanager-5.0.11.Final.jar
| | |____hibernate-jpa-2.1-api-1.0.0.Final.jar
| | |____hibernate-validator-5.2.4.Final.jar
| | |____jackson-annotations-2.8.3.jar
| | |____jackson-core-2.8.3.jar
| | |____jackson-databind-2.8.3.jar
| | |____jackson-datatype-jsr310-2.8.3.jar
| | |____jandex-2.0.0.Final.jar
| | |____javassist-3.20.0-GA.jar
| | |____javax.transaction-api-1.2.jar
| | |____jboss-logging-3.3.0.Final.jar
| | |____jcl-over-slf4j-1.7.21.jar
| | |____json-20140107.jar
| | |____json-path-2.2.0.jar
| | |____json-smart-2.2.1.jar
| | |____jsonassert-1.3.0.jar
| | |____jul-to-slf4j-1.7.21.jar
| | |____liquibase-core-3.5.1.jar
| | |____log4j-over-slf4j-1.7.21.jar
| | |____logback-classic-1.1.7.jar
| | |____logback-core-1.1.7.jar
| | |____mockito-core-1.10.19.jar
| | |____objenesis-2.1.jar
| | |____slf4j-api-1.7.21.jar
| | |____snakeyaml-1.17.jar
| | |____spring-aop-4.3.3.RELEASE.jar
| | |____spring-aspects-4.3.3.RELEASE.jar
| | |____spring-beans-4.3.3.RELEASE.jar
| | |____spring-boot-1.4.1.RELEASE.jar
| | |____spring-boot-autoconfigure-1.4.1.RELEASE.jar
| | |____spring-boot-configuration-processor-1.4.1.RELEASE.jar
| | |____spring-boot-devtools-1.4.1.RELEASE.jar
| | |____spring-boot-starter-1.4.1.RELEASE.jar
| | |____spring-boot-starter-aop-1.4.1.RELEASE.jar
| | |____spring-boot-starter-data-jpa-1.4.1.RELEASE.jar
| | |____spring-boot-starter-jdbc-1.4.1.RELEASE.jar
| | |____spring-boot-starter-logging-1.4.1.RELEASE.jar
| | |____spring-boot-starter-test-1.4.1.RELEASE.jar
| | |____spring-boot-starter-tomcat-1.4.1.RELEASE.jar
| | |____spring-boot-starter-web-1.4.1.RELEASE.jar
| | |____spring-boot-test-1.4.1.RELEASE.jar
| | |____spring-boot-test-autoconfigure-1.4.1.RELEASE.jar
| | |____spring-context-4.3.3.RELEASE.jar
| | |____spring-core-4.3.3.RELEASE.jar
| | |____spring-data-commons-1.12.3.RELEASE.jar
| | |____spring-data-jpa-1.10.3.RELEASE.jar
| | |____spring-expression-4.3.3.RELEASE.jar
| | |____spring-jdbc-4.3.3.RELEASE.jar
| | |____spring-orm-4.3.3.RELEASE.jar
| | |____spring-tx-4.3.3.RELEASE.jar
| | |____spring-web-4.3.3.RELEASE.jar
| | |____spring-webmvc-4.3.3.RELEASE.jar
| | |____tomcat-embed-core-8.5.5.jar
| | |____tomcat-embed-el-8.5.5.jar
| | |____tomcat-embed-websocket-8.5.5.jar
| | |____tomcat-jdbc-8.5.5.jar
| | |____tomcat-juli-8.5.5.jar
| | |____validation-api-1.1.0.Final.jar
| | |____xml-apis-1.4.01.jar
|____META-INF
| |____MANIFEST.MF
| |____maven
| | |____nl.mad
| | | |____executable-jar-with-liquibase
| | | | |____pom.properties
| | | | |____pom.xml
|____org
| |____springframework
| | |____boot
| | | |____loader
| | | | |____archive
| | | | | |____Archive$Entry.class
| | | | | |____Archive$EntryFilter.class
| | | | | |____Archive.class
| | | | | |____ExplodedArchive$1.class
| | | | | |____ExplodedArchive$FileEntry.class
| | | | | |____ExplodedArchive$FileEntryIterator$EntryComparator.class
| | | | | |____ExplodedArchive$FileEntryIterator.class
| | | | | |____ExplodedArchive.class
| | | | | |____JarFileArchive$EntryIterator.class
| | | | | |____JarFileArchive$JarFileEntry.class
| | | | | |____JarFileArchive.class
| | | | |____data
| | | | | |____ByteArrayRandomAccessData.class
| | | | | |____RandomAccessData$ResourceAccess.class
| | | | | |____RandomAccessData.class
| | | | | |____RandomAccessDataFile$DataInputStream.class
| | | | | |____RandomAccessDataFile$FilePool.class
| | | | | |____RandomAccessDataFile.class
| | | | |____ExecutableArchiveLauncher$1.class
| | | | |____ExecutableArchiveLauncher.class
| | | | |____jar
| | | | | |____AsciiBytes.class
| | | | | |____Bytes.class
| | | | | |____CentralDirectoryEndRecord.class
| | | | | |____CentralDirectoryFileHeader.class
| | | | | |____CentralDirectoryParser.class
| | | | | |____CentralDirectoryVisitor.class
| | | | | |____FileHeader.class
| | | | | |____Handler.class
| | | | | |____JarEntry.class
| | | | | |____JarEntryFilter.class
| | | | | |____JarFile$1.class
| | | | | |____JarFile$2.class
| | | | | |____JarFile$3.class
| | | | | |____JarFile$JarFileType.class
| | | | | |____JarFile.class
| | | | | |____JarFileEntries$1.class
| | | | | |____JarFileEntries$EntryIterator.class
| | | | | |____JarFileEntries.class
| | | | | |____JarURLConnection$1.class
| | | | | |____JarURLConnection$JarEntryName.class
| | | | | |____JarURLConnection.class
| | | | | |____ZipInflaterInputStream.class
| | | | |____JarLauncher.class
| | | | |____LaunchedURLClassLoader$1.class
| | | | |____LaunchedURLClassLoader.class
| | | | |____Launcher.class
| | | | |____MainMethodRunner.class
| | | | |____PropertiesLauncher$1.class
| | | | |____PropertiesLauncher$ArchiveEntryFilter.class
| | | | |____PropertiesLauncher$FilteredArchive$1.class
| | | | |____PropertiesLauncher$FilteredArchive.class
| | | | |____PropertiesLauncher$PrefixMatchingArchiveFilter.class
| | | | |____PropertiesLauncher.class
| | | | |____util
| | | | | |____SystemPropertyUtils.class
| | | | |____WarLauncher.class
The entire project can be found here: https://github.com/robert-bor/executable-jar-with-liquibase
What am I doing wrong here?
there used to be a problem with the includeAll tag in liquibase, see this issue. It should be fix meanwhile, but at the moment I could not make it run with the includeAll tag.
As a solution for your problem use:
<include file="classpath:db/changelogs/changelog_000.xml" relativeToChangelogFile="false"/>

SSRS 2005 Matrix Rows not grouping

I have a problem, The rows are not grouping properly and I am not sure if it is a dataset problem or reporting problem. In the example below how do I get the 'S003' rows to show in one row? Is there some grouping property not set correctly? This report is off the reporting wizard + some formating changes adn drill down. Using VS BI 2005.
Dataset
Year | Month | Cust | Item | Shipto | SaleCases | RegCases
2011 |||| 1 |||| DEM ||| B123 ||| S000 | | | | | 0 | | | | | | 54
2011 |||| 1 |||| DEM ||| B123 ||| S001 | | | | | 0 | | | | | | 54
2011 |||| 1 |||| DEM ||| B123 ||| S002 | | | | | 0 | | | | | | 54
2011 |||| 1 |||| DEM ||| B123 ||| S003 | | | | | 0 | | | | | | 54
2010 |||| 1 |||| DEM ||| B123 ||| S003 | | | 754 | | | | | | 0
Report
| | | | | | | | | | | | | | | | | | | | | | | | 2010 | | | | | 2011
| | | | | | | | | | | | | | | | | | | | | | | | | | | 1 | | | | | | | | 1
| | | | | | | | | | | | | | | | | | | | Sale | Reg || Sale |Reg
DEM | | B123 | S000 | | | | | | | | | | | | | | 0 | | 54
| | | | | | | | | | | | | S001 | | | | | | | | | | | | | | 0 | | 54
| | | | | | | | | | | | | S002 | | | | | | | | | | | | | | 0 | | 54
| | | | | | | | | | | | | S003 | | | | | | | | | | | | | | 0 | | 54
DEM | | B123 | S003 | | 754 | | 0 | | | | | | | | | | | |
Why is it creating a new row/group for the last line and not attaching it to the third row? The only difference is the year.
Bah.. White space differences in shiptos. RTRIM() Fixed it.

Resources